zmp-cli 3.15.5 → 3.15.6-beta.1

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 (160) hide show
  1. package/README.md +1 -0
  2. package/build/index.js +1 -184
  3. package/config/index.js +1 -44
  4. package/create/index.js +1 -230
  5. package/create/init-zmp-ui.js +1 -216
  6. package/create/templates/app-parameters.js +9 -25
  7. package/create/templates/common/webpack/build.js +2 -40
  8. package/create/templates/copy-assets.js +1 -158
  9. package/create/templates/core/copy-assets.js +14 -82
  10. package/create/templates/core/generate-home-page.js +16 -38
  11. package/create/templates/core/generate-root.js +28 -63
  12. package/create/templates/core/generate-routes.js +12 -38
  13. package/create/templates/core/generate-scripts.js +16 -65
  14. package/create/templates/create-folders.js +1 -30
  15. package/create/templates/generate-config-xml.js +2 -9
  16. package/create/templates/generate-index.js +10 -35
  17. package/create/templates/generate-manifest.js +1 -49
  18. package/create/templates/generate-recoil.js +4 -16
  19. package/create/templates/generate-routes.js +1 -16
  20. package/create/templates/generate-scripts.js +1 -16
  21. package/create/templates/generate-service-worker.js +4 -10
  22. package/create/templates/generate-store.js +4 -15
  23. package/create/templates/generate-styles.js +10 -64
  24. package/create/templates/generate-webpack-config.js +43 -125
  25. package/create/templates/generate-zmp-custom.js +14 -72
  26. package/create/templates/react/copy-assets.js +1 -85
  27. package/create/templates/react/generate-home-page.js +20 -50
  28. package/create/templates/react/generate-root.js +15 -44
  29. package/create/templates/react/generate-routes.js +1 -16
  30. package/create/templates/react/generate-scripts.js +12 -38
  31. package/create/templates/react/pages/404.js +2 -10
  32. package/create/templates/react/pages/about.js +2 -10
  33. package/create/templates/react/pages/catalog.js +3 -17
  34. package/create/templates/react/pages/dynamic-route.js +2 -10
  35. package/create/templates/react/pages/form.js +6 -26
  36. package/create/templates/react/pages/index copy.js +1 -17
  37. package/create/templates/react/pages/index.js +1 -17
  38. package/create/templates/react/pages/settings.js +3 -17
  39. package/create/templates/react/pages/user.js +8 -27
  40. package/create/templates/react-typescript/components/app-items.js +2 -9
  41. package/create/templates/react-typescript/components/index.js +1 -9
  42. package/create/templates/react-typescript/components/navbar-back.js +2 -9
  43. package/create/templates/react-typescript/components/user-card.js +2 -9
  44. package/create/templates/react-typescript/copy-assets.js +1 -94
  45. package/create/templates/react-typescript/generate-home-page.js +20 -52
  46. package/create/templates/react-typescript/generate-root.js +14 -45
  47. package/create/templates/react-typescript/generate-routes.js +1 -12
  48. package/create/templates/react-typescript/generate-scripts.js +12 -37
  49. package/create/templates/react-typescript/pages/404.js +2 -10
  50. package/create/templates/react-typescript/pages/about.js +2 -10
  51. package/create/templates/react-typescript/pages/catalog.js +3 -17
  52. package/create/templates/react-typescript/pages/dynamic-route.js +2 -10
  53. package/create/templates/react-typescript/pages/form.js +6 -26
  54. package/create/templates/react-typescript/pages/index.js +1 -17
  55. package/create/templates/react-typescript/pages/settings.js +3 -17
  56. package/create/templates/react-typescript/pages/user.js +8 -27
  57. package/create/templates/svelte/copy-assets.js +1 -47
  58. package/create/templates/svelte/generate-home-page.js +20 -56
  59. package/create/templates/svelte/generate-root.js +22 -80
  60. package/create/templates/svelte/generate-routes.js +7 -22
  61. package/create/templates/svelte/generate-scripts.js +7 -23
  62. package/create/templates/vue/copy-assets.js +1 -67
  63. package/create/templates/vue/generate-home-page.js +2 -8
  64. package/create/templates/vue/generate-root.js +3 -13
  65. package/create/templates/vue/generate-routes.js +1 -7
  66. package/create/templates/vue/generate-scripts.js +9 -26
  67. package/create/templates/vue/global-components.d.js +1 -0
  68. package/create/templates/zaui/copy-assets.js +1 -90
  69. package/create/templates/zaui/generate-home-page.js +27 -53
  70. package/create/templates/zaui/generate-root.js +14 -34
  71. package/create/templates/zaui/generate-routes.js +1 -10
  72. package/create/templates/zaui/generate-scripts.js +6 -20
  73. package/create/templates/zaui/generate-user-card.js +3 -18
  74. package/create/templates/zaui/pages/about.js +3 -20
  75. package/create/templates/zaui/pages/form.js +3 -20
  76. package/create/templates/zaui/pages/index.js +1 -9
  77. package/create/templates/zaui/pages/user.js +3 -20
  78. package/create/utils/colors.js +1 -94
  79. package/create/utils/generate-app-config.js +1 -34
  80. package/create/utils/generate-gitignore.js +1 -43
  81. package/create/utils/generate-npm-scripts.js +1 -26
  82. package/create/utils/generate-package-json.js +1 -132
  83. package/create/utils/generate-readme.js +1 -28
  84. package/create/utils/get-options.js +1 -204
  85. package/create/utils/indent.js +1 -31
  86. package/create/utils/npm-scripts.js +1 -62
  87. package/create/utils/string.js +1 -13
  88. package/create/utils/styles-extension.js +1 -9
  89. package/create/utils/template-if.js +1 -9
  90. package/deploy/index.js +1 -148
  91. package/deploy/utils/get-options.js +1 -69
  92. package/deploy/utils/request-upload.js +1 -34
  93. package/deploy/utils/upload-app.js +1 -82
  94. package/index.js +1 -319
  95. package/login/index.js +1 -169
  96. package/login/utils/get-options.js +1 -58
  97. package/login/utils/zalo-login.js +1 -32
  98. package/migrate/icons/update-icon-v3.js +1 -19
  99. package/migrate/index.js +1 -60
  100. package/migrate/utils/get-options.js +1 -46
  101. package/migrate/utils/migrate-react.js +1 -33
  102. package/package.json +11 -39
  103. package/start/generate-hr-config.js +1 -59
  104. package/start/index.js +1 -382
  105. package/sync/index-to-app-config.js +1 -146
  106. package/sync/index.js +1 -55
  107. package/utils/axios.js +1 -15
  108. package/utils/check-update.js +1 -53
  109. package/utils/constants.js +1 -20
  110. package/utils/env.js +1 -39
  111. package/utils/error.js +1 -16
  112. package/utils/find-files-by-ext.js +1 -27
  113. package/utils/find-free-port.js +1 -11
  114. package/utils/fs-extra.js +1 -90
  115. package/utils/generate-pages-map.js +1 -17
  116. package/utils/get-app-info.js +1 -22
  117. package/utils/get-current-project.js +1 -25
  118. package/utils/get-ip.js +1 -19
  119. package/utils/log.js +1 -19
  120. package/utils/node-blob.js +1 -106
  121. package/utils/resumable.d.js +1 -0
  122. package/utils/resumable.js +1 -1204
  123. package/utils/spinner.js +1 -25
  124. package/utils/tunnel.js +1 -36
  125. package/.editorconfig +0 -15
  126. package/.eslintignore +0 -8
  127. package/.eslintrc.js +0 -10
  128. package/.vscode/launch.json +0 -23
  129. package/LICENSE +0 -21
  130. package/README.git.md +0 -37
  131. package/assets/index.js +0 -147
  132. package/build/dist/index.dev.js +0 -217
  133. package/config/dist/index.dev.js +0 -48
  134. package/create/templates/dist/generate-styles.dev.js +0 -46
  135. package/create/utils/dist/get-options.dev.js +0 -277
  136. package/deploy/dist/index.dev.js +0 -227
  137. package/dist/index.dev.js +0 -352
  138. package/jsconfig.json +0 -8
  139. package/login/dist/index.dev.js +0 -223
  140. package/screenshots/wellcome.jpg +0 -0
  141. package/show-qr-app/assets/css/style.css +0 -87
  142. package/show-qr-app/assets/js/qrcode.min.js +0 -1
  143. package/show-qr-app/index.html +0 -57
  144. package/show-qr-app/package.json +0 -14
  145. package/start/dist/index.dev.js +0 -312
  146. package/ui/server.js +0 -194
  147. package/ui/www/css/app.css +0 -1
  148. package/ui/www/css/app.css.map +0 -1
  149. package/ui/www/fonts/ZMPIcons-Regular.eot +0 -0
  150. package/ui/www/fonts/ZMPIcons-Regular.ttf +0 -0
  151. package/ui/www/fonts/ZMPIcons-Regular.woff +0 -0
  152. package/ui/www/fonts/ZMPIcons-Regular.woff2 +0 -0
  153. package/ui/www/images/logo.png +0 -0
  154. package/ui/www/index.html +0 -1
  155. package/ui/www/js/app.js +0 -3
  156. package/ui/www/js/app.js.LICENSE.txt +0 -20
  157. package/ui/www/js/app.js.map +0 -1
  158. package/ui/www/static/icons/apple-touch-icon.png +0 -0
  159. package/ui/www/static/icons/favicon.png +0 -0
  160. package/utils/dist/get-app-info.dev.js +0 -54
