zmp-cli 3.15.6 → 3.15.7

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 (166) 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 -149
  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/templates/react/dist/generate-scripts.dev.js +0 -23
  136. package/create/templates/react-typescript/dist/generate-scripts.dev.js +0 -23
  137. package/create/utils/dist/get-options.dev.js +0 -277
  138. package/deploy/dist/index.dev.js +0 -227
  139. package/deploy/utils/dist/request-upload.dev.js +0 -62
  140. package/deploy/utils/dist/upload-app.dev.js +0 -113
  141. package/dist/bundle.js +0 -1
  142. package/dist/index.dev.js +0 -352
  143. package/jsconfig.json +0 -8
  144. package/login/dist/index.dev.js +0 -223
  145. package/login/utils/dist/zalo-login.dev.js +0 -41
  146. package/screenshots/wellcome.jpg +0 -0
  147. package/show-qr-app/assets/css/style.css +0 -87
  148. package/show-qr-app/assets/js/qrcode.min.js +0 -1
  149. package/show-qr-app/index.html +0 -57
  150. package/show-qr-app/package.json +0 -14
  151. package/start/dist/index.dev.js +0 -312
  152. package/ui/server.js +0 -194
  153. package/ui/www/css/app.css +0 -1
  154. package/ui/www/css/app.css.map +0 -1
  155. package/ui/www/fonts/ZMPIcons-Regular.eot +0 -0
  156. package/ui/www/fonts/ZMPIcons-Regular.ttf +0 -0
  157. package/ui/www/fonts/ZMPIcons-Regular.woff +0 -0
  158. package/ui/www/fonts/ZMPIcons-Regular.woff2 +0 -0
  159. package/ui/www/images/logo.png +0 -0
  160. package/ui/www/index.html +0 -1
  161. package/ui/www/js/app.js +0 -3
  162. package/ui/www/js/app.js.LICENSE.txt +0 -20
  163. package/ui/www/js/app.js.map +0 -1
  164. package/ui/www/static/icons/apple-touch-icon.png +0 -0
  165. package/ui/www/static/icons/favicon.png +0 -0
  166. 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 _0x584257=_0x55e6;function _0x214f(){const _0x303ce7=['Error\x20creating\x20required\x20folders\x20structure','text','Generating\x20app-config.json','\x0a\x20\x20-\x20📖\x20Visit\x20documentation\x20at\x20','README.md','3846kjtmtv','../utils/fs-extra','content','(Please\x20wait,\x20it\x20can\x20take\x20a\x20while)','./utils/generate-package-json','icon','name','description','Creating\x20project\x20files','27rLtxxO','2480srQCDL','406200otkAAn','zmpConfig','all','\x0a\x20\x20-\x20📖\x20Check\x20','success','copyFileAsync','exit','\x20💪\x0a\x0a','statusStart','\x20--save-dev','gray','52323RfCmLC','Executing\x20NPM\x20Scripts','map','stderr','cwd','Error\x20installing\x20NPM\x20Dependencies','620144GJIbTf','package.json','filename','./templates/copy-assets','Done!','./templates/create-folders','exports','Error\x20executing\x20NPM\x20Scripts','info','\x0a\x20\x20','\x20&&\x20npm\x20install\x20','path','\x22\x20-\x20','join','from','bold','./utils/generate-readme','error','devDependencies','Error\x20creating\x20project\x20files','Next\x20steps:','Creating\x20required\x20folders\x20structure','../utils/log','Error\x20installing\x20NPM\x20Dev\x20Dependencies','\x20--save','cd\x20','.gitignore','newProject','\x20Run\x20\x22npm\x20run\x20','writeFileSync','chalk','2399792zHAYCO','postInstall','Installing\x20NPM\x20Dependencies','dependencies','replace','stringify','promise','398876ipdyZg','../config','statusError','https://mini.zalo.me/','28ZCIJrK','statusDone','2886224LsPIPL','npm\x20install\x20','1rUTjdH'];_0x214f=function(){return _0x303ce7;};return _0x214f();}function _0x55e6(_0x4cfce8,_0x4318e7){const _0x214fca=_0x214f();return _0x55e6=function(_0x55e6be,_0x2843f6){_0x55e6be=_0x55e6be-0x1ac;let _0x1f3029=_0x214fca[_0x55e6be];return _0x1f3029;},_0x55e6(_0x4cfce8,_0x4318e7);}(function(_0x40bd7b,_0x35ef7d){const _0x475875=_0x55e6,_0x27b464=_0x40bd7b();while(!![]){try{const _0x3d6d87=-parseInt(_0x475875(0x1eb))/0x1*(parseInt(_0x475875(0x1e3))/0x2)+parseInt(_0x475875(0x1b7))/0x3*(parseInt(_0x475875(0x1e7))/0x4)+-parseInt(_0x475875(0x1fb))/0x5*(-parseInt(_0x475875(0x1f1))/0x6)+parseInt(_0x475875(0x1bd))/0x7+-parseInt(_0x475875(0x1dc))/0x8+parseInt(_0x475875(0x1fa))/0x9*(-parseInt(_0x475875(0x1ac))/0xa)+parseInt(_0x475875(0x1e9))/0xb;if(_0x3d6d87===_0x35ef7d)break;else _0x27b464['push'](_0x27b464['shift']());}catch(_0x19455f){_0x27b464['push'](_0x27b464['shift']());}}}(_0x214f,0x296ff));const e=require('exec-sh'),t=require(_0x584257(0x1c8)),r=require(_0x584257(0x1db)),n=require('log-symbols'),s=require(_0x584257(0x1f2)),i=require(_0x584257(0x1f5)),a=require('./utils/generate-npm-scripts'),o=require('./utils/generate-app-config'),c=require(_0x584257(0x1c2)),l=require(_0x584257(0x1c0)),u=require(_0x584257(0x1cd)),p=require('./utils/generate-gitignore'),g=require(_0x584257(0x1d3)),d=require(_0x584257(0x1e4)),m=r[_0x584257(0x1b6)](_0x584257(0x1f4));module[_0x584257(0x1c3)]=async(_0x241a96={},_0x4ebdba,{exitOnError:_0x4f98b4=!0x0,iconFile:_0x2a5392=null}={})=>{const _0x25e889=_0x584257;let _0x406162=_0x241a96[_0x25e889(0x1bb)]||process['cwd'](),_0x1f695b=_0x406162===process['cwd']();function _0x4fb5aa(_0x3719ec){const _0x24786d=_0x25e889;g[_0x24786d(0x1ce)](_0x3719ec[_0x24786d(0x1ba)]||_0x3719ec),_0x4f98b4&&process[_0x24786d(0x1b2)](0x1);}_0x4ebdba||(_0x4ebdba={'statusStart'(){},'statusDone'(){},'statusError'(){},'text'(){},'error'(){}}),_0x4ebdba[_0x25e889(0x1b4)](_0x25e889(0x1ee));let _0x3ccb3a=o(_0x241a96);if(s[_0x25e889(0x1da)](t[_0x25e889(0x1ca)](_0x406162,d['filename']['appConfig']),_0x3ccb3a[_0x25e889(0x1f3)]),_0x4ebdba[_0x25e889(0x1e8)](_0x25e889(0x1ee)),!_0x241a96[_0x25e889(0x1d8)]){let _0x18059a=a(['r'])[_0x25e889(0x1b9)](_0x184b61=>_0x184b61[_0x25e889(0x1f6)]+_0x25e889(0x1d9)+_0x184b61[_0x25e889(0x1f7)]+_0x25e889(0x1c9)+_0x184b61[_0x25e889(0x1f8)]);_0x4ebdba['text'](_0x18059a[_0x25e889(0x1ca)]('\x0a')),process[_0x25e889(0x1b2)](0x0);}_0x4ebdba[_0x25e889(0x1b4)]('Generating\x20package.json');let _0x34005d=i(_0x241a96);s[_0x25e889(0x1da)](t[_0x25e889(0x1ca)](_0x406162,_0x25e889(0x1be)),_0x34005d[_0x25e889(0x1f3)]),s[_0x25e889(0x1da)](t[_0x25e889(0x1ca)](_0x406162,d[_0x25e889(0x1bf)][_0x25e889(0x1ad)]),JSON[_0x25e889(0x1e1)](_0x241a96,'',0x2)),_0x4ebdba[_0x25e889(0x1e8)]('Generating\x20package.json'),_0x4ebdba[_0x25e889(0x1b4)]('Creating\x20required\x20folders\x20structure');try{c(_0x241a96);}catch(_0x33c18d){_0x4ebdba[_0x25e889(0x1e5)](_0x25e889(0x1ec)),_0x4fb5aa(_0x33c18d);}_0x4ebdba[_0x25e889(0x1e8)](_0x25e889(0x1d2)),_0x4ebdba[_0x25e889(0x1b4)]('Installing\x20NPM\x20Dependencies\x20'+m);try{_0x1f695b?await e[_0x25e889(0x1e2)](_0x25e889(0x1ea)+_0x34005d[_0x25e889(0x1df)][_0x25e889(0x1ca)]('\x20')+_0x25e889(0x1d5),!0x0):await e[_0x25e889(0x1e2)]('cd\x20'+_0x406162[_0x25e889(0x1e0)](/ /g,'\x5c\x20')+'\x20&&\x20npm\x20install\x20'+_0x34005d[_0x25e889(0x1df)][_0x25e889(0x1ca)]('\x20')+'\x20--save',!0x0);}catch(_0x39c8e2){_0x4ebdba[_0x25e889(0x1e5)](_0x25e889(0x1bc)),_0x4fb5aa(_0x39c8e2);return;}_0x4ebdba[_0x25e889(0x1e8)](_0x25e889(0x1de)),_0x4ebdba[_0x25e889(0x1b4)]('Installing\x20NPM\x20Dev\x20Dependencies\x20'+m);try{_0x1f695b?await e[_0x25e889(0x1e2)](_0x25e889(0x1ea)+_0x34005d[_0x25e889(0x1cf)][_0x25e889(0x1ca)]('\x20')+'\x20--save-dev',!0x0):await e[_0x25e889(0x1e2)](_0x25e889(0x1d6)+_0x406162[_0x25e889(0x1e0)](/ /g,'\x5c\x20')+_0x25e889(0x1c7)+_0x34005d[_0x25e889(0x1cf)][_0x25e889(0x1ca)]('\x20')+_0x25e889(0x1b5),!0x0);}catch(_0x5aa072){_0x4ebdba[_0x25e889(0x1e5)](_0x25e889(0x1d4)),_0x4fb5aa(_0x5aa072);return;}if(_0x4ebdba['statusDone']('Installing\x20NPM\x20Dev\x20Dependencies'),_0x34005d['postInstall']&&_0x34005d[_0x25e889(0x1dd)]['length']){_0x4ebdba['statusStart'](_0x25e889(0x1b8));try{_0x1f695b?await e[_0x25e889(0x1e2)]('npm\x20run\x20postinstall',!0x0):await e[_0x25e889(0x1e2)](_0x25e889(0x1d6)+_0x406162[_0x25e889(0x1e0)](/ /g,'\x5c\x20')+'\x20&&\x20npm\x20run\x20postinstall',!0x0);}catch(_0x5d30e3){_0x4ebdba[_0x25e889(0x1e5)](_0x25e889(0x1c4)),_0x4fb5aa(_0x5d30e3);return;}_0x4ebdba[_0x25e889(0x1e8)](_0x25e889(0x1b8));}_0x4ebdba[_0x25e889(0x1b4)]('Creating\x20project\x20files');let _0x24a7ea=l(_0x241a96,_0x2a5392);try{await Promise[_0x25e889(0x1ae)](_0x24a7ea[_0x25e889(0x1b9)](_0x258225=>_0x258225[_0x25e889(0x1cb)]?s[_0x25e889(0x1b1)](_0x258225[_0x25e889(0x1cb)],_0x258225['to']):_0x258225[_0x25e889(0x1f3)]?s['writeFileAsync'](_0x258225['to'],_0x258225[_0x25e889(0x1f3)]):Promise['resolve']()));}catch(_0x4ef002){_0x4ebdba[_0x25e889(0x1e5)]('Error\x20creating\x20project\x20files'),_0x4fb5aa(_0x4ef002);return;}let _0x924b9f=u(_0x241a96);try{s[_0x25e889(0x1da)](t[_0x25e889(0x1ca)](_0x406162,_0x25e889(0x1f0)),_0x924b9f);}catch(_0x35b32d){_0x4ebdba['statusError'](_0x25e889(0x1d0)),_0x4fb5aa(_0x35b32d);return;}let _0xfc2955=p(_0x241a96);try{s[_0x25e889(0x1da)](t[_0x25e889(0x1ca)](_0x406162,_0x25e889(0x1d7)),_0xfc2955);}catch(_0x44a533){_0x4ebdba[_0x25e889(0x1e5)](_0x25e889(0x1d0)),_0x4fb5aa(_0x44a533);return;}_0x4ebdba[_0x25e889(0x1e8)](_0x25e889(0x1f9));let _0x3d70c6=a(['s','r'])[_0x25e889(0x1b9)](_0x48cc5a=>'-\x20'+_0x48cc5a[_0x25e889(0x1f6)]+'\x20Run\x20\x22npm\x20run\x20'+_0x48cc5a[_0x25e889(0x1f7)]+'\x22\x20-\x20'+_0x48cc5a[_0x25e889(0x1f8)]),_0x139175='\x0a'+r[_0x25e889(0x1cc)](n[_0x25e889(0x1b0)])+'\x20'+r[_0x25e889(0x1cc)](_0x25e889(0x1c1))+_0x25e889(0x1b3)+r[_0x25e889(0x1cc)](n[_0x25e889(0x1c5)])+'\x20'+r[_0x25e889(0x1cc)](_0x25e889(0x1d1))+_0x25e889(0x1c6)+_0x3d70c6['join'](_0x25e889(0x1c6))+_0x25e889(0x1ef)+r[_0x25e889(0x1cc)](_0x25e889(0x1e6))+_0x25e889(0x1af)+r['bold']('README.md')+'\x20in\x20project\x20root\x20folder\x20with\x20further\x20instructions\x0a\x20\x20\x20\x20';_0x4ebdba[_0x25e889(0x1ed)](_0x139175);};
@@ -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};