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.
- package/README.md +1 -0
- package/build/index.js +1 -184
- package/config/index.js +1 -44
- package/create/index.js +1 -230
- package/create/init-zmp-ui.js +1 -216
- package/create/templates/app-parameters.js +9 -25
- package/create/templates/common/webpack/build.js +2 -40
- package/create/templates/copy-assets.js +1 -158
- package/create/templates/core/copy-assets.js +14 -82
- package/create/templates/core/generate-home-page.js +16 -38
- package/create/templates/core/generate-root.js +28 -63
- package/create/templates/core/generate-routes.js +12 -38
- package/create/templates/core/generate-scripts.js +16 -65
- package/create/templates/create-folders.js +1 -30
- package/create/templates/generate-config-xml.js +2 -9
- package/create/templates/generate-index.js +10 -35
- package/create/templates/generate-manifest.js +1 -49
- package/create/templates/generate-recoil.js +4 -16
- package/create/templates/generate-routes.js +1 -16
- package/create/templates/generate-scripts.js +1 -16
- package/create/templates/generate-service-worker.js +4 -10
- package/create/templates/generate-store.js +4 -15
- package/create/templates/generate-styles.js +10 -64
- package/create/templates/generate-webpack-config.js +43 -125
- package/create/templates/generate-zmp-custom.js +14 -72
- package/create/templates/react/copy-assets.js +1 -85
- package/create/templates/react/generate-home-page.js +20 -50
- package/create/templates/react/generate-root.js +15 -44
- package/create/templates/react/generate-routes.js +1 -16
- package/create/templates/react/generate-scripts.js +12 -38
- package/create/templates/react/pages/404.js +2 -10
- package/create/templates/react/pages/about.js +2 -10
- package/create/templates/react/pages/catalog.js +3 -17
- package/create/templates/react/pages/dynamic-route.js +2 -10
- package/create/templates/react/pages/form.js +6 -26
- package/create/templates/react/pages/index copy.js +1 -17
- package/create/templates/react/pages/index.js +1 -17
- package/create/templates/react/pages/settings.js +3 -17
- package/create/templates/react/pages/user.js +8 -27
- package/create/templates/react-typescript/components/app-items.js +2 -9
- package/create/templates/react-typescript/components/index.js +1 -9
- package/create/templates/react-typescript/components/navbar-back.js +2 -9
- package/create/templates/react-typescript/components/user-card.js +2 -9
- package/create/templates/react-typescript/copy-assets.js +1 -94
- package/create/templates/react-typescript/generate-home-page.js +20 -52
- package/create/templates/react-typescript/generate-root.js +14 -45
- package/create/templates/react-typescript/generate-routes.js +1 -12
- package/create/templates/react-typescript/generate-scripts.js +12 -37
- package/create/templates/react-typescript/pages/404.js +2 -10
- package/create/templates/react-typescript/pages/about.js +2 -10
- package/create/templates/react-typescript/pages/catalog.js +3 -17
- package/create/templates/react-typescript/pages/dynamic-route.js +2 -10
- package/create/templates/react-typescript/pages/form.js +6 -26
- package/create/templates/react-typescript/pages/index.js +1 -17
- package/create/templates/react-typescript/pages/settings.js +3 -17
- package/create/templates/react-typescript/pages/user.js +8 -27
- package/create/templates/svelte/copy-assets.js +1 -47
- package/create/templates/svelte/generate-home-page.js +20 -56
- package/create/templates/svelte/generate-root.js +22 -80
- package/create/templates/svelte/generate-routes.js +7 -22
- package/create/templates/svelte/generate-scripts.js +7 -23
- package/create/templates/vue/copy-assets.js +1 -67
- package/create/templates/vue/generate-home-page.js +2 -8
- package/create/templates/vue/generate-root.js +3 -13
- package/create/templates/vue/generate-routes.js +1 -7
- package/create/templates/vue/generate-scripts.js +9 -26
- package/create/templates/vue/global-components.d.js +1 -0
- package/create/templates/zaui/copy-assets.js +1 -90
- package/create/templates/zaui/generate-home-page.js +27 -53
- package/create/templates/zaui/generate-root.js +14 -34
- package/create/templates/zaui/generate-routes.js +1 -10
- package/create/templates/zaui/generate-scripts.js +6 -20
- package/create/templates/zaui/generate-user-card.js +3 -18
- package/create/templates/zaui/pages/about.js +3 -20
- package/create/templates/zaui/pages/form.js +3 -20
- package/create/templates/zaui/pages/index.js +1 -9
- package/create/templates/zaui/pages/user.js +3 -20
- package/create/utils/colors.js +1 -94
- package/create/utils/generate-app-config.js +1 -34
- package/create/utils/generate-gitignore.js +1 -43
- package/create/utils/generate-npm-scripts.js +1 -26
- package/create/utils/generate-package-json.js +1 -132
- package/create/utils/generate-readme.js +1 -28
- package/create/utils/get-options.js +1 -204
- package/create/utils/indent.js +1 -31
- package/create/utils/npm-scripts.js +1 -62
- package/create/utils/string.js +1 -13
- package/create/utils/styles-extension.js +1 -9
- package/create/utils/template-if.js +1 -9
- package/deploy/index.js +1 -149
- package/deploy/utils/get-options.js +1 -69
- package/deploy/utils/request-upload.js +1 -34
- package/deploy/utils/upload-app.js +1 -82
- package/index.js +1 -319
- package/login/index.js +1 -169
- package/login/utils/get-options.js +1 -58
- package/login/utils/zalo-login.js +1 -32
- package/migrate/icons/update-icon-v3.js +1 -19
- package/migrate/index.js +1 -60
- package/migrate/utils/get-options.js +1 -46
- package/migrate/utils/migrate-react.js +1 -33
- package/package.json +11 -39
- package/start/generate-hr-config.js +1 -59
- package/start/index.js +1 -382
- package/sync/index-to-app-config.js +1 -146
- package/sync/index.js +1 -55
- package/utils/axios.js +1 -15
- package/utils/check-update.js +1 -53
- package/utils/constants.js +1 -20
- package/utils/env.js +1 -39
- package/utils/error.js +1 -16
- package/utils/find-files-by-ext.js +1 -27
- package/utils/find-free-port.js +1 -11
- package/utils/fs-extra.js +1 -90
- package/utils/generate-pages-map.js +1 -17
- package/utils/get-app-info.js +1 -22
- package/utils/get-current-project.js +1 -25
- package/utils/get-ip.js +1 -19
- package/utils/log.js +1 -19
- package/utils/node-blob.js +1 -106
- package/utils/resumable.d.js +1 -0
- package/utils/resumable.js +1 -1204
- package/utils/spinner.js +1 -25
- package/utils/tunnel.js +1 -36
- package/.editorconfig +0 -15
- package/.eslintignore +0 -8
- package/.eslintrc.js +0 -10
- package/.vscode/launch.json +0 -23
- package/LICENSE +0 -21
- package/README.git.md +0 -37
- package/assets/index.js +0 -147
- package/build/dist/index.dev.js +0 -217
- package/config/dist/index.dev.js +0 -48
- package/create/templates/dist/generate-styles.dev.js +0 -46
- package/create/templates/react/dist/generate-scripts.dev.js +0 -23
- package/create/templates/react-typescript/dist/generate-scripts.dev.js +0 -23
- package/create/utils/dist/get-options.dev.js +0 -277
- package/deploy/dist/index.dev.js +0 -227
- package/deploy/utils/dist/request-upload.dev.js +0 -62
- package/deploy/utils/dist/upload-app.dev.js +0 -113
- package/dist/bundle.js +0 -1
- package/dist/index.dev.js +0 -352
- package/jsconfig.json +0 -8
- package/login/dist/index.dev.js +0 -223
- package/login/utils/dist/zalo-login.dev.js +0 -41
- package/screenshots/wellcome.jpg +0 -0
- package/show-qr-app/assets/css/style.css +0 -87
- package/show-qr-app/assets/js/qrcode.min.js +0 -1
- package/show-qr-app/index.html +0 -57
- package/show-qr-app/package.json +0 -14
- package/start/dist/index.dev.js +0 -312
- package/ui/server.js +0 -194
- package/ui/www/css/app.css +0 -1
- package/ui/www/css/app.css.map +0 -1
- package/ui/www/fonts/ZMPIcons-Regular.eot +0 -0
- package/ui/www/fonts/ZMPIcons-Regular.ttf +0 -0
- package/ui/www/fonts/ZMPIcons-Regular.woff +0 -0
- package/ui/www/fonts/ZMPIcons-Regular.woff2 +0 -0
- package/ui/www/images/logo.png +0 -0
- package/ui/www/index.html +0 -1
- package/ui/www/js/app.js +0 -3
- package/ui/www/js/app.js.LICENSE.txt +0 -20
- package/ui/www/js/app.js.map +0 -1
- package/ui/www/static/icons/apple-touch-icon.png +0 -0
- package/ui/www/static/icons/favicon.png +0 -0
- package/utils/dist/get-app-info.dev.js +0 -54
package/README.md
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
""
|
package/build/index.js
CHANGED
|
@@ -1,184 +1 @@
|
|
|
1
|
-
|
|
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 _0x50ffc2=_0x4ef1;(function(_0x16aacd,_0x3acc14){const _0x4df43b=_0x4ef1,_0x5518e3=_0x16aacd();while(!![]){try{const _0x45e8cc=parseInt(_0x4df43b(0x1fb))/0x1*(parseInt(_0x4df43b(0x1d3))/0x2)+parseInt(_0x4df43b(0x1e2))/0x3*(parseInt(_0x4df43b(0x1ef))/0x4)+-parseInt(_0x4df43b(0x1d8))/0x5*(parseInt(_0x4df43b(0x1cb))/0x6)+-parseInt(_0x4df43b(0x200))/0x7+-parseInt(_0x4df43b(0x1f7))/0x8+parseInt(_0x4df43b(0x1c7))/0x9+parseInt(_0x4df43b(0x1ce))/0xa;if(_0x45e8cc===_0x3acc14)break;else _0x5518e3['push'](_0x5518e3['shift']());}catch(_0x4443a9){_0x5518e3['push'](_0x5518e3['shift']());}}}(_0xbd49,0xcfd36));function _0x4ef1(_0x2b03a3,_0x39ca5f){const _0xbd491e=_0xbd49();return _0x4ef1=function(_0x4ef15e,_0x2ec769){_0x4ef15e=_0x4ef15e-0x1c1;let _0x5966c5=_0xbd491e[_0x4ef15e];return _0x5966c5;},_0x4ef1(_0x2b03a3,_0x39ca5f);}const e=require(_0x50ffc2(0x1fc)),r=require(_0x50ffc2(0x1c5)),t=require('path'),{build:i}=require(_0x50ffc2(0x1e6)),s=require(_0x50ffc2(0x202))[_0x50ffc2(0x1e0)],a=require(_0x50ffc2(0x1e4)),l=require('@rollup/plugin-replace'),n=require(_0x50ffc2(0x1cc)),o=require(_0x50ffc2(0x1dd)),u=require('../utils/get-app-info'),p=require('../utils/env'),c=require('../config'),m=require(_0x50ffc2(0x1c9)),g=p[_0x50ffc2(0x1ff)](_0x50ffc2(0x205))||_0x50ffc2(0x1ea),y=e['gray'](_0x50ffc2(0x1f1)),d=e[_0x50ffc2(0x208)]('Warning:\x20This\x20CLI\x20version\x20will\x20work\x20better\x20with\x20zmp-framework\x20version\x201.5.0\x20or\x20higher'),f=r(_0x50ffc2(0x1ea)===g?'Building\x20for\x20production...':_0x50ffc2(0x1c2));function _0xbd49(){const _0x47f768=['30392840NJfDbb','statusStart','zdn_url','Build\x20Done!\x0a','appConfig','43220ZlAgUz','appId','latestVersion','vite.config.ts','es2015','5zSyQgp','forEach','mode','imports','listCSS','../utils/fs-extra','exit','stderr','default','error','3IUoEJr','writeFileSync','lodash','statusDone','vite','set','stringify','fileName','production','exports','appConfigJson','has','get','947740MwFYEL','local','Building...\x20(Please\x20wait,\x20it\x20can\x20take\x20a\x20while)','asset','isArray','bold','filename','filter','13065976UHeZEU','isImplicitEntry','statusError','nextVersion','20vhsCOH','chalk','isDynamicEntry','chunk','getEnv','9992766aOAtPF','type','@rollup/plugin-dynamic-import-vars','join','assets/[name].[hash].module.js','NODE_ENV','pick','map','yellow','listSyncJS','push','Building\x20development\x20version...','cwd','www/','ora','www','14191083hkyApS','.css','../utils/generate-pages-map','vite.config.js','8239002chnzRi','../utils/log','env'];_0xbd49=function(){return _0x47f768;};return _0xbd49();}module[_0x50ffc2(0x1eb)]=async(_0x26d613={},_0x589c30,{exitOnError:_0x1dae75=!0x0}={})=>{const _0x108297=_0x50ffc2;let _0x1fb8b7=_0x26d613[_0x108297(0x1c3)]||process[_0x108297(0x1c3)](),_0xd0dbec=_0x53cab6=>t[_0x108297(0x203)](_0x1fb8b7,_0x53cab6),_0x2c6223=_0x26d613[_0x108297(0x1ec)]||require(_0xd0dbec(c[_0x108297(0x1f5)][_0x108297(0x1d2)]));_0x589c30||(_0x589c30={'statusStart'(){},'statusDone'(){},'statusError'(){},'text'(){},'error'(){}}),_0x589c30['text'](d),f['start'](),_0x589c30[_0x108297(0x1cf)](y);try{let _0x5a5aad=p[_0x108297(0x1ff)](c[_0x108297(0x1cd)][_0x108297(0x1d4)]),_0x534b5c=_0x26d613[_0x108297(0x1fa)];if(!_0x534b5c){let _0x495547=await u(_0x5a5aad,_0x26d613),_0x3d948a=_0x495547&&_0x495547[_0x108297(0x1d5)]&&Number(_0x495547[_0x108297(0x1d5)]);null==_0x3d948a&&(_0x3d948a=0x0),_0x534b5c=_0x3d948a+0x1;}let _0x1385f0=_0x108297(0x1ca);o['existsSync'](t['join'](_0x1fb8b7,_0x108297(0x1d6)))&&(_0x1385f0=_0x108297(0x1d6));let _0x13549d=(await i({'configFile':t[_0x108297(0x203)](_0x1fb8b7,_0x1385f0),'root':_0x1fb8b7,'base':''+c[_0x108297(0x1d0)]+_0x5a5aad+'/'+_0x534b5c+'/','css':{'modules':{'scopeBehaviour':_0x108297(0x1f0)}},'mode':_0x26d613[_0x108297(0x1da)],'build':{'target':_0x108297(0x1d7),'outDir':t[_0x108297(0x203)](_0x1fb8b7,_0x108297(0x1c6)),'assetsInlineLimit':0x0,'cssCodeSplit':!0x1,'cssTarget':[_0x108297(0x1d7),'safari13.1'],'rollupOptions':{'plugins':[l({'values':{'ZMP_IMPORT_PAGES':()=>m(_0x1fb8b7)}}),s({'warnOnError':!0x0})],'output':{'entryFileNames':_0x108297(0x204),'chunkFileNames':_0x108297(0x204)}}},'logLevel':'error'}))['output'][_0x108297(0x207)](_0x30ff99=>a[_0x108297(0x206)](_0x30ff99,['fileName',_0x108297(0x201),_0x108297(0x1db),'isEntry',_0x108297(0x1f8),_0x108297(0x1fd)])),_0x1b4210=new Map();_0x13549d[_0x108297(0x1d9)](_0x2dd165=>{const _0x42ff32=_0x108297;_0x1b4210[_0x42ff32(0x1e7)](_0x2dd165[_0x42ff32(0x1e9)],_0x2dd165);});let _0x427893=_0x13549d[_0x108297(0x1f6)](_0x421f2e=>_0x108297(0x1fe)===_0x421f2e[_0x108297(0x201)]&&_0x421f2e['isEntry']),_0x5f4a72=[],_0x27b279=(_0x50d18c,_0x1cafa3=new Set())=>{const _0x20b56e=_0x108297;let _0x432269=[];return _0x50d18c['imports'][_0x20b56e(0x1d9)](_0x53a34b=>{const _0x251ec3=_0x20b56e;let _0x479c40=_0x1b4210[_0x251ec3(0x1ee)](_0x53a34b);_0x479c40?.['type']!==_0x251ec3(0x1fe)||_0x1cafa3[_0x251ec3(0x1ed)](_0x53a34b)||(_0x1cafa3['add'](_0x53a34b),_0x432269['push'](..._0x27b279(_0x479c40,_0x1cafa3)),_0x432269[_0x251ec3(0x1c1)](_0x479c40));}),_0x432269;};_0x427893[_0x108297(0x1d9)](_0x228b6a=>{const _0x179957=_0x108297;let _0x32e4c3=_0x27b279(_0x228b6a);_0x5f4a72[_0x179957(0x1c1)](..._0x32e4c3);});let _0x57c9b9=_0x13549d[_0x108297(0x1f6)](_0x623a58=>!!(_0x108297(0x1f2)===_0x623a58[_0x108297(0x201)]&&_0x623a58[_0x108297(0x1e9)]['endsWith'](_0x108297(0x1c8)))),_0x45c6b8={..._0x2c6223,'listCSS':[...Array['isArray'](_0x2c6223[_0x108297(0x1dc)])?_0x2c6223['listCSS']:[],..._0x57c9b9[_0x108297(0x207)](_0x581813=>_0x581813[_0x108297(0x1e9)])],'listSyncJS':[...Array[_0x108297(0x1f3)](_0x2c6223[_0x108297(0x209)])?_0x2c6223['listSyncJS']:[],..._0x427893[_0x108297(0x207)](_0x1a6ea3=>_0x1a6ea3[_0x108297(0x1e9)])],'listAsyncJS':[..._0x5f4a72[_0x108297(0x207)](_0x5aebd2=>_0x5aebd2[_0x108297(0x1e9)]),...Array[_0x108297(0x1f3)](_0x2c6223['listAsyncJS'])?_0x2c6223['listAsyncJS']:[]]};return o[_0x108297(0x1e3)](_0xd0dbec(_0x108297(0x1c4)+c['filename'][_0x108297(0x1d2)]),JSON[_0x108297(0x1e8)](_0x45c6b8)),_0x589c30[_0x108297(0x1e5)](''+e[_0x108297(0x1f4)]['green'](_0x108297(0x1d1))),_0x45c6b8;}catch(_0x5980a5){_0x589c30[_0x108297(0x1f9)]('Error\x20building\x20project'),n[_0x108297(0x1e1)](_0x5980a5[_0x108297(0x1df)]||_0x5980a5),_0x1dae75&&process[_0x108297(0x1de)](0x1);return;}};
|
package/config/index.js
CHANGED
|
@@ -1,44 +1 @@
|
|
|
1
|
-
|
|
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';function _0x3de9(){var _0x74353b=['559094VOgVWB','4570192EMtOSa','5FpArbb','app/upload-chunk','1257815YecOKr','app/get-info','184368fhFdDX','octet','3712590EGHUZu','admin/login','app-config.json','cwd','Request\x20Timeout','App\x20config\x20not\x20found.\x20Please\x20re-init\x20project.\x20(Tips:\x20Run\x20\x27zmp\x20init\x27)','/.env','https://zmp-api.developers.zalo.me/','exports','8QBAKfs','332066mydmUE','//h5.zdn.vn/zapps/','18917082GvxAPm'];_0x3de9=function(){return _0x74353b;};return _0x3de9();}function _0x5d9c(_0x3660cf,_0x4de083){var _0x3de97b=_0x3de9();return _0x5d9c=function(_0x5d9c45,_0x2ba2ab){_0x5d9c45=_0x5d9c45-0x6b;var _0x183c8b=_0x3de97b[_0x5d9c45];return _0x183c8b;},_0x5d9c(_0x3660cf,_0x4de083);}var _0x498ba1=_0x5d9c;(function(_0x54d27b,_0x16bd2f){var _0xb105ee=_0x5d9c,_0x3e3c6c=_0x54d27b();while(!![]){try{var _0x4097df=-parseInt(_0xb105ee(0x70))/0x1*(parseInt(_0xb105ee(0x6e))/0x2)+-parseInt(_0xb105ee(0x74))/0x3+parseInt(_0xb105ee(0x6f))/0x4+-parseInt(_0xb105ee(0x72))/0x5+-parseInt(_0xb105ee(0x76))/0x6+parseInt(_0xb105ee(0x6b))/0x7*(parseInt(_0xb105ee(0x7f))/0x8)+parseInt(_0xb105ee(0x6d))/0x9;if(_0x4097df===_0x16bd2f)break;else _0x3e3c6c['push'](_0x3e3c6c['shift']());}catch(_0x4d4d3d){_0x3e3c6c['push'](_0x3e3c6c['shift']());}}}(_0x3de9,0xeaf3d));module[_0x498ba1(0x7e)]={'filename':{'appConfig':_0x498ba1(0x78),'zmpConfig':'zmp-cli.json','packageJson':'package.json'},'api_domain':_0x498ba1(0x7d),'zdn_url':_0x498ba1(0x6c),'path':{'login':_0x498ba1(0x77),'requestLogin':'admin/request-login','checkLoginStatus':'admin/get-login-status','uploadAppByChunk':_0x498ba1(0x71),'requestUploadResumable':'app/request-upload','getAppInfo':_0x498ba1(0x73)},'dirname':__dirname,'root_env':()=>process[_0x498ba1(0x79)]()+_0x498ba1(0x7c),'env':{'appId':'APP_ID','token':'ZMP_TOKEN'},'error_code':{'app_config_not_found':-0x578,'permission_denied':-0x7d1,'request_timeout':-0x7d3},'error_msg':{'app_config_not_found':_0x498ba1(0x7b),'permission_denied':'Permission\x20denied.\x20Please\x20login\x20again.\x20(Tips:\x20Run\x20\x27zmp\x20login\x27)','request_timeout':_0x498ba1(0x7a)},'resumable_option':{'chunkSize':0x7d000,'simultaneousUploads':0x4,'testChunks':!0x0,'throttleProgressCallbacks':0x1,'method':_0x498ba1(0x75),'forceChunkSize':!0x1}};
|
package/create/index.js
CHANGED
|
@@ -1,230 +1 @@
|
|
|
1
|
-
|
|
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 _0x3f729c=_0x1130;(function(_0x1edfe5,_0x5409b0){const _0x3881c4=_0x1130,_0x50741b=_0x1edfe5();while(!![]){try{const _0x4f6731=parseInt(_0x3881c4(0x163))/0x1+-parseInt(_0x3881c4(0x15c))/0x2*(parseInt(_0x3881c4(0x149))/0x3)+parseInt(_0x3881c4(0x193))/0x4*(parseInt(_0x3881c4(0x16f))/0x5)+parseInt(_0x3881c4(0x173))/0x6+parseInt(_0x3881c4(0x146))/0x7+parseInt(_0x3881c4(0x170))/0x8+parseInt(_0x3881c4(0x16c))/0x9;if(_0x4f6731===_0x5409b0)break;else _0x50741b['push'](_0x50741b['shift']());}catch(_0x31baff){_0x50741b['push'](_0x50741b['shift']());}}}(_0x2554,0xae118));function _0x1130(_0x18c96f,_0x2f654f){const _0x2554d2=_0x2554();return _0x1130=function(_0x1130b1,_0x47158c){_0x1130b1=_0x1130b1-0x142;let _0x2dc3ef=_0x2554d2[_0x1130b1];return _0x2dc3ef;},_0x1130(_0x18c96f,_0x2f654f);}const e=require(_0x3f729c(0x16e)),t=require(_0x3f729c(0x186)),r=require(_0x3f729c(0x165)),n=require(_0x3f729c(0x14a)),i=require(_0x3f729c(0x148)),s=require(_0x3f729c(0x17b)),a=require(_0x3f729c(0x166)),{generateTailWindScripts:o}=require('./utils/generate-npm-scripts'),c=require('./utils/generate-app-config'),l=require(_0x3f729c(0x157)),u=require(_0x3f729c(0x191)),p=require(_0x3f729c(0x16a)),g=require(_0x3f729c(0x14d)),d=require(_0x3f729c(0x16b)),m=require(_0x3f729c(0x147)),f=require(_0x3f729c(0x15a)),j=r[_0x3f729c(0x17d)](_0x3f729c(0x14e));function _0x2554(){const _0x5bc2d2=['../utils/fs-extra','222123uOoSXM','log-symbols','length','from','./utils/generate-gitignore','(Please\x20wait,\x20it\x20can\x20take\x20a\x20while)','content','package.json','stderr','zmp-ui','\x20Run\x20\x22npm\x20run\x20','resolve','dependencies','\x22\x20-\x20','./templates/create-folders','icon','name','./init-zmp-ui','\x20&&\x20npm\x20install\x20','36NQbmoc','filename','error','Creating\x20project\x20files','\x0a\x20\x20','Executing\x20NPM\x20Scripts','cd\x20','491333MgltRZ','https://mini.zalo.me/','chalk','./utils/generate-npm-scripts','newProject','\x20in\x20project\x20root\x20folder\x20with\x20further\x20instructions\x0a\x20\x20\x20\x20','.gitignore','./utils/generate-readme','../utils/log','6101235LdtrLe','text','exec-sh','54185RdIstn','5219584OHWoIm','exit','\x20--save','427782mZeQzs','promise','Error\x20installing\x20NPM\x20Dependencies','description','npm\x20run\x20postinstall','\x0a\x20\x20-\x20📖\x20Check\x20','writeFileSync','Error\x20creating\x20project\x20files','./utils/generate-package-json','writeFileAsync','gray','statusError','Error\x20installing\x20NPM\x20Dev\x20Dependencies','Next\x20steps:','package','postInstall','appConfig','exports','\x0a\x20\x20-\x20📖\x20Visit\x20documentation\x20at\x20','path','statusDone','join','includeTailwind','replace','success','stringify','bold','statusStart','README.md','Generating\x20package.json','./templates/copy-assets','Creating\x20required\x20folders\x20structure','52xDhdIV','Generating\x20app-config.json','\x20--save-dev','npm\x20install\x20','map','Done!','cwd','copyFileAsync','\x20&&\x20npm\x20run\x20postinstall','82936DxNHNw','../config'];_0x2554=function(){return _0x5bc2d2;};return _0x2554();}module[_0x3f729c(0x184)]=async(_0x358c4d={},_0x37d631,{exitOnError:_0x25c141=!0x0,iconFile:_0x556e11=null}={})=>{const _0x5cf00f=_0x3f729c;if(_0x358c4d[_0x5cf00f(0x167)]&&_0x5cf00f(0x152)===_0x358c4d[_0x5cf00f(0x181)]){await f(_0x358c4d,_0x37d631);return;}let _0x3d2aa3=_0x358c4d[_0x5cf00f(0x143)]||process['cwd'](),_0x196bea=_0x3d2aa3===process[_0x5cf00f(0x143)]();function _0x5dad30(_0x3cd6ad){const _0x2220e1=_0x5cf00f;d[_0x2220e1(0x15e)](_0x3cd6ad[_0x2220e1(0x151)]||_0x3cd6ad),_0x25c141&&process['exit'](0x1);}_0x37d631||(_0x37d631={'statusStart'(){},'statusDone'(){},'statusError'(){},'text'(){},'error'(){}}),_0x37d631[_0x5cf00f(0x18e)](_0x5cf00f(0x194));let _0x3f9fb0=c(_0x358c4d);if(i[_0x5cf00f(0x179)](t[_0x5cf00f(0x188)](_0x3d2aa3,m[_0x5cf00f(0x15d)][_0x5cf00f(0x183)]),_0x3f9fb0['content']),_0x37d631['statusDone'](_0x5cf00f(0x194)),!_0x358c4d[_0x5cf00f(0x167)]){let _0x9ae5c0=a(['r'])[_0x5cf00f(0x197)](_0x248905=>_0x248905[_0x5cf00f(0x158)]+_0x5cf00f(0x153)+_0x248905[_0x5cf00f(0x159)]+_0x5cf00f(0x156)+_0x248905[_0x5cf00f(0x176)]);_0x37d631['text'](_0x9ae5c0[_0x5cf00f(0x188)]('\x0a')),process[_0x5cf00f(0x171)](0x0);}_0x37d631[_0x5cf00f(0x18e)](_0x5cf00f(0x190));let _0x36a667=s(_0x358c4d);i['writeFileSync'](t[_0x5cf00f(0x188)](_0x3d2aa3,_0x5cf00f(0x150)),_0x36a667['content']),i['writeFileSync'](t['join'](_0x3d2aa3,m[_0x5cf00f(0x15d)]['zmpConfig']),JSON[_0x5cf00f(0x18c)](_0x358c4d,'',0x2)),_0x37d631[_0x5cf00f(0x187)](_0x5cf00f(0x190)),_0x37d631['statusStart']('Creating\x20required\x20folders\x20structure');try{l(_0x358c4d);}catch(_0x1d6f68){_0x37d631[_0x5cf00f(0x17e)]('Error\x20creating\x20required\x20folders\x20structure'),_0x5dad30(_0x1d6f68);}_0x37d631['statusDone'](_0x5cf00f(0x192)),_0x37d631[_0x5cf00f(0x18e)]('Installing\x20NPM\x20Dependencies\x20'+j);try{_0x196bea?await e['promise'](_0x5cf00f(0x196)+_0x36a667[_0x5cf00f(0x155)][_0x5cf00f(0x188)]('\x20')+_0x5cf00f(0x172),!0x0):await e['promise'](_0x5cf00f(0x162)+_0x3d2aa3[_0x5cf00f(0x18a)](/ /g,'\x5c\x20')+_0x5cf00f(0x15b)+_0x36a667['dependencies'][_0x5cf00f(0x188)]('\x20')+_0x5cf00f(0x172),!0x0);}catch(_0xbbca43){_0x37d631[_0x5cf00f(0x17e)](_0x5cf00f(0x175)),_0x5dad30(_0xbbca43);return;}_0x37d631[_0x5cf00f(0x187)]('Installing\x20NPM\x20Dependencies'),_0x37d631[_0x5cf00f(0x18e)]('Installing\x20NPM\x20Dev\x20Dependencies\x20'+j);try{_0x196bea?await e[_0x5cf00f(0x174)](_0x5cf00f(0x196)+_0x36a667['devDependencies'][_0x5cf00f(0x188)]('\x20')+_0x5cf00f(0x195),!0x0):await e[_0x5cf00f(0x174)](_0x5cf00f(0x162)+_0x3d2aa3[_0x5cf00f(0x18a)](/ /g,'\x5c\x20')+_0x5cf00f(0x15b)+_0x36a667['devDependencies']['join']('\x20')+_0x5cf00f(0x195),!0x0);}catch(_0x2b813d){_0x37d631['statusError'](_0x5cf00f(0x17f)),_0x5dad30(_0x2b813d);return;}if(_0x37d631['statusDone']('Installing\x20NPM\x20Dev\x20Dependencies'),_0x36a667['postInstall']&&_0x36a667[_0x5cf00f(0x182)][_0x5cf00f(0x14b)]){_0x37d631[_0x5cf00f(0x18e)](_0x5cf00f(0x161));try{_0x196bea?await e[_0x5cf00f(0x174)](_0x5cf00f(0x177),!0x0):await e['promise'](_0x5cf00f(0x162)+_0x3d2aa3['replace'](/ /g,'\x5c\x20')+_0x5cf00f(0x145),!0x0);}catch(_0x216f58){_0x37d631[_0x5cf00f(0x17e)]('Error\x20executing\x20NPM\x20Scripts'),_0x5dad30(_0x216f58);return;}_0x37d631[_0x5cf00f(0x187)](_0x5cf00f(0x161));}_0x37d631['statusStart'](_0x5cf00f(0x15f));let _0x49dbbb=u(_0x358c4d,_0x556e11);try{await Promise['all'](_0x49dbbb['map'](_0x3fd442=>_0x3fd442[_0x5cf00f(0x14c)]?i[_0x5cf00f(0x144)](_0x3fd442['from'],_0x3fd442['to']):_0x3fd442['content']?i[_0x5cf00f(0x17c)](_0x3fd442['to'],_0x3fd442[_0x5cf00f(0x14f)]):Promise[_0x5cf00f(0x154)]()));}catch(_0x5b5527){_0x37d631[_0x5cf00f(0x17e)](_0x5cf00f(0x17a)),_0x5dad30(_0x5b5527);return;}let _0x1b9212=p(_0x358c4d);try{i[_0x5cf00f(0x179)](t[_0x5cf00f(0x188)](_0x3d2aa3,_0x5cf00f(0x18f)),_0x1b9212);}catch(_0x197fdd){_0x37d631['statusError'](_0x5cf00f(0x17a)),_0x5dad30(_0x197fdd);return;}let _0x2a390c=g(_0x358c4d);try{i[_0x5cf00f(0x179)](t['join'](_0x3d2aa3,_0x5cf00f(0x169)),_0x2a390c);}catch(_0x3562e3){_0x37d631['statusError'](_0x5cf00f(0x17a)),_0x5dad30(_0x3562e3);return;}_0x37d631[_0x5cf00f(0x187)](_0x5cf00f(0x15f));let _0x3315d6=a(['s','r'])[_0x5cf00f(0x197)](_0x9a7671=>'-\x20'+_0x9a7671[_0x5cf00f(0x158)]+_0x5cf00f(0x153)+_0x9a7671[_0x5cf00f(0x159)]+_0x5cf00f(0x156)+_0x9a7671[_0x5cf00f(0x176)]);_0x358c4d[_0x5cf00f(0x189)]&&(_0x3315d6=[..._0x3315d6,...o(['t'])[_0x5cf00f(0x197)](_0xd61556=>'-\x20'+_0xd61556[_0x5cf00f(0x158)]+_0x5cf00f(0x153)+_0xd61556[_0x5cf00f(0x159)]+_0x5cf00f(0x156)+_0xd61556[_0x5cf00f(0x176)])]);let _0x3f111f='\x0a'+r[_0x5cf00f(0x18d)](n[_0x5cf00f(0x18b)])+'\x20'+r[_0x5cf00f(0x18d)](_0x5cf00f(0x142))+'\x20💪\x0a\x0a'+r[_0x5cf00f(0x18d)](n['info'])+'\x20'+r[_0x5cf00f(0x18d)](_0x5cf00f(0x180))+'\x0a\x20\x20'+_0x3315d6[_0x5cf00f(0x188)](_0x5cf00f(0x160))+_0x5cf00f(0x185)+r[_0x5cf00f(0x18d)](_0x5cf00f(0x164))+_0x5cf00f(0x178)+r['bold'](_0x5cf00f(0x18f))+_0x5cf00f(0x168);_0x37d631[_0x5cf00f(0x16d)](_0x3f111f);};
|