@raisenow/tamaro-cli 1.5.0 → 1.6.0-dev.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.history/.eslintignore_20220609190420 +4 -0
- package/.history/.eslintignore_20230911190227 +6 -0
- package/.history/.eslintignore_20230911211247 +7 -0
- package/.history/.eslintignore_20230911211250 +7 -0
- package/.history/.eslintrc_20230911201601.js +49 -0
- package/.history/.eslintrc_20230911201643.js +49 -0
- package/.history/.eslintrc_20230911201735.js +49 -0
- package/.history/.eslintrc_20230911201913.js +64 -0
- package/.history/.eslintrc_20230911202002.js +62 -0
- package/.history/.eslintrc_20230911202138.js +133 -0
- package/.history/.eslintrc_20230911202140.js +133 -0
- package/.history/.eslintrc_20230911202145.js +133 -0
- package/.history/.eslintrc_20230911202147.js +133 -0
- package/.history/.eslintrc_20230911202406.js +133 -0
- package/.history/.eslintrc_20230911202447.js +133 -0
- package/.history/.eslintrc_20230911202453.js +133 -0
- package/.history/.eslintrc_20230911202511.js +133 -0
- package/.history/.eslintrc_20230911202527.js +133 -0
- package/.history/.eslintrc_20230911202639.js +125 -0
- package/.history/.eslintrc_20230911202721.js +149 -0
- package/.history/.eslintrc_20230911202746.js +149 -0
- package/.history/.eslintrc_20240423125702.cjs +148 -0
- package/.history/.gitignore_20220609190420 +14 -0
- package/.history/.gitignore_20230911185959 +4 -0
- package/.history/.gitignore_20230911190006 +4 -0
- package/.history/.gitignore_20230911190007 +4 -0
- package/.history/.nmprc_20241004144025 +0 -0
- package/.history/.nmprc_20241004144041 +1 -0
- package/.history/.npmrc_20241004144040 +1 -0
- package/.history/.npmrc_20241004144152 +1 -0
- package/.history/.npmrc_20241004145639 +2 -0
- package/.history/.npmrc_20241004145649 +1 -0
- package/.history/.nvmrc_20250729181039 +1 -0
- package/.history/.prettierignore_20220609190420 +5 -0
- package/.history/.prettierignore_20230911190242 +7 -0
- package/.history/.prettierignore_20230911190245 +7 -0
- package/.history/.prettierignore_20230911211301 +8 -0
- package/.history/CHANGELOG_20250729195139.md +28 -0
- package/.history/CHANGELOG_20250729195148.md +29 -0
- package/.history/CHANGELOG_20250729195156.md +28 -0
- package/.history/CHANGELOG_20250729195218.md +29 -0
- package/.history/CHANGELOG_20250729195223.md +27 -0
- package/.history/CHANGELOG_20250729195506.md +29 -0
- package/.history/CHANGELOG_20250729224404.md +30 -0
- package/.history/CHANGELOG_20250729224411.md +30 -0
- package/.history/CHANGELOG_20250730124538.md +41 -0
- package/.history/CHANGELOG_20250730124603.md +38 -0
- package/.history/CHANGELOG_20250730124627.md +36 -0
- package/.history/CHANGELOG_20250730124638.md +36 -0
- package/.history/CHANGELOG_20250730124640.md +36 -0
- package/.history/README_20230911145033.md +245 -0
- package/.history/README_20230911151749.md +245 -0
- package/.history/README_20230911151844.md +245 -0
- package/.history/README_20230911153040.md +245 -0
- package/.history/README_20230911202959.md +245 -0
- package/.history/bitbucket-pipelines_20250729111540.yml +46 -0
- package/.history/bitbucket-pipelines_20250729210338.yml +46 -0
- package/.history/bitbucket-pipelines_20250729210340.yml +46 -0
- package/.history/bitbucket-pipelines_20250729210342.yml +46 -0
- package/.history/bitbucket-pipelines_20250729222234.yml +47 -0
- package/.history/bitbucket-pipelines_20250729222554.yml +47 -0
- package/.history/bitbucket-pipelines_20250729222555.yml +47 -0
- package/.history/bitbucket-pipelines_20250729223022.yml +46 -0
- package/.history/bitbucket-pipelines_20250729223024.yml +46 -0
- package/.history/cli_20241005014539 +3 -0
- package/.history/cli_20241005014542 +3 -0
- package/.history/cli_20241005014848 +3 -0
- package/.history/dist/chunk-FICM3HUI_20230912183408.js +302 -0
- package/{dist/chunk-HGPQTHLY.js → .history/dist/chunk-FICM3HUI_20230912201610.js} +31 -50
- package/.history/package_20250729182417.json +111 -0
- package/.history/package_20250729182419.json +111 -0
- package/.history/package_20250729182618.json +110 -0
- package/.history/package_20250729182834.json +110 -0
- package/.history/package_20250729183032.json +110 -0
- package/.history/package_20250729183033.json +110 -0
- package/.history/package_20250729185750.json +110 -0
- package/.history/package_20250729185815.json +110 -0
- package/.history/package_20250729185846.json +110 -0
- package/.history/package_20250729185854.json +110 -0
- package/.history/package_20250729185943.json +110 -0
- package/.history/package_20250729190645.json +110 -0
- package/.history/package_20250729195934.json +110 -0
- package/.history/package_20250729200013.json +110 -0
- package/.history/package_20250729200056.json +110 -0
- package/.history/package_20250729200434.json +110 -0
- package/.history/package_20250729200808.json +110 -0
- package/.history/package_20250729200944.json +110 -0
- package/.history/package_20250729214420.json +114 -0
- package/.history/package_20250729223112.json +110 -0
- package/.history/package_20250729223127.json +110 -0
- package/.history/package_20250729223134.json +110 -0
- package/.history/package_20250730124647.json +114 -0
- package/.history/tsconfig_20241005001442.json +34 -0
- package/.history/tsconfig_20241005001500.json +34 -0
- package/.history/tsconfig_20241005001540.json +34 -0
- package/.history/tsconfig_20241005014429.json +42 -0
- package/.history/tsconfig_20241005014436.json +42 -0
- package/.history/tsconfig_20241005014439.json +38 -0
- package/.history/tsconfig_20241005014455.json +38 -0
- package/.history/tsconfig_20241005014521.json +38 -0
- package/.history/vitest.config_20250729214539.ts +0 -0
- package/.history/vitest.config_20250729214659.ts +24 -0
- package/.history/vitest.config_20250729214748.ts +21 -0
- package/.history/vitest.config_20250729214825.ts +21 -0
- package/.history/vitest.config_20250729214902.ts +21 -0
- package/.history/vitest.config_20250729222125.ts +20 -0
- package/.history/vitest.config_20250729222213.ts +20 -0
- package/.idea/codeStyles/Project.xml +131 -0
- package/.idea/codeStyles/codeStyleConfig.xml +5 -0
- package/.idea/inspectionProfiles/Project_Default.xml +6 -0
- package/.idea/misc.xml +17 -0
- package/.idea/modules.xml +8 -0
- package/.idea/prettier.xml +6 -0
- package/.idea/tamaro-cli.iml +12 -0
- package/.idea/vcs.xml +6 -0
- package/.nvmrc +1 -1
- package/bitbucket-pipelines.yml +1 -1
- package/dist/cli.js +559 -845
- package/dist/env-Cpc7KHou.js +245 -0
- package/dist/webpack.config.js +310 -441
- package/package.json +37 -41
- package/pnpm-workspace.yaml +4 -0
- package/tsdown.config.ts +11 -0
|
@@ -0,0 +1,302 @@
|
|
|
1
|
+
// node_modules/.pnpm/tsup@7.2.0_postcss@8.4.29_typescript@5.2.2/node_modules/tsup/assets/esm_shims.js
|
|
2
|
+
import { fileURLToPath } from "url";
|
|
3
|
+
import path from "path";
|
|
4
|
+
var getFilename = () => fileURLToPath(import.meta.url);
|
|
5
|
+
var getDirname = () => path.dirname(getFilename());
|
|
6
|
+
var __dirname = /* @__PURE__ */ getDirname();
|
|
7
|
+
|
|
8
|
+
// src/lib/logging.ts
|
|
9
|
+
import chalk from "chalk";
|
|
10
|
+
import columnify from "columnify";
|
|
11
|
+
import stripIndent from "strip-indent";
|
|
12
|
+
var logTitle = (title) => {
|
|
13
|
+
console.log(`${chalk.bold(title)}`);
|
|
14
|
+
};
|
|
15
|
+
var logError = (message) => {
|
|
16
|
+
if (message) {
|
|
17
|
+
console.log(chalk.red(message));
|
|
18
|
+
}
|
|
19
|
+
};
|
|
20
|
+
var logCommand = (cmd) => {
|
|
21
|
+
console.log(`
|
|
22
|
+
${chalk.dim(stripIndent(cmd).trim())}
|
|
23
|
+
`);
|
|
24
|
+
};
|
|
25
|
+
var logDataTable = (data) => {
|
|
26
|
+
console.log(columnify(data, { showHeaders: false }));
|
|
27
|
+
console.log("");
|
|
28
|
+
};
|
|
29
|
+
|
|
30
|
+
// src/lib/constants.ts
|
|
31
|
+
var DEFAULT_TAG = "latest";
|
|
32
|
+
var DEFAULT_PORT = 1234;
|
|
33
|
+
var AWS_S3_EMAIL_CONFIG_PROD_BUCKET = "rnw-email-service";
|
|
34
|
+
var AWS_S3_EMAIL_CONFIG_STAGE_BUCKET = "rnw-stage-email-service";
|
|
35
|
+
var AWS_S3_BUCKET = "tamaro.raisenow.com";
|
|
36
|
+
var CORE_CONFIG_NAME = "tamaro-core";
|
|
37
|
+
var AWS_CLOUDFRONT_DISTRIBUTION_ID = "EHJ1OM458YQ0I";
|
|
38
|
+
var HTTPS_CRT_FILE = "localhost.crt";
|
|
39
|
+
var HTTPS_KEY_FILE = "localhost.key";
|
|
40
|
+
|
|
41
|
+
// src/lib/resolve.ts
|
|
42
|
+
import { existsSync, realpathSync } from "fs";
|
|
43
|
+
import { createRequire } from "module";
|
|
44
|
+
import { basename, dirname, join, relative, resolve } from "path";
|
|
45
|
+
import chalk2 from "chalk";
|
|
46
|
+
import stripIndent2 from "strip-indent";
|
|
47
|
+
import { getIfUtils } from "webpack-config-utils";
|
|
48
|
+
var require2 = createRequire(import.meta.url);
|
|
49
|
+
var moduleFileExtensions = ["ts", "tsx", "js", "jsx"];
|
|
50
|
+
var extensions = moduleFileExtensions.map((v) => `.${v}`);
|
|
51
|
+
var TAMARO_CORE_PACKAGE_NAMES = ["@raisenow/tamaro-core"];
|
|
52
|
+
var TAMARO_CONFIGURATIONS_PACKAGE_NAMES = ["@raisenow/tamaro-configurations"];
|
|
53
|
+
var TAMARO_SELF_SERVICE_PACKAGE_NAMES = ["@raisenow/tamaro-self-service"];
|
|
54
|
+
var resolveApp = (relativePath) => resolve(realpathSync(process.cwd()), relativePath);
|
|
55
|
+
var resolveOwn = (relativePath) => resolve(__dirname, "..", relativePath);
|
|
56
|
+
var resolveModule = (resolveFn, filePath) => {
|
|
57
|
+
const extension = moduleFileExtensions.find(
|
|
58
|
+
(extension2) => existsSync(resolveFn(`${filePath}.${extension2}`))
|
|
59
|
+
);
|
|
60
|
+
if (extension) {
|
|
61
|
+
return resolveFn(`${filePath}.${extension}`);
|
|
62
|
+
}
|
|
63
|
+
return resolveFn(`${filePath}.js`);
|
|
64
|
+
};
|
|
65
|
+
var resolveBin = (name) => {
|
|
66
|
+
const pkgPath = require2.resolve(`${name}/package.json`);
|
|
67
|
+
const { bin } = require2(pkgPath);
|
|
68
|
+
const dir = dirname(pkgPath);
|
|
69
|
+
const binPath = typeof bin === "object" ? bin[name] : bin;
|
|
70
|
+
return join(dir, binPath);
|
|
71
|
+
};
|
|
72
|
+
var getWidgetUuid = () => basename(resolveApp("."));
|
|
73
|
+
var getPaths = (ifCore) => {
|
|
74
|
+
return ifCore(
|
|
75
|
+
{
|
|
76
|
+
root: resolveApp("."),
|
|
77
|
+
app: resolveApp("."),
|
|
78
|
+
appEntry: resolveModule(resolveApp, "src/index"),
|
|
79
|
+
appDist: resolveApp("dist"),
|
|
80
|
+
appNodeModules: resolveApp("node_modules"),
|
|
81
|
+
appTsConfig: resolveApp("tsconfig.json"),
|
|
82
|
+
appHtml: resolveApp("src/*.html"),
|
|
83
|
+
appEnv: resolveApp(".env*"),
|
|
84
|
+
appTailwindConfig: resolveApp("tailwind.config.js")
|
|
85
|
+
},
|
|
86
|
+
{
|
|
87
|
+
root: resolveApp("../.."),
|
|
88
|
+
app: resolveApp("."),
|
|
89
|
+
appEntry: resolveModule(resolveApp, "widget"),
|
|
90
|
+
appDist: resolveApp(`../../dist/${getWidgetUuid()}`),
|
|
91
|
+
appNodeModules: resolveApp("../../node_modules"),
|
|
92
|
+
appTsConfig: resolveApp("tsconfig.json"),
|
|
93
|
+
appHtml: resolveApp("*.html"),
|
|
94
|
+
appEnv: resolveApp(".env*"),
|
|
95
|
+
appTailwindConfig: void 0
|
|
96
|
+
}
|
|
97
|
+
);
|
|
98
|
+
};
|
|
99
|
+
var getRelativePaths = (paths) => {
|
|
100
|
+
const relativePaths = {};
|
|
101
|
+
for (const [type, absPath] of Object.entries(paths)) {
|
|
102
|
+
if (absPath) {
|
|
103
|
+
relativePaths[type] = relative("./", absPath) || ".";
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
return relativePaths;
|
|
107
|
+
};
|
|
108
|
+
var getIfCoreFns = () => {
|
|
109
|
+
const corePkgPath = resolveApp("package.json");
|
|
110
|
+
const configsPkgPath = resolveApp("../../package.json");
|
|
111
|
+
let packageName;
|
|
112
|
+
if (existsSync(corePkgPath)) {
|
|
113
|
+
packageName = require2(corePkgPath).name;
|
|
114
|
+
} else if (existsSync(configsPkgPath)) {
|
|
115
|
+
packageName = require2(configsPkgPath).name;
|
|
116
|
+
}
|
|
117
|
+
if (packageName) {
|
|
118
|
+
return getIfUtils({ core: TAMARO_CORE_PACKAGE_NAMES.includes(packageName) }, [
|
|
119
|
+
"core"
|
|
120
|
+
]);
|
|
121
|
+
}
|
|
122
|
+
logError(
|
|
123
|
+
stripIndent2(` You must run "npx @raisenow/tamaro-cli" commands from:
|
|
124
|
+
1. Root of "${chalk2.bold(TAMARO_CORE_PACKAGE_NAMES[0])}" package folder.
|
|
125
|
+
2. Root of particular customer configuration folder of "${chalk2.bold(
|
|
126
|
+
TAMARO_CONFIGURATIONS_PACKAGE_NAMES[0]
|
|
127
|
+
)}" package.
|
|
128
|
+
3. "src/self-service" folder of "${chalk2.bold(
|
|
129
|
+
TAMARO_SELF_SERVICE_PACKAGE_NAMES[0]
|
|
130
|
+
)}" package.
|
|
131
|
+
You are currently in "${chalk2.bold(realpathSync(process.cwd()))}".
|
|
132
|
+
`)
|
|
133
|
+
);
|
|
134
|
+
process.exit(1);
|
|
135
|
+
};
|
|
136
|
+
|
|
137
|
+
// src/lib/env.ts
|
|
138
|
+
import { createRequire as createRequire2 } from "module";
|
|
139
|
+
import { basename as basename2 } from "path";
|
|
140
|
+
import { config as dotenvConfig } from "dotenv";
|
|
141
|
+
import { expand as dotenvExpand } from "dotenv-expand";
|
|
142
|
+
import { globSync } from "glob";
|
|
143
|
+
import stripIndent3 from "strip-indent";
|
|
144
|
+
|
|
145
|
+
// src/lib/command.ts
|
|
146
|
+
import {
|
|
147
|
+
execaCommandSync
|
|
148
|
+
} from "execa";
|
|
149
|
+
var halt = (message, exitCode = 1) => {
|
|
150
|
+
logError(message);
|
|
151
|
+
process.exit(exitCode);
|
|
152
|
+
};
|
|
153
|
+
var prepareCommand = (cmd) => {
|
|
154
|
+
return cmd.replace(/\n/gm, " ").replace(/[ \t]{2,}/gm, " ").trim();
|
|
155
|
+
};
|
|
156
|
+
var runCommandSync = (cmd, options) => {
|
|
157
|
+
return execaCommandSync(prepareCommand(cmd), options);
|
|
158
|
+
};
|
|
159
|
+
|
|
160
|
+
// src/lib/env.ts
|
|
161
|
+
var require3 = createRequire2(import.meta.url);
|
|
162
|
+
var getEnvVars = (files, ifMin, ifCore, ifLocalCore, ifHttps) => {
|
|
163
|
+
const filePath = files.find((file) => basename2(file) === ".env");
|
|
164
|
+
if (filePath) {
|
|
165
|
+
dotenvExpand(dotenvConfig({ path: filePath }));
|
|
166
|
+
}
|
|
167
|
+
process.env.NODE_ENV ??= ifMin("production", "development");
|
|
168
|
+
process.env.BABEL_ENV ??= ifMin("production", "development");
|
|
169
|
+
process.env.EXPOSE_VAR ??= ifCore("rnw.tamaroCore", "rnw.tamaro");
|
|
170
|
+
process.env.ELEMENT_ATTRIBUTE_DATA_WIDGET ??= ifCore(
|
|
171
|
+
"rnw-tamaro-core",
|
|
172
|
+
"rnw-tamaro"
|
|
173
|
+
);
|
|
174
|
+
process.env.WEBPACK_UNIQUE_NAME ??= ifCore("RnwTamaroCore", "RnwTamaro");
|
|
175
|
+
process.env.BUILD_DATE = (/* @__PURE__ */ new Date()).toISOString();
|
|
176
|
+
process.env.PUBLIC_URL ??= "";
|
|
177
|
+
process.env.HMR_ENABLED ??= ifMin("false", "true");
|
|
178
|
+
if (ifCore()) {
|
|
179
|
+
process.env.PRODUCT_NAME = "tamaro";
|
|
180
|
+
const corePkgPath = resolveApp("package.json");
|
|
181
|
+
const { version } = require3(corePkgPath);
|
|
182
|
+
process.env.PRODUCT_VERSION = version;
|
|
183
|
+
}
|
|
184
|
+
if (!ifCore()) {
|
|
185
|
+
process.env.WIDGET_UUID = getWidgetUuid();
|
|
186
|
+
if (ifLocalCore()) {
|
|
187
|
+
const protocol = ifHttps() ? "https" : "http";
|
|
188
|
+
process.env.CORE_URL = `${protocol}://0.0.0.0:1234/index.js`;
|
|
189
|
+
} else {
|
|
190
|
+
let version = process.env.CORE_VERSION;
|
|
191
|
+
version = version ? `@${version}` : "";
|
|
192
|
+
process.env.CORE_URL ??= `https://cdn.jsdelivr.net/npm/@raisenow/tamaro-core${version}/dist/index.js`;
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
const varNames = [
|
|
196
|
+
// common
|
|
197
|
+
"NODE_ENV",
|
|
198
|
+
"BABEL_ENV",
|
|
199
|
+
"EXPOSE_VAR",
|
|
200
|
+
"ELEMENT_ATTRIBUTE_DATA_WIDGET",
|
|
201
|
+
"WEBPACK_UNIQUE_NAME",
|
|
202
|
+
"BUILD_DATE",
|
|
203
|
+
"PUBLIC_URL",
|
|
204
|
+
// core
|
|
205
|
+
"PRODUCT_NAME",
|
|
206
|
+
"PRODUCT_VERSION",
|
|
207
|
+
// config
|
|
208
|
+
"WIDGET_UUID",
|
|
209
|
+
"CORE_URL",
|
|
210
|
+
"CORE_VERSION",
|
|
211
|
+
// should be explicitly specified in each config
|
|
212
|
+
// epik (obsolete since Tamaro v2.5.0)
|
|
213
|
+
"EPP_API_KEY_DEFAULT",
|
|
214
|
+
"EPP_API_URL_STAGE",
|
|
215
|
+
"EPP_API_URL_PROD",
|
|
216
|
+
"EPMS_API_URL_STAGE",
|
|
217
|
+
"EPMS_API_URL_PROD",
|
|
218
|
+
"EPP_PROXY_URL_STAGE",
|
|
219
|
+
"EPP_PROXY_URL_PROD",
|
|
220
|
+
"EPMS_PROXY_URL_STAGE",
|
|
221
|
+
"EPMS_PROXY_URL_PROD",
|
|
222
|
+
"EPMS_TWINT_CHECKOUT_URL_STAGE",
|
|
223
|
+
"EPMS_TWINT_CHECKOUT_URL_PROD"
|
|
224
|
+
];
|
|
225
|
+
const raw = Object.keys(process.env).filter((key) => key.startsWith("PUBLIC_") || varNames.includes(key)).reduce((env, key) => {
|
|
226
|
+
env[key] = process.env[key];
|
|
227
|
+
return env;
|
|
228
|
+
}, {});
|
|
229
|
+
const stringified = {
|
|
230
|
+
"process.env": Object.keys(raw).reduce((env, key) => {
|
|
231
|
+
env[key] = JSON.stringify(raw[key]);
|
|
232
|
+
return env;
|
|
233
|
+
}, {})
|
|
234
|
+
};
|
|
235
|
+
return { raw, stringified };
|
|
236
|
+
};
|
|
237
|
+
var assertEnvValid = (env) => {
|
|
238
|
+
const { ifCore } = getIfCoreFns();
|
|
239
|
+
const paths = getPaths(ifCore);
|
|
240
|
+
const files = globSync(paths.appEnv);
|
|
241
|
+
const envs = files.map((file) => basename2(file).replace(/^\.env\./, "")).map((file) => basename2(file).replace(/^\.env$/, "")).filter((v) => !!v);
|
|
242
|
+
if (envs.length === 0) {
|
|
243
|
+
if (env) {
|
|
244
|
+
console.log('Flag "--env" is ignored.');
|
|
245
|
+
}
|
|
246
|
+
}
|
|
247
|
+
if (envs.length !== 0) {
|
|
248
|
+
if (!env) {
|
|
249
|
+
halt('Flag "--env" is required.');
|
|
250
|
+
}
|
|
251
|
+
if (env && !envs.includes(env)) {
|
|
252
|
+
halt(
|
|
253
|
+
stripIndent3(`
|
|
254
|
+
Flag "--env" has wrong value.
|
|
255
|
+
Available values are: ${envs.map((v) => `"${v}"`).join(", ")}.
|
|
256
|
+
`)
|
|
257
|
+
);
|
|
258
|
+
}
|
|
259
|
+
}
|
|
260
|
+
};
|
|
261
|
+
var applyEnv = (env) => {
|
|
262
|
+
if (!env) {
|
|
263
|
+
return;
|
|
264
|
+
}
|
|
265
|
+
const { ifCore } = getIfCoreFns();
|
|
266
|
+
const paths = getPaths(ifCore);
|
|
267
|
+
const files = globSync(paths.appEnv);
|
|
268
|
+
const filePath = files.find((file) => basename2(file) === `.env.${env}`);
|
|
269
|
+
if (filePath) {
|
|
270
|
+
dotenvExpand(dotenvConfig({ path: filePath }));
|
|
271
|
+
}
|
|
272
|
+
};
|
|
273
|
+
|
|
274
|
+
export {
|
|
275
|
+
logTitle,
|
|
276
|
+
logError,
|
|
277
|
+
logCommand,
|
|
278
|
+
logDataTable,
|
|
279
|
+
halt,
|
|
280
|
+
runCommandSync,
|
|
281
|
+
DEFAULT_TAG,
|
|
282
|
+
DEFAULT_PORT,
|
|
283
|
+
AWS_S3_EMAIL_CONFIG_PROD_BUCKET,
|
|
284
|
+
AWS_S3_EMAIL_CONFIG_STAGE_BUCKET,
|
|
285
|
+
AWS_S3_BUCKET,
|
|
286
|
+
CORE_CONFIG_NAME,
|
|
287
|
+
AWS_CLOUDFRONT_DISTRIBUTION_ID,
|
|
288
|
+
HTTPS_CRT_FILE,
|
|
289
|
+
HTTPS_KEY_FILE,
|
|
290
|
+
moduleFileExtensions,
|
|
291
|
+
extensions,
|
|
292
|
+
resolveApp,
|
|
293
|
+
resolveOwn,
|
|
294
|
+
resolveBin,
|
|
295
|
+
getWidgetUuid,
|
|
296
|
+
getPaths,
|
|
297
|
+
getRelativePaths,
|
|
298
|
+
getIfCoreFns,
|
|
299
|
+
getEnvVars,
|
|
300
|
+
assertEnvValid,
|
|
301
|
+
applyEnv
|
|
302
|
+
};
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
// node_modules/.pnpm/tsup@
|
|
2
|
-
import path from "path";
|
|
1
|
+
// node_modules/.pnpm/tsup@7.2.0_postcss@8.4.29_typescript@5.2.2/node_modules/tsup/assets/esm_shims.js
|
|
3
2
|
import { fileURLToPath } from "url";
|
|
3
|
+
import path from "path";
|
|
4
4
|
var getFilename = () => fileURLToPath(import.meta.url);
|
|
5
5
|
var getDirname = () => path.dirname(getFilename());
|
|
6
6
|
var __dirname = /* @__PURE__ */ getDirname();
|
|
@@ -10,7 +10,7 @@ import chalk from "chalk";
|
|
|
10
10
|
import columnify from "columnify";
|
|
11
11
|
import stripIndent from "strip-indent";
|
|
12
12
|
var logTitle = (title) => {
|
|
13
|
-
console.log(chalk.bold(title));
|
|
13
|
+
console.log(`${chalk.bold(title)}`);
|
|
14
14
|
};
|
|
15
15
|
var logError = (message) => {
|
|
16
16
|
if (message) {
|
|
@@ -27,25 +27,12 @@ var logDataTable = (data) => {
|
|
|
27
27
|
console.log("");
|
|
28
28
|
};
|
|
29
29
|
|
|
30
|
-
// src/lib/command.ts
|
|
31
|
-
import { execaCommandSync } from "execa";
|
|
32
|
-
var halt = (message) => {
|
|
33
|
-
logError(message);
|
|
34
|
-
process.exit(1);
|
|
35
|
-
};
|
|
36
|
-
var prepareCommand = (cmd) => {
|
|
37
|
-
return cmd.replace(/\n/gm, " ").replace(/[ \t]{2,}/gm, " ").trim();
|
|
38
|
-
};
|
|
39
|
-
var runCommandSync = (cmd, options) => {
|
|
40
|
-
return execaCommandSync(prepareCommand(cmd), options);
|
|
41
|
-
};
|
|
42
|
-
|
|
43
30
|
// src/lib/constants.ts
|
|
44
31
|
var DEFAULT_TAG = "latest";
|
|
45
32
|
var DEFAULT_PORT = 1234;
|
|
46
|
-
var
|
|
47
|
-
var
|
|
48
|
-
var
|
|
33
|
+
var AWS_S3_EMAIL_CONFIG_PROD_BUCKET = "rnw-email-service";
|
|
34
|
+
var AWS_S3_EMAIL_CONFIG_STAGE_BUCKET = "rnw-stage-email-service";
|
|
35
|
+
var AWS_S3_BUCKET = "tamaro.raisenow.com";
|
|
49
36
|
var CORE_CONFIG_NAME = "tamaro-core";
|
|
50
37
|
var AWS_CLOUDFRONT_DISTRIBUTION_ID = "EHJ1OM458YQ0I";
|
|
51
38
|
var HTTPS_CRT_FILE = "localhost.crt";
|
|
@@ -75,24 +62,6 @@ var resolveModule = (resolveFn, filePath) => {
|
|
|
75
62
|
}
|
|
76
63
|
return resolveFn(`${filePath}.js`);
|
|
77
64
|
};
|
|
78
|
-
var resolveEslintPluginConfig = (paths) => {
|
|
79
|
-
try {
|
|
80
|
-
const opts = { paths: [paths.appNodeModules] };
|
|
81
|
-
const eslintPath = require2.resolve("eslint", opts);
|
|
82
|
-
const pkg = require2(require2.resolve("eslint/package.json", opts));
|
|
83
|
-
const version = pkg.version;
|
|
84
|
-
const configType = version.startsWith("8.") ? "eslintrc" : "flat";
|
|
85
|
-
return {
|
|
86
|
-
extensions: moduleFileExtensions,
|
|
87
|
-
eslintPath,
|
|
88
|
-
cwd: paths.app,
|
|
89
|
-
configType
|
|
90
|
-
};
|
|
91
|
-
} catch (error) {
|
|
92
|
-
console.error(error);
|
|
93
|
-
return void 0;
|
|
94
|
-
}
|
|
95
|
-
};
|
|
96
65
|
var resolveBin = (name) => {
|
|
97
66
|
const pkgPath = require2.resolve(`${name}/package.json`);
|
|
98
67
|
const { bin } = require2(pkgPath);
|
|
@@ -169,13 +138,31 @@ var getIfCoreFns = () => {
|
|
|
169
138
|
import { createRequire as createRequire2 } from "module";
|
|
170
139
|
import { basename as basename2 } from "path";
|
|
171
140
|
import { config as dotenvConfig } from "dotenv";
|
|
141
|
+
import { expand as dotenvExpand } from "dotenv-expand";
|
|
172
142
|
import { globSync } from "glob";
|
|
173
143
|
import stripIndent3 from "strip-indent";
|
|
144
|
+
|
|
145
|
+
// src/lib/command.ts
|
|
146
|
+
import {
|
|
147
|
+
execaCommandSync
|
|
148
|
+
} from "execa";
|
|
149
|
+
var halt = (message, exitCode = 1) => {
|
|
150
|
+
logError(message);
|
|
151
|
+
process.exit(exitCode);
|
|
152
|
+
};
|
|
153
|
+
var prepareCommand = (cmd) => {
|
|
154
|
+
return cmd.replace(/\n/gm, " ").replace(/[ \t]{2,}/gm, " ").trim();
|
|
155
|
+
};
|
|
156
|
+
var runCommandSync = (cmd, options) => {
|
|
157
|
+
return execaCommandSync(prepareCommand(cmd), options);
|
|
158
|
+
};
|
|
159
|
+
|
|
160
|
+
// src/lib/env.ts
|
|
174
161
|
var require3 = createRequire2(import.meta.url);
|
|
175
162
|
var getEnvVars = (files, ifMin, ifCore, ifLocalCore, ifHttps) => {
|
|
176
163
|
const filePath = files.find((file) => basename2(file) === ".env");
|
|
177
164
|
if (filePath) {
|
|
178
|
-
dotenvConfig({ path: filePath });
|
|
165
|
+
dotenvExpand(dotenvConfig({ path: filePath }));
|
|
179
166
|
}
|
|
180
167
|
process.env.NODE_ENV ??= ifMin("production", "development");
|
|
181
168
|
process.env.BABEL_ENV ??= ifMin("production", "development");
|
|
@@ -202,11 +189,7 @@ var getEnvVars = (files, ifMin, ifCore, ifLocalCore, ifHttps) => {
|
|
|
202
189
|
} else {
|
|
203
190
|
let version = process.env.CORE_VERSION;
|
|
204
191
|
version = version ? `@${version}` : "";
|
|
205
|
-
process.env.
|
|
206
|
-
process.env.CORE_URL ??= process.env.CORE_URL_PATTERN.replace(
|
|
207
|
-
"{{version}}",
|
|
208
|
-
version
|
|
209
|
-
);
|
|
192
|
+
process.env.CORE_URL ??= `https://cdn.jsdelivr.net/npm/@raisenow/tamaro-core${version}/dist/index.js`;
|
|
210
193
|
}
|
|
211
194
|
}
|
|
212
195
|
const varNames = [
|
|
@@ -224,10 +207,8 @@ var getEnvVars = (files, ifMin, ifCore, ifLocalCore, ifHttps) => {
|
|
|
224
207
|
// config
|
|
225
208
|
"WIDGET_UUID",
|
|
226
209
|
"CORE_URL",
|
|
227
|
-
"CORE_URL_PATTERN",
|
|
228
210
|
"CORE_VERSION",
|
|
229
211
|
// should be explicitly specified in each config
|
|
230
|
-
"DISABLE_URL_VERSION_OVERRIDE",
|
|
231
212
|
// epik (obsolete since Tamaro v2.5.0)
|
|
232
213
|
"EPP_API_KEY_DEFAULT",
|
|
233
214
|
"EPP_API_URL_STAGE",
|
|
@@ -286,7 +267,7 @@ var applyEnv = (env) => {
|
|
|
286
267
|
const files = globSync(paths.appEnv);
|
|
287
268
|
const filePath = files.find((file) => basename2(file) === `.env.${env}`);
|
|
288
269
|
if (filePath) {
|
|
289
|
-
dotenvConfig({ path: filePath });
|
|
270
|
+
dotenvExpand(dotenvConfig({ path: filePath }));
|
|
290
271
|
}
|
|
291
272
|
};
|
|
292
273
|
|
|
@@ -299,17 +280,17 @@ export {
|
|
|
299
280
|
runCommandSync,
|
|
300
281
|
DEFAULT_TAG,
|
|
301
282
|
DEFAULT_PORT,
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
283
|
+
AWS_S3_EMAIL_CONFIG_PROD_BUCKET,
|
|
284
|
+
AWS_S3_EMAIL_CONFIG_STAGE_BUCKET,
|
|
285
|
+
AWS_S3_BUCKET,
|
|
305
286
|
CORE_CONFIG_NAME,
|
|
306
287
|
AWS_CLOUDFRONT_DISTRIBUTION_ID,
|
|
307
288
|
HTTPS_CRT_FILE,
|
|
308
289
|
HTTPS_KEY_FILE,
|
|
290
|
+
moduleFileExtensions,
|
|
309
291
|
extensions,
|
|
310
292
|
resolveApp,
|
|
311
293
|
resolveOwn,
|
|
312
|
-
resolveEslintPluginConfig,
|
|
313
294
|
resolveBin,
|
|
314
295
|
getWidgetUuid,
|
|
315
296
|
getPaths,
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@raisenow/tamaro-cli",
|
|
3
|
+
"version": "1.2.0",
|
|
4
|
+
"author": {
|
|
5
|
+
"name": "RaiseNow",
|
|
6
|
+
"email": "development@raisenow.com"
|
|
7
|
+
},
|
|
8
|
+
"type": "module",
|
|
9
|
+
"bin": "dist/cli.js",
|
|
10
|
+
"packageManager": "pnpm@9.14.2",
|
|
11
|
+
"engines": {
|
|
12
|
+
"node": ">=20",
|
|
13
|
+
"pnpm": ">= 9.12",
|
|
14
|
+
"npm": "please-use-pnpm",
|
|
15
|
+
"yarn": "please-use-pnpm"
|
|
16
|
+
},
|
|
17
|
+
"scripts": {
|
|
18
|
+
"prepare": "pnpm build",
|
|
19
|
+
"tscheck": "tsc --noEmit",
|
|
20
|
+
"build": "tsup src/cli.ts src/webpack.config.ts --clean --shims --format esm",
|
|
21
|
+
"build:watch": "pnpm build --watch --ignore-watch .history --ignore-watch .idea",
|
|
22
|
+
"readme": "pnpx http-server . --cors -o /readme.html",
|
|
23
|
+
"lint": "DEBUG=eslint:cli-engine eslint .",
|
|
24
|
+
"lint:fix": "DEBUG=eslint:cli-engine eslint --fix .",
|
|
25
|
+
"format": "prettier --write ."
|
|
26
|
+
},
|
|
27
|
+
"dependencies": {
|
|
28
|
+
"@babel/cli": "^7.28.0",
|
|
29
|
+
"@babel/core": "^7.28.0",
|
|
30
|
+
"@babel/plugin-proposal-decorators": "^7.28.0",
|
|
31
|
+
"@babel/plugin-syntax-dynamic-import": "^7.8.3",
|
|
32
|
+
"@babel/plugin-transform-runtime": "^7.28.0",
|
|
33
|
+
"@babel/preset-env": "^7.28.0",
|
|
34
|
+
"@babel/preset-react": "^7.27.1",
|
|
35
|
+
"@babel/preset-typescript": "^7.27.1",
|
|
36
|
+
"@babel/runtime-corejs3": "^7.28.2",
|
|
37
|
+
"@pmmmwh/react-refresh-webpack-plugin": "^0.5.17",
|
|
38
|
+
"@statoscope/webpack-plugin": "^5.29.0",
|
|
39
|
+
"@types/columnify": "^1.5.4",
|
|
40
|
+
"@types/handlebars-helpers": "^0.5.6",
|
|
41
|
+
"@types/lodash": "^4.17.20",
|
|
42
|
+
"@types/node": "^22.17.0",
|
|
43
|
+
"@types/node-notifier": "^8.0.5",
|
|
44
|
+
"@types/prompts": "^2.4.9",
|
|
45
|
+
"@types/resolve-bin": "^0.4.3",
|
|
46
|
+
"@types/webpack-config-utils": "^2.3.4",
|
|
47
|
+
"@typescript-eslint/eslint-plugin": "^7.18.0",
|
|
48
|
+
"@typescript-eslint/parser": "^7.18.0",
|
|
49
|
+
"autoprefixer": "^10.4.21",
|
|
50
|
+
"babel-loader": "^10.0.0",
|
|
51
|
+
"babel-plugin-istanbul": "^7.0.0",
|
|
52
|
+
"babel-plugin-lodash": "^3.3.4",
|
|
53
|
+
"chalk": "^5.4.1",
|
|
54
|
+
"clean-webpack-plugin": "^4.0.0",
|
|
55
|
+
"columnify": "^1.6.0",
|
|
56
|
+
"commander": "^12.1.0",
|
|
57
|
+
"copy-webpack-plugin": "^12.0.2",
|
|
58
|
+
"core-js": "^3.39.0",
|
|
59
|
+
"css-loader": "^7.1.2",
|
|
60
|
+
"css-minimizer-webpack-plugin": "^7.0.0",
|
|
61
|
+
"dotenv": "^16.4.5",
|
|
62
|
+
"escape-string-regexp": "^5.0.0",
|
|
63
|
+
"eslint": "^8.57.1",
|
|
64
|
+
"eslint-config-prettier": "^9.1.0",
|
|
65
|
+
"eslint-import-resolver-typescript": "^3.6.3",
|
|
66
|
+
"eslint-plugin-deprecation": "^3.0.0",
|
|
67
|
+
"eslint-plugin-import": "^2.31.0",
|
|
68
|
+
"eslint-plugin-markdownlint": "^0.6.0",
|
|
69
|
+
"eslint-plugin-promise": "^7.1.0",
|
|
70
|
+
"eslint-plugin-unused-imports": "^3.2.0",
|
|
71
|
+
"eslint-plugin-yml": "^1.15.0",
|
|
72
|
+
"eslint-webpack-plugin": "^4.2.0",
|
|
73
|
+
"execa": "^9.5.1",
|
|
74
|
+
"file-loader": "^6.2.0",
|
|
75
|
+
"fork-ts-checker-webpack-plugin": "^9.0.2",
|
|
76
|
+
"glob": "^11.0.0",
|
|
77
|
+
"handlebars": "^4.7.8",
|
|
78
|
+
"handlebars-helpers": "^0.10.0",
|
|
79
|
+
"html-loader": "^5.1.0",
|
|
80
|
+
"html-webpack-plugin": "^5.6.3",
|
|
81
|
+
"json-loader": "^0.5.7",
|
|
82
|
+
"lodash": "^4.17.21",
|
|
83
|
+
"mini-css-extract-plugin": "^2.9.2",
|
|
84
|
+
"node-notifier": "^10.0.1",
|
|
85
|
+
"portfinder": "^1.0.32",
|
|
86
|
+
"postcss": "^8.4.49",
|
|
87
|
+
"postcss-custom-properties": "^14.0.4",
|
|
88
|
+
"postcss-import": "^16.1.1",
|
|
89
|
+
"postcss-loader": "^8.1.1",
|
|
90
|
+
"postcss-nested": "^7.0.2",
|
|
91
|
+
"prettier": "^3.3.3",
|
|
92
|
+
"prompts": "^2.4.2",
|
|
93
|
+
"react-refresh": "^0.14.2",
|
|
94
|
+
"resolve-url-loader": "^5.0.0",
|
|
95
|
+
"sass": "^1.81.0",
|
|
96
|
+
"sass-loader": "^16.0.3",
|
|
97
|
+
"source-map-loader": "^5.0.0",
|
|
98
|
+
"strip-indent": "^4.0.0",
|
|
99
|
+
"style-loader": "^4.0.0",
|
|
100
|
+
"tsconfig-paths-webpack-plugin": "^4.2.0",
|
|
101
|
+
"tsup": "^8.3.5",
|
|
102
|
+
"typescript": "^5.7.2",
|
|
103
|
+
"url-loader": "^4.1.1",
|
|
104
|
+
"vitest": "^3.2.4",
|
|
105
|
+
"webpack": "^5.96.1",
|
|
106
|
+
"webpack-cli": "^5.1.4",
|
|
107
|
+
"webpack-config-utils": "^2.3.1",
|
|
108
|
+
"webpack-dev-server": "^5.1.0",
|
|
109
|
+
"yaml-loader": "^0.8.1"
|
|
110
|
+
}
|
|
111
|
+
}
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@raisenow/tamaro-cli",
|
|
3
|
+
"version": "1.2.0",
|
|
4
|
+
"author": {
|
|
5
|
+
"name": "RaiseNow",
|
|
6
|
+
"email": "development@raisenow.com"
|
|
7
|
+
},
|
|
8
|
+
"type": "module",
|
|
9
|
+
"bin": "dist/cli.js",
|
|
10
|
+
"packageManager": "pnpm@9.14.2",
|
|
11
|
+
"engines": {
|
|
12
|
+
"node": ">=20",
|
|
13
|
+
"pnpm": ">= 9.12",
|
|
14
|
+
"npm": "please-use-pnpm",
|
|
15
|
+
"yarn": "please-use-pnpm"
|
|
16
|
+
},
|
|
17
|
+
"scripts": {
|
|
18
|
+
"prepare": "pnpm build",
|
|
19
|
+
"tscheck": "tsc --noEmit",
|
|
20
|
+
"build": "tsup src/cli.ts src/webpack.config.ts --clean --shims --format esm",
|
|
21
|
+
"build:watch": "pnpm build --watch --ignore-watch .history --ignore-watch .idea",
|
|
22
|
+
"readme": "pnpx http-server . --cors -o /readme.html",
|
|
23
|
+
"lint": "DEBUG=eslint:cli-engine eslint .",
|
|
24
|
+
"lint:fix": "DEBUG=eslint:cli-engine eslint --fix .",
|
|
25
|
+
"format": "prettier --write ."
|
|
26
|
+
},
|
|
27
|
+
"dependencies": {
|
|
28
|
+
"@babel/cli": "^7.28.0",
|
|
29
|
+
"@babel/core": "^7.28.0",
|
|
30
|
+
"@babel/plugin-proposal-decorators": "^7.28.0",
|
|
31
|
+
"@babel/plugin-syntax-dynamic-import": "^7.8.3",
|
|
32
|
+
"@babel/plugin-transform-runtime": "^7.28.0",
|
|
33
|
+
"@babel/preset-env": "^7.28.0",
|
|
34
|
+
"@babel/preset-react": "^7.27.1",
|
|
35
|
+
"@babel/preset-typescript": "^7.27.1",
|
|
36
|
+
"@babel/runtime-corejs3": "^7.28.2",
|
|
37
|
+
"@pmmmwh/react-refresh-webpack-plugin": "^0.5.17",
|
|
38
|
+
"@statoscope/webpack-plugin": "^5.29.0",
|
|
39
|
+
"@types/columnify": "^1.5.4",
|
|
40
|
+
"@types/handlebars-helpers": "^0.5.6",
|
|
41
|
+
"@types/lodash": "^4.17.20",
|
|
42
|
+
"@types/node": "^22.17.0",
|
|
43
|
+
"@types/node-notifier": "^8.0.5",
|
|
44
|
+
"@types/prompts": "^2.4.9",
|
|
45
|
+
"@types/resolve-bin": "^0.4.3",
|
|
46
|
+
"@types/webpack-config-utils": "^2.3.4",
|
|
47
|
+
"@typescript-eslint/eslint-plugin": "^7.18.0",
|
|
48
|
+
"@typescript-eslint/parser": "^7.18.0",
|
|
49
|
+
"autoprefixer": "^10.4.21",
|
|
50
|
+
"babel-loader": "^10.0.0",
|
|
51
|
+
"babel-plugin-istanbul": "^7.0.0",
|
|
52
|
+
"babel-plugin-lodash": "^3.3.4",
|
|
53
|
+
"chalk": "^5.4.1",
|
|
54
|
+
"clean-webpack-plugin": "^4.0.0",
|
|
55
|
+
"columnify": "^1.6.0",
|
|
56
|
+
"commander": "^12.1.0",
|
|
57
|
+
"copy-webpack-plugin": "^12.0.2",
|
|
58
|
+
"core-js": "^3.39.0",
|
|
59
|
+
"css-loader": "^7.1.2",
|
|
60
|
+
"css-minimizer-webpack-plugin": "^7.0.0",
|
|
61
|
+
"dotenv": "^16.4.5",
|
|
62
|
+
"escape-string-regexp": "^5.0.0",
|
|
63
|
+
"eslint": "^8.57.1",
|
|
64
|
+
"eslint-config-prettier": "^9.1.0",
|
|
65
|
+
"eslint-import-resolver-typescript": "^3.6.3",
|
|
66
|
+
"eslint-plugin-deprecation": "^3.0.0",
|
|
67
|
+
"eslint-plugin-import": "^2.31.0",
|
|
68
|
+
"eslint-plugin-markdownlint": "^0.6.0",
|
|
69
|
+
"eslint-plugin-promise": "^7.1.0",
|
|
70
|
+
"eslint-plugin-unused-imports": "^3.2.0",
|
|
71
|
+
"eslint-plugin-yml": "^1.15.0",
|
|
72
|
+
"eslint-webpack-plugin": "^4.2.0",
|
|
73
|
+
"execa": "^9.5.1",
|
|
74
|
+
"file-loader": "^6.2.0",
|
|
75
|
+
"fork-ts-checker-webpack-plugin": "^9.0.2",
|
|
76
|
+
"glob": "^11.0.0",
|
|
77
|
+
"handlebars": "^4.7.8",
|
|
78
|
+
"handlebars-helpers": "^0.10.0",
|
|
79
|
+
"html-loader": "^5.1.0",
|
|
80
|
+
"html-webpack-plugin": "^5.6.3",
|
|
81
|
+
"json-loader": "^0.5.7",
|
|
82
|
+
"lodash": "^4.17.21",
|
|
83
|
+
"mini-css-extract-plugin": "^2.9.2",
|
|
84
|
+
"node-notifier": "^10.0.1",
|
|
85
|
+
"portfinder": "^1.0.32",
|
|
86
|
+
"postcss": "^8.4.49",
|
|
87
|
+
"postcss-custom-properties": "^14.0.4",
|
|
88
|
+
"postcss-import": "^16.1.1",
|
|
89
|
+
"postcss-loader": "^8.1.1",
|
|
90
|
+
"postcss-nested": "^7.0.2",
|
|
91
|
+
"prettier": "^3.3.3",
|
|
92
|
+
"prompts": "^2.4.2",
|
|
93
|
+
"react-refresh": "^0.14.2",
|
|
94
|
+
"resolve-url-loader": "^5.0.0",
|
|
95
|
+
"sass": "^1.81.0",
|
|
96
|
+
"sass-loader": "^16.0.3",
|
|
97
|
+
"source-map-loader": "^5.0.0",
|
|
98
|
+
"strip-indent": "^4.0.0",
|
|
99
|
+
"style-loader": "^4.0.0",
|
|
100
|
+
"tsconfig-paths-webpack-plugin": "^4.2.0",
|
|
101
|
+
"tsup": "^8.3.5",
|
|
102
|
+
"typescript": "^5.7.2",
|
|
103
|
+
"url-loader": "^4.1.1",
|
|
104
|
+
"vitest": "^3.2.4",
|
|
105
|
+
"webpack": "^5.96.1",
|
|
106
|
+
"webpack-cli": "^5.1.4",
|
|
107
|
+
"webpack-config-utils": "^2.3.1",
|
|
108
|
+
"webpack-dev-server": "^5.1.0",
|
|
109
|
+
"yaml-loader": "^0.8.1"
|
|
110
|
+
}
|
|
111
|
+
}
|