@sanity/pkg-utils 7.2.10-canary.0 → 7.2.10-canary.2
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/dist/_chunks-cjs/index.cjs +10 -105
- package/dist/_chunks-cjs/index.cjs.map +1 -1
- package/dist/_chunks-cjs/resolveRolldownConfig.cjs +114 -0
- package/dist/_chunks-cjs/resolveRolldownConfig.cjs.map +1 -0
- package/dist/_chunks-es/index.js +2311 -0
- package/dist/_chunks-es/index.js.map +1 -0
- package/dist/_chunks-es/resolveRolldownConfig.js +117 -0
- package/dist/_chunks-es/resolveRolldownConfig.js.map +1 -0
- package/dist/cli.cjs +1 -1
- package/dist/cli.d.cts +1 -1
- package/dist/index.d.cts +486 -443
- package/dist/index.d.ts +486 -443
- package/dist/index.js +1 -2389
- package/dist/index.js.map +1 -1
- package/package.json +7 -8
- package/src/cli/buildAction.ts +0 -21
- package/src/cli/checkAction.ts +0 -14
- package/src/cli/handleError.ts +0 -11
- package/src/cli/index.ts +0 -65
- package/src/cli/initAction.ts +0 -13
- package/src/cli/watchAction.ts +0 -14
- package/src/global.ts +0 -5
- package/src/node/__snapshots__/strict.test.ts.snap +0 -154
- package/src/node/build.ts +0 -100
- package/src/node/check.ts +0 -188
- package/src/node/consoleSpy.ts +0 -39
- package/src/node/core/config/defineConfig.ts +0 -6
- package/src/node/core/config/findConfigFile.ts +0 -31
- package/src/node/core/config/index.ts +0 -4
- package/src/node/core/config/loadConfig.ts +0 -37
- package/src/node/core/config/resolveConfigProperty.ts +0 -15
- package/src/node/core/config/types.ts +0 -315
- package/src/node/core/contexts/buildContext.ts +0 -32
- package/src/node/core/contexts/index.ts +0 -1
- package/src/node/core/defaults.ts +0 -4
- package/src/node/core/findCommonPath.ts +0 -35
- package/src/node/core/isRecord.ts +0 -4
- package/src/node/core/pkg/helpers.ts +0 -36
- package/src/node/core/pkg/index.ts +0 -5
- package/src/node/core/pkg/loadPkg.ts +0 -21
- package/src/node/core/pkg/loadPkgWithReporting.ts +0 -154
- package/src/node/core/pkg/parseExports.ts +0 -233
- package/src/node/core/pkg/pkgExt.ts +0 -22
- package/src/node/core/pkg/types.ts +0 -60
- package/src/node/core/pkg/validateExports.ts +0 -30
- package/src/node/core/pkg/validatePkg.ts +0 -82
- package/src/node/core/template/createFromTemplate.ts +0 -84
- package/src/node/core/template/define.ts +0 -6
- package/src/node/core/template/index.ts +0 -3
- package/src/node/core/template/types.ts +0 -45
- package/src/node/core/ts/index.ts +0 -1
- package/src/node/core/ts/loadTSConfig.ts +0 -19
- package/src/node/fileExists.ts +0 -12
- package/src/node/getFilesize.ts +0 -8
- package/src/node/globFiles.ts +0 -6
- package/src/node/index.ts +0 -48
- package/src/node/init.ts +0 -54
- package/src/node/isEmptyDirectory.ts +0 -5
- package/src/node/logger.ts +0 -32
- package/src/node/printExtractMessages.ts +0 -59
- package/src/node/printPackageTree.ts +0 -95
- package/src/node/resolveBrowserTarget.ts +0 -17
- package/src/node/resolveBuildContext.ts +0 -202
- package/src/node/resolveBuildTasks.ts +0 -199
- package/src/node/resolveNodeTarget.ts +0 -9
- package/src/node/resolveWatchTasks.ts +0 -132
- package/src/node/spinner.ts +0 -17
- package/src/node/strict.test-d.ts +0 -6
- package/src/node/strict.ts +0 -84
- package/src/node/tasks/dts/DtsError.ts +0 -11
- package/src/node/tasks/dts/buildTypes.ts +0 -42
- package/src/node/tasks/dts/createApiExtractorConfig.ts +0 -67
- package/src/node/tasks/dts/createTSDocConfig.ts +0 -53
- package/src/node/tasks/dts/doExtract.ts +0 -80
- package/src/node/tasks/dts/dtsTask.ts +0 -50
- package/src/node/tasks/dts/dtsWatchTask.ts +0 -165
- package/src/node/tasks/dts/extractModuleBlocks.ts +0 -45
- package/src/node/tasks/dts/extractTypes.ts +0 -128
- package/src/node/tasks/dts/getExtractMessagesConfig.ts +0 -109
- package/src/node/tasks/dts/getTargetPaths.ts +0 -72
- package/src/node/tasks/dts/printDiagnostic.ts +0 -42
- package/src/node/tasks/dts/types.ts +0 -30
- package/src/node/tasks/index.ts +0 -19
- package/src/node/tasks/rolldown/resolveRolldownConfig.ts +0 -202
- package/src/node/tasks/rolldown/rolldownDtsTask.ts +0 -155
- package/src/node/tasks/rollup/resolveRollupConfig.ts +0 -264
- package/src/node/tasks/rollup/rollupTask.ts +0 -154
- package/src/node/tasks/rollup/rollupWatchTask.ts +0 -77
- package/src/node/tasks/types.ts +0 -69
- package/src/node/templates/default/index.ts +0 -1
- package/src/node/templates/default/template.ts +0 -547
- package/src/node/templates/index.ts +0 -1
- package/src/node/watch.ts +0 -66
- package/src/node/watchConfigFiles.ts +0 -53
- package/src/node/watchFiles.ts +0 -31
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var path = require("node:path"), rollupPlugin = require("@optimize-lodash/rollup-plugin"), pluginBabel = require("@rollup/plugin-babel"), terser = require("@rollup/plugin-terser"), rolldownPluginDts = require("rolldown-plugin-dts"), esbuild = require("rollup-plugin-esbuild"), consoleSpy = require("./consoleSpy.cjs");
|
|
3
|
+
function _interopDefaultCompat(e) {
|
|
4
|
+
return e && typeof e == "object" && "default" in e ? e : { default: e };
|
|
5
|
+
}
|
|
6
|
+
var path__default = /* @__PURE__ */ _interopDefaultCompat(path), terser__default = /* @__PURE__ */ _interopDefaultCompat(terser), esbuild__default = /* @__PURE__ */ _interopDefaultCompat(esbuild);
|
|
7
|
+
function resolveRolldownConfig(ctx, buildTask) {
|
|
8
|
+
const { format, runtime, target } = buildTask, { config, cwd, exports: _exports, external, distPath, logger, pkg, ts } = ctx, outputExt = consoleSpy.pkgExtMap[pkg.type || "commonjs"][format], minify = config?.minify ?? !1, outDir = path__default.default.relative(cwd, distPath), pathAliases = Object.fromEntries(
|
|
9
|
+
Object.entries(ts.config?.options.paths || {}).map(([key, val]) => [key, path__default.default.resolve(cwd, ts.config?.options.baseUrl || ".", val[0])])
|
|
10
|
+
), entries = buildTask.entries.map((entry) => ({
|
|
11
|
+
...entry,
|
|
12
|
+
name: path__default.default.relative(outDir, entry.output).replace(/\.[^/.]+$/, "")
|
|
13
|
+
}), {}), exportIds = _exports && Object.keys(_exports).map((exportPath) => path__default.default.join(pkg.name, exportPath)), sourcePaths = _exports && Object.values(_exports).map((e) => path__default.default.resolve(cwd, e.source)), replacements = Object.fromEntries(
|
|
14
|
+
Object.entries(config?.define || {}).map(([key, val]) => [key, JSON.stringify(val)])
|
|
15
|
+
), { optimizeLodash: enableOptimizeLodash = hasDependency(pkg, "lodash") } = config?.rollup || {};
|
|
16
|
+
[
|
|
17
|
+
esbuild__default.default({
|
|
18
|
+
target,
|
|
19
|
+
tsconfig: ctx.ts.configPath || "tsconfig.json",
|
|
20
|
+
treeShaking: !0,
|
|
21
|
+
minifySyntax: config?.minify !== !1,
|
|
22
|
+
supported: {
|
|
23
|
+
"template-literal": !0
|
|
24
|
+
}
|
|
25
|
+
}),
|
|
26
|
+
Array.isArray(config?.babel?.plugins) && pluginBabel.getBabelOutputPlugin({
|
|
27
|
+
babelrc: !1,
|
|
28
|
+
plugins: config.babel.plugins
|
|
29
|
+
}),
|
|
30
|
+
enableOptimizeLodash && rollupPlugin.optimizeLodashImports({
|
|
31
|
+
useLodashEs: format === "esm" && hasDependency(pkg, "lodash-es") ? !0 : void 0,
|
|
32
|
+
...typeof config?.rollup?.optimizeLodash == "boolean" ? {} : config?.rollup?.optimizeLodash
|
|
33
|
+
}),
|
|
34
|
+
minify && terser__default.default({
|
|
35
|
+
compress: { directives: !1, passes: 10 },
|
|
36
|
+
ecma: 2020,
|
|
37
|
+
output: {
|
|
38
|
+
comments: (_node, comment) => {
|
|
39
|
+
const text = comment.value;
|
|
40
|
+
return comment.type === "comment2" ? /@preserve|@license|@cc_on/i.test(text) : !1;
|
|
41
|
+
},
|
|
42
|
+
preserve_annotations: !0
|
|
43
|
+
}
|
|
44
|
+
})
|
|
45
|
+
].filter(Boolean);
|
|
46
|
+
const hashChunkFileNames = config?.rollup?.hashChunkFileNames ?? !1, chunkFileNames = `${hashChunkFileNames ? "_chunks" : "_chunks-[format]"}/${hashChunkFileNames ? "[name]-[hash]" : "[name]"}${outputExt}`, entryFileNames = `[name]${outputExt}`, inputOptions = {
|
|
47
|
+
cwd,
|
|
48
|
+
jsx: {
|
|
49
|
+
mode: config?.jsx === "automatic" ? "automatic" : config?.jsx === "preserve" ? "preserve" : config?.jsx === "transform" ? "classic" : "automatic",
|
|
50
|
+
factory: config?.jsxFactory,
|
|
51
|
+
fragment: config?.jsxFragment,
|
|
52
|
+
importSource: config?.jsxImportSource
|
|
53
|
+
},
|
|
54
|
+
define: pkg.name === "@sanity/pkg-utils" ? { ...replacements } : {
|
|
55
|
+
"process.env.PKG_FORMAT": JSON.stringify(format),
|
|
56
|
+
"process.env.PKG_RUNTIME": JSON.stringify(runtime),
|
|
57
|
+
"process.env.PKG_VERSION": JSON.stringify(process.env.PKG_VERSION || pkg.version),
|
|
58
|
+
...replacements
|
|
59
|
+
},
|
|
60
|
+
platform: buildTask.type === "rolldown:dts" || runtime === "node" ? "node" : runtime === "browser" ? "browser" : "neutral",
|
|
61
|
+
resolve: {
|
|
62
|
+
alias: pathAliases,
|
|
63
|
+
tsconfigFilename: ctx.ts.configPath || "tsconfig.json"
|
|
64
|
+
},
|
|
65
|
+
transform: {
|
|
66
|
+
target
|
|
67
|
+
},
|
|
68
|
+
experimental: {
|
|
69
|
+
attachDebugInfo: "none"
|
|
70
|
+
},
|
|
71
|
+
external: (id, importer) => {
|
|
72
|
+
if (exportIds?.includes(id))
|
|
73
|
+
return !0;
|
|
74
|
+
if (importer && (id.startsWith(".") || id.startsWith("/"))) {
|
|
75
|
+
const idPath = path__default.default.resolve(path__default.default.dirname(importer), id);
|
|
76
|
+
if (sourcePaths?.includes(idPath))
|
|
77
|
+
return logger.warn(
|
|
78
|
+
`detected self-referencing import \u2013 treating as external: ${path__default.default.relative(
|
|
79
|
+
cwd,
|
|
80
|
+
idPath
|
|
81
|
+
)}`
|
|
82
|
+
), !0;
|
|
83
|
+
}
|
|
84
|
+
const idParts = id.split("/"), name = idParts[0].startsWith("@") ? `${idParts[0]}/${idParts[1]}` : idParts[0];
|
|
85
|
+
return !!(name && external.includes(name));
|
|
86
|
+
},
|
|
87
|
+
input: entries.reduce(
|
|
88
|
+
(acc, entry) => Object.assign(acc, { [entry.name]: entry.source }),
|
|
89
|
+
{}
|
|
90
|
+
),
|
|
91
|
+
plugins: [
|
|
92
|
+
rolldownPluginDts.dts({
|
|
93
|
+
emitDtsOnly: !0,
|
|
94
|
+
tsconfig: ctx.ts.configPath || "tsconfig.json",
|
|
95
|
+
isolatedDeclarations: !0
|
|
96
|
+
})
|
|
97
|
+
],
|
|
98
|
+
treeshake: !0
|
|
99
|
+
}, outputOptions = {
|
|
100
|
+
chunkFileNames,
|
|
101
|
+
dir: outDir,
|
|
102
|
+
entryFileNames,
|
|
103
|
+
esModule: !0,
|
|
104
|
+
format: buildTask.type === "rolldown:dts" ? "es" : format,
|
|
105
|
+
sourcemap: buildTask.type === "rolldown:dts" ? !1 : config?.sourcemap ?? !0,
|
|
106
|
+
hoistTransitiveImports: !1
|
|
107
|
+
};
|
|
108
|
+
return { inputOptions, outputOptions };
|
|
109
|
+
}
|
|
110
|
+
function hasDependency(pkg, packageName) {
|
|
111
|
+
return pkg.dependencies ? packageName in pkg.dependencies : pkg.peerDependencies ? packageName in pkg.peerDependencies : !1;
|
|
112
|
+
}
|
|
113
|
+
exports.resolveRolldownConfig = resolveRolldownConfig;
|
|
114
|
+
//# sourceMappingURL=resolveRolldownConfig.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolveRolldownConfig.cjs","sources":["../../src/node/tasks/rolldown/resolveRolldownConfig.ts"],"sourcesContent":["import path from 'node:path'\nimport {optimizeLodashImports} from '@optimize-lodash/rollup-plugin'\nimport {getBabelOutputPlugin} from '@rollup/plugin-babel'\nimport terser from '@rollup/plugin-terser'\nimport type {InputOptions, OutputOptions, Plugin} from 'rolldown'\nimport {dts as dtsPlugin} from 'rolldown-plugin-dts'\nimport esbuild from 'rollup-plugin-esbuild'\nimport type {BuildContext} from '../../core/contexts/buildContext'\nimport {pkgExtMap as extMap} from '../../core/pkg/pkgExt'\nimport type {PackageJSON} from '../../core/pkg/types'\nimport type {RolldownDtsTask} from '../types'\n\nexport interface RolldownConfig {\n inputOptions: InputOptions\n outputOptions: OutputOptions\n}\n\nexport function resolveRolldownConfig(\n ctx: BuildContext,\n buildTask: RolldownDtsTask,\n): RolldownConfig {\n const {format, runtime, target} = buildTask\n const {config, cwd, exports: _exports, external, distPath, logger, pkg, ts} = ctx\n const outputExt = extMap[pkg.type || 'commonjs'][format]\n const minify = config?.minify ?? false\n const outDir = path.relative(cwd, distPath)\n\n const pathAliases = Object.fromEntries(\n Object.entries(ts.config?.options.paths || {}).map(([key, val]) => {\n return [key, path.resolve(cwd, ts.config?.options.baseUrl || '.', val[0])]\n }),\n )\n\n const entries = buildTask.entries.map((entry) => {\n return {\n ...entry,\n name: path.relative(outDir, entry.output).replace(/\\.[^/.]+$/, ''),\n }\n }, {})\n\n const exportIds =\n _exports && Object.keys(_exports).map((exportPath) => path.join(pkg.name, exportPath))\n\n const sourcePaths = _exports && Object.values(_exports).map((e) => path.resolve(cwd, e.source))\n\n const replacements = Object.fromEntries(\n Object.entries(config?.define || {}).map(([key, val]) => [key, JSON.stringify(val)]),\n )\n\n const {optimizeLodash: enableOptimizeLodash = hasDependency(pkg, 'lodash')} = config?.rollup || {}\n\n // @ts-expect-error - TODO: fix this\n const _defaultPlugins = [\n esbuild({\n target,\n tsconfig: ctx.ts.configPath || 'tsconfig.json',\n treeShaking: true,\n minifySyntax: config?.minify !== false,\n supported: {\n 'template-literal': true,\n },\n }),\n Array.isArray(config?.babel?.plugins) &&\n getBabelOutputPlugin({\n babelrc: false,\n plugins: config.babel.plugins,\n }),\n enableOptimizeLodash &&\n optimizeLodashImports({\n useLodashEs: format === 'esm' && hasDependency(pkg, 'lodash-es') ? true : undefined,\n ...(typeof config?.rollup?.optimizeLodash === 'boolean'\n ? {}\n : config?.rollup?.optimizeLodash),\n }),\n minify &&\n terser({\n compress: {directives: false, passes: 10},\n ecma: 2020,\n output: {\n comments: (_node, comment) => {\n const text = comment.value\n const cType = comment.type\n\n // Check if this is a multiline comment\n if (cType === 'comment2') {\n // Keep licensing comments\n return /@preserve|@license|@cc_on/i.test(text)\n }\n\n return false\n },\n preserve_annotations: true,\n },\n }),\n ].filter(Boolean) as Plugin[]\n\n const hashChunkFileNames = config?.rollup?.hashChunkFileNames ?? false\n const chunksFolder = hashChunkFileNames ? '_chunks' : '_chunks-[format]'\n const chunkFileNames = `${chunksFolder}/${hashChunkFileNames ? '[name]-[hash]' : '[name]'}${outputExt}`\n const entryFileNames = `[name]${outputExt}`\n\n const inputOptions = {\n cwd,\n jsx: {\n mode:\n config?.jsx === 'automatic'\n ? 'automatic'\n : config?.jsx === 'preserve'\n ? 'preserve'\n : config?.jsx === 'transform'\n ? 'classic'\n : 'automatic',\n factory: config?.jsxFactory,\n fragment: config?.jsxFragment,\n importSource: config?.jsxImportSource,\n },\n define:\n pkg.name === '@sanity/pkg-utils'\n ? {...replacements}\n : {\n 'process.env.PKG_FORMAT': JSON.stringify(format),\n 'process.env.PKG_RUNTIME': JSON.stringify(runtime),\n 'process.env.PKG_VERSION': JSON.stringify(process.env['PKG_VERSION'] || pkg.version),\n ...replacements,\n },\n\n platform:\n buildTask.type === 'rolldown:dts'\n ? 'node'\n : runtime === 'node'\n ? 'node'\n : runtime === 'browser'\n ? 'browser'\n : 'neutral',\n\n resolve: {\n alias: pathAliases,\n tsconfigFilename: ctx.ts.configPath || 'tsconfig.json',\n },\n transform: {\n target,\n },\n experimental: {\n attachDebugInfo: 'none',\n },\n\n external: (id, importer) => {\n // Check if the id is a self-referencing import\n if (exportIds?.includes(id)) {\n return true\n }\n\n // Check if the id is a file path that points to an exported source file\n if (importer && (id.startsWith('.') || id.startsWith('/'))) {\n const idPath = path.resolve(path.dirname(importer), id)\n\n if (sourcePaths?.includes(idPath)) {\n logger.warn(\n `detected self-referencing import – treating as external: ${path.relative(\n cwd,\n idPath,\n )}`,\n )\n\n return true\n }\n }\n\n const idParts = id.split('/')\n\n const name = idParts[0].startsWith('@') ? `${idParts[0]}/${idParts[1]}` : idParts[0]\n\n if (name && external.includes(name)) {\n return true\n }\n\n return false\n },\n\n input: entries.reduce<{[entryAlias: string]: string}>(\n (acc, entry) => Object.assign(acc, {[entry.name]: entry.source}),\n {},\n ),\n\n plugins: [\n dtsPlugin({\n emitDtsOnly: true,\n tsconfig: ctx.ts.configPath || 'tsconfig.json',\n isolatedDeclarations: true,\n }),\n ],\n\n treeshake: true,\n } satisfies InputOptions\n const outputOptions = {\n chunkFileNames,\n dir: outDir,\n entryFileNames,\n esModule: true,\n format: buildTask.type === 'rolldown:dts' ? 'es' : format,\n sourcemap: buildTask.type === 'rolldown:dts' ? false : (config?.sourcemap ?? true),\n hoistTransitiveImports: false,\n } satisfies OutputOptions\n\n return {inputOptions, outputOptions}\n}\n\nfunction hasDependency(pkg: PackageJSON, packageName: string): boolean {\n return pkg.dependencies\n ? packageName in pkg.dependencies\n : pkg.peerDependencies\n ? packageName in pkg.peerDependencies\n : false\n}\n"],"names":["extMap","path","esbuild","getBabelOutputPlugin","optimizeLodashImports","terser","dtsPlugin"],"mappings":";;;;;;AAiBgB,SAAA,sBACd,KACA,WACgB;AAChB,QAAM,EAAC,QAAQ,SAAS,OAAM,IAAI,WAC5B,EAAC,QAAQ,KAAK,SAAS,UAAU,UAAU,UAAU,QAAQ,KAAK,GAAM,IAAA,KACxE,YAAYA,WAAA,UAAO,IAAI,QAAQ,UAAU,EAAE,MAAM,GACjD,SAAS,QAAQ,UAAU,IAC3B,SAASC,cAAAA,QAAK,SAAS,KAAK,QAAQ,GAEpC,cAAc,OAAO;AAAA,IACzB,OAAO,QAAQ,GAAG,QAAQ,QAAQ,SAAS,CAAE,CAAA,EAAE,IAAI,CAAC,CAAC,KAAK,GAAG,MACpD,CAAC,KAAKA,sBAAK,QAAQ,KAAK,GAAG,QAAQ,QAAQ,WAAW,KAAK,IAAI,CAAC,CAAC,CAAC,CAC1E;AAAA,EAAA,GAGG,UAAU,UAAU,QAAQ,IAAI,CAAC,WAC9B;AAAA,IACL,GAAG;AAAA,IACH,MAAMA,cAAAA,QAAK,SAAS,QAAQ,MAAM,MAAM,EAAE,QAAQ,aAAa,EAAE;AAAA,EAAA,IAElE,CAAE,CAAA,GAEC,YACJ,YAAY,OAAO,KAAK,QAAQ,EAAE,IAAI,CAAC,eAAeA,sBAAK,KAAK,IAAI,MAAM,UAAU,CAAC,GAEjF,cAAc,YAAY,OAAO,OAAO,QAAQ,EAAE,IAAI,CAAC,MAAMA,cAAAA,QAAK,QAAQ,KAAK,EAAE,MAAM,CAAC,GAExF,eAAe,OAAO;AAAA,IAC1B,OAAO,QAAQ,QAAQ,UAAU,CAAE,CAAA,EAAE,IAAI,CAAC,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,KAAK,UAAU,GAAG,CAAC,CAAC;AAAA,EAG/E,GAAA,EAAC,gBAAgB,uBAAuB,cAAc,KAAK,QAAQ,MAAK,QAAQ,UAAU;AAGxE;AAAA,IACtBC,yBAAQ;AAAA,MACN;AAAA,MACA,UAAU,IAAI,GAAG,cAAc;AAAA,MAC/B,aAAa;AAAA,MACb,cAAc,QAAQ,WAAW;AAAA,MACjC,WAAW;AAAA,QACT,oBAAoB;AAAA,MAAA;AAAA,IACtB,CACD;AAAA,IACD,MAAM,QAAQ,QAAQ,OAAO,OAAO,KAClCC,YAAAA,qBAAqB;AAAA,MACnB,SAAS;AAAA,MACT,SAAS,OAAO,MAAM;AAAA,IAAA,CACvB;AAAA,IACH,wBACEC,aAAAA,sBAAsB;AAAA,MACpB,aAAa,WAAW,SAAS,cAAc,KAAK,WAAW,IAAI,KAAO;AAAA,MAC1E,GAAI,OAAO,QAAQ,QAAQ,kBAAmB,YAC1C,CACA,IAAA,QAAQ,QAAQ;AAAA,IAAA,CACrB;AAAA,IACH,UACEC,gBAAAA,QAAO;AAAA,MACL,UAAU,EAAC,YAAY,IAAO,QAAQ,GAAE;AAAA,MACxC,MAAM;AAAA,MACN,QAAQ;AAAA,QACN,UAAU,CAAC,OAAO,YAAY;AAC5B,gBAAM,OAAO,QAAQ;AAIrB,iBAHc,QAAQ,SAGR,aAEL,6BAA6B,KAAK,IAAI,IAGxC;AAAA,QACT;AAAA,QACA,sBAAsB;AAAA,MAAA;AAAA,IAEzB,CAAA;AAAA,EACL,EAAE,OAAO,OAAO;AAEV,QAAA,qBAAqB,QAAQ,QAAQ,sBAAsB,IAE3D,iBAAiB,GADF,qBAAqB,YAAY,kBAChB,IAAI,qBAAqB,kBAAkB,QAAQ,GAAG,SAAS,IAC/F,iBAAiB,SAAS,SAAS,IAEnC,eAAe;AAAA,IACnB;AAAA,IACA,KAAK;AAAA,MACH,MACE,QAAQ,QAAQ,cACZ,cACA,QAAQ,QAAQ,aACd,aACA,QAAQ,QAAQ,cACd,YACA;AAAA,MACV,SAAS,QAAQ;AAAA,MACjB,UAAU,QAAQ;AAAA,MAClB,cAAc,QAAQ;AAAA,IACxB;AAAA,IACA,QACE,IAAI,SAAS,sBACT,EAAC,GAAG,iBACJ;AAAA,MACE,0BAA0B,KAAK,UAAU,MAAM;AAAA,MAC/C,2BAA2B,KAAK,UAAU,OAAO;AAAA,MACjD,2BAA2B,KAAK,UAAU,QAAQ,IAAI,eAAkB,IAAI,OAAO;AAAA,MACnF,GAAG;AAAA,IACL;AAAA,IAEN,UACE,UAAU,SAAS,kBAEf,YAAY,SADZ,SAGE,YAAY,YACV,YACA;AAAA,IAEV,SAAS;AAAA,MACP,OAAO;AAAA,MACP,kBAAkB,IAAI,GAAG,cAAc;AAAA,IACzC;AAAA,IACA,WAAW;AAAA,MACT;AAAA,IACF;AAAA,IACA,cAAc;AAAA,MACZ,iBAAiB;AAAA,IACnB;AAAA,IAEA,UAAU,CAAC,IAAI,aAAa;AAEtB,UAAA,WAAW,SAAS,EAAE;AACjB,eAAA;AAIL,UAAA,aAAa,GAAG,WAAW,GAAG,KAAK,GAAG,WAAW,GAAG,IAAI;AAC1D,cAAM,SAASJ,cAAAA,QAAK,QAAQA,sBAAK,QAAQ,QAAQ,GAAG,EAAE;AAElD,YAAA,aAAa,SAAS,MAAM;AACvB,iBAAA,OAAA;AAAA,YACL,iEAA4DA,cAAAA,QAAK;AAAA,cAC/D;AAAA,cACA;AAAA,YAAA,CACD;AAAA,UAAA,GAGI;AAAA,MAAA;AAIL,YAAA,UAAU,GAAG,MAAM,GAAG,GAEtB,OAAO,QAAQ,CAAC,EAAE,WAAW,GAAG,IAAI,GAAG,QAAQ,CAAC,CAAC,IAAI,QAAQ,CAAC,CAAC,KAAK,QAAQ,CAAC;AAE/E,aAAA,CAAA,EAAA,QAAQ,SAAS,SAAS,IAAI;AAAA,IAKpC;AAAA,IAEA,OAAO,QAAQ;AAAA,MACb,CAAC,KAAK,UAAU,OAAO,OAAO,KAAK,EAAC,CAAC,MAAM,IAAI,GAAG,MAAM,QAAO;AAAA,MAC/D,CAAA;AAAA,IACF;AAAA,IAEA,SAAS;AAAA,MACPK,sBAAU;AAAA,QACR,aAAa;AAAA,QACb,UAAU,IAAI,GAAG,cAAc;AAAA,QAC/B,sBAAsB;AAAA,MACvB,CAAA;AAAA,IACH;AAAA,IAEA,WAAW;AAAA,KAEP,gBAAgB;AAAA,IACpB;AAAA,IACA,KAAK;AAAA,IACL;AAAA,IACA,UAAU;AAAA,IACV,QAAQ,UAAU,SAAS,iBAAiB,OAAO;AAAA,IACnD,WAAW,UAAU,SAAS,iBAAiB,KAAS,QAAQ,aAAa;AAAA,IAC7E,wBAAwB;AAAA,EAAA;AAGnB,SAAA,EAAC,cAAc,cAAa;AACrC;AAEA,SAAS,cAAc,KAAkB,aAA8B;AAC9D,SAAA,IAAI,eACP,eAAe,IAAI,eACnB,IAAI,mBACF,eAAe,IAAI,mBACnB;AACR;;"}
|