@vc-shell/create-vc-app 1.0.114 → 1.0.116

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (112) hide show
  1. package/CHANGELOG.md +439 -0
  2. package/dist/index.d.ts +1 -0
  3. package/dist/index.d.ts.map +1 -0
  4. package/dist/index.js +100 -90
  5. package/dist/index.js.map +1 -0
  6. package/dist/templates/base/.env +4 -0
  7. package/dist/{template → templates}/base/.eslintrc.js +1 -2
  8. package/dist/templates/base/.yarn/plugins/@yarnpkg/plugin-version.cjs +550 -0
  9. package/dist/templates/base/.yarn/plugins/@yarnpkg/plugin-workspace-tools.cjs +28 -0
  10. package/dist/templates/base/.yarn/releases/yarn-3.6.4.cjs +874 -0
  11. package/dist/{template/base/index.html.ejs → templates/base/index.html} +1 -1
  12. package/dist/{template/base/package.json.ejs → templates/base/package.json} +9 -11
  13. package/dist/templates/base/public/assets/1.jpeg +0 -0
  14. package/dist/templates/base/public/assets/2.jpg +0 -0
  15. package/dist/templates/base/public/assets/3.jpg +0 -0
  16. package/dist/templates/base/scripts/release.ts +21 -0
  17. package/dist/{template/code/commonPages → templates/base}/src/composables/useLogin/index.ts +1 -0
  18. package/dist/{template/base/src/router/index.ts.ejs → templates/base/src/router/index.ts} +4 -18
  19. package/dist/templates/base/tsconfig.json +16 -0
  20. package/dist/{template/base/vite.config.ts.ejs → templates/base/vite.config.ts} +5 -2
  21. package/dist/templates/variants/both/src/main.ts +45 -0
  22. package/dist/templates/variants/both/src/modules/classic-module/composables/index.ts +2 -0
  23. package/dist/templates/variants/both/src/modules/classic-module/composables/useDetails/index.ts +52 -0
  24. package/dist/templates/variants/both/src/modules/classic-module/composables/useList/index.ts +51 -0
  25. package/dist/{template/code/blade/src/modules/default/locales/en.json.ejs → templates/variants/both/src/modules/classic-module/locales/en.json} +6 -3
  26. package/dist/templates/variants/both/src/modules/classic-module/pages/details.vue +83 -0
  27. package/dist/templates/variants/both/src/modules/classic-module/pages/index.ts +2 -0
  28. package/dist/{template/code/blade/src/modules/default/pages/default-list.vue.ejs → templates/variants/both/src/modules/classic-module/pages/list.vue} +93 -30
  29. package/dist/templates/variants/both/src/modules/dynamic-module/components/DynamicItemsMobileGridView.vue +39 -0
  30. package/dist/templates/variants/both/src/modules/dynamic-module/components/index.ts +3 -0
  31. package/dist/templates/variants/both/src/modules/dynamic-module/composables/index.ts +2 -0
  32. package/dist/templates/variants/both/src/modules/dynamic-module/composables/useDetails/index.ts +92 -0
  33. package/dist/templates/variants/both/src/modules/dynamic-module/composables/useList/index.ts +70 -0
  34. package/dist/templates/variants/both/src/modules/dynamic-module/index.ts +9 -0
  35. package/dist/templates/variants/both/src/modules/dynamic-module/locales/en.json +46 -0
  36. package/dist/templates/variants/both/src/modules/dynamic-module/locales/index.ts +2 -0
  37. package/dist/templates/variants/both/src/modules/dynamic-module/pages/details.ts +40 -0
  38. package/dist/templates/variants/both/src/modules/dynamic-module/pages/index.ts +4 -0
  39. package/dist/templates/variants/both/src/modules/dynamic-module/pages/list.ts +50 -0
  40. package/dist/{template/base/src/pages/App.vue.ejs → templates/variants/both/src/pages/App.vue} +24 -28
  41. package/dist/{template/base/src/main.ts.ejs → templates/variants/classic/src/main.ts} +6 -12
  42. package/dist/templates/variants/classic/src/modules/classic-module/components/index.ts +1 -0
  43. package/dist/templates/variants/classic/src/modules/classic-module/composables/index.ts +2 -0
  44. package/dist/templates/variants/classic/src/modules/classic-module/composables/useDetails/index.ts +52 -0
  45. package/dist/templates/variants/classic/src/modules/classic-module/composables/useList/index.ts +51 -0
  46. package/dist/templates/variants/classic/src/modules/classic-module/index.ts +9 -0
  47. package/dist/templates/variants/classic/src/modules/classic-module/locales/en.json +43 -0
  48. package/dist/templates/variants/classic/src/modules/classic-module/locales/index.ts +2 -0
  49. package/dist/templates/variants/classic/src/modules/classic-module/pages/details.vue +83 -0
  50. package/dist/templates/variants/classic/src/modules/classic-module/pages/index.ts +2 -0
  51. package/dist/templates/variants/classic/src/modules/classic-module/pages/list.vue +260 -0
  52. package/dist/templates/variants/classic/src/pages/App.vue +362 -0
  53. package/dist/templates/variants/dynamic/src/main.ts +42 -0
  54. package/dist/templates/variants/dynamic/src/modules/dynamic-module/components/DynamicItemsMobileGridView.vue +39 -0
  55. package/dist/templates/variants/dynamic/src/modules/dynamic-module/components/index.ts +3 -0
  56. package/dist/templates/variants/dynamic/src/modules/dynamic-module/composables/index.ts +2 -0
  57. package/dist/templates/variants/dynamic/src/modules/dynamic-module/composables/useDetails/index.ts +92 -0
  58. package/dist/templates/variants/dynamic/src/modules/dynamic-module/composables/useList/index.ts +70 -0
  59. package/dist/templates/variants/dynamic/src/modules/dynamic-module/index.ts +9 -0
  60. package/dist/templates/variants/dynamic/src/modules/dynamic-module/locales/en.json +46 -0
  61. package/dist/templates/variants/dynamic/src/modules/dynamic-module/locales/index.ts +2 -0
  62. package/dist/templates/variants/dynamic/src/modules/dynamic-module/pages/details.ts +40 -0
  63. package/dist/templates/variants/dynamic/src/modules/dynamic-module/pages/index.ts +4 -0
  64. package/dist/templates/variants/dynamic/src/modules/dynamic-module/pages/list.ts +50 -0
  65. package/dist/templates/variants/dynamic/src/pages/App.vue +362 -0
  66. package/dist/tsconfig.tsbuildinfo +1 -1
  67. package/package.json +9 -8
  68. package/dist/template/base/.env.ejs +0 -6
  69. package/dist/template/base/tsconfig.json +0 -37
  70. package/dist/template/code/blade/src/modules/default/composables/index.ts +0 -1
  71. package/dist/template/code/blade/src/modules/default/composables/useDefault/index.ts +0 -9
  72. package/dist/template/code/blade/src/modules/default/pages/index.ts +0 -1
  73. /package/dist/{template → templates}/base/.browserslistrc +0 -0
  74. /package/dist/{template → templates}/base/.commitlintrc.json +0 -0
  75. /package/dist/{template → templates}/base/.editorconfig +0 -0
  76. /package/dist/{template → templates}/base/.eslintignore +0 -0
  77. /package/dist/{template → templates}/base/.husky/commit-msg +0 -0
  78. /package/dist/{template → templates}/base/.husky/pre-commit +0 -0
  79. /package/dist/{template → templates}/base/.prettierignore +0 -0
  80. /package/dist/{template → templates}/base/.prettierrc +0 -0
  81. /package/dist/{template → templates}/base/.vscode/extensions.json +0 -0
  82. /package/dist/{template → templates}/base/.vscode/settings.json +0 -0
  83. /package/dist/{template → templates}/base/LICENSE +0 -0
  84. /package/dist/{template → templates}/base/README.md +0 -0
  85. /package/dist/{template → templates}/base/postcss.config.js +0 -0
  86. /package/dist/{template → templates}/base/public/assets/app-select.svg +0 -0
  87. /package/dist/{template → templates}/base/public/assets/avatar.jpg +0 -0
  88. /package/dist/{template → templates}/base/public/assets/background.jpg +0 -0
  89. /package/dist/{template → templates}/base/public/assets/empty.png +0 -0
  90. /package/dist/{template → templates}/base/public/assets/logo-white.svg +0 -0
  91. /package/dist/{template → templates}/base/public/assets/logo.svg +0 -0
  92. /package/dist/{template → templates}/base/public/img/icons/apple-touch-icon.png +0 -0
  93. /package/dist/{template → templates}/base/public/img/icons/favicon-16x16.png +0 -0
  94. /package/dist/{template → templates}/base/public/img/icons/favicon-32x32.png +0 -0
  95. /package/dist/{template → templates}/base/public/img/icons/favicon.ico +0 -0
  96. /package/dist/{template → templates}/base/public/img/icons/mstile-150x150.png +0 -0
  97. /package/dist/{template → templates}/base/public/img/icons/pwa-192x192.png +0 -0
  98. /package/dist/{template → templates}/base/public/img/icons/pwa-512x512.png +0 -0
  99. /package/dist/{template → templates}/base/public/img/icons/safari-pinned-tab.svg +0 -0
  100. /package/dist/{template → templates}/base/src/api_client/README.md +0 -0
  101. /package/dist/{template/code/commonPages → templates/base}/src/composables/index.ts +0 -0
  102. /package/dist/{template → templates}/base/src/env.d.ts +0 -0
  103. /package/dist/{template → templates}/base/src/locales/en.json +0 -0
  104. /package/dist/{template → templates}/base/src/locales/index.ts +0 -0
  105. /package/dist/{template/code/dashboard → templates/base}/src/pages/Dashboard.vue +0 -0
  106. /package/dist/{template → templates}/base/src/shims-vue.d.ts +0 -0
  107. /package/dist/{template → templates}/base/src/styles/index.scss +0 -0
  108. /package/dist/{template → templates}/base/src/types/index.ts +0 -0
  109. /package/dist/{template → templates}/base/tailwind.config.js +0 -0
  110. /package/dist/{template/code/blade/src/modules/default → templates/variants/both/src/modules/classic-module}/components/index.ts +0 -0
  111. /package/dist/{template/code/blade/src/modules/default → templates/variants/both/src/modules/classic-module}/index.ts +0 -0
  112. /package/dist/{template/code/blade/src/modules/default → templates/variants/both/src/modules/classic-module}/locales/index.ts +0 -0
package/CHANGELOG.md CHANGED
@@ -1,3 +1,442 @@
1
+ ## 1.0.116 (2023-11-02)
2
+
3
+
4
+ ### Features
5
+
6
+ * updated release in boilerplate and sample ([382265b](https://github.com/VirtoCommerce/vc-shell/commit/382265b1a740504b5a4de89cbb7cba38b3d74539))
7
+
8
+
9
+
10
+ ## 1.0.115 (2023-11-02)
11
+
12
+
13
+ ### Features
14
+
15
+ * **@vc-shell/create-vc-app:** changed boilerplate ([740915b](https://github.com/VirtoCommerce/vc-shell/commit/740915baea40f4ac25375679dac9e9a209ae1937))
16
+ * **@vc-shell/framework:** updated tsconfigs ([921d000](https://github.com/VirtoCommerce/vc-shell/commit/921d000de8a0ca1b3eed4712eb5cc87e6d6a6616))
17
+
18
+
19
+
20
+ ## 1.0.114 (2023-10-25)
21
+
22
+
23
+
24
+ ## 1.0.113 (2023-10-25)
25
+
26
+
27
+ ### Features
28
+
29
+ * **@vc-shell/api-client:** Replace .env variables to command line args ([4bcfade](https://github.com/VirtoCommerce/vc-shell/commit/4bcfade6f0eee7f6e2b74ed898d5b90da1198da8))
30
+
31
+
32
+ ### BREAKING CHANGES
33
+
34
+ * **@vc-shell/api-client:** api client generator now uses
35
+ command line arguments instead of environment variables
36
+
37
+
38
+
39
+ ## 1.0.111 (2023-10-17)
40
+
41
+
42
+ ### Features
43
+
44
+ * dynamic modules ([ed4af3a](https://github.com/VirtoCommerce/vc-shell/commit/ed4af3ad65e47b0d633d6e2eb23e9c90d73ff50d))
45
+
46
+
47
+
48
+ ## 1.0.110 (2023-10-16)
49
+
50
+
51
+
52
+ ## 1.0.109 (2023-10-13)
53
+
54
+
55
+
56
+ ## 1.0.108 (2023-10-13)
57
+
58
+
59
+
60
+ ## 1.0.107 (2023-10-12)
61
+
62
+
63
+
64
+ ## 1.0.106 (2023-10-12)
65
+
66
+
67
+
68
+ ## 1.0.105 (2023-10-02)
69
+
70
+
71
+
72
+ ## 1.0.104 (2023-10-02)
73
+
74
+
75
+
76
+ ## 1.0.103 (2023-09-29)
77
+
78
+
79
+
80
+ ## 1.0.102 (2023-09-29)
81
+
82
+
83
+
84
+ ## 1.0.101 (2023-09-28)
85
+
86
+
87
+
88
+ ## 1.0.100 (2023-09-22)
89
+
90
+
91
+
92
+ ## 1.0.99 (2023-09-22)
93
+
94
+
95
+
96
+ ## 1.0.98 (2023-09-21)
97
+
98
+
99
+
100
+ ## 1.0.97 (2023-09-12)
101
+
102
+
103
+
104
+ ## 1.0.96 (2023-08-28)
105
+
106
+
107
+
108
+ ## 1.0.95 (2023-08-28)
109
+
110
+
111
+
112
+ ## 1.0.94 (2023-08-04)
113
+
114
+
115
+
116
+ ## 1.0.92 (2023-07-12)
117
+
118
+
119
+
120
+ ## 1.0.91 (2023-07-12)
121
+
122
+
123
+
124
+ ## 1.0.90 (2023-07-12)
125
+
126
+
127
+
128
+ ## 1.0.89 (2023-07-07)
129
+
130
+
131
+
132
+ ## 1.0.88 (2023-06-27)
133
+
134
+
135
+
136
+ ## 1.0.87 (2023-06-26)
137
+
138
+
139
+
140
+ ## 1.0.86 (2023-06-23)
141
+
142
+
143
+
144
+ ## 1.0.85 (2023-06-23)
145
+
146
+
147
+ ### Bug Fixes
148
+
149
+ * check permissions plugin ([cc65272](https://github.com/VirtoCommerce/vc-shell/commit/cc65272d933e29f427b1403df2bdd627b15dd1e6))
150
+
151
+
152
+
153
+ ## 1.0.84 (2023-06-23)
154
+
155
+
156
+
157
+ ## 1.0.83 (2023-06-23)
158
+
159
+
160
+
161
+ ## 1.0.82 (2023-06-23)
162
+
163
+
164
+
165
+ ## 1.0.81 (2023-06-23)
166
+
167
+
168
+
169
+ ## 1.0.80 (2023-06-22)
170
+
171
+
172
+
173
+ ## 1.0.79 (2023-06-22)
174
+
175
+
176
+
177
+ ## 1.0.78 (2023-06-22)
178
+
179
+
180
+
181
+ ## 1.0.77 (2023-06-22)
182
+
183
+
184
+
185
+ ## 1.0.76 (2023-06-22)
186
+
187
+
188
+
189
+ ## 1.0.75 (2023-06-21)
190
+
191
+
192
+
193
+ ## 1.0.74 (2023-06-21)
194
+
195
+
196
+ ### Bug Fixes
197
+
198
+ * pass platformUrl to shell ([6265790](https://github.com/VirtoCommerce/vc-shell/commit/62657901ae6738883ed785e4f54507db85ba7d66))
199
+
200
+
201
+
202
+ ## 1.0.73 (2023-06-08)
203
+
204
+
205
+
206
+ ## 1.0.72 (2023-06-07)
207
+
208
+
209
+
210
+ ## 1.0.71 (2023-06-02)
211
+
212
+
213
+ ### Bug Fixes
214
+
215
+ * fixed create-vc-app template ([f433fea](https://github.com/VirtoCommerce/vc-shell/commit/f433feaf4b75badeea427b61061a08b9a6056c8a))
216
+
217
+
218
+ ### Features
219
+
220
+ * **cli** create-vc-app scaffolding tool ([e6428ae](https://github.com/VirtoCommerce/vc-shell/commit/e6428ae654ba180971c6ab58f9abfa2452ca0e9b))
221
+ * azure active directory signin ([46cee05](https://github.com/VirtoCommerce/vc-shell/commit/46cee052064434bdd143d744ca7557f5c0fd7e84))
222
+
223
+
224
+
225
+ ## 1.0.115 (2023-11-02)
226
+
227
+
228
+ ### Features
229
+
230
+ * **@vc-shell/create-vc-app:** changed boilerplate ([740915b](https://github.com/VirtoCommerce/vc-shell/commit/740915baea40f4ac25375679dac9e9a209ae1937))
231
+ * **@vc-shell/framework:** updated tsconfigs ([921d000](https://github.com/VirtoCommerce/vc-shell/commit/921d000de8a0ca1b3eed4712eb5cc87e6d6a6616))
232
+
233
+
234
+
235
+ ## 1.0.114 (2023-10-25)
236
+
237
+
238
+
239
+ ## 1.0.113 (2023-10-25)
240
+
241
+
242
+ ### Features
243
+
244
+ * **@vc-shell/api-client:** Replace .env variables to command line args ([4bcfade](https://github.com/VirtoCommerce/vc-shell/commit/4bcfade6f0eee7f6e2b74ed898d5b90da1198da8))
245
+
246
+
247
+ ### BREAKING CHANGES
248
+
249
+ * **@vc-shell/api-client:** api client generator now uses
250
+ command line arguments instead of environment variables
251
+
252
+
253
+
254
+ ## 1.0.111 (2023-10-17)
255
+
256
+
257
+ ### Features
258
+
259
+ * dynamic modules ([ed4af3a](https://github.com/VirtoCommerce/vc-shell/commit/ed4af3ad65e47b0d633d6e2eb23e9c90d73ff50d))
260
+
261
+
262
+
263
+ ## 1.0.110 (2023-10-16)
264
+
265
+
266
+
267
+ ## 1.0.109 (2023-10-13)
268
+
269
+
270
+
271
+ ## 1.0.108 (2023-10-13)
272
+
273
+
274
+
275
+ ## 1.0.107 (2023-10-12)
276
+
277
+
278
+
279
+ ## 1.0.106 (2023-10-12)
280
+
281
+
282
+
283
+ ## 1.0.105 (2023-10-02)
284
+
285
+
286
+
287
+ ## 1.0.104 (2023-10-02)
288
+
289
+
290
+
291
+ ## 1.0.103 (2023-09-29)
292
+
293
+
294
+
295
+ ## 1.0.102 (2023-09-29)
296
+
297
+
298
+
299
+ ## 1.0.101 (2023-09-28)
300
+
301
+
302
+
303
+ ## 1.0.100 (2023-09-22)
304
+
305
+
306
+
307
+ ## 1.0.99 (2023-09-22)
308
+
309
+
310
+
311
+ ## 1.0.98 (2023-09-21)
312
+
313
+
314
+
315
+ ## 1.0.97 (2023-09-12)
316
+
317
+
318
+
319
+ ## 1.0.96 (2023-08-28)
320
+
321
+
322
+
323
+ ## 1.0.95 (2023-08-28)
324
+
325
+
326
+
327
+ ## 1.0.94 (2023-08-04)
328
+
329
+
330
+
331
+ ## 1.0.92 (2023-07-12)
332
+
333
+
334
+
335
+ ## 1.0.91 (2023-07-12)
336
+
337
+
338
+
339
+ ## 1.0.90 (2023-07-12)
340
+
341
+
342
+
343
+ ## 1.0.89 (2023-07-07)
344
+
345
+
346
+
347
+ ## 1.0.88 (2023-06-27)
348
+
349
+
350
+
351
+ ## 1.0.87 (2023-06-26)
352
+
353
+
354
+
355
+ ## 1.0.86 (2023-06-23)
356
+
357
+
358
+
359
+ ## 1.0.85 (2023-06-23)
360
+
361
+
362
+ ### Bug Fixes
363
+
364
+ * check permissions plugin ([cc65272](https://github.com/VirtoCommerce/vc-shell/commit/cc65272d933e29f427b1403df2bdd627b15dd1e6))
365
+
366
+
367
+
368
+ ## 1.0.84 (2023-06-23)
369
+
370
+
371
+
372
+ ## 1.0.83 (2023-06-23)
373
+
374
+
375
+
376
+ ## 1.0.82 (2023-06-23)
377
+
378
+
379
+
380
+ ## 1.0.81 (2023-06-23)
381
+
382
+
383
+
384
+ ## 1.0.80 (2023-06-22)
385
+
386
+
387
+
388
+ ## 1.0.79 (2023-06-22)
389
+
390
+
391
+
392
+ ## 1.0.78 (2023-06-22)
393
+
394
+
395
+
396
+ ## 1.0.77 (2023-06-22)
397
+
398
+
399
+
400
+ ## 1.0.76 (2023-06-22)
401
+
402
+
403
+
404
+ ## 1.0.75 (2023-06-21)
405
+
406
+
407
+
408
+ ## 1.0.74 (2023-06-21)
409
+
410
+
411
+ ### Bug Fixes
412
+
413
+ * pass platformUrl to shell ([6265790](https://github.com/VirtoCommerce/vc-shell/commit/62657901ae6738883ed785e4f54507db85ba7d66))
414
+
415
+
416
+
417
+ ## 1.0.73 (2023-06-08)
418
+
419
+
420
+
421
+ ## 1.0.72 (2023-06-07)
422
+
423
+
424
+
425
+ ## 1.0.71 (2023-06-02)
426
+
427
+
428
+ ### Bug Fixes
429
+
430
+ * fixed create-vc-app template ([f433fea](https://github.com/VirtoCommerce/vc-shell/commit/f433feaf4b75badeea427b61061a08b9a6056c8a))
431
+
432
+
433
+ ### Features
434
+
435
+ * **cli** create-vc-app scaffolding tool ([e6428ae](https://github.com/VirtoCommerce/vc-shell/commit/e6428ae654ba180971c6ab58f9abfa2452ca0e9b))
436
+ * azure active directory signin ([46cee05](https://github.com/VirtoCommerce/vc-shell/commit/46cee052064434bdd143d744ca7557f5c0fd7e84))
437
+
438
+
439
+
1
440
  ## [1.0.114](https://github.com/VirtoCommerce/vc-shell/compare/v1.0.113...v1.0.114) (2023-10-25)
2
441
 
3
442
 
package/dist/index.d.ts CHANGED
@@ -1,2 +1,3 @@
1
1
  #!/usr/bin/env node
2
2
  export {};
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":""}
package/dist/index.js CHANGED
@@ -1,13 +1,10 @@
1
1
  #!/usr/bin/env node
2
- "use strict";
3
- Object.defineProperty(exports, "__esModule", { value: true });
4
- const tslib_1 = require("tslib");
5
- const prompts_1 = tslib_1.__importDefault(require("prompts"));
6
- const minimist_1 = tslib_1.__importDefault(require("minimist"));
7
- const chalk_1 = tslib_1.__importDefault(require("chalk"));
8
- const path_1 = tslib_1.__importDefault(require("path"));
9
- const fs_1 = tslib_1.__importDefault(require("fs"));
10
- const ejs = tslib_1.__importStar(require("ejs"));
2
+ import prompts from "prompts";
3
+ import mri from "mri";
4
+ import { default as chalk } from "chalk";
5
+ import path from "path";
6
+ import fs from "fs";
7
+ import { fileURLToPath } from "node:url";
11
8
  function isValidName(appName) {
12
9
  return /^(?:@[a-z0-9-*~][a-z0-9-*._~]*\/)?[a-z0-9-~][a-z0-9-._~]*$/.test(appName);
13
10
  }
@@ -20,94 +17,103 @@ function toValidName(appName) {
20
17
  .replace(/[^a-z0-9-~]+/g, "-");
21
18
  }
22
19
  function emptyDir(dir) {
23
- if (!fs_1.default.existsSync(dir)) {
20
+ if (!fs.existsSync(dir)) {
24
21
  return;
25
22
  }
26
23
  }
27
- async function renderTemplate(src, dest, config) {
28
- const stats = fs_1.default.statSync(src);
29
- if (stats.isDirectory()) {
30
- if (path_1.default.basename(src) === "node_modules") {
31
- return;
32
- }
33
- fs_1.default.mkdirSync(dest, { recursive: true });
34
- for (const file of fs_1.default.readdirSync(src)) {
35
- if (path_1.default.parse(file).ext === ".ejs") {
36
- try {
37
- const rendered = await ejs.renderFile(path_1.default.resolve(src, file), config);
38
- fs_1.default.writeFileSync(path_1.default.resolve(`${dest}/${path_1.default.parse(file).name}`), rendered);
39
- continue;
40
- }
41
- catch (e) {
42
- console.log(e);
43
- }
44
- }
45
- renderTemplate(path_1.default.resolve(src, file), path_1.default.resolve(dest, file), config);
46
- }
47
- return;
24
+ function isEmpty(path) {
25
+ const files = fs.readdirSync(path);
26
+ return files.length === 0 || (files.length === 1 && files[0] === ".git");
27
+ }
28
+ function copy(src, dest) {
29
+ const stat = fs.statSync(src);
30
+ if (stat.isDirectory()) {
31
+ copyDir(src, dest);
48
32
  }
49
- if (fs_1.default.existsSync(dest)) {
50
- fs_1.default.writeFileSync(dest, fs_1.default.readFileSync(src, "utf8"));
51
- return;
33
+ else {
34
+ fs.copyFileSync(src, dest);
52
35
  }
53
- fs_1.default.copyFileSync(src, dest);
54
36
  }
37
+ function copyDir(srcDir, destDir) {
38
+ fs.mkdirSync(destDir, { recursive: true });
39
+ for (const file of fs.readdirSync(srcDir)) {
40
+ const srcFile = path.resolve(srcDir, file);
41
+ const destFile = path.resolve(destDir, file);
42
+ copy(srcFile, destFile);
43
+ }
44
+ }
45
+ const AppVariants = [
46
+ {
47
+ name: "classic",
48
+ display: "Classic modules boilerplate",
49
+ },
50
+ {
51
+ name: "dynamic",
52
+ display: "Dynamic modules boilerplate",
53
+ },
54
+ {
55
+ name: "both",
56
+ display: "Classic modules + Dynamic modules boilerplate",
57
+ },
58
+ ];
59
+ const variantMap = {
60
+ both: "variants/both",
61
+ classic: "variants/classic",
62
+ dynamic: "variants/dynamic",
63
+ };
55
64
  async function create() {
56
65
  const cwd = process.cwd();
57
- const args = (0, minimist_1.default)(process.argv.slice(2));
66
+ const args = mri(process.argv.slice(2));
58
67
  let dir = args._[0];
59
68
  const defaultAppName = !dir ? "vc-app" : dir;
60
- let config = {};
69
+ const getProjectName = () => (dir === "." ? path.basename(path.resolve()) : dir);
70
+ let config;
61
71
  try {
62
- config = await (0, prompts_1.default)([
72
+ config = await prompts([
63
73
  {
64
74
  name: "appName",
65
75
  type: dir ? null : "text",
66
- message: "App name:",
76
+ message: chalk.reset("Project name:"),
67
77
  initial: defaultAppName,
68
78
  onState: (state) => (dir = toValidName(String(state.value).trim()) || defaultAppName),
69
79
  format: (value) => toValidName(String(value).trim()),
70
80
  },
71
81
  {
72
- name: "packageName",
73
- type: () => (isValidName(dir) ? null : "text"),
74
- message: "Package name:",
75
- initial: () => toValidName(dir),
76
- validate: (dir) => isValidName(dir) || "Invalid package.json name",
82
+ type: () => (!fs.existsSync(dir) || isEmpty(dir) ? null : "confirm"),
83
+ name: "overwrite",
84
+ message: () => (dir === "." ? "Current directory" : `Target directory "${dir}"`) +
85
+ ` is not empty. Remove existing files and continue?`,
77
86
  },
78
87
  {
79
- name: "dashboard",
80
- type: "toggle",
81
- message: "Add Dashboard page?",
82
- initial: false,
83
- active: "Yes",
84
- inactive: "No",
88
+ type: (_, { overwrite }) => {
89
+ if (overwrite === false) {
90
+ throw new Error(chalk.red("✖") + " Operation cancelled");
91
+ }
92
+ return null;
93
+ },
94
+ name: "overwriteChecker",
85
95
  },
86
96
  {
87
- name: "commonPages",
88
- type: "toggle",
89
- message: "Add Login/Invite/Reset password pages?",
90
- initial: false,
91
- active: "Yes",
92
- inactive: "No",
93
- },
94
- {
95
- name: "bladeModuleStarter",
96
- type: "toggle",
97
- message: "Add module starter?",
98
- initial: false,
99
- active: "Yes",
100
- inactive: "No",
97
+ name: "packageName",
98
+ type: () => (isValidName(getProjectName()) ? null : "text"),
99
+ message: chalk.reset("Package name:"),
100
+ initial: () => toValidName(getProjectName()),
101
+ validate: (dir) => isValidName(dir) || "Invalid package.json name",
101
102
  },
102
103
  {
103
- name: "bladeModuleName",
104
- type: (prev) => (prev ? "text" : null),
105
- message: "Module starter name:",
106
- format: (value) => String(value).trim().replace(/\s+/g, "").replace(/^[._]/, ""),
104
+ type: "select",
105
+ name: "variant",
106
+ message: chalk.reset("Select module variant:"),
107
+ choices: AppVariants.map((variant) => {
108
+ return {
109
+ title: variant.display,
110
+ value: variant.name,
111
+ };
112
+ }),
107
113
  },
108
114
  ], {
109
115
  onCancel: () => {
110
- throw new Error(chalk_1.default.red("Creation cancelled"));
116
+ throw new Error(chalk.red("✖") + " Creation cancelled");
111
117
  },
112
118
  });
113
119
  }
@@ -115,38 +121,42 @@ async function create() {
115
121
  console.log(e.message);
116
122
  process.exit(1);
117
123
  }
118
- const { dashboard, commonPages, bladeModuleStarter } = config;
119
- const root = path_1.default.join(cwd, dir);
120
- if (fs_1.default.existsSync(root)) {
124
+ const { packageName, variant } = config;
125
+ const root = path.join(cwd, dir);
126
+ if (fs.existsSync(root)) {
121
127
  emptyDir(root);
122
128
  }
123
- else if (!fs_1.default.existsSync(root)) {
124
- fs_1.default.mkdirSync(root);
129
+ else if (!fs.existsSync(root)) {
130
+ fs.mkdirSync(root);
125
131
  }
126
132
  console.log(`\nScaffolding app in ${root}...`);
127
- const templateRoot = path_1.default.resolve(__dirname, "template");
133
+ const templateRoot = path.resolve(fileURLToPath(import.meta.url), "../templates");
134
+ const write = (file, content) => {
135
+ if (content) {
136
+ fs.writeFileSync(path.join(root, file), content);
137
+ }
138
+ else {
139
+ copy(file, root);
140
+ }
141
+ };
128
142
  const render = (templateName) => {
129
- const templateDir = path_1.default.resolve(templateRoot, templateName);
130
- renderTemplate(templateDir, root, config);
143
+ const templateDir = path.resolve(templateRoot, templateName);
144
+ write(templateDir);
131
145
  };
132
146
  render("base");
133
- if (dashboard) {
134
- render("code/dashboard");
135
- }
136
- if (commonPages) {
137
- render("code/commonPages");
138
- }
139
- if (bladeModuleStarter) {
140
- render("code/blade");
141
- }
147
+ render(variantMap[variant]);
148
+ const pkg = JSON.parse(fs.readFileSync(path.join(templateRoot, `./base/package.json`), "utf-8"));
149
+ pkg.name = packageName || getProjectName();
150
+ write("package.json", JSON.stringify(pkg, null, 2) + "\n");
142
151
  console.log(`\nDone. You can now run application:\n`);
143
152
  if (root !== cwd) {
144
- const cdProjectName = path_1.default.relative(cwd, root);
145
- console.log(` ${chalk_1.default.bold(chalk_1.default.green(`cd ${cdProjectName.includes(" ") ? `"${cdProjectName}"` : cdProjectName}`))}`);
153
+ const cdProjectName = path.relative(cwd, root);
154
+ console.log(` ${chalk.bold(chalk.green(`cd ${cdProjectName.includes(" ") ? `"${cdProjectName}"` : cdProjectName}`))}`);
146
155
  }
147
- console.log(` ${chalk_1.default.bold(chalk_1.default.green("yarn"))}`);
148
- console.log(` ${chalk_1.default.bold(chalk_1.default.green("yarn serve"))}`);
156
+ console.log(` ${chalk.bold(chalk.green("yarn"))}`);
157
+ console.log(` ${chalk.bold(chalk.green("yarn serve"))}`);
149
158
  }
150
159
  create().catch((e) => {
151
160
  console.error(e);
152
161
  });
162
+ //# sourceMappingURL=index.js.map