zmp-cli 3.15.6 → 3.15.8

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 (225) hide show
  1. package/README.md +37 -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/utils/generate-app-config.js +1 -34
  6. package/create/utils/generate-npm-scripts.js +1 -26
  7. package/create/utils/get-options.js +1 -204
  8. package/create/utils/npm-scripts.js +1 -62
  9. package/deploy/index.js +1 -149
  10. package/deploy/utils/get-options.js +1 -69
  11. package/deploy/utils/request-upload.js +1 -34
  12. package/deploy/utils/upload-app.js +1 -82
  13. package/index.js +1 -319
  14. package/login/index.js +1 -169
  15. package/login/utils/get-options.js +1 -58
  16. package/login/utils/zalo-login.js +1 -32
  17. package/migrate/icons/update-icon-v3.js +1 -19
  18. package/migrate/index.js +1 -60
  19. package/migrate/utils/get-options.js +1 -46
  20. package/migrate/utils/migrate-react.js +1 -33
  21. package/package.json +13 -40
  22. package/start/frame/index.html +264 -254
  23. package/start/index.js +1 -382
  24. package/sync/index-to-app-config.js +1 -146
  25. package/sync/index.js +1 -55
  26. package/utils/axios.js +1 -15
  27. package/utils/check-update.js +1 -53
  28. package/utils/constants.js +1 -20
  29. package/utils/env.js +1 -39
  30. package/utils/error.js +1 -16
  31. package/utils/find-files-by-ext.js +1 -27
  32. package/utils/find-free-port.js +1 -11
  33. package/utils/fs-extra.js +1 -90
  34. package/utils/generate-pages-map.js +1 -17
  35. package/utils/get-app-info.js +1 -22
  36. package/utils/get-current-project.js +1 -25
  37. package/utils/get-ip.js +1 -19
  38. package/utils/log.js +1 -19
  39. package/utils/node-blob.js +1 -106
  40. package/utils/resumable.d.js +1 -0
  41. package/utils/resumable.js +1 -1204
  42. package/utils/spinner.js +1 -25
  43. package/utils/tunnel.js +1 -36
  44. package/.editorconfig +0 -15
  45. package/.eslintignore +0 -8
  46. package/.eslintrc.js +0 -10
  47. package/.vscode/launch.json +0 -23
  48. package/LICENSE +0 -21
  49. package/README.git.md +0 -37
  50. package/assets/index.js +0 -147
  51. package/build/dist/index.dev.js +0 -217
  52. package/config/dist/index.dev.js +0 -48
  53. package/create/init-zmp-ui.js +0 -216
  54. package/create/templates/app-parameters.js +0 -33
  55. package/create/templates/common/css/icons.css +0 -60
  56. package/create/templates/common/icons/512x512.png +0 -0
  57. package/create/templates/common/icons/apple-touch-icon.png +0 -0
  58. package/create/templates/common/icons/favicon.png +0 -0
  59. package/create/templates/common/postcss.config.js +0 -5
  60. package/create/templates/common/splash-2732x2732.png +0 -0
  61. package/create/templates/common/tailwind/postcss.config.js +0 -5
  62. package/create/templates/common/tailwind/tailwind.config.js +0 -9
  63. package/create/templates/common/tailwind/tailwind.css +0 -3
  64. package/create/templates/common/webpack/build.js +0 -41
  65. package/create/templates/copy-assets.js +0 -158
  66. package/create/templates/core/babel.config.js +0 -11
  67. package/create/templates/core/copy-assets.js +0 -83
  68. package/create/templates/core/generate-home-page.js +0 -143
  69. package/create/templates/core/generate-root.js +0 -283
  70. package/create/templates/core/generate-routes.js +0 -155
  71. package/create/templates/core/generate-scripts.js +0 -94
  72. package/create/templates/core/pages/404.html +0 -20
  73. package/create/templates/core/pages/about.html +0 -26
  74. package/create/templates/core/pages/catalog.html +0 -40
  75. package/create/templates/core/pages/dynamic-route.html +0 -115
  76. package/create/templates/core/pages/form.html +0 -258
  77. package/create/templates/core/pages/left-page-1.html +0 -24
  78. package/create/templates/core/pages/left-page-2.html +0 -23
  79. package/create/templates/core/pages/product.html +0 -36
  80. package/create/templates/core/pages/request-and-load.html +0 -35
  81. package/create/templates/core/pages/settings.html +0 -252
  82. package/create/templates/create-folders.js +0 -30
  83. package/create/templates/dist/generate-styles.dev.js +0 -46
  84. package/create/templates/generate-config-xml.js +0 -18
  85. package/create/templates/generate-index.js +0 -49
  86. package/create/templates/generate-manifest.js +0 -49
  87. package/create/templates/generate-recoil.js +0 -56
  88. package/create/templates/generate-routes.js +0 -16
  89. package/create/templates/generate-scripts.js +0 -16
  90. package/create/templates/generate-service-worker.js +0 -126
  91. package/create/templates/generate-store.js +0 -88
  92. package/create/templates/generate-styles.js +0 -110
  93. package/create/templates/generate-webpack-config.js +0 -335
  94. package/create/templates/generate-zmp-custom.js +0 -81
  95. package/create/templates/react/babel.config.js +0 -12
  96. package/create/templates/react/components/app-items.jsx +0 -44
  97. package/create/templates/react/components/navbar-back.jsx +0 -25
  98. package/create/templates/react/components/user-card.jsx +0 -18
  99. package/create/templates/react/copy-assets.js +0 -85
  100. package/create/templates/react/dist/generate-scripts.dev.js +0 -23
  101. package/create/templates/react/generate-home-page.js +0 -111
  102. package/create/templates/react/generate-root.js +0 -84
  103. package/create/templates/react/generate-routes.js +0 -16
  104. package/create/templates/react/generate-scripts.js +0 -68
  105. package/create/templates/react/pages/404.js +0 -27
  106. package/create/templates/react/pages/about.js +0 -52
  107. package/create/templates/react/pages/catalog.js +0 -112
  108. package/create/templates/react/pages/dynamic-route.js +0 -80
  109. package/create/templates/react/pages/form.js +0 -152
  110. package/create/templates/react/pages/index copy.js +0 -17
  111. package/create/templates/react/pages/index.js +0 -17
  112. package/create/templates/react/pages/settings.js +0 -76
  113. package/create/templates/react/pages/user.js +0 -56
  114. package/create/templates/react/vite.config.js +0 -11
  115. package/create/templates/react-typescript/_tsconfig.json +0 -33
  116. package/create/templates/react-typescript/components/app-items.js +0 -53
  117. package/create/templates/react-typescript/components/index.js +0 -9
  118. package/create/templates/react-typescript/components/navbar-back.js +0 -40
  119. package/create/templates/react-typescript/components/user-card.js +0 -32
  120. package/create/templates/react-typescript/copy-assets.js +0 -94
  121. package/create/templates/react-typescript/dist/generate-scripts.dev.js +0 -23
  122. package/create/templates/react-typescript/generate-home-page.js +0 -113
  123. package/create/templates/react-typescript/generate-root.js +0 -81
  124. package/create/templates/react-typescript/generate-routes.js +0 -12
  125. package/create/templates/react-typescript/generate-scripts.js +0 -67
  126. package/create/templates/react-typescript/pages/404.js +0 -27
  127. package/create/templates/react-typescript/pages/about.js +0 -52
  128. package/create/templates/react-typescript/pages/catalog.js +0 -112
  129. package/create/templates/react-typescript/pages/dynamic-route.js +0 -80
  130. package/create/templates/react-typescript/pages/form.js +0 -152
  131. package/create/templates/react-typescript/pages/index.js +0 -17
  132. package/create/templates/react-typescript/pages/settings.js +0 -76
  133. package/create/templates/react-typescript/pages/user.js +0 -56
  134. package/create/templates/react-typescript/vite.config.js +0 -21
  135. package/create/templates/svelte/babel.config.js +0 -10
  136. package/create/templates/svelte/copy-assets.js +0 -47
  137. package/create/templates/svelte/generate-home-page.js +0 -158
  138. package/create/templates/svelte/generate-root.js +0 -235
  139. package/create/templates/svelte/generate-routes.js +0 -91
  140. package/create/templates/svelte/generate-scripts.js +0 -47
  141. package/create/templates/svelte/pages/404.svelte +0 -10
  142. package/create/templates/svelte/pages/about.svelte +0 -16
  143. package/create/templates/svelte/pages/catalog.svelte +0 -31
  144. package/create/templates/svelte/pages/dynamic-route.svelte +0 -34
  145. package/create/templates/svelte/pages/form.svelte +0 -175
  146. package/create/templates/svelte/pages/left-page-1.svelte +0 -13
  147. package/create/templates/svelte/pages/left-page-2.svelte +0 -12
  148. package/create/templates/svelte/pages/product.svelte +0 -21
  149. package/create/templates/svelte/pages/request-and-load.svelte +0 -21
  150. package/create/templates/svelte/pages/settings.svelte +0 -175
  151. package/create/templates/vue/babel.config.js +0 -10
  152. package/create/templates/vue/components/header.vue +0 -28
  153. package/create/templates/vue/components/sun-and-moon.vue +0 -34
  154. package/create/templates/vue/copy-assets.js +0 -67
  155. package/create/templates/vue/generate-home-page.js +0 -56
  156. package/create/templates/vue/generate-root.js +0 -50
  157. package/create/templates/vue/generate-routes.js +0 -7
  158. package/create/templates/vue/generate-scripts.js +0 -63
  159. package/create/templates/vue/global-components.d.ts +0 -121
  160. package/create/templates/vue/icons/moon.svg +0 -3
  161. package/create/templates/vue/icons/sun.svg +0 -3
  162. package/create/templates/vue/pages/404.vue +0 -12
  163. package/create/templates/vue/pages/about.vue +0 -15
  164. package/create/templates/vue/pages/catalog.vue +0 -39
  165. package/create/templates/vue/pages/dynamic-route.vue +0 -34
  166. package/create/templates/vue/pages/form.vue +0 -162
  167. package/create/templates/vue/pages/left-page-1.vue +0 -14
  168. package/create/templates/vue/pages/left-page-2.vue +0 -11
  169. package/create/templates/vue/pages/product.vue +0 -31
  170. package/create/templates/vue/pages/request-and-load.vue +0 -25
  171. package/create/templates/vue/pages/settings.vue +0 -18
  172. package/create/templates/vue/vite.config.js +0 -11
  173. package/create/templates/zaui/_tsconfig.json +0 -33
  174. package/create/templates/zaui/babel.config.js +0 -12
  175. package/create/templates/zaui/components/user-card.jsx +0 -16
  176. package/create/templates/zaui/copy-assets.js +0 -90
  177. package/create/templates/zaui/generate-home-page.js +0 -117
  178. package/create/templates/zaui/generate-root.js +0 -53
  179. package/create/templates/zaui/generate-routes.js +0 -10
  180. package/create/templates/zaui/generate-scripts.js +0 -39
  181. package/create/templates/zaui/generate-user-card.js +0 -55
  182. package/create/templates/zaui/pages/about.js +0 -129
  183. package/create/templates/zaui/pages/form.js +0 -123
  184. package/create/templates/zaui/pages/index.js +0 -9
  185. package/create/templates/zaui/pages/user.js +0 -109
  186. package/create/templates/zaui/vite.config.js +0 -11
  187. package/create/utils/colors.js +0 -94
  188. package/create/utils/dist/get-options.dev.js +0 -277
  189. package/create/utils/generate-gitignore.js +0 -43
  190. package/create/utils/generate-package-json.js +0 -132
  191. package/create/utils/generate-readme.js +0 -28
  192. package/create/utils/indent.js +0 -31
  193. package/create/utils/string.js +0 -13
  194. package/create/utils/styles-extension.js +0 -9
  195. package/create/utils/template-if.js +0 -9
  196. package/deploy/dist/index.dev.js +0 -227
  197. package/deploy/utils/dist/request-upload.dev.js +0 -62
  198. package/deploy/utils/dist/upload-app.dev.js +0 -113
  199. package/dist/bundle.js +0 -1
  200. package/dist/index.dev.js +0 -352
  201. package/jsconfig.json +0 -8
  202. package/login/dist/index.dev.js +0 -223
  203. package/login/utils/dist/zalo-login.dev.js +0 -41
  204. package/screenshots/wellcome.jpg +0 -0
  205. package/show-qr-app/assets/css/style.css +0 -87
  206. package/show-qr-app/assets/js/qrcode.min.js +0 -1
  207. package/show-qr-app/index.html +0 -57
  208. package/show-qr-app/package.json +0 -14
  209. package/start/dist/index.dev.js +0 -312
  210. package/start/generate-hr-config.js +0 -59
  211. package/ui/server.js +0 -194
  212. package/ui/www/css/app.css +0 -1
  213. package/ui/www/css/app.css.map +0 -1
  214. package/ui/www/fonts/ZMPIcons-Regular.eot +0 -0
  215. package/ui/www/fonts/ZMPIcons-Regular.ttf +0 -0
  216. package/ui/www/fonts/ZMPIcons-Regular.woff +0 -0
  217. package/ui/www/fonts/ZMPIcons-Regular.woff2 +0 -0
  218. package/ui/www/images/logo.png +0 -0
  219. package/ui/www/index.html +0 -1
  220. package/ui/www/js/app.js +0 -3
  221. package/ui/www/js/app.js.LICENSE.txt +0 -20
  222. package/ui/www/js/app.js.map +0 -1
  223. package/ui/www/static/icons/apple-touch-icon.png +0 -0
  224. package/ui/www/static/icons/favicon.png +0 -0
  225. package/utils/dist/get-app-info.dev.js +0 -54
package/README.md CHANGED
@@ -0,0 +1,37 @@
1
+ # ZMP-CLI
2
+ CLI dùng để start, build, deploy Zalo Mini App
3
+
4
+ ## Contribute
5
+ Project bao gồm các nhánh:
6
+ - master: nhánh chính tương ứng với version đang release
7
+ - develop: nhánh chính, source code mới nhất bao gồm các tính năng chuẩn bị cho lần release tiếp theo
8
+ - feature/*: nhánh tương ứng với chức năng đang phát triển (xoá sau khi hoàn thành)
9
+ - release/*-rc: nhánh tương ứng với các release candidate (xoá sau khi hoàn thành)
10
+ - hotfix/*: nhánh tương ứng với bug cần fix cho version đang release (xoá sau khi hoàn thành)
11
+
12
+ Suggest sử dụng git flow để quản lí các nhánh:
13
+ 1. Cài đặt và tìm hiểu git flow theo [hướng dẫn](https://danielkummer.github.io/git-flow-cheatsheet/index.vi_VN.html)
14
+ 2. Init git flow tương ứng với các branch trên: ```git flow init```
15
+
16
+ Phát triển một tính năng mới:
17
+ 1. Để bắt đầu code tính năng mới: ```git flow feature start feature_1```
18
+ 2. Sau khi code và test xong: ```git flow feature finish feature_1```, tính năng sẽ được merge vào nhánh develop
19
+
20
+ Tạo một release candidate (suffix "-rc"):
21
+ 1. ```git flow release start <major>.<minor>.<patch>-rc```
22
+ 2. Sau khi test xong: ```git flow release finish <major>.<minor>.<patch>-rc```, tính năng sẽ được merge vào nhánh master để chờ release và nhánh develop
23
+
24
+ Để fix bug trên bản release:
25
+ 1. ```git flow hotfix start bug-a```
26
+ 2. Sau khi fix xong: ```git flow hotfix finish bug-a```, tính năng sẽ được merge vào nhánh master để chờ release và nhánh develop
27
+
28
+ Để fix bug trên bản release-candidate:
29
+ 1. Tạo nhánh mới từ nhánh rc muốn fix với refix: ```git branch ```
30
+ 2. Sau khi fix xong: ```git flow hotfix finish bug-a```, tính năng sẽ được merge vào nhánh master để chờ release và nhánh develop
31
+
32
+ Để release nhánh master:
33
+ 1. ```npm run release```
34
+ 2. Nhập version:
35
+ - patch: fix bug
36
+ - minor: thêm tính năng
37
+ - major: thay đổi lớn có ảnh hưởng tới version cũ
package/build/index.js CHANGED
@@ -1,184 +1 @@
1
- #!/usr/bin/env node
2
- /* eslint no-console: off */
3
- const chalk = require('chalk');
4
- const ora = require('ora');
5
- const path = require('path');
6
- const { build } = require('vite');
7
- const dynamicImportVars = require('@rollup/plugin-dynamic-import-vars').default;
8
- const _ = require('lodash');
9
- const replace = require('@rollup/plugin-replace');
10
- const log = require('../utils/log');
11
- const fse = require('../utils/fs-extra');
12
- const getAppInfo = require('../utils/get-app-info');
13
- const envUtils = require('../utils/env');
14
- const config = require('../config');
15
- const generatePagesMap = require('../utils/generate-pages-map');
16
-
17
- const env = envUtils.getEnv('NODE_ENV') || 'production';
18
-
19
- const waitText = chalk.gray('Building... (Please wait, it can take a while)');
20
- const frameworkWarning = chalk.yellow(
21
- 'Warning: This CLI version will work better with zmp-framework version 1.5.0 or higher'
22
- );
23
- const spinner = ora(
24
- env === 'production'
25
- ? 'Building for production...'
26
- : 'Building development version...'
27
- );
28
-
29
- module.exports = async (options = {}, logger, { exitOnError = true } = {}) => {
30
- const cwd = options.cwd || process.cwd();
31
- const resolvePath = (dir) => {
32
- return path.join(cwd, dir);
33
- };
34
- const appConfig =
35
- options.appConfigJson || require(resolvePath(config.filename.appConfig));
36
- function errorExit(err) {
37
- log.error(err.stderr || err);
38
- if (exitOnError) process.exit(1);
39
- }
40
- if (!logger) {
41
- // eslint-disable-next-line
42
- logger = {
43
- statusStart() {},
44
- statusDone() {},
45
- statusError() {},
46
- text() {},
47
- error() {},
48
- };
49
- }
50
- logger.text(frameworkWarning);
51
- spinner.start();
52
- logger.statusStart(waitText);
53
- try {
54
- const appId = envUtils.getEnv(config.env.appId);
55
- let nextVersion = options.nextVersion;
56
- if (!nextVersion) {
57
- const appInfo = await getAppInfo(appId, options);
58
- let currentVersion =
59
- appInfo && appInfo.latestVersion && Number(appInfo.latestVersion);
60
- if (currentVersion === undefined || currentVersion === null) {
61
- currentVersion = 0;
62
- }
63
- nextVersion = currentVersion + 1;
64
- }
65
-
66
- let viteConfig = 'vite.config.js';
67
- const isTypeScriptProject = fse.existsSync(
68
- path.join(cwd, 'vite.config.ts')
69
- );
70
- if (isTypeScriptProject) {
71
- viteConfig = 'vite.config.ts';
72
- }
73
- // eslint-disable-next-line
74
- const res = await build({
75
- configFile: path.join(cwd, viteConfig),
76
- root: cwd,
77
- base: `${config.zdn_url}${appId}/${nextVersion}/`,
78
- css: {
79
- modules: {
80
- scopeBehaviour: 'local',
81
- },
82
- },
83
- mode: options.mode,
84
- build: {
85
- target: 'es2015',
86
- outDir: path.join(cwd, 'www'),
87
- assetsInlineLimit: 0,
88
- cssCodeSplit: false,
89
- cssTarget: ['es2015', 'safari13.1'],
90
- rollupOptions: {
91
- plugins: [
92
- replace({
93
- values: {
94
- ZMP_IMPORT_PAGES: () => generatePagesMap(cwd),
95
- },
96
- }),
97
- dynamicImportVars({
98
- warnOnError: true,
99
- }),
100
- ],
101
- output: {
102
- entryFileNames: 'assets/[name].[hash].module.js',
103
- chunkFileNames: 'assets/[name].[hash].module.js',
104
- },
105
- },
106
- },
107
- logLevel: 'error',
108
- });
109
-
110
- const output = res.output.map((obj) =>
111
- _.pick(obj, [
112
- 'fileName',
113
- 'type',
114
- 'imports',
115
- 'isEntry',
116
- 'isImplicitEntry',
117
- 'isDynamicEntry',
118
- ])
119
- );
120
-
121
- const outputMap = new Map();
122
- output.forEach((obj) => {
123
- outputMap.set(obj.fileName, obj);
124
- });
125
-
126
- // Entry files, cần đc load sync bằng thẻ script
127
- const jsFiles = output.filter((file) => {
128
- return file.type === 'chunk' && file.isEntry;
129
- });
130
-
131
- // Các file cần preload
132
- const modulePreloadFiles = [];
133
- const getImportedChunks = (chunk, seen = new Set()) => {
134
- const chunks = [];
135
- chunk.imports.forEach((file) => {
136
- const importee = outputMap.get(file);
137
- if (importee?.type === 'chunk' && !seen.has(file)) {
138
- seen.add(file);
139
- chunks.push(...getImportedChunks(importee, seen));
140
- chunks.push(importee);
141
- }
142
- });
143
- return chunks;
144
- };
145
- jsFiles.forEach((file) => {
146
- const chunks = getImportedChunks(file);
147
- modulePreloadFiles.push(...chunks);
148
- });
149
-
150
- const cssFiles = output.filter((file) => {
151
- if (file.type !== 'asset' || !file.fileName.endsWith('.css'))
152
- return false;
153
- // const name = file.fileName.replace(/\.([a-z0-9]{8})\.css$/, '');
154
- // if (!jsFiles.find((js) => js.fileName.startsWith(name))) return false;
155
- return true;
156
- });
157
- const appConfigJson = {
158
- ...appConfig,
159
- listCSS: [
160
- ...(Array.isArray(appConfig.listCSS) ? appConfig.listCSS : []),
161
- ...cssFiles.map((f) => f.fileName),
162
- ],
163
- listSyncJS: [
164
- ...(Array.isArray(appConfig.listSyncJS) ? appConfig.listSyncJS : []),
165
- ...jsFiles.map((f) => f.fileName),
166
- ],
167
- listAsyncJS: [
168
- ...modulePreloadFiles.map((f) => f.fileName),
169
- ...(Array.isArray(appConfig.listAsyncJS) ? appConfig.listAsyncJS : []),
170
- ],
171
- };
172
- fse.writeFileSync(
173
- resolvePath(`www/${config.filename.appConfig}`),
174
- JSON.stringify(appConfigJson)
175
- );
176
- logger.statusDone(`${chalk.bold.green('Build Done!\n')}`);
177
- return appConfigJson;
178
- } catch (err) {
179
- logger.statusError('Error building project');
180
- // if (err) logger.error(err.stderr || err);
181
- errorExit(err);
182
- return;
183
- }
184
- };
1
+ 'use strict';const _0x309964=_0x1432;(function(_0x11c86c,_0x15d438){const _0x24b6f7=_0x1432,_0x5e6ba5=_0x11c86c();while(!![]){try{const _0x5e1f17=-parseInt(_0x24b6f7(0x205))/0x1+-parseInt(_0x24b6f7(0x208))/0x2*(parseInt(_0x24b6f7(0x1f3))/0x3)+parseInt(_0x24b6f7(0x211))/0x4+parseInt(_0x24b6f7(0x206))/0x5+-parseInt(_0x24b6f7(0x1fe))/0x6+-parseInt(_0x24b6f7(0x1fc))/0x7+parseInt(_0x24b6f7(0x1fa))/0x8;if(_0x5e1f17===_0x15d438)break;else _0x5e6ba5['push'](_0x5e6ba5['shift']());}catch(_0x237d14){_0x5e6ba5['push'](_0x5e6ba5['shift']());}}}(_0x4323,0x743ae));function _0x1432(_0x5a7de1,_0xfc557e){const _0x4323f0=_0x4323();return _0x1432=function(_0x143283,_0x494574){_0x143283=_0x143283-0x1e8;let _0x4ffc72=_0x4323f0[_0x143283];return _0x4ffc72;},_0x1432(_0x5a7de1,_0xfc557e);}const e=require('chalk'),r=require(_0x309964(0x20b)),t=require(_0x309964(0x20a)),i=require(_0x309964(0x1ff))['default'],o=require(_0x309964(0x1ee)),{buildApp:n}=require(_0x309964(0x214)),u=require(_0x309964(0x203)),a=require(_0x309964(0x1ea)),l=require(_0x309964(0x1eb)),{errorExit:s}=require('../utils/error'),p=require(_0x309964(0x1f5)),g=require(_0x309964(0x1f0)),{existsSync:c}=require('fs'),w=l[_0x309964(0x1fb)]('NODE_ENV')||_0x309964(0x215),d=e[_0x309964(0x200)](_0x309964(0x213)),f=e[_0x309964(0x207)]('Warning:\x20This\x20CLI\x20version\x20will\x20work\x20better\x20with\x20zmp-framework\x20version\x201.5.0\x20or\x20higher'),m=r('production'===w?_0x309964(0x1f6):_0x309964(0x202));function _0x4323(){const _0x4b28ce=['217976yNFMCS','Error\x20building\x20project','Building...\x20(Please\x20wait,\x20it\x20can\x20take\x20a\x20while)','zmp-cli-core','production','exports','nextVersion','../utils/get-app-info','../utils/env','statusError','bold','@rollup/plugin-replace','latestVersion','../utils/generate-pages-map','statusDone','join','80643ulOfrT','text','../config','Building\x20for\x20production...','start','green','writeFileSync','17862824flUkVf','getEnv','757960hlYrlv','node_modules','5045952vWgBuv','@rollup/plugin-dynamic-import-vars','gray','Build\x20Done!\x0a','Building\x20development\x20version...','../utils/fs-extra','www/','800165RzEXuv','2110130ICRyiQ','yellow','36fLVumk','filename','path','ora','cwd','statusStart','appConfig','zmp-framework','www'];_0x4323=function(){return _0x4b28ce;};return _0x4323();}module[_0x309964(0x1e8)]=async(_0x3766c4={},_0x4e3c21)=>{const _0x9f488e=_0x309964;let _0x14310d=_0x3766c4[_0x9f488e(0x20c)]||process['cwd'](),_0x1a6837=_0xd09c84=>t[_0x9f488e(0x1f2)](_0x14310d,_0xd09c84),_0x5cf312=_0x3766c4['appConfigJson']||require(_0x1a6837(p[_0x9f488e(0x209)][_0x9f488e(0x20e)]));_0x4e3c21||(_0x4e3c21={'statusStart'(){},'statusDone'(){},'statusError'(){},'text'(){},'error'(){}}),c(t[_0x9f488e(0x1f2)](_0x14310d,_0x9f488e(0x1fd),_0x9f488e(0x20f)))&&_0x4e3c21[_0x9f488e(0x1f4)](f),m[_0x9f488e(0x1f7)](),_0x4e3c21[_0x9f488e(0x20d)](d);try{let _0x52b0ca=l[_0x9f488e(0x1fb)](p['env']['appId']),_0x3b9aca=_0x3766c4[_0x9f488e(0x1e9)];if(!_0x3b9aca){let _0x54592f=await a(_0x52b0ca,_0x3766c4),_0x3366dd=_0x54592f&&_0x54592f[_0x9f488e(0x1ef)]&&Number(_0x54592f[_0x9f488e(0x1ef)]);null==_0x3366dd&&(_0x3366dd=0x0),_0x3b9aca=_0x3366dd+0x1;}let {appConfigJson:_0x5e6a48}=await n({'cwd':_0x14310d,'mode':w,'appId':_0x52b0ca,'nextVersion':_0x3b9aca,'appConfig':_0x5cf312,'outDir':_0x9f488e(0x210),'vite2RollupPlugins':[o({'values':{'ZMP_IMPORT_PAGES':()=>g(_0x14310d)}}),i({'warnOnError':!0x0})],'customLogger':{'info':_0x4e3c21[_0x9f488e(0x1f4)],'warn':_0x4e3c21[_0x9f488e(0x1f4)],'warnOnce':_0x4e3c21['text'],'error':_0x4e3c21['error']}});return _0x5e6a48&&u[_0x9f488e(0x1f9)](_0x1a6837(_0x9f488e(0x204)+p[_0x9f488e(0x209)][_0x9f488e(0x20e)]),JSON['stringify'](_0x5e6a48)),_0x4e3c21[_0x9f488e(0x1f1)](''+e[_0x9f488e(0x1ed)][_0x9f488e(0x1f8)](_0x9f488e(0x201))),_0x5e6a48;}catch(_0x4fa4ac){_0x4e3c21[_0x9f488e(0x1ec)](_0x9f488e(0x212)),s(_0x4fa4ac);return;}};
package/config/index.js CHANGED
@@ -1,44 +1 @@
1
- module.exports = {
2
- filename: {
3
- appConfig: 'app-config.json',
4
- zmpConfig: 'zmp-cli.json',
5
- packageJson: 'package.json',
6
- },
7
- api_domain: 'https://zmp-api.developers.zalo.me/',
8
- zdn_url: '//h5.zdn.vn/zapps/',
9
- path: {
10
- login: 'admin/login',
11
- requestLogin: 'admin/request-login',
12
- checkLoginStatus: 'admin/get-login-status',
13
- // uploadApp: 'admin/upload-app',
14
- uploadAppByChunk: 'app/upload-chunk',
15
- requestUploadResumable: 'app/request-upload',
16
- getAppInfo: 'app/get-info',
17
- },
18
- dirname: __dirname,
19
- root_env: () => `${process.cwd()}/.env`,
20
- env: {
21
- appId: 'APP_ID',
22
- token: 'ZMP_TOKEN',
23
- },
24
- error_code: {
25
- app_config_not_found: -1400,
26
- permission_denied: -2001,
27
- request_timeout: -2003,
28
- },
29
- error_msg: {
30
- app_config_not_found:
31
- "App config not found. Please re-init project. (Tips: Run 'zmp init')",
32
- permission_denied:
33
- "Permission denied. Please login again. (Tips: Run 'zmp login')",
34
- request_timeout: 'Request Timeout',
35
- },
36
- resumable_option: {
37
- chunkSize: 512 * 1000, // bytes -> 512kb/chunk
38
- simultaneousUploads: 4,
39
- testChunks: true,
40
- throttleProgressCallbacks: 1,
41
- method: 'octet',
42
- forceChunkSize: false,
43
- },
44
- };
1
+ 'use strict';var _0x5a419c=_0x2ec7;(function(_0x50a01a,_0x4e2596){var _0x34c54a=_0x2ec7,_0x276bd6=_0x50a01a();while(!![]){try{var _0x21b374=parseInt(_0x34c54a(0x15e))/0x1+-parseInt(_0x34c54a(0x14a))/0x2*(parseInt(_0x34c54a(0x157))/0x3)+parseInt(_0x34c54a(0x148))/0x4*(parseInt(_0x34c54a(0x15a))/0x5)+parseInt(_0x34c54a(0x159))/0x6*(parseInt(_0x34c54a(0x151))/0x7)+-parseInt(_0x34c54a(0x14e))/0x8*(parseInt(_0x34c54a(0x15f))/0x9)+-parseInt(_0x34c54a(0x15d))/0xa*(-parseInt(_0x34c54a(0x14b))/0xb)+-parseInt(_0x34c54a(0x158))/0xc;if(_0x21b374===_0x4e2596)break;else _0x276bd6['push'](_0x276bd6['shift']());}catch(_0x4f0ec1){_0x276bd6['push'](_0x276bd6['shift']());}}}(_0x18e7,0x6d73b));function _0x2ec7(_0x93a5d6,_0x52e9e1){var _0x18e70f=_0x18e7();return _0x2ec7=function(_0x2ec7ae,_0x510523){_0x2ec7ae=_0x2ec7ae-0x147;var _0x97f336=_0x18e70f[_0x2ec7ae];return _0x97f336;},_0x2ec7(_0x93a5d6,_0x52e9e1);}function _0x18e7(){var _0x48aae0=['app-config.json','https://zmp-api.developers.zalo.me/','//h5.zdn.vn/zapps/','638967jHLJtE','8292300THGbmE','1584QeOtjl','3471345wyVAaC','admin/login','app/upload-chunk','2087570PPVAmC','32432MqZbPO','9EprKkN','octet','exports','ZMP_TOKEN','4MnHCtS','cwd','4PGwLEw','33ToOZAF','app/get-info','zmp-cli.json','1186224MbRYdK','Request\x20Timeout','APP_ID','9562wAkUtO','/.env','App\x20config\x20not\x20found.\x20Please\x20re-init\x20project.\x20(Tips:\x20Run\x20\x27zmp\x20init\x27)'];_0x18e7=function(){return _0x48aae0;};return _0x18e7();}module[_0x5a419c(0x161)]={'filename':{'appConfig':_0x5a419c(0x154),'zmpConfig':_0x5a419c(0x14d),'packageJson':'package.json'},'api_domain':_0x5a419c(0x155),'zdn_url':_0x5a419c(0x156),'path':{'login':_0x5a419c(0x15b),'requestLogin':'admin/request-login','checkLoginStatus':'admin/get-login-status','uploadAppByChunk':_0x5a419c(0x15c),'requestUploadResumable':'app/request-upload','getAppInfo':_0x5a419c(0x14c)},'dirname':__dirname,'root_env':()=>process[_0x5a419c(0x149)]()+_0x5a419c(0x152),'env':{'appId':_0x5a419c(0x150),'token':_0x5a419c(0x147)},'error_code':{'app_config_not_found':-0x578,'permission_denied':-0x7d1,'request_timeout':-0x7d3},'error_msg':{'app_config_not_found':_0x5a419c(0x153),'permission_denied':'Permission\x20denied.\x20Please\x20login\x20again.\x20(Tips:\x20Run\x20\x27zmp\x20login\x27)','request_timeout':_0x5a419c(0x14f)},'resumable_option':{'chunkSize':0x7d000,'simultaneousUploads':0x4,'testChunks':!0x0,'throttleProgressCallbacks':0x1,'method':_0x5a419c(0x160),'forceChunkSize':!0x1}};
package/create/index.js CHANGED
@@ -1,230 +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
- const { generateTailWindScripts } = require('./utils/generate-npm-scripts');
11
-
12
- const generateAppConfig = require('./utils/generate-app-config');
13
-
14
- const createFolders = require('./templates/create-folders');
15
- const copyAssets = require('./templates/copy-assets');
16
- const generateReadme = require('./utils/generate-readme');
17
- const generateGitignore = require('./utils/generate-gitignore');
18
- const log = require('../utils/log');
19
- const config = require('../config');
20
- const initZMPUI = require('./init-zmp-ui');
21
-
22
- const waitText = chalk.gray('(Please wait, it can take a while)');
23
-
24
- module.exports = async (
25
- options = {},
26
- logger,
27
- { exitOnError = true, iconFile = null } = {}
28
- ) => {
29
- if (options.newProject && options.package === 'zmp-ui') {
30
- await initZMPUI(options, logger);
31
- return;
32
- }
33
- const cwd = options.cwd || process.cwd();
34
- const isRunningInCwd = cwd === process.cwd();
35
- function errorExit(err) {
36
- log.error(err.stderr || err);
37
- if (exitOnError) process.exit(1);
38
- }
39
- if (!logger) {
40
- // eslint-disable-next-line
41
- logger = {
42
- statusStart() {},
43
- statusDone() {},
44
- statusError() {},
45
- text() {},
46
- error() {},
47
- };
48
- }
49
- // App config
50
- logger.statusStart('Generating app-config.json');
51
- const appConfig = generateAppConfig(options);
52
-
53
- fse.writeFileSync(
54
- path.join(cwd, config.filename.appConfig),
55
- appConfig.content
56
- );
57
- logger.statusDone('Generating app-config.json');
58
-
59
- if (!options.newProject) {
60
- const deployScripts = generateNpmScripts(['r']).map((s) => {
61
- return `${s.icon} Run "npm run ${s.name}" - ${s.description}`;
62
- });
63
- logger.text(deployScripts.join('\n'));
64
- process.exit(0);
65
- }
66
-
67
- // Package
68
- logger.statusStart('Generating package.json');
69
- const packageJson = generatePackageJson(options);
70
-
71
- fse.writeFileSync(path.join(cwd, 'package.json'), packageJson.content);
72
- fse.writeFileSync(
73
- path.join(cwd, config.filename.zmpConfig),
74
- JSON.stringify(options, '', 2)
75
- );
76
-
77
- logger.statusDone('Generating package.json');
78
-
79
- // Create Folders
80
- logger.statusStart('Creating required folders structure');
81
- try {
82
- createFolders(options);
83
- } catch (err) {
84
- logger.statusError('Error creating required folders structure');
85
- // if (err) logger.error(err.stderr);
86
- errorExit(err);
87
- }
88
- logger.statusDone('Creating required folders structure');
89
-
90
- // Install NPM depenencies
91
- logger.statusStart(`${'Installing NPM Dependencies'} ${waitText}`);
92
- try {
93
- if (!isRunningInCwd) {
94
- await exec.promise(
95
- `cd ${cwd.replace(
96
- / /g,
97
- '\\ '
98
- )} && npm install ${packageJson.dependencies.join(' ')} --save`,
99
- true
100
- );
101
- } else {
102
- await exec.promise(
103
- `npm install ${packageJson.dependencies.join(' ')} --save`,
104
- true
105
- );
106
- }
107
- } catch (err) {
108
- logger.statusError('Error installing NPM Dependencies');
109
- // if (err) logger.error(err.stderr);
110
- errorExit(err);
111
- return;
112
- }
113
- logger.statusDone('Installing NPM Dependencies');
114
- // Install NPM dev depenencies
115
- logger.statusStart(`${'Installing NPM Dev Dependencies'} ${waitText}`);
116
- try {
117
- if (!isRunningInCwd) {
118
- await exec.promise(
119
- `cd ${cwd.replace(
120
- / /g,
121
- '\\ '
122
- )} && npm install ${packageJson.devDependencies.join(' ')} --save-dev`,
123
- true
124
- );
125
- } else {
126
- await exec.promise(
127
- `npm install ${packageJson.devDependencies.join(' ')} --save-dev`,
128
- true
129
- );
130
- }
131
- } catch (err) {
132
- logger.statusError('Error installing NPM Dev Dependencies');
133
- // if (err) logger.error(err.stderr);
134
- errorExit(err);
135
- return;
136
- }
137
- logger.statusDone('Installing NPM Dev Dependencies');
138
-
139
- if (packageJson.postInstall && packageJson.postInstall.length) {
140
- logger.statusStart('Executing NPM Scripts');
141
- try {
142
- if (!isRunningInCwd) {
143
- await exec.promise(
144
- `cd ${cwd.replace(/ /g, '\\ ')} && npm run postinstall`,
145
- true
146
- );
147
- } else {
148
- await exec.promise('npm run postinstall', true);
149
- }
150
- } catch (err) {
151
- logger.statusError('Error executing NPM Scripts');
152
- // if (err) logger.error(err.stderr);
153
- errorExit(err);
154
- return;
155
- }
156
- logger.statusDone('Executing NPM Scripts');
157
- }
158
-
159
- // Create Project Files
160
- logger.statusStart('Creating project files');
161
- const filesToCopy = copyAssets(options, iconFile);
162
- try {
163
- // eslint-disable-next-line
164
- await Promise.all(
165
- filesToCopy.map((f) => {
166
- if (f.from) {
167
- return fse.copyFileAsync(f.from, f.to);
168
- }
169
- if (f.content) {
170
- return fse.writeFileAsync(f.to, f.content);
171
- }
172
- return Promise.resolve();
173
- })
174
- );
175
- } catch (err) {
176
- logger.statusError('Error creating project files');
177
- // if (err) logger.error(err.stderr || err);
178
- errorExit(err);
179
- return;
180
- }
181
-
182
- // Generate Readme
183
- const readMeContent = generateReadme(options);
184
- try {
185
- fse.writeFileSync(path.join(cwd, 'README.md'), readMeContent);
186
- } catch (err) {
187
- logger.statusError('Error creating project files');
188
- // if (err) logger.error(err.stderr || err);
189
- errorExit(err);
190
- return;
191
- }
192
-
193
- // Generate .gitignore
194
- const gitignoreContent = generateGitignore(options);
195
- try {
196
- fse.writeFileSync(path.join(cwd, '.gitignore'), gitignoreContent);
197
- } catch (err) {
198
- logger.statusError('Error creating project files');
199
- // if (err) logger.error(err.stderr || err);
200
- errorExit(err);
201
- return;
202
- }
203
-
204
- logger.statusDone('Creating project files');
205
-
206
- let npmScripts = generateNpmScripts(['s', 'r']).map((s) => {
207
- return `- ${s.icon} Run "npm run ${s.name}" - ${s.description}`;
208
- });
209
-
210
- if (options.includeTailwind) {
211
- const tailwindScript = generateTailWindScripts(['t']).map((s) => {
212
- return `- ${s.icon} Run "npm run ${s.name}" - ${s.description}`;
213
- });
214
- npmScripts = [...npmScripts, ...tailwindScript];
215
- }
216
-
217
- // Final Text
218
- const finalText = `
219
- ${chalk.bold(logSymbols.success)} ${chalk.bold('Done!')} 💪
220
-
221
- ${chalk.bold(logSymbols.info)} ${chalk.bold('Next steps:')}
222
- ${npmScripts.join('\n ')}
223
- - 📖 Visit documentation at ${chalk.bold('https://mini.zalo.me/')}
224
- - 📖 Check ${chalk.bold(
225
- 'README.md'
226
- )} in project root folder with further instructions
227
- `;
228
-
229
- logger.text(finalText);
230
- };
1
+ 'use strict';const _0x465e0a=_0x5a08;(function(_0x585675,_0x43c162){const _0x19f2e2=_0x5a08,_0x10d8ff=_0x585675();while(!![]){try{const _0xf8e42b=-parseInt(_0x19f2e2(0x107))/0x1*(parseInt(_0x19f2e2(0x133))/0x2)+parseInt(_0x19f2e2(0x10d))/0x3*(parseInt(_0x19f2e2(0x11b))/0x4)+parseInt(_0x19f2e2(0x11c))/0x5+parseInt(_0x19f2e2(0x134))/0x6+-parseInt(_0x19f2e2(0x109))/0x7*(-parseInt(_0x19f2e2(0x12f))/0x8)+parseInt(_0x19f2e2(0x135))/0x9+-parseInt(_0x19f2e2(0x100))/0xa;if(_0xf8e42b===_0x43c162)break;else _0x10d8ff['push'](_0x10d8ff['shift']());}catch(_0x3788cf){_0x10d8ff['push'](_0x10d8ff['shift']());}}}(_0x221a,0x1c882));function _0x5a08(_0x5ca05f,_0x4b2d15){const _0x221a01=_0x221a();return _0x5a08=function(_0x5a088f,_0x1ceae1){_0x5a088f=_0x5a088f-0xfb;let _0xe3f64=_0x221a01[_0x5a088f];return _0xe3f64;},_0x5a08(_0x5ca05f,_0x4b2d15);}const e=require(_0x465e0a(0x113)),t=require(_0x465e0a(0x11f)),n=require(_0x465e0a(0x132)),r=require(_0x465e0a(0x115)),{initProject:i}=require('zmp-cli-core'),o=require(_0x465e0a(0xff)),{errorExit:s}=require(_0x465e0a(0x137)),a=require(_0x465e0a(0xfe)),c=require(_0x465e0a(0xfc)),l=require(_0x465e0a(0x12b)),{renameSync:u,existsSync:p}=require('fs'),d=n[_0x465e0a(0x11d)](_0x465e0a(0x110));async function f(_0x26492a,_0x3d626e){const _0x55246a=_0x465e0a;_0x3d626e[_0x55246a(0x11e)](_0x55246a(0x12d));try{let {cwd:_0x24451e,template:_0x695392,folderName:_0x18c58a,name:_0x590c0d}=_0x26492a;await i({'cwd':_0x24451e,'template':_0x695392,'folderName':_0x18c58a,'projectName':_0x590c0d});}catch(_0x5aaa2){_0x3d626e[_0x55246a(0x12c)]('Error\x20creating\x20project\x20files'),s(_0x5aaa2);}_0x3d626e[_0x55246a(0x123)](_0x55246a(0x12d));}async function m(_0xd24745){const _0x505856=_0x465e0a;let _0x3536e6=t[_0x505856(0x10c)](_0xd24745[_0x505856(0x124)],_0x505856(0x117)),_0x3d577f=t[_0x505856(0x10c)](_0xd24745[_0x505856(0x124)],_0xd24745[_0x505856(0x10b)],_0x505856(0x117));p(_0x3536e6)&&!p(_0x3d577f)&&u(_0x3536e6,_0x3d577f);}async function g(_0x84c60a,_0x1e1307){const _0x59a298=_0x465e0a;let {cwd:_0x2040c5}=_0x84c60a;_0x1e1307[_0x59a298(0x11e)](_0x59a298(0x108));let _0x4a203f=c(_0x84c60a);o[_0x59a298(0x126)](t[_0x59a298(0xfd)](_0x2040c5,a[_0x59a298(0x125)]['appConfig']),_0x4a203f[_0x59a298(0x11a)]),_0x1e1307[_0x59a298(0x123)]('Generating\x20app-config.json');}async function $(_0x447488,_0x330d1c){const _0xee1252=_0x465e0a;let _0x59b09c=t['join'](_0x447488[_0xee1252(0x124)],_0x447488[_0xee1252(0x10b)]);_0x330d1c['statusStart'](_0xee1252(0x120)+d);let _0x490e4b=_0x59b09c===process['cwd']();try{_0x490e4b?await e[_0xee1252(0x102)](_0xee1252(0x12e),!0x0):await e[_0xee1252(0x102)](_0xee1252(0x112)+_0x59b09c['replace'](/ /g,'\x5c\x20')+_0xee1252(0x131),!0x0);}catch(_0x17f78f){_0x330d1c['statusError'](_0xee1252(0x116)),s(_0x17f78f);return;}_0x330d1c[_0xee1252(0x123)](_0xee1252(0x118));}function _0x221a(){const _0x4cc4cd=['../utils/fs-extra','3768150tUOIDg','name','promise','https://mini.zalo.me/','README.md','text','icon','41fXmeCv','Generating\x20app-config.json','204442AEsRji','info','folderName','resolve','10929zVCCha','Next\x20steps:','\x0a-\x20📖\x20Visit\x20documentation\x20at\x20','(Please\x20wait,\x20it\x20can\x20take\x20a\x20while)','bold','cd\x20','exec-sh','\x0a-\x20📖\x20Check\x20','log-symbols','Error\x20installing\x20NPM\x20Dependencies','.env','Installing\x20NPM\x20Dependencies','description','content','20XEEWWd','790290tZTibO','gray','statusStart','path','Installing\x20NPM\x20Dependencies\x20','\x20Run\x20\x22npm\x20run\x20','\x0a-\x20🔥\x20Run\x20\x22zmp\x20deploy\x22\x20-\x20deploy\x20mini\x20app\x20for\x20production\x0a-\x20📖\x20Visit\x20instruction\x20at\x20','statusDone','cwd','filename','writeFileSync','exports','https://mini.zalo.me/blog/huong-dan-chuyen-doi-web-app-thanh-zalo-mini-app-trong-30-phut/','success','\x0a-\x20👉\x20Run\x20\x22cd\x20','./utils/generate-npm-scripts','statusError','Creating\x20project\x20files','npm\x20install','40hVTpdd','\x20💪\x0a\x0a','\x20&&\x20npm\x20install','chalk','2180qKwCUk','1048446BXqnYD','371943KWZxeD','newProject','../utils/error','Done!','./utils/generate-app-config','join','../config'];_0x221a=function(){return _0x4cc4cd;};return _0x221a();}async function h(_0x348b42,_0x4a066f){const _0x4ea2e0=_0x465e0a;let _0x3a0a14=l(['s','r'])['map'](_0x10dfdf=>'-\x20'+_0x10dfdf[_0x4ea2e0(0x106)]+_0x4ea2e0(0x121)+_0x10dfdf[_0x4ea2e0(0x101)]+'\x22\x20-\x20'+_0x10dfdf[_0x4ea2e0(0x119)]),_0x1eefb2='\x0a'+n[_0x4ea2e0(0x111)](r[_0x4ea2e0(0x129)])+'\x20'+n[_0x4ea2e0(0x111)](_0x4ea2e0(0xfb))+_0x4ea2e0(0x130)+n[_0x4ea2e0(0x111)](r['info'])+'\x20'+n['bold'](_0x4ea2e0(0x10e))+_0x4ea2e0(0x12a)+_0x348b42[_0x4ea2e0(0x10b)]+'\x22\x0a'+_0x3a0a14[_0x4ea2e0(0xfd)]('\x0a')+_0x4ea2e0(0x10f)+n[_0x4ea2e0(0x111)](_0x4ea2e0(0x103))+_0x4ea2e0(0x114)+n[_0x4ea2e0(0x111)](_0x4ea2e0(0x104))+'\x20in\x20project\x20root\x20folder\x20with\x20further\x20instructions\x0a\x20\x20';_0x4a066f[_0x4ea2e0(0x105)](_0x1eefb2);}async function y(_0x4473ea,_0x3d79a3){const _0x40f31f=_0x465e0a;let _0x17efb7='\x0a'+n['bold'](r[_0x40f31f(0x129)])+'\x20'+n['bold']('Done!')+'\x20💪\x0a\x0a'+n['bold'](r[_0x40f31f(0x10a)])+'\x20'+n['bold'](_0x40f31f(0x10e))+_0x40f31f(0x122)+n[_0x40f31f(0x111)](_0x40f31f(0x128))+'\x0a\x20\x20';_0x3d79a3[_0x40f31f(0x105)](_0x17efb7);}module[_0x465e0a(0x127)]=async(_0x2a663d={},_0x2e8d7a)=>{const _0x33a748=_0x465e0a;for(let _0x3a990b of(_0x2e8d7a||(_0x2e8d7a={'statusStart'(){},'statusDone'(){},'statusError'(){},'text'(){},'error'(){}}),_0x2a663d[_0x33a748(0x136)]?[f,m,$,h]:[g,y]))await _0x3a990b(_0x2a663d,_0x2e8d7a);};
@@ -1,34 +1 @@
1
- module.exports = function generateAppConfig(options) {
2
- const { name } = options;
3
-
4
- // Window config
5
- const appConfig = {
6
- title: name,
7
- headerTitle: name,
8
- headerColor: '#1843EF',
9
- textColor: 'white',
10
- statusBarColor: '#1843EF',
11
- leftButton: 'back',
12
- statusBar: 'normal',
13
- actionBarHidden: false,
14
- hideAndroidBottomNavigationBar: false,
15
- hideIOSSafeAreaBottom: false,
16
- };
17
- // Content
18
- const content = JSON.stringify(
19
- {
20
- app: appConfig,
21
- debug: false,
22
- listCSS: [],
23
- listSyncJS: [],
24
- listAsyncJS: [],
25
- },
26
- '',
27
- 2
28
- ).trim();
29
-
30
- return {
31
- content,
32
- appConfig,
33
- };
34
- };
1
+ 'use strict';const _0x10b754=_0x569d;(function(_0x5d7d65,_0x50fcc5){const _0x59f066=_0x569d,_0x373103=_0x5d7d65();while(!![]){try{const _0xffce73=parseInt(_0x59f066(0x1a5))/0x1*(-parseInt(_0x59f066(0x1a6))/0x2)+parseInt(_0x59f066(0x19e))/0x3+-parseInt(_0x59f066(0x19b))/0x4*(-parseInt(_0x59f066(0x1a3))/0x5)+parseInt(_0x59f066(0x1a7))/0x6+parseInt(_0x59f066(0x1a0))/0x7*(parseInt(_0x59f066(0x19a))/0x8)+-parseInt(_0x59f066(0x19d))/0x9+parseInt(_0x59f066(0x19f))/0xa*(-parseInt(_0x59f066(0x199))/0xb);if(_0xffce73===_0x50fcc5)break;else _0x373103['push'](_0x373103['shift']());}catch(_0x57f8e3){_0x373103['push'](_0x373103['shift']());}}}(_0x5aa7,0xc55e2));module[_0x10b754(0x1a2)]=function(_0x59a9b8){const _0x407f11=_0x10b754;let {name:_0x396ec2}=_0x59a9b8,_0x4a7fd1={'title':_0x396ec2,'headerTitle':_0x396ec2,'headerColor':_0x407f11(0x1a4),'textColor':_0x407f11(0x1a1),'leftButton':'back','statusBar':_0x407f11(0x19c),'actionBarHidden':!0x1,'hideAndroidBottomNavigationBar':!0x1,'hideIOSSafeAreaBottom':!0x1};return{'content':JSON[_0x407f11(0x1a8)]({'app':_0x4a7fd1,'listCSS':[],'listSyncJS':[],'listAsyncJS':[]},'',0x2)['trim'](),'appConfig':_0x4a7fd1};};function _0x569d(_0x16f1b6,_0x3461da){const _0x5aa7bc=_0x5aa7();return _0x569d=function(_0x569d3,_0x36fcd7){_0x569d3=_0x569d3-0x199;let _0x130add=_0x5aa7bc[_0x569d3];return _0x130add;},_0x569d(_0x16f1b6,_0x3461da);}function _0x5aa7(){const _0x5cf2d2=['40GgUrsl','4aKYMuv','normal','5345289gjkACG','970800eJAMSz','50RUuVfe','222243kDmNhq','white','exports','7922785GgUQIX','#1843EF','205152RqxQyd','12WbInqX','7393584TfEZrC','stringify','1465013iGmgnY'];_0x5aa7=function(){return _0x5cf2d2;};return _0x5aa7();}
@@ -1,26 +1 @@
1
- const npmScripts = require('./npm-scripts');
2
-
3
- const generateNpmScripts = (tokens = ['s', 'r']) => {
4
- return tokens.map((token) => {
5
- return {
6
- icon: npmScripts.default[token].icon,
7
- name: npmScripts.default[token].name,
8
- script: npmScripts.default[token].script,
9
- description: npmScripts.default[token].description,
10
- };
11
- });
12
- };
13
-
14
- const generateTailWindScripts = (tokens = ['t']) => {
15
- return tokens.map((token) => {
16
- return {
17
- icon: npmScripts.tailwind[token].icon,
18
- name: npmScripts.tailwind[token].name,
19
- script: npmScripts.tailwind[token].script,
20
- description: npmScripts.tailwind[token].description,
21
- };
22
- });
23
- };
24
-
25
- module.exports = generateNpmScripts;
26
- module.exports.generateTailWindScripts = generateTailWindScripts;
1
+ 'use strict';const _0x404c4c=_0xf931;(function(_0x34b3bb,_0x5704ca){const _0x565b61=_0xf931,_0x1b29d7=_0x34b3bb();while(!![]){try{const _0x4bbbb2=-parseInt(_0x565b61(0xb9))/0x1+-parseInt(_0x565b61(0xba))/0x2+parseInt(_0x565b61(0xb5))/0x3+-parseInt(_0x565b61(0xbf))/0x4*(parseInt(_0x565b61(0xc2))/0x5)+parseInt(_0x565b61(0xc1))/0x6+parseInt(_0x565b61(0xb7))/0x7*(-parseInt(_0x565b61(0xb8))/0x8)+parseInt(_0x565b61(0xb2))/0x9;if(_0x4bbbb2===_0x5704ca)break;else _0x1b29d7['push'](_0x1b29d7['shift']());}catch(_0x3bb14e){_0x1b29d7['push'](_0x1b29d7['shift']());}}}(_0x45e3,0x75c6e));function _0xf931(_0x4424d0,_0x5dbe6b){const _0x45e32f=_0x45e3();return _0xf931=function(_0xf9313b,_0x4a4748){_0xf9313b=_0xf9313b-0xb2;let _0x334616=_0x45e32f[_0xf9313b];return _0x334616;},_0xf931(_0x4424d0,_0x5dbe6b);}const i=require(_0x404c4c(0xb3));module[_0x404c4c(0xc0)]=(_0x17170c=['s','r'])=>_0x17170c[_0x404c4c(0xb6)](_0x1b4320=>({'icon':i[_0x404c4c(0xbd)][_0x1b4320][_0x404c4c(0xb4)],'name':i[_0x404c4c(0xbd)][_0x1b4320][_0x404c4c(0xbe)],'script':i[_0x404c4c(0xbd)][_0x1b4320][_0x404c4c(0xc3)],'description':i[_0x404c4c(0xbd)][_0x1b4320][_0x404c4c(0xbc)]})),module['exports'][_0x404c4c(0xbb)]=(_0x1c60af=['t'])=>_0x1c60af['map'](_0x490574=>({'icon':i[_0x404c4c(0xc4)][_0x490574]['icon'],'name':i[_0x404c4c(0xc4)][_0x490574][_0x404c4c(0xbe)],'script':i[_0x404c4c(0xc4)][_0x490574][_0x404c4c(0xc3)],'description':i[_0x404c4c(0xc4)][_0x490574][_0x404c4c(0xbc)]}));function _0x45e3(){const _0x5e76ff=['tailwind','18841338MaUmDR','./npm-scripts','icon','2045265dMxFJu','map','7JMMAPy','7302864zJZVuD','878796kxtHeW','745570roPnNR','generateTailWindScripts','description','default','name','100BiAclM','exports','3102246vaVIPm','129085Wftkka','script'];_0x45e3=function(){return _0x5e76ff;};return _0x45e3();}