@@ -1,216 +1 @@
1
- #!/usr/bin/env node
2
- /* eslint no-console: off */
3
- const exec = require('exec-sh');
4
- const path = require('path');
5
- const chalk = require('chalk');
6
- const logSymbols = require('log-symbols');
7
- const fse = require('../utils/fs-extra');
8
- const generatePackageJson = require('./utils/generate-package-json');
9
- const generateNpmScripts = require('./utils/generate-npm-scripts');
10
-
11
- const generateAppConfig = require('./utils/generate-app-config');
12
-
13
- const createFolders = require('./templates/create-folders');
14
- const copyAssets = require('./templates/copy-assets');
15
- const generateReadme = require('./utils/generate-readme');
16
- const generateGitignore = require('./utils/generate-gitignore');
17
- const log = require('../utils/log');
18
- const config = require('../config');
19
-
20
- const waitText = chalk.gray('(Please wait, it can take a while)');
21
-
22
- module.exports = async (
23
- options = {},
24
- logger,
25
- { exitOnError = true, iconFile = null } = {}
26
- ) => {
27
- const cwd = options.cwd || process.cwd();
28
- const isRunningInCwd = cwd === process.cwd();
29
- function errorExit(err) {
30
- log.error(err.stderr || err);
31
- if (exitOnError) process.exit(1);
32
- }
33
- if (!logger) {
34
- // eslint-disable-next-line
35
- logger = {
36
- statusStart() {},
37
- statusDone() {},
38
- statusError() {},
39
- text() {},
40
- error() {},
41
- };
42
- }
43
- // App config
44
- logger.statusStart('Generating app-config.json');
45
- const appConfig = generateAppConfig(options);
46
-
47
- fse.writeFileSync(
48
- path.join(cwd, config.filename.appConfig),
49
- appConfig.content
50
- );
51
- logger.statusDone('Generating app-config.json');
52
-
53
- if (!options.newProject) {
54
- const deployScripts = generateNpmScripts(['r']).map((s) => {
55
- return `${s.icon} Run "npm run ${s.name}" - ${s.description}`;
56
- });
57
- logger.text(deployScripts.join('\n'));
58
- process.exit(0);
59
- }
60
-
61
- // Package
62
- logger.statusStart('Generating package.json');
63
- const packageJson = generatePackageJson(options);
64
- fse.writeFileSync(path.join(cwd, 'package.json'), packageJson.content);
65
- fse.writeFileSync(
66
- path.join(cwd, config.filename.zmpConfig),
67
- JSON.stringify(options, '', 2)
68
- );
69
-
70
- logger.statusDone('Generating package.json');
71
-
72
- // Create Folders
73
- logger.statusStart('Creating required folders structure');
74
- try {
75
- createFolders(options);
76
- } catch (err) {
77
- logger.statusError('Error creating required folders structure');
78
- // if (err) logger.error(err.stderr);
79
- errorExit(err);
80
- }
81
- logger.statusDone('Creating required folders structure');
82
-
83
- // Install NPM depenencies
84
- logger.statusStart(`${'Installing NPM Dependencies'} ${waitText}`);
85
- try {
86
- if (!isRunningInCwd) {
87
- await exec.promise(
88
- `cd ${cwd.replace(
89
- / /g,
90
- '\\ '
91
- )} && npm install ${packageJson.dependencies.join(' ')} --save`,
92
- true
93
- );
94
- } else {
95
- await exec.promise(
96
- `npm install ${packageJson.dependencies.join(' ')} --save`,
97
- true
98
- );
99
- }
100
- } catch (err) {
101
- logger.statusError('Error installing NPM Dependencies');
102
- // if (err) logger.error(err.stderr);
103
- errorExit(err);
104
- return;
105
- }
106
- logger.statusDone('Installing NPM Dependencies');
107
- // Install NPM dev depenencies
108
- logger.statusStart(`${'Installing NPM Dev Dependencies'} ${waitText}`);
109
- try {
110
- if (!isRunningInCwd) {
111
- await exec.promise(
112
- `cd ${cwd.replace(
113
- / /g,
114
- '\\ '
115
- )} && npm install ${packageJson.devDependencies.join(' ')} --save-dev`,
116
- true
117
- );
118
- } else {
119
- await exec.promise(
120
- `npm install ${packageJson.devDependencies.join(' ')} --save-dev`,
121
- true
122
- );
123
- }
124
- } catch (err) {
125
- logger.statusError('Error installing NPM Dev Dependencies');
126
- // if (err) logger.error(err.stderr);
127
- errorExit(err);
128
- return;
129
- }
130
- logger.statusDone('Installing NPM Dev Dependencies');
131
-
132
- if (packageJson.postInstall && packageJson.postInstall.length) {
133
- logger.statusStart('Executing NPM Scripts');
134
- try {
135
- if (!isRunningInCwd) {
136
- await exec.promise(
137
- `cd ${cwd.replace(/ /g, '\\ ')} && npm run postinstall`,
138
- true
139
- );
140
- } else {
141
- await exec.promise('npm run postinstall', true);
142
- }
143
- } catch (err) {
144
- logger.statusError('Error executing NPM Scripts');
145
- // if (err) logger.error(err.stderr);
146
- errorExit(err);
147
- return;
148
- }
149
- logger.statusDone('Executing NPM Scripts');
150
- }
151
-
152
- // Create Project Files
153
- logger.statusStart('Creating project files');
154
- const filesToCopy = copyAssets(options, iconFile);
155
- try {
156
- // eslint-disable-next-line
157
- await Promise.all(
158
- filesToCopy.map((f) => {
159
- if (f.from) {
160
- return fse.copyFileAsync(f.from, f.to);
161
- }
162
- if (f.content) {
163
- return fse.writeFileAsync(f.to, f.content);
164
- }
165
- return Promise.resolve();
166
- })
167
- );
168
- } catch (err) {
169
- logger.statusError('Error creating project files');
170
- // if (err) logger.error(err.stderr || err);
171
- errorExit(err);
172
- return;
173
- }
174
-
175
- // Generate Readme
176
- const readMeContent = generateReadme(options);
177
- try {
178
- fse.writeFileSync(path.join(cwd, 'README.md'), readMeContent);
179
- } catch (err) {
180
- logger.statusError('Error creating project files');
181
- // if (err) logger.error(err.stderr || err);
182
- errorExit(err);
183
- return;
184
- }
185
-
186
- // Generate .gitignore
187
- const gitignoreContent = generateGitignore(options);
188
- try {
189
- fse.writeFileSync(path.join(cwd, '.gitignore'), gitignoreContent);
190
- } catch (err) {
191
- logger.statusError('Error creating project files');
192
- // if (err) logger.error(err.stderr || err);
193
- errorExit(err);
194
- return;
195
- }
196
-
197
- logger.statusDone('Creating project files');
198
-
199
- let npmScripts = generateNpmScripts(['s', 'r']).map((s) => {
200
- return `- ${s.icon} Run "npm run ${s.name}" - ${s.description}`;
201
- });
202
-
203
- // Final Text
204
- const finalText = `
205
- ${chalk.bold(logSymbols.success)} ${chalk.bold('Done!')} 💪
206
-
207
- ${chalk.bold(logSymbols.info)} ${chalk.bold('Next steps:')}
208
- ${npmScripts.join('\n ')}
209
- - 📖 Visit documentation at ${chalk.bold('https://mini.zalo.me/')}
210
- - 📖 Check ${chalk.bold(
211
- 'README.md'
212
- )} in project root folder with further instructions
213
- `;
214
-
215
- logger.text(finalText);
216
- };
1
+ 'use strict';const _0x5f2537=_0x3b12;(function(_0x2e7385,_0x3cb724){const _0x1aacbb=_0x3b12,_0x2fab31=_0x2e7385();while(!![]){try{const _0x13dcd4=parseInt(_0x1aacbb(0x19f))/0x1*(-parseInt(_0x1aacbb(0x1cb))/0x2)+-parseInt(_0x1aacbb(0x1c5))/0x3+-parseInt(_0x1aacbb(0x19e))/0x4*(parseInt(_0x1aacbb(0x192))/0x5)+-parseInt(_0x1aacbb(0x199))/0x6+-parseInt(_0x1aacbb(0x1a8))/0x7*(-parseInt(_0x1aacbb(0x1ce))/0x8)+parseInt(_0x1aacbb(0x18b))/0x9+parseInt(_0x1aacbb(0x18f))/0xa*(parseInt(_0x1aacbb(0x1ab))/0xb);if(_0x13dcd4===_0x3cb724)break;else _0x2fab31['push'](_0x2fab31['shift']());}catch(_0x2e267b){_0x2fab31['push'](_0x2fab31['shift']());}}}(_0x14b5,0x755d3));const e=require('exec-sh'),t=require('path'),r=require('chalk'),n=require(_0x5f2537(0x1c3)),s=require(_0x5f2537(0x1be)),i=require(_0x5f2537(0x1cc)),a=require(_0x5f2537(0x1a0)),o=require('./utils/generate-app-config'),c=require(_0x5f2537(0x1a7)),l=require(_0x5f2537(0x19d)),u=require('./utils/generate-readme'),p=require('./utils/generate-gitignore'),g=require(_0x5f2537(0x1cf)),d=require(_0x5f2537(0x19a)),m=r[_0x5f2537(0x1b4)](_0x5f2537(0x191));function _0x3b12(_0x25e62a,_0x2b2122){const _0x14b5c9=_0x14b5();return _0x3b12=function(_0x3b127d,_0x9f699){_0x3b127d=_0x3b127d-0x186;let _0x8951e4=_0x14b5c9[_0x3b127d];return _0x8951e4;},_0x3b12(_0x25e62a,_0x2b2122);}function _0x14b5(){const _0x2f621d=['../config','icon','Error\x20installing\x20NPM\x20Dependencies','./templates/copy-assets','1078564zKhiWh','29snTMtb','./utils/generate-npm-scripts','description','\x22\x20-\x20','npm\x20run\x20postinstall','Error\x20executing\x20NPM\x20Scripts','https://mini.zalo.me/','statusStart','./templates/create-folders','50603kQGWlc','devDependencies','Installing\x20NPM\x20Dependencies','56683uZgiON','Error\x20creating\x20required\x20folders\x20structure','from','info','Generating\x20package.json','postInstall','appConfig','join','replace','gray','cd\x20','statusDone','\x20in\x20project\x20root\x20folder\x20with\x20further\x20instructions\x0a\x20\x20\x20\x20','text','resolve','.gitignore','content','Error\x20creating\x20project\x20files','Generating\x20app-config.json','../utils/fs-extra','all','name','\x0a\x20\x20-\x20📖\x20Check\x20','\x20--save-dev','log-symbols','statusError','154419dJEybi','\x20&&\x20npm\x20install\x20','success','filename','writeFileSync','newProject','44056JNuMdS','./utils/generate-package-json','\x0a\x20\x20','792vTNsjD','../utils/log','Executing\x20NPM\x20Scripts','Error\x20installing\x20NPM\x20Dev\x20Dependencies','Creating\x20project\x20files','exports','zmpConfig','cwd','copyFileAsync','Installing\x20NPM\x20Dependencies\x20','map','1852713wNMTjO','npm\x20install\x20','bold','promise','2420tYMVbL','writeFileAsync','(Please\x20wait,\x20it\x20can\x20take\x20a\x20while)','15QXOmeJ','dependencies','exit','README.md','error','\x20--save','\x20Run\x20\x22npm\x20run\x20','1131738GAZozd'];_0x14b5=function(){return _0x2f621d;};return _0x14b5();}module[_0x5f2537(0x1d3)]=async(_0x5edf55={},_0x23e740,{exitOnError:_0x1bcfa0=!0x0,iconFile:_0x25ecb9=null}={})=>{const _0x523d2d=_0x5f2537;let _0x3b3c76=_0x5edf55['cwd']||process[_0x523d2d(0x187)](),_0x2451c1=_0x3b3c76===process['cwd']();function _0x35df31(_0xd6ce1a){const _0x28ac8a=_0x523d2d;g[_0x28ac8a(0x196)](_0xd6ce1a['stderr']||_0xd6ce1a),_0x1bcfa0&&process[_0x28ac8a(0x194)](0x1);}_0x23e740||(_0x23e740={'statusStart'(){},'statusDone'(){},'statusError'(){},'text'(){},'error'(){}}),_0x23e740['statusStart'](_0x523d2d(0x1bd));let _0x13de7a=o(_0x5edf55);if(s['writeFileSync'](t[_0x523d2d(0x1b2)](_0x3b3c76,d[_0x523d2d(0x1c8)][_0x523d2d(0x1b1)]),_0x13de7a[_0x523d2d(0x1bb)]),_0x23e740[_0x523d2d(0x1b6)](_0x523d2d(0x1bd)),!_0x5edf55[_0x523d2d(0x1ca)]){let _0x4ff40d=a(['r'])[_0x523d2d(0x18a)](_0x25e6c1=>_0x25e6c1['icon']+_0x523d2d(0x198)+_0x25e6c1[_0x523d2d(0x1c0)]+_0x523d2d(0x1a2)+_0x25e6c1[_0x523d2d(0x1a1)]);_0x23e740[_0x523d2d(0x1b8)](_0x4ff40d[_0x523d2d(0x1b2)]('\x0a')),process[_0x523d2d(0x194)](0x0);}_0x23e740['statusStart'](_0x523d2d(0x1af));let _0x1b2f5b=i(_0x5edf55);s['writeFileSync'](t[_0x523d2d(0x1b2)](_0x3b3c76,'package.json'),_0x1b2f5b[_0x523d2d(0x1bb)]),s[_0x523d2d(0x1c9)](t['join'](_0x3b3c76,d[_0x523d2d(0x1c8)][_0x523d2d(0x186)]),JSON['stringify'](_0x5edf55,'',0x2)),_0x23e740[_0x523d2d(0x1b6)](_0x523d2d(0x1af)),_0x23e740[_0x523d2d(0x1a6)]('Creating\x20required\x20folders\x20structure');try{c(_0x5edf55);}catch(_0xc2b34e){_0x23e740[_0x523d2d(0x1c4)](_0x523d2d(0x1ac)),_0x35df31(_0xc2b34e);}_0x23e740[_0x523d2d(0x1b6)]('Creating\x20required\x20folders\x20structure'),_0x23e740[_0x523d2d(0x1a6)](_0x523d2d(0x189)+m);try{_0x2451c1?await e['promise'](_0x523d2d(0x18c)+_0x1b2f5b[_0x523d2d(0x193)][_0x523d2d(0x1b2)]('\x20')+_0x523d2d(0x197),!0x0):await e[_0x523d2d(0x18e)](_0x523d2d(0x1b5)+_0x3b3c76[_0x523d2d(0x1b3)](/ /g,'\x5c\x20')+_0x523d2d(0x1c6)+_0x1b2f5b[_0x523d2d(0x193)][_0x523d2d(0x1b2)]('\x20')+_0x523d2d(0x197),!0x0);}catch(_0x18abe0){_0x23e740[_0x523d2d(0x1c4)](_0x523d2d(0x19c)),_0x35df31(_0x18abe0);return;}_0x23e740[_0x523d2d(0x1b6)](_0x523d2d(0x1aa)),_0x23e740[_0x523d2d(0x1a6)]('Installing\x20NPM\x20Dev\x20Dependencies\x20'+m);try{_0x2451c1?await e[_0x523d2d(0x18e)](_0x523d2d(0x18c)+_0x1b2f5b[_0x523d2d(0x1a9)][_0x523d2d(0x1b2)]('\x20')+_0x523d2d(0x1c2),!0x0):await e['promise']('cd\x20'+_0x3b3c76[_0x523d2d(0x1b3)](/ /g,'\x5c\x20')+_0x523d2d(0x1c6)+_0x1b2f5b[_0x523d2d(0x1a9)][_0x523d2d(0x1b2)]('\x20')+_0x523d2d(0x1c2),!0x0);}catch(_0x144934){_0x23e740[_0x523d2d(0x1c4)](_0x523d2d(0x1d1)),_0x35df31(_0x144934);return;}if(_0x23e740[_0x523d2d(0x1b6)]('Installing\x20NPM\x20Dev\x20Dependencies'),_0x1b2f5b[_0x523d2d(0x1b0)]&&_0x1b2f5b[_0x523d2d(0x1b0)]['length']){_0x23e740['statusStart'](_0x523d2d(0x1d0));try{_0x2451c1?await e[_0x523d2d(0x18e)](_0x523d2d(0x1a3),!0x0):await e[_0x523d2d(0x18e)]('cd\x20'+_0x3b3c76[_0x523d2d(0x1b3)](/ /g,'\x5c\x20')+'\x20&&\x20npm\x20run\x20postinstall',!0x0);}catch(_0x9d61fd){_0x23e740['statusError'](_0x523d2d(0x1a4)),_0x35df31(_0x9d61fd);return;}_0x23e740[_0x523d2d(0x1b6)](_0x523d2d(0x1d0));}_0x23e740['statusStart']('Creating\x20project\x20files');let _0x45cac3=l(_0x5edf55,_0x25ecb9);try{await Promise[_0x523d2d(0x1bf)](_0x45cac3[_0x523d2d(0x18a)](_0x2df53e=>_0x2df53e['from']?s[_0x523d2d(0x188)](_0x2df53e[_0x523d2d(0x1ad)],_0x2df53e['to']):_0x2df53e[_0x523d2d(0x1bb)]?s[_0x523d2d(0x190)](_0x2df53e['to'],_0x2df53e[_0x523d2d(0x1bb)]):Promise[_0x523d2d(0x1b9)]()));}catch(_0x49ce22){_0x23e740[_0x523d2d(0x1c4)](_0x523d2d(0x1bc)),_0x35df31(_0x49ce22);return;}let _0x184adc=u(_0x5edf55);try{s['writeFileSync'](t[_0x523d2d(0x1b2)](_0x3b3c76,_0x523d2d(0x195)),_0x184adc);}catch(_0x124943){_0x23e740[_0x523d2d(0x1c4)](_0x523d2d(0x1bc)),_0x35df31(_0x124943);return;}let _0x2b1aef=p(_0x5edf55);try{s[_0x523d2d(0x1c9)](t[_0x523d2d(0x1b2)](_0x3b3c76,_0x523d2d(0x1ba)),_0x2b1aef);}catch(_0x18762b){_0x23e740[_0x523d2d(0x1c4)]('Error\x20creating\x20project\x20files'),_0x35df31(_0x18762b);return;}_0x23e740[_0x523d2d(0x1b6)](_0x523d2d(0x1d2));let _0x2c841e=a(['s','r'])[_0x523d2d(0x18a)](_0x59335f=>'-\x20'+_0x59335f[_0x523d2d(0x19b)]+_0x523d2d(0x198)+_0x59335f[_0x523d2d(0x1c0)]+_0x523d2d(0x1a2)+_0x59335f[_0x523d2d(0x1a1)]),_0x239fc6='\x0a'+r[_0x523d2d(0x18d)](n[_0x523d2d(0x1c7)])+'\x20'+r[_0x523d2d(0x18d)]('Done!')+'\x20💪\x0a\x0a'+r[_0x523d2d(0x18d)](n[_0x523d2d(0x1ae)])+'\x20'+r['bold']('Next\x20steps:')+_0x523d2d(0x1cd)+_0x2c841e[_0x523d2d(0x1b2)](_0x523d2d(0x1cd))+'\x0a\x20\x20-\x20📖\x20Visit\x20documentation\x20at\x20'+r[_0x523d2d(0x18d)](_0x523d2d(0x1a5))+_0x523d2d(0x1c1)+r[_0x523d2d(0x18d)](_0x523d2d(0x195))+_0x523d2d(0x1b7);_0x23e740['text'](_0x239fc6);};
@@ -1,33 +1,17 @@
1
- const indent = require('../utils/indent');
2
- const templateIf = require('../utils/template-if');
3
-
4
- module.exports = (options) => {
5
- const { framework, pkg, name, bundler, stateManagement } = options;
6
-
7
- return indent(
8
- 0,
9
- `
10
- name: '${name}', // App name
1
+ "use strict";const e=require("../utils/indent"),t=require("../utils/template-if");module.exports=o=>{let{framework:p,pkg:n,name:r,bundler:i,stateManagement:m}=o;return e(0,`
2
+ name: '${r}', // App name
11
3
  theme: 'auto', // Automatic theme detection
12
- ${templateIf(stateManagement === 'store', () => `
4
+ ${t("store"===m,()=>`
13
5
  // App store
14
6
  store: store,
15
7
  `)}
16
- ${templateIf(framework === 'core', () => `el: '#app', // App root element`)}
17
- ${templateIf(
18
- framework === 'core' && bundler,
19
- () => `component: App, // App main component`
20
- )}
21
- ${templateIf(pkg, () => `id: '${pkg}', // App bundle ID`)}
22
- ${templateIf(
23
- framework === 'core',
24
- () => ` on: {
8
+ ${t("core"===p,()=>"el: '#app', // App root element")}
9
+ ${t("core"===p&&i,()=>"component: App, // App main component")}
10
+ ${t(n,()=>`id: '${n}', // App bundle ID`)}
11
+ ${t("core"===p,()=>` on: {
25
12
  init: function () {
26
13
  var zmp = this;
27
14
  },
28
15
  },
29
- `
30
- )}
31
- `
32
- ).trim();
33
- };
16
+ `)}
17
+ `).trim()};
@@ -1,41 +1,3 @@
1
- const webpack = require('webpack');
2
- const ora = require('ora');
3
- const rm = require('rimraf');
4
- const chalk = require('chalk');
5
- const config = require('./webpack.config.js');
1
+ "use strict";const e=require("webpack"),r=require("ora"),o=require("rimraf"),s=require("chalk"),i=require("./webpack.config.js"),c=process.env.NODE_ENV||"development";process.env.TARGET;const n=r("production"===c?"building for production...":"building development version...");n.start(),o("./www/",r=>{if(r)throw r;e(i,(e,r)=>{if(e)throw e;n.stop(),process.stdout.write(`${r.toString({colors:!0,modules:!1,children:!1,chunks:!1,chunkModules:!1})}
6
2
 
7
- const env = process.env.NODE_ENV || 'development';
8
- const target = process.env.TARGET || 'web';
9
-
10
- const spinner = ora(
11
- env === 'production'
12
- ? 'building for production...'
13
- : 'building development version...'
14
- );
15
- spinner.start();
16
-
17
- rm('./www/', (removeErr) => {
18
- if (removeErr) throw removeErr;
19
-
20
- webpack(config, (err, stats) => {
21
- if (err) throw err;
22
- spinner.stop();
23
-
24
- process.stdout.write(
25
- `${stats.toString({
26
- colors: true,
27
- modules: false,
28
- children: false, // If you are using ts-loader, setting this to true will make TypeScript errors show up during build.
29
- chunks: false,
30
- chunkModules: false,
31
- })}\n\n`
32
- );
33
-
34
- if (stats.hasErrors()) {
35
- console.log(chalk.red('Build failed with errors.\n'));
36
- process.exit(1);
37
- }
38
-
39
- console.log(chalk.cyan('Build complete.\n'));
40
- });
41
- });
3
+ `),r.hasErrors()&&(console.log(s.red("Build failed with errors.\n")),process.exit(1)),console.log(s.cyan("Build complete.\n"))})});
@@ -1,158 +1 @@
1
- const path = require('path');
2
- const fse = require('../../utils/fs-extra');
3
- const stylesExtension = require('../utils/styles-extension');
4
- const copyVueAssets = require('./vue/copy-assets');
5
- const copyReactAssets = require('./react/copy-assets');
6
- const copyReactTsAssets = require('./react-typescript/copy-assets');
7
- const generateIndex = require('./generate-index');
8
- const generateStyles = require('./generate-styles');
9
- const generateScripts = require('./generate-scripts');
10
- const generateZMPCustom = require('./generate-zmp-custom');
11
- const copyZauiAssets = require('./zaui/copy-assets');
12
- const { projectFramework } = require('../../utils/constants');
13
-
14
- module.exports = (options, iconFile) => {
15
- const cwd = options.cwd || process.cwd();
16
- const {
17
- package,
18
- framework,
19
- theming,
20
- cssPreProcessor,
21
- customBuild,
22
- includeTailwind,
23
- } = options;
24
-
25
- const srcFolder = 'src';
26
-
27
- const toCopy = [];
28
- if (package !== 'zmp-ui') {
29
- if (framework === projectFramework.VUE)
30
- toCopy.push(...copyVueAssets(options));
31
- if (framework === projectFramework.REACT)
32
- toCopy.push(...copyReactAssets(options));
33
- if (framework === projectFramework.REACT_TYPESCRIPT) {
34
- toCopy.push(...copyReactTsAssets(options));
35
- }
36
- } else {
37
- toCopy.push(...copyZauiAssets(options));
38
- }
39
- if (theming.iconFonts) {
40
- // Copy Icons CSS
41
- toCopy.push({
42
- from: path.resolve(__dirname, 'common', 'css', 'icons.css'),
43
- to: path.resolve(cwd, srcFolder, 'css', 'icons.css'),
44
- });
45
- }
46
-
47
- if (includeTailwind) {
48
- toCopy.push(
49
- {
50
- from: path.resolve(__dirname, 'common', 'tailwind', 'tailwind.css'),
51
- to: path.resolve(cwd, srcFolder, 'css', 'tailwind.css'),
52
- },
53
- {
54
- from: path.resolve(
55
- __dirname,
56
- 'common',
57
- 'tailwind',
58
- 'tailwind.config.js'
59
- ),
60
- to: path.resolve(cwd, 'tailwind.config.js'),
61
- },
62
- {
63
- from: path.resolve(
64
- __dirname,
65
- 'common',
66
- 'tailwind',
67
- 'postcss.config.js'
68
- ),
69
- to: path.resolve(cwd, 'postcss.config.js'),
70
- }
71
- );
72
- }
73
-
74
- let appScriptFileName = 'app.js';
75
- if (framework === 'react-typescript') {
76
- appScriptFileName = 'app.ts';
77
- }
78
-
79
- // Copy Main Assets
80
- toCopy.push(
81
- ...[
82
- {
83
- content: generateIndex(options),
84
- to: path.resolve(cwd, 'index.html'),
85
- },
86
- {
87
- content: generateStyles(options),
88
- to: path.resolve(
89
- cwd,
90
- srcFolder,
91
- 'css',
92
- `app.${stylesExtension(cssPreProcessor)}`
93
- ),
94
- },
95
- {
96
- content: generateScripts(options),
97
- to: path.resolve(cwd, srcFolder, appScriptFileName),
98
- },
99
- ]
100
- );
101
-
102
- // Copy Custom Build
103
- if (customBuild) {
104
- const customBuildAssets = generateZMPCustom(options);
105
- toCopy.push(
106
- ...[
107
- {
108
- content: customBuildAssets.styles,
109
- to: path.resolve(cwd, srcFolder, 'css', 'zmp-custom.less'),
110
- },
111
- {
112
- content: customBuildAssets.scripts,
113
- to: path.resolve(cwd, srcFolder, 'js', 'zmp-custom.js'),
114
- },
115
- ]
116
- );
117
- }
118
-
119
- if (!includeTailwind) {
120
- // Copy PostCSS config
121
- toCopy.push({
122
- from: path.resolve(__dirname, 'common', 'postcss.config.js'),
123
- to: path.resolve(cwd, 'postcss.config.js'),
124
- });
125
- }
126
-
127
- // Copy Web Images & Icons
128
- const assetsFolder = 'static';
129
- fse.readdirSync(path.resolve(__dirname, 'common', 'icons')).forEach((f) => {
130
- if (f.indexOf('.') === 0) return;
131
- toCopy.push({
132
- from: path.resolve(__dirname, 'common', 'icons', f),
133
- to: path.resolve(cwd, srcFolder, assetsFolder, 'icons', f),
134
- });
135
- });
136
-
137
- if (iconFile) {
138
- fse.writeFileSync(
139
- path.resolve(cwd, 'assets-src', 'web-icon.png'),
140
- iconFile
141
- );
142
- fse.writeFileSync(
143
- path.resolve(cwd, 'assets-src', 'apple-touch-icon.png'),
144
- iconFile
145
- );
146
- } else {
147
- toCopy.push({
148
- from: path.resolve(__dirname, 'common', 'icons', '512x512.png'),
149
- to: path.resolve(cwd, 'assets-src', 'web-icon.png'),
150
- });
151
- toCopy.push({
152
- from: path.resolve(__dirname, 'common', 'icons', 'apple-touch-icon.png'),
153
- to: path.resolve(cwd, 'assets-src', 'apple-touch-icon.png'),
154
- });
155
- }
156
-
157
- return toCopy;
158
- };
1
+ "use strict";const s=require("path"),e=require("../../utils/fs-extra"),o=require("../utils/styles-extension"),r=require("./vue/copy-assets"),t=require("./react/copy-assets"),c=require("./react-typescript/copy-assets"),n=require("./generate-index"),i=require("./generate-styles"),p=require("./generate-scripts"),l=require("./generate-zmp-custom"),a=require("./zaui/copy-assets"),{projectFramework:m}=require("../../utils/constants");module.exports=(u,v)=>{let d=u.cwd||process.cwd(),{framework:_,theming:f,cssPreProcessor:h,customBuild:g,includeTailwind:w}=u,q=[];"zmp-ui"!==u.package?(_===m.VUE&&q.push(...r(u)),_===m.REACT&&q.push(...t(u)),_===m.REACT_TYPESCRIPT&&q.push(...c(u))):q.push(...a(u)),f.iconFonts&&q.push({from:s.resolve(__dirname,"common","css","icons.css"),to:s.resolve(d,"src","css","icons.css")}),w&&q.push({from:s.resolve(__dirname,"common","tailwind","tailwind.css"),to:s.resolve(d,"src","css","tailwind.css")},{from:s.resolve(__dirname,"common","tailwind","tailwind.config.js"),to:s.resolve(d,"tailwind.config.js")},{from:s.resolve(__dirname,"common","tailwind","postcss.config.js"),to:s.resolve(d,"postcss.config.js")});let y="app.js";if("react-typescript"===_&&(y="app.ts"),q.push({content:n(u),to:s.resolve(d,"index.html")},{content:i(u),to:s.resolve(d,"src","css",`app.${o(h)}`)},{content:p(u),to:s.resolve(d,"src",y)}),g){let e=l(u);q.push({content:e.styles,to:s.resolve(d,"src","css","zmp-custom.less")},{content:e.scripts,to:s.resolve(d,"src","js","zmp-custom.js")})}return w||q.push({from:s.resolve(__dirname,"common","postcss.config.js"),to:s.resolve(d,"postcss.config.js")}),e.readdirSync(s.resolve(__dirname,"common","icons")).forEach(e=>{0!==e.indexOf(".")&&q.push({from:s.resolve(__dirname,"common","icons",e),to:s.resolve(d,"src","static","icons",e)})}),v?(e.writeFileSync(s.resolve(d,"assets-src","web-icon.png"),v),e.writeFileSync(s.resolve(d,"assets-src","apple-touch-icon.png"),v)):(q.push({from:s.resolve(__dirname,"common","icons","512x512.png"),to:s.resolve(d,"assets-src","web-icon.png")}),q.push({from:s.resolve(__dirname,"common","icons","apple-touch-icon.png"),to:s.resolve(d,"assets-src","apple-touch-icon.png")})),q};
@@ -1,83 +1,15 @@
1
- const path = require('path');
2
- const fse = require('../../../utils/fs-extra');
3
- const generateHomePage = require('./generate-home-page');
4
- const generateRoot = require('./generate-root');
5
- const generateStore = require('../generate-store');
6
- const indent = require('../../utils/indent');
7
-
8
- module.exports = (options) => {
9
- const cwd = options.cwd || process.cwd();
10
- const { template, bundler } = options;
11
- const toCopy = [];
12
- const srcFolder = bundler ? 'src' : 'www';
13
-
14
- // Copy Pages
15
- const pages = [
16
- ...(template !== 'blank' ? ['404', 'about', 'dynamic-route', 'form'] : []),
17
- ...(template === 'tabs' ? ['catalog', 'product', 'settings'] : []),
18
- ...(template === 'split-view' ? ['left-page-1', 'left-page-2'] : []),
19
- ];
20
-
21
- pages.forEach((p) => {
22
- const src = path.resolve(__dirname, 'pages', `${p}.html`);
23
- const dest = path.resolve(cwd, srcFolder, 'pages');
24
- if (bundler !== 'webpack') {
25
- toCopy.push({
26
- from: src,
27
- to: path.resolve(dest, `${p}.html`),
28
- });
29
- } else {
30
- let content = fse.readFileSync(src);
31
- if (content.trim().indexOf('<template') !== 0) {
32
- content = `<template>\n${content.trim()}\n</template>\n<script>\nexport default () => {\n return $render;\n};\n</script>`;
33
- }
34
- toCopy.push({
35
- content,
36
- to: path.resolve(dest, `${p}.zmp.html`),
37
- });
38
- }
39
- });
40
- toCopy.push({
41
- content: generateStore(options),
42
- to: path.resolve(cwd, srcFolder, 'store.js'),
43
- });
44
-
45
- if (bundler) {
46
- toCopy.push({
47
- content: `<template>\n${indent(
48
- 2,
49
- generateHomePage(options).trim()
50
- )}\n</template>\n<script>\nexport default () => {\n return $render;\n}\n</script>`,
51
- to: path.resolve(cwd, srcFolder, 'pages', 'home.zmp.html'),
52
- });
53
- toCopy.push({
54
- content: generateRoot(options),
55
- to: path.resolve(cwd, srcFolder, 'app.zmp.html'),
56
- });
57
-
58
- toCopy.push({
59
- from: path.resolve(__dirname, 'babel.config.js'),
60
- to: path.resolve(cwd, 'babel.config.js'),
61
- });
62
- } else {
63
- // Copy ZMP
64
- toCopy.push(...[]);
65
- fse
66
- .readdirSync(path.resolve(cwd, 'node_modules', 'zmp-framework/core'))
67
- .filter((f) => {
68
- return (
69
- f.indexOf('.js') >= 0 ||
70
- f.indexOf('.css') >= 0 ||
71
- f.indexOf('.map') >= 0
72
- );
73
- })
74
- .forEach((f) => {
75
- toCopy.push({
76
- from: path.resolve(cwd, 'node_modules', 'zmp-framework/core', f),
77
- to: path.resolve(cwd, srcFolder, 'zmp-framework/core', f),
78
- });
79
- });
80
- }
81
-
82
- return toCopy;
1
+ "use strict";const e=require("path"),r=require("../../../utils/fs-extra"),t=require("./generate-home-page"),o=require("./generate-root"),s=require("../generate-store"),l=require("../../utils/indent");module.exports=p=>{let a=p.cwd||process.cwd(),{template:m,bundler:i}=p,n=[],u=i?"src":"www";return[..."blank"!==m?["404","about","dynamic-route","form"]:[],..."tabs"===m?["catalog","product","settings"]:[],..."split-view"===m?["left-page-1","left-page-2"]:[]].forEach(t=>{let o=e.resolve(__dirname,"pages",`${t}.html`),s=e.resolve(a,u,"pages");if("webpack"!==i)n.push({from:o,to:e.resolve(s,`${t}.html`)});else{let l=r.readFileSync(o);0!==l.trim().indexOf("<template")&&(l=`<template>
2
+ ${l.trim()}
3
+ </template>
4
+ <script>
5
+ export default () => {
6
+ return $render;
83
7
  };
8
+ </script>`),n.push({content:l,to:e.resolve(s,`${t}.zmp.html`)})}}),n.push({content:s(p),to:e.resolve(a,u,"store.js")}),i?(n.push({content:`<template>
9
+ ${l(2,t(p).trim())}
10
+ </template>
11
+ <script>
12
+ export default () => {
13
+ return $render;
14
+ }
15
+ </script>`,to:e.resolve(a,u,"pages","home.zmp.html")}),n.push({content:o(p),to:e.resolve(a,u,"app.zmp.html")}),n.push({from:e.resolve(__dirname,"babel.config.js"),to:e.resolve(a,"babel.config.js")})):(n.push(),r.readdirSync(e.resolve(a,"node_modules","zmp-framework/core")).filter(e=>e.indexOf(".js")>=0||e.indexOf(".css")>=0||e.indexOf(".map")>=0).forEach(r=>{n.push({from:e.resolve(a,"node_modules","zmp-framework/core",r),to:e.resolve(a,u,"zmp-framework/core",r)})})),n};