@sanity/pkg-utils 2.2.16 → 2.3.0

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 (84) hide show
  1. package/README.md +16 -7
  2. package/dist/_chunks/{build-ba8f4eab.cjs → build-0aed2000.cjs} +11 -8
  3. package/dist/_chunks/build-0aed2000.cjs.map +1 -0
  4. package/dist/_chunks/{buildAction-f35f5fe0.cjs → buildAction-196fba7b.cjs} +2 -2
  5. package/dist/_chunks/{buildAction-f35f5fe0.cjs.map → buildAction-196fba7b.cjs.map} +1 -1
  6. package/dist/_chunks/{check-c18ac13f.cjs → check-2deafe2a.cjs} +25 -31
  7. package/dist/_chunks/check-2deafe2a.cjs.map +1 -0
  8. package/dist/_chunks/{checkAction-be47c642.cjs → checkAction-7ac5a05e.cjs} +2 -2
  9. package/dist/_chunks/{checkAction-be47c642.cjs.map → checkAction-7ac5a05e.cjs.map} +1 -1
  10. package/dist/_chunks/{index-b295a336.cjs → index-984e18d1.cjs} +6 -3
  11. package/dist/_chunks/index-984e18d1.cjs.map +1 -0
  12. package/dist/_chunks/init-ab36343b.cjs +469 -0
  13. package/dist/_chunks/init-ab36343b.cjs.map +1 -0
  14. package/dist/_chunks/initAction-d18cf4f2.cjs +16 -0
  15. package/dist/_chunks/initAction-d18cf4f2.cjs.map +1 -0
  16. package/dist/_chunks/logger-c593f06b.cjs +97 -0
  17. package/dist/_chunks/logger-c593f06b.cjs.map +1 -0
  18. package/dist/_chunks/{resolveBuildContext-2239fc5e.cjs → resolveBuildContext-5ef90110.cjs} +13 -92
  19. package/dist/_chunks/resolveBuildContext-5ef90110.cjs.map +1 -0
  20. package/dist/_chunks/{watch-5bfb8b28.cjs → watch-63a93eb0.cjs} +10 -7
  21. package/dist/_chunks/watch-63a93eb0.cjs.map +1 -0
  22. package/dist/_chunks/{watchAction-788563ea.cjs → watchAction-95c0b481.cjs} +2 -2
  23. package/dist/_chunks/{watchAction-788563ea.cjs.map → watchAction-95c0b481.cjs.map} +1 -1
  24. package/dist/cli.cjs +17 -7
  25. package/dist/cli.cjs.map +1 -1
  26. package/dist/index.cjs +12 -7
  27. package/dist/index.cjs.map +1 -1
  28. package/dist/index.d.ts +87 -0
  29. package/dist/index.js +465 -32
  30. package/dist/index.js.map +1 -1
  31. package/package.json +93 -79
  32. package/src/cli/index.ts +12 -3
  33. package/src/cli/initAction.ts +13 -0
  34. package/src/node/build.ts +1 -1
  35. package/src/node/check.ts +4 -2
  36. package/src/node/core/config/findConfigFile.ts +6 -14
  37. package/src/node/core/config/index.ts +1 -1
  38. package/src/node/core/config/loadConfig.ts +2 -1
  39. package/src/node/core/contexts/buildContext.ts +2 -1
  40. package/src/node/core/findCommonPath.test.ts +1 -0
  41. package/src/node/core/index.ts +3 -2
  42. package/src/node/core/pkg/loadPkg.ts +1 -0
  43. package/src/node/core/pkg/loadPkgWithReporting.ts +1 -0
  44. package/src/node/core/pkg/types.ts +13 -0
  45. package/src/node/core/pkg/validatePkg.ts +1 -0
  46. package/src/node/core/template/createFromTemplate.ts +85 -0
  47. package/src/node/core/template/define.ts +6 -0
  48. package/src/node/core/template/index.ts +3 -0
  49. package/src/node/core/template/types.ts +45 -0
  50. package/src/node/fileExists.ts +12 -0
  51. package/src/node/globFiles.ts +1 -1
  52. package/src/node/index.ts +1 -0
  53. package/src/node/init.ts +55 -0
  54. package/src/node/isEmptyDirectory.ts +5 -0
  55. package/src/node/printExtractMessages.ts +2 -1
  56. package/src/node/printPackageTree.ts +4 -13
  57. package/src/node/resolveBuildContext.ts +5 -4
  58. package/src/node/resolveBuildTasks.ts +2 -1
  59. package/src/node/resolveWatchTasks.ts +3 -2
  60. package/src/node/tasks/dts/buildTypes.ts +1 -0
  61. package/src/node/tasks/dts/createApiExtractorConfig.ts +1 -1
  62. package/src/node/tasks/dts/createTSDocConfig.ts +1 -1
  63. package/src/node/tasks/dts/doExtract.ts +2 -1
  64. package/src/node/tasks/dts/dtsTask.ts +1 -0
  65. package/src/node/tasks/dts/dtsWatchTask.ts +1 -0
  66. package/src/node/tasks/dts/extractTypes.ts +4 -3
  67. package/src/node/tasks/dts/getExtractMessagesConfig.ts +2 -1
  68. package/src/node/tasks/dts/printDiagnostic.ts +2 -1
  69. package/src/node/tasks/index.ts +1 -1
  70. package/src/node/tasks/node/reexportCjsTask.ts +3 -2
  71. package/src/node/tasks/rollup/resolveRollupConfig.ts +2 -1
  72. package/src/node/tasks/rollup/rollupTask.ts +2 -1
  73. package/src/node/tasks/rollup/rollupWatchTask.ts +2 -1
  74. package/src/node/tasks/types.ts +2 -1
  75. package/src/node/templates/default/index.ts +1 -0
  76. package/src/node/templates/default/template.ts +553 -0
  77. package/src/node/templates/index.ts +1 -0
  78. package/src/node/watch.ts +2 -1
  79. package/src/node/watchConfigFiles.ts +1 -0
  80. package/dist/_chunks/build-ba8f4eab.cjs.map +0 -1
  81. package/dist/_chunks/check-c18ac13f.cjs.map +0 -1
  82. package/dist/_chunks/index-b295a336.cjs.map +0 -1
  83. package/dist/_chunks/resolveBuildContext-2239fc5e.cjs.map +0 -1
  84. package/dist/_chunks/watch-5bfb8b28.cjs.map +0 -1
