AbdulElahGwaith commited on
Commit
84c1942
·
verified ·
1 Parent(s): 7d929e5

Upload folder using huggingface_hub

Browse files
This view is limited to 50 files because it contains too many changes.   See raw diff
.all-contributorsrc ADDED
@@ -0,0 +1,1301 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "projectName": "codesandbox-client",
3
+ "projectOwner": "codesandbox",
4
+ "repoType": "github",
5
+ "repoHost": "https://github.com",
6
+ "files": ["README.md"],
7
+ "imageSize": 100,
8
+ "commit": false,
9
+ "contributors": [
10
+ {
11
+ "login": "CompuIves",
12
+ "name": "Ives van Hoorne",
13
+ "avatar_url": "https://avatars0.githubusercontent.com/u/587016?v=3",
14
+ "profile": "http://ivesvh.com",
15
+ "contributions": [
16
+ "question",
17
+ "blog",
18
+ "bug",
19
+ "code",
20
+ "design",
21
+ "doc",
22
+ "example",
23
+ "infra",
24
+ "review",
25
+ "test",
26
+ "tool"
27
+ ]
28
+ },
29
+ {
30
+ "login": "donavon",
31
+ "name": "Donavon West",
32
+ "avatar_url": "https://avatars0.githubusercontent.com/u/887639?v=3",
33
+ "profile": "http://donavon.com",
34
+ "contributions": ["code"]
35
+ },
36
+ {
37
+ "login": "vueu",
38
+ "name": "Jeff Allen",
39
+ "avatar_url": "https://avatars0.githubusercontent.com/u/5266810?v=3",
40
+ "profile": "http://www.jeffallen.io/",
41
+ "contributions": ["code"]
42
+ },
43
+ {
44
+ "login": "bengummer",
45
+ "name": "Ben Gummer",
46
+ "avatar_url": "https://avatars0.githubusercontent.com/u/1089897?v=3",
47
+ "profile": "https://github.com/bengummer",
48
+ "contributions": ["code"]
49
+ },
50
+ {
51
+ "login": "faceyspacey",
52
+ "name": "James Gillmore",
53
+ "avatar_url": "https://avatars3.githubusercontent.com/u/154732?v=3",
54
+ "profile": "http://twitter.com/faceyspacey",
55
+ "contributions": ["code", "bug"]
56
+ },
57
+ {
58
+ "login": "viankakrisna",
59
+ "name": "Ade Viankakrisna Fadlil",
60
+ "avatar_url": "https://avatars1.githubusercontent.com/u/9636410?v=4",
61
+ "profile": "https://github.com/viankakrisna",
62
+ "contributions": ["code"]
63
+ },
64
+ {
65
+ "login": "Tushkiz",
66
+ "name": "Tushar Sonawane",
67
+ "avatar_url": "https://avatars1.githubusercontent.com/u/1854763?v=4",
68
+ "profile": "https://twitter.com/tushkiz",
69
+ "contributions": ["question", "code", "doc", "ideas"]
70
+ },
71
+ {
72
+ "login": "johann-sonntagbauer",
73
+ "name": "Johann Hubert Sonntagbauer",
74
+ "avatar_url": "https://avatars3.githubusercontent.com/u/1239401?v=4",
75
+ "profile": "https://github.com/johann-sonntagbauer",
76
+ "contributions": ["bug", "code"]
77
+ },
78
+ {
79
+ "login": "jseminck",
80
+ "name": "Joachim Seminck",
81
+ "avatar_url": "https://avatars2.githubusercontent.com/u/9586897?v=4",
82
+ "profile": "https://github.com/jseminck",
83
+ "contributions": ["code"]
84
+ },
85
+ {
86
+ "login": "chakrihacker",
87
+ "name": "Subramanya Chakravarthy",
88
+ "avatar_url": "https://avatars3.githubusercontent.com/u/5210019?v=4",
89
+ "profile": "http://chakrihacker.github.io",
90
+ "contributions": ["code"]
91
+ },
92
+ {
93
+ "login": "robbyoconnor",
94
+ "name": "Robert (Robby) O'Connor",
95
+ "avatar_url": "https://avatars3.githubusercontent.com/u/23088?v=4",
96
+ "profile": "http://robby.oconnor.ninja",
97
+ "contributions": ["infra"]
98
+ },
99
+ {
100
+ "login": "lbogdan",
101
+ "name": "Bogdan Luca",
102
+ "avatar_url": "https://avatars0.githubusercontent.com/u/2083930?v=4",
103
+ "profile": "https://github.com/lbogdan",
104
+ "contributions": ["bug", "code"]
105
+ },
106
+ {
107
+ "login": "bogas04",
108
+ "name": "Divjot Singh",
109
+ "avatar_url": "https://avatars3.githubusercontent.com/u/6177621?v=4",
110
+ "profile": "http://bogas04.github.io",
111
+ "contributions": ["code"]
112
+ },
113
+ {
114
+ "login": "jsonnull",
115
+ "name": "Jason Nall",
116
+ "avatar_url": "https://avatars3.githubusercontent.com/u/5249539?v=4",
117
+ "profile": "http://www.jsonnull.com",
118
+ "contributions": ["code"]
119
+ },
120
+ {
121
+ "login": "elrumordelaluz",
122
+ "name": "Lionel",
123
+ "avatar_url": "https://avatars3.githubusercontent.com/u/784056?v=4",
124
+ "profile": "https://elrumordelaluz.com",
125
+ "contributions": ["code", "design"]
126
+ },
127
+ {
128
+ "login": "brumm",
129
+ "name": "Philipp Brumm",
130
+ "avatar_url": "https://avatars3.githubusercontent.com/u/170500?v=4",
131
+ "profile": "https://github.com/brumm",
132
+ "contributions": ["code"]
133
+ },
134
+ {
135
+ "login": "ValentinH",
136
+ "name": "Valentin Hervieu",
137
+ "avatar_url": "https://avatars2.githubusercontent.com/u/2678610?v=4",
138
+ "profile": "http://valentin-hervieu.fr",
139
+ "contributions": ["code", "bug"]
140
+ },
141
+ {
142
+ "login": "Anenth",
143
+ "name": "Anenth",
144
+ "avatar_url": "https://avatars0.githubusercontent.com/u/1499218?v=4",
145
+ "profile": "http://anenth.js.org",
146
+ "contributions": ["code", "design", "ideas"]
147
+ },
148
+ {
149
+ "login": "donysukardi",
150
+ "name": "Dony Sukardi",
151
+ "avatar_url": "https://avatars0.githubusercontent.com/u/410792?v=4",
152
+ "profile": "http://dsds.io",
153
+ "contributions": ["bug", "code"]
154
+ },
155
+ {
156
+ "login": "duivvv",
157
+ "name": "Geoffrey Dhuyvetters",
158
+ "avatar_url": "https://avatars3.githubusercontent.com/u/89046?v=4",
159
+ "profile": "https://github.com/duivvv",
160
+ "contributions": ["design", "code"]
161
+ },
162
+ {
163
+ "login": "nagamalli9999",
164
+ "name": "Eswar Yaganti",
165
+ "avatar_url": "https://avatars3.githubusercontent.com/u/3381746?v=4",
166
+ "profile": "http://nyaganti.com",
167
+ "contributions": ["code", "infra"]
168
+ },
169
+ {
170
+ "login": "tansongyang",
171
+ "name": "Frank Tan",
172
+ "avatar_url": "https://avatars3.githubusercontent.com/u/9488719?v=4",
173
+ "profile": "https://github.com/tansongyang",
174
+ "contributions": ["code"]
175
+ },
176
+ {
177
+ "login": "BilalBudhani",
178
+ "name": "Bilal Budhani",
179
+ "avatar_url": "https://avatars0.githubusercontent.com/u/1650995?v=4",
180
+ "profile": "https://bilalbudhani.com",
181
+ "contributions": ["code"]
182
+ },
183
+ {
184
+ "login": "JulianMayorga",
185
+ "name": "El Juli",
186
+ "avatar_url": "https://avatars3.githubusercontent.com/u/843342?v=4",
187
+ "profile": "https://github.com/JulianMayorga",
188
+ "contributions": ["code"]
189
+ },
190
+ {
191
+ "login": "arthurdenner",
192
+ "name": "Arthur Denner",
193
+ "avatar_url": "https://avatars0.githubusercontent.com/u/13774309?v=4",
194
+ "profile": "https://github.com/arthurdenner",
195
+ "contributions": ["code", "doc"]
196
+ },
197
+ {
198
+ "login": "radi-cho",
199
+ "name": "Radi Cho",
200
+ "avatar_url": "https://avatars3.githubusercontent.com/u/12954909?v=4",
201
+ "profile": "https://github.com/RSG-Group",
202
+ "contributions": ["bug", "code", "ideas"]
203
+ },
204
+ {
205
+ "login": "xyc",
206
+ "name": "Xiaoyi Chen",
207
+ "avatar_url": "https://avatars3.githubusercontent.com/u/679275?v=4",
208
+ "profile": "https://twitter.com/chxy",
209
+ "contributions": ["code"]
210
+ },
211
+ {
212
+ "login": "gautamarora",
213
+ "name": "Gautam Arora",
214
+ "avatar_url": "https://avatars3.githubusercontent.com/u/1215971?v=4",
215
+ "profile": "https://twitter.com/gautam",
216
+ "contributions": ["code", "ideas"]
217
+ },
218
+ {
219
+ "login": "Haroenv",
220
+ "name": "Haroen Viaene",
221
+ "avatar_url": "https://avatars3.githubusercontent.com/u/6270048?v=4",
222
+ "profile": "https://twitter.com/haroenv",
223
+ "contributions": ["code", "design"]
224
+ },
225
+ {
226
+ "login": "nicknisi",
227
+ "name": "Nick Nisi",
228
+ "avatar_url": "https://avatars1.githubusercontent.com/u/293805?v=4",
229
+ "profile": "https://nicknisi.com",
230
+ "contributions": ["code"]
231
+ },
232
+ {
233
+ "login": "Jakhotiya",
234
+ "name": "Abhishek Jakhotiya",
235
+ "avatar_url": "https://avatars2.githubusercontent.com/u/9327315?v=4",
236
+ "profile": "https://github.com/Jakhotiya",
237
+ "contributions": ["code", "bug"]
238
+ },
239
+ {
240
+ "login": "tomkuehl",
241
+ "name": "Tom Kühl",
242
+ "avatar_url": "https://avatars2.githubusercontent.com/u/14299145?v=4",
243
+ "profile": "http://twitter.com/tomkuehl_",
244
+ "contributions": ["code"]
245
+ },
246
+ {
247
+ "login": "br1anchen",
248
+ "name": "br1anchen",
249
+ "avatar_url": "https://avatars2.githubusercontent.com/u/1086461?v=4",
250
+ "profile": "https://github.com/br1anchen",
251
+ "contributions": ["code"]
252
+ },
253
+ {
254
+ "login": "Arthelon",
255
+ "name": "Daniel Hsing",
256
+ "avatar_url": "https://avatars3.githubusercontent.com/u/11952174?v=4",
257
+ "profile": "https://arthelon.github.io",
258
+ "contributions": ["code"]
259
+ },
260
+ {
261
+ "login": "maciej-ka",
262
+ "name": "Maciej Kasprzyk",
263
+ "avatar_url": "https://avatars2.githubusercontent.com/u/5403694?v=4",
264
+ "profile": "https://twitter.com/_maciejka",
265
+ "contributions": ["code"]
266
+ },
267
+ {
268
+ "login": "robertheessels",
269
+ "name": "Robert Heessels",
270
+ "avatar_url": "https://avatars2.githubusercontent.com/u/596727?v=4",
271
+ "profile": "https://github.com/robertheessels",
272
+ "contributions": ["doc"]
273
+ },
274
+ {
275
+ "login": "ryanpcmcquen",
276
+ "name": "Ryan P. C. McQuen",
277
+ "avatar_url": "https://avatars3.githubusercontent.com/u/772937?v=4",
278
+ "profile": "https://ryanpcmcquen.org",
279
+ "contributions": ["code"]
280
+ },
281
+ {
282
+ "login": "ipatch",
283
+ "name": "Chris",
284
+ "avatar_url": "https://avatars3.githubusercontent.com/u/613805?v=4",
285
+ "profile": "http://chrisrjones.com",
286
+ "contributions": ["code"]
287
+ },
288
+ {
289
+ "login": "drewsmith",
290
+ "name": "Drew Smith",
291
+ "avatar_url": "https://avatars3.githubusercontent.com/u/595469?v=4",
292
+ "profile": "https://github.com/drewsmith",
293
+ "contributions": ["code"]
294
+ },
295
+ {
296
+ "login": "coderberry",
297
+ "name": "Eric Berry",
298
+ "avatar_url": "https://avatars2.githubusercontent.com/u/12481?v=4",
299
+ "profile": "https://codefund.app",
300
+ "contributions": ["code"]
301
+ },
302
+ {
303
+ "login": "Hum4n01d",
304
+ "name": "Hum4n01d",
305
+ "avatar_url": "https://avatars1.githubusercontent.com/u/17228477?v=4",
306
+ "profile": "https://www.hum4n01d.me",
307
+ "contributions": ["code"]
308
+ },
309
+ {
310
+ "login": "malwilley",
311
+ "name": "Malachi Willey",
312
+ "avatar_url": "https://avatars3.githubusercontent.com/u/10888943?v=4",
313
+ "profile": "https://github.com/malwilley",
314
+ "contributions": ["code"]
315
+ },
316
+ {
317
+ "login": "mweststrate",
318
+ "name": "Michel Weststrate",
319
+ "avatar_url": "https://avatars0.githubusercontent.com/u/1820292?v=4",
320
+ "profile": "https://twitter.com/mweststrate",
321
+ "contributions": ["code"]
322
+ },
323
+ {
324
+ "login": "kof",
325
+ "name": "Oleg",
326
+ "avatar_url": "https://avatars0.githubusercontent.com/u/52824?v=4",
327
+ "profile": "https://kof.github.io",
328
+ "contributions": ["code"]
329
+ },
330
+ {
331
+ "login": "pshrmn",
332
+ "name": "Paul Sherman",
333
+ "avatar_url": "https://avatars0.githubusercontent.com/u/1127037?v=4",
334
+ "profile": "https://www.pshrmn.com",
335
+ "contributions": ["bug", "code"]
336
+ },
337
+ {
338
+ "login": "ro-savage",
339
+ "name": "Ro Savage",
340
+ "avatar_url": "https://avatars2.githubusercontent.com/u/9244507?v=4",
341
+ "profile": "https://github.com/ro-savage",
342
+ "contributions": ["code"]
343
+ },
344
+ {
345
+ "login": "samdenty",
346
+ "name": "Sam Denty",
347
+ "avatar_url": "https://avatars3.githubusercontent.com/u/13242392?v=4",
348
+ "profile": "https://samdd.me",
349
+ "contributions": ["code"]
350
+ },
351
+ {
352
+ "login": "zephraph",
353
+ "name": "Zephraph",
354
+ "avatar_url": "https://avatars1.githubusercontent.com/u/3087225?v=4",
355
+ "profile": "https://github.com/zephraph",
356
+ "contributions": ["code"]
357
+ },
358
+ {
359
+ "login": "mdxprograms",
360
+ "name": "Josh Waller",
361
+ "avatar_url": "https://avatars1.githubusercontent.com/u/1900735?v=4",
362
+ "profile": "https://joshwaller.dev",
363
+ "contributions": ["bug", "code", "doc"]
364
+ },
365
+ {
366
+ "login": "joeynimu",
367
+ "name": "Joe Ng'ethe",
368
+ "avatar_url": "https://avatars0.githubusercontent.com/u/1195863?v=4",
369
+ "profile": "http://joey.co.ke",
370
+ "contributions": ["code"]
371
+ },
372
+ {
373
+ "login": "bitblitter",
374
+ "name": "Carles Codony",
375
+ "avatar_url": "https://avatars0.githubusercontent.com/u/576935?v=4",
376
+ "profile": "https://github.com/bitblitter",
377
+ "contributions": ["code"]
378
+ },
379
+ {
380
+ "login": "FDiskas",
381
+ "name": "Vytenis",
382
+ "avatar_url": "https://avatars2.githubusercontent.com/u/468006?v=4",
383
+ "profile": "https://github.com/FDiskas",
384
+ "contributions": ["code"]
385
+ },
386
+ {
387
+ "login": "mdugue",
388
+ "name": "Manuel Dugué",
389
+ "avatar_url": "https://avatars1.githubusercontent.com/u/894149?v=4",
390
+ "profile": "http://manueldugue.de",
391
+ "contributions": ["bug", "code"]
392
+ },
393
+ {
394
+ "login": "DemianD",
395
+ "name": "Demian Dekoninck",
396
+ "avatar_url": "https://avatars2.githubusercontent.com/u/5346497?v=4",
397
+ "profile": "https://dem.be",
398
+ "contributions": ["code"]
399
+ },
400
+ {
401
+ "login": "Saeris",
402
+ "name": "Drake Costa",
403
+ "avatar_url": "https://avatars2.githubusercontent.com/u/3144549?v=4",
404
+ "profile": "http://www.saeris.io",
405
+ "contributions": ["code"]
406
+ },
407
+ {
408
+ "login": "mstijak",
409
+ "name": "Marko Stijak",
410
+ "avatar_url": "https://avatars2.githubusercontent.com/u/433394?v=4",
411
+ "profile": "https://cxjs.io/",
412
+ "contributions": ["code"]
413
+ },
414
+ {
415
+ "login": "Komar0ff",
416
+ "name": "Ilya",
417
+ "avatar_url": "https://avatars2.githubusercontent.com/u/10588170?v=4",
418
+ "profile": "https://twitter.com/ilya_komar0ff",
419
+ "contributions": ["question", "ideas"]
420
+ },
421
+ {
422
+ "login": "emersonlaurentino",
423
+ "name": "Emerson Laurentino",
424
+ "avatar_url": "https://avatars2.githubusercontent.com/u/10627086?v=4",
425
+ "profile": "https://twitter.com/elaurent_",
426
+ "contributions": ["code", "bug"]
427
+ },
428
+ {
429
+ "login": "lifeiscontent",
430
+ "name": "Aaron Reisman",
431
+ "avatar_url": "https://avatars3.githubusercontent.com/u/180963?v=4",
432
+ "profile": "https://github.com/lifeiscontent",
433
+ "contributions": ["bug", "code", "platform"]
434
+ },
435
+ {
436
+ "login": "colshacol",
437
+ "name": "Colton Colcleasure",
438
+ "avatar_url": "https://avatars2.githubusercontent.com/u/19484365?v=4",
439
+ "profile": "https://github.com/colshacol",
440
+ "contributions": ["code", "bug"]
441
+ },
442
+ {
443
+ "login": "PJWalker",
444
+ "name": "PJ Walker",
445
+ "avatar_url": "https://avatars0.githubusercontent.com/u/497242?v=4",
446
+ "profile": "https://github.com/PJWalker",
447
+ "contributions": ["bug", "code"]
448
+ },
449
+ {
450
+ "login": "satyarohith",
451
+ "name": "Satya Rohith",
452
+ "avatar_url": "https://avatars2.githubusercontent.com/u/29819102?v=4",
453
+ "profile": "https://satya.tech",
454
+ "contributions": ["code", "doc"]
455
+ },
456
+ {
457
+ "login": "melanieseltzer",
458
+ "name": "Melanie Seltzer",
459
+ "avatar_url": "https://avatars1.githubusercontent.com/u/17421347?v=4",
460
+ "profile": "https://www.melanieseltzer.io/",
461
+ "contributions": ["code"]
462
+ },
463
+ {
464
+ "login": "ZYSzys",
465
+ "name": "ZYSzys",
466
+ "avatar_url": "https://avatars1.githubusercontent.com/u/23313266?v=4",
467
+ "profile": "http://zyszys.top",
468
+ "contributions": ["doc"]
469
+ },
470
+ {
471
+ "login": "SaraVieira",
472
+ "name": "Sara Vieira",
473
+ "avatar_url": "https://avatars0.githubusercontent.com/u/1051509?v=4",
474
+ "profile": "http://iamsaravieira.com",
475
+ "contributions": ["code", "design", "ideas"]
476
+ },
477
+ {
478
+ "login": "francoischalifour",
479
+ "name": "François Chalifour",
480
+ "avatar_url": "https://avatars3.githubusercontent.com/u/6137112?v=4",
481
+ "profile": "https://francoischalifour.com",
482
+ "contributions": ["bug", "code"]
483
+ },
484
+ {
485
+ "login": "abdullahtariq1171",
486
+ "name": "Abdullah",
487
+ "avatar_url": "https://avatars0.githubusercontent.com/u/5623766?v=4",
488
+ "profile": "https://github.com/abdullahtariq1171",
489
+ "contributions": ["code", "design"]
490
+ },
491
+ {
492
+ "login": "JonShort",
493
+ "name": "Jon Short",
494
+ "avatar_url": "https://avatars2.githubusercontent.com/u/21317379?v=4",
495
+ "profile": "https://jonshort.me/",
496
+ "contributions": ["code"]
497
+ },
498
+ {
499
+ "login": "dv297",
500
+ "name": "Daniel Vu",
501
+ "avatar_url": "https://avatars2.githubusercontent.com/u/5365325?v=4",
502
+ "profile": "https://twitter.com/dvv297",
503
+ "contributions": ["code"]
504
+ },
505
+ {
506
+ "login": "vivek12345",
507
+ "name": "Vivek Nayyar",
508
+ "avatar_url": "https://avatars3.githubusercontent.com/u/4931048?v=4",
509
+ "profile": "https://www.viveknayyar.in/",
510
+ "contributions": ["code"]
511
+ },
512
+ {
513
+ "login": "bobziroll",
514
+ "name": "Bob Ziroll",
515
+ "avatar_url": "https://avatars3.githubusercontent.com/u/6244647?v=4",
516
+ "profile": "https://github.com/bobziroll",
517
+ "contributions": ["doc"]
518
+ },
519
+ {
520
+ "login": "manniL",
521
+ "name": "Alexander Lichter",
522
+ "avatar_url": "https://avatars0.githubusercontent.com/u/640208?v=4",
523
+ "profile": "https://blog.lichter.io",
524
+ "contributions": ["code"]
525
+ },
526
+ {
527
+ "login": "chiamaka",
528
+ "name": "Chiamaka Nwolisa",
529
+ "avatar_url": "https://avatars3.githubusercontent.com/u/2737103?v=4",
530
+ "profile": "https://www.chiamaka.xyz/",
531
+ "contributions": ["code"]
532
+ },
533
+ {
534
+ "login": "shreeve",
535
+ "name": "Steve Shreeve",
536
+ "avatar_url": "https://avatars2.githubusercontent.com/u/142875?s=460&v=4",
537
+ "profile": "https://github.com/shreeve",
538
+ "contributions": ["code"]
539
+ },
540
+ {
541
+ "login": "rowild",
542
+ "name": "Robert Wildling",
543
+ "avatar_url": "https://avatars1.githubusercontent.com/u/213803?v=4",
544
+ "profile": "https://github.com/rowild",
545
+ "contributions": ["code"]
546
+ },
547
+ {
548
+ "login": "Noviny",
549
+ "name": "Ben Conolly",
550
+ "avatar_url": "https://avatars1.githubusercontent.com/u/15622106?v=4",
551
+ "profile": "https://github.com/Noviny",
552
+ "contributions": ["code"]
553
+ },
554
+ {
555
+ "login": "wuweiweiwu",
556
+ "name": "Wei-Wei Wu",
557
+ "avatar_url": "https://avatars3.githubusercontent.com/u/35270620?v=4",
558
+ "profile": "https://twitter.com/wuweiweiwu",
559
+ "contributions": ["code"]
560
+ },
561
+ {
562
+ "login": "alexvcasillas",
563
+ "name": "Alex Casillas",
564
+ "avatar_url": "https://avatars2.githubusercontent.com/u/9496960?v=4",
565
+ "profile": "https://www.alexvcasillas.com",
566
+ "contributions": ["code"]
567
+ },
568
+ {
569
+ "login": "existentialism",
570
+ "name": "Brian Ng",
571
+ "avatar_url": "https://avatars3.githubusercontent.com/u/56288?v=4",
572
+ "profile": "https://brian.ng",
573
+ "contributions": ["code"]
574
+ },
575
+ {
576
+ "login": "mike-north",
577
+ "name": "Mike North",
578
+ "avatar_url": "https://avatars1.githubusercontent.com/u/558005?v=4",
579
+ "profile": "https://mike.works",
580
+ "contributions": ["code"]
581
+ },
582
+ {
583
+ "login": "oroce",
584
+ "name": "Róbert Oroszi",
585
+ "avatar_url": "https://avatars2.githubusercontent.com/u/462848?v=4",
586
+ "profile": "https://github.com/oroce",
587
+ "contributions": ["code"]
588
+ },
589
+ {
590
+ "login": "afontcu",
591
+ "name": "Adrià Fontcuberta",
592
+ "avatar_url": "https://avatars0.githubusercontent.com/u/9197791?v=4",
593
+ "profile": "https://github.com/afontcu",
594
+ "contributions": ["code"]
595
+ },
596
+ {
597
+ "login": "aadsm",
598
+ "name": "António Afonso",
599
+ "avatar_url": "https://avatars1.githubusercontent.com/u/78122?v=4",
600
+ "profile": "http://www.aadsm.net",
601
+ "contributions": ["code"]
602
+ },
603
+ {
604
+ "login": "sapegin",
605
+ "name": "Artem Sapegin",
606
+ "avatar_url": "https://avatars2.githubusercontent.com/u/70067?v=4",
607
+ "profile": "http://sapegin.me",
608
+ "contributions": ["code"]
609
+ },
610
+ {
611
+ "login": "bcbrian",
612
+ "name": "Brian Bartholomew",
613
+ "avatar_url": "https://avatars0.githubusercontent.com/u/6721622?v=4",
614
+ "profile": "http://bcbrian.com",
615
+ "contributions": ["code"]
616
+ },
617
+ {
618
+ "login": "christianalfoni",
619
+ "name": "Christian Alfoni",
620
+ "avatar_url": "https://avatars1.githubusercontent.com/u/3956929?v=4",
621
+ "profile": "http://www.christianalfoni.com",
622
+ "contributions": ["code"]
623
+ },
624
+ {
625
+ "login": "singingwolfboy",
626
+ "name": "David Baumgold",
627
+ "avatar_url": "https://avatars3.githubusercontent.com/u/132355?v=4",
628
+ "profile": "http://davidbaumgold.com",
629
+ "contributions": ["code"]
630
+ },
631
+ {
632
+ "login": "evgenyrodionov",
633
+ "name": "Evgeny Rodionov",
634
+ "avatar_url": "https://avatars1.githubusercontent.com/u/775692?v=4",
635
+ "profile": "https://erodionov.ru",
636
+ "contributions": ["code"]
637
+ },
638
+ {
639
+ "login": "fathyb",
640
+ "name": "Fathy Boundjadj",
641
+ "avatar_url": "https://avatars1.githubusercontent.com/u/5746414?v=4",
642
+ "profile": "https://github.com/fathyb",
643
+ "contributions": ["code"]
644
+ },
645
+ {
646
+ "login": "frontsideair",
647
+ "name": "Fatih Altinok",
648
+ "avatar_url": "https://avatars0.githubusercontent.com/u/868283?v=4",
649
+ "profile": "https://6nok.org",
650
+ "contributions": ["code"]
651
+ },
652
+ {
653
+ "login": "grant",
654
+ "name": "Grant Timmerman",
655
+ "avatar_url": "https://avatars3.githubusercontent.com/u/744973?v=4",
656
+ "profile": "http://grant.cm",
657
+ "contributions": ["code"]
658
+ },
659
+ {
660
+ "login": "jamesplease",
661
+ "name": "James",
662
+ "avatar_url": "https://avatars3.githubusercontent.com/u/2322305?v=4",
663
+ "profile": "https://twitter.com/jmeaspls",
664
+ "contributions": ["code"]
665
+ },
666
+ {
667
+ "login": "Kelson448",
668
+ "name": "Kelson448",
669
+ "avatar_url": "https://avatars3.githubusercontent.com/u/18242829?v=4",
670
+ "profile": "https://github.com/Kelson448",
671
+ "contributions": ["code"]
672
+ },
673
+ {
674
+ "login": "ksnyde",
675
+ "name": "Ken Snyder",
676
+ "avatar_url": "https://avatars0.githubusercontent.com/u/980757?v=4",
677
+ "profile": "http://ken.net",
678
+ "contributions": ["code"]
679
+ },
680
+ {
681
+ "login": "kentcdodds",
682
+ "name": "Kent C. Dodds",
683
+ "avatar_url": "https://avatars0.githubusercontent.com/u/1500684?v=4",
684
+ "profile": "https://kentcdodds.com",
685
+ "contributions": ["code"]
686
+ },
687
+ {
688
+ "login": "Khaledgarbaya",
689
+ "name": "Khaled Garbaya",
690
+ "avatar_url": "https://avatars1.githubusercontent.com/u/1156093?v=4",
691
+ "profile": "https://khaledgarbaya.net",
692
+ "contributions": ["code"]
693
+ },
694
+ {
695
+ "login": "jeezliu",
696
+ "name": "Liu",
697
+ "avatar_url": "https://avatars3.githubusercontent.com/u/1921130?v=4",
698
+ "profile": "https://jeezliu.github.io/",
699
+ "contributions": ["code"]
700
+ },
701
+ {
702
+ "login": "maciejmyslinski",
703
+ "name": "Maciej",
704
+ "avatar_url": "https://avatars0.githubusercontent.com/u/11421186?v=4",
705
+ "profile": "http://www.maciejmyslinski.com",
706
+ "contributions": ["code"]
707
+ },
708
+ {
709
+ "login": "matt-gadd",
710
+ "name": "Matthew Gadd",
711
+ "avatar_url": "https://avatars0.githubusercontent.com/u/2183490?v=4",
712
+ "profile": "https://github.com/matt-gadd",
713
+ "contributions": ["code"]
714
+ },
715
+ {
716
+ "login": "krvajal",
717
+ "name": "Miguel Carvajal",
718
+ "avatar_url": "https://avatars1.githubusercontent.com/u/5899385?v=4",
719
+ "profile": "https://github.com/krvajal",
720
+ "contributions": ["code"]
721
+ },
722
+ {
723
+ "login": "whizkydee",
724
+ "name": "Olaolu Olawuyi",
725
+ "avatar_url": "https://avatars2.githubusercontent.com/u/8625066?v=4",
726
+ "profile": "https://olaolu.me",
727
+ "contributions": ["code"]
728
+ },
729
+ {
730
+ "login": "petetnt",
731
+ "name": "Pete Nykänen",
732
+ "avatar_url": "https://avatars2.githubusercontent.com/u/7641760?v=4",
733
+ "profile": "https://twitter.com/pete_tnt",
734
+ "contributions": ["code"]
735
+ },
736
+ {
737
+ "login": "iamphill",
738
+ "name": "Phil Hughes",
739
+ "avatar_url": "https://avatars0.githubusercontent.com/u/741068?v=4",
740
+ "profile": "https://iamphill.com",
741
+ "contributions": ["code"]
742
+ },
743
+ {
744
+ "login": "pomber",
745
+ "name": "Rodrigo Pombo",
746
+ "avatar_url": "https://avatars1.githubusercontent.com/u/1911623?v=4",
747
+ "profile": "https://twitter.com/pomber",
748
+ "contributions": ["code"]
749
+ },
750
+ {
751
+ "login": "sairam",
752
+ "name": "Sai Ram Kunala",
753
+ "avatar_url": "https://avatars2.githubusercontent.com/u/163584?v=4",
754
+ "profile": "https://sairam.xyz/",
755
+ "contributions": ["code"]
756
+ },
757
+ {
758
+ "login": "gitter-badger",
759
+ "name": "The Gitter Badger",
760
+ "avatar_url": "https://avatars2.githubusercontent.com/u/8518239?v=4",
761
+ "profile": "https://gitter.im",
762
+ "contributions": ["code"]
763
+ },
764
+ {
765
+ "login": "twhitbeck",
766
+ "name": "Tim Whitbeck",
767
+ "avatar_url": "https://avatars2.githubusercontent.com/u/762471?v=4",
768
+ "profile": "https://github.com/twhitbeck",
769
+ "contributions": ["code"]
770
+ },
771
+ {
772
+ "login": "yesmeck",
773
+ "name": "Wei Zhu",
774
+ "avatar_url": "https://avatars0.githubusercontent.com/u/465125?v=4",
775
+ "profile": "http://twitter.com/yesmeck",
776
+ "contributions": ["code"]
777
+ },
778
+ {
779
+ "login": "wwilsman",
780
+ "name": "Wil Wilsman",
781
+ "avatar_url": "https://avatars2.githubusercontent.com/u/5005153?v=4",
782
+ "profile": "http://wilwilsman.com",
783
+ "contributions": ["code"]
784
+ },
785
+ {
786
+ "login": "findoff",
787
+ "name": "abnessor aka findoff",
788
+ "avatar_url": "https://avatars1.githubusercontent.com/u/7959329?v=4",
789
+ "profile": "https://codepen.io/findoff/",
790
+ "contributions": ["code"]
791
+ },
792
+ {
793
+ "login": "jerry-i",
794
+ "name": "cottom",
795
+ "avatar_url": "https://avatars1.githubusercontent.com/u/11937539?v=4",
796
+ "profile": "http://jerry-i.github.io",
797
+ "contributions": ["code"]
798
+ },
799
+ {
800
+ "login": "gitname",
801
+ "name": "gitname",
802
+ "avatar_url": "https://avatars3.githubusercontent.com/u/7143133?v=4",
803
+ "profile": "https://github.com/gitname",
804
+ "contributions": ["code"]
805
+ },
806
+ {
807
+ "login": "jackdon",
808
+ "name": "Bruce Xu",
809
+ "avatar_url": "https://avatars3.githubusercontent.com/u/15030806?v=4",
810
+ "profile": "http://www.xulingming.cn",
811
+ "contributions": ["code"]
812
+ },
813
+ {
814
+ "login": "monkeywithacupcake",
815
+ "name": "jess",
816
+ "avatar_url": "https://avatars3.githubusercontent.com/u/7316730?v=4",
817
+ "profile": "http://jessachandler.com",
818
+ "contributions": ["code"]
819
+ },
820
+ {
821
+ "login": "juliettepretot",
822
+ "name": "Juliette Prétot",
823
+ "avatar_url": "https://avatars0.githubusercontent.com/u/8875406?v=4",
824
+ "profile": "https://juliette.sh",
825
+ "contributions": ["code"]
826
+ },
827
+ {
828
+ "login": "vicbergquist",
829
+ "name": "Victoria Bergquist",
830
+ "avatar_url": "https://avatars0.githubusercontent.com/u/25737281?v=4",
831
+ "profile": "https://twitter.com/vicbergquist",
832
+ "contributions": ["code", "doc"]
833
+ },
834
+ {
835
+ "login": "samrith-s",
836
+ "name": "Samrith Shankar",
837
+ "avatar_url": "https://avatars3.githubusercontent.com/u/9032162?v=4",
838
+ "profile": "https://github.com/samrith-s",
839
+ "contributions": ["code"]
840
+ },
841
+ {
842
+ "login": "tinahir",
843
+ "name": "Mahendra Hirapra",
844
+ "avatar_url": "https://avatars3.githubusercontent.com/u/827497?v=4",
845
+ "profile": "https://github.com/tinahir",
846
+ "contributions": ["code"]
847
+ },
848
+ {
849
+ "login": "rabingaire",
850
+ "name": "Rabin Gaire",
851
+ "avatar_url": "https://avatars3.githubusercontent.com/u/17409675?v=4",
852
+ "profile": "http://rabingaire.com.np",
853
+ "contributions": ["code"]
854
+ },
855
+ {
856
+ "login": "nm123github",
857
+ "name": "Neville Mehta",
858
+ "avatar_url": "https://avatars2.githubusercontent.com/u/8527474?v=4",
859
+ "profile": "https://twitter.com/ask_neville",
860
+ "contributions": ["code"]
861
+ },
862
+ {
863
+ "login": "Yeti-or",
864
+ "name": "Vasiliy",
865
+ "avatar_url": "https://avatars0.githubusercontent.com/u/1813468?v=4",
866
+ "profile": "https://github.com/Yeti-or",
867
+ "contributions": ["code"]
868
+ },
869
+ {
870
+ "login": "RomainLanz",
871
+ "name": "Romain Lanz",
872
+ "avatar_url": "https://avatars3.githubusercontent.com/u/2793951?v=4",
873
+ "profile": "https://slynova.io",
874
+ "contributions": ["code"]
875
+ },
876
+ {
877
+ "login": "libetl",
878
+ "name": "LiBe",
879
+ "avatar_url": "https://avatars2.githubusercontent.com/u/1233790?v=4",
880
+ "profile": "http://libe.toile-libre.org",
881
+ "contributions": ["code"]
882
+ },
883
+ {
884
+ "login": "thecodechef",
885
+ "name": "Jeremy Bolding",
886
+ "avatar_url": "https://avatars0.githubusercontent.com/u/5333019?v=4",
887
+ "profile": "http://thecodechef.github.io",
888
+ "contributions": ["code"]
889
+ },
890
+ {
891
+ "login": "EvanBacon",
892
+ "name": "Evan Bacon",
893
+ "avatar_url": "https://avatars1.githubusercontent.com/u/9664363?v=4",
894
+ "profile": "https://twitter.com/baconbrix",
895
+ "contributions": ["code"]
896
+ },
897
+ {
898
+ "login": "MichaelDeBoey",
899
+ "name": "Michaël De Boey",
900
+ "avatar_url": "https://avatars3.githubusercontent.com/u/6643991?v=4",
901
+ "profile": "https://michaeldeboey.be",
902
+ "contributions": ["blog", "bug", "code", "doc", "infra", "tool"]
903
+ },
904
+ {
905
+ "login": "gabeeden",
906
+ "name": "gabeeden",
907
+ "avatar_url": "https://avatars1.githubusercontent.com/u/14077091?v=4",
908
+ "profile": "https://github.com/gabeeden",
909
+ "contributions": ["code"]
910
+ },
911
+ {
912
+ "login": "twhite96",
913
+ "name": "Tiffany White",
914
+ "avatar_url": "https://avatars0.githubusercontent.com/u/7698292?v=4",
915
+ "profile": "https://tiffanywhite.dev",
916
+ "contributions": ["code"]
917
+ },
918
+ {
919
+ "login": "JABedford",
920
+ "name": "James Bedford",
921
+ "avatar_url": "https://avatars3.githubusercontent.com/u/32302360?v=4",
922
+ "profile": "http://www.dopest.tech",
923
+ "contributions": ["code"]
924
+ },
925
+ {
926
+ "login": "smolinari",
927
+ "name": "Scott",
928
+ "avatar_url": "https://avatars0.githubusercontent.com/u/3314957?v=4",
929
+ "profile": "https://www.patreon.com/user?u=16255660",
930
+ "contributions": ["code"]
931
+ },
932
+ {
933
+ "login": "dutiyesh",
934
+ "name": "Dutiyesh Salunkhe",
935
+ "avatar_url": "https://avatars1.githubusercontent.com/u/12200583?v=4",
936
+ "profile": "https://github.com/dutiyesh",
937
+ "contributions": ["code"]
938
+ },
939
+ {
940
+ "login": "halitogunc",
941
+ "name": "Halit Ogunc",
942
+ "avatar_url": "https://avatars2.githubusercontent.com/u/13641726?v=4",
943
+ "profile": "http://halit.dev",
944
+ "contributions": ["code"]
945
+ },
946
+ {
947
+ "login": "jyash97",
948
+ "name": "Yash Joshi",
949
+ "avatar_url": "https://avatars0.githubusercontent.com/u/22376783?v=4",
950
+ "profile": "https://github.com/jyash97",
951
+ "contributions": ["code"]
952
+ },
953
+ {
954
+ "login": "batiskafff",
955
+ "name": "Yehor",
956
+ "avatar_url": "https://avatars3.githubusercontent.com/u/1769092?v=4",
957
+ "profile": "https://github.com/batiskafff",
958
+ "contributions": ["code"]
959
+ },
960
+ {
961
+ "login": "Jensderond",
962
+ "name": "Jens de Rond",
963
+ "avatar_url": "https://avatars2.githubusercontent.com/u/6972822?v=4",
964
+ "profile": "https://github.com/Jensderond",
965
+ "contributions": ["bug", "code"]
966
+ },
967
+ {
968
+ "login": "benschac",
969
+ "name": "Benjamin Schachter",
970
+ "avatar_url": "https://avatars2.githubusercontent.com/u/2502947?v=4",
971
+ "profile": "http://benjaminschachter.com",
972
+ "contributions": ["doc"]
973
+ },
974
+ {
975
+ "login": "RafaelKr",
976
+ "name": "Rafael",
977
+ "avatar_url": "https://avatars1.githubusercontent.com/u/14234815?v=4",
978
+ "profile": "https://github.com/RafaelKr",
979
+ "contributions": ["bug", "code"]
980
+ },
981
+ {
982
+ "login": "baremetalfreak",
983
+ "name": "baremetalfreak",
984
+ "avatar_url": "https://avatars0.githubusercontent.com/u/19686979?v=4",
985
+ "profile": "https://github.com/baremetalfreak",
986
+ "contributions": ["question", "bug", "code"]
987
+ },
988
+ {
989
+ "login": "JayBee007",
990
+ "name": "Javed",
991
+ "avatar_url": "https://avatars0.githubusercontent.com/u/13278577?v=4",
992
+ "profile": "https://github.com/JayBee007",
993
+ "contributions": ["code"]
994
+ },
995
+ {
996
+ "login": "R4M80MrX",
997
+ "name": "R4M80MRX",
998
+ "avatar_url": "https://avatars1.githubusercontent.com/u/29365693?v=4",
999
+ "profile": "https://github.com/R4M80MrX",
1000
+ "contributions": ["code"]
1001
+ },
1002
+ {
1003
+ "login": "djD-REK",
1004
+ "name": "Dr. Derek Austin [aka dj D-REK from Richmond, VA]",
1005
+ "avatar_url": "https://avatars2.githubusercontent.com/u/53202242?v=4",
1006
+ "profile": "https://medium.com/@derek_develops",
1007
+ "contributions": ["bug"]
1008
+ },
1009
+ {
1010
+ "login": "siddharthkp",
1011
+ "name": "Sid",
1012
+ "avatar_url": "https://avatars0.githubusercontent.com/u/1863771?v=4",
1013
+ "profile": "https://sid.st",
1014
+ "contributions": ["code"]
1015
+ },
1016
+ {
1017
+ "login": "yeion7",
1018
+ "name": "Yeison Daza",
1019
+ "avatar_url": "https://avatars0.githubusercontent.com/u/9127504?v=4",
1020
+ "profile": "http://yeisondaza.com",
1021
+ "contributions": ["code"]
1022
+ },
1023
+ {
1024
+ "login": "Shriram-Balaji",
1025
+ "name": "Shriram Balaji",
1026
+ "avatar_url": "https://avatars1.githubusercontent.com/u/11358903?v=4",
1027
+ "profile": "https://shriram-balaji.github.io",
1028
+ "contributions": ["code"]
1029
+ },
1030
+ {
1031
+ "login": "HTMLGhozt",
1032
+ "name": "Thomas Dillard",
1033
+ "avatar_url": "https://avatars1.githubusercontent.com/u/12449668?v=4",
1034
+ "profile": "http://ThomasDillard.com",
1035
+ "contributions": ["code"]
1036
+ },
1037
+ {
1038
+ "login": "chinmay17",
1039
+ "name": "Chinmay Chaudhary",
1040
+ "avatar_url": "https://avatars2.githubusercontent.com/u/7131231?v=4",
1041
+ "profile": "https://github.com/chinmay17",
1042
+ "contributions": ["code"]
1043
+ },
1044
+ {
1045
+ "login": "sakthivel",
1046
+ "name": "Sakthivel Sengodan Sapient",
1047
+ "avatar_url": "https://avatars3.githubusercontent.com/u/205201?v=4",
1048
+ "profile": "https://github.com/Sakthivel",
1049
+ "contributions": ["code"]
1050
+ },
1051
+ {
1052
+ "login": "NabeelahY",
1053
+ "name": "Nabeelah",
1054
+ "avatar_url": "https://avatars1.githubusercontent.com/u/35764602?v=4",
1055
+ "profile": "https://github.com/NabeelahY",
1056
+ "contributions": ["code"]
1057
+ },
1058
+ {
1059
+ "login": "vanya829",
1060
+ "name": "vanya829",
1061
+ "avatar_url": "https://avatars0.githubusercontent.com/u/1397979?v=4",
1062
+ "profile": "https://github.com/vanya829",
1063
+ "contributions": ["code"]
1064
+ },
1065
+ {
1066
+ "login": "tanem",
1067
+ "name": "Tane Morgan",
1068
+ "avatar_url": "https://avatars3.githubusercontent.com/u/464864?v=4",
1069
+ "profile": "https://github.com/tanem",
1070
+ "contributions": ["code"]
1071
+ },
1072
+ {
1073
+ "login": "hetpatel33",
1074
+ "name": "Het Patel",
1075
+ "avatar_url": "https://avatars0.githubusercontent.com/u/13877514?v=4",
1076
+ "profile": "http://hetpatel33.github.io",
1077
+ "contributions": ["code"]
1078
+ },
1079
+ {
1080
+ "login": "ivandevp",
1081
+ "name": "Ivan Medina",
1082
+ "avatar_url": "https://avatars3.githubusercontent.com/u/9284690?v=4",
1083
+ "profile": "https://twitter.com/ivandevp",
1084
+ "contributions": ["code"]
1085
+ },
1086
+ {
1087
+ "login": "Gobinath-Manokaran",
1088
+ "name": "Gobinath-Manokaran",
1089
+ "avatar_url": "https://avatars2.githubusercontent.com/u/6711914?v=4",
1090
+ "profile": "https://github.com/Gobinath-Manokaran",
1091
+ "contributions": ["code"]
1092
+ },
1093
+ {
1094
+ "login": "armujahid",
1095
+ "name": "Abdul Rauf",
1096
+ "avatar_url": "https://avatars1.githubusercontent.com/u/3725386?v=4",
1097
+ "profile": "https://armujahid.me",
1098
+ "contributions": ["code", "doc"]
1099
+ },
1100
+ {
1101
+ "login": "milap1296",
1102
+ "name": "milap1296",
1103
+ "avatar_url": "https://avatars2.githubusercontent.com/u/19545730?v=4",
1104
+ "profile": "https://github.com/milap1296",
1105
+ "contributions": ["code"]
1106
+ },
1107
+ {
1108
+ "login": "yevhenorlov",
1109
+ "name": "yevhen orlov",
1110
+ "avatar_url": "https://avatars2.githubusercontent.com/u/17388747?v=4",
1111
+ "profile": "http://yevhenorlov.com",
1112
+ "contributions": ["code"]
1113
+ },
1114
+ {
1115
+ "login": "NileshPatel17",
1116
+ "name": "Nilesh Patel",
1117
+ "avatar_url": "https://avatars2.githubusercontent.com/u/27020381?v=4",
1118
+ "profile": "https://github.com/NileshPatel17",
1119
+ "contributions": ["code"]
1120
+ },
1121
+ {
1122
+ "login": "22PoojaGaur",
1123
+ "name": "Pooja Gaur",
1124
+ "avatar_url": "https://avatars2.githubusercontent.com/u/43316760?v=4",
1125
+ "profile": "https://github.com/22PoojaGaur",
1126
+ "contributions": ["code"]
1127
+ },
1128
+ {
1129
+ "login": "sajadhsm",
1130
+ "name": "Sajad Hashemian",
1131
+ "avatar_url": "https://avatars3.githubusercontent.com/u/20022818?v=4",
1132
+ "profile": "https://github.com/sajadhsm",
1133
+ "contributions": ["code"]
1134
+ },
1135
+ {
1136
+ "login": "carloslfu",
1137
+ "name": "Carlos Galarza",
1138
+ "avatar_url": "https://avatars3.githubusercontent.com/u/5993168?v=4",
1139
+ "profile": "https://carloslfu.github.io",
1140
+ "contributions": ["doc"]
1141
+ },
1142
+ {
1143
+ "login": "soorajshankar",
1144
+ "name": "soorajshankar",
1145
+ "avatar_url": "https://avatars2.githubusercontent.com/u/8408875?v=4",
1146
+ "profile": "https://github.com/soorajshankar",
1147
+ "contributions": ["code"]
1148
+ },
1149
+ {
1150
+ "login": "mcmunder",
1151
+ "name": "Matthias Christoph Munder",
1152
+ "avatar_url": "https://avatars3.githubusercontent.com/u/5681686?v=4",
1153
+ "profile": "http://mcmunder.de",
1154
+ "contributions": ["bug", "code"]
1155
+ },
1156
+ {
1157
+ "login": "anuraghazra",
1158
+ "name": "Anurag Hazra",
1159
+ "avatar_url": "https://avatars3.githubusercontent.com/u/35374649?v=4",
1160
+ "profile": "http://anuraghazra.github.io",
1161
+ "contributions": ["code"]
1162
+ },
1163
+ {
1164
+ "login": "johansenja",
1165
+ "name": "johansenja",
1166
+ "avatar_url": "https://avatars1.githubusercontent.com/u/43235608?v=4",
1167
+ "profile": "https://github.com/johansenja",
1168
+ "contributions": ["doc"]
1169
+ },
1170
+ {
1171
+ "login": "Developerayo",
1172
+ "name": "Shodipo Ayomide",
1173
+ "avatar_url": "https://avatars2.githubusercontent.com/u/20538832?v=4",
1174
+ "profile": "https://shodipoayomide.com",
1175
+ "contributions": ["doc"]
1176
+ },
1177
+ {
1178
+ "login": "akash-joshi",
1179
+ "name": "Akash Joshi",
1180
+ "avatar_url": "https://avatars0.githubusercontent.com/u/22196279?v=4",
1181
+ "profile": "http://akashj.com",
1182
+ "contributions": ["code"]
1183
+ },
1184
+ {
1185
+ "login": "layershifter",
1186
+ "name": "Oleksandr Fediashov",
1187
+ "avatar_url": "https://avatars0.githubusercontent.com/u/14183168?v=4",
1188
+ "profile": "https://twitter.com/layershifter",
1189
+ "contributions": ["bug", "code"]
1190
+ },
1191
+ {
1192
+ "login": "tehnuge",
1193
+ "name": "John D.",
1194
+ "avatar_url": "https://avatars1.githubusercontent.com/u/1928236?v=4",
1195
+ "profile": "https://github.com/tehnuge",
1196
+ "contributions": ["code"]
1197
+ },
1198
+ {
1199
+ "login": "NinoMaj",
1200
+ "name": "Nino",
1201
+ "avatar_url": "https://avatars0.githubusercontent.com/u/20380632?v=4",
1202
+ "profile": "https://github.com/NinoMaj",
1203
+ "contributions": ["doc"]
1204
+ },
1205
+ {
1206
+ "login": "saurabhdaware",
1207
+ "name": "Saurabh Daware",
1208
+ "avatar_url": "https://avatars1.githubusercontent.com/u/30949385?v=4",
1209
+ "profile": "https://saurabhdaware.in/",
1210
+ "contributions": ["code", "plugin"]
1211
+ },
1212
+ {
1213
+ "login": "pablopunk",
1214
+ "name": "Pablo Varela",
1215
+ "avatar_url": "https://avatars0.githubusercontent.com/u/4324982?v=4",
1216
+ "profile": "https://pablo.pink",
1217
+ "contributions": ["code"]
1218
+ },
1219
+ {
1220
+ "login": "ryanpwaldon",
1221
+ "name": "Ryan Waldon",
1222
+ "avatar_url": "https://avatars0.githubusercontent.com/u/12480362?v=4",
1223
+ "profile": "https://github.com/ryanpwaldon",
1224
+ "contributions": ["code"]
1225
+ },
1226
+ {
1227
+ "login": "cherniavskii",
1228
+ "name": "Andrew Cherniavskii",
1229
+ "avatar_url": "https://avatars.githubusercontent.com/u/13808724?v=4",
1230
+ "profile": "http://cherniavskii.com",
1231
+ "contributions": ["code"]
1232
+ },
1233
+ {
1234
+ "login": "NullVoxPopuli",
1235
+ "name": "NullVoxPopuli",
1236
+ "avatar_url": "https://avatars.githubusercontent.com/u/199018?v=4",
1237
+ "profile": "http://nullvoxpopuli.com",
1238
+ "contributions": ["code", "content", "maintenance"]
1239
+ },
1240
+ {
1241
+ "login": "joshuaellis",
1242
+ "name": "Josh",
1243
+ "avatar_url": "https://avatars.githubusercontent.com/u/37798644?v=4",
1244
+ "profile": "http://joshellis.co.uk",
1245
+ "contributions": ["doc"]
1246
+ },
1247
+ {
1248
+ "login": "StefanRetief",
1249
+ "name": "Stefan Retief",
1250
+ "avatar_url": "https://avatars.githubusercontent.com/u/3196604?v=4",
1251
+ "profile": "https://stefanretief.com",
1252
+ "contributions": ["bug", "code"]
1253
+ },
1254
+ {
1255
+ "login": "aditya211935",
1256
+ "name": "Aditya",
1257
+ "avatar_url": "https://avatars.githubusercontent.com/u/23213686?v=4",
1258
+ "profile": "https://github.com/aditya211935",
1259
+ "contributions": ["bug", "code"]
1260
+ },
1261
+ {
1262
+ "login": "B2D1",
1263
+ "name": "B2D1",
1264
+ "avatar_url": "https://avatars.githubusercontent.com/u/36991862?v=4",
1265
+ "profile": "http://baobangdong.cn",
1266
+ "contributions": ["doc"]
1267
+ },
1268
+ {
1269
+ "login": "kettanaito",
1270
+ "name": "Artem",
1271
+ "avatar_url": "https://github.com/kettanaito.png",
1272
+ "profile": "https://github.com/kettanaito",
1273
+ "contributions": ["code"]
1274
+ },
1275
+ {
1276
+ "login": "wiledal",
1277
+ "name": "Hugo Wiledal",
1278
+ "avatar_url": "https://avatars.githubusercontent.com/u/1035169?v=4",
1279
+ "profile": "http://hugos.computer",
1280
+ "contributions": ["bug", "code"]
1281
+ },
1282
+ {
1283
+ "login": "SSHari",
1284
+ "name": "Sai Hari",
1285
+ "avatar_url": "https://avatars.githubusercontent.com/u/11434879?v=4",
1286
+ "profile": "https://thesshguy.com/",
1287
+ "contributions": ["code"]
1288
+ },
1289
+ {
1290
+ "login": "Ku3mi41",
1291
+ "name": "Ku3mi41",
1292
+ "avatar_url": "https://avatars.githubusercontent.com/u/1100530?v=4",
1293
+ "profile": "https://github.com/Ku3mi41",
1294
+ "contributions": ["code", "test"]
1295
+ }
1296
+ ],
1297
+ "contributorsPerLine": 7,
1298
+ "commitConvention": "none",
1299
+ "skipCi": true
1300
+ }
1301
+
.circleci/config.yml ADDED
@@ -0,0 +1,424 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ version: 2.1
2
+
3
+ ################################
4
+ # Aliases
5
+ ################################
6
+
7
+ aliases:
8
+ - &attach_deps_workspace
9
+ at: ~/codesandbox-client
10
+
11
+ - &build_deps_paths
12
+ root: ~/codesandbox-client
13
+ paths:
14
+ - packages/codesandbox-api/dist
15
+ - packages/common/lib
16
+ - packages/components/lib
17
+ - packages/deps/dist
18
+ - packages/executors/dist
19
+ - packages/node-services/lib
20
+ - packages/notifications/lib
21
+ - packages/template-icons/lib
22
+ - packages/sse-hooks/dist
23
+ - packages/sandpack-core/lib
24
+ - packages/browser-eslint-rules/lib
25
+ - packages/browser-dart-sass/lib
26
+ - packages/vue3-browser-compiler/lib
27
+ - packages/vue3-transpiler/lib
28
+ - standalone-packages/codesandbox-browserfs/dist
29
+ - standalone-packages/codesandbox-browserfs/build
30
+ - standalone-packages/vscode-textmate/out
31
+ - standalone-packages/vscode-textmate/node_modules
32
+ - standalone-packages/vscode-extensions/out/extensions
33
+
34
+ - &restore_deps_cache
35
+ keys:
36
+ - v39-dependency-cache-{{ .Branch }}-{{ checksum "yarn.lock" }}
37
+ - v39-dependency-cache-{{ .Branch }}
38
+ - v39-dependency-cache
39
+
40
+ - &save_deps_cache
41
+ key: v39-dependency-cache-{{ .Branch }}-{{ checksum "yarn.lock" }}
42
+ paths:
43
+ - node_modules
44
+ - packages/app/node_modules
45
+ - packages/chrome-extension/node_modules
46
+ - packages/codesandbox-api/node_modules
47
+ - packages/components/node_modules
48
+ - packages/template-icons/node_modules
49
+ - packages/common/node_modules
50
+ - packages/deps/node_modules
51
+ - packages/executors/node_modules
52
+ - packages/node-services/node_modules
53
+ - packages/notifications/node_modules
54
+ - packages/react-embed/node_modules
55
+ - packages/sandbox-hooks/node_modules
56
+ - packages/sse-hooks/node_modules
57
+ - packages/sandpack-core/node_modules
58
+ - packages/browser-eslint-rules/node_modules
59
+ - packages/browser-dart-sass/node_modules
60
+ - packages/vue3-browser-compiler/node_modules
61
+ - packages/vue3-transpiler/node_modules
62
+ - packages/app/src/app/overmind/effects/vscode/LinterWorker/node_modules
63
+
64
+ - &restore_standalone_deps_cache
65
+ keys:
66
+ - v39-standalone-dependency-cache-{{ .Branch }}-{{ checksum
67
+ "standalone-packages/codesandbox-browserfs/yarn.lock" }}
68
+ - v39-standalone-dependency-cache-{{ .Branch }}
69
+ - v39-standalone-dependency-cache
70
+
71
+ - &save_standalone_deps_cache
72
+ key:
73
+ v39-standalone-dependency-cache-{{ .Branch }}-{{ checksum
74
+ "standalone-packages/codesandbox-browserfs/yarn.lock" }}
75
+ paths:
76
+ - standalone-packages/codesandbox-browserfs/node_modules
77
+
78
+ - &restore_prod_result
79
+ key:
80
+ v39-prod-build-result-{{ .Environment.CIRCLE_BRANCH
81
+ }}-{{.Environment.CIRCLE_SHA1 }}
82
+
83
+ - &save_prod_build_cache
84
+ key:
85
+ v39-prod-build-cache-{{ .Environment.CIRCLE_BRANCH
86
+ }}-{{.Environment.CIRCLE_SHA1 }}
87
+ paths:
88
+ - packages/app/node_modules/.cache
89
+
90
+ - &restore_prod_build_cache
91
+ keys:
92
+ - v39-prod-build-cache-{{ .Environment.CIRCLE_BRANCH
93
+ }}-{{.Environment.CIRCLE_SHA1 }}
94
+ - v39-prod-build-cache-{{ .Environment.CIRCLE_BRANCH }}-
95
+ - v39-prod-build-cache-master-
96
+
97
+ - &save_prod_result
98
+ key:
99
+ v39-prod-build-result-{{ .Environment.CIRCLE_BRANCH }}-{{
100
+ .Environment.CIRCLE_SHA1 }}
101
+ paths:
102
+ - ./www
103
+ - ./.git
104
+ - ./Dockerfile
105
+
106
+ - &store_test_results
107
+ path: /tmp/test-results
108
+
109
+ - &store_artifacts
110
+ path: packages/app/integration-tests/tests/__image_snapshots__/__diff_output__
111
+ destination: image_snapshot_diff
112
+
113
+ ################################
114
+ # Executors
115
+ ################################
116
+
117
+ executors:
118
+ node:
119
+ docker:
120
+ - image: node:16.14.2-bullseye
121
+ working_directory: ~/codesandbox-client
122
+ node-xlarge:
123
+ docker:
124
+ - image: node:16.14.2-bullseye
125
+ resource_class: xlarge
126
+ working_directory: ~/codesandbox-client
127
+ docker_machine:
128
+ docker:
129
+ - image: docker:20.10.23-git
130
+ working_directory: ~/codesandbox-client
131
+
132
+ ################################
133
+ # Commands
134
+ ################################
135
+
136
+ commands:
137
+ checkout_with_cache:
138
+ description: 'Checkout git with a cache'
139
+ steps:
140
+ - restore_cache:
141
+ keys:
142
+ - v39-source-cache-{{ .Branch }}-{{ .Revision }}
143
+ - v39-source-cache-{{ .Branch }}-
144
+ - v39-source-cache-
145
+
146
+ - checkout
147
+
148
+ - save_cache:
149
+ key: v39-source-cache-{{ .Branch }}-{{ .Revision }}
150
+ paths:
151
+ - '.git'
152
+ build_deps:
153
+ description: 'Install Dependencies with `yarn install`'
154
+ steps:
155
+ - restore_cache: *restore_deps_cache
156
+ - restore_cache: *restore_standalone_deps_cache
157
+ - run:
158
+ name: Install sudo
159
+ command: apt update -y && apt install -y sudo
160
+ - run:
161
+ name: Install ZSTD
162
+ command: sudo apt update -y && sudo apt install -y zstd
163
+ # Add extra items to yarnclean so the cache doesn't grow too big
164
+ - run:
165
+ name: Configure .yarnclean
166
+ command: cat .yarnclean.ci >> .yarnclean
167
+ - run:
168
+ name: Install Dependencies
169
+ command: yarn install
170
+ - save_cache: *save_deps_cache
171
+ - save_cache: *save_standalone_deps_cache
172
+ - run:
173
+ name: Build
174
+ command: yarn build:deps
175
+ - persist_to_workspace: *build_deps_paths
176
+ build_prod:
177
+ description: 'Build the Application with `yarn build:prod`'
178
+ steps:
179
+ - restore_cache: *restore_deps_cache
180
+ - attach_workspace: *attach_deps_workspace
181
+ - restore_cache: *restore_prod_build_cache
182
+ - run:
183
+ name: Build Application
184
+ command: yarn build:prod
185
+ - save_cache: *save_prod_build_cache
186
+ - save_cache: *save_prod_result
187
+ test_integrations:
188
+ description:
189
+ "Test Integrations with `yarn start:test` & 'yarn test:integrations'"
190
+ steps:
191
+ - restore_cache: *restore_deps_cache
192
+ - attach_workspace: *attach_deps_workspace
193
+ - run:
194
+ name: Install sudo
195
+ command: apt update -y && apt install -y sudo
196
+ - run:
197
+ name: Install binaries
198
+ command:
199
+ sudo apt-get update &&
200
+ sudo apt-get install -yq gconf-service libasound2 libatk1.0-0 libc6
201
+ libcairo2 libcups2 libdbus-1-3 libexpat1 libfontconfig1 libgcc1 libgconf-2-4 libgdk-pixbuf2.0-0
202
+ libglib2.0-0 libgtk-3-0 libnspr4 libpango-1.0-0 libpangocairo-1.0-0 libstdc++6 libx11-6
203
+ libx11-xcb1 libxcb1 libxcomposite1 libxcursor1 libxdamage1 libxext6 libxfixes3 libxi6 libxrandr2
204
+ libxrender1 libxss1 libxtst6 ca-certificates fonts-liberation libappindicator1 libnss3 lsb-release
205
+ xdg-utils wget libgbm-dev
206
+ - run:
207
+ name: Install puppeteer
208
+ command: cd ~/ && yarn add puppeteer@18.1.0 -DW
209
+ - run:
210
+ name: Start Test Server
211
+ command: yarn start:test
212
+ background: true
213
+ - run:
214
+ name: Setup BrowserStack local environment
215
+ command:
216
+ '[ -n "$BROWSER_STACK_KEY" ] &&
217
+ ./packages/app/integration-tests/BrowserStackLocal --key
218
+ $BROWSER_STACK_KEY || true'
219
+ background: true
220
+ - run:
221
+ name: Test Integrations
222
+ command: |
223
+ sleep 15
224
+ yarn test:integrations --ci --testResultsProcessor="jest-junit"
225
+ environment:
226
+ JEST_JUNIT_OUTPUT: '/tmp/test-results/js-test-results.xml'
227
+ - store_test_results: *store_test_results
228
+ - store_artifacts: *store_artifacts
229
+ test_visual_regressions:
230
+ description: "Test Chromatic with 'yarn chromatic'"
231
+ steps:
232
+ - restore_cache: *restore_deps_cache
233
+ - attach_workspace: *attach_deps_workspace
234
+ - run:
235
+ command: yarn chromatic
236
+ test_jest:
237
+ description: 'Test with `yarn test`'
238
+ steps:
239
+ - restore_cache: *restore_deps_cache
240
+ - attach_workspace: *attach_deps_workspace
241
+ - run:
242
+ name: Test
243
+ command: yarn test:ci
244
+ environment:
245
+ JEST_JUNIT_OUTPUT: 'reports/junit/js-tests-results.xml'
246
+ yarn_lint:
247
+ description: 'Lint with `yarn lint`'
248
+ steps:
249
+ - restore_cache: *restore_deps_cache
250
+ - attach_workspace: *attach_deps_workspace
251
+ - run:
252
+ name: Lint
253
+ command: yarn lint
254
+ yarn_typecheck:
255
+ description: 'Lint with `yarn typecheck`'
256
+ steps:
257
+ - restore_cache: *restore_deps_cache
258
+ - attach_workspace: *attach_deps_workspace
259
+ - run:
260
+ name: Typecheck
261
+ command: yarn typecheck
262
+ docker_cache:
263
+ description: 'Cache, Sign In, Create, and Push Docker Image'
264
+ parameters:
265
+ user:
266
+ type: string
267
+ default: '$DOCKER_USER'
268
+ password:
269
+ type: string
270
+ default: '$DOCKER_PWD'
271
+ steps:
272
+ - setup_remote_docker:
273
+ version: default
274
+ docker_layer_caching: true
275
+ - restore_cache: *restore_prod_result
276
+ - run:
277
+ name: Docker Sign In
278
+ command:
279
+ '[ -n "<< parameters.user >>" ] && echo << parameters.password >> |
280
+ docker login -u << parameters.user >> --password-stdin || true'
281
+ - run:
282
+ name: Create DockerIgnore
283
+ command: echo '**\n!www' > .dockerignore
284
+ - run:
285
+ name: Create Image
286
+ command:
287
+ '[ -n "<< parameters.user >>" ] && docker build -t
288
+ codesandbox/client:${CIRCLE_SHA1:0:7} . || true'
289
+ - run:
290
+ name: Push Image
291
+ command:
292
+ '[ -n "<< parameters.user >>" ] && docker push
293
+ codesandbox/client:${CIRCLE_SHA1:0:7} || true'
294
+
295
+ ################################
296
+ # Jobs
297
+ ################################
298
+
299
+ jobs:
300
+ build-deps:
301
+ executor: node-xlarge
302
+ steps:
303
+ - checkout_with_cache
304
+ - build_deps
305
+ build-prod:
306
+ executor: node-xlarge
307
+ steps:
308
+ - checkout_with_cache
309
+ - build_prod
310
+ test-integrations:
311
+ executor: node-xlarge
312
+ parallelism: 3
313
+ steps:
314
+ - checkout_with_cache
315
+ - test_integrations
316
+ test-visual-regressions:
317
+ executor: node
318
+ steps:
319
+ - checkout_with_cache
320
+ - test_visual_regressions
321
+ test-jest:
322
+ executor: node-xlarge
323
+ steps:
324
+ - checkout_with_cache
325
+ - test_jest
326
+ lint:
327
+ executor: node
328
+ steps:
329
+ - checkout_with_cache
330
+ - yarn_lint
331
+ typecheck:
332
+ executor: node
333
+ steps:
334
+ - checkout_with_cache
335
+ - yarn_typecheck
336
+ create-docker-image:
337
+ executor: docker_machine
338
+ steps:
339
+ - docker_cache
340
+ deploy-to-production:
341
+ executor: node
342
+ environment:
343
+ ENVIRONMENT: production
344
+ steps:
345
+ - checkout_with_cache
346
+ - restore_cache: *restore_deps_cache
347
+ - attach_workspace: *attach_deps_workspace
348
+ - run:
349
+ name: Mark Sentry release
350
+ command: node packages/app/scripts/sentry-create-release.js
351
+ - run:
352
+ name: Deploy Image
353
+ command: node packages/app/scripts/deploy.js
354
+ - run:
355
+ name: Deploy Sentry release
356
+ command: node packages/app/scripts/sentry-deploy-release.js
357
+ deploy-to-staging:
358
+ executor: node
359
+ environment:
360
+ ENVIRONMENT: staging
361
+ steps:
362
+ - checkout_with_cache
363
+ - restore_cache: *restore_deps_cache
364
+ - attach_workspace: *attach_deps_workspace
365
+ - run:
366
+ name: Deploy Image
367
+ command: node packages/app/scripts/deploy.js
368
+
369
+ ################################
370
+ # Workflows
371
+ ################################
372
+
373
+ workflows:
374
+ version: 2
375
+ build-and-test:
376
+ jobs:
377
+ - build-deps
378
+ - test-integrations:
379
+ requires:
380
+ - build-deps
381
+ - test-visual-regressions:
382
+ requires:
383
+ - build-deps
384
+ - typecheck:
385
+ requires:
386
+ - build-deps
387
+ - test-jest:
388
+ requires:
389
+ - build-deps
390
+ - lint:
391
+ requires:
392
+ - build-deps
393
+ - build-prod:
394
+ requires:
395
+ - build-deps
396
+ - create-docker-image:
397
+ requires:
398
+ - build-prod
399
+ - deploy-to-production:
400
+ requires:
401
+ - create-docker-image
402
+ - lint
403
+ - typecheck
404
+ # - test-integrations
405
+ - test-jest
406
+ - test-visual-regressions
407
+ filters:
408
+ branches:
409
+ only:
410
+ - main
411
+ - deploy-staging-approval:
412
+ type: approval
413
+ filters:
414
+ branches:
415
+ ignore:
416
+ - main
417
+ - deploy-to-staging:
418
+ requires:
419
+ - deploy-staging-approval
420
+ - create-docker-image
421
+ filters:
422
+ branches:
423
+ ignore:
424
+ - main
.codesandbox/environment.json ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ {
2
+ "nodeVersion": "16"
3
+ }
.codesandbox/features.json ADDED
@@ -0,0 +1,7 @@
 
 
 
 
 
 
 
 
1
+ {
2
+ "vue": {
3
+ "takeOverMode": false,
4
+ "inspector": false
5
+ },
6
+ "deno": false
7
+ }
.codesandbox/tasks.json ADDED
@@ -0,0 +1,67 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ // These tasks will run in order when initializing your CodeSandbox project.
3
+ "setupTasks": [
4
+ {
5
+ "name": "Installing Dependencies",
6
+ "command": "yarn install"
7
+ },
8
+ {
9
+ "name": "Building Workspace",
10
+ "command": "yarn build:deps"
11
+ }
12
+ ],
13
+
14
+ // These tasks can be run from CodeSandbox. Running one will open a log in the app.
15
+ "tasks": {
16
+ "setup": {
17
+ "name": "Install Dependencies",
18
+ "command": "yarn"
19
+ },
20
+ "build-workspace": {
21
+ "name": "Build deps",
22
+ "command": "yarn build:deps"
23
+ },
24
+ "app:fast": {
25
+ "name": "Application (fast + production)",
26
+ "command": "yarn start:fast",
27
+ "runAtStart": false,
28
+ "preview": {
29
+ "port": 3000
30
+ },
31
+ "restartOn": {
32
+ "files": ["yarn.lock", "packages/app/scripts/*"]
33
+ }
34
+ },
35
+ "app:fast:stream": {
36
+ "name": "Application (fast + stream)",
37
+ "command": "yarn start:fast:stream",
38
+ "runAtStart": false,
39
+ "preview": {
40
+ "port": 3000
41
+ },
42
+ "restartOn": {
43
+ "files": ["yarn.lock", "packages/app/scripts/*"]
44
+ }
45
+ },
46
+ "storybook": {
47
+ "name": "Run storybook",
48
+ "command": "cd packages/components && yarn start:storybook"
49
+ },
50
+ "typecheck": {
51
+ "name": "typecheck",
52
+ "command": "yarn typecheck"
53
+ },
54
+ "lint": {
55
+ "name": "lint",
56
+ "command": "yarn lint"
57
+ },
58
+ "start:sandpack-sandbox": {
59
+ "name": "start:sandpack-sandbox",
60
+ "command": "cd packages/app && yarn start:sandpack-sandbox"
61
+ },
62
+ "start:sandpack-core": {
63
+ "name": "start:sandpack-core",
64
+ "command": "cd packages/sandpack-core && yarn start"
65
+ }
66
+ }
67
+ }
.devcontainer/Dockerfile ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ FROM node:16-bullseye
2
+
3
+ RUN apt update -y && apt install -y zstd
.devcontainer/devcontainer.json ADDED
@@ -0,0 +1,6 @@
 
 
 
 
 
 
 
1
+ {
2
+ "name": "CodeSandbox",
3
+ "build": {
4
+ "dockerfile": "./Dockerfile"
5
+ }
6
+ }
.dockerignore ADDED
@@ -0,0 +1,30 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # See http://help.github.com/ignore-files/ for more about ignoring files.
2
+
3
+ # dependencies
4
+ node_modules
5
+ # we use yarn
6
+ package-lock.json
7
+
8
+ /integration-tests/**/__diff_output__
9
+
10
+ # testing
11
+ coverage
12
+
13
+ # production
14
+ build
15
+ www
16
+ .deliver
17
+
18
+ # misc
19
+ .DS_Store
20
+ npm-debug.log
21
+ yarn-error.log
22
+ .idea
23
+ jest
24
+
25
+ lerna-debug.log
26
+
27
+ standalone-packages/monaco-editor-core
28
+
29
+ .next
30
+ .cache-loader
.editorconfig ADDED
@@ -0,0 +1,4 @@
 
 
 
 
 
1
+ [*.js]
2
+ indent_style = space
3
+ indent_size = 2
4
+ end_of_line = lf
.env ADDED
@@ -0,0 +1,6 @@
 
 
 
 
 
 
 
1
+ AMPLITUDE_API_KEY=a205ed9b06a7baf5a594bdd30293aa80
2
+ SENTRY_DSN=https://f595bc90ce3646c4a9d76a8d3b84b403@sentry.io/2071895
3
+ IS_ONPREM=false
4
+ USE_STATIC_PREVIEW=false
5
+ PREVIEW_DOMAIN=csb.app
6
+ ROWS_API_KEY=""
.eslintignore ADDED
@@ -0,0 +1,8 @@
 
 
 
 
 
 
 
 
 
1
+ **/cra-files/*.*
2
+ **/eslint-lint.js
3
+ **/stories/*.*
4
+ **/lib/*.*
5
+ **/*.d.ts
6
+ packages/app/integration-tests/*
7
+ static/*
8
+ packages/browser-dart-sass
.eslintrc ADDED
@@ -0,0 +1,121 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "extends": ["airbnb", "prettier", "prettier/react"],
3
+ "plugins": ["react-hooks"],
4
+ "parser": "babel-eslint",
5
+ "env": {
6
+ "browser": true,
7
+ "node": true,
8
+ "jest": true,
9
+ "es6": true
10
+ },
11
+ "globals": {
12
+ "VERSION": true,
13
+ "$PropertyType": true,
14
+ "TimeoutID": true,
15
+ "object": true,
16
+ "__DEV__": true,
17
+ "Stripe": true
18
+ },
19
+ "rules": {
20
+ "react/jsx-filename-extension": 0,
21
+ "react/sort-comp": 0,
22
+ "react/destructuring-assignment": 0,
23
+ "react/state-in-constructor": 0,
24
+ "react/jsx-props-no-spreading": 0,
25
+ "react/static-property-placement": 0,
26
+ "react/jsx-no-useless-fragment": "error",
27
+ "react/jsx-curly-brace-presence": 0,
28
+ "import/no-extraneous-dependencies": 0,
29
+ "import/no-cycle": "warn",
30
+ "react/prop-types": 0,
31
+ "arrow-parens": 0,
32
+ "prefer-destructuring": 0,
33
+ "no-async-promise-executor": "warn",
34
+ "import/prefer-default-export": 0,
35
+ "class-methods-use-this": 0,
36
+ "jsx-a11y/click-events-have-key-events": "warn",
37
+ "no-console": ["error", { "allow": ["error", "warn"] }],
38
+ "prefer-template": "off",
39
+ "no-plusplus": 0,
40
+ "no-underscore-dangle": "off",
41
+ "no-nested-ternary": "warn",
42
+ "react/require-default-props": "off",
43
+ "import/no-named-default": 0,
44
+ "import/no-webpack-loader-syntax": 0,
45
+ "import/extensions": [
46
+ "error",
47
+ "always",
48
+ {
49
+ "ts": "never",
50
+ "tsx": "never",
51
+ "js": "never"
52
+ }
53
+ ],
54
+ "import/default": "error",
55
+ "no-param-reassign": ["error", { "props": false }],
56
+ "camelcase": 0,
57
+ "react-hooks/rules-of-hooks": "error",
58
+ "react-hooks/exhaustive-deps": "warn",
59
+ "jsx-a11y/href-no-hash": "off",
60
+ "jsx-a11y/anchor-is-valid": [
61
+ "warn",
62
+ { "aspects": ["noHref", "invalidHref"] }
63
+ ],
64
+ "jsx-a11y/label-has-for": "off",
65
+ "no-bitwise": "off",
66
+ "arrow-body-style": "off",
67
+ "no-restricted-globals": "off",
68
+ "no-restricted-syntax": "off",
69
+ "lines-between-class-members": [
70
+ "error",
71
+ "always",
72
+ {
73
+ "exceptAfterSingleLine": true
74
+ }
75
+ ],
76
+ "max-classes-per-file": "off"
77
+ },
78
+ "overrides": [
79
+ {
80
+ "files": ["**/*.ts", "**/*.tsx"],
81
+ "parser": "@typescript-eslint/parser",
82
+ "parserOptions": {
83
+ "ecmaVersion": 2018,
84
+ "sourceType": "module",
85
+ "ecmaFeatures": { "jsx": true },
86
+ "warnOnUnsupportedTypeScriptVersion": true
87
+ },
88
+ "plugins": ["@typescript-eslint"],
89
+ "rules": {
90
+ "default-case": "off",
91
+ "no-dupe-class-members": "off",
92
+ "no-array-constructor": "off",
93
+ "@typescript-eslint/no-array-constructor": "warn",
94
+ "@typescript-eslint/no-namespace": "error",
95
+ "no-use-before-define": "off",
96
+ "@typescript-eslint/no-use-before-define": [
97
+ "warn",
98
+ {
99
+ "functions": false,
100
+ "classes": false,
101
+ "variables": false,
102
+ "typedefs": false
103
+ }
104
+ ],
105
+ "no-unused-vars": "off",
106
+ "no-undef": "off",
107
+ "@typescript-eslint/no-unused-vars": [
108
+ "error",
109
+ { "args": "none", "ignoreRestSiblings": true }
110
+ ],
111
+ "no-useless-constructor": "off",
112
+ "@typescript-eslint/no-useless-constructor": "warn",
113
+ "import/extensions": 0,
114
+ "import/no-unresolved": 0,
115
+ "no-shadow": "off",
116
+ "@typescript-eslint/no-shadow": ["error"],
117
+ "spaced-comment": "warn"
118
+ }
119
+ }
120
+ ]
121
+ }
.flowconfig ADDED
@@ -0,0 +1,37 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ [ignore]
2
+ # We vendor our src directory, which is not needed for type-checking
3
+ .*/styled-components/src/.*
4
+ .*/node_modules/*
5
+
6
+ [include]
7
+ .*/node_modules/common*
8
+
9
+ [libs]
10
+ # This is were your own flow-typed libdefs go
11
+ flow-typed
12
+
13
+ # These declarations are super explicit...
14
+ # We want to show what libdef files we need to make
15
+ # flow understand all external dependencies
16
+ #
17
+ # If you have similar dependencies, you will need to
18
+ # check which libdef files are covered by your flow-typed
19
+ # directory!
20
+ #
21
+ # A more generic approach (please use with caution!):
22
+ # node_modules/styled-components/flow-typed/*.js
23
+
24
+ node_modules/styled-components/flow-typed/react-native.js
25
+ node_modules/styled-components/flow-typed/glamor_vx.x.x.js
26
+ node_modules/styled-components/flow-typed/lodash_v4.x.x.js
27
+ node_modules/styled-components/flow-typed/react-native.js
28
+ node_modules/styled-components/flow-typed/inline-style-prefixer_vx.x.x.js
29
+
30
+ [options]
31
+ module.system.node.resolve_dirname=node_modules
32
+ module.system.node.resolve_dirname=src
33
+ module.system.node.resolve_dirname=packages
34
+
35
+ # Yeah, we use this to ignore errors...
36
+ # Just add it, if you have a different suppress_comment notation
37
+ suppress_comment=.*\\$FlowIssue
.gitattributes CHANGED
@@ -1,35 +1,69 @@
1
- *.7z filter=lfs diff=lfs merge=lfs -text
2
- *.arrow filter=lfs diff=lfs merge=lfs -text
3
- *.bin filter=lfs diff=lfs merge=lfs -text
4
- *.bz2 filter=lfs diff=lfs merge=lfs -text
5
- *.ckpt filter=lfs diff=lfs merge=lfs -text
6
- *.ftz filter=lfs diff=lfs merge=lfs -text
7
- *.gz filter=lfs diff=lfs merge=lfs -text
8
- *.h5 filter=lfs diff=lfs merge=lfs -text
9
- *.joblib filter=lfs diff=lfs merge=lfs -text
10
- *.lfs.* filter=lfs diff=lfs merge=lfs -text
11
- *.mlmodel filter=lfs diff=lfs merge=lfs -text
12
- *.model filter=lfs diff=lfs merge=lfs -text
13
- *.msgpack filter=lfs diff=lfs merge=lfs -text
14
- *.npy filter=lfs diff=lfs merge=lfs -text
15
- *.npz filter=lfs diff=lfs merge=lfs -text
16
- *.onnx filter=lfs diff=lfs merge=lfs -text
17
- *.ot filter=lfs diff=lfs merge=lfs -text
18
- *.parquet filter=lfs diff=lfs merge=lfs -text
19
- *.pb filter=lfs diff=lfs merge=lfs -text
20
- *.pickle filter=lfs diff=lfs merge=lfs -text
21
- *.pkl filter=lfs diff=lfs merge=lfs -text
22
- *.pt filter=lfs diff=lfs merge=lfs -text
23
- *.pth filter=lfs diff=lfs merge=lfs -text
24
- *.rar filter=lfs diff=lfs merge=lfs -text
25
- *.safetensors filter=lfs diff=lfs merge=lfs -text
26
- saved_model/**/* filter=lfs diff=lfs merge=lfs -text
27
- *.tar.* filter=lfs diff=lfs merge=lfs -text
28
- *.tar filter=lfs diff=lfs merge=lfs -text
29
- *.tflite filter=lfs diff=lfs merge=lfs -text
30
- *.tgz filter=lfs diff=lfs merge=lfs -text
31
- *.wasm filter=lfs diff=lfs merge=lfs -text
32
- *.xz filter=lfs diff=lfs merge=lfs -text
33
- *.zip filter=lfs diff=lfs merge=lfs -text
34
- *.zst filter=lfs diff=lfs merge=lfs -text
35
- *tfevents* filter=lfs diff=lfs merge=lfs -text
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ * text=auto eol=lf
2
+ standalone-packages/* linguist-vendored
3
+ packages/app/integration-tests/BrowserStackLocal filter=lfs diff=lfs merge=lfs -text
4
+ packages/app/integration-tests/tests/__image_snapshots__/31kn7voz4q-snap.png filter=lfs diff=lfs merge=lfs -text
5
+ packages/app/integration-tests/tests/__image_snapshots__/CompuIves-codesandbox-presentation-snap.png filter=lfs diff=lfs merge=lfs -text
6
+ packages/app/integration-tests/tests/__image_snapshots__/faceyspacey-redux-first-router-codesandbox-snap.png filter=lfs diff=lfs merge=lfs -text
7
+ packages/app/integration-tests/tests/__image_snapshots__/gpgpu-curl-noise-yq6y8-snap.png filter=lfs diff=lfs merge=lfs -text
8
+ packages/app/src/app/overmind/effects/zip/create-zip/create-react-app/files.zip filter=lfs diff=lfs merge=lfs -text
9
+ packages/app/src/app/overmind/effects/zip/create-zip/create-react-app-typescript/files.zip filter=lfs diff=lfs merge=lfs -text
10
+ packages/app/src/app/overmind/effects/zip/create-zip/preact-cli/files.zip filter=lfs diff=lfs merge=lfs -text
11
+ packages/app/src/app/overmind/effects/zip/create-zip/vue-cli/files.zip filter=lfs diff=lfs merge=lfs -text
12
+ packages/app/static/fonts/TWKEverett-Medium-web.ttf filter=lfs diff=lfs merge=lfs -text
13
+ packages/app/static/fonts/everett/TWKEverett-Light-web.ttf filter=lfs diff=lfs merge=lfs -text
14
+ packages/app/static/fonts/everett/TWKEverett-Medium-web.ttf filter=lfs diff=lfs merge=lfs -text
15
+ packages/app/static/fonts/everett/TWKEverett-Regular-web.ttf filter=lfs diff=lfs merge=lfs -text
16
+ packages/app/static/fonts/inter/Inter-Black.woff filter=lfs diff=lfs merge=lfs -text
17
+ packages/app/static/fonts/inter/Inter-BlackItalic.woff filter=lfs diff=lfs merge=lfs -text
18
+ packages/app/static/fonts/inter/Inter-BlackItalic.woff2 filter=lfs diff=lfs merge=lfs -text
19
+ packages/app/static/fonts/inter/Inter-Bold.woff filter=lfs diff=lfs merge=lfs -text
20
+ packages/app/static/fonts/inter/Inter-Bold.woff2 filter=lfs diff=lfs merge=lfs -text
21
+ packages/app/static/fonts/inter/Inter-BoldItalic.woff filter=lfs diff=lfs merge=lfs -text
22
+ packages/app/static/fonts/inter/Inter-BoldItalic.woff2 filter=lfs diff=lfs merge=lfs -text
23
+ packages/app/static/fonts/inter/Inter-ExtraBold.woff filter=lfs diff=lfs merge=lfs -text
24
+ packages/app/static/fonts/inter/Inter-ExtraBold.woff2 filter=lfs diff=lfs merge=lfs -text
25
+ packages/app/static/fonts/inter/Inter-ExtraBoldItalic.woff filter=lfs diff=lfs merge=lfs -text
26
+ packages/app/static/fonts/inter/Inter-ExtraBoldItalic.woff2 filter=lfs diff=lfs merge=lfs -text
27
+ packages/app/static/fonts/inter/Inter-ExtraLight-BETA.woff filter=lfs diff=lfs merge=lfs -text
28
+ packages/app/static/fonts/inter/Inter-ExtraLight-BETA.woff2 filter=lfs diff=lfs merge=lfs -text
29
+ packages/app/static/fonts/inter/Inter-ExtraLightItalic-BETA.woff filter=lfs diff=lfs merge=lfs -text
30
+ packages/app/static/fonts/inter/Inter-ExtraLightItalic-BETA.woff2 filter=lfs diff=lfs merge=lfs -text
31
+ packages/app/static/fonts/inter/Inter-Italic.woff filter=lfs diff=lfs merge=lfs -text
32
+ packages/app/static/fonts/inter/Inter-Light-BETA.woff filter=lfs diff=lfs merge=lfs -text
33
+ packages/app/static/fonts/inter/Inter-Light-BETA.woff2 filter=lfs diff=lfs merge=lfs -text
34
+ packages/app/static/fonts/inter/Inter-LightItalic-BETA.woff filter=lfs diff=lfs merge=lfs -text
35
+ packages/app/static/fonts/inter/Inter-LightItalic-BETA.woff2 filter=lfs diff=lfs merge=lfs -text
36
+ packages/app/static/fonts/inter/Inter-Medium.woff filter=lfs diff=lfs merge=lfs -text
37
+ packages/app/static/fonts/inter/Inter-MediumItalic.woff filter=lfs diff=lfs merge=lfs -text
38
+ packages/app/static/fonts/inter/Inter-MediumItalic.woff2 filter=lfs diff=lfs merge=lfs -text
39
+ packages/app/static/fonts/inter/Inter-Regular.woff filter=lfs diff=lfs merge=lfs -text
40
+ packages/app/static/fonts/inter/Inter-SemiBold.woff filter=lfs diff=lfs merge=lfs -text
41
+ packages/app/static/fonts/inter/Inter-SemiBoldItalic.woff filter=lfs diff=lfs merge=lfs -text
42
+ packages/app/static/fonts/inter/Inter-SemiBoldItalic.woff2 filter=lfs diff=lfs merge=lfs -text
43
+ packages/app/static/fonts/inter/Inter-Thin-BETA.woff filter=lfs diff=lfs merge=lfs -text
44
+ packages/app/static/fonts/inter/Inter-Thin-BETA.woff2 filter=lfs diff=lfs merge=lfs -text
45
+ packages/app/static/fonts/inter/Inter-ThinItalic-BETA.woff filter=lfs diff=lfs merge=lfs -text
46
+ packages/app/static/fonts/inter/Inter-ThinItalic-BETA.woff2 filter=lfs diff=lfs merge=lfs -text
47
+ packages/app/static/fonts/inter/Inter-italic.var.woff2 filter=lfs diff=lfs merge=lfs -text
48
+ packages/app/static/fonts/inter/Inter-upright.var.woff2 filter=lfs diff=lfs merge=lfs -text
49
+ packages/app/static/fonts/inter/Inter.var.woff2 filter=lfs diff=lfs merge=lfs -text
50
+ packages/app/static/img/banner.png filter=lfs diff=lfs merge=lfs -text
51
+ packages/app/static/img/collaboration-sticker.png filter=lfs diff=lfs merge=lfs -text
52
+ packages/app/static/img/discover-banner-playjs.png filter=lfs diff=lfs merge=lfs -text
53
+ packages/app/static/img/explore.png filter=lfs diff=lfs merge=lfs -text
54
+ packages/app/static/img/onboarding/deploy.jpg filter=lfs diff=lfs merge=lfs -text
55
+ packages/app/static/img/onboarding/ending.jpg filter=lfs diff=lfs merge=lfs -text
56
+ packages/app/static/img/onboarding/import.jpg filter=lfs diff=lfs merge=lfs -text
57
+ packages/app/static/img/onboarding/invite.jpg filter=lfs diff=lfs merge=lfs -text
58
+ packages/app/static/img/onboarding/multiplayer.jpg filter=lfs diff=lfs merge=lfs -text
59
+ packages/app/static/img/projects-banner.png filter=lfs diff=lfs merge=lfs -text
60
+ packages/app/static/img/terminal_upgrade_screenshot.png filter=lfs diff=lfs merge=lfs -text
61
+ packages/chrome-extension/assets/Chrome1.jpg filter=lfs diff=lfs merge=lfs -text
62
+ packages/chrome-extension/assets/Chrome2.jpg filter=lfs diff=lfs merge=lfs -text
63
+ packages/chrome-extension/assets/still2.png filter=lfs diff=lfs merge=lfs -text
64
+ standalone-packages/codesandbox-browserfs/test/fixtures/isofs/test_joliet.iso filter=lfs diff=lfs merge=lfs -text
65
+ standalone-packages/codesandbox-browserfs/test/fixtures/isofs/test_rock_ridge.iso filter=lfs diff=lfs merge=lfs -text
66
+ standalone-packages/codesandbox-browserfs/test/fixtures/zipfs/zipfs_fixtures_l0.zip filter=lfs diff=lfs merge=lfs -text
67
+ standalone-packages/codesandbox-browserfs/test/fixtures/zipfs/zipfs_fixtures_l4.zip filter=lfs diff=lfs merge=lfs -text
68
+ standalone-packages/codesandbox-browserfs/test/fixtures/zipfs/zipfs_fixtures_l9.zip filter=lfs diff=lfs merge=lfs -text
69
+ standalone-packages/vscode-extensions/vscode-extensions.tar.zst filter=lfs diff=lfs merge=lfs -text
.github/FUNDING.yml ADDED
@@ -0,0 +1,2 @@
 
 
 
1
+ open_collective: codesandbox
2
+ custom: https://codesandbox.io/pricing
.github/ISSUE_TEMPLATE/BUG.md ADDED
@@ -0,0 +1,41 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ name: 🐛 Bug Report
3
+ about: Did something not work?
4
+ ---
5
+
6
+ # 🐛 bug report
7
+
8
+ ## Preflight Checklist
9
+
10
+ <!-- Please ensure you've completed the following steps by replacing [ ] with [x]-->
11
+
12
+ - [ ] I have read the [Contributing Guidelines][contributing] for this project.
13
+ - [ ] I agree to follow the [Code of Conduct][code_of_conduct] that this project
14
+ adheres to.
15
+ - [ ] I have searched the issue tracker for an issue that matches the one I want
16
+ to file, without success.
17
+
18
+ ## Description of the problem
19
+
20
+ ## How has this issue affected you? What are you trying to accomplish?
21
+
22
+ ### To Reproduce
23
+
24
+ <!--
25
+ Your best chance of getting this bug looked at quickly is to provide an example.
26
+ -->
27
+
28
+ ### Link to sandbox: [link]() (optional)
29
+
30
+ ### Your Environment
31
+
32
+ | Software | Name/Version |
33
+ | ---------------- | ------------ |
34
+ | Сodesandbox | |
35
+ | Browser | |
36
+ | Operating System | |
37
+
38
+ <!-- prettier-ignore-start -->
39
+ [code_of_conduct]: https://github.com/codesandbox/codesandbox-client/blob/main/CODE_OF_CONDUCT.md
40
+ [contributing]: https://github.com/codesandbox/codesandbox-client/blob/main/CONTRIBUTING.md
41
+ <!-- prettier-ignore-end -->
.github/ISSUE_TEMPLATE/FEATURE.md ADDED
@@ -0,0 +1,10 @@
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ name: 🌈 Feature
3
+ about: What cool thing would you like to add?
4
+ ---
5
+
6
+ # 🌈 Feature
7
+
8
+ <!-- What is this feature? -->
9
+ <!-- How the feature should work? -->
10
+ <!-- You have examples or an idea how it can be implemented? -->
.github/ISSUE_TEMPLATE/config.yml ADDED
@@ -0,0 +1,5 @@
 
 
 
 
 
 
1
+ blank_issues_enabled: false
2
+ contact_links:
3
+ - name: Question
4
+ url: https://github.com/codesandbox/codesandbox-client/discussions
5
+ about: Have any questions?
.github/PULL_REQUEST_TEMPLATE.md ADDED
@@ -0,0 +1,41 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <!--
2
+ Please make sure you are familiar with and follow the instructions in the
3
+ contributing guidelines (found in the CONTRIBUTING.md file).
4
+
5
+ Please fill out the information below to expedite the review and (hopefully)
6
+ merge of your pull request!
7
+ -->
8
+
9
+ ## What kind of change does this PR introduce?
10
+
11
+ <!-- Is it a Bug fix, feature, docs update, ... -->
12
+
13
+ ## What is the current behavior?
14
+
15
+ <!-- You can also link to an open issue here -->
16
+
17
+ ## What is the new behavior?
18
+
19
+ <!-- if this is a feature change -->
20
+
21
+ ## What steps did you take to test this? This is required before we can merge, make sure to test the flow you've updated.
22
+
23
+ 1. Step A
24
+ 2. Step B
25
+ 3. Step C
26
+
27
+ ## Checklist
28
+
29
+ <!-- Have you done all of these things? -->
30
+ <!-- add "N/A" to the end of each line that's irrelevant to your changes -->
31
+ <!-- to check an item, place an "x" in the box like so: "- [x] Documentation" -->
32
+
33
+ - [ ] Documentation
34
+ - [ ] Testing <!-- We can only merge the PR if this is checked -->
35
+ - [ ] Ready to be merged
36
+ <!-- In your opinion, is this ready to be merged as soon as it's reviewed? -->
37
+ - [ ] Added myself to contributors table
38
+ <!-- this is optional, see the contributing guidelines for instructions -->
39
+
40
+ <!-- feel free to add additional comments -->
41
+ <!-- Thank you for contributing! -->
.github/codeql/codeql-config.yml ADDED
@@ -0,0 +1,55 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ name: "CodeQL Config"
2
+
3
+ # Exclude paths to reduce disk space usage during CodeQL analysis
4
+ # This prevents analyzing unnecessary files that consume disk space
5
+ paths-ignore:
6
+ # Dependencies - don't analyze third-party code
7
+ - "**/node_modules"
8
+ - "**/yarn.lock"
9
+ - "**/package-lock.json"
10
+
11
+ # Build artifacts - generated code doesn't need analysis
12
+ - "**/dist"
13
+ - "**/lib"
14
+ - "**/compiled"
15
+ - "**/build"
16
+ - "**/www"
17
+ - "**/release"
18
+
19
+ # Test fixtures and snapshots
20
+ - "**/__mocks__"
21
+ - "**/__image_snapshots__"
22
+ - "**/_fixtures"
23
+ - "**/fixture"
24
+ - "**/test/**/*.png"
25
+ - "**/test/**/*.jpg"
26
+ - "**/test/**/*.svg"
27
+ - "**/integration-tests/**/*.png"
28
+
29
+ # Example and playground files - not production code
30
+ - "**/example"
31
+ - "**/examples"
32
+ - "**/playground"
33
+ - "**/website"
34
+ - "**/docs"
35
+
36
+ # Generated files
37
+ - "**/*.map"
38
+ - "**/*.min.js"
39
+ - "**/*.min.css"
40
+
41
+ # Large standalone packages - exclude website and release directories
42
+ - "standalone-packages/monaco-editor/website"
43
+ - "standalone-packages/monaco-editor/release"
44
+ - "standalone-packages/vscode-editor/release"
45
+ - "standalone-packages/vscode-textmate/**/*.result"
46
+ - "standalone-packages/vscode-textmate/**/*.patch"
47
+
48
+ # Static assets
49
+ - "**/static/fonts"
50
+ - "**/static/img"
51
+ - "**/public"
52
+
53
+ # CI/CD files
54
+ - "**/Dockerfile*"
55
+ - "**/.circleci"
.github/workflows/codeql.yml ADDED
@@ -0,0 +1,83 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ name: "CodeQL"
2
+
3
+ on:
4
+ push:
5
+ branches: [ "main" ]
6
+ pull_request:
7
+ branches: [ "main" ]
8
+ schedule:
9
+ - cron: '0 0 * * 0'
10
+
11
+ jobs:
12
+ analyze:
13
+ name: Analyze (${{ matrix.language }})
14
+ runs-on: ubuntu-latest
15
+ permissions:
16
+ # required for all workflows
17
+ security-events: write
18
+ # required to fetch internal or private CodeQL packs
19
+ packages: read
20
+ # only required for workflows in private repositories
21
+ actions: read
22
+ contents: read
23
+
24
+ strategy:
25
+ fail-fast: false
26
+ matrix:
27
+ include:
28
+ - language: javascript-typescript
29
+ build-mode: none
30
+
31
+ steps:
32
+ - name: Clean up disk space
33
+ run: |
34
+ echo "Disk space before cleanup:"
35
+ df -h
36
+ echo ""
37
+ echo "Cleaning up unnecessary files to free disk space..."
38
+
39
+ # Remove large tool directories that aren't needed for JavaScript/TypeScript CodeQL analysis
40
+ # These tools will be re-downloaded by GitHub Actions if needed for other jobs
41
+ sudo rm -rf /usr/share/dotnet
42
+ sudo rm -rf /opt/ghc
43
+ sudo rm -rf /usr/local/share/boost
44
+ sudo rm -rf /usr/local/lib/android
45
+ sudo rm -rf /opt/az
46
+
47
+ # Remove large tool caches (CodeQL will re-download only what it needs)
48
+ sudo rm -rf "$AGENT_TOOLSDIRECTORY"
49
+
50
+ # Clean up system caches
51
+ sudo apt-get clean
52
+ sudo rm -rf /var/lib/apt/lists/*
53
+
54
+ # Remove Docker images if Docker is installed (not needed for CodeQL)
55
+ docker system prune -af || true
56
+
57
+ # Remove pip cache
58
+ rm -rf ~/.cache/pip || true
59
+
60
+ # Remove npm cache (will be recreated during checkout if needed)
61
+ npm cache clean --force || true
62
+
63
+ echo ""
64
+ echo "Disk space after cleanup:"
65
+ df -h
66
+
67
+ - name: Checkout repository
68
+ uses: actions/checkout@v4
69
+
70
+ # Initializes the CodeQL tools for scanning.
71
+ - name: Initialize CodeQL
72
+ uses: github/codeql-action/init@v4
73
+ with:
74
+ languages: ${{ matrix.language }}
75
+ build-mode: ${{ matrix.build-mode }}
76
+ # Use our custom config file to exclude unnecessary files
77
+ config-file: ./.github/codeql/codeql-config.yml
78
+
79
+ - name: Perform CodeQL Analysis
80
+ uses: github/codeql-action/analyze@v4
81
+ with:
82
+ category: "/language:${{matrix.language}}"
83
+
.gitignore ADDED
@@ -0,0 +1,35 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # See http://help.github.com/ignore-files/ for more about ignoring files.
2
+
3
+ # dependencies
4
+ node_modules
5
+ # we use yarn
6
+ package-lock.json
7
+
8
+ /integration-tests/**/__diff_output__
9
+
10
+ # testing
11
+ coverage
12
+
13
+ # production
14
+ build
15
+ www
16
+ .deliver
17
+ lib/
18
+ dist/
19
+
20
+ # misc
21
+ .DS_Store
22
+ npm-debug.log
23
+ yarn-error.log
24
+ .idea
25
+ jest
26
+ stats.json
27
+
28
+ lerna-debug.log
29
+
30
+ standalone-packages/monaco-editor-core
31
+
32
+ .next
33
+ .cache-loader
34
+
35
+ packages/app/static/js/env-config.js
.graphqlconfig.yml ADDED
@@ -0,0 +1,8 @@
 
 
 
 
 
 
 
 
 
1
+ projects:
2
+ app:
3
+ schemaPath: packages/app/src/app/graphql/schema.graphql
4
+ extensions:
5
+ endpoints:
6
+ prod: 'https://codesandbox.io/api/graphql'
7
+ staging: 'https://codesandbox.stream/api/graphql'
8
+ dev: 'http://server:4000/api/graphql'
.imgbotconfig ADDED
@@ -0,0 +1,6 @@
 
 
 
 
 
 
 
1
+ {
2
+ "ignoredFiles": [
3
+ "*.svg",
4
+ "**/__image_snapshots__/**"
5
+ ]
6
+ }
.nvmrc ADDED
@@ -0,0 +1 @@
 
 
1
+ v16
.prettierignore ADDED
@@ -0,0 +1,20 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ !/standalone-packages/vscode/src/vs/codesandbox/
2
+ !/standalone-packages/vscode/src/vs/codesandbox/*
3
+ !/standalone-packages/vscode/src/vs/codesandbox/**/*.ts
4
+ !/standalone-packages/vscode/src/vs/codesandbox/**/*.*
5
+
6
+ dist/
7
+ lib/
8
+ packages/executors/.rts2_cache_cjs
9
+ packages/executors/.rts2_cache_es
10
+ packages/executors/.rts2_cache_umd
11
+ packages/homepage/.cache
12
+ packages/homepage/public
13
+ static/
14
+ /standalone-packages/*
15
+ www/
16
+
17
+ # Our server side code changes html, we don't want to unintentionally break this by formatting
18
+ *.html
19
+
20
+ .drone.yml
.prettierrc.js ADDED
@@ -0,0 +1,6 @@
 
 
 
 
 
 
 
1
+ module.exports = {
2
+ arrowParens: 'avoid',
3
+ proseWrap: 'always',
4
+ singleQuote: true,
5
+ trailingComma: 'es5',
6
+ };
.sentryclirc ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ [defaults]
2
+ org = codesandbox
3
+ project = client
.vscode/settings.json ADDED
@@ -0,0 +1,14 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "eslint.enable": true,
3
+ "typescript.tsdk": "node_modules/typescript/lib",
4
+ "eslint.validate": [
5
+ "javascript",
6
+ "javascriptreact",
7
+ { "language": "typescript", "autoFix": true },
8
+ { "language": "typescriptreact", "autoFix": true }
9
+ ],
10
+ "files.watcherExclude": {
11
+ "**/node_modules": true,
12
+ "**/node_modules/**": false
13
+ }
14
+ }
.yarnclean ADDED
@@ -0,0 +1,9 @@
 
 
 
 
 
 
 
 
 
 
1
+ @types/react-native
2
+ packages/app/node_modules/styled-components
3
+
4
+ # Prevent duplicate graphql. This doesn't seem to break anything
5
+ @divyenduz/ts-graphql-plugin/node_modules/**
6
+ graphql-config/node_modules/**
7
+
8
+ # Issue with jest conflicting with jest-styled-components
9
+ jest-styled-components/typings/**
.yarnclean.ci ADDED
@@ -0,0 +1,44 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # test directories
2
+ __tests__
3
+ test
4
+ tests
5
+ powered-test
6
+
7
+ # asset directories
8
+ docs
9
+ doc
10
+ website
11
+ images
12
+
13
+ # examples
14
+ example
15
+ examples
16
+
17
+ # code coverage directories
18
+ coverage
19
+ .nyc_output
20
+
21
+ # build scripts
22
+ Makefile
23
+ Gulpfile.js
24
+ Gruntfile.js
25
+
26
+ # configs
27
+ appveyor.yml
28
+ circle.yml
29
+ codeship-services.yml
30
+ codeship-steps.yml
31
+ wercker.yml
32
+ .tern-project
33
+ .gitattributes
34
+ .editorconfig
35
+ .*ignore
36
+ .eslintrc
37
+ .jshintrc
38
+ .flowconfig
39
+ .documentup.json
40
+ .yarn-metadata.json
41
+ .travis.yml
42
+
43
+ # misc
44
+ *.md
.yarnrc ADDED
@@ -0,0 +1 @@
 
 
1
+
CODE_OF_CONDUCT.md ADDED
@@ -0,0 +1,128 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # CodeSandbox Code of Conduct
2
+
3
+ ## Our Pledge
4
+
5
+ We as members, contributors, and leaders pledge to make participation in our
6
+ community a harassment-free experience for everyone, regardless of age, body
7
+ size, visible or invisible disability, ethnicity, sex characteristics, gender
8
+ identity and expression, level of experience, education, socio-economic status,
9
+ nationality, personal appearance, race, religion, or sexual identity and
10
+ orientation.
11
+
12
+ We pledge to act and interact in ways that contribute to an open, welcoming,
13
+ diverse, inclusive, and healthy community.
14
+
15
+ ## Our Standards
16
+
17
+ Examples of behavior that contributes to a positive environment for our
18
+ community include:
19
+
20
+ - Demonstrating empathy and kindness toward other people
21
+ - Being respectful of differing opinions, viewpoints, and experiences
22
+ - Giving and gracefully accepting constructive feedback
23
+ - Accepting responsibility and apologizing to those affected by our mistakes,
24
+ and learning from the experience
25
+ - Focusing on what is best not just for us as individuals, but for the overall
26
+ community
27
+
28
+ Examples of unacceptable behavior include:
29
+
30
+ - The use of sexualized language or imagery, and sexual attention or advances of
31
+ any kind
32
+ - Trolling, insulting or derogatory comments, and personal or political attacks
33
+ - Public or private harassment
34
+ - Publishing others' private information, such as a physical or email address,
35
+ without their explicit permission
36
+ - Other conduct which could reasonably be considered inappropriate in a
37
+ professional setting
38
+
39
+ ## Enforcement Responsibilities
40
+
41
+ Community leaders are responsible for clarifying and enforcing our standards of
42
+ acceptable behavior and will take appropriate and fair corrective action in
43
+ response to any behavior that they deem inappropriate, threatening, offensive,
44
+ or harmful.
45
+
46
+ Community leaders have the right and responsibility to remove, edit, or reject
47
+ comments, commits, code, wiki edits, issues, and other contributions that are
48
+ not aligned to this Code of Conduct, and will communicate reasons for moderation
49
+ decisions when appropriate.
50
+
51
+ ## Scope
52
+
53
+ This Code of Conduct applies within all community spaces, and also applies when
54
+ an individual is officially representing the community in public spaces.
55
+ Examples of representing our community include using an official e-mail address,
56
+ posting via an official social media account, or acting as an appointed
57
+ representative at an online or offline event.
58
+
59
+ ## Enforcement
60
+
61
+ Instances of abusive, harassing, or otherwise unacceptable behavior may be
62
+ reported to the community leaders responsible for enforcement at
63
+ support@codesandbox.io. All complaints will be reviewed and investigated
64
+ promptly and fairly.
65
+
66
+ All community leaders are obligated to respect the privacy and security of the
67
+ reporter of any incident.
68
+
69
+ ## Enforcement Guidelines
70
+
71
+ Community leaders will follow these Community Impact Guidelines in determining
72
+ the consequences for any action they deem in violation of this Code of Conduct:
73
+
74
+ ### 1. Correction
75
+
76
+ **Community Impact**: Use of inappropriate language or other behavior deemed
77
+ unprofessional or unwelcome in the community.
78
+
79
+ **Consequence**: A private, written warning from community leaders, providing
80
+ clarity around the nature of the violation and an explanation of why the
81
+ behavior was inappropriate. A public apology may be requested.
82
+
83
+ ### 2. Warning
84
+
85
+ **Community Impact**: A violation through a single incident or series of
86
+ actions.
87
+
88
+ **Consequence**: A warning with consequences for continued behavior. No
89
+ interaction with the people involved, including unsolicited interaction with
90
+ those enforcing the Code of Conduct, for a specified period of time. This
91
+ includes avoiding interactions in community spaces as well as external channels
92
+ like social media. Violating these terms may lead to a temporary or permanent
93
+ ban.
94
+
95
+ ### 3. Temporary Ban
96
+
97
+ **Community Impact**: A serious violation of community standards, including
98
+ sustained inappropriate behavior.
99
+
100
+ **Consequence**: A temporary ban from any sort of interaction or public
101
+ communication with the community for a specified period of time. No public or
102
+ private interaction with the people involved, including unsolicited interaction
103
+ with those enforcing the Code of Conduct, is allowed during this period.
104
+ Violating these terms may lead to a permanent ban.
105
+
106
+ ### 4. Permanent Ban
107
+
108
+ **Community Impact**: Demonstrating a pattern of violation of community
109
+ standards, including sustained inappropriate behavior, harassment of an
110
+ individual, or aggression toward or disparagement of classes of individuals.
111
+
112
+ **Consequence**: A permanent ban from any sort of public interaction within the
113
+ community.
114
+
115
+ ## Attribution
116
+
117
+ This Code of Conduct is adapted from the [Contributor Covenant][homepage],
118
+ version 2.0, available at
119
+ https://www.contributor-covenant.org/version/2/0/code_of_conduct.html.
120
+
121
+ Community Impact Guidelines were inspired by
122
+ [Mozilla's code of conduct enforcement ladder](https://github.com/mozilla/diversity).
123
+
124
+ [homepage]: https://www.contributor-covenant.org
125
+
126
+ For answers to common questions about this code of conduct, see the FAQ at
127
+ https://www.contributor-covenant.org/faq. Translations are available at
128
+ https://www.contributor-covenant.org/translations.
CONTRIBUTING.md ADDED
@@ -0,0 +1,128 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Contributing to CodeSandbox Client
2
+
3
+ ## Table of Contents
4
+
5
+ - [Code of Conduct](#code-of-conduct)
6
+ - [Code Organization](#code-organization)
7
+ - [Setting Up the project locally](#setting-up-the-project-locally)
8
+ - [Submitting a Pull Request](#submitting-a-pull-request)
9
+ - [Add yourself as a contributor](#add-yourself-as-a-contributor)
10
+
11
+ ## Code of Conduct
12
+
13
+ We have a code of conduct you can find [here](./CODE_OF_CONDUCT.md) and every
14
+ contributor is expected to obey the rules therein. Any issues or PRs that don't
15
+ abide by the code of conduct may be closed.
16
+
17
+ ## Code Organization
18
+
19
+ The CodeSandbox client is currently divided in to 5 parts. We use `lerna` to
20
+ share dependencies between these parts.
21
+
22
+ - `app`: The editor, the search, profile page, the embed and the sandbox.
23
+ - `common`: All common parts between these packages, reusable JS.
24
+ - `codesandbox-api`: The npm package that's responsible for communication
25
+ between the sandbox and the editor.
26
+ - `codesandbox-browserfs`: An in-browser file system that emulates the Node JS
27
+ file system API and supports storing and retrieving files from various
28
+ backends. Forked from
29
+ [https://github.com/jvilk/BrowserFS](https://github.com/jvilk/BrowserFS), with
30
+ an additional
31
+ [CodeSandbox backend](https://github.com/codesandbox/codesandbox-client/blob/main/standalone-packages/codesandbox-browserfs/src/backend/CodeSandboxFS.ts).
32
+
33
+ This version of CodeSandbox is using the production server as source of truth,
34
+ this is specified by the environment variable `LOCAL_SERVER`. If you're working
35
+ on a feature that needs you to be logged in, you can login on
36
+ [https://codesandbox.io/](https://codesandbox.io/) and copy the contents of the
37
+ `jwt` local storage key over to your development environment on
38
+ [http://localhost:3000/](http://localhost:3000/). **Be very careful with how you
39
+ handle the token**, as anyone who knows it can login as you and have read/write
40
+ access to all your CodeSandbox content!
41
+
42
+ **Working on your first Pull Request?** You can learn how from this _free_
43
+ series
44
+ [How to Contribute to an Open Source Project on GitHub](https://egghead.io/series/how-to-contribute-to-an-open-source-project-on-github)
45
+
46
+ ## Setting Up the project locally
47
+
48
+ To install the project you need to have `yarn` and `node`
49
+
50
+ 1. [Fork](https://help.github.com/articles/fork-a-repo/) the project, clone
51
+ your fork:
52
+
53
+ ```sh
54
+ # Clone your fork
55
+ git clone https://github.com/<your-username>/codesandbox-client.git
56
+
57
+ # Navigate to the newly cloned directory
58
+ cd codesandbox-client
59
+ ```
60
+
61
+ 2. Your environment needs to be running Node v. 10
62
+ - `.nvmrc` config exists in the repo root, specifying a v.10.x.x version
63
+ - you can use [fnm](https://github.com/Schniz/fnm) (`fnm use`) to change
64
+ your current node version to the one specified in `.nvmrc`
65
+ 3. from the root of the project: `yarn` to install all dependencies
66
+ - make sure you have latest `yarn` version
67
+ 4. from the root of the project: `yarn start`
68
+ - this builds the dependencies (`codesandbox-api` and
69
+ `codesandbox-browserfs`) and runs the `app` development environment,
70
+ available on [http://localhost:3000/s/new](http://localhost:3000/s/new)
71
+ - on subsequent runs you can also bypass dependencies building and use
72
+ `yarn start:fast`
73
+
74
+ > Tip: Keep your `main` branch pointing at the original repository and make pull
75
+ > requests from branches on your fork. To do this, run:
76
+ >
77
+ > ```sh
78
+ > git remote add upstream https://github.com/codesandbox/codesandbox-client.git
79
+ > git fetch upstream
80
+ > git branch --set-upstream-to=upstream/main main
81
+ > ```
82
+ >
83
+ > This will add the original repository as a "remote" called "upstream," then
84
+ > fetch the git information from that remote, then set your local `main` branch
85
+ > to use the upstream main branch whenever you run `git pull`. Then you can make
86
+ > all of your pull request branches based on this `main` branch. Whenever you
87
+ > want to update your version of `main`, do a regular `git pull`.
88
+
89
+ 5. If you want to debug the state of the app, use `npx overmind-devtools` and
90
+ make sure that the app is running. Learn more
91
+ [here](https://overmindjs.org/core/devtools).
92
+
93
+ ## Submitting a Pull Request
94
+
95
+ Please go through existing issues and pull requests to check if somebody else is
96
+ already working on it, we use `someone working on it` label to mark such issues.
97
+
98
+ Also, make sure to run the tests and lint the code before you commit your
99
+ changes.
100
+
101
+ ```sh
102
+ yarn test
103
+ yarn lint
104
+ ```
105
+
106
+ Before running `yarn lint`, you must have build our `common` and `notifications`
107
+ packages.
108
+
109
+ ```sh
110
+ yarn build:deps
111
+ ```
112
+
113
+ ## Add yourself as a contributor
114
+
115
+ This project follows the
116
+ [all-contributors](https://github.com/all-contributors/all-contributors)
117
+ specification. Contributions of any kind welcome!
118
+
119
+ To add yourself to the table of contributors on the `README.md`, please use the
120
+ automated script as part of your PR:
121
+
122
+ ```sh
123
+ yarn contributors:add
124
+ ```
125
+
126
+ Follow the prompt and commit `.all-contributorsrc` and `README.md` in the PR.
127
+
128
+ Thank you for taking the time to contribute! 👍
Dockerfile ADDED
@@ -0,0 +1,4 @@
 
 
 
 
 
1
+ FROM nginx:1.25.3-alpine
2
+
3
+ WORKDIR /var/www/codesandbox
4
+ COPY www ./
Gulpfile.js ADDED
@@ -0,0 +1,30 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ const gulp = require('gulp');
2
+ const _rimraf = require('rimraf');
3
+
4
+ function rimraf(dir) {
5
+ let retries = 0;
6
+
7
+ const retry = cb => {
8
+ _rimraf(dir, { maxBusyTries: 1 }, err => {
9
+ if (!err) {
10
+ return cb();
11
+ }
12
+
13
+ if (err.code === 'ENOTEMPTY' && ++retries < 5) {
14
+ return setTimeout(() => retry(cb), 10);
15
+ }
16
+
17
+ return cb(err);
18
+ });
19
+ };
20
+
21
+ return cb => retry(cb);
22
+ }
23
+
24
+ gulp.task('clean-vscode', rimraf('standalone-packages/monaco-editor-core'));
25
+
26
+ gulp.task('prepare-vscode', ['clean-vscode'], () =>
27
+ gulp
28
+ .src('standalone-packages/vscode/out-monaco-editor-core/**/*')
29
+ .pipe(gulp.dest('standalone-packages/monaco-editor-core'))
30
+ );
LICENSE ADDED
@@ -0,0 +1,18 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ CodeSandbox is licensed under GPLv3, except for `packages/common` and `packages/sandpack-core` and `packages/app/src/sandbox`,
2
+ which are licensed under the Apache License, Version 2.0.
3
+
4
+ CodeSandbox. An online code editor tailored for web application development.
5
+ Copyright (C) 2022 CodeSandbox
6
+
7
+ This program is free software: you can redistribute it and/or modify
8
+ it under the terms of the GNU General Public License as published by
9
+ the Free Software Foundation, either version 3 of the License, or
10
+ (at your option) any later version.
11
+
12
+ This program is distributed in the hope that it will be useful,
13
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
14
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15
+ GNU General Public License for more details.
16
+
17
+ You should have received a copy of the GNU General Public License
18
+ along with this program. If not, see <https://www.gnu.org/licenses/>.
README.md ADDED
@@ -0,0 +1,296 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <p align="center">
2
+ <a href="https://codesandbox.io">
3
+ <img src="https://codesandbox.io/static/img/banner.png?v=2" height="300px">
4
+ </a>
5
+ </p>
6
+
7
+ &nbsp;
8
+
9
+ [![All Contributors](https://img.shields.io/badge/all_contributors-153-orange.svg?style=flat-square)](#contributors-)
10
+ [![CircleCI](https://circleci.com/gh/codesandbox/codesandbox-client.svg?style=svg)](https://circleci.com/gh/codesandbox/codesandbox-client)
11
+ [![BrowserStack Status](https://www.browserstack.com/automate/badge.svg?badge_key=cVJuczlJWUtqWXhIbFN1ZjVQekF4NzNsd3phNEZRaGlWU0pHYVVkdGRFWT0tLXFtTVhaOWRySmN0ZG5QVDNDQ0g5Z0E9PQ==--79fe3eae4f149a400d396c9b12d3988f685785cf)](https://www.browserstack.com/automate/public-build/cVJuczlJWUtqWXhIbFN1ZjVQekF4NzNsd3phNEZRaGlWU0pHYVVkdGRFWT0tLXFtTVhaOWRySmN0ZG5QVDNDQ0g5Z0E9PQ==--79fe3eae4f149a400d396c9b12d3988f685785cf)
12
+ [![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square)](http://makeapullrequest.com)
13
+ [![first-timers-only Friendly](https://img.shields.io/badge/first--timers--only-friendly-blue.svg)](http://www.firsttimersonly.com/)
14
+ [![lerna](https://img.shields.io/badge/maintained%20with-lerna-cc00ff.svg)](https://lerna.js.org/)
15
+
16
+ An instantly ready, full-featured online IDE for web development on any device
17
+ with a browser. Enabling you to start new projects quickly and prototype
18
+ rapidly. With CodeSandbox, you can create web apps, experiment with code, test
19
+ ideas, and share creations easily.
20
+
21
+ ## Other CodeSandbox repositories
22
+
23
+ CodeSandbox consists of several separate servers, some of which are open
24
+ sourced.
25
+
26
+ - Client: the web application
27
+ - Server: the [Phoenix](https://github.com/phoenixframework/phoenix) API server
28
+ - Nginx: Nginx config files
29
+ - [Git Extractor](https://github.com/codesandbox/codesandbox-importers):
30
+ responsible for extracting the source from a GitHub repository
31
+ - [CLI](https://github.com/codesandbox/codesandbox-importers/tree/master/packages/cli):
32
+ the CLI to upload a CodeSandbox project from your command line
33
+
34
+ ## Documentation
35
+
36
+ You can find our documentation on our
37
+ [website](https://codesandbox.io/docs/learn/introduction/overview)
38
+
39
+ ## Contributors ✨
40
+
41
+ Thanks goes to these wonderful people
42
+ ([emoji key](https://github.com/all-contributors/all-contributors#emoji-key)):
43
+
44
+ <!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->
45
+ <!-- prettier-ignore-start -->
46
+ <!-- markdownlint-disable -->
47
+ <table>
48
+ <tbody>
49
+ <tr>
50
+ <td align="center" valign="top" width="14.28%"><a href="http://ivesvh.com"><img src="https://avatars0.githubusercontent.com/u/587016?v=3?s=100" width="100px;" alt="Ives van Hoorne"/><br /><sub><b>Ives van Hoorne</b></sub></a><br /><a href="#question-CompuIves" title="Answering Questions">💬</a> <a href="#blog-CompuIves" title="Blogposts">📝</a> <a href="https://github.com/codesandbox/codesandbox-client/issues?q=author%3ACompuIves" title="Bug reports">🐛</a> <a href="https://github.com/codesandbox/codesandbox-client/commits?author=CompuIves" title="Code">💻</a> <a href="#design-CompuIves" title="Design">🎨</a> <a href="https://github.com/codesandbox/codesandbox-client/commits?author=CompuIves" title="Documentation">📖</a> <a href="#example-CompuIves" title="Examples">💡</a> <a href="#infra-CompuIves" title="Infrastructure (Hosting, Build-Tools, etc)">🚇</a> <a href="https://github.com/codesandbox/codesandbox-client/pulls?q=is%3Apr+reviewed-by%3ACompuIves" title="Reviewed Pull Requests">👀</a> <a href="https://github.com/codesandbox/codesandbox-client/commits?author=CompuIves" title="Tests">⚠️</a> <a href="#tool-CompuIves" title="Tools">🔧</a></td>
51
+ <td align="center" valign="top" width="14.28%"><a href="http://donavon.com"><img src="https://avatars0.githubusercontent.com/u/887639?v=3?s=100" width="100px;" alt="Donavon West"/><br /><sub><b>Donavon West</b></sub></a><br /><a href="https://github.com/codesandbox/codesandbox-client/commits?author=donavon" title="Code">💻</a></td>
52
+ <td align="center" valign="top" width="14.28%"><a href="http://www.jeffallen.io/"><img src="https://avatars0.githubusercontent.com/u/5266810?v=3?s=100" width="100px;" alt="Jeff Allen"/><br /><sub><b>Jeff Allen</b></sub></a><br /><a href="https://github.com/codesandbox/codesandbox-client/commits?author=vueu" title="Code">💻</a></td>
53
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/bengummer"><img src="https://avatars0.githubusercontent.com/u/1089897?v=3?s=100" width="100px;" alt="Ben Gummer"/><br /><sub><b>Ben Gummer</b></sub></a><br /><a href="https://github.com/codesandbox/codesandbox-client/commits?author=bengummer" title="Code">💻</a></td>
54
+ <td align="center" valign="top" width="14.28%"><a href="http://twitter.com/faceyspacey"><img src="https://avatars3.githubusercontent.com/u/154732?v=3?s=100" width="100px;" alt="James Gillmore"/><br /><sub><b>James Gillmore</b></sub></a><br /><a href="https://github.com/codesandbox/codesandbox-client/commits?author=faceyspacey" title="Code">💻</a> <a href="https://github.com/codesandbox/codesandbox-client/issues?q=author%3Afaceyspacey" title="Bug reports">🐛</a></td>
55
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/viankakrisna"><img src="https://avatars1.githubusercontent.com/u/9636410?v=4?s=100" width="100px;" alt="Ade Viankakrisna Fadlil"/><br /><sub><b>Ade Viankakrisna Fadlil</b></sub></a><br /><a href="https://github.com/codesandbox/codesandbox-client/commits?author=viankakrisna" title="Code">💻</a></td>
56
+ <td align="center" valign="top" width="14.28%"><a href="https://twitter.com/tushkiz"><img src="https://avatars1.githubusercontent.com/u/1854763?v=4?s=100" width="100px;" alt="Tushar Sonawane"/><br /><sub><b>Tushar Sonawane</b></sub></a><br /><a href="#question-Tushkiz" title="Answering Questions">💬</a> <a href="https://github.com/codesandbox/codesandbox-client/commits?author=Tushkiz" title="Code">💻</a> <a href="https://github.com/codesandbox/codesandbox-client/commits?author=Tushkiz" title="Documentation">📖</a> <a href="#ideas-Tushkiz" title="Ideas, Planning, & Feedback">🤔</a></td>
57
+ </tr>
58
+ <tr>
59
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/johann-sonntagbauer"><img src="https://avatars3.githubusercontent.com/u/1239401?v=4?s=100" width="100px;" alt="Johann Hubert Sonntagbauer"/><br /><sub><b>Johann Hubert Sonntagbauer</b></sub></a><br /><a href="https://github.com/codesandbox/codesandbox-client/issues?q=author%3Ajohann-sonntagbauer" title="Bug reports">🐛</a> <a href="https://github.com/codesandbox/codesandbox-client/commits?author=johann-sonntagbauer" title="Code">💻</a></td>
60
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/jseminck"><img src="https://avatars2.githubusercontent.com/u/9586897?v=4?s=100" width="100px;" alt="Joachim Seminck"/><br /><sub><b>Joachim Seminck</b></sub></a><br /><a href="https://github.com/codesandbox/codesandbox-client/commits?author=jseminck" title="Code">💻</a></td>
61
+ <td align="center" valign="top" width="14.28%"><a href="http://chakrihacker.github.io"><img src="https://avatars3.githubusercontent.com/u/5210019?v=4?s=100" width="100px;" alt="Subramanya Chakravarthy"/><br /><sub><b>Subramanya Chakravarthy</b></sub></a><br /><a href="https://github.com/codesandbox/codesandbox-client/commits?author=chakrihacker" title="Code">💻</a></td>
62
+ <td align="center" valign="top" width="14.28%"><a href="http://robby.oconnor.ninja"><img src="https://avatars3.githubusercontent.com/u/23088?v=4?s=100" width="100px;" alt="Robert (Robby) O'Connor"/><br /><sub><b>Robert (Robby) O'Connor</b></sub></a><br /><a href="#infra-robbyoconnor" title="Infrastructure (Hosting, Build-Tools, etc)">🚇</a></td>
63
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/lbogdan"><img src="https://avatars0.githubusercontent.com/u/2083930?v=4?s=100" width="100px;" alt="Bogdan Luca"/><br /><sub><b>Bogdan Luca</b></sub></a><br /><a href="https://github.com/codesandbox/codesandbox-client/issues?q=author%3Albogdan" title="Bug reports">🐛</a> <a href="https://github.com/codesandbox/codesandbox-client/commits?author=lbogdan" title="Code">💻</a></td>
64
+ <td align="center" valign="top" width="14.28%"><a href="http://bogas04.github.io"><img src="https://avatars3.githubusercontent.com/u/6177621?v=4?s=100" width="100px;" alt="Divjot Singh"/><br /><sub><b>Divjot Singh</b></sub></a><br /><a href="https://github.com/codesandbox/codesandbox-client/commits?author=bogas04" title="Code">💻</a></td>
65
+ <td align="center" valign="top" width="14.28%"><a href="http://www.jsonnull.com"><img src="https://avatars3.githubusercontent.com/u/5249539?v=4?s=100" width="100px;" alt="Jason Nall"/><br /><sub><b>Jason Nall</b></sub></a><br /><a href="https://github.com/codesandbox/codesandbox-client/commits?author=jsonnull" title="Code">💻</a></td>
66
+ </tr>
67
+ <tr>
68
+ <td align="center" valign="top" width="14.28%"><a href="https://elrumordelaluz.com"><img src="https://avatars3.githubusercontent.com/u/784056?v=4?s=100" width="100px;" alt="Lionel"/><br /><sub><b>Lionel</b></sub></a><br /><a href="https://github.com/codesandbox/codesandbox-client/commits?author=elrumordelaluz" title="Code">💻</a> <a href="#design-elrumordelaluz" title="Design">🎨</a></td>
69
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/brumm"><img src="https://avatars3.githubusercontent.com/u/170500?v=4?s=100" width="100px;" alt="Philipp Brumm"/><br /><sub><b>Philipp Brumm</b></sub></a><br /><a href="https://github.com/codesandbox/codesandbox-client/commits?author=brumm" title="Code">💻</a></td>
70
+ <td align="center" valign="top" width="14.28%"><a href="http://valentin-hervieu.fr"><img src="https://avatars2.githubusercontent.com/u/2678610?v=4?s=100" width="100px;" alt="Valentin Hervieu"/><br /><sub><b>Valentin Hervieu</b></sub></a><br /><a href="https://github.com/codesandbox/codesandbox-client/commits?author=ValentinH" title="Code">💻</a> <a href="https://github.com/codesandbox/codesandbox-client/issues?q=author%3AValentinH" title="Bug reports">🐛</a></td>
71
+ <td align="center" valign="top" width="14.28%"><a href="http://anenth.js.org"><img src="https://avatars0.githubusercontent.com/u/1499218?v=4?s=100" width="100px;" alt="Anenth"/><br /><sub><b>Anenth</b></sub></a><br /><a href="https://github.com/codesandbox/codesandbox-client/commits?author=Anenth" title="Code">💻</a> <a href="#design-Anenth" title="Design">🎨</a> <a href="#ideas-Anenth" title="Ideas, Planning, & Feedback">🤔</a></td>
72
+ <td align="center" valign="top" width="14.28%"><a href="http://dsds.io"><img src="https://avatars0.githubusercontent.com/u/410792?v=4?s=100" width="100px;" alt="Dony Sukardi"/><br /><sub><b>Dony Sukardi</b></sub></a><br /><a href="https://github.com/codesandbox/codesandbox-client/issues?q=author%3Adonysukardi" title="Bug reports">🐛</a> <a href="https://github.com/codesandbox/codesandbox-client/commits?author=donysukardi" title="Code">💻</a></td>
73
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/duivvv"><img src="https://avatars3.githubusercontent.com/u/89046?v=4?s=100" width="100px;" alt="Geoffrey Dhuyvetters"/><br /><sub><b>Geoffrey Dhuyvetters</b></sub></a><br /><a href="#design-duivvv" title="Design">🎨</a> <a href="https://github.com/codesandbox/codesandbox-client/commits?author=duivvv" title="Code">💻</a></td>
74
+ <td align="center" valign="top" width="14.28%"><a href="http://nyaganti.com"><img src="https://avatars3.githubusercontent.com/u/3381746?v=4?s=100" width="100px;" alt="Eswar Yaganti"/><br /><sub><b>Eswar Yaganti</b></sub></a><br /><a href="https://github.com/codesandbox/codesandbox-client/commits?author=nagamalli9999" title="Code">💻</a> <a href="#infra-nagamalli9999" title="Infrastructure (Hosting, Build-Tools, etc)">🚇</a></td>
75
+ </tr>
76
+ <tr>
77
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/tansongyang"><img src="https://avatars3.githubusercontent.com/u/9488719?v=4?s=100" width="100px;" alt="Frank Tan"/><br /><sub><b>Frank Tan</b></sub></a><br /><a href="https://github.com/codesandbox/codesandbox-client/commits?author=tansongyang" title="Code">💻</a></td>
78
+ <td align="center" valign="top" width="14.28%"><a href="https://bilalbudhani.com"><img src="https://avatars0.githubusercontent.com/u/1650995?v=4?s=100" width="100px;" alt="Bilal Budhani"/><br /><sub><b>Bilal Budhani</b></sub></a><br /><a href="https://github.com/codesandbox/codesandbox-client/commits?author=BilalBudhani" title="Code">💻</a></td>
79
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/JulianMayorga"><img src="https://avatars3.githubusercontent.com/u/843342?v=4?s=100" width="100px;" alt="El Juli"/><br /><sub><b>El Juli</b></sub></a><br /><a href="https://github.com/codesandbox/codesandbox-client/commits?author=JulianMayorga" title="Code">💻</a></td>
80
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/arthurdenner"><img src="https://avatars0.githubusercontent.com/u/13774309?v=4?s=100" width="100px;" alt="Arthur Denner"/><br /><sub><b>Arthur Denner</b></sub></a><br /><a href="https://github.com/codesandbox/codesandbox-client/commits?author=arthurdenner" title="Code">💻</a> <a href="https://github.com/codesandbox/codesandbox-client/commits?author=arthurdenner" title="Documentation">📖</a></td>
81
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/RSG-Group"><img src="https://avatars3.githubusercontent.com/u/12954909?v=4?s=100" width="100px;" alt="Radi Cho"/><br /><sub><b>Radi Cho</b></sub></a><br /><a href="https://github.com/codesandbox/codesandbox-client/issues?q=author%3Aradi-cho" title="Bug reports">🐛</a> <a href="https://github.com/codesandbox/codesandbox-client/commits?author=radi-cho" title="Code">💻</a> <a href="#ideas-radi-cho" title="Ideas, Planning, & Feedback">🤔</a></td>
82
+ <td align="center" valign="top" width="14.28%"><a href="https://twitter.com/chxy"><img src="https://avatars3.githubusercontent.com/u/679275?v=4?s=100" width="100px;" alt="Xiaoyi Chen"/><br /><sub><b>Xiaoyi Chen</b></sub></a><br /><a href="https://github.com/codesandbox/codesandbox-client/commits?author=xyc" title="Code">💻</a></td>
83
+ <td align="center" valign="top" width="14.28%"><a href="https://twitter.com/gautam"><img src="https://avatars3.githubusercontent.com/u/1215971?v=4?s=100" width="100px;" alt="Gautam Arora"/><br /><sub><b>Gautam Arora</b></sub></a><br /><a href="https://github.com/codesandbox/codesandbox-client/commits?author=gautamarora" title="Code">💻</a> <a href="#ideas-gautamarora" title="Ideas, Planning, & Feedback">🤔</a></td>
84
+ </tr>
85
+ <tr>
86
+ <td align="center" valign="top" width="14.28%"><a href="https://twitter.com/haroenv"><img src="https://avatars3.githubusercontent.com/u/6270048?v=4?s=100" width="100px;" alt="Haroen Viaene"/><br /><sub><b>Haroen Viaene</b></sub></a><br /><a href="https://github.com/codesandbox/codesandbox-client/commits?author=Haroenv" title="Code">💻</a> <a href="#design-Haroenv" title="Design">🎨</a></td>
87
+ <td align="center" valign="top" width="14.28%"><a href="https://nicknisi.com"><img src="https://avatars1.githubusercontent.com/u/293805?v=4?s=100" width="100px;" alt="Nick Nisi"/><br /><sub><b>Nick Nisi</b></sub></a><br /><a href="https://github.com/codesandbox/codesandbox-client/commits?author=nicknisi" title="Code">💻</a></td>
88
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/Jakhotiya"><img src="https://avatars2.githubusercontent.com/u/9327315?v=4?s=100" width="100px;" alt="Abhishek Jakhotiya"/><br /><sub><b>Abhishek Jakhotiya</b></sub></a><br /><a href="https://github.com/codesandbox/codesandbox-client/commits?author=Jakhotiya" title="Code">💻</a> <a href="https://github.com/codesandbox/codesandbox-client/issues?q=author%3AJakhotiya" title="Bug reports">🐛</a></td>
89
+ <td align="center" valign="top" width="14.28%"><a href="http://twitter.com/tomkuehl_"><img src="https://avatars2.githubusercontent.com/u/14299145?v=4?s=100" width="100px;" alt="Tom Kühl"/><br /><sub><b>Tom Kühl</b></sub></a><br /><a href="https://github.com/codesandbox/codesandbox-client/commits?author=tomkuehl" title="Code">💻</a></td>
90
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/br1anchen"><img src="https://avatars2.githubusercontent.com/u/1086461?v=4?s=100" width="100px;" alt="br1anchen"/><br /><sub><b>br1anchen</b></sub></a><br /><a href="https://github.com/codesandbox/codesandbox-client/commits?author=br1anchen" title="Code">💻</a></td>
91
+ <td align="center" valign="top" width="14.28%"><a href="https://arthelon.github.io"><img src="https://avatars3.githubusercontent.com/u/11952174?v=4?s=100" width="100px;" alt="Daniel Hsing"/><br /><sub><b>Daniel Hsing</b></sub></a><br /><a href="https://github.com/codesandbox/codesandbox-client/commits?author=Arthelon" title="Code">💻</a></td>
92
+ <td align="center" valign="top" width="14.28%"><a href="https://twitter.com/_maciejka"><img src="https://avatars2.githubusercontent.com/u/5403694?v=4?s=100" width="100px;" alt="Maciej Kasprzyk"/><br /><sub><b>Maciej Kasprzyk</b></sub></a><br /><a href="https://github.com/codesandbox/codesandbox-client/commits?author=maciej-ka" title="Code">💻</a></td>
93
+ </tr>
94
+ <tr>
95
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/robertheessels"><img src="https://avatars2.githubusercontent.com/u/596727?v=4?s=100" width="100px;" alt="Robert Heessels"/><br /><sub><b>Robert Heessels</b></sub></a><br /><a href="https://github.com/codesandbox/codesandbox-client/commits?author=robertheessels" title="Documentation">📖</a></td>
96
+ <td align="center" valign="top" width="14.28%"><a href="https://ryanpcmcquen.org"><img src="https://avatars3.githubusercontent.com/u/772937?v=4?s=100" width="100px;" alt="Ryan P. C. McQuen"/><br /><sub><b>Ryan P. C. McQuen</b></sub></a><br /><a href="https://github.com/codesandbox/codesandbox-client/commits?author=ryanpcmcquen" title="Code">💻</a></td>
97
+ <td align="center" valign="top" width="14.28%"><a href="http://chrisrjones.com"><img src="https://avatars3.githubusercontent.com/u/613805?v=4?s=100" width="100px;" alt="Chris"/><br /><sub><b>Chris</b></sub></a><br /><a href="https://github.com/codesandbox/codesandbox-client/commits?author=ipatch" title="Code">💻</a></td>
98
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/drewsmith"><img src="https://avatars3.githubusercontent.com/u/595469?v=4?s=100" width="100px;" alt="Drew Smith"/><br /><sub><b>Drew Smith</b></sub></a><br /><a href="https://github.com/codesandbox/codesandbox-client/commits?author=drewsmith" title="Code">💻</a></td>
99
+ <td align="center" valign="top" width="14.28%"><a href="https://codefund.app"><img src="https://avatars2.githubusercontent.com/u/12481?v=4?s=100" width="100px;" alt="Eric Berry"/><br /><sub><b>Eric Berry</b></sub></a><br /><a href="https://github.com/codesandbox/codesandbox-client/commits?author=coderberry" title="Code">💻</a></td>
100
+ <td align="center" valign="top" width="14.28%"><a href="https://www.hum4n01d.me"><img src="https://avatars1.githubusercontent.com/u/17228477?v=4?s=100" width="100px;" alt="Hum4n01d"/><br /><sub><b>Hum4n01d</b></sub></a><br /><a href="https://github.com/codesandbox/codesandbox-client/commits?author=Hum4n01d" title="Code">💻</a></td>
101
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/malwilley"><img src="https://avatars3.githubusercontent.com/u/10888943?v=4?s=100" width="100px;" alt="Malachi Willey"/><br /><sub><b>Malachi Willey</b></sub></a><br /><a href="https://github.com/codesandbox/codesandbox-client/commits?author=malwilley" title="Code">💻</a></td>
102
+ </tr>
103
+ <tr>
104
+ <td align="center" valign="top" width="14.28%"><a href="https://twitter.com/mweststrate"><img src="https://avatars0.githubusercontent.com/u/1820292?v=4?s=100" width="100px;" alt="Michel Weststrate"/><br /><sub><b>Michel Weststrate</b></sub></a><br /><a href="https://github.com/codesandbox/codesandbox-client/commits?author=mweststrate" title="Code">💻</a></td>
105
+ <td align="center" valign="top" width="14.28%"><a href="https://kof.github.io"><img src="https://avatars0.githubusercontent.com/u/52824?v=4?s=100" width="100px;" alt="Oleg"/><br /><sub><b>Oleg</b></sub></a><br /><a href="https://github.com/codesandbox/codesandbox-client/commits?author=kof" title="Code">💻</a></td>
106
+ <td align="center" valign="top" width="14.28%"><a href="https://www.pshrmn.com"><img src="https://avatars0.githubusercontent.com/u/1127037?v=4?s=100" width="100px;" alt="Paul Sherman"/><br /><sub><b>Paul Sherman</b></sub></a><br /><a href="https://github.com/codesandbox/codesandbox-client/issues?q=author%3Apshrmn" title="Bug reports">🐛</a> <a href="https://github.com/codesandbox/codesandbox-client/commits?author=pshrmn" title="Code">💻</a></td>
107
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/ro-savage"><img src="https://avatars2.githubusercontent.com/u/9244507?v=4?s=100" width="100px;" alt="Ro Savage"/><br /><sub><b>Ro Savage</b></sub></a><br /><a href="https://github.com/codesandbox/codesandbox-client/commits?author=ro-savage" title="Code">💻</a></td>
108
+ <td align="center" valign="top" width="14.28%"><a href="https://samdd.me"><img src="https://avatars3.githubusercontent.com/u/13242392?v=4?s=100" width="100px;" alt="Sam Denty"/><br /><sub><b>Sam Denty</b></sub></a><br /><a href="https://github.com/codesandbox/codesandbox-client/commits?author=samdenty" title="Code">💻</a></td>
109
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/zephraph"><img src="https://avatars1.githubusercontent.com/u/3087225?v=4?s=100" width="100px;" alt="Zephraph"/><br /><sub><b>Zephraph</b></sub></a><br /><a href="https://github.com/codesandbox/codesandbox-client/commits?author=zephraph" title="Code">💻</a></td>
110
+ <td align="center" valign="top" width="14.28%"><a href="https://joshwaller.dev"><img src="https://avatars1.githubusercontent.com/u/1900735?v=4?s=100" width="100px;" alt="Josh Waller"/><br /><sub><b>Josh Waller</b></sub></a><br /><a href="https://github.com/codesandbox/codesandbox-client/issues?q=author%3Amdxprograms" title="Bug reports">🐛</a> <a href="https://github.com/codesandbox/codesandbox-client/commits?author=mdxprograms" title="Code">💻</a> <a href="https://github.com/codesandbox/codesandbox-client/commits?author=mdxprograms" title="Documentation">📖</a></td>
111
+ </tr>
112
+ <tr>
113
+ <td align="center" valign="top" width="14.28%"><a href="http://joey.co.ke"><img src="https://avatars0.githubusercontent.com/u/1195863?v=4?s=100" width="100px;" alt="Joe Ng'ethe"/><br /><sub><b>Joe Ng'ethe</b></sub></a><br /><a href="https://github.com/codesandbox/codesandbox-client/commits?author=joeynimu" title="Code">💻</a></td>
114
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/bitblitter"><img src="https://avatars0.githubusercontent.com/u/576935?v=4?s=100" width="100px;" alt="Carles Codony"/><br /><sub><b>Carles Codony</b></sub></a><br /><a href="https://github.com/codesandbox/codesandbox-client/commits?author=bitblitter" title="Code">💻</a></td>
115
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/FDiskas"><img src="https://avatars2.githubusercontent.com/u/468006?v=4?s=100" width="100px;" alt="Vytenis"/><br /><sub><b>Vytenis</b></sub></a><br /><a href="https://github.com/codesandbox/codesandbox-client/commits?author=FDiskas" title="Code">💻</a></td>
116
+ <td align="center" valign="top" width="14.28%"><a href="http://manueldugue.de"><img src="https://avatars1.githubusercontent.com/u/894149?v=4?s=100" width="100px;" alt="Manuel Dugué"/><br /><sub><b>Manuel Dugué</b></sub></a><br /><a href="https://github.com/codesandbox/codesandbox-client/issues?q=author%3Amdugue" title="Bug reports">🐛</a> <a href="https://github.com/codesandbox/codesandbox-client/commits?author=mdugue" title="Code">💻</a></td>
117
+ <td align="center" valign="top" width="14.28%"><a href="https://dem.be"><img src="https://avatars2.githubusercontent.com/u/5346497?v=4?s=100" width="100px;" alt="Demian Dekoninck"/><br /><sub><b>Demian Dekoninck</b></sub></a><br /><a href="https://github.com/codesandbox/codesandbox-client/commits?author=DemianD" title="Code">💻</a></td>
118
+ <td align="center" valign="top" width="14.28%"><a href="http://www.saeris.io"><img src="https://avatars2.githubusercontent.com/u/3144549?v=4?s=100" width="100px;" alt="Drake Costa"/><br /><sub><b>Drake Costa</b></sub></a><br /><a href="https://github.com/codesandbox/codesandbox-client/commits?author=Saeris" title="Code">💻</a></td>
119
+ <td align="center" valign="top" width="14.28%"><a href="https://cxjs.io/"><img src="https://avatars2.githubusercontent.com/u/433394?v=4?s=100" width="100px;" alt="Marko Stijak"/><br /><sub><b>Marko Stijak</b></sub></a><br /><a href="https://github.com/codesandbox/codesandbox-client/commits?author=mstijak" title="Code">💻</a></td>
120
+ </tr>
121
+ <tr>
122
+ <td align="center" valign="top" width="14.28%"><a href="https://twitter.com/ilya_komar0ff"><img src="https://avatars2.githubusercontent.com/u/10588170?v=4?s=100" width="100px;" alt="Ilya"/><br /><sub><b>Ilya</b></sub></a><br /><a href="#question-Komar0ff" title="Answering Questions">💬</a> <a href="#ideas-Komar0ff" title="Ideas, Planning, & Feedback">🤔</a></td>
123
+ <td align="center" valign="top" width="14.28%"><a href="https://twitter.com/elaurent_"><img src="https://avatars2.githubusercontent.com/u/10627086?v=4?s=100" width="100px;" alt="Emerson Laurentino"/><br /><sub><b>Emerson Laurentino</b></sub></a><br /><a href="https://github.com/codesandbox/codesandbox-client/commits?author=emersonlaurentino" title="Code">💻</a> <a href="https://github.com/codesandbox/codesandbox-client/issues?q=author%3Aemersonlaurentino" title="Bug reports">🐛</a></td>
124
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/lifeiscontent"><img src="https://avatars3.githubusercontent.com/u/180963?v=4?s=100" width="100px;" alt="Aaron Reisman"/><br /><sub><b>Aaron Reisman</b></sub></a><br /><a href="https://github.com/codesandbox/codesandbox-client/issues?q=author%3Alifeiscontent" title="Bug reports">🐛</a> <a href="https://github.com/codesandbox/codesandbox-client/commits?author=lifeiscontent" title="Code">💻</a> <a href="#platform-lifeiscontent" title="Packaging/porting to new platform">📦</a></td>
125
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/colshacol"><img src="https://avatars2.githubusercontent.com/u/19484365?v=4?s=100" width="100px;" alt="Colton Colcleasure"/><br /><sub><b>Colton Colcleasure</b></sub></a><br /><a href="https://github.com/codesandbox/codesandbox-client/commits?author=colshacol" title="Code">💻</a> <a href="https://github.com/codesandbox/codesandbox-client/issues?q=author%3Acolshacol" title="Bug reports">🐛</a></td>
126
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/PJWalker"><img src="https://avatars0.githubusercontent.com/u/497242?v=4?s=100" width="100px;" alt="PJ Walker"/><br /><sub><b>PJ Walker</b></sub></a><br /><a href="https://github.com/codesandbox/codesandbox-client/issues?q=author%3APJWalker" title="Bug reports">🐛</a> <a href="https://github.com/codesandbox/codesandbox-client/commits?author=PJWalker" title="Code">💻</a></td>
127
+ <td align="center" valign="top" width="14.28%"><a href="https://satya.tech"><img src="https://avatars2.githubusercontent.com/u/29819102?v=4?s=100" width="100px;" alt="Satya Rohith"/><br /><sub><b>Satya Rohith</b></sub></a><br /><a href="https://github.com/codesandbox/codesandbox-client/commits?author=satyarohith" title="Code">💻</a> <a href="https://github.com/codesandbox/codesandbox-client/commits?author=satyarohith" title="Documentation">📖</a></td>
128
+ <td align="center" valign="top" width="14.28%"><a href="https://www.melanieseltzer.io/"><img src="https://avatars1.githubusercontent.com/u/17421347?v=4?s=100" width="100px;" alt="Melanie Seltzer"/><br /><sub><b>Melanie Seltzer</b></sub></a><br /><a href="https://github.com/codesandbox/codesandbox-client/commits?author=melanieseltzer" title="Code">💻</a></td>
129
+ </tr>
130
+ <tr>
131
+ <td align="center" valign="top" width="14.28%"><a href="http://zyszys.top"><img src="https://avatars1.githubusercontent.com/u/23313266?v=4?s=100" width="100px;" alt="ZYSzys"/><br /><sub><b>ZYSzys</b></sub></a><br /><a href="https://github.com/codesandbox/codesandbox-client/commits?author=ZYSzys" title="Documentation">📖</a></td>
132
+ <td align="center" valign="top" width="14.28%"><a href="http://iamsaravieira.com"><img src="https://avatars0.githubusercontent.com/u/1051509?v=4?s=100" width="100px;" alt="Sara Vieira"/><br /><sub><b>Sara Vieira</b></sub></a><br /><a href="https://github.com/codesandbox/codesandbox-client/commits?author=SaraVieira" title="Code">💻</a> <a href="#design-SaraVieira" title="Design">🎨</a> <a href="#ideas-SaraVieira" title="Ideas, Planning, & Feedback">🤔</a></td>
133
+ <td align="center" valign="top" width="14.28%"><a href="https://francoischalifour.com"><img src="https://avatars3.githubusercontent.com/u/6137112?v=4?s=100" width="100px;" alt="François Chalifour"/><br /><sub><b>François Chalifour</b></sub></a><br /><a href="https://github.com/codesandbox/codesandbox-client/issues?q=author%3Afrancoischalifour" title="Bug reports">🐛</a> <a href="https://github.com/codesandbox/codesandbox-client/commits?author=francoischalifour" title="Code">💻</a></td>
134
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/abdullahtariq1171"><img src="https://avatars0.githubusercontent.com/u/5623766?v=4?s=100" width="100px;" alt="Abdullah"/><br /><sub><b>Abdullah</b></sub></a><br /><a href="https://github.com/codesandbox/codesandbox-client/commits?author=abdullahtariq1171" title="Code">💻</a> <a href="#design-abdullahtariq1171" title="Design">🎨</a></td>
135
+ <td align="center" valign="top" width="14.28%"><a href="https://jonshort.me/"><img src="https://avatars2.githubusercontent.com/u/21317379?v=4?s=100" width="100px;" alt="Jon Short"/><br /><sub><b>Jon Short</b></sub></a><br /><a href="https://github.com/codesandbox/codesandbox-client/commits?author=JonShort" title="Code">💻</a></td>
136
+ <td align="center" valign="top" width="14.28%"><a href="https://twitter.com/dvv297"><img src="https://avatars2.githubusercontent.com/u/5365325?v=4?s=100" width="100px;" alt="Daniel Vu"/><br /><sub><b>Daniel Vu</b></sub></a><br /><a href="https://github.com/codesandbox/codesandbox-client/commits?author=dv297" title="Code">💻</a></td>
137
+ <td align="center" valign="top" width="14.28%"><a href="https://www.viveknayyar.in/"><img src="https://avatars3.githubusercontent.com/u/4931048?v=4?s=100" width="100px;" alt="Vivek Nayyar"/><br /><sub><b>Vivek Nayyar</b></sub></a><br /><a href="https://github.com/codesandbox/codesandbox-client/commits?author=vivek12345" title="Code">💻</a></td>
138
+ </tr>
139
+ <tr>
140
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/bobziroll"><img src="https://avatars3.githubusercontent.com/u/6244647?v=4?s=100" width="100px;" alt="Bob Ziroll"/><br /><sub><b>Bob Ziroll</b></sub></a><br /><a href="https://github.com/codesandbox/codesandbox-client/commits?author=bobziroll" title="Documentation">📖</a></td>
141
+ <td align="center" valign="top" width="14.28%"><a href="https://blog.lichter.io"><img src="https://avatars0.githubusercontent.com/u/640208?v=4?s=100" width="100px;" alt="Alexander Lichter"/><br /><sub><b>Alexander Lichter</b></sub></a><br /><a href="https://github.com/codesandbox/codesandbox-client/commits?author=manniL" title="Code">💻</a></td>
142
+ <td align="center" valign="top" width="14.28%"><a href="https://www.chiamaka.xyz/"><img src="https://avatars3.githubusercontent.com/u/2737103?v=4?s=100" width="100px;" alt="Chiamaka Nwolisa"/><br /><sub><b>Chiamaka Nwolisa</b></sub></a><br /><a href="https://github.com/codesandbox/codesandbox-client/commits?author=chiamaka" title="Code">💻</a></td>
143
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/shreeve"><img src="https://avatars2.githubusercontent.com/u/142875?s=460&v=4?s=100" width="100px;" alt="Steve Shreeve"/><br /><sub><b>Steve Shreeve</b></sub></a><br /><a href="https://github.com/codesandbox/codesandbox-client/commits?author=shreeve" title="Code">💻</a></td>
144
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/rowild"><img src="https://avatars1.githubusercontent.com/u/213803?v=4?s=100" width="100px;" alt="Robert Wildling"/><br /><sub><b>Robert Wildling</b></sub></a><br /><a href="https://github.com/codesandbox/codesandbox-client/commits?author=rowild" title="Code">💻</a></td>
145
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/Noviny"><img src="https://avatars1.githubusercontent.com/u/15622106?v=4?s=100" width="100px;" alt="Ben Conolly"/><br /><sub><b>Ben Conolly</b></sub></a><br /><a href="https://github.com/codesandbox/codesandbox-client/commits?author=Noviny" title="Code">💻</a></td>
146
+ <td align="center" valign="top" width="14.28%"><a href="https://twitter.com/wuweiweiwu"><img src="https://avatars3.githubusercontent.com/u/35270620?v=4?s=100" width="100px;" alt="Wei-Wei Wu"/><br /><sub><b>Wei-Wei Wu</b></sub></a><br /><a href="https://github.com/codesandbox/codesandbox-client/commits?author=wuweiweiwu" title="Code">💻</a></td>
147
+ </tr>
148
+ <tr>
149
+ <td align="center" valign="top" width="14.28%"><a href="https://www.alexvcasillas.com"><img src="https://avatars2.githubusercontent.com/u/9496960?v=4?s=100" width="100px;" alt="Alex Casillas"/><br /><sub><b>Alex Casillas</b></sub></a><br /><a href="https://github.com/codesandbox/codesandbox-client/commits?author=alexvcasillas" title="Code">💻</a></td>
150
+ <td align="center" valign="top" width="14.28%"><a href="https://brian.ng"><img src="https://avatars3.githubusercontent.com/u/56288?v=4?s=100" width="100px;" alt="Brian Ng"/><br /><sub><b>Brian Ng</b></sub></a><br /><a href="https://github.com/codesandbox/codesandbox-client/commits?author=existentialism" title="Code">💻</a></td>
151
+ <td align="center" valign="top" width="14.28%"><a href="https://mike.works"><img src="https://avatars1.githubusercontent.com/u/558005?v=4?s=100" width="100px;" alt="Mike North"/><br /><sub><b>Mike North</b></sub></a><br /><a href="https://github.com/codesandbox/codesandbox-client/commits?author=mike-north" title="Code">💻</a></td>
152
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/oroce"><img src="https://avatars2.githubusercontent.com/u/462848?v=4?s=100" width="100px;" alt="Róbert Oroszi"/><br /><sub><b>Róbert Oroszi</b></sub></a><br /><a href="https://github.com/codesandbox/codesandbox-client/commits?author=oroce" title="Code">💻</a></td>
153
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/afontcu"><img src="https://avatars0.githubusercontent.com/u/9197791?v=4?s=100" width="100px;" alt="Adrià Fontcuberta"/><br /><sub><b>Adrià Fontcuberta</b></sub></a><br /><a href="https://github.com/codesandbox/codesandbox-client/commits?author=afontcu" title="Code">💻</a></td>
154
+ <td align="center" valign="top" width="14.28%"><a href="http://www.aadsm.net"><img src="https://avatars1.githubusercontent.com/u/78122?v=4?s=100" width="100px;" alt="António Afonso"/><br /><sub><b>António Afonso</b></sub></a><br /><a href="https://github.com/codesandbox/codesandbox-client/commits?author=aadsm" title="Code">💻</a></td>
155
+ <td align="center" valign="top" width="14.28%"><a href="http://sapegin.me"><img src="https://avatars2.githubusercontent.com/u/70067?v=4?s=100" width="100px;" alt="Artem Sapegin"/><br /><sub><b>Artem Sapegin</b></sub></a><br /><a href="https://github.com/codesandbox/codesandbox-client/commits?author=sapegin" title="Code">💻</a></td>
156
+ </tr>
157
+ <tr>
158
+ <td align="center" valign="top" width="14.28%"><a href="http://bcbrian.com"><img src="https://avatars0.githubusercontent.com/u/6721622?v=4?s=100" width="100px;" alt="Brian Bartholomew"/><br /><sub><b>Brian Bartholomew</b></sub></a><br /><a href="https://github.com/codesandbox/codesandbox-client/commits?author=bcbrian" title="Code">💻</a></td>
159
+ <td align="center" valign="top" width="14.28%"><a href="http://www.christianalfoni.com"><img src="https://avatars1.githubusercontent.com/u/3956929?v=4?s=100" width="100px;" alt="Christian Alfoni"/><br /><sub><b>Christian Alfoni</b></sub></a><br /><a href="https://github.com/codesandbox/codesandbox-client/commits?author=christianalfoni" title="Code">💻</a></td>
160
+ <td align="center" valign="top" width="14.28%"><a href="http://davidbaumgold.com"><img src="https://avatars3.githubusercontent.com/u/132355?v=4?s=100" width="100px;" alt="David Baumgold"/><br /><sub><b>David Baumgold</b></sub></a><br /><a href="https://github.com/codesandbox/codesandbox-client/commits?author=singingwolfboy" title="Code">💻</a></td>
161
+ <td align="center" valign="top" width="14.28%"><a href="https://erodionov.ru"><img src="https://avatars1.githubusercontent.com/u/775692?v=4?s=100" width="100px;" alt="Evgeny Rodionov"/><br /><sub><b>Evgeny Rodionov</b></sub></a><br /><a href="https://github.com/codesandbox/codesandbox-client/commits?author=evgenyrodionov" title="Code">💻</a></td>
162
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/fathyb"><img src="https://avatars1.githubusercontent.com/u/5746414?v=4?s=100" width="100px;" alt="Fathy Boundjadj"/><br /><sub><b>Fathy Boundjadj</b></sub></a><br /><a href="https://github.com/codesandbox/codesandbox-client/commits?author=fathyb" title="Code">💻</a></td>
163
+ <td align="center" valign="top" width="14.28%"><a href="https://6nok.org"><img src="https://avatars0.githubusercontent.com/u/868283?v=4?s=100" width="100px;" alt="Fatih Altinok"/><br /><sub><b>Fatih Altinok</b></sub></a><br /><a href="https://github.com/codesandbox/codesandbox-client/commits?author=frontsideair" title="Code">💻</a></td>
164
+ <td align="center" valign="top" width="14.28%"><a href="http://grant.cm"><img src="https://avatars3.githubusercontent.com/u/744973?v=4?s=100" width="100px;" alt="Grant Timmerman"/><br /><sub><b>Grant Timmerman</b></sub></a><br /><a href="https://github.com/codesandbox/codesandbox-client/commits?author=grant" title="Code">💻</a></td>
165
+ </tr>
166
+ <tr>
167
+ <td align="center" valign="top" width="14.28%"><a href="https://twitter.com/jmeaspls"><img src="https://avatars3.githubusercontent.com/u/2322305?v=4?s=100" width="100px;" alt="James"/><br /><sub><b>James</b></sub></a><br /><a href="https://github.com/codesandbox/codesandbox-client/commits?author=jamesplease" title="Code">💻</a></td>
168
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/Kelson448"><img src="https://avatars3.githubusercontent.com/u/18242829?v=4?s=100" width="100px;" alt="Kelson448"/><br /><sub><b>Kelson448</b></sub></a><br /><a href="https://github.com/codesandbox/codesandbox-client/commits?author=Kelson448" title="Code">💻</a></td>
169
+ <td align="center" valign="top" width="14.28%"><a href="http://ken.net"><img src="https://avatars0.githubusercontent.com/u/980757?v=4?s=100" width="100px;" alt="Ken Snyder"/><br /><sub><b>Ken Snyder</b></sub></a><br /><a href="https://github.com/codesandbox/codesandbox-client/commits?author=ksnyde" title="Code">💻</a></td>
170
+ <td align="center" valign="top" width="14.28%"><a href="https://kentcdodds.com"><img src="https://avatars0.githubusercontent.com/u/1500684?v=4?s=100" width="100px;" alt="Kent C. Dodds"/><br /><sub><b>Kent C. Dodds</b></sub></a><br /><a href="https://github.com/codesandbox/codesandbox-client/commits?author=kentcdodds" title="Code">💻</a></td>
171
+ <td align="center" valign="top" width="14.28%"><a href="https://khaledgarbaya.net"><img src="https://avatars1.githubusercontent.com/u/1156093?v=4?s=100" width="100px;" alt="Khaled Garbaya"/><br /><sub><b>Khaled Garbaya</b></sub></a><br /><a href="https://github.com/codesandbox/codesandbox-client/commits?author=Khaledgarbaya" title="Code">💻</a></td>
172
+ <td align="center" valign="top" width="14.28%"><a href="https://jeezliu.github.io/"><img src="https://avatars3.githubusercontent.com/u/1921130?v=4?s=100" width="100px;" alt="Liu"/><br /><sub><b>Liu</b></sub></a><br /><a href="https://github.com/codesandbox/codesandbox-client/commits?author=jeezliu" title="Code">💻</a></td>
173
+ <td align="center" valign="top" width="14.28%"><a href="http://www.maciejmyslinski.com"><img src="https://avatars0.githubusercontent.com/u/11421186?v=4?s=100" width="100px;" alt="Maciej"/><br /><sub><b>Maciej</b></sub></a><br /><a href="https://github.com/codesandbox/codesandbox-client/commits?author=maciejmyslinski" title="Code">💻</a></td>
174
+ </tr>
175
+ <tr>
176
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/matt-gadd"><img src="https://avatars0.githubusercontent.com/u/2183490?v=4?s=100" width="100px;" alt="Matthew Gadd"/><br /><sub><b>Matthew Gadd</b></sub></a><br /><a href="https://github.com/codesandbox/codesandbox-client/commits?author=matt-gadd" title="Code">💻</a></td>
177
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/krvajal"><img src="https://avatars1.githubusercontent.com/u/5899385?v=4?s=100" width="100px;" alt="Miguel Carvajal"/><br /><sub><b>Miguel Carvajal</b></sub></a><br /><a href="https://github.com/codesandbox/codesandbox-client/commits?author=krvajal" title="Code">💻</a></td>
178
+ <td align="center" valign="top" width="14.28%"><a href="https://olaolu.me"><img src="https://avatars2.githubusercontent.com/u/8625066?v=4?s=100" width="100px;" alt="Olaolu Olawuyi"/><br /><sub><b>Olaolu Olawuyi</b></sub></a><br /><a href="https://github.com/codesandbox/codesandbox-client/commits?author=whizkydee" title="Code">💻</a></td>
179
+ <td align="center" valign="top" width="14.28%"><a href="https://twitter.com/pete_tnt"><img src="https://avatars2.githubusercontent.com/u/7641760?v=4?s=100" width="100px;" alt="Pete Nykänen"/><br /><sub><b>Pete Nykänen</b></sub></a><br /><a href="https://github.com/codesandbox/codesandbox-client/commits?author=petetnt" title="Code">💻</a></td>
180
+ <td align="center" valign="top" width="14.28%"><a href="https://iamphill.com"><img src="https://avatars0.githubusercontent.com/u/741068?v=4?s=100" width="100px;" alt="Phil Hughes"/><br /><sub><b>Phil Hughes</b></sub></a><br /><a href="https://github.com/codesandbox/codesandbox-client/commits?author=iamphill" title="Code">💻</a></td>
181
+ <td align="center" valign="top" width="14.28%"><a href="https://twitter.com/pomber"><img src="https://avatars1.githubusercontent.com/u/1911623?v=4?s=100" width="100px;" alt="Rodrigo Pombo"/><br /><sub><b>Rodrigo Pombo</b></sub></a><br /><a href="https://github.com/codesandbox/codesandbox-client/commits?author=pomber" title="Code">💻</a></td>
182
+ <td align="center" valign="top" width="14.28%"><a href="https://sairam.xyz/"><img src="https://avatars2.githubusercontent.com/u/163584?v=4?s=100" width="100px;" alt="Sai Ram Kunala"/><br /><sub><b>Sai Ram Kunala</b></sub></a><br /><a href="https://github.com/codesandbox/codesandbox-client/commits?author=sairam" title="Code">💻</a></td>
183
+ </tr>
184
+ <tr>
185
+ <td align="center" valign="top" width="14.28%"><a href="https://gitter.im"><img src="https://avatars2.githubusercontent.com/u/8518239?v=4?s=100" width="100px;" alt="The Gitter Badger"/><br /><sub><b>The Gitter Badger</b></sub></a><br /><a href="https://github.com/codesandbox/codesandbox-client/commits?author=gitter-badger" title="Code">💻</a></td>
186
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/twhitbeck"><img src="https://avatars2.githubusercontent.com/u/762471?v=4?s=100" width="100px;" alt="Tim Whitbeck"/><br /><sub><b>Tim Whitbeck</b></sub></a><br /><a href="https://github.com/codesandbox/codesandbox-client/commits?author=twhitbeck" title="Code">💻</a></td>
187
+ <td align="center" valign="top" width="14.28%"><a href="http://twitter.com/yesmeck"><img src="https://avatars0.githubusercontent.com/u/465125?v=4?s=100" width="100px;" alt="Wei Zhu"/><br /><sub><b>Wei Zhu</b></sub></a><br /><a href="https://github.com/codesandbox/codesandbox-client/commits?author=yesmeck" title="Code">💻</a></td>
188
+ <td align="center" valign="top" width="14.28%"><a href="http://wilwilsman.com"><img src="https://avatars2.githubusercontent.com/u/5005153?v=4?s=100" width="100px;" alt="Wil Wilsman"/><br /><sub><b>Wil Wilsman</b></sub></a><br /><a href="https://github.com/codesandbox/codesandbox-client/commits?author=wwilsman" title="Code">💻</a></td>
189
+ <td align="center" valign="top" width="14.28%"><a href="https://codepen.io/findoff/"><img src="https://avatars1.githubusercontent.com/u/7959329?v=4?s=100" width="100px;" alt="abnessor aka findoff"/><br /><sub><b>abnessor aka findoff</b></sub></a><br /><a href="https://github.com/codesandbox/codesandbox-client/commits?author=findoff" title="Code">💻</a></td>
190
+ <td align="center" valign="top" width="14.28%"><a href="http://jerry-i.github.io"><img src="https://avatars1.githubusercontent.com/u/11937539?v=4?s=100" width="100px;" alt="cottom"/><br /><sub><b>cottom</b></sub></a><br /><a href="https://github.com/codesandbox/codesandbox-client/commits?author=jerry-i" title="Code">💻</a></td>
191
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/gitname"><img src="https://avatars3.githubusercontent.com/u/7143133?v=4?s=100" width="100px;" alt="gitname"/><br /><sub><b>gitname</b></sub></a><br /><a href="https://github.com/codesandbox/codesandbox-client/commits?author=gitname" title="Code">💻</a></td>
192
+ </tr>
193
+ <tr>
194
+ <td align="center" valign="top" width="14.28%"><a href="http://www.xulingming.cn"><img src="https://avatars3.githubusercontent.com/u/15030806?v=4?s=100" width="100px;" alt="Bruce Xu"/><br /><sub><b>Bruce Xu</b></sub></a><br /><a href="https://github.com/codesandbox/codesandbox-client/commits?author=jackdon" title="Code">💻</a></td>
195
+ <td align="center" valign="top" width="14.28%"><a href="http://jessachandler.com"><img src="https://avatars3.githubusercontent.com/u/7316730?v=4?s=100" width="100px;" alt="jess"/><br /><sub><b>jess</b></sub></a><br /><a href="https://github.com/codesandbox/codesandbox-client/commits?author=monkeywithacupcake" title="Code">💻</a></td>
196
+ <td align="center" valign="top" width="14.28%"><a href="https://juliette.sh"><img src="https://avatars0.githubusercontent.com/u/8875406?v=4?s=100" width="100px;" alt="Juliette Prétot"/><br /><sub><b>Juliette Prétot</b></sub></a><br /><a href="https://github.com/codesandbox/codesandbox-client/commits?author=juliettepretot" title="Code">💻</a></td>
197
+ <td align="center" valign="top" width="14.28%"><a href="https://twitter.com/vicbergquist"><img src="https://avatars0.githubusercontent.com/u/25737281?v=4?s=100" width="100px;" alt="Victoria Bergquist"/><br /><sub><b>Victoria Bergquist</b></sub></a><br /><a href="https://github.com/codesandbox/codesandbox-client/commits?author=vicbergquist" title="Code">💻</a> <a href="https://github.com/codesandbox/codesandbox-client/commits?author=vicbergquist" title="Documentation">📖</a></td>
198
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/samrith-s"><img src="https://avatars3.githubusercontent.com/u/9032162?v=4?s=100" width="100px;" alt="Samrith Shankar"/><br /><sub><b>Samrith Shankar</b></sub></a><br /><a href="https://github.com/codesandbox/codesandbox-client/commits?author=samrith-s" title="Code">💻</a></td>
199
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/tinahir"><img src="https://avatars3.githubusercontent.com/u/827497?v=4?s=100" width="100px;" alt="Mahendra Hirapra"/><br /><sub><b>Mahendra Hirapra</b></sub></a><br /><a href="https://github.com/codesandbox/codesandbox-client/commits?author=tinahir" title="Code">💻</a></td>
200
+ <td align="center" valign="top" width="14.28%"><a href="http://rabingaire.com.np"><img src="https://avatars3.githubusercontent.com/u/17409675?v=4?s=100" width="100px;" alt="Rabin Gaire"/><br /><sub><b>Rabin Gaire</b></sub></a><br /><a href="https://github.com/codesandbox/codesandbox-client/commits?author=rabingaire" title="Code">💻</a></td>
201
+ </tr>
202
+ <tr>
203
+ <td align="center" valign="top" width="14.28%"><a href="https://twitter.com/ask_neville"><img src="https://avatars2.githubusercontent.com/u/8527474?v=4?s=100" width="100px;" alt="Neville Mehta"/><br /><sub><b>Neville Mehta</b></sub></a><br /><a href="https://github.com/codesandbox/codesandbox-client/commits?author=nm123github" title="Code">💻</a></td>
204
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/Yeti-or"><img src="https://avatars0.githubusercontent.com/u/1813468?v=4?s=100" width="100px;" alt="Vasiliy"/><br /><sub><b>Vasiliy</b></sub></a><br /><a href="https://github.com/codesandbox/codesandbox-client/commits?author=Yeti-or" title="Code">💻</a></td>
205
+ <td align="center" valign="top" width="14.28%"><a href="https://slynova.io"><img src="https://avatars3.githubusercontent.com/u/2793951?v=4?s=100" width="100px;" alt="Romain Lanz"/><br /><sub><b>Romain Lanz</b></sub></a><br /><a href="https://github.com/codesandbox/codesandbox-client/commits?author=RomainLanz" title="Code">💻</a></td>
206
+ <td align="center" valign="top" width="14.28%"><a href="http://libe.toile-libre.org"><img src="https://avatars2.githubusercontent.com/u/1233790?v=4?s=100" width="100px;" alt="LiBe"/><br /><sub><b>LiBe</b></sub></a><br /><a href="https://github.com/codesandbox/codesandbox-client/commits?author=libetl" title="Code">💻</a></td>
207
+ <td align="center" valign="top" width="14.28%"><a href="http://thecodechef.github.io"><img src="https://avatars0.githubusercontent.com/u/5333019?v=4?s=100" width="100px;" alt="Jeremy Bolding"/><br /><sub><b>Jeremy Bolding</b></sub></a><br /><a href="https://github.com/codesandbox/codesandbox-client/commits?author=thecodechef" title="Code">💻</a></td>
208
+ <td align="center" valign="top" width="14.28%"><a href="https://twitter.com/baconbrix"><img src="https://avatars1.githubusercontent.com/u/9664363?v=4?s=100" width="100px;" alt="Evan Bacon"/><br /><sub><b>Evan Bacon</b></sub></a><br /><a href="https://github.com/codesandbox/codesandbox-client/commits?author=EvanBacon" title="Code">💻</a></td>
209
+ <td align="center" valign="top" width="14.28%"><a href="https://michaeldeboey.be"><img src="https://avatars3.githubusercontent.com/u/6643991?v=4?s=100" width="100px;" alt="Michaël De Boey"/><br /><sub><b>Michaël De Boey</b></sub></a><br /><a href="#blog-MichaelDeBoey" title="Blogposts">📝</a> <a href="https://github.com/codesandbox/codesandbox-client/issues?q=author%3AMichaelDeBoey" title="Bug reports">🐛</a> <a href="https://github.com/codesandbox/codesandbox-client/commits?author=MichaelDeBoey" title="Code">💻</a> <a href="https://github.com/codesandbox/codesandbox-client/commits?author=MichaelDeBoey" title="Documentation">📖</a> <a href="#infra-MichaelDeBoey" title="Infrastructure (Hosting, Build-Tools, etc)">🚇</a> <a href="#tool-MichaelDeBoey" title="Tools">🔧</a></td>
210
+ </tr>
211
+ <tr>
212
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/gabeeden"><img src="https://avatars1.githubusercontent.com/u/14077091?v=4?s=100" width="100px;" alt="gabeeden"/><br /><sub><b>gabeeden</b></sub></a><br /><a href="https://github.com/codesandbox/codesandbox-client/commits?author=gabeeden" title="Code">💻</a></td>
213
+ <td align="center" valign="top" width="14.28%"><a href="https://tiffanywhite.dev"><img src="https://avatars0.githubusercontent.com/u/7698292?v=4?s=100" width="100px;" alt="Tiffany White"/><br /><sub><b>Tiffany White</b></sub></a><br /><a href="https://github.com/codesandbox/codesandbox-client/commits?author=twhite96" title="Code">💻</a></td>
214
+ <td align="center" valign="top" width="14.28%"><a href="http://www.dopest.tech"><img src="https://avatars3.githubusercontent.com/u/32302360?v=4?s=100" width="100px;" alt="James Bedford"/><br /><sub><b>James Bedford</b></sub></a><br /><a href="https://github.com/codesandbox/codesandbox-client/commits?author=JABedford" title="Code">💻</a></td>
215
+ <td align="center" valign="top" width="14.28%"><a href="https://www.patreon.com/user?u=16255660"><img src="https://avatars0.githubusercontent.com/u/3314957?v=4?s=100" width="100px;" alt="Scott"/><br /><sub><b>Scott</b></sub></a><br /><a href="https://github.com/codesandbox/codesandbox-client/commits?author=smolinari" title="Code">💻</a></td>
216
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/dutiyesh"><img src="https://avatars1.githubusercontent.com/u/12200583?v=4?s=100" width="100px;" alt="Dutiyesh Salunkhe"/><br /><sub><b>Dutiyesh Salunkhe</b></sub></a><br /><a href="https://github.com/codesandbox/codesandbox-client/commits?author=dutiyesh" title="Code">💻</a></td>
217
+ <td align="center" valign="top" width="14.28%"><a href="http://halit.dev"><img src="https://avatars2.githubusercontent.com/u/13641726?v=4?s=100" width="100px;" alt="Halit Ogunc"/><br /><sub><b>Halit Ogunc</b></sub></a><br /><a href="https://github.com/codesandbox/codesandbox-client/commits?author=halitogunc" title="Code">💻</a></td>
218
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/jyash97"><img src="https://avatars0.githubusercontent.com/u/22376783?v=4?s=100" width="100px;" alt="Yash Joshi"/><br /><sub><b>Yash Joshi</b></sub></a><br /><a href="https://github.com/codesandbox/codesandbox-client/commits?author=jyash97" title="Code">💻</a></td>
219
+ </tr>
220
+ <tr>
221
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/batiskafff"><img src="https://avatars3.githubusercontent.com/u/1769092?v=4?s=100" width="100px;" alt="Yehor"/><br /><sub><b>Yehor</b></sub></a><br /><a href="https://github.com/codesandbox/codesandbox-client/commits?author=batiskafff" title="Code">💻</a></td>
222
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/Jensderond"><img src="https://avatars2.githubusercontent.com/u/6972822?v=4?s=100" width="100px;" alt="Jens de Rond"/><br /><sub><b>Jens de Rond</b></sub></a><br /><a href="https://github.com/codesandbox/codesandbox-client/issues?q=author%3AJensderond" title="Bug reports">🐛</a> <a href="https://github.com/codesandbox/codesandbox-client/commits?author=Jensderond" title="Code">💻</a></td>
223
+ <td align="center" valign="top" width="14.28%"><a href="http://benjaminschachter.com"><img src="https://avatars2.githubusercontent.com/u/2502947?v=4?s=100" width="100px;" alt="Benjamin Schachter"/><br /><sub><b>Benjamin Schachter</b></sub></a><br /><a href="https://github.com/codesandbox/codesandbox-client/commits?author=benschac" title="Documentation">📖</a></td>
224
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/RafaelKr"><img src="https://avatars1.githubusercontent.com/u/14234815?v=4?s=100" width="100px;" alt="Rafael"/><br /><sub><b>Rafael</b></sub></a><br /><a href="https://github.com/codesandbox/codesandbox-client/issues?q=author%3ARafaelKr" title="Bug reports">🐛</a> <a href="https://github.com/codesandbox/codesandbox-client/commits?author=RafaelKr" title="Code">💻</a></td>
225
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/baremetalfreak"><img src="https://avatars0.githubusercontent.com/u/19686979?v=4?s=100" width="100px;" alt="baremetalfreak"/><br /><sub><b>baremetalfreak</b></sub></a><br /><a href="#question-baremetalfreak" title="Answering Questions">💬</a> <a href="https://github.com/codesandbox/codesandbox-client/issues?q=author%3Abaremetalfreak" title="Bug reports">🐛</a> <a href="https://github.com/codesandbox/codesandbox-client/commits?author=baremetalfreak" title="Code">💻</a></td>
226
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/JayBee007"><img src="https://avatars0.githubusercontent.com/u/13278577?v=4?s=100" width="100px;" alt="Javed"/><br /><sub><b>Javed</b></sub></a><br /><a href="https://github.com/codesandbox/codesandbox-client/commits?author=JayBee007" title="Code">💻</a></td>
227
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/R4M80MrX"><img src="https://avatars1.githubusercontent.com/u/29365693?v=4?s=100" width="100px;" alt="R4M80MRX"/><br /><sub><b>R4M80MRX</b></sub></a><br /><a href="https://github.com/codesandbox/codesandbox-client/commits?author=R4M80MrX" title="Code">💻</a></td>
228
+ </tr>
229
+ <tr>
230
+ <td align="center" valign="top" width="14.28%"><a href="https://medium.com/@derek_develops"><img src="https://avatars2.githubusercontent.com/u/53202242?v=4?s=100" width="100px;" alt="Dr. Derek Austin [aka dj D-REK from Richmond, VA]"/><br /><sub><b>Dr. Derek Austin [aka dj D-REK from Richmond, VA]</b></sub></a><br /><a href="https://github.com/codesandbox/codesandbox-client/issues?q=author%3AdjD-REK" title="Bug reports">🐛</a></td>
231
+ <td align="center" valign="top" width="14.28%"><a href="https://sid.st"><img src="https://avatars0.githubusercontent.com/u/1863771?v=4?s=100" width="100px;" alt="Sid"/><br /><sub><b>Sid</b></sub></a><br /><a href="https://github.com/codesandbox/codesandbox-client/commits?author=siddharthkp" title="Code">💻</a></td>
232
+ <td align="center" valign="top" width="14.28%"><a href="http://yeisondaza.com"><img src="https://avatars0.githubusercontent.com/u/9127504?v=4?s=100" width="100px;" alt="Yeison Daza"/><br /><sub><b>Yeison Daza</b></sub></a><br /><a href="https://github.com/codesandbox/codesandbox-client/commits?author=yeion7" title="Code">💻</a></td>
233
+ <td align="center" valign="top" width="14.28%"><a href="https://shriram-balaji.github.io"><img src="https://avatars1.githubusercontent.com/u/11358903?v=4?s=100" width="100px;" alt="Shriram Balaji"/><br /><sub><b>Shriram Balaji</b></sub></a><br /><a href="https://github.com/codesandbox/codesandbox-client/commits?author=Shriram-Balaji" title="Code">💻</a></td>
234
+ <td align="center" valign="top" width="14.28%"><a href="http://ThomasDillard.com"><img src="https://avatars1.githubusercontent.com/u/12449668?v=4?s=100" width="100px;" alt="Thomas Dillard"/><br /><sub><b>Thomas Dillard</b></sub></a><br /><a href="https://github.com/codesandbox/codesandbox-client/commits?author=HTMLGhozt" title="Code">💻</a></td>
235
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/chinmay17"><img src="https://avatars2.githubusercontent.com/u/7131231?v=4?s=100" width="100px;" alt="Chinmay Chaudhary"/><br /><sub><b>Chinmay Chaudhary</b></sub></a><br /><a href="https://github.com/codesandbox/codesandbox-client/commits?author=chinmay17" title="Code">💻</a></td>
236
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/Sakthivel"><img src="https://avatars3.githubusercontent.com/u/205201?v=4?s=100" width="100px;" alt="Sakthivel Sengodan Sapient"/><br /><sub><b>Sakthivel Sengodan Sapient</b></sub></a><br /><a href="https://github.com/codesandbox/codesandbox-client/commits?author=sakthivel" title="Code">💻</a></td>
237
+ </tr>
238
+ <tr>
239
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/NabeelahY"><img src="https://avatars1.githubusercontent.com/u/35764602?v=4?s=100" width="100px;" alt="Nabeelah"/><br /><sub><b>Nabeelah</b></sub></a><br /><a href="https://github.com/codesandbox/codesandbox-client/commits?author=NabeelahY" title="Code">💻</a></td>
240
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/vanya829"><img src="https://avatars0.githubusercontent.com/u/1397979?v=4?s=100" width="100px;" alt="vanya829"/><br /><sub><b>vanya829</b></sub></a><br /><a href="https://github.com/codesandbox/codesandbox-client/commits?author=vanya829" title="Code">💻</a></td>
241
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/tanem"><img src="https://avatars3.githubusercontent.com/u/464864?v=4?s=100" width="100px;" alt="Tane Morgan"/><br /><sub><b>Tane Morgan</b></sub></a><br /><a href="https://github.com/codesandbox/codesandbox-client/commits?author=tanem" title="Code">💻</a></td>
242
+ <td align="center" valign="top" width="14.28%"><a href="http://hetpatel33.github.io"><img src="https://avatars0.githubusercontent.com/u/13877514?v=4?s=100" width="100px;" alt="Het Patel"/><br /><sub><b>Het Patel</b></sub></a><br /><a href="https://github.com/codesandbox/codesandbox-client/commits?author=hetpatel33" title="Code">💻</a></td>
243
+ <td align="center" valign="top" width="14.28%"><a href="https://twitter.com/ivandevp"><img src="https://avatars3.githubusercontent.com/u/9284690?v=4?s=100" width="100px;" alt="Ivan Medina"/><br /><sub><b>Ivan Medina</b></sub></a><br /><a href="https://github.com/codesandbox/codesandbox-client/commits?author=ivandevp" title="Code">💻</a></td>
244
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/Gobinath-Manokaran"><img src="https://avatars2.githubusercontent.com/u/6711914?v=4?s=100" width="100px;" alt="Gobinath-Manokaran"/><br /><sub><b>Gobinath-Manokaran</b></sub></a><br /><a href="https://github.com/codesandbox/codesandbox-client/commits?author=Gobinath-Manokaran" title="Code">💻</a></td>
245
+ <td align="center" valign="top" width="14.28%"><a href="https://armujahid.me"><img src="https://avatars1.githubusercontent.com/u/3725386?v=4?s=100" width="100px;" alt="Abdul Rauf"/><br /><sub><b>Abdul Rauf</b></sub></a><br /><a href="https://github.com/codesandbox/codesandbox-client/commits?author=armujahid" title="Code">💻</a> <a href="https://github.com/codesandbox/codesandbox-client/commits?author=armujahid" title="Documentation">📖</a></td>
246
+ </tr>
247
+ <tr>
248
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/milap1296"><img src="https://avatars2.githubusercontent.com/u/19545730?v=4?s=100" width="100px;" alt="milap1296"/><br /><sub><b>milap1296</b></sub></a><br /><a href="https://github.com/codesandbox/codesandbox-client/commits?author=milap1296" title="Code">💻</a></td>
249
+ <td align="center" valign="top" width="14.28%"><a href="http://yevhenorlov.com"><img src="https://avatars2.githubusercontent.com/u/17388747?v=4?s=100" width="100px;" alt="yevhen orlov"/><br /><sub><b>yevhen orlov</b></sub></a><br /><a href="https://github.com/codesandbox/codesandbox-client/commits?author=yevhenorlov" title="Code">💻</a></td>
250
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/NileshPatel17"><img src="https://avatars2.githubusercontent.com/u/27020381?v=4?s=100" width="100px;" alt="Nilesh Patel"/><br /><sub><b>Nilesh Patel</b></sub></a><br /><a href="https://github.com/codesandbox/codesandbox-client/commits?author=NileshPatel17" title="Code">💻</a></td>
251
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/22PoojaGaur"><img src="https://avatars2.githubusercontent.com/u/43316760?v=4?s=100" width="100px;" alt="Pooja Gaur"/><br /><sub><b>Pooja Gaur</b></sub></a><br /><a href="https://github.com/codesandbox/codesandbox-client/commits?author=22PoojaGaur" title="Code">💻</a></td>
252
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/sajadhsm"><img src="https://avatars3.githubusercontent.com/u/20022818?v=4?s=100" width="100px;" alt="Sajad Hashemian"/><br /><sub><b>Sajad Hashemian</b></sub></a><br /><a href="https://github.com/codesandbox/codesandbox-client/commits?author=sajadhsm" title="Code">💻</a></td>
253
+ <td align="center" valign="top" width="14.28%"><a href="https://carloslfu.github.io"><img src="https://avatars3.githubusercontent.com/u/5993168?v=4?s=100" width="100px;" alt="Carlos Galarza"/><br /><sub><b>Carlos Galarza</b></sub></a><br /><a href="https://github.com/codesandbox/codesandbox-client/commits?author=carloslfu" title="Documentation">📖</a></td>
254
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/soorajshankar"><img src="https://avatars2.githubusercontent.com/u/8408875?v=4?s=100" width="100px;" alt="soorajshankar"/><br /><sub><b>soorajshankar</b></sub></a><br /><a href="https://github.com/codesandbox/codesandbox-client/commits?author=soorajshankar" title="Code">💻</a></td>
255
+ </tr>
256
+ <tr>
257
+ <td align="center" valign="top" width="14.28%"><a href="http://mcmunder.de"><img src="https://avatars3.githubusercontent.com/u/5681686?v=4?s=100" width="100px;" alt="Matthias Christoph Munder"/><br /><sub><b>Matthias Christoph Munder</b></sub></a><br /><a href="https://github.com/codesandbox/codesandbox-client/issues?q=author%3Amcmunder" title="Bug reports">🐛</a> <a href="https://github.com/codesandbox/codesandbox-client/commits?author=mcmunder" title="Code">💻</a></td>
258
+ <td align="center" valign="top" width="14.28%"><a href="http://anuraghazra.github.io"><img src="https://avatars3.githubusercontent.com/u/35374649?v=4?s=100" width="100px;" alt="Anurag Hazra"/><br /><sub><b>Anurag Hazra</b></sub></a><br /><a href="https://github.com/codesandbox/codesandbox-client/commits?author=anuraghazra" title="Code">💻</a></td>
259
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/johansenja"><img src="https://avatars1.githubusercontent.com/u/43235608?v=4?s=100" width="100px;" alt="johansenja"/><br /><sub><b>johansenja</b></sub></a><br /><a href="https://github.com/codesandbox/codesandbox-client/commits?author=johansenja" title="Documentation">📖</a></td>
260
+ <td align="center" valign="top" width="14.28%"><a href="https://shodipoayomide.com"><img src="https://avatars2.githubusercontent.com/u/20538832?v=4?s=100" width="100px;" alt="Shodipo Ayomide"/><br /><sub><b>Shodipo Ayomide</b></sub></a><br /><a href="https://github.com/codesandbox/codesandbox-client/commits?author=Developerayo" title="Documentation">📖</a></td>
261
+ <td align="center" valign="top" width="14.28%"><a href="http://akashj.com"><img src="https://avatars0.githubusercontent.com/u/22196279?v=4?s=100" width="100px;" alt="Akash Joshi"/><br /><sub><b>Akash Joshi</b></sub></a><br /><a href="https://github.com/codesandbox/codesandbox-client/commits?author=akash-joshi" title="Code">💻</a></td>
262
+ <td align="center" valign="top" width="14.28%"><a href="https://twitter.com/layershifter"><img src="https://avatars0.githubusercontent.com/u/14183168?v=4?s=100" width="100px;" alt="Oleksandr Fediashov"/><br /><sub><b>Oleksandr Fediashov</b></sub></a><br /><a href="https://github.com/codesandbox/codesandbox-client/issues?q=author%3Alayershifter" title="Bug reports">🐛</a> <a href="https://github.com/codesandbox/codesandbox-client/commits?author=layershifter" title="Code">💻</a></td>
263
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/tehnuge"><img src="https://avatars1.githubusercontent.com/u/1928236?v=4?s=100" width="100px;" alt="John D."/><br /><sub><b>John D.</b></sub></a><br /><a href="https://github.com/codesandbox/codesandbox-client/commits?author=tehnuge" title="Code">💻</a></td>
264
+ </tr>
265
+ <tr>
266
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/NinoMaj"><img src="https://avatars0.githubusercontent.com/u/20380632?v=4?s=100" width="100px;" alt="Nino"/><br /><sub><b>Nino</b></sub></a><br /><a href="https://github.com/codesandbox/codesandbox-client/commits?author=NinoMaj" title="Documentation">📖</a></td>
267
+ <td align="center" valign="top" width="14.28%"><a href="https://saurabhdaware.in/"><img src="https://avatars1.githubusercontent.com/u/30949385?v=4?s=100" width="100px;" alt="Saurabh Daware"/><br /><sub><b>Saurabh Daware</b></sub></a><br /><a href="https://github.com/codesandbox/codesandbox-client/commits?author=saurabhdaware" title="Code">💻</a> <a href="#plugin-saurabhdaware" title="Plugin/utility libraries">🔌</a></td>
268
+ <td align="center" valign="top" width="14.28%"><a href="https://pablo.pink"><img src="https://avatars0.githubusercontent.com/u/4324982?v=4?s=100" width="100px;" alt="Pablo Varela"/><br /><sub><b>Pablo Varela</b></sub></a><br /><a href="https://github.com/codesandbox/codesandbox-client/commits?author=pablopunk" title="Code">💻</a></td>
269
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/ryanpwaldon"><img src="https://avatars0.githubusercontent.com/u/12480362?v=4?s=100" width="100px;" alt="Ryan Waldon"/><br /><sub><b>Ryan Waldon</b></sub></a><br /><a href="https://github.com/codesandbox/codesandbox-client/commits?author=ryanpwaldon" title="Code">💻</a></td>
270
+ <td align="center" valign="top" width="14.28%"><a href="http://cherniavskii.com"><img src="https://avatars.githubusercontent.com/u/13808724?v=4?s=100" width="100px;" alt="Andrew Cherniavskii"/><br /><sub><b>Andrew Cherniavskii</b></sub></a><br /><a href="https://github.com/codesandbox/codesandbox-client/commits?author=cherniavskii" title="Code">💻</a></td>
271
+ <td align="center" valign="top" width="14.28%"><a href="http://nullvoxpopuli.com"><img src="https://avatars.githubusercontent.com/u/199018?v=4?s=100" width="100px;" alt="NullVoxPopuli"/><br /><sub><b>NullVoxPopuli</b></sub></a><br /><a href="https://github.com/codesandbox/codesandbox-client/commits?author=NullVoxPopuli" title="Code">💻</a> <a href="#content-NullVoxPopuli" title="Content">🖋</a> <a href="#maintenance-NullVoxPopuli" title="Maintenance">🚧</a></td>
272
+ <td align="center" valign="top" width="14.28%"><a href="http://joshellis.co.uk"><img src="https://avatars.githubusercontent.com/u/37798644?v=4?s=100" width="100px;" alt="Josh"/><br /><sub><b>Josh</b></sub></a><br /><a href="https://github.com/codesandbox/codesandbox-client/commits?author=joshuaellis" title="Documentation">📖</a></td>
273
+ </tr>
274
+ <tr>
275
+ <td align="center" valign="top" width="14.28%"><a href="https://stefanretief.com"><img src="https://avatars.githubusercontent.com/u/3196604?v=4?s=100" width="100px;" alt="Stefan Retief"/><br /><sub><b>Stefan Retief</b></sub></a><br /><a href="https://github.com/codesandbox/codesandbox-client/issues?q=author%3AStefanRetief" title="Bug reports">🐛</a> <a href="https://github.com/codesandbox/codesandbox-client/commits?author=StefanRetief" title="Code">💻</a></td>
276
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/aditya211935"><img src="https://avatars.githubusercontent.com/u/23213686?v=4?s=100" width="100px;" alt="Aditya"/><br /><sub><b>Aditya</b></sub></a><br /><a href="https://github.com/codesandbox/codesandbox-client/issues?q=author%3Aaditya211935" title="Bug reports">🐛</a> <a href="https://github.com/codesandbox/codesandbox-client/commits?author=aditya211935" title="Code">💻</a></td>
277
+ <td align="center" valign="top" width="14.28%"><a href="http://baobangdong.cn"><img src="https://avatars.githubusercontent.com/u/36991862?v=4?s=100" width="100px;" alt="B2D1"/><br /><sub><b>B2D1</b></sub></a><br /><a href="https://github.com/codesandbox/codesandbox-client/commits?author=B2D1" title="Documentation">📖</a></td>
278
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/kettanaito"><img src="https://github.com/kettanaito.png?s=100" width="100px;" alt="Artem"/><br /><sub><b>Artem</b></sub></a><br /><a href="https://github.com/codesandbox/codesandbox-client/commits?author=kettanaito" title="Code">💻</a></td>
279
+ <td align="center" valign="top" width="14.28%"><a href="http://hugos.computer"><img src="https://avatars.githubusercontent.com/u/1035169?v=4?s=100" width="100px;" alt="Hugo Wiledal"/><br /><sub><b>Hugo Wiledal</b></sub></a><br /><a href="https://github.com/codesandbox/codesandbox-client/issues?q=author%3Awiledal" title="Bug reports">🐛</a> <a href="https://github.com/codesandbox/codesandbox-client/commits?author=wiledal" title="Code">💻</a></td>
280
+ <td align="center" valign="top" width="14.28%"><a href="https://thesshguy.com/"><img src="https://avatars.githubusercontent.com/u/11434879?v=4?s=100" width="100px;" alt="Sai Hari"/><br /><sub><b>Sai Hari</b></sub></a><br /><a href="https://github.com/codesandbox/codesandbox-client/commits?author=SSHari" title="Code">💻</a></td>
281
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/Ku3mi41"><img src="https://avatars.githubusercontent.com/u/1100530?v=4?s=100" width="100px;" alt="Ku3mi41"/><br /><sub><b>Ku3mi41</b></sub></a><br /><a href="https://github.com/codesandbox/codesandbox-client/commits?author=Ku3mi41" title="Code">💻</a> <a href="https://github.com/codesandbox/codesandbox-client/commits?author=Ku3mi41" title="Tests">⚠️</a></td>
282
+ </tr>
283
+ </tbody>
284
+ </table>
285
+
286
+ <!-- markdownlint-restore -->
287
+ <!-- prettier-ignore-end -->
288
+
289
+ <!-- ALL-CONTRIBUTORS-LIST:END -->
290
+
291
+ ## Thanks
292
+
293
+ <a href="https://www.chromaticqa.com/"><img src="https://cdn-images-1.medium.com/letterbox/147/36/50/50/1*oHHjTjInDOBxIuYHDY2gFA.png?source=logoAvatar-d7276495b101---37816ec27d7a" width="120"/></a>
294
+
295
+ Thanks to [Chromatic](https://www.chromaticqa.com/) for providing the visual
296
+ testing platform that helps us catch unexpected changes.
SECURITY.md ADDED
@@ -0,0 +1,9 @@
 
 
 
 
 
 
 
 
 
 
1
+ # Security Policy
2
+
3
+ Thanks for helping us keep CodeSandbox secure and safe!
4
+
5
+ ## Reporting a Vulnerability
6
+
7
+ If you've discovered a vulnerability in CodeSandbox, you can send us an email at hello@codesandbox.io to report the vulnerability.
8
+
9
+ We'll make sure to respond within 24 hours, and if we accept the vulnerability, a timeline on when it will be fixed. We'll keep you posted on the progress of our fix.
babel.config.js ADDED
@@ -0,0 +1,13 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ module.exports = {
2
+ presets: ['@babel/preset-env', '@babel/preset-flow', '@babel/preset-react'],
3
+ plugins: [
4
+ '@babel/plugin-transform-async-to-generator',
5
+ '@babel/plugin-proposal-object-rest-spread',
6
+ '@babel/plugin-proposal-class-properties',
7
+ '@babel/plugin-transform-runtime',
8
+ '@babel/plugin-syntax-dynamic-import',
9
+ 'babel-plugin-lodash',
10
+ 'babel-plugin-system-import-transformer',
11
+ 'babel-plugin-macros',
12
+ ],
13
+ };
catalog-info.yaml ADDED
@@ -0,0 +1,21 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ apiVersion: backstage.io/v1alpha1
2
+ kind: Component
3
+ metadata:
4
+ name: codesandbox-editor-v1
5
+ description: Codesandbox V1 Editor Frontend
6
+ annotations:
7
+ github.com/project-slug: codesandbox/codesandbox-client
8
+ backstage.io/kubernetes-namespace: default
9
+ backstage.io/kubernetes-label-selector: app.kubernetes.io/name=codesandbox,component=client
10
+ codesandbox/deploy-image: codesandbox/client
11
+ codesandbox/deploy-gitops-repo: codesandbox/codesandbox-gitops
12
+ codesandbox/deploy-gitops-yaml-key: "client.image.tag"
13
+ codesandbox/deploy-image-tag-regex-production: ".*"
14
+ codesandbox/deploy-gitops-file-production: codesandbox-core/codesandbox/production/helm-chart-values/values.yaml
15
+ codesandbox/deploy-image-tag-regex-staging: ".*"
16
+ codesandbox/deploy-gitops-file-staging: codesandbox-core/codesandbox/staging/helm-chart-values/values.yaml
17
+ codesandbox/deploy-gitops-version-type: tag
18
+ spec:
19
+ type: website
20
+ lifecycle: production
21
+ owner: client
contributor-docs/adding-template.md ADDED
@@ -0,0 +1,253 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Contribute with a Template
2
+
3
+ To contribute with a CodeSandbox template, you need to complete multiple steps
4
+ and submit two Pull Requests. We have created this guide to help you do this.
5
+ Here you will find descriptions and explanations for what you need to do, along
6
+ with some examples that we have added as references.
7
+
8
+ We realise that the process of submitting a template is not straightforward and
9
+ we hope that this guide will help you along the way. We are working on a system
10
+ that will make it easier.
11
+
12
+ If you think that we missed something in this guide or believe we could explain
13
+ something better, please let us know by submitting an
14
+ [issue](https://github.com/codesandbox/codesandbox-client/issues/new/choose)
15
+ with your feedback.
16
+
17
+ ## What is a template?
18
+
19
+ A template is an identifier for a specific type of sandbox project that you can
20
+ create on [codesandbox.io](https://codesandbox.io), like projects using
21
+ `Gatsby`, `React` or `Vue.js`.
22
+
23
+ When you create a template you can customise how the template behaves, in order
24
+ to improve the User Experience of your template in the CodeSandbox editor and
25
+ preview. Examples of this include configuring which file should be opened in the
26
+ editor by default when choosing a template, or changing the default `eslint`
27
+ rules in a template, like with `vue-cli`.
28
+
29
+ We encourage template creators to improve the editor experience for their
30
+ templates in order to give everyone the best possible experience when using
31
+ templates.
32
+
33
+ ## Template types
34
+
35
+ Templates can be of different types: **Sandboxes** or **Containers**, and have
36
+ major differences in functionality. It's important to know these differences
37
+ before you start working on a new template.
38
+
39
+ ### Sandboxes
40
+
41
+ CodeSandbox executes projects in the browser, which we call sandboxes. This
42
+ means that the transpiling, bundling, dependency resolvement and more happens in
43
+ the browser itself, without a server being involved. This has some advantages
44
+ over conventional approaches; it works offline, is more performant and doesn't
45
+ give us server costs, which means we can have many sandboxes without having to
46
+ worry (a lot ;-)).
47
+
48
+ There are also some disadvantages to this approach. When sandboxes run in the
49
+ browser, we lose flexibility. It's no longer possible to run Command Line
50
+ Interface (CLI) commands and in some cases custom configurations are not
51
+ supported, for example a custom webpack configuration. This is why we have
52
+ developed a new kind of sandbox called **Container**, which we released in
53
+ September 2018.
54
+
55
+ ### Containers
56
+
57
+ Unlike sandboxes, **containers** are executed on a server. This makes it
58
+ possible to create projects that are end-to-end based, like `Next.js` with
59
+ CodeSandbox, and also makes it possible to build bigger projects. **Containers**
60
+ let you run any command, and everything that works locally will also work in
61
+ container.
62
+
63
+ However, like the sandboxes, **containers** also come with some limitations. In
64
+ order to work on a container, you need to be signed in as a user, you can't edit
65
+ containers while offline, it's not possible to edit them from an embed, and you
66
+ can only have a limited amount of container based projects.
67
+
68
+ ### Which one to choose?
69
+
70
+ As you have read above, the template type determines whether a project is
71
+ executed in a _sandbox in a browser_ or in a _container on a server_. This means
72
+ that the template type you have to choose, depends on your specific use-case and
73
+ where you want your project to be executed.
74
+
75
+ If you would like to demonstrate CLI functionality, we recommend that you use a
76
+ **container** type template, and if you want to demonstrate a JavaScript
77
+ framework (like `React`) we recommended using a **sandbox** type template.
78
+
79
+ We encourage everyone to first evaluate whether the template works as a sandbox,
80
+ before deciding on using a container.
81
+
82
+ ## Adding a new template
83
+
84
+ In order to add a new template, you need to go through a set of steps. Some of
85
+ these steps you have to do, others depend on the type of template you want to
86
+ add (**sandbox** vs. **container**).
87
+
88
+ To get started, you should first follow the steps in our contribution guidelines
89
+ in order to
90
+ [set up CodeSandbox locally](https://github.com/codesandbox/codesandbox-client/blob/main/CONTRIBUTING.md#setting-up-the-project-locally).
91
+
92
+ ### 1. Add template logo
93
+
94
+ Add the logo for your template in the
95
+ [templates repo](https://github.com/codesandbox/codesandbox-client/tree/main/packages/template-icons/src)
96
+ (`codesandbox-templates/packages/template-icons/src`).
97
+
98
+ #### SVG logos
99
+
100
+ Create a `.tsx` file in the `/src` directory with the appropriate name and
101
+ content. If your template's name is "Banana", name your logo file "BananaIcon".
102
+
103
+ Examples:
104
+
105
+ - [Vue logo](https://github.com/codesandbox/codesandbox-client/tree/main/packages/template-icons/src/VueIcon.tsx)
106
+ - [React logo](https://github.com/codesandbox/codesandbox-client/tree/main/packages/template-icons/src/ReactIcon.tsx)
107
+
108
+ ### 2. Add template definition
109
+
110
+ In order for CodeSandbox to recognise your template, you need to add a new
111
+ definition of it in the `codesandbox-client/packages/common/src/templates`
112
+ [directory](https://github.com/codesandbox/codesandbox-client/tree/main/packages/common/src/templates).
113
+ You do this by creating a new `.ts` file with the name of your template.
114
+
115
+ Examples:
116
+
117
+ - [Parcel](https://github.com/codesandbox/codesandbox-client/blob/main/packages/common/src/templates/parcel.ts)
118
+ - [Gatsby](https://github.com/codesandbox/codesandbox-client/blob/main/packages/common/src/templates/gatsby.ts)
119
+
120
+ The template definition can have various options, which you can find more
121
+ information about in
122
+ [template.ts](https://github.com/codesandbox/codesandbox-client/blob/main/packages/common/src/templates/template.ts).
123
+
124
+ We encourage you to improve the user experience of your templates by taking
125
+ advantage of the options you have available while writing your template
126
+ definition.
127
+
128
+ Examples:
129
+
130
+ - Which file the editor should open by default
131
+ - Default rules the template should use
132
+
133
+ <!-- TODO: Add more examples -->
134
+
135
+ After writing your template definition, you also need to add it to the
136
+ [index.js](https://github.com/codesandbox/codesandbox-client/blob/main/packages/common/src/templates/index.ts)
137
+ file in the same directory (`codesandbox-client/packages/common/src/templates`)
138
+ in order for CodeSandbox to be able to retrieve your template.
139
+
140
+ ### 3. Define transpilers for sandbox
141
+
142
+ _If you are adding a template for a **container** sandbox, you can skip this
143
+ step and proceed to step 4._
144
+
145
+ For the sandboxes that run in the browser we need to define what transpilers
146
+ need to be run. A template will not work in the bundler if it does not have a
147
+ preset.
148
+
149
+ We call a template configuration for the bundler in CodeSandbox a 'Preset'. All
150
+ currently installed presets are defined in the
151
+ [index.ts](https://github.com/codesandbox/codesandbox-client/blob/main/packages/app/src/sandbox/eval/index.ts)
152
+ file under `codesandbox-client/packages/app/src/sandbox/eval/presets`.
153
+
154
+ In order to understand how this configuration works, we recommend you to take a
155
+ look at templates that have already been implemented and their presets.
156
+
157
+ Examples:
158
+
159
+ - [create-react-app-typescript](https://github.com/codesandbox/codesandbox-client/blob/main/packages/app/src/sandbox/eval/presets/create-react-app-typescript/index.js)
160
+ (most basic one)
161
+ - [CxJS](https://github.com/codesandbox/codesandbox-client/blob/main/packages/app/src/sandbox/eval/presets/cxjs/index.js)
162
+ - [vue-cli](https://github.com/codesandbox/codesandbox-client/blob/main/packages/app/src/sandbox/eval/presets/vue-cli/index.js)
163
+
164
+ ### 4. Add the importer
165
+
166
+ We allow people to import sandboxes from GitHub/CLI/API, and to make sure that
167
+ the right template is imported we have some specific logic that determines a
168
+ template for every template. This logic is **not** found in `codesanbox-client`.
169
+
170
+ This means you that you also have to add your template in another file in the
171
+ `codesandbox-importers` repository called
172
+ [templates.ts](https://github.com/codesandbox/codesandbox-importers/blob/main/packages/import-utils/src/create-sandbox/templates.ts).
173
+
174
+ When you create your Pull Request in `codesanbox-client`, you also need to
175
+ create a Pull Request in `codesandbox-importer` and reference it in your Pull
176
+ Request for `codesandbox-client`. Example:
177
+
178
+ - [Add VuePress](https://github.com/codesandbox/codesandbox-client/pull/1652) in
179
+ [codesandbox-client](https://github.com/codesandbox/codesandbox-client)
180
+ - [Add VuePress support](https://github.com/codesandbox/codesandbox-importers/pull/30)
181
+ in
182
+ [codesandbox-importer](https://github.com/codesandbox/codesandbox-importers)
183
+
184
+ ### 5. Test the template
185
+
186
+ You can test your new sandbox template, however you cannot preview the
187
+ functionality of templates using containers.
188
+
189
+ #### Sandbox template
190
+
191
+ To test your new template, you need to create a mock response from the API and
192
+ force the new template specification. To do this, you uncomment
193
+ [this line](https://github.com/codesandbox/codesandbox-client/blob/main/packages/app/src/app/store/actions.js#L17)
194
+ and change `'custom'` to the id/name of your template:
195
+
196
+ ```diff
197
+ .then(data => {
198
+ - // data.template = 'custom';
199
+ + data.template = 'templatename';
200
+ const sandbox = data;
201
+ return path.success({ sandbox });
202
+ })
203
+ ```
204
+
205
+ #### Container template
206
+
207
+ <!-- TODO: clearify what to do here -->
208
+ <!-- TODO: Improve description of step -->
209
+
210
+ It's currently not possible to test the preview functionality of container
211
+ sandboxes and we recommend you to test if the sandbox works in a `node`
212
+ template. If your template works using `node`, it will work with your new
213
+ template as well.
214
+
215
+ To do this, please add a `sandbox.config.json` file to the root folder of the
216
+ repository that you are using as the basis for your template, with the content
217
+ of:
218
+
219
+ ```json
220
+ {
221
+ "template": "node"
222
+ }
223
+ ```
224
+
225
+ To test it, you use CodeSandbox to access the repository that will be used for
226
+ the template like so: `https://codesanbox.io/s/github/user/repo-name`, where
227
+ `user` is the user/organisation who owns the repository and `repo-name` is the
228
+ name of the repository to use for the template.
229
+
230
+ After your Pull Request to add a new template has been merged, you can delete
231
+ this `sandbox.json.config` file from your repository.
232
+
233
+ ### 6. Add yourself as a contributor
234
+
235
+ This project follows the all-contributors specification. Contributions of any
236
+ kind are welcome! To add yourself to the table of contributors in the README.md
237
+ file, please use the automated script as part of your PR:
238
+
239
+ ```
240
+ yarn add-contributor
241
+ ```
242
+
243
+ Follow the prompt and commit .all-contributorsrc and README.md in the PR.
244
+
245
+ Thank you for taking the time to contribute! 👍
246
+
247
+ ### Conclusion
248
+
249
+ If your testing went well, congratulations! You have now created a new template
250
+ for CodeSandbox!
251
+
252
+ We will make sure to merge and deploy the two Pull Requests you made to both
253
+ `codesanbox-client` and `codesandbox-importers` at the same time.
docker/Dockerfile ADDED
@@ -0,0 +1,10 @@
 
 
 
 
 
 
 
 
 
 
 
1
+ FROM node:10.22.1-buster
2
+ LABEL maintainer "Ives van Hoorne"
3
+
4
+ RUN mkdir /workspace
5
+ ADD .git /workspace/.git
6
+
7
+ WORKDIR /workspace
8
+ RUN git reset --hard
9
+ RUN apt update
10
+ RUN apt install -y nano less tmux zsh vim
docker/Dockerfile.integrations ADDED
@@ -0,0 +1,9 @@
 
 
 
 
 
 
 
 
 
 
1
+ FROM 'circleci/node:16'
2
+
3
+ RUN sudo apt-get update && sudo apt-get install -yq gconf-service libasound2 libatk1.0-0 libc6 libcairo2 libcups2 libdbus-1-3 \
4
+ libexpat1 libfontconfig1 libgcc1 libgconf-2-4 libgdk-pixbuf2.0-0 libglib2.0-0 libgtk-3-0 libnspr4 \
5
+ libpango-1.0-0 libpangocairo-1.0-0 libstdc++6 libx11-6 libx11-xcb1 libxcb1 libxcomposite1 \
6
+ libxcursor1 libxdamage1 libxext6 libxfixes3 libxi6 libxrandr2 libxrender1 libxss1 libxtst6 \
7
+ ca-certificates fonts-liberation libappindicator1 libnss3 lsb-release xdg-utils wget libgbm-dev
8
+
9
+ RUN cd ~/ && yarn add puppeteer@18.1.0
docker/Dockerfile.prod ADDED
@@ -0,0 +1,15 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ FROM node:9
2
+ LABEL maintainer "Ives van Hoorne"
3
+
4
+ COPY package.json /app/package.json
5
+ COPY yarn.lock /app/yarn.lock
6
+
7
+ WORKDIR /app
8
+ RUN yarn config set workspaces-experimental true
9
+ RUN yarn install
10
+
11
+ # After yarn install, so dev deps are also installed (for building)
12
+ ENV NODE_ENV production
13
+
14
+ ADD . /app
15
+ RUN npm run build
docker/Dockerfile.test ADDED
@@ -0,0 +1,18 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ FROM node:8-slim
2
+ LABEL maintainer "Ives van Hoorne"
3
+
4
+ RUN apt-get update && \
5
+ apt-get install -yq gconf-service libasound2 libatk1.0-0 libc6 libcairo2 libcups2 libdbus-1-3 \
6
+ libexpat1 libfontconfig1 libgcc1 libgconf-2-4 libgdk-pixbuf2.0-0 libglib2.0-0 libgtk-3-0 libnspr4 \
7
+ libpango-1.0-0 libpangocairo-1.0-0 libstdc++6 libx11-6 libx11-xcb1 libxcb1 libxcomposite1 \
8
+ libxcursor1 libxdamage1 libxext6 libxfixes3 libxi6 libxrandr2 libxrender1 libxss1 libxtst6 \
9
+ ca-certificates fonts-liberation libappindicator1 libnss3 lsb-release xdg-utils wget && \
10
+ apt-get clean && apt-get autoremove -y && rm -rf /var/lib/apt/lists/*
11
+
12
+ RUN yarn global add puppeteer@0.12.0 && yarn cache clean
13
+
14
+ ENV NODE_PATH="/usr/local/share/.config/yarn/global/node_modules:${NODE_PATH}"
15
+
16
+ ENV PATH="/tools:${PATH}"
17
+
18
+ WORKDIR /app
docker/run-docker.sh ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ #!/bin/bash
2
+ yarn && yarn start:dev_api
3
+ tail -f /dev/null
env.sh ADDED
@@ -0,0 +1,25 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ #!/bin/sh
2
+
3
+ # Recreate config file
4
+ envConfigFilePath=$1
5
+
6
+ rm -rf $envConfigFilePath
7
+ touch $envConfigFilePath
8
+
9
+ # Add assignment
10
+ echo "window._env_ = {" >> $envConfigFilePath
11
+
12
+
13
+ while IFS='=' read -r varname varvalue || [ -n "$varname" ]; do
14
+ value=""
15
+ if [ ! -z $(printenv | grep "$varname=") ]; then
16
+ eval "value=\"\${$varname}\""
17
+ else
18
+ # Otherwise use value from .env file
19
+ value="$varvalue"
20
+ fi
21
+
22
+ echo " $varname: \"$value\"," >> "$envConfigFilePath"
23
+ done < ".env"
24
+
25
+ echo "}" >> "$envConfigFilePath"
lerna.json ADDED
@@ -0,0 +1,6 @@
 
 
 
 
 
 
 
1
+ {
2
+ "$schema": "node_modules/lerna/schemas/lerna-schema.json",
3
+ "packages": ["packages/*", "standalone-packages/*"],
4
+ "version": "independent",
5
+ "useNx": false
6
+ }
package.json ADDED
@@ -0,0 +1,121 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "name": "codesandbox",
3
+ "version": "0.1.0",
4
+ "private": true,
5
+ "repository": {
6
+ "type": "git",
7
+ "url": "https://github.com/codesandbox/codesandbox-client"
8
+ },
9
+ "license": "GPL-3.0",
10
+ "workspaces": {
11
+ "packages": [
12
+ "packages/@styled-system/css",
13
+ "packages/app",
14
+ "packages/browser-dart-sass",
15
+ "packages/browser-eslint-rules",
16
+ "packages/codesandbox-api",
17
+ "packages/common",
18
+ "packages/components",
19
+ "packages/deps",
20
+ "packages/executors",
21
+ "packages/node-services",
22
+ "packages/notifications",
23
+ "packages/react-embed",
24
+ "packages/sandbox-hooks",
25
+ "packages/sandpack-core",
26
+ "packages/sse-hooks",
27
+ "packages/template-icons",
28
+ "packages/vue3-browser-compiler",
29
+ "packages/vue3-transpiler"
30
+ ],
31
+ "nohoist": [
32
+ "**/react-codemirror2",
33
+ "**/react-codemirror2/**",
34
+ "codesandbox-deps/tern"
35
+ ]
36
+ },
37
+ "scripts": {
38
+ "build": "cross-env NODE_OPTIONS=\"--max-old-space-size=4096\" yarn build:deps && yarn build:prod",
39
+ "build:clean": "lerna run build:clean --scope app && rimraf www",
40
+ "build:common": "lerna run build:dev --scope @codesandbox/common --stream",
41
+ "build:components": "lerna run build:dev --scope @codesandbox/components --stream",
42
+ "build:deps": "lerna run build:dev",
43
+ "build:sandpack": "lerna run build:sandpack-sandbox --scope app --stream",
44
+ "build:embed": "lerna run build:embed --scope app --stream && gulp",
45
+ "build:prod": "lerna run build --scope app --stream && lerna run copy-assets --scope app --stream",
46
+ "commit": "concurrently \"yarn typecheck\" \"yarn lint\" && git commit -m",
47
+ "postinstall": "yarn lerna run install-dependencies --stream --concurrency 1 && cd packages/app/src/app/overmind/effects/vscode/LinterWorker && yarn install",
48
+ "contributors:add": "all-contributors add",
49
+ "contributors:generate": "all-contributors generate",
50
+ "lint": "lerna run lint --stream",
51
+ "now-build": "yarn build:deps && lerna run build:storybook --scope @codesandbox/common",
52
+ "start": "yarn build:deps && cross-env NODE_ENV=development lerna run start --scope @codesandbox/common --scope @codesandbox/components --scope app --parallel",
53
+ "start:common": "lerna run start --scope @codesandbox/common --stream",
54
+ "start:components": "lerna run start --scope @codesandbox/components --stream",
55
+ "start:dev_api": "(tmux new-session -d -s csb \"NODE_OPTIONS=--max_old_space_size=8192 concurrently --raw 'cd packages/app && yarn start:dev_api' 'cd packages/common && yarn start' 'cd packages/components && yarn start'\" || tmux attach -t csb) && tmux attach -t csb",
56
+ "prestart:fast": "chmod +x ./env.sh && ./env.sh ./packages/app/static/js/env-config.js",
57
+ "start:fast": "cross-env ENDPOINT=https://codesandbox.io NODE_ENV=development concurrently --raw \"cd packages/app && yarn start\" \"cd packages/common && yarn start\" \"cd packages/components && yarn start\"",
58
+ "start:csb-dev": "cross-env NODE_ENV=development stmux -w always -e ERROR -m beep,system -- [ \"cd packages/app && sleep 15 && yarn start:dev_api\" : [ \"cd packages/common && yarn start\" .. \"cd packages/components && yarn start\" ] ]",
59
+ "start:profiling": "cross-env NODE_ENV=production PROFILING=true concurrently --raw \"cd packages/app && yarn start\" \"cd packages/common && yarn start\" \"cd packages/components && yarn start\"",
60
+ "start:hot": "cross-env NODE_ENV=development APP_ONLY=true concurrently --raw \"cd packages/app && yarn start\" \"cd packages/common && yarn start\" \"cd packages/components && yarn start\"",
61
+ "prestart:fast:stream": "chmod +x ./env.sh && ./env.sh ./packages/app/static/js/env-config.js",
62
+ "prestart:fast:local": "chmod +x ./env.sh && ./env.sh ./packages/app/static/js/env-config.js",
63
+ "start:fast:stream": "cross-env ENDPOINT=https://codesandbox.stream NODE_ENV=development concurrently --raw \"cd packages/app && yarn start\" \"cd packages/common && yarn start\" \"cd packages/components && yarn start\"",
64
+ "start:fast:local": "cross-env ENDPOINT=http://localhost:4000 NODE_ENV=development concurrently --raw \"cd packages/app && yarn start\" \"cd packages/common && yarn start\" \"cd packages/components && yarn start\"",
65
+ "start:storybook": "lerna run start:storybook --scope=@codesandbox/common --stream",
66
+ "start:test": "lerna run start:test --scope app --stream",
67
+ "start:vscode": "cross-env VSCODE=1 yarn start:fast & cd standalone-packages/monaco-editor && yarn simpleserver & cd standalone-packages/vscode && yarn watch",
68
+ "test": "lerna run test --ignore codesandbox-browserfs",
69
+ "test:pr": "node testpr-script",
70
+ "test:ci": "lerna run test --ignore codesandbox-browserfs -- --ci --testResultsProcessor=\"jest-junit\" ",
71
+ "test:integrations": "lerna exec --scope app --stream -- yarn test:integrations",
72
+ "test:jest-lite": "lerna exec --scope app --stream -- yarn run test jest-lite --watch --coverage",
73
+ "chromatic": "lerna run chromatic --scope=@codesandbox/components --stream",
74
+ "typecheck": "lerna run typecheck",
75
+ "prettify": "prettier -w .",
76
+ "prepare": "husky install"
77
+ },
78
+ "dependencies": {
79
+ "postinstall-postinstall": "^2.1.0"
80
+ },
81
+ "devDependencies": {
82
+ "@typescript-eslint/eslint-plugin": "^6.9.0",
83
+ "@typescript-eslint/parser": "^6.9.0",
84
+ "all-contributors-cli": "^6.26.1",
85
+ "babel-eslint": "10.1.0",
86
+ "concurrently": "^4.1.0",
87
+ "cross-env": "^6.0.0",
88
+ "eslint": "5.16.0",
89
+ "eslint-config-airbnb": "^18.0.1",
90
+ "eslint-config-prettier": "^6.3.0",
91
+ "eslint-import-resolver-webpack": "^0.8.1",
92
+ "eslint-plugin-import": "^2.18.2",
93
+ "eslint-plugin-jsx-a11y": "^6.6.1",
94
+ "eslint-plugin-react": "~7.21.2",
95
+ "eslint-plugin-react-hooks": "^4.1.0",
96
+ "eslint-plugin-react_editor": "npm:eslint-plugin-react@7.29.4",
97
+ "gulp": "^4.0.2",
98
+ "husky": "^8.0.3",
99
+ "jest-environment-jsdom": "^29.7.0",
100
+ "lerna": "^6",
101
+ "lint-staged": "10.5.4",
102
+ "prettier": "2.1.1",
103
+ "pretty-quick": "^3.0.0",
104
+ "typescript": "^5.2.2",
105
+ "username": "^5.1.0"
106
+ },
107
+ "husky": {
108
+ "hooks": {
109
+ "pre-commit": "lint-staged"
110
+ }
111
+ },
112
+ "lint-staged": {
113
+ "*.{js,jsx,ts,tsx}": [
114
+ "cross-env LINT=1 eslint --fix",
115
+ "pretty-quick --staged"
116
+ ]
117
+ },
118
+ "engines": {
119
+ "node": "^16.0.0"
120
+ }
121
+ }