@@ -0,0 +1,469 @@
1
+ 'use strict';
2
+
3
+ var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8, _templateObject9, _templateObject10, _templateObject11, _templateObject12;
4
+ function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }
5
+ var fs = require('fs/promises');
6
+ var mkdirp = require('mkdirp');
7
+ var path = require('path');
8
+ var prompts = require('prompts');
9
+ var logger = require('./logger-c593f06b.cjs');
10
+ var getLatestVersion = require('get-latest-version');
11
+ var gitUrlParse = require('git-url-parse');
12
+ var outdent = require('outdent');
13
+ var parseGitConfig = require('parse-git-config');
14
+ var prettier = require('prettier');
15
+ require('esbuild-register/dist/node');
16
+ require('pkg-up');
17
+ require('find-config');
18
+ require('fs');
19
+ require('chalk');
20
+ require('zod');
21
+ require('typescript');
22
+ function _interopDefaultCompat(e) {
23
+ return e && typeof e === 'object' && 'default' in e ? e : {
24
+ default: e
25
+ };
26
+ }
27
+ var prompts__default = /*#__PURE__*/_interopDefaultCompat(prompts);
28
+ var getLatestVersion__default = /*#__PURE__*/_interopDefaultCompat(getLatestVersion);
29
+ var gitUrlParse__default = /*#__PURE__*/_interopDefaultCompat(gitUrlParse);
30
+ var parseGitConfig__default = /*#__PURE__*/_interopDefaultCompat(parseGitConfig);
31
+ var prettier__default = /*#__PURE__*/_interopDefaultCompat(prettier);
32
+ const promptsTypes = {
33
+ string: "text"
34
+ };
35
+ async function createFromTemplate(options) {
36
+ const {
37
+ cwd,
38
+ logger,
39
+ packagePath,
40
+ template: templateOrResolver
41
+ } = options;
42
+ const template = typeof templateOrResolver === "function" ? await templateOrResolver({
43
+ cwd,
44
+ logger,
45
+ packagePath
46
+ }) : templateOrResolver;
47
+ logger.log("create new package at", path.relative(cwd, packagePath));
48
+ const templateOptions = {};
49
+ for (const templateOption of template.options) {
50
+ const templateValidate = templateOption.validate;
51
+ const res = await prompts__default.default({
52
+ type: promptsTypes[templateOption.type],
53
+ name: templateOption.name,
54
+ message: templateOption.description,
55
+ validate: templateValidate ? prev => templateValidate(prev) : void 0,
56
+ initial: typeof templateOption.initial === "function" ? templateOption.initial(templateOptions) : templateOption.initial
57
+ }, {
58
+ onCancel: () => process.exit(0)
59
+ });
60
+ templateOptions[templateOption.name] = templateOption.parse ? templateOption.parse(res[templateOption.name]) : res[templateOption.name];
61
+ }
62
+ const features = {};
63
+ for (const templateFeature of template.features) {
64
+ const res = templateFeature.optional ? await prompts__default.default({
65
+ type: "confirm",
66
+ name: "confirm",
67
+ message: "use ".concat(templateFeature.name, "?"),
68
+ initial: templateFeature.initial
69
+ }, {
70
+ onCancel: () => process.exit(0)
71
+ }) : void 0;
72
+ features[templateFeature.name] = (res == null ? void 0 : res.confirm) || !templateFeature.optional;
73
+ }
74
+ const files = await template.getFiles(templateOptions, features);
75
+ files.sort((a, b) => {
76
+ return a.name.localeCompare(b.name);
77
+ });
78
+ for (const file of files) {
79
+ const filePath = path.resolve(packagePath, file.name);
80
+ await mkdirp.mkdirp(path.dirname(filePath));
81
+ await fs.writeFile(filePath, file.contents.trim() + "\n");
82
+ logger.success("wrote ".concat(path.relative(cwd, filePath)));
83
+ }
84
+ }
85
+ function defineTemplateOption(option) {
86
+ return option;
87
+ }
88
+ async function isEmptyDirectory(dirPath) {
89
+ return (await fs.readdir(dirPath)).length === 0;
90
+ }
91
+ const RE_NAME = /^(?:@(?:[a-z0-9-*~][a-z0-9-*._~]*)\/)?[a-z0-9-~][a-z0-9-._~]*$/i;
92
+ const defaultTemplate = async _ref => {
93
+ let {
94
+ cwd,
95
+ logger: logger$1,
96
+ packagePath
97
+ } = _ref;
98
+ var _a, _b;
99
+ const gitConfig = await parseGitConfig__default.default({
100
+ cwd,
101
+ type: "global"
102
+ });
103
+ return {
104
+ options: [defineTemplateOption({
105
+ name: "repo",
106
+ type: "string",
107
+ description: "git url",
108
+ validate: v => {
109
+ if (!v) return true;
110
+ try {
111
+ gitUrlParse__default.default(v);
112
+ return true;
113
+ } catch (err) {
114
+ return "invalid git url";
115
+ }
116
+ },
117
+ parse: v => {
118
+ if (!v) return null;
119
+ const result = gitUrlParse__default.default(v);
120
+ return {
121
+ source: result.source,
122
+ owner: result.owner,
123
+ name: result.name
124
+ };
125
+ }
126
+ }), defineTemplateOption({
127
+ name: "pkgName",
128
+ type: "string",
129
+ description: "package name",
130
+ initial: options => {
131
+ var _a2;
132
+ return ((_a2 = options.repo) == null ? void 0 : _a2.name) || void 0;
133
+ },
134
+ validate: v => {
135
+ if (!v) return "package name is required";
136
+ const match = RE_NAME.exec(v);
137
+ if (!match) {
138
+ return "invalid package name";
139
+ }
140
+ return true;
141
+ },
142
+ parse: v => {
143
+ if (!v) {
144
+ throw new Error("package name is required");
145
+ }
146
+ const match = RE_NAME.exec(v);
147
+ if (!match) {
148
+ throw new Error("invalid package name");
149
+ }
150
+ const [scope, name] = v.split("/");
151
+ return {
152
+ scope,
153
+ name,
154
+ fullName: v
155
+ };
156
+ }
157
+ }), defineTemplateOption({
158
+ name: "description",
159
+ type: "string",
160
+ description: "package description"
161
+ }), defineTemplateOption({
162
+ name: "authorName",
163
+ type: "string",
164
+ description: "package author name",
165
+ initial: (_a = gitConfig == null ? void 0 : gitConfig.user) == null ? void 0 : _a.name
166
+ }), defineTemplateOption({
167
+ name: "authorEmail",
168
+ type: "string",
169
+ description: "package author email",
170
+ initial: (_b = gitConfig == null ? void 0 : gitConfig.user) == null ? void 0 : _b.email
171
+ }), defineTemplateOption({
172
+ name: "license",
173
+ type: "string",
174
+ description: "package license",
175
+ initial: "MIT",
176
+ validate: v => {
177
+ if (!v) return "license is required";
178
+ return true;
179
+ }
180
+ })],
181
+ features: [{
182
+ name: "eslint",
183
+ optional: true,
184
+ initial: true
185
+ }, {
186
+ name: "typescript",
187
+ optional: true,
188
+ initial: true
189
+ }],
190
+ async getFiles(options, features) {
191
+ var _filter$join, _options$description;
192
+ var _a2;
193
+ const {
194
+ pkgName,
195
+ repo
196
+ } = options;
197
+ const {
198
+ fullName: name
199
+ } = pkgName;
200
+ const author = (_filter$join = [options.authorName, options.authorEmail && "<".concat(options.authorEmail, ">")].filter(Boolean).join(" ")) !== null && _filter$join !== void 0 ? _filter$join : void 0;
201
+ const prettierConfig = {
202
+ bracketSpacing: false,
203
+ printWidth: 100,
204
+ semi: false,
205
+ singleQuote: true,
206
+ tabWidth: 2,
207
+ plugins: ["prettier-plugin-packagejson"],
208
+ overrides: [{
209
+ files: ["*.yml"],
210
+ options: {
211
+ singleQuote: false
212
+ }
213
+ }]
214
+ };
215
+ const pkgJson = {
216
+ name,
217
+ version: "0.0.0",
218
+ description: (_options$description = options.description) !== null && _options$description !== void 0 ? _options$description : void 0,
219
+ keywords: [],
220
+ license: options.license,
221
+ author,
222
+ type: "module",
223
+ exports: {
224
+ ".": {
225
+ types: void 0,
226
+ source: features.typescript ? "./src/index.ts" : "./src/index.js",
227
+ require: "./dist/index.cjs",
228
+ import: "./dist/index.js",
229
+ default: "./dist/index.js"
230
+ },
231
+ "./package.json": "./package.json"
232
+ },
233
+ main: "./dist/index.cjs",
234
+ module: "./dist/index.js",
235
+ source: features.typescript ? "./src/index.ts" : "./src/index.js",
236
+ files: ["dist", "src"],
237
+ scripts: {
238
+ build: "run-s clean pkg:build pkg:check",
239
+ clean: "rimraf dist",
240
+ format: "prettier --write --cache --ignore-unknown .",
241
+ "pkg:build": "pkg build --strict",
242
+ "pkg:check": "pkg check --strict"
243
+ },
244
+ prettier: prettierConfig,
245
+ "lint-staged": {
246
+ "*": ["prettier --write --cache --ignore-unknown"]
247
+ },
248
+ dependencies: {},
249
+ devDependencies: {
250
+ "@sanity/pkg-utils": "*",
251
+ "lint-staged": "*",
252
+ "npm-run-all": "*",
253
+ prettier: "*",
254
+ "prettier-plugin-packagejson": "*",
255
+ rimraf: "*"
256
+ },
257
+ engines: {
258
+ node: ">=18.0.0"
259
+ }
260
+ };
261
+ const files = [];
262
+ files.push({
263
+ name: ".editorconfig",
264
+ contents: outdent.outdent(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n root = true\n\n [*]\n charset = utf-8\n indent_style = space\n indent_size = 2\n end_of_line = lf\n insert_final_newline = true\n trim_trailing_whitespace = true\n "])))
265
+ });
266
+ files.push({
267
+ name: ".gitignore",
268
+ contents: outdent.outdent(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["\n *.local\n *.log\n\n .DS_Store\n etc\n dist\n node_modules\n "])))
269
+ });
270
+ files.push({
271
+ name: ".prettierignore",
272
+ contents: outdent.outdent(_templateObject3 || (_templateObject3 = _taggedTemplateLiteral(["\n /dist\n /pnpm-lock.yaml\n "])))
273
+ });
274
+ if (repo) {
275
+ pkgJson.repository = {
276
+ type: "git",
277
+ url: "git+ssh://git@".concat(repo.source, "/").concat(repo.owner, "/").concat(repo.name, ".git")
278
+ };
279
+ pkgJson.bugs = {
280
+ url: "https://".concat(repo.source, "/").concat(repo.owner, "/").concat(repo.name, "/issues")
281
+ };
282
+ pkgJson.homepage = "https://".concat(repo.source, "/").concat(repo.owner, "/").concat(repo.name, "#readme");
283
+ }
284
+ if (features.typescript) {
285
+ pkgJson.types = "./dist/index.d.ts";
286
+ const mainExport = (_a2 = pkgJson.exports) == null ? void 0 : _a2["."];
287
+ if (logger.isRecord(mainExport)) {
288
+ mainExport.types = "./dist/index.d.ts";
289
+ }
290
+ pkgJson.scripts = {
291
+ ...pkgJson.scripts,
292
+ ["type:check"]: "tsc --build"
293
+ };
294
+ const devDependencies = pkgJson.devDependencies;
295
+ if (logger.isRecord(devDependencies)) {
296
+ devDependencies["typescript"] = "*";
297
+ }
298
+ }
299
+ if (features.eslint) {
300
+ const eslintConfig = {
301
+ root: true,
302
+ env: {
303
+ browser: true,
304
+ es6: true,
305
+ node: true
306
+ },
307
+ extends: ["eslint:recommended", "plugin:prettier/recommended"],
308
+ parserOptions: {
309
+ ecmaVersion: 2020,
310
+ sourceType: "module"
311
+ },
312
+ plugins: ["import", "prettier"],
313
+ rules: {
314
+ "no-console": "error",
315
+ "no-shadow": "error",
316
+ "no-warning-comments": ["warn", {
317
+ location: "start",
318
+ terms: ["todo", "fixme"]
319
+ }]
320
+ }
321
+ };
322
+ files.push({
323
+ name: ".eslintignore",
324
+ contents: outdent.outdent(_templateObject4 || (_templateObject4 = _taggedTemplateLiteral(["\n /dist\n "])))
325
+ });
326
+ pkgJson.scripts = {
327
+ ...pkgJson.scripts,
328
+ lint: features.typescript ? "eslint . --ext .cjs,.js,.ts,.tsx" : "eslint . --ext .cjs,.js"
329
+ };
330
+ pkgJson.devDependencies = {
331
+ ...pkgJson.devDependencies,
332
+ eslint: "*",
333
+ "eslint-config-prettier": "*",
334
+ "eslint-plugin-import": "*",
335
+ "eslint-plugin-prettier": "*"
336
+ };
337
+ if (features.typescript) {
338
+ pkgJson.devDependencies = {
339
+ ...pkgJson.devDependencies,
340
+ "@typescript-eslint/eslint-plugin": "*",
341
+ "@typescript-eslint/parser": "*"
342
+ };
343
+ const eslintConfigOverride = {
344
+ files: ["**/*.ts", "**/*.tsx"],
345
+ parser: "@typescript-eslint/parser",
346
+ parserOptions: {
347
+ project: ["./tsconfig.json"]
348
+ },
349
+ extends: ["eslint:recommended", "plugin:prettier/recommended", "plugin:@typescript-eslint/eslint-recommended", "plugin:@typescript-eslint/recommended"].filter(Boolean),
350
+ plugins: ["import", "@typescript-eslint", "prettier"].filter(Boolean),
351
+ rules: {
352
+ "@typescript-eslint/explicit-module-boundary-types": "error",
353
+ "@typescript-eslint/interface-name-prefix": "off",
354
+ "@typescript-eslint/member-delimiter-style": "off",
355
+ "@typescript-eslint/no-empty-interface": "off"
356
+ }
357
+ };
358
+ eslintConfig.overrides = [eslintConfigOverride];
359
+ }
360
+ files.push({
361
+ name: ".eslintrc.cjs",
362
+ contents: format(path.resolve(packagePath, ".eslintrc.cjs"), outdent.outdent(_templateObject5 || (_templateObject5 = _taggedTemplateLiteral(["\n 'use strict'\n\n /** @type import('eslint').Linter.Config */\n module.exports = ", "\n "])), JSON.stringify(eslintConfig, null, 2)), prettierConfig)
363
+ });
364
+ }
365
+ if (features.typescript) {
366
+ files.push({
367
+ name: "tsconfig.settings.json",
368
+ contents: format(path.resolve(packagePath, "tsconfig.settings.json"), outdent.outdent(_templateObject6 || (_templateObject6 = _taggedTemplateLiteral(["\n {\n \"compilerOptions\": {\n \"module\": \"ES2020\",\n \"target\": \"ES2020\",\n \"declaration\": true,\n \"declarationMap\": true,\n \"sourceMap\": true,\n\n // Strict type-checking\n \"strict\": true,\n \"noImplicitAny\": true,\n \"strictNullChecks\": true,\n \"strictFunctionTypes\": true,\n \"strictPropertyInitialization\": true,\n \"noImplicitThis\": true,\n \"alwaysStrict\": true,\n\n // Additional checks\n \"noUnusedLocals\": true,\n \"noUnusedParameters\": true,\n \"noImplicitReturns\": true,\n \"noFallthroughCasesInSwitch\": true,\n \"skipLibCheck\": true,\n\n // Module resolution\n \"moduleResolution\": \"node\",\n \"allowSyntheticDefaultImports\": true,\n \"esModuleInterop\": true\n }\n }\n "]))), prettierConfig)
369
+ });
370
+ files.push({
371
+ name: "tsconfig.dist.json",
372
+ contents: format(path.resolve(packagePath, "tsconfig.dist.json"), outdent.outdent(_templateObject7 || (_templateObject7 = _taggedTemplateLiteral(["\n {\n \"extends\": \"./tsconfig.settings\",\n \"include\": [\"./src\"],\n \"compilerOptions\": {\n \"rootDir\": \".\",\n \"outDir\": \"./dist\",\n \"emitDeclarationOnly\": true,\n \"resolveJsonModule\": true\n }\n }\n "]))), prettierConfig)
373
+ });
374
+ files.push({
375
+ name: "tsconfig.json",
376
+ contents: format(path.resolve(packagePath, "tsconfig.json"), outdent.outdent(_templateObject8 || (_templateObject8 = _taggedTemplateLiteral(["\n {\n \"extends\": \"./tsconfig.settings\",\n \"include\": [\"./*.cjs\", \"./*.ts\", \"./package.config.ts\", \"./src\"],\n \"compilerOptions\": {\n \"rootDir\": \".\",\n \"outDir\": \"./dist\",\n \"noEmit\": true,\n \"allowJs\": true,\n \"resolveJsonModule\": true,\n }\n }\n "]))), prettierConfig)
377
+ });
378
+ }
379
+ if (features.typescript) {
380
+ files.push({
381
+ name: "package.config.ts",
382
+ contents: format(path.resolve(packagePath, "package.config.ts"), outdent.outdent(_templateObject9 || (_templateObject9 = _taggedTemplateLiteral(["\n import {defineConfig} from '@sanity/pkg-utils'\n\n export default defineConfig({\n extract: {\n rules: {\n // do not require internal members to be prefixed with `_`\n 'ae-internal-missing-underscore': 'off',\n },\n },\n\n // the path to the tsconfig file for distributed builds\n tsconfig: 'tsconfig.dist.json',\n })\n "], ["\n import {defineConfig} from '@sanity/pkg-utils'\n\n export default defineConfig({\n extract: {\n rules: {\n // do not require internal members to be prefixed with \\`_\\`\n 'ae-internal-missing-underscore': 'off',\n },\n },\n\n // the path to the tsconfig file for distributed builds\n tsconfig: 'tsconfig.dist.json',\n })\n "]))), prettierConfig)
383
+ });
384
+ files.push({
385
+ name: "src/index.ts",
386
+ contents: format(path.resolve(packagePath, "src/index.ts"), outdent.outdent(_templateObject10 || (_templateObject10 = _taggedTemplateLiteral(["\n /** @public */\n export function main(): void {\n //\n }\n "]))), prettierConfig)
387
+ });
388
+ } else {
389
+ files.push({
390
+ name: "package.config.js",
391
+ contents: format(path.resolve(packagePath, "package.config.js"), outdent.outdent(_templateObject11 || (_templateObject11 = _taggedTemplateLiteral(["\n import {defineConfig} from '@sanity/pkg-utils'\n\n export default defineConfig({\n extract: {\n rules: {\n // do not require internal members to be prefixed with `_`\n 'ae-internal-missing-underscore': 'off',\n },\n },\n })\n "], ["\n import {defineConfig} from '@sanity/pkg-utils'\n\n export default defineConfig({\n extract: {\n rules: {\n // do not require internal members to be prefixed with \\`_\\`\n 'ae-internal-missing-underscore': 'off',\n },\n },\n })\n "]))), prettierConfig)
392
+ });
393
+ files.push({
394
+ name: "src/index.js",
395
+ contents: format(path.resolve(packagePath, "src/index.js"), outdent.outdent(_templateObject12 || (_templateObject12 = _taggedTemplateLiteral(["\n /** @public */\n export function main() {\n //\n }\n "]))), prettierConfig)
396
+ });
397
+ }
398
+ try {
399
+ var _pkgJson$dependencies;
400
+ pkgJson.dependencies = await resolveLatestDeps((_pkgJson$dependencies = pkgJson.dependencies) !== null && _pkgJson$dependencies !== void 0 ? _pkgJson$dependencies : {});
401
+ } catch (error) {
402
+ logger$1.warn(error instanceof Error ? error.message : error);
403
+ }
404
+ try {
405
+ var _pkgJson$devDependenc;
406
+ pkgJson.devDependencies = await resolveLatestDeps((_pkgJson$devDependenc = pkgJson.devDependencies) !== null && _pkgJson$devDependenc !== void 0 ? _pkgJson$devDependenc : {});
407
+ } catch (error) {
408
+ logger$1.warn(error instanceof Error ? error.message : error);
409
+ }
410
+ files.push({
411
+ name: "package.json",
412
+ contents: format(path.resolve(packagePath, "package.json"), JSON.stringify(pkgJson, null, 2), prettierConfig)
413
+ });
414
+ return files;
415
+ }
416
+ };
417
+ };
418
+ function format(filepath, input, prettierOptions) {
419
+ return prettier__default.default.format(input, {
420
+ ...prettierOptions,
421
+ filepath
422
+ });
423
+ }
424
+ async function resolveLatestDeps(deps) {
425
+ const depsEntries = Object.entries(deps);
426
+ const latestDeps = {};
427
+ for (const entry of depsEntries) {
428
+ const [name, version] = entry;
429
+ const latestVersion = await getLatestVersion__default.default(name, version);
430
+ latestDeps[name] = latestVersion ? "^".concat(latestVersion) : version;
431
+ }
432
+ return latestDeps;
433
+ }
434
+ async function init(options) {
435
+ if (!options.cwd) {
436
+ throw new Error("Missing required option: cwd");
437
+ }
438
+ if (!options.path) {
439
+ throw new Error("Missing required option: path");
440
+ }
441
+ const logger$1 = logger.createLogger();
442
+ const packagePath = path.resolve(options.cwd, options.path);
443
+ await ensurePackagePath(packagePath);
444
+ await createFromTemplate({
445
+ cwd: options.cwd,
446
+ logger: logger$1,
447
+ template: defaultTemplate,
448
+ packagePath
449
+ });
450
+ }
451
+ async function ensurePackagePath(packagePath) {
452
+ const exists = logger.fileExists(packagePath);
453
+ if (!exists) {
454
+ await mkdirp.mkdirp(packagePath);
455
+ return;
456
+ }
457
+ const dir = (await fs.lstat(packagePath)).isDirectory();
458
+ if (!dir) {
459
+ throw new Error("the package path is a file, not a directory");
460
+ }
461
+ const empty = await isEmptyDirectory(packagePath);
462
+ if (!empty) {
463
+ throw new Error("the package directory is not empty");
464
+ }
465
+ }
466
+ exports.createFromTemplate = createFromTemplate;
467
+ exports.defineTemplateOption = defineTemplateOption;
468
+ exports.init = init;
469
+ //# sourceMappingURL=init-ab36343b.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"init-ab36343b.cjs","sources":["../../src/node/core/template/createFromTemplate.ts","../../src/node/core/template/define.ts","../../src/node/isEmptyDirectory.ts","../../src/node/templates/default/template.ts","../../src/node/init.ts"],"sourcesContent":["import {writeFile} from 'fs/promises'\nimport {mkdirp} from 'mkdirp'\nimport {dirname, relative, resolve} from 'path'\nimport prompts from 'prompts'\n\nimport {Logger} from '../../logger'\nimport {PkgTemplate} from './types'\n\nconst promptsTypes = {\n string: 'text' as const,\n}\n\n/** @internal */\nexport async function createFromTemplate(options: {\n cwd: string\n logger: Logger\n packagePath: string\n template: PkgTemplate\n}): Promise<void> {\n const {cwd, logger, packagePath, template: templateOrResolver} = options\n\n const template =\n typeof templateOrResolver === 'function'\n ? await templateOrResolver({cwd, logger, packagePath})\n : templateOrResolver\n\n logger.log('create new package at', relative(cwd, packagePath))\n\n const templateOptions: Record<string, string> = {}\n\n for (const templateOption of template.options) {\n const templateValidate = templateOption.validate\n\n const res = await prompts(\n {\n type: promptsTypes[templateOption.type],\n name: templateOption.name,\n message: templateOption.description,\n validate: templateValidate ? (prev) => templateValidate(prev) : undefined,\n initial:\n typeof templateOption.initial === 'function'\n ? templateOption.initial(templateOptions)\n : templateOption.initial,\n },\n {onCancel: () => process.exit(0)}\n )\n\n templateOptions[templateOption.name] = templateOption.parse\n ? templateOption.parse(res[templateOption.name])\n : res[templateOption.name]\n }\n\n const features: Record<string, boolean> = {}\n\n for (const templateFeature of template.features) {\n const res = templateFeature.optional\n ? await prompts(\n {\n type: 'confirm',\n name: 'confirm',\n message: `use ${templateFeature.name}?`,\n initial: templateFeature.initial,\n },\n {onCancel: () => process.exit(0)}\n )\n : undefined\n\n features[templateFeature.name] = res?.confirm || !templateFeature.optional\n }\n\n const files = await template.getFiles(templateOptions, features)\n\n files.sort((a, b) => {\n return a.name.localeCompare(b.name)\n })\n\n for (const file of files) {\n const filePath = resolve(packagePath, file.name)\n\n await mkdirp(dirname(filePath))\n await writeFile(filePath, file.contents.trim() + '\\n')\n\n logger.success(`wrote ${relative(cwd, filePath)}`)\n }\n}\n","import {PkgTemplateOption} from './types'\n\n/** @public */\nexport function defineTemplateOption<T>(option: PkgTemplateOption<T>): PkgTemplateOption<T> {\n return option\n}\n","import {readdir} from 'fs/promises'\n\nexport async function isEmptyDirectory(dirPath: string): Promise<boolean> {\n return (await readdir(dirPath)).length === 0\n}\n","import getLatestVersion from 'get-latest-version'\nimport gitUrlParse from 'git-url-parse'\nimport {outdent} from 'outdent'\nimport parseGitConfig from 'parse-git-config'\nimport {resolve} from 'path'\nimport prettier, {Config as PrettierConfig} from 'prettier'\n\nimport {defineTemplateOption, isRecord, PackageJSON, PkgTemplate, PkgTemplateFile} from '../../core'\n\nconst RE_NAME = /^(?:@(?:[a-z0-9-*~][a-z0-9-*._~]*)\\/)?[a-z0-9-~][a-z0-9-._~]*$/i\n\nexport const defaultTemplate: PkgTemplate = async ({cwd, logger, packagePath}) => {\n const gitConfig = await parseGitConfig({cwd, type: 'global'})\n\n return {\n options: [\n defineTemplateOption<{owner: string; name: string}>({\n name: 'repo',\n type: 'string',\n description: 'git url',\n validate: (v) => {\n if (!v) return true\n\n try {\n gitUrlParse(v)\n\n return true\n } catch (err) {\n return 'invalid git url'\n }\n },\n parse: (v) => {\n if (!v) return null\n\n const result = gitUrlParse(v)\n\n return {source: result.source, owner: result.owner, name: result.name}\n },\n }),\n defineTemplateOption({\n name: 'pkgName',\n type: 'string',\n description: 'package name',\n initial: (options) => options.repo?.name || undefined,\n validate: (v) => {\n if (!v) return 'package name is required'\n\n const match = RE_NAME.exec(v)\n\n if (!match) {\n return 'invalid package name'\n }\n\n return true\n },\n parse: (v) => {\n if (!v) {\n throw new Error('package name is required')\n }\n\n const match = RE_NAME.exec(v)\n\n if (!match) {\n throw new Error('invalid package name')\n }\n\n const [scope, name] = v.split('/')\n\n return {scope, name, fullName: v}\n },\n }),\n defineTemplateOption({\n name: 'description',\n type: 'string',\n description: 'package description',\n }),\n defineTemplateOption({\n name: 'authorName',\n type: 'string',\n description: 'package author name',\n initial: gitConfig?.user?.name,\n }),\n defineTemplateOption({\n name: 'authorEmail',\n type: 'string',\n description: 'package author email',\n initial: gitConfig?.user?.email,\n }),\n defineTemplateOption({\n name: 'license',\n type: 'string',\n description: 'package license',\n initial: 'MIT',\n validate: (v) => {\n if (!v) return 'license is required'\n\n return true\n },\n }),\n ],\n\n features: [\n {\n name: 'eslint',\n optional: true,\n initial: true,\n },\n {\n name: 'typescript',\n optional: true,\n initial: true,\n },\n ],\n\n async getFiles(options, features) {\n const {pkgName, repo} = options\n const {fullName: name} = pkgName\n\n const author =\n [options.authorName, options.authorEmail && `<${options.authorEmail}>`]\n .filter(Boolean)\n .join(' ') ?? undefined\n\n const prettierConfig: PrettierConfig = {\n bracketSpacing: false,\n printWidth: 100,\n semi: false,\n singleQuote: true,\n tabWidth: 2,\n plugins: ['prettier-plugin-packagejson'],\n overrides: [\n {\n files: ['*.yml'],\n options: {\n singleQuote: false,\n },\n },\n ],\n }\n\n const pkgJson: PackageJSON & {\n prettier?: PrettierConfig\n ['lint-staged']?: Record<string, string[]>\n } = {\n name,\n version: '0.0.0',\n description: options.description ?? undefined,\n keywords: [],\n license: options.license,\n author,\n type: 'module',\n exports: {\n '.': {\n types: undefined,\n source: features.typescript ? './src/index.ts' : './src/index.js',\n require: './dist/index.cjs',\n import: './dist/index.js',\n default: './dist/index.js',\n },\n './package.json': './package.json',\n },\n main: './dist/index.cjs',\n module: './dist/index.js',\n source: features.typescript ? './src/index.ts' : './src/index.js',\n files: ['dist', 'src'],\n scripts: {\n build: 'run-s clean pkg:build pkg:check',\n clean: 'rimraf dist',\n format: 'prettier --write --cache --ignore-unknown .',\n 'pkg:build': 'pkg build --strict',\n 'pkg:check': 'pkg check --strict',\n },\n prettier: prettierConfig,\n 'lint-staged': {\n '*': ['prettier --write --cache --ignore-unknown'],\n },\n dependencies: {},\n devDependencies: {\n '@sanity/pkg-utils': '*',\n 'lint-staged': '*',\n 'npm-run-all': '*',\n prettier: '*',\n 'prettier-plugin-packagejson': '*',\n rimraf: '*',\n },\n engines: {\n node: '>=18.0.0',\n },\n }\n\n const files: PkgTemplateFile[] = []\n\n // .editorconfig\n files.push({\n name: '.editorconfig',\n contents: outdent`\n root = true\n\n [*]\n charset = utf-8\n indent_style = space\n indent_size = 2\n end_of_line = lf\n insert_final_newline = true\n trim_trailing_whitespace = true\n `,\n })\n\n // .gitignore\n files.push({\n name: '.gitignore',\n contents: outdent`\n *.local\n *.log\n\n .DS_Store\n etc\n dist\n node_modules\n `,\n })\n\n files.push({\n name: '.prettierignore',\n contents: outdent`\n /dist\n /pnpm-lock.yaml\n `,\n })\n\n if (repo) {\n pkgJson.repository = {\n type: 'git',\n url: `git+ssh://git@${repo.source}/${repo.owner}/${repo.name}.git`,\n }\n pkgJson.bugs = {\n url: `https://${repo.source}/${repo.owner}/${repo.name}/issues`,\n }\n pkgJson.homepage = `https://${repo.source}/${repo.owner}/${repo.name}#readme`\n }\n\n if (features.typescript) {\n pkgJson.types = './dist/index.d.ts'\n\n const mainExport = pkgJson.exports?.['.']\n\n if (isRecord(mainExport)) {\n mainExport.types = './dist/index.d.ts'\n }\n\n pkgJson.scripts = {\n ...pkgJson.scripts,\n ['type:check']: 'tsc --build',\n }\n\n const devDependencies = pkgJson.devDependencies\n\n if (isRecord(devDependencies)) {\n devDependencies['typescript'] = '*'\n }\n }\n\n if (features.eslint) {\n const eslintConfig: any = {\n root: true,\n env: {\n browser: true,\n es6: true,\n node: true,\n },\n extends: ['eslint:recommended', 'plugin:prettier/recommended'],\n parserOptions: {\n ecmaVersion: 2020,\n sourceType: 'module',\n },\n plugins: ['import', 'prettier'],\n rules: {\n 'no-console': 'error',\n 'no-shadow': 'error',\n 'no-warning-comments': ['warn', {location: 'start', terms: ['todo', 'fixme']}],\n },\n }\n\n files.push({\n name: '.eslintignore',\n contents: outdent`\n /dist\n `,\n })\n\n pkgJson.scripts = {\n ...pkgJson.scripts,\n lint: features.typescript\n ? 'eslint . --ext .cjs,.js,.ts,.tsx'\n : 'eslint . --ext .cjs,.js',\n }\n\n pkgJson.devDependencies = {\n ...pkgJson.devDependencies,\n eslint: '*',\n 'eslint-config-prettier': '*',\n 'eslint-plugin-import': '*',\n 'eslint-plugin-prettier': '*',\n }\n\n if (features.typescript) {\n pkgJson.devDependencies = {\n ...pkgJson.devDependencies,\n '@typescript-eslint/eslint-plugin': '*',\n '@typescript-eslint/parser': '*',\n }\n\n const eslintConfigOverride: any = {\n files: ['**/*.ts', '**/*.tsx'],\n parser: '@typescript-eslint/parser',\n parserOptions: {\n project: ['./tsconfig.json'],\n },\n extends: [\n 'eslint:recommended',\n 'plugin:prettier/recommended',\n 'plugin:@typescript-eslint/eslint-recommended',\n 'plugin:@typescript-eslint/recommended',\n ].filter(Boolean),\n plugins: ['import', '@typescript-eslint', 'prettier'].filter(Boolean),\n rules: {\n '@typescript-eslint/explicit-module-boundary-types': 'error',\n '@typescript-eslint/interface-name-prefix': 'off',\n '@typescript-eslint/member-delimiter-style': 'off',\n '@typescript-eslint/no-empty-interface': 'off',\n },\n }\n\n eslintConfig.overrides = [eslintConfigOverride]\n }\n\n files.push({\n name: '.eslintrc.cjs',\n contents: format(\n resolve(packagePath, '.eslintrc.cjs'),\n outdent`\n 'use strict'\n\n /** @type import('eslint').Linter.Config */\n module.exports = ${JSON.stringify(eslintConfig, null, 2)}\n `,\n prettierConfig\n ),\n })\n }\n\n if (features.typescript) {\n files.push({\n name: 'tsconfig.settings.json',\n contents: format(\n resolve(packagePath, 'tsconfig.settings.json'),\n outdent`\n {\n \"compilerOptions\": {\n \"module\": \"ES2020\",\n \"target\": \"ES2020\",\n \"declaration\": true,\n \"declarationMap\": true,\n \"sourceMap\": true,\n\n // Strict type-checking\n \"strict\": true,\n \"noImplicitAny\": true,\n \"strictNullChecks\": true,\n \"strictFunctionTypes\": true,\n \"strictPropertyInitialization\": true,\n \"noImplicitThis\": true,\n \"alwaysStrict\": true,\n\n // Additional checks\n \"noUnusedLocals\": true,\n \"noUnusedParameters\": true,\n \"noImplicitReturns\": true,\n \"noFallthroughCasesInSwitch\": true,\n \"skipLibCheck\": true,\n\n // Module resolution\n \"moduleResolution\": \"node\",\n \"allowSyntheticDefaultImports\": true,\n \"esModuleInterop\": true\n }\n }\n `,\n prettierConfig\n ),\n })\n\n files.push({\n name: 'tsconfig.dist.json',\n contents: format(\n resolve(packagePath, 'tsconfig.dist.json'),\n outdent`\n {\n \"extends\": \"./tsconfig.settings\",\n \"include\": [\"./src\"],\n \"compilerOptions\": {\n \"rootDir\": \".\",\n \"outDir\": \"./dist\",\n \"emitDeclarationOnly\": true,\n \"resolveJsonModule\": true\n }\n }\n `,\n prettierConfig\n ),\n })\n\n files.push({\n name: 'tsconfig.json',\n contents: format(\n resolve(packagePath, 'tsconfig.json'),\n outdent`\n {\n \"extends\": \"./tsconfig.settings\",\n \"include\": [\"./*.cjs\", \"./*.ts\", \"./package.config.ts\", \"./src\"],\n \"compilerOptions\": {\n \"rootDir\": \".\",\n \"outDir\": \"./dist\",\n \"noEmit\": true,\n \"allowJs\": true,\n \"resolveJsonModule\": true,\n }\n }\n `,\n prettierConfig\n ),\n })\n }\n\n // source file\n if (features.typescript) {\n files.push({\n name: 'package.config.ts',\n contents: format(\n resolve(packagePath, 'package.config.ts'),\n outdent`\n import {defineConfig} from '@sanity/pkg-utils'\n\n export default defineConfig({\n extract: {\n rules: {\n // do not require internal members to be prefixed with \\`_\\`\n 'ae-internal-missing-underscore': 'off',\n },\n },\n\n // the path to the tsconfig file for distributed builds\n tsconfig: 'tsconfig.dist.json',\n })\n `,\n prettierConfig\n ),\n })\n\n files.push({\n name: 'src/index.ts',\n contents: format(\n resolve(packagePath, 'src/index.ts'),\n outdent`\n /** @public */\n export function main(): void {\n //\n }\n `,\n prettierConfig\n ),\n })\n } else {\n files.push({\n name: 'package.config.js',\n contents: format(\n resolve(packagePath, 'package.config.js'),\n outdent`\n import {defineConfig} from '@sanity/pkg-utils'\n\n export default defineConfig({\n extract: {\n rules: {\n // do not require internal members to be prefixed with \\`_\\`\n 'ae-internal-missing-underscore': 'off',\n },\n },\n })\n `,\n prettierConfig\n ),\n })\n\n files.push({\n name: 'src/index.js',\n contents: format(\n resolve(packagePath, 'src/index.js'),\n outdent`\n /** @public */\n export function main() {\n //\n }\n `,\n prettierConfig\n ),\n })\n }\n\n // Resolve latest dependencies\n try {\n pkgJson.dependencies = await resolveLatestDeps(pkgJson.dependencies ?? {})\n } catch (error) {\n logger.warn(error instanceof Error ? error.message : error)\n }\n\n // Resolve latest devDependencies\n try {\n pkgJson.devDependencies = await resolveLatestDeps(pkgJson.devDependencies ?? {})\n } catch (error) {\n logger.warn(error instanceof Error ? error.message : error)\n }\n\n files.push({\n name: 'package.json',\n contents: format(\n resolve(packagePath, 'package.json'),\n JSON.stringify(pkgJson, null, 2),\n prettierConfig\n ),\n })\n\n return files\n },\n }\n}\n\nfunction format(filepath: string, input: string, prettierOptions: PrettierConfig) {\n return prettier.format(input, {...prettierOptions, filepath})\n}\n\nasync function resolveLatestDeps(deps: Record<string, string>) {\n const depsEntries = Object.entries(deps)\n const latestDeps: Record<string, string> = {}\n\n for (const entry of depsEntries) {\n const [name, version] = entry\n const latestVersion = await getLatestVersion(name, version)\n\n latestDeps[name] = latestVersion ? `^${latestVersion}` : version\n }\n\n return latestDeps\n}\n","import {lstat} from 'fs/promises'\nimport {mkdirp} from 'mkdirp'\nimport {resolve} from 'path'\n\nimport {createFromTemplate} from './core/template'\nimport {fileExists} from './fileExists'\nimport {isEmptyDirectory} from './isEmptyDirectory'\nimport {createLogger} from './logger'\nimport {defaultTemplate} from './templates'\n\n/** @public */\nexport async function init(options: {cwd: string; path: string}): Promise<void> {\n if (!options.cwd) {\n throw new Error('Missing required option: cwd')\n }\n\n if (!options.path) {\n throw new Error('Missing required option: path')\n }\n\n const logger = createLogger()\n\n const packagePath = resolve(options.cwd, options.path)\n\n await ensurePackagePath(packagePath)\n\n await createFromTemplate({\n cwd: options.cwd,\n logger,\n template: defaultTemplate,\n packagePath,\n })\n}\n\nasync function ensurePackagePath(packagePath: string): Promise<void> {\n const exists = fileExists(packagePath)\n\n if (!exists) {\n await mkdirp(packagePath)\n\n return\n }\n\n const dir = (await lstat(packagePath)).isDirectory()\n\n if (!dir) {\n throw new Error('the package path is a file, not a directory')\n }\n\n const empty = await isEmptyDirectory(packagePath)\n\n if (!empty) {\n throw new Error('the package directory is not empty')\n }\n}\n"],"names":["promptsTypes","string","createFromTemplate","options","cwd","logger","packagePath","template","templateOrResolver","log","relative","templateOptions","templateOption","templateValidate","validate","res","prompts","default","type","name","message","description","prev","initial","onCancel","process","exit","parse","features","templateFeature","optional","concat","confirm","files","getFiles","sort","a","b","localeCompare","file","filePath","resolve","mkdirp","dirname","writeFile","contents","trim","success","defineTemplateOption","option","isEmptyDirectory","dirPath","readdir","length","RE_NAME","defaultTemplate","_ref","_a","_b","gitConfig","parseGitConfig","v","gitUrlParse","err","result","source","owner","repo","match","exec","Error","scope","split","fullName","user","email","_filter$join","_options$description","pkgName","author","authorName","authorEmail","filter","Boolean","join","prettierConfig","bracketSpacing","printWidth","semi","singleQuote","tabWidth","plugins","overrides","pkgJson","version","keywords","license","exports","types","typescript","require","import","main","module","scripts","build","clean","format","prettier","dependencies","devDependencies","rimraf","engines","node","push","outdent","_templateObject","_taggedTemplateLiteral","_templateObject2","_templateObject3","repository","url","bugs","homepage","mainExport","isRecord","eslint","eslintConfig","root","env","browser","es6","extends","parserOptions","ecmaVersion","sourceType","rules","location","terms","_templateObject4","lint","eslintConfigOverride","parser","project","_templateObject5","JSON","stringify","_templateObject6","_templateObject7","_templateObject8","_templateObject9","_templateObject10","_templateObject11","_templateObject12","_pkgJson$dependencies","resolveLatestDeps","error","warn","_pkgJson$devDependenc","filepath","input","prettierOptions","deps","depsEntries","Object","entries","latestDeps","entry","latestVersion","getLatestVersion","init","path","createLogger","ensurePackagePath","exists","fileExists","dir","lstat","isDirectory","empty"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAQA,MAAMA,YAAe,GAAA;EACnBC,MAAQ,EAAA;AACV,CAAA;AAGA,eAAsBC,mBAAmBC,OAKvB,EAAA;EAChB,MAAM;IAACC,GAAK;IAAAC,MAAA;IAAQC,WAAa;IAAAC,QAAA,EAAUC;EAAsB,CAAA,GAAAL,OAAA;EAE3D,MAAAI,QAAA,GACJ,OAAOC,kBAAA,KAAuB,UAC1B,GAAA,MAAMA,kBAAmB,CAAA;IAACJ,GAAK;IAAAC,MAAA;IAAQC;EAAY,CAAA,CACnD,GAAAE,kBAAA;EAENH,MAAA,CAAOI,GAAI,CAAA,uBAAA,EAAyBC,IAAS,CAAAA,QAAA,CAAAN,GAAA,EAAKE,WAAW,CAAC,CAAA;EAE9D,MAAMK,kBAA0C,CAAA,CAAC;EAEtC,KAAA,MAAAC,cAAA,IAAkBL,SAASJ,OAAS,EAAA;IAC7C,MAAMU,mBAAmBD,cAAe,CAAAE,QAAA;IAExC,MAAMC,MAAM,MAAMC,gBAAA,CAAAC,OAAA,CAChB;MACEC,IAAA,EAAMlB,YAAa,CAAAY,cAAA,CAAeM,IAAI,CAAA;MACtCC,MAAMP,cAAe,CAAAO,IAAA;MACrBC,SAASR,cAAe,CAAAS,WAAA;MACxBP,UAAUD,gBAAmB,GAACS,IAAS,IAAAT,gBAAA,CAAiBS,IAAI,CAAI,GAAA,KAAA,CAAA;MAChEC,OAAA,EACE,OAAOX,cAAe,CAAAW,OAAA,KAAY,aAC9BX,cAAe,CAAAW,OAAA,CAAQZ,eAAe,CAAA,GACtCC,cAAe,CAAAW;IACvB,CAAA,EACA;MAACC,QAAU,EAAAA,CAAA,KAAMC,OAAQ,CAAAC,IAAA,CAAK,CAAC;IAAC,CAAA,CAClC;IAEAf,eAAA,CAAgBC,cAAe,CAAAO,IAAI,CAAI,GAAAP,cAAA,CAAee,QAClDf,cAAe,CAAAe,KAAA,CAAMZ,GAAI,CAAAH,cAAA,CAAeO,IAAI,CAAC,CAC7C,GAAAJ,GAAA,CAAIH,eAAeO,IAAI,CAAA;EAC7B;EAEA,MAAMS,WAAoC,CAAA,CAAC;EAEhC,KAAA,MAAAC,eAAA,IAAmBtB,SAASqB,QAAU,EAAA;IACzC,MAAAb,GAAA,GAAMc,eAAgB,CAAAC,QAAA,GACxB,MAAMd,gBAAA,CAAAC,OAAA,CACJ;MACEC,IAAM,EAAA,SAAA;MACNC,IAAM,EAAA,SAAA;MACNC,OAAA,SAAAW,MAAA,CAAgBF,eAAgB,CAAAV,IAAA,MAAA;MAChCI,SAASM,eAAgB,CAAAN;IAC3B,CAAA,EACA;MAACC,QAAU,EAAAA,CAAA,KAAMC,OAAQ,CAAAC,IAAA,CAAK,CAAC;IAAC,CAElC,CAAA,GAAA,KAAA,CAAA;IAEJE,QAAA,CAASC,gBAAgBV,IAAI,CAAA,GAAA,CAAIJ,GAAK,IAAA,IAAA,GAAA,KAAA,CAAA,GAAAA,GAAA,CAAAiB,OAAA,KAAW,CAACH,eAAgB,CAAAC,QAAA;EACpE;EAEA,MAAMG,KAAQ,GAAA,MAAM1B,QAAS,CAAA2B,QAAA,CAASvB,iBAAiBiB,QAAQ,CAAA;EAEzDK,KAAA,CAAAE,IAAA,CAAK,CAACC,CAAA,EAAGC,CAAM,KAAA;IACnB,OAAOD,CAAE,CAAAjB,IAAA,CAAKmB,aAAc,CAAAD,CAAA,CAAElB,IAAI,CAAA;EAAA,CACnC,CAAA;EAED,KAAA,MAAWoB,QAAQN,KAAO,EAAA;IACxB,MAAMO,QAAW,GAAAC,IAAA,CAAAA,OAAA,CAAQnC,WAAa,EAAAiC,IAAA,CAAKpB,IAAI,CAAA;IAEzC,MAAAuB,aAAA,CAAOC,IAAAA,CAAAA,OAAQ,CAAAH,QAAQ,CAAC,CAAA;IAC9B,MAAMI,EAAAA,CAAAA,UAAUJ,QAAU,EAAAD,IAAA,CAAKM,QAAS,CAAAC,IAAA,CAAA,IAAS,IAAI,CAAA;IAErDzC,MAAA,CAAO0C,OAAQ,UAAAhB,MAAA,CAASrB,IAAAA,CAAAA,QAAS,CAAAN,GAAA,EAAKoC,QAAQ,CAAG,CAAA,CAAA;EACnD;AACF;ACjFO,SAASQ,qBAAwBC,MAAoD,EAAA;EACnF,OAAAA,MAAA;AACT;ACHA,eAAsBC,iBAAiBC,OAAmC,EAAA;EACxE,OAAA,CAAQ,MAAMC,EAAA,CAAAA,OAAA,CAAQD,OAAO,CAAA,EAAGE,MAAW,KAAA,CAAA;AAC7C;ACKA,MAAMC,OAAU,GAAA,iEAAA;AAET,MAAMC,kBAA+B,MAAAC,IAAA,IAAsC;EAAA,IAA/B;IAACpD,GAAK;YAAAC,QAAA;IAAQC;GAAiB,GAAAkD,IAAA;EAXlF,IAAAC,EAAA,EAAAC,EAAA;EAYE,MAAMC,YAAY,MAAMC,+BAAA,CAAe;IAACxD,GAAK;IAAAc,IAAA,EAAM;GAAS,CAAA;EAErD,OAAA;IACLf,OAAS,EAAA,CACP6C,oBAAoD,CAAA;MAClD7B,IAAM,EAAA,MAAA;MACND,IAAM,EAAA,QAAA;MACNG,WAAa,EAAA,SAAA;MACbP,QAAA,EAAW+C,CAAM,IAAA;QACf,IAAI,CAACA,CAAA,EAAU,OAAA,IAAA;QAEX,IAAA;UACFC,oBAAA,CAAA7C,OAAA,CAAY4C,CAAC,CAAA;UAEN,OAAA,IAAA;iBACAE,GAAP,EAAA;UACO,OAAA,iBAAA;QACT;MACF,CAAA;MACApC,KAAA,EAAQkC,CAAM,IAAA;QACZ,IAAI,CAACA,CAAA,EAAU,OAAA,IAAA;QAET,MAAAG,MAAA,GAASF,6BAAYD,CAAC,CAAA;QAErB,OAAA;UAACI,QAAQD,MAAO,CAAAC,MAAA;UAAQC,OAAOF,MAAO,CAAAE,KAAA;UAAO/C,IAAM,EAAA6C,MAAA,CAAO7C;SAAI;MACvE;IAAA,CACD,CAAA,EACD6B,oBAAqB,CAAA;MACnB7B,IAAM,EAAA,SAAA;MACND,IAAM,EAAA,QAAA;MACNG,WAAa,EAAA,cAAA;MACbE,OAAA,EAAUpB,OAAS,IAAA;QA3C3BsD,IAAAA,GAAAA;QA2C8B,OAAA,CAAA,CAAAA,GAAA,GAAAtD,OAAA,CAAQgE,IAAR,KAAA,IAAA,GAAA,KAAA,CAAA,GAAAV,IAActC,IAAQ,KAAA,KAAA,CAAA;MAAA,CAAA;MAC5CL,QAAA,EAAW+C,CAAM,IAAA;QACf,IAAI,CAACA,CAAA,EAAU,OAAA,0BAAA;QAET,MAAAO,KAAA,GAAQd,OAAQ,CAAAe,IAAA,CAAKR,CAAC,CAAA;QAE5B,IAAI,CAACO,KAAO,EAAA;UACH,OAAA,sBAAA;QACT;QAEO,OAAA,IAAA;MACT,CAAA;MACAzC,KAAA,EAAQkC,CAAM,IAAA;QACZ,IAAI,CAACA,CAAG,EAAA;UACA,MAAA,IAAIS,MAAM,0BAA0B,CAAA;QAC5C;QAEM,MAAAF,KAAA,GAAQd,OAAQ,CAAAe,IAAA,CAAKR,CAAC,CAAA;QAE5B,IAAI,CAACO,KAAO,EAAA;UACJ,MAAA,IAAIE,MAAM,sBAAsB,CAAA;QACxC;QAEA,MAAM,CAACC,KAAO,EAAApD,IAAI,CAAI,GAAA0C,CAAA,CAAEW,MAAM,GAAG,CAAA;QAEjC,OAAO;UAACD,KAAA;UAAOpD,IAAM;UAAAsD,QAAA,EAAUZ;QAAC,CAAA;MAClC;IAAA,CACD,CAAA,EACDb,oBAAqB,CAAA;MACnB7B,IAAM,EAAA,aAAA;MACND,IAAM,EAAA,QAAA;MACNG,WAAa,EAAA;IAAA,CACd,CAAA,EACD2B,oBAAqB,CAAA;MACnB7B,IAAM,EAAA,YAAA;MACND,IAAM,EAAA,QAAA;MACNG,WAAa,EAAA,qBAAA;MACbE,OAAA,EAAA,CAASkC,EAAW,GAAAE,SAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAAA,SAAA,CAAAe,IAAA,KAAX,IAAiB,GAAA,KAAA,CAAA,GAAAjB,EAAA,CAAAtC;IAAA,CAC3B,CAAA,EACD6B,oBAAqB,CAAA;MACnB7B,IAAM,EAAA,aAAA;MACND,IAAM,EAAA,QAAA;MACNG,WAAa,EAAA,sBAAA;MACbE,OAAA,EAAA,CAASmC,EAAW,GAAAC,SAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAAA,SAAA,CAAAe,IAAA,KAAX,IAAiB,GAAA,KAAA,CAAA,GAAAhB,EAAA,CAAAiB;IAAA,CAC3B,CAAA,EACD3B,oBAAqB,CAAA;MACnB7B,IAAM,EAAA,SAAA;MACND,IAAM,EAAA,QAAA;MACNG,WAAa,EAAA,iBAAA;MACbE,OAAS,EAAA,KAAA;MACTT,QAAA,EAAW+C,CAAM,IAAA;QACf,IAAI,CAACA,CAAA,EAAU,OAAA,qBAAA;QAER,OAAA,IAAA;MACT;IAAA,CACD,CAAA,CACH;IAEAjC,QAAU,EAAA,CACR;MACET,IAAM,EAAA,QAAA;MACNW,QAAU,EAAA,IAAA;MACVP,OAAS,EAAA;IACX,CAAA,EACA;MACEJ,IAAM,EAAA,YAAA;MACNW,QAAU,EAAA,IAAA;MACVP,OAAS,EAAA;IACX,CAAA,CACF;IAEA,MAAMW,QAASA,CAAA/B,OAAA,EAASyB,QAAU,EAAA;MAAA,IAAAgD,YAAA,EAAAC,oBAAA;MAlHtCpB,IAAAA,GAAAA;MAmHY,MAAA;QAACqB,OAAS;QAAAX;MAAQ,CAAA,GAAAhE,OAAA;MAClB,MAAA;QAACsE,QAAU,EAAAtD;MAAQ,CAAA,GAAA2D,OAAA;MAEzB,MAAMC,MACJ,IAAAH,YAAA,GAAA,CAACzE,OAAQ,CAAA6E,UAAA,EAAY7E,QAAQ8E,WAAe,QAAAlD,MAAA,CAAI5B,OAAQ,CAAA8E,WAAA,MAAc,EACnEC,MAAO,CAAAC,OAAO,CACd,CAAAC,IAAA,CAAK,GAAG,CAAK,cAAAR,YAAA,cAAAA,YAAA,GAAA,KAAA,CAAA;MAElB,MAAMS,cAAiC,GAAA;QACrCC,cAAgB,EAAA,KAAA;QAChBC,UAAY,EAAA,GAAA;QACZC,IAAM,EAAA,KAAA;QACNC,WAAa,EAAA,IAAA;QACbC,QAAU,EAAA,CAAA;QACVC,OAAA,EAAS,CAAC,6BAA6B,CAAA;QACvCC,SAAW,EAAA,CACT;UACE3D,KAAA,EAAO,CAAC,OAAO,CAAA;UACf9B,OAAS,EAAA;YACPsF,WAAa,EAAA;UACf;QACF,CAAA;MACF,CACF;MAEA,MAAMI,OAGF,GAAA;QACF1E,IAAA;QACA2E,OAAS,EAAA,OAAA;QACTzE,WAAA,GAAAwD,oBAAA,GAAa1E,QAAQkB,WAAe,cAAAwD,oBAAA,cAAAA,oBAAA,GAAA,KAAA,CAAA;QACpCkB,UAAU,EAAC;QACXC,SAAS7F,OAAQ,CAAA6F,OAAA;QACjBjB,MAAA;QACA7D,IAAM,EAAA,QAAA;QACN+E,OAAS,EAAA;UACP,GAAK,EAAA;YACHC,KAAO,EAAA,KAAA,CAAA;YACPjC,MAAA,EAAQrC,QAAS,CAAAuE,UAAA,GAAa,gBAAmB,GAAA,gBAAA;YACjDC,OAAS,EAAA,kBAAA;YACTC,MAAQ,EAAA,iBAAA;YACRpF,OAAS,EAAA;UACX,CAAA;UACA,gBAAkB,EAAA;QACpB,CAAA;QACAqF,IAAM,EAAA,kBAAA;QACNC,MAAQ,EAAA,iBAAA;QACRtC,MAAA,EAAQrC,QAAS,CAAAuE,UAAA,GAAa,gBAAmB,GAAA,gBAAA;QACjDlE,KAAA,EAAO,CAAC,MAAA,EAAQ,KAAK,CAAA;QACrBuE,OAAS,EAAA;UACPC,KAAO,EAAA,iCAAA;UACPC,KAAO,EAAA,aAAA;UACPC,MAAQ,EAAA,6CAAA;UACR,WAAa,EAAA,oBAAA;UACb,WAAa,EAAA;QACf,CAAA;QACAC,QAAU,EAAAvB,cAAA;QACV,aAAe,EAAA;UACb,GAAA,EAAK,CAAC,2CAA2C;QACnD,CAAA;QACAwB,cAAc,CAAC,CAAA;QACfC,eAAiB,EAAA;UACf,mBAAqB,EAAA,GAAA;UACrB,aAAe,EAAA,GAAA;UACf,aAAe,EAAA,GAAA;UACfF,QAAU,EAAA,GAAA;UACV,6BAA+B,EAAA,GAAA;UAC/BG,MAAQ,EAAA;QACV,CAAA;QACAC,OAAS,EAAA;UACPC,IAAM,EAAA;QACR;MAAA,CACF;MAEA,MAAMhF,QAA2B,EAAC;MAGlCA,KAAA,CAAMiF,IAAK,CAAA;QACT/F,IAAM,EAAA,eAAA;QACN0B,QAAU,EAAAsE,OAAAA,CAAAA,OAAA,CAAAC,eAAA,KAAAA,eAAA,GAAAC,sBAAA;MAAA,CAWX,CAAA;MAGDpF,KAAA,CAAMiF,IAAK,CAAA;QACT/F,IAAM,EAAA,YAAA;QACN0B,QAAU,EAAAsE,OAAAA,CAAAA,OAAA,CAAAG,gBAAA,KAAAA,gBAAA,GAAAD,sBAAA;MAAA,CASX,CAAA;MAEDpF,KAAA,CAAMiF,IAAK,CAAA;QACT/F,IAAM,EAAA,iBAAA;QACN0B,QAAU,EAAAsE,OAAAA,CAAAA,OAAA,CAAAI,gBAAA,KAAAA,gBAAA,GAAAF,sBAAA;MAAA,CAIX,CAAA;MAED,IAAIlD,IAAM,EAAA;QACR0B,OAAA,CAAQ2B,UAAa,GAAA;UACnBtG,IAAM,EAAA,KAAA;UACNuG,6BAAsBtD,IAAA,CAAKF,MAAU,OAAAlC,MAAA,CAAAoC,IAAA,CAAKD,mBAASC,IAAK,CAAAhD,IAAA;QAAA,CAC1D;QACA0E,OAAA,CAAQ6B,IAAO,GAAA;UACbD,uBAAgBtD,IAAA,CAAKF,MAAU,OAAAlC,MAAA,CAAAoC,IAAA,CAAKD,mBAASC,IAAK,CAAAhD,IAAA;QAAA,CACpD;QACA0E,OAAA,CAAQ8B,6BAAsBxD,IAAA,CAAKF,MAAU,OAAAlC,MAAA,CAAAoC,IAAA,CAAKD,mBAASC,IAAK,CAAAhD,IAAA,YAAA;MAClE;MAEA,IAAIS,SAASuE,UAAY,EAAA;QACvBN,OAAA,CAAQK,KAAQ,GAAA,mBAAA;QAEhB,MAAM0B,UAAanE,GAAAA,CAAAA,GAAAA,GAAAoC,OAAQ,CAAAI,OAAA,KAAR,gBAAAxC,GAAkB,CAAA,GAAA,CAAA;QAEjC,IAAAoE,MAAAA,CAAAA,QAAA,CAASD,UAAU,CAAG,EAAA;UACxBA,UAAA,CAAW1B,KAAQ,GAAA,mBAAA;QACrB;QAEAL,OAAA,CAAQW,OAAU,GAAA;UAChB,GAAGX,OAAQ,CAAAW,OAAA;UACX,CAAC,YAAY,GAAG;QAAA,CAClB;QAEA,MAAMM,kBAAkBjB,OAAQ,CAAAiB,eAAA;QAE5B,IAAAe,MAAAA,CAAAA,QAAA,CAASf,eAAe,CAAG,EAAA;UAC7BA,eAAA,CAAgB,YAAY,CAAI,GAAA,GAAA;QAClC;MACF;MAEA,IAAIlF,SAASkG,MAAQ,EAAA;QACnB,MAAMC,YAAoB,GAAA;UACxBC,IAAM,EAAA,IAAA;UACNC,GAAK,EAAA;YACHC,OAAS,EAAA,IAAA;YACTC,GAAK,EAAA,IAAA;YACLlB,IAAM,EAAA;UACR,CAAA;UACAmB,OAAA,EAAS,CAAC,oBAAA,EAAsB,6BAA6B,CAAA;UAC7DC,aAAe,EAAA;YACbC,WAAa,EAAA,IAAA;YACbC,UAAY,EAAA;UACd,CAAA;UACA5C,OAAA,EAAS,CAAC,QAAA,EAAU,UAAU,CAAA;UAC9B6C,KAAO,EAAA;YACL,YAAc,EAAA,OAAA;YACd,WAAa,EAAA,OAAA;YACb,qBAAA,EAAuB,CAAC,MAAA,EAAQ;cAACC,QAAA,EAAU,OAAS;cAAAC,KAAA,EAAO,CAAC,MAAA,EAAQ,OAAO;aAAE;UAC/E;QAAA,CACF;QAEAzG,KAAA,CAAMiF,IAAK,CAAA;UACT/F,IAAM,EAAA,eAAA;UACN0B,QAAU,EAAAsE,OAAAA,CAAAA,OAAA,CAAAwB,gBAAA,KAAAA,gBAAA,GAAAtB,sBAAA;QAAA,CAGX,CAAA;QAEDxB,OAAA,CAAQW,OAAU,GAAA;UAChB,GAAGX,OAAQ,CAAAW,OAAA;UACXoC,IAAA,EAAMhH,QAAS,CAAAuE,UAAA,GACX,kCACA,GAAA;QAAA,CACN;QAEAN,OAAA,CAAQiB,eAAkB,GAAA;UACxB,GAAGjB,OAAQ,CAAAiB,eAAA;UACXgB,MAAQ,EAAA,GAAA;UACR,wBAA0B,EAAA,GAAA;UAC1B,sBAAwB,EAAA,GAAA;UACxB,wBAA0B,EAAA;QAAA,CAC5B;QAEA,IAAIlG,SAASuE,UAAY,EAAA;UACvBN,OAAA,CAAQiB,eAAkB,GAAA;YACxB,GAAGjB,OAAQ,CAAAiB,eAAA;YACX,kCAAoC,EAAA,GAAA;YACpC,2BAA6B,EAAA;UAAA,CAC/B;UAEA,MAAM+B,oBAA4B,GAAA;YAChC5G,KAAA,EAAO,CAAC,SAAA,EAAW,UAAU,CAAA;YAC7B6G,MAAQ,EAAA,2BAAA;YACRT,aAAe,EAAA;cACbU,OAAA,EAAS,CAAC,iBAAiB;YAC7B,CAAA;YACAX,OAAS,EAAA,CACP,oBAAA,EACA,6BAAA,EACA,8CAAA,EACA,uCAAA,CACF,CAAElD,OAAOC,OAAO,CAAA;YAChBQ,SAAS,CAAC,QAAA,EAAU,sBAAsB,UAAU,CAAA,CAAET,OAAOC,OAAO,CAAA;YACpEqD,KAAO,EAAA;cACL,mDAAqD,EAAA,OAAA;cACrD,0CAA4C,EAAA,KAAA;cAC5C,2CAA6C,EAAA,KAAA;cAC7C,uCAAyC,EAAA;YAC3C;UAAA,CACF;UAEaT,YAAA,CAAAnC,SAAA,GAAY,CAACiD,oBAAoB,CAAA;QAChD;QAEA5G,KAAA,CAAMiF,IAAK,CAAA;UACT/F,IAAM,EAAA,eAAA;UACN0B,QAAU,EAAA8D,MAAA,CACRlE,IAAA,CAAAA,OAAA,CAAQnC,aAAa,eAAe,CAAA,EACpC6G,eAAA,CAAA6B,gBAAA,KAAAA,gBAAA,GAAA3B,sBAAA,+IAImB4B,IAAK,CAAAC,SAAA,CAAUnB,YAAc,EAAA,IAAA,EAAM,CAAC,CAAA,GAEvD1C,cACF;QAAA,CACD,CAAA;MACH;MAEA,IAAIzD,SAASuE,UAAY,EAAA;QACvBlE,KAAA,CAAMiF,IAAK,CAAA;UACT/F,IAAM,EAAA,wBAAA;UACN0B,QAAU,EAAA8D,MAAA,CACRlE,IAAA,CAAAA,OAAA,CAAQnC,aAAa,wBAAwB,CAAA,EAC7C6G,eAAA,CAAAgC,gBAAA,KAAAA,gBAAA,GAAA9B,sBAAA,umCAgCAhC,cACF;QAAA,CACD,CAAA;QAEDpD,KAAA,CAAMiF,IAAK,CAAA;UACT/F,IAAM,EAAA,oBAAA;UACN0B,QAAU,EAAA8D,MAAA,CACRlE,IAAA,CAAAA,OAAA,CAAQnC,aAAa,oBAAoB,CAAA,EACzC6G,eAAA,CAAAiC,gBAAA,KAAAA,gBAAA,GAAA/B,sBAAA,sXAYAhC,cACF;QAAA,CACD,CAAA;QAEDpD,KAAA,CAAMiF,IAAK,CAAA;UACT/F,IAAM,EAAA,eAAA;UACN0B,QAAU,EAAA8D,MAAA,CACRlE,IAAA,CAAAA,OAAA,CAAQnC,aAAa,eAAe,CAAA,EACpC6G,eAAA,CAAAkC,gBAAA,KAAAA,gBAAA,GAAAhC,sBAAA,gcAaAhC,cACF;QAAA,CACD,CAAA;MACH;MAGA,IAAIzD,SAASuE,UAAY,EAAA;QACvBlE,KAAA,CAAMiF,IAAK,CAAA;UACT/F,IAAM,EAAA,mBAAA;UACN0B,QAAU,EAAA8D,MAAA,CACRlE,IAAA,CAAAA,OAAA,CAAQnC,aAAa,mBAAmB,CAAA,EACxC6G,eAAA,CAAAmC,gBAAA,KAAAA,gBAAA,GAAAjC,sBAAA,09BAeAhC,cACF;QAAA,CACD,CAAA;QAEDpD,KAAA,CAAMiF,IAAK,CAAA;UACT/F,IAAM,EAAA,cAAA;UACN0B,QAAU,EAAA8D,MAAA,CACRlE,IAAA,CAAAA,OAAA,CAAQnC,aAAa,cAAc,CAAA,EACnC6G,eAAA,CAAAoC,iBAAA,KAAAA,iBAAA,GAAAlC,sBAAA,iIAMAhC,cACF;QAAA,CACD,CAAA;MAAA,CACI,MAAA;QACLpD,KAAA,CAAMiF,IAAK,CAAA;UACT/F,IAAM,EAAA,mBAAA;UACN0B,QAAU,EAAA8D,MAAA,CACRlE,IAAA,CAAAA,OAAA,CAAQnC,aAAa,mBAAmB,CAAA,EACxC6G,eAAA,CAAAqC,iBAAA,KAAAA,iBAAA,GAAAnC,sBAAA,0uBAYAhC,cACF;QAAA,CACD,CAAA;QAEDpD,KAAA,CAAMiF,IAAK,CAAA;UACT/F,IAAM,EAAA,cAAA;UACN0B,QAAU,EAAA8D,MAAA,CACRlE,IAAA,CAAAA,OAAA,CAAQnC,aAAa,cAAc,CAAA,EACnC6G,eAAA,CAAAsC,iBAAA,KAAAA,iBAAA,GAAApC,sBAAA,2HAMAhC,cACF;QAAA,CACD,CAAA;MACH;MAGI,IAAA;QAAA,IAAAqE,qBAAA;QACF7D,OAAA,CAAQgB,eAAe,MAAM8C,iBAAA,EAAAD,qBAAA,GAAkB7D,OAAQ,CAAAgB,YAAA,cAAA6C,qBAAA,cAAAA,qBAAA,GAAgB,CAAA,CAAE,CAAA;eAClEE,KAAP,EAAA;QACAvJ,QAAA,CAAOwJ,IAAK,CAAAD,KAAA,YAAiBtF,KAAQ,GAAAsF,KAAA,CAAMxI,UAAUwI,KAAK,CAAA;MAC5D;MAGI,IAAA;QAAA,IAAAE,qBAAA;QACFjE,OAAA,CAAQiB,kBAAkB,MAAM6C,iBAAA,EAAAG,qBAAA,GAAkBjE,OAAQ,CAAAiB,eAAA,cAAAgD,qBAAA,cAAAA,qBAAA,GAAmB,CAAA,CAAE,CAAA;eACxEF,KAAP,EAAA;QACAvJ,QAAA,CAAOwJ,IAAK,CAAAD,KAAA,YAAiBtF,KAAQ,GAAAsF,KAAA,CAAMxI,UAAUwI,KAAK,CAAA;MAC5D;MAEA3H,KAAA,CAAMiF,IAAK,CAAA;QACT/F,IAAM,EAAA,cAAA;QACN0B,QAAU,EAAA8D,MAAA,CACRlE,IAAA,CAAAA,OAAA,CAAQnC,aAAa,cAAc,CAAA,EACnC2I,IAAK,CAAAC,SAAA,CAAUrD,OAAS,EAAA,IAAA,EAAM,CAAC,CAAA,EAC/BR,cACF;MAAA,CACD,CAAA;MAEM,OAAApD,KAAA;IACT;EAAA,CACF;AACF,CAAA;AAEA,SAAS0E,MAAAA,CAAOoD,QAAkB,EAAAC,KAAA,EAAeC,eAAiC,EAAA;EAChF,OAAOrD,iBAAAA,CAAAA,QAASD,MAAO,CAAAqD,KAAA,EAAO;IAAC,GAAGC,eAAA;IAAiBF;GAAS,CAAA;AAC9D;AAEA,eAAeJ,kBAAkBO,IAA8B,EAAA;EACvD,MAAAC,WAAA,GAAcC,MAAO,CAAAC,OAAA,CAAQH,IAAI,CAAA;EACvC,MAAMI,aAAqC,CAAA,CAAC;EAE5C,KAAA,MAAWC,SAASJ,WAAa,EAAA;IACzB,MAAA,CAAChJ,IAAM,EAAA2E,OAAO,CAAI,GAAAyE,KAAA;IACxB,MAAMC,aAAgB,GAAA,MAAMC,yBAAAA,CAAAA,OAAiB,CAAAtJ,IAAA,EAAM2E,OAAO,CAAA;IAE1DwE,UAAA,CAAWnJ,IAAI,CAAA,GAAIqJ,aAAgB,OAAAzI,MAAA,CAAIyI,aAAkB,IAAA1E,OAAA;EAC3D;EAEO,OAAAwE,UAAA;AACT;AC7hBA,eAAsBI,KAAKvK,OAAqD,EAAA;EAC1E,IAAA,CAACA,QAAQC,GAAK,EAAA;IACV,MAAA,IAAIkE,MAAM,8BAA8B,CAAA;EAChD;EAEI,IAAA,CAACnE,QAAQwK,IAAM,EAAA;IACX,MAAA,IAAIrG,MAAM,+BAA+B,CAAA;EACjD;EAEA,MAAMjE,WAASuK,MAAAA,CAAAA,YAAa,EAAA;EAE5B,MAAMtK,WAAc,GAAAmC,IAAAA,CAAAA,OAAA,CAAQtC,OAAQ,CAAAC,GAAA,EAAKD,QAAQwK,IAAI,CAAA;EAErD,MAAME,kBAAkBvK,WAAW,CAAA;EAEnC,MAAMJ,kBAAmB,CAAA;IACvBE,KAAKD,OAAQ,CAAAC,GAAA;IAAAC,MAAA,EACbA,QAAA;IACAE,QAAU,EAAAgD,eAAA;IACVjD;EAAA,CACD,CAAA;AACH;AAEA,eAAeuK,kBAAkBvK,WAAoC,EAAA;EAC7D,MAAAwK,MAAA,GAASC,kBAAWzK,WAAW,CAAA;EAErC,IAAI,CAACwK,MAAQ,EAAA;IACX,MAAMpI,MAAAA,CAAAA,OAAOpC,WAAW,CAAA;IAExB;EACF;EAEA,MAAM0K,GAAO,GAAA,CAAA,MAAMC,EAAAA,CAAAA,KAAM,CAAA3K,WAAW,GAAG4K,WAAY,CAAA,CAAA;EAEnD,IAAI,CAACF,GAAK,EAAA;IACF,MAAA,IAAI1G,MAAM,6CAA6C,CAAA;EAC/D;EAEM,MAAA6G,KAAA,GAAQ,MAAMjI,gBAAA,CAAiB5C,WAAW,CAAA;EAEhD,IAAI,CAAC6K,KAAO,EAAA;IACJ,MAAA,IAAI7G,MAAM,oCAAoC,CAAA;EACtD;AACF;;;"}
@@ -0,0 +1,16 @@
1
+ 'use strict';
2
+
3
+ var init = require('./init-ab36343b.cjs');
4
+ var handleError = require('./handleError-13d87f55.cjs');
5
+ async function initAction(options) {
6
+ try {
7
+ await init.init({
8
+ cwd: process.cwd(),
9
+ path: options.path
10
+ });
11
+ } catch (err) {
12
+ handleError.handleError(err);
13
+ }
14
+ }
15
+ exports.initAction = initAction;
16
+ //# sourceMappingURL=initAction-d18cf4f2.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"initAction-d18cf4f2.cjs","sources":["../../src/cli/initAction.ts"],"sourcesContent":["import {init} from '../node/init'\nimport {handleError} from './handleError'\n\nexport async function initAction(options: {path: string}): Promise<void> {\n try {\n await init({\n cwd: process.cwd(),\n path: options.path,\n })\n } catch (err) {\n handleError(err)\n }\n}\n"],"names":["initAction","options","init","cwd","process","path","err","handleError"],"mappings":";;;;AAGA,eAAsBA,WAAWC,OAAwC,EAAA;EACnE,IAAA;IACF,MAAMC,SAAK,CAAA;MACTC,GAAA,EAAKC,QAAQD,GAAI,CAAA,CAAA;MACjBE,MAAMJ,OAAQ,CAAAI;IAAA,CACf,CAAA;WACMC,GAAP,EAAA;IACAC,WAAA,CAAAA,WAAA,CAAYD,GAAG,CAAA;EACjB;AACF;"}