@sanity/pkg-utils 2.3.12 → 2.3.13-canary.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/dist/_chunks/{build-11470607.cjs → build-fabfa3af.cjs} +6 -6
- package/dist/_chunks/build-fabfa3af.cjs.map +1 -0
- package/dist/_chunks/{buildAction-e950d498.cjs → buildAction-dae78abb.cjs} +2 -2
- package/dist/_chunks/{buildAction-e950d498.cjs.map → buildAction-dae78abb.cjs.map} +1 -1
- package/dist/_chunks/{check-0665cb35.cjs → check-332a2bb9.cjs} +3 -3
- package/dist/_chunks/{check-0665cb35.cjs.map → check-332a2bb9.cjs.map} +1 -1
- package/dist/_chunks/{checkAction-c3e5da35.cjs → checkAction-c39d7dbf.cjs} +2 -2
- package/dist/_chunks/{checkAction-c3e5da35.cjs.map → checkAction-c39d7dbf.cjs.map} +1 -1
- package/dist/_chunks/{consoleSpy-d738cb9f.cjs → consoleSpy-686c350b.cjs} +52 -12
- package/dist/_chunks/consoleSpy-686c350b.cjs.map +1 -0
- package/dist/_chunks/{index-70f8931a.cjs → index-1811ae9f.cjs} +25 -7
- package/dist/_chunks/index-1811ae9f.cjs.map +1 -0
- package/dist/_chunks/{init-2377e6e5.cjs → init-e45c0c31.cjs} +2 -2
- package/dist/_chunks/{init-2377e6e5.cjs.map → init-e45c0c31.cjs.map} +1 -1
- package/dist/_chunks/{initAction-2abd8576.cjs → initAction-48ce747a.cjs} +2 -2
- package/dist/_chunks/{initAction-2abd8576.cjs.map → initAction-48ce747a.cjs.map} +1 -1
- package/dist/_chunks/{logger-c593f06b.cjs → logger-718e11be.cjs} +8 -6
- package/dist/_chunks/logger-718e11be.cjs.map +1 -0
- package/dist/_chunks/{watch-d390d5e4.cjs → watch-4e565bee.cjs} +4 -4
- package/dist/_chunks/{watch-d390d5e4.cjs.map → watch-4e565bee.cjs.map} +1 -1
- package/dist/_chunks/{watchAction-63c8a721.cjs → watchAction-a5721084.cjs} +2 -2
- package/dist/_chunks/{watchAction-63c8a721.cjs.map → watchAction-a5721084.cjs.map} +1 -1
- package/dist/cli.cjs +5 -5
- package/dist/index.cjs +7 -7
- package/dist/index.d.ts +9 -2
- package/dist/index.js +80 -21
- package/dist/index.js.map +1 -1
- package/package.json +3 -2
- package/src/node/core/config/types.ts +5 -0
- package/src/node/core/pkg/loadPkgWithReporting.ts +91 -18
- package/src/node/core/pkg/types.ts +4 -2
- package/src/node/core/pkg/validatePkg.ts +5 -3
- package/src/node/resolveBuildTasks.ts +2 -2
- package/src/node/tasks/rollup/resolveRollupConfig.ts +10 -4
- package/src/node/tasks/rollup/rollupTask.ts +20 -0
- package/dist/_chunks/build-11470607.cjs.map +0 -1
- package/dist/_chunks/consoleSpy-d738cb9f.cjs.map +0 -1
- package/dist/_chunks/index-70f8931a.cjs.map +0 -1
- package/dist/_chunks/logger-c593f06b.cjs.map +0 -1
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sanity/pkg-utils",
|
|
3
|
-
"version": "2.3.
|
|
3
|
+
"version": "2.3.13-canary.1",
|
|
4
4
|
"description": "Simple utilities for modern npm packages.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"sanity-io",
|
|
@@ -26,8 +26,8 @@
|
|
|
26
26
|
".": {
|
|
27
27
|
"types": "./dist/index.d.ts",
|
|
28
28
|
"source": "./src/node/index.ts",
|
|
29
|
-
"require": "./dist/index.cjs",
|
|
30
29
|
"import": "./dist/index.js",
|
|
30
|
+
"require": "./dist/index.cjs",
|
|
31
31
|
"default": "./dist/index.js"
|
|
32
32
|
},
|
|
33
33
|
"./package.json": "./package.json"
|
|
@@ -155,6 +155,7 @@
|
|
|
155
155
|
"rimraf": "^4.4.1",
|
|
156
156
|
"rollup": "^3.27.2",
|
|
157
157
|
"rollup-plugin-esbuild": "^5.0.0",
|
|
158
|
+
"rollup-plugin-preserve-directives": "^0.2.0",
|
|
158
159
|
"rxjs": "^7.8.1",
|
|
159
160
|
"treeify": "^1.1.0",
|
|
160
161
|
"uuid": "^9.0.0",
|
|
@@ -114,6 +114,11 @@ export interface PkgConfigOptions {
|
|
|
114
114
|
* Build package with support for legacy exports (writes root `<export>.js` files)
|
|
115
115
|
*/
|
|
116
116
|
legacyExports?: boolean
|
|
117
|
+
/**
|
|
118
|
+
* Preserves module directives, such as `'use client'`
|
|
119
|
+
* @alpha
|
|
120
|
+
*/
|
|
121
|
+
preserveModuleDirectives?: boolean
|
|
117
122
|
minify?: boolean
|
|
118
123
|
/** @alpha */
|
|
119
124
|
rollup?: {
|
|
@@ -15,6 +15,7 @@ export async function loadPkgWithReporting(options: {
|
|
|
15
15
|
|
|
16
16
|
try {
|
|
17
17
|
const pkg = await loadPkg({cwd})
|
|
18
|
+
let shouldError = false
|
|
18
19
|
|
|
19
20
|
// validate exports
|
|
20
21
|
if (pkg.exports) {
|
|
@@ -28,33 +29,105 @@ export async function loadPkgWithReporting(options: {
|
|
|
28
29
|
const keys = Object.keys(exp)
|
|
29
30
|
|
|
30
31
|
if (!assertFirst('types', keys)) {
|
|
31
|
-
|
|
32
|
+
shouldError = true
|
|
33
|
+
logger.error(`exports["${expPath}"]: the \`types\` property should be the first property`)
|
|
32
34
|
}
|
|
33
35
|
|
|
34
|
-
if (
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
)
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
36
|
+
if (exp.node) {
|
|
37
|
+
const nodeKeys = Object.keys(exp.node)
|
|
38
|
+
|
|
39
|
+
if (!assertOrder('module', 'import', nodeKeys)) {
|
|
40
|
+
shouldError = true
|
|
41
|
+
logger.error(
|
|
42
|
+
`exports["${expPath}"]: the \`node.module\` property should come before the \`node.import\` property`,
|
|
43
|
+
)
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
if (!assertOrder('import', 'require', nodeKeys)) {
|
|
47
|
+
logger.warn(
|
|
48
|
+
`exports["${expPath}"]: the \`node.import\` property should come before the \`node.require\` property`,
|
|
49
|
+
)
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
if (!assertOrder('module', 'require', nodeKeys)) {
|
|
53
|
+
logger.warn(
|
|
54
|
+
`exports["${expPath}"]: the \`node.module\` property should come before \`node.require\` property`,
|
|
55
|
+
)
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
if (exp.import && exp.node.import && !assertOrder('node', 'import', keys)) {
|
|
59
|
+
shouldError = true
|
|
60
|
+
logger.error(
|
|
61
|
+
`exports["${expPath}"]: the \`node\` property should come before the \`import\` property`,
|
|
62
|
+
)
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
if (exp.module && exp.node.module && !assertOrder('node', 'module', keys)) {
|
|
66
|
+
shouldError = true
|
|
67
|
+
logger.error(
|
|
68
|
+
`exports["${expPath}"]: the \`node\` property should come before the \`module\` property`,
|
|
69
|
+
)
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
// If there's a `node.import` property but not a `node.require` we can assume `node.import` is wrapping `import` and `node.module` should be added for bundlers
|
|
73
|
+
if (exp.node.import && !exp.node.require && !exp.node.module) {
|
|
74
|
+
shouldError = true
|
|
75
|
+
logger.error(
|
|
76
|
+
`exports["${expPath}"]: the \`node.module\` property should be added so bundlers don't unintentionally try to bundle \`node.import\``,
|
|
77
|
+
)
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
if (
|
|
81
|
+
exp.node.import &&
|
|
82
|
+
!exp.node.require &&
|
|
83
|
+
exp.node.module &&
|
|
84
|
+
exp.import &&
|
|
85
|
+
exp.node.module !== exp.import
|
|
86
|
+
) {
|
|
87
|
+
shouldError = true
|
|
88
|
+
logger.error(
|
|
89
|
+
`exports["${expPath}"]: the \`node.module\` property should match \`import\``,
|
|
90
|
+
)
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
if (exp.require && exp.node.require && exp.require === exp.node.require) {
|
|
94
|
+
shouldError = true
|
|
95
|
+
logger.error(
|
|
96
|
+
`exports["${expPath}"]: the \`node.require\` property isn't necessary as it's identical to \`require\``,
|
|
97
|
+
)
|
|
98
|
+
} else if (exp.require && exp.node.require && !assertOrder('node', 'require', keys)) {
|
|
99
|
+
shouldError = true
|
|
100
|
+
logger.error(
|
|
101
|
+
`exports["${expPath}"]: the \`node\` property should come before the \`require\` property`,
|
|
102
|
+
)
|
|
103
|
+
}
|
|
104
|
+
} else {
|
|
105
|
+
if (!assertOrder('import', 'require', keys)) {
|
|
106
|
+
logger.warn(
|
|
107
|
+
`exports["${expPath}"]: the \`import\` property should come before the \`require\` property`,
|
|
108
|
+
)
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
if (!assertOrder('module', 'import', keys)) {
|
|
112
|
+
logger.warn(
|
|
113
|
+
`exports["${expPath}"]: the \`module\` property should come before \`import\` property`,
|
|
114
|
+
)
|
|
115
|
+
}
|
|
50
116
|
}
|
|
51
117
|
|
|
52
118
|
if (!assertLast('default', keys)) {
|
|
53
|
-
|
|
119
|
+
shouldError = true
|
|
120
|
+
logger.error(
|
|
121
|
+
`exports["${expPath}"]: the \`default\` property should be the last property`,
|
|
122
|
+
)
|
|
54
123
|
}
|
|
55
124
|
}
|
|
56
125
|
}
|
|
57
126
|
|
|
127
|
+
if (shouldError) {
|
|
128
|
+
process.exit(1)
|
|
129
|
+
}
|
|
130
|
+
|
|
58
131
|
return pkg
|
|
59
132
|
} catch (err) {
|
|
60
133
|
if (err instanceof ZodError) {
|
|
@@ -19,14 +19,16 @@ export interface PackageJSON {
|
|
|
19
19
|
types?: string
|
|
20
20
|
browser?: {
|
|
21
21
|
source: string
|
|
22
|
-
require?: string
|
|
23
22
|
import?: string
|
|
23
|
+
require?: string
|
|
24
24
|
}
|
|
25
25
|
node?: {
|
|
26
26
|
source?: string
|
|
27
|
-
|
|
27
|
+
module?: string
|
|
28
28
|
import?: string
|
|
29
|
+
require?: string
|
|
29
30
|
}
|
|
31
|
+
module?: string
|
|
30
32
|
import?: string
|
|
31
33
|
require?: string
|
|
32
34
|
default: string
|
|
@@ -23,22 +23,24 @@ const pkgSchema = z.object({
|
|
|
23
23
|
z.object({
|
|
24
24
|
types: z.optional(z.string()),
|
|
25
25
|
source: z.string(),
|
|
26
|
-
require: z.optional(z.string()),
|
|
27
26
|
browser: z.optional(
|
|
28
27
|
z.object({
|
|
29
28
|
source: z.string(),
|
|
30
|
-
require: z.optional(z.string()),
|
|
31
29
|
import: z.optional(z.string()),
|
|
30
|
+
require: z.optional(z.string()),
|
|
32
31
|
}),
|
|
33
32
|
),
|
|
34
33
|
node: z.optional(
|
|
35
34
|
z.object({
|
|
36
35
|
source: z.optional(z.string()),
|
|
37
|
-
|
|
36
|
+
module: z.optional(z.string()),
|
|
38
37
|
import: z.optional(z.string()),
|
|
38
|
+
require: z.optional(z.string()),
|
|
39
39
|
}),
|
|
40
40
|
),
|
|
41
|
+
module: z.optional(z.string()),
|
|
41
42
|
import: z.optional(z.string()),
|
|
43
|
+
require: z.optional(z.string()),
|
|
42
44
|
default: z.string(),
|
|
43
45
|
}),
|
|
44
46
|
]),
|
|
@@ -164,7 +164,7 @@ export function resolveBuildTasks(ctx: BuildContext): BuildTask[] {
|
|
|
164
164
|
exp.node &&
|
|
165
165
|
!exp.node.source &&
|
|
166
166
|
exp.node.import &&
|
|
167
|
-
exp.node.require &&
|
|
167
|
+
(exp.node.require || exp.require) &&
|
|
168
168
|
(exp.node.import.endsWith('.cjs.js') || exp.node.import.endsWith('.cjs.mjs'))
|
|
169
169
|
) {
|
|
170
170
|
const importId = path.join(pkg.name, exp._path)
|
|
@@ -172,7 +172,7 @@ export function resolveBuildTasks(ctx: BuildContext): BuildTask[] {
|
|
|
172
172
|
nodeReexportCjsEntries.push({
|
|
173
173
|
importId,
|
|
174
174
|
import: exp.node.import,
|
|
175
|
-
require: exp.node.require
|
|
175
|
+
require: (exp.node.require || exp.require)!,
|
|
176
176
|
})
|
|
177
177
|
}
|
|
178
178
|
}
|
|
@@ -8,6 +8,7 @@ import terser from '@rollup/plugin-terser'
|
|
|
8
8
|
import path from 'path'
|
|
9
9
|
import {InputOptions, OutputOptions, Plugin} from 'rollup'
|
|
10
10
|
import esbuild from 'rollup-plugin-esbuild'
|
|
11
|
+
import preserveDirectives from 'rollup-plugin-preserve-directives'
|
|
11
12
|
|
|
12
13
|
import {BuildContext, DEFAULT_BROWSERSLIST_QUERY, resolveConfigProperty} from '../../core'
|
|
13
14
|
import {RollupTask, RollupWatchTask} from '../types'
|
|
@@ -111,10 +112,12 @@ export function resolveRollupConfig(
|
|
|
111
112
|
}),
|
|
112
113
|
minify &&
|
|
113
114
|
terser({
|
|
114
|
-
compress:
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
115
|
+
compress: config?.preserveModuleDirectives
|
|
116
|
+
? {
|
|
117
|
+
// Needed until https://github.com/terser/terser/issues/1320 is fixed
|
|
118
|
+
directives: false,
|
|
119
|
+
}
|
|
120
|
+
: true,
|
|
118
121
|
output: {
|
|
119
122
|
comments: (_node, comment) => {
|
|
120
123
|
const text = comment.value
|
|
@@ -130,6 +133,8 @@ export function resolveRollupConfig(
|
|
|
130
133
|
},
|
|
131
134
|
},
|
|
132
135
|
}),
|
|
136
|
+
// Allows marking export files with `'use client'` at the top
|
|
137
|
+
config?.preserveModuleDirectives && preserveDirectives(),
|
|
133
138
|
].filter(Boolean) as Plugin[]
|
|
134
139
|
|
|
135
140
|
const userPlugins = config?.rollup?.plugins
|
|
@@ -212,6 +217,7 @@ export function resolveRollupConfig(
|
|
|
212
217
|
minifyInternalExports: minify,
|
|
213
218
|
sourcemap: config?.sourcemap ?? true,
|
|
214
219
|
hoistTransitiveImports: false,
|
|
220
|
+
preserveModules: config?.preserveModuleDirectives ? true : false,
|
|
215
221
|
},
|
|
216
222
|
}
|
|
217
223
|
}
|
|
@@ -114,6 +114,26 @@ async function execPromise(ctx: BuildContext, task: RollupTask) {
|
|
|
114
114
|
const bundle = await rollup({
|
|
115
115
|
...inputOptions,
|
|
116
116
|
onwarn(warning) {
|
|
117
|
+
if (
|
|
118
|
+
// Ignore the directive warning until the preserveDirectives plugin does it automatically: https://github.com/Ephem/rollup-plugin-preserve-directives#rollup-plugin-preserve-directives-warning
|
|
119
|
+
warning.message.includes(
|
|
120
|
+
'Module level directives cause errors when bundled, "use client" in',
|
|
121
|
+
)
|
|
122
|
+
) {
|
|
123
|
+
// If the preserve option isn't enabled, then extend the message with a note about how to enable
|
|
124
|
+
if (!ctx.config?.preserveModuleDirectives) {
|
|
125
|
+
consoleSpy.messages.push({
|
|
126
|
+
type: 'warn',
|
|
127
|
+
code: warning.code,
|
|
128
|
+
args: [
|
|
129
|
+
`${warning.message} You can preserve it by setting "preserveModuleDirectives: true" in your "package.config.ts"`,
|
|
130
|
+
],
|
|
131
|
+
})
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
return
|
|
135
|
+
}
|
|
136
|
+
|
|
117
137
|
consoleSpy.messages.push({
|
|
118
138
|
type: 'warn',
|
|
119
139
|
code: warning.code,
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"build-11470607.cjs","sources":["../../src/node/resolveBuildTasks.ts","../../src/node/spinner.ts","../../src/node/build.ts"],"sourcesContent":["import fs from 'fs'\nimport path from 'path'\n\nimport {BuildContext, PkgExport, PkgFormat, PkgRuntime} from './core'\nimport {BuildTask, DtsTask, NodeReExportFromCJSTask, RollupTask, RollupTaskEntry} from './tasks'\n\n/** @internal */\nexport function resolveBuildTasks(ctx: BuildContext): BuildTask[] {\n const {config, cwd, pkg, target} = ctx\n\n const bundles = config?.bundles || []\n\n const tasks: BuildTask[] = []\n\n const exports = Object.entries(ctx.exports || {}).map(\n ([_path, exp]) => ({_path, ...exp}) as PkgExport & {_path: string},\n )\n\n const dtsTask: DtsTask = {\n type: 'build:dts',\n entries: [],\n }\n\n const rollupTasks: Record<string, RollupTask> = {}\n\n function addRollupTaskEntry(format: PkgFormat, runtime: PkgRuntime, entry: RollupTaskEntry) {\n const buildId = `${format}:${runtime}`\n\n if (rollupTasks[buildId]) {\n rollupTasks[buildId].entries.push(entry)\n } else {\n rollupTasks[buildId] = {\n type: 'build:js',\n buildId,\n entries: [entry],\n runtime,\n format,\n target: target[runtime],\n }\n }\n }\n\n // Parse `dts` tasks\n for (const exp of exports) {\n const importId = path.join(pkg.name, exp._path)\n\n if (exp.types) {\n dtsTask.entries.push({\n importId,\n exportPath: exp._path,\n sourcePath: exp.source,\n targetPath: exp.types,\n })\n }\n }\n\n // Add dts task\n if (dtsTask.entries.length) {\n tasks.push(dtsTask)\n }\n\n if (!ctx.emitDeclarationOnly) {\n // Parse rollup:commonjs:* tasks\n for (const exp of exports) {\n const output = exp.require\n\n if (!output) continue\n\n addRollupTaskEntry('commonjs', ctx.runtime, {\n path: exp._path,\n source: exp.source,\n output,\n })\n }\n\n // Parse rollup:esm:* tasks\n for (const exp of exports) {\n const output = exp.import\n\n if (!output) continue\n\n addRollupTaskEntry('esm', ctx.runtime, {\n path: exp._path,\n source: exp.source,\n output,\n })\n }\n\n // Parse rollup:commonjs:browser tasks\n for (const exp of exports) {\n const output = exp.browser?.require\n\n if (!output) continue\n\n addRollupTaskEntry('commonjs', 'browser', {\n path: exp._path,\n source: exp.browser?.source || exp.source,\n output,\n })\n }\n\n // Parse rollup:esm:browser tasks\n for (const exp of exports) {\n const output = exp.browser?.import\n\n if (!output) continue\n\n addRollupTaskEntry('esm', 'browser', {\n path: exp._path,\n source: exp.browser?.source || exp.source,\n output,\n })\n }\n\n for (const bundle of bundles) {\n const idx = bundles.indexOf(bundle)\n\n if (bundle.require) {\n addRollupTaskEntry('commonjs', bundle.runtime || ctx.runtime, {\n path: `__$$bundle_cjs_${idx}$$__`,\n source: bundle.source,\n output: bundle.require,\n })\n }\n\n if (bundle.import) {\n addRollupTaskEntry('esm', bundle.runtime || ctx.runtime, {\n path: `__$$bundle_esm_${idx}$$__`,\n source: bundle.source,\n output: bundle.import,\n })\n }\n }\n\n tasks.push(...Object.values(rollupTasks))\n\n // Write legacy exports files\n if (config?.legacyExports) {\n for (const exp of exports) {\n if (exp._exported && exp._path !== '.') {\n const relativeTargetPath = (exp.browser?.import || exp.import || '').replace(\n /\\.[^/.]+$/,\n '',\n )\n\n if (relativeTargetPath) {\n fs.writeFileSync(\n path.resolve(cwd, `${exp._path}.js`),\n [`// AUTO-GENERATED – DO NOT EDIT`, `export * from '${relativeTargetPath}'`, ``].join(\n '\\n',\n ),\n )\n }\n }\n }\n }\n }\n\n const nodeReexportCjsEntries: NodeReExportFromCJSTask['entries'] = []\n\n // Parse tasks to re-export from CommonJS for Node.js\n for (const exp of exports) {\n if (\n exp.node &&\n !exp.node.source &&\n exp.node.import &&\n exp.node.require &&\n (exp.node.import.endsWith('.cjs.js') || exp.node.import.endsWith('.cjs.mjs'))\n ) {\n const importId = path.join(pkg.name, exp._path)\n\n nodeReexportCjsEntries.push({\n importId,\n import: exp.node.import,\n require: exp.node.require,\n })\n }\n }\n\n if (nodeReexportCjsEntries.length) {\n tasks.push({\n type: 'node:reexport-cjs',\n entries: nodeReexportCjsEntries,\n })\n }\n\n return tasks\n}\n","/* eslint-disable no-console */\n\nimport chalk from 'chalk'\n\nexport function createSpinner(msg: string): {complete: () => void; error: () => void} {\n const startTime = Date.now()\n\n console.log(msg)\n\n return {\n complete: () => {\n console.log(`${chalk.green('[success]')} ${chalk.gray(`${Date.now() - startTime}ms`)}`)\n },\n error: () => {\n console.log(`${chalk.red(`[error]`)} ${chalk.gray(`${Date.now() - startTime}ms`)}`)\n },\n }\n}\n","import {getPkgExtMap, loadConfig, loadPkgWithReporting} from './core'\nimport {createLogger} from './logger'\nimport {resolveBuildContext} from './resolveBuildContext'\nimport {resolveBuildTasks} from './resolveBuildTasks'\nimport {createSpinner} from './spinner'\nimport {BuildTask, buildTaskHandlers, TaskHandler} from './tasks'\n\n/**\n * Build the distribution files of a npm package.\n *\n * @example\n * ```ts\n * import {build} from '@sanity/pkg-utils'\n *\n * build({\n * cwd: process.cwd(),\n * tsconfig: 'tsconfig.dist.json,\n * }).then(() => {\n * console.log('successfully built')\n * }).catch((err) => {\n * console.log(`build error: ${err.message}`)\n * })\n * ```\n *\n * @public\n */\nexport async function build(options: {\n cwd: string\n emitDeclarationOnly?: boolean\n strict?: boolean\n tsconfig?: string\n}): Promise<void> {\n const {cwd, emitDeclarationOnly, strict = false, tsconfig: tsconfigOption} = options\n const logger = createLogger()\n\n const pkg = await loadPkgWithReporting({cwd, logger})\n const config = await loadConfig({cwd})\n const extMap = getPkgExtMap({legacyExports: config?.legacyExports ?? false})\n const tsconfig = tsconfigOption || config?.tsconfig || 'tsconfig.json'\n\n const ctx = await resolveBuildContext({\n config,\n cwd,\n emitDeclarationOnly,\n extMap,\n logger,\n pkg,\n strict,\n tsconfig,\n })\n\n const buildTasks = resolveBuildTasks(ctx)\n\n for (const task of buildTasks) {\n const handler = buildTaskHandlers[task.type] as TaskHandler<BuildTask>\n const taskName = handler.name(ctx, task)\n\n const spinner = createSpinner(taskName)\n\n try {\n const result = await handler.exec(ctx, task).toPromise()\n\n spinner.complete()\n ctx.logger.log()\n\n handler.complete(ctx, task, result)\n } catch (err) {\n spinner.error()\n\n if (err instanceof Error) {\n const RE_CWD = new RegExp(`${cwd}`, 'g')\n\n ctx.logger.error(err.message.replace(RE_CWD, '.'))\n ctx.logger.log()\n }\n\n handler.error(ctx, task, err)\n\n process.exit(1)\n }\n }\n}\n"],"names":["resolveBuildTasks","ctx","_a","_b","_c","_d","_e","config","cwd","pkg","target","bundles","tasks","exports","Object","entries","map","_ref","_path","exp","dtsTask","type","rollupTasks","addRollupTaskEntry","format","runtime","entry","buildId","concat","push","importId","path","join","name","types","exportPath","sourcePath","source","targetPath","length","emitDeclarationOnly","output","require","import","browser","bundle","idx","indexOf","values","legacyExports","_exported","relativeTargetPath","replace","fs","writeFileSync","resolve","nodeReexportCjsEntries","node","endsWith","createSpinner","msg","startTime","Date","now","console","log","complete","chalk","green","default","gray","error","red","build","options","_ref2","strict","tsconfig","tsconfigOption","logger","createLogger","loadPkgWithReporting","loadConfig","extMap","getPkgExtMap","resolveBuildContext","buildTasks","task","handler","buildTaskHandlers","taskName","spinner","result","exec","toPromise","err","Error","RE_CWD","RegExp","message","process","exit"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"consoleSpy-d738cb9f.cjs","sources":["../../src/node/core/config/findConfigFile.ts","../../src/node/core/config/loadConfig.ts","../../src/node/core/config/resolveConfigProperty.ts","../../src/node/core/defaults.ts","../../src/node/core/pkg/loadPkg.ts","../../src/node/core/pkg/helpers.ts","../../src/node/core/pkg/loadPkgWithReporting.ts","../../src/node/core/pkg/validateExports.ts","../../src/node/core/pkg/parseExports.ts","../../src/node/core/pkg/pkgExt.ts","../../src/node/core/ts/loadTSConfig.ts","../../src/node/core/findCommonPath.ts","../../src/node/resolveBrowserslistVersions.ts","../../src/node/resolveBrowserTarget.ts","../../src/node/resolveNodeTarget.ts","../../src/node/resolveBuildContext.ts","../../src/node/consoleSpy.ts"],"sourcesContent":["import findConfig from 'find-config'\nimport path from 'path'\n\nimport {fileExists} from '../../fileExists'\n\nconst CONFIG_FILE_NAMES = [\n 'package.config.ts',\n 'package.config.js',\n 'package.config.cjs',\n 'package.config.mjs',\n]\n\n/** @internal */\nexport function findConfigFile(cwd: string): string | undefined {\n const pkgJsonPath = findConfig('package.json', {cwd})\n\n if (!pkgJsonPath) return undefined\n\n const pkgPath = path.dirname(pkgJsonPath)\n\n for (const fileName of CONFIG_FILE_NAMES) {\n const configPath = path.resolve(pkgPath, fileName)\n\n const exists = fileExists(configPath)\n\n if (exists) {\n return configPath\n }\n }\n\n return undefined\n}\n","import {register} from 'esbuild-register/dist/node'\nimport path from 'path'\nimport pkgUp from 'pkg-up'\n\nimport {findConfigFile} from './findConfigFile'\nimport {PkgConfigOptions} from './types'\n\n/** @internal */\nexport async function loadConfig(options: {cwd: string}): Promise<PkgConfigOptions | undefined> {\n const {cwd} = options\n\n const pkgPath = await pkgUp({cwd})\n\n if (!pkgPath) return undefined\n\n const root = path.dirname(pkgPath)\n\n const configFile = await findConfigFile(root)\n\n if (!configFile) {\n return undefined\n }\n\n // Do not accept config files outside of the root\n if (!configFile.startsWith(cwd)) {\n return undefined\n }\n\n const esbuildOptions = {extensions: ['.js', '.mjs', '.ts']}\n\n const {unregister} = globalThis.__DEV__ ? {unregister: () => undefined} : register(esbuildOptions)\n\n // eslint-disable-next-line @typescript-eslint/no-var-requires\n const mod = require(configFile)\n\n unregister()\n\n return mod?.default || mod || undefined\n}\n","import {PkgConfigProperty, PkgConfigPropertyResolver} from './types'\n\n/** @internal */\nexport function resolveConfigProperty<T>(\n prop: PkgConfigProperty<T> | undefined,\n initialValue: T,\n): T {\n if (!prop) return initialValue\n\n if (typeof prop === 'function') {\n return (prop as PkgConfigPropertyResolver<T>)(initialValue)\n }\n\n return prop\n}\n","/** @public */\nexport const DEFAULT_BROWSERSLIST_QUERY = [\n '> 0.2% and supports es6-module and supports es6-module-dynamic-import',\n 'not dead',\n 'not IE 11',\n 'maintained node versions',\n]\n","import fs from 'fs/promises'\nimport pkgUp from 'pkg-up'\n\nimport {PackageJSON} from './types'\nimport {validatePkg} from './validatePkg'\n\n/** @internal */\nexport async function loadPkg(options: {cwd: string}): Promise<PackageJSON> {\n const {cwd} = options\n\n const pkgPath = await pkgUp({cwd})\n\n if (!pkgPath) throw new Error('no package.json found')\n\n const buf = await fs.readFile(pkgPath)\n\n const raw = JSON.parse(buf.toString())\n\n validatePkg(raw)\n\n return raw\n}\n","/** @internal */\nexport function assertFirst<T>(a: T, arr: T[]): boolean {\n const aIdx = arr.indexOf(a)\n\n // if not found, then we don't care\n if (aIdx === -1) {\n return true\n }\n\n return aIdx === 0\n}\n\n/** @internal */\nexport function assertLast<T>(a: T, arr: T[]): boolean {\n const aIdx = arr.indexOf(a)\n\n // if not found, then we don't care\n if (aIdx === -1) {\n return true\n }\n\n return aIdx === arr.length - 1\n}\n\n/** @internal */\nexport function assertOrder<T>(a: T, b: T, arr: T[]): boolean {\n const aIdx = arr.indexOf(a)\n const bIdx = arr.indexOf(b)\n\n // if either is not found, then we don't care\n if (aIdx === -1 || bIdx === -1) {\n return true\n }\n\n return aIdx < bIdx\n}\n","import chalk from 'chalk'\nimport {ZodError} from 'zod'\n\nimport {Logger} from '../../logger'\nimport {assertFirst, assertLast, assertOrder} from './helpers'\nimport {loadPkg} from './loadPkg'\nimport {PackageJSON} from './types'\n\n/** @internal */\nexport async function loadPkgWithReporting(options: {\n cwd: string\n logger: Logger\n}): Promise<PackageJSON> {\n const {cwd, logger} = options\n\n try {\n const pkg = await loadPkg({cwd})\n\n // validate exports\n if (pkg.exports) {\n const _exports = Object.entries(pkg.exports)\n\n for (const [expPath, exp] of _exports) {\n if (typeof exp === 'string') {\n continue\n }\n\n const keys = Object.keys(exp)\n\n if (!assertFirst('types', keys)) {\n logger.warn(`exports[\"${expPath}\"]: the \\`types\\` property should be the first property`)\n }\n\n if (!assertOrder('require', 'import', keys)) {\n logger.warn(\n `exports[\"${expPath}\"]: the \\`require\\` property should come before the \\`import\\` property`,\n )\n }\n\n if (!assertOrder('require', 'node', keys)) {\n logger.warn(\n `exports[\"${expPath}\"]: the \\`require\\` property should come before the \\`node\\` property`,\n )\n }\n\n if (!assertOrder('node', 'import', keys)) {\n logger.warn(\n `exports[\"${expPath}\"]: the \\`node\\` property should come before \\`import\\` property`,\n )\n }\n\n if (!assertLast('default', keys)) {\n logger.warn(`exports[\"${expPath}\"]: the \\`default\\` property should be the last property`)\n }\n }\n }\n\n return pkg\n } catch (err) {\n if (err instanceof ZodError) {\n for (const issue of err.issues) {\n if (issue.code === 'invalid_type') {\n logger.error(\n [\n `\\`${formatPath(issue.path)}\\` `,\n `in \\`./package.json\\` must be of type ${chalk.magenta(issue.expected)} `,\n `(received ${chalk.magenta(issue.received)})`,\n ].join(''),\n )\n continue\n }\n\n logger.error(issue)\n }\n } else {\n logger.error(err)\n }\n\n process.exit(1)\n }\n}\n\nfunction formatPath(segments: Array<string | number>) {\n return segments\n .map((s, idx) => {\n if (idx === 0) return s\n\n if (typeof s === 'number') {\n return `[${s}]`\n }\n\n if (s.startsWith('.')) {\n return `[\"${s}\"]`\n }\n\n return `.${s}`\n })\n .join('')\n}\n","import {PkgExport} from '../config'\nimport {PkgExtMap} from './pkgExt'\nimport {PackageJSON} from './types'\n\nexport function validateExports(\n _exports: (PkgExport & {_path: string})[],\n options: {extMap: PkgExtMap; pkg: PackageJSON},\n): string[] {\n const {extMap, pkg} = options\n const ext = extMap[pkg.type || 'commonjs']\n\n const errors: string[] = []\n\n for (const exp of _exports) {\n if (exp.require && !exp.require.endsWith(ext.commonjs)) {\n errors.push(\n `package.json with \\`type: \"${pkg.type}\"\\` - \\`exports[\"${exp._path}\"].require\\` must end with \"${ext.commonjs}\"`,\n )\n }\n\n if (exp.import && !exp.import.endsWith(ext.esm)) {\n errors.push(\n `package.json with \\`type: \"${pkg.type}\"\\` - \\`exports[\"${exp._path}\"].import\\` must end with \"${ext.esm}\"`,\n )\n }\n }\n\n return errors\n}\n","import {PkgExport} from '../config'\nimport {isRecord} from '../isRecord'\nimport {PkgExtMap} from './pkgExt'\nimport {PackageJSON} from './types'\nimport {validateExports} from './validateExports'\n\n/** @internal */\nexport function parseExports(options: {\n extMap: PkgExtMap\n pkg: PackageJSON\n strict: boolean\n}): (PkgExport & {_path: string})[] {\n const {extMap, pkg, strict} = options\n\n const rootExport: PkgExport & {_path: string} = {\n _exported: true,\n _path: '.',\n types: pkg.types,\n source: pkg.source || '',\n browser: pkg.browser && {\n source: pkg.source || '',\n require: pkg.main && pkg.browser[pkg.main],\n import: pkg.module && pkg.browser[pkg.module],\n },\n require: pkg.main,\n import: pkg.module,\n default: pkg.module || pkg.main || '',\n }\n\n const extraExports: (PkgExport & {_path: string})[] = []\n\n const errors: string[] = []\n\n if (pkg.exports) {\n if (strict && !pkg.exports['./package.json']) {\n errors.push('package.json: `exports[\"./package.json\"] must be declared.')\n }\n\n for (const [exportPath, exportEntry] of Object.entries(pkg.exports)) {\n if (exportPath.endsWith('.json')) {\n if (exportPath === './package.json') {\n if (exportEntry !== './package.json') {\n errors.push('package.json: `exports[\"./package.json\"] must be \"./package.json\".')\n }\n }\n } else if (isRecord(exportEntry)) {\n if (exportPath === '.') {\n if (\n exportEntry.require &&\n rootExport.require &&\n exportEntry.require !== rootExport.require\n ) {\n errors.push(\n 'package.json: mismatch between \"main\" and \"exports.require\". These must be equal.',\n )\n }\n\n if (exportEntry.import && rootExport.import && exportEntry.import !== rootExport.import) {\n errors.push(\n 'package.json: mismatch between \"module\" and \"exports.import\" These must be equal.',\n )\n }\n\n if (exportEntry.types && rootExport.types && exportEntry.types !== rootExport.types) {\n errors.push(\n 'package.json: mismatch between \"types\" and \"exports.types\". These must be equal.',\n )\n }\n\n if (exportEntry.source && rootExport.source && exportEntry.source !== rootExport.source) {\n errors.push(\n 'package.json: mismatch between \"source\" and \"exports.source\". These must be equal.',\n )\n }\n\n Object.assign(rootExport, exportEntry)\n } else {\n const extraExport: PkgExport & {_path: string} = {\n _exported: true,\n _path: exportPath,\n ...exportEntry,\n }\n\n extraExports.push(extraExport)\n }\n } else {\n errors.push('package.json: exports must be an object')\n }\n }\n }\n\n const _exports = [rootExport, ...extraExports]\n\n errors.push(...validateExports(_exports, {extMap, pkg}))\n\n if (errors.length) {\n throw new Error('\\n- ' + errors.join('\\n- '))\n }\n\n return _exports\n}\n","/** @internal */\nexport interface PkgExtMap {\n commonjs: {commonjs: string; esm: string}\n module: {commonjs: string; esm: string}\n}\n\n/** @internal */\nexport const DEFAULT_PKG_EXT_MAP: PkgExtMap = {\n // pkg.type: \"commonjs\"\n commonjs: {\n commonjs: '.js',\n esm: '.mjs',\n },\n\n // pkg.type: \"module\"\n module: {\n commonjs: '.cjs',\n esm: '.js',\n },\n}\n\n/** @internal */\nexport function getPkgExtMap(options: {legacyExports: boolean}): PkgExtMap {\n const {legacyExports} = options\n\n const ret = {...DEFAULT_PKG_EXT_MAP}\n\n // Fall back to legacy file extensions for package.json with `\"type\": \"commonjs\"`\n // NOTE: Not supported by Node 14+ and will be removed in a future version\n if (legacyExports) {\n ret['commonjs'] = {\n commonjs: '.js',\n esm: '.esm.js',\n }\n }\n\n return ret\n}\n","import ts from 'typescript'\n\n/** @internal */\nexport async function loadTSConfig(options: {\n cwd: string\n tsconfigPath: string\n}): Promise<ts.ParsedCommandLine> {\n const {cwd, tsconfigPath} = options\n\n const configPath = ts.findConfigFile(cwd, ts.sys.fileExists, tsconfigPath)\n\n if (!configPath) {\n throw new Error(`could not find a valid '${tsconfigPath}'`)\n }\n\n const configFile = ts.readConfigFile(configPath, ts.sys.readFile)\n\n return ts.parseJsonConfigFileContent(configFile.config, ts.sys, cwd)\n}\n","import path from 'path'\n\nexport function pathContains(containerPath: string, itemPath: string): boolean {\n return !path.relative(containerPath, itemPath).startsWith('..')\n}\n\nexport function findCommonDirPath(filePaths: string[]): string | undefined {\n let ret: string | undefined = undefined\n\n for (const filePath of filePaths) {\n let dirPath = path.dirname(filePath)\n\n if (!ret) {\n ret = dirPath\n continue\n }\n\n while (dirPath !== ret) {\n dirPath = path.dirname(dirPath)\n\n if (dirPath === ret) {\n break\n }\n\n if (pathContains(dirPath, ret)) {\n ret = dirPath\n break\n }\n\n if (dirPath === '.') return undefined\n }\n }\n\n return ret\n}\n","import browserslist from 'browserslist'\n\nexport interface PackageTargetVersions {\n chrome: string[]\n ff: string[]\n edge: string[]\n iosSaf: string[]\n saf: string[]\n opera: string[]\n node: string[]\n}\n\nfunction sortAsNumber(a: string, b: string) {\n const aVersion = Number(a)\n const bVersion = Number(b)\n\n return aVersion - bVersion\n}\n\nexport function resolveBrowserslistVersions(query: string[]): PackageTargetVersions {\n const result = browserslist(query)\n\n const entries = result.map((key) => {\n const [name, version] = key.split(' ')\n\n return {name, version: version.split('-')[0].split('.')[0]}\n })\n\n const andChr = entries.filter((b) => b.name === 'and_chr')\n const andFf = entries.filter((b) => b.name === 'and_ff')\n const chrome = entries.filter((b) => b.name === 'chrome')\n const edge = entries.filter((b) => b.name === 'edge')\n const ff = entries.filter((b) => b.name === 'firefox')\n const iosSaf = entries.filter((b) => b.name === 'ios_saf')\n const saf = entries.filter((b) => b.name === 'safari')\n const opera = entries.filter((b) => b.name === 'opera')\n const node = entries.filter((b) => b.name === 'node')\n\n // versions\n const versions: PackageTargetVersions = {\n chrome: andChr.concat(chrome).map((b) => b.version),\n ff: andFf.concat(ff).map((b) => b.version),\n edge: edge.map((b) => b.version),\n iosSaf: iosSaf.map((b) => b.version),\n saf: saf.map((b) => b.version),\n opera: opera.map((b) => b.version),\n node: node.map((b) => b.version),\n }\n\n // sort\n versions.chrome.sort(sortAsNumber)\n versions.ff.sort(sortAsNumber)\n versions.edge.sort(sortAsNumber)\n versions.iosSaf.sort(sortAsNumber)\n versions.saf.sort(sortAsNumber)\n versions.opera.sort(sortAsNumber)\n versions.node.sort(sortAsNumber)\n\n return versions\n}\n","import {PackageTargetVersions} from './resolveBrowserslistVersions'\n\nexport function resolveBrowserTarget(versions: PackageTargetVersions): string[] | undefined {\n const target: string[] = []\n\n if (versions.chrome.length) {\n target.push(`chrome${versions.chrome[0]}`)\n }\n\n if (versions.ff.length) {\n target.push(`firefox${versions.ff[0]}`)\n }\n\n if (versions.edge.length) {\n target.push(`edge${versions.edge[0]}`)\n }\n\n if (versions.iosSaf.length) {\n target.push(`ios${versions.iosSaf[0]}`)\n }\n\n if (versions.saf.length) {\n target.push(`safari${versions.saf[0]}`)\n }\n\n if (versions.opera.length) {\n target.push(`opera${versions.opera[0]}`)\n }\n\n if (target.length === 0) {\n return undefined\n }\n\n return target\n}\n","import {PackageTargetVersions} from './resolveBrowserslistVersions'\n\nexport function resolveNodeTarget(versions: PackageTargetVersions): string[] | undefined {\n const target: string[] = []\n\n if (versions.node.length) {\n target.push(`node${versions.node[0]}`)\n }\n\n if (target.length === 0) {\n return undefined\n }\n\n return target\n}\n","import path from 'path'\n\nimport {\n BuildContext,\n DEFAULT_BROWSERSLIST_QUERY,\n loadTSConfig,\n PackageJSON,\n parseExports,\n PkgConfigOptions,\n PkgExports,\n PkgExtMap,\n PkgRuntime,\n resolveConfigProperty,\n} from './core'\nimport {findCommonDirPath, pathContains} from './core/findCommonPath'\nimport {Logger} from './logger'\nimport {resolveBrowserslistVersions} from './resolveBrowserslistVersions'\nimport {resolveBrowserTarget} from './resolveBrowserTarget'\nimport {resolveNodeTarget} from './resolveNodeTarget'\n\nexport async function resolveBuildContext(options: {\n config?: PkgConfigOptions\n cwd: string\n emitDeclarationOnly?: boolean\n extMap: PkgExtMap\n logger: Logger\n pkg: PackageJSON\n strict: boolean\n tsconfig: string\n}): Promise<BuildContext> {\n const {\n config,\n cwd,\n emitDeclarationOnly = false,\n extMap,\n logger,\n pkg,\n strict,\n tsconfig: tsconfigPath,\n } = options\n const tsconfig = await loadTSConfig({cwd, tsconfigPath})\n const targetVersions = resolveBrowserslistVersions(pkg.browserslist || DEFAULT_BROWSERSLIST_QUERY)\n const nodeTarget = resolveNodeTarget(targetVersions)\n const webTarget = resolveBrowserTarget(targetVersions)\n\n if (!nodeTarget) {\n throw new Error('no matching `node` target')\n }\n\n if (!webTarget) {\n throw new Error('no matching `web` target')\n }\n\n const target: Record<PkgRuntime, string[]> = {\n '*': webTarget.concat(nodeTarget),\n browser: webTarget,\n node: nodeTarget,\n }\n\n const parsedExports = parseExports({extMap, pkg, strict}).reduce<PkgExports>((acc, x) => {\n const {_path: exportPath, ...exportEntry} = x\n\n return {...acc, [exportPath]: exportEntry}\n }, {})\n\n const exports = resolveConfigProperty(config?.exports, parsedExports)\n\n const parsedExternal = [\n ...(pkg.dependencies ? Object.keys(pkg.dependencies) : []),\n ...(pkg.peerDependencies ? Object.keys(pkg.peerDependencies) : []),\n ]\n\n // Merge externals if an array is provided, replace if it's a function\n const external =\n config && Array.isArray(config.external)\n ? [...parsedExternal, ...config.external]\n : resolveConfigProperty(config?.external, parsedExternal)\n\n const outputPaths = Object.values(exports)\n .flatMap((exportEntry) => {\n return [\n exportEntry.import,\n exportEntry.require,\n exportEntry.browser?.import,\n exportEntry.browser?.require,\n exportEntry.node?.source && exportEntry.node.import,\n exportEntry.node?.source && exportEntry.node.require,\n ].filter(Boolean) as string[]\n })\n .map((p) => path.resolve(cwd, p))\n\n const commonDistPath = findCommonDirPath(outputPaths)\n\n if (commonDistPath === cwd) {\n throw new Error(\n 'all output files must share a common parent directory which is not the root package directory',\n )\n }\n\n if (commonDistPath && !pathContains(cwd, commonDistPath)) {\n throw new Error('all output files must be located within the package')\n }\n\n const configDistPath = config?.dist ? path.resolve(cwd, config.dist) : undefined\n\n if (\n configDistPath &&\n commonDistPath &&\n configDistPath !== commonDistPath &&\n !pathContains(configDistPath, commonDistPath)\n ) {\n logger.log(`did you mean to configure \\`dist: './${path.relative(cwd, commonDistPath)}'\\`?`)\n\n throw new Error('all output files must be located with the configured `dist` path')\n }\n\n const distPath = configDistPath || commonDistPath\n\n if (!distPath) {\n throw new Error('could not detect `dist` path')\n }\n\n const ctx: BuildContext = {\n config,\n cwd,\n distPath,\n emitDeclarationOnly,\n exports,\n external,\n extMap,\n files: [],\n logger,\n pkg,\n runtime: config?.runtime ?? '*',\n strict,\n target,\n ts: {\n config: tsconfig,\n configPath: tsconfigPath,\n },\n }\n\n return ctx\n}\n","/* eslint-disable no-console */\n\nexport interface ConsoleSpyMsg {\n type: 'log' | 'warn' | 'error'\n code?: string\n args: unknown[]\n}\n\nexport interface ConsoleSpy {\n messages: ConsoleSpyMsg[]\n restore: () => void\n}\n\nexport function createConsoleSpy(options?: {\n onRestored?: (messages: ConsoleSpyMsg[]) => void\n}): ConsoleSpy {\n const {onRestored} = options || {}\n\n const original = {\n log: console.log,\n warn: console.warn,\n error: console.error,\n }\n\n const messages: ConsoleSpyMsg[] = []\n\n console.log = (...args: unknown[]) => messages.push({type: 'log', args})\n console.warn = (...args: unknown[]) => messages.push({type: 'warn', args})\n console.error = (...args: unknown[]) => messages.push({type: 'error', args})\n\n return {\n messages,\n restore: () => {\n console.log = original.log\n console.warn = original.warn\n console.error = original.error\n\n onRestored?.(messages)\n },\n }\n}\n"],"names":["CONFIG_FILE_NAMES","findConfigFile","cwd","pkgJsonPath","findConfig","default","pkgPath","path","dirname","fileName","configPath","resolve","exists","fileExists","loadConfig","options","pkgUp","root","configFile","startsWith","esbuildOptions","extensions","unregister","globalThis","__DEV__","register","mod","require","resolveConfigProperty","prop","initialValue","DEFAULT_BROWSERSLIST_QUERY","loadPkg","Error","buf","fs","readFile","raw","JSON","parse","toString","validatePkg","assertFirst","a","arr","aIdx","indexOf","assertLast","length","assertOrder","b","bIdx","loadPkgWithReporting","logger","pkg","exports","_exports","Object","entries","expPath","exp","keys","warn","concat","err","ZodError","issue","issues","code","error","formatPath","chalk","magenta","expected","received","join","process","exit","segments","map","s","idx","validateExports","extMap","ext","type","errors","endsWith","commonjs","push","_path","import","esm","parseExports","strict","rootExport","_exported","types","source","browser","main","module","extraExports","exportPath","exportEntry","isRecord","assign","extraExport","DEFAULT_PKG_EXT_MAP","getPkgExtMap","legacyExports","ret","loadTSConfig","tsconfigPath","ts","sys","readConfigFile","parseJsonConfigFileContent","config","pathContains","containerPath","itemPath","relative","findCommonDirPath","filePaths","filePath","dirPath","sortAsNumber","aVersion","Number","bVersion","resolveBrowserslistVersions","query","result","browserslist","key","name","version","split","andChr","filter","andFf","chrome","edge","ff","iosSaf","saf","opera","node","versions","sort","resolveBrowserTarget","target","resolveNodeTarget","resolveBuildContext","_ref","emitDeclarationOnly","tsconfig","targetVersions","nodeTarget","webTarget","parsedExports","reduce","acc","x","parsedExternal","dependencies","peerDependencies","external","Array","isArray","outputPaths","values","flatMap","_a","_b","_c","_d","Boolean","p","commonDistPath","configDistPath","dist","log","distPath","ctx","files","runtime","createConsoleSpy","onRestored","original","console","messages","_len","arguments","args","_key","_len2","_key2","_len3","_key3","restore"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAKA,MAAMA,iBAAoB,GAAA,CACxB,mBAAA,EACA,mBAAA,EACA,oBAAA,EACA,oBAAA,CACF;AAGO,SAASC,eAAeC,GAAiC,EAAA;EAC9D,MAAMC,WAAc,GAAAC,mBAAA,CAAAC,OAAA,CAAW,cAAgB,EAAA;IAACH;EAAI,CAAA,CAAA;EAEpD,IAAI,CAACC,WAAA,EAAoB,OAAA,KAAA,CAAA;EAEnB,MAAAG,OAAA,GAAUC,aAAAA,CAAAA,OAAK,CAAAC,OAAA,CAAQL,WAAW,CAAA;EAExC,KAAA,MAAWM,YAAYT,iBAAmB,EAAA;IACxC,MAAMU,UAAa,GAAAH,aAAA,CAAAF,OAAA,CAAKM,OAAQ,CAAAL,OAAA,EAASG,QAAQ,CAAA;IAE3C,MAAAG,MAAA,GAASC,kBAAWH,UAAU,CAAA;IAEpC,IAAIE,MAAQ,EAAA;MACH,OAAAF,UAAA;IACT;EACF;EAEO,OAAA,KAAA,CAAA;AACT;ACvBA,eAAsBI,WAAWC,OAA+D,EAAA;EACxF,MAAA;IAACb;EAAO,CAAA,GAAAa,OAAA;EAEd,MAAMT,OAAU,GAAA,MAAMU,cAAAA,CAAAA,OAAM,CAAA;IAACd;EAAI,CAAA,CAAA;EAEjC,IAAI,CAACI,OAAA,EAAgB,OAAA,KAAA,CAAA;EAEf,MAAAW,IAAA,GAAOV,aAAAA,CAAAA,OAAK,CAAAC,OAAA,CAAQF,OAAO,CAAA;EAE3B,MAAAY,UAAA,GAAa,MAAMjB,cAAA,CAAegB,IAAI,CAAA;EAE5C,IAAI,CAACC,UAAY,EAAA;IACR,OAAA,KAAA,CAAA;EACT;EAGA,IAAI,CAACA,UAAA,CAAWC,UAAW,CAAAjB,GAAG,CAAG,EAAA;IACxB,OAAA,KAAA,CAAA;EACT;EAEA,MAAMkB,iBAAiB;IAACC,UAAA,EAAY,CAAC,KAAO,EAAA,MAAA,EAAQ,KAAK;GAAC;EAEpD,MAAA;IAACC;EAAU,CAAA,GAAIC,UAAW,CAAAC,OAAA,GAAU;IAACF,UAAA,EAAYA,CAAA,KAAM,KAAA;EAAA,CAAa,GAAAG,IAAA,CAAAA,QAAA,CAASL,cAAc,CAAA;EAG3F,MAAAM,GAAA,GAAMC,QAAQT,UAAU,CAAA;EAEnBI,UAAA,EAAA;EAEJ,OAAA,CAAAI,GAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAAA,GAAA,CAAKrB,YAAWqB,GAAO,IAAA,KAAA,CAAA;AAChC;ACnCgB,SAAAE,qBAAAA,CACdC,MACAC,YACG,EAAA;EACH,IAAI,CAACD,IAAA,EAAa,OAAAC,YAAA;EAEd,IAAA,OAAOD,SAAS,UAAY,EAAA;IAC9B,OAAQA,KAAsCC,YAAY,CAAA;EAC5D;EAEO,OAAAD,IAAA;AACT;ACbO,MAAME,0BAA6B,GAAA,CACxC,uEAAA,EACA,UAAA,EACA,WAAA,EACA,0BAAA,CACF;ACCA,eAAsBC,QAAQjB,OAA8C,EAAA;EACpE,MAAA;IAACb;EAAO,CAAA,GAAAa,OAAA;EAEd,MAAMT,OAAU,GAAA,MAAMU,cAAAA,CAAAA,OAAM,CAAA;IAACd;EAAI,CAAA,CAAA;EAEjC,IAAI,CAACI,OAAA,EAAe,MAAA,IAAI2B,MAAM,uBAAuB,CAAA;EAErD,MAAMC,GAAM,GAAA,MAAMC,WAAAA,CAAAA,OAAG,CAAAC,QAAA,CAAS9B,OAAO,CAAA;EAErC,MAAM+B,GAAM,GAAAC,IAAA,CAAKC,KAAM,CAAAL,GAAA,CAAIM,SAAU,CAAA,CAAA;EAErCC,MAAA,CAAAA,WAAA,CAAYJ,GAAG,CAAA;EAER,OAAAA,GAAA;AACT;ACpBgB,SAAAK,WAAAA,CAAeC,GAAMC,GAAmB,EAAA;EAChD,MAAAC,IAAA,GAAOD,GAAI,CAAAE,OAAA,CAAQH,CAAC,CAAA;EAG1B,IAAIE,SAAS,CAAI,CAAA,EAAA;IACR,OAAA,IAAA;EACT;EAEA,OAAOA,IAAS,KAAA,CAAA;AAClB;AAGgB,SAAAE,UAAAA,CAAcJ,GAAMC,GAAmB,EAAA;EAC/C,MAAAC,IAAA,GAAOD,GAAI,CAAAE,OAAA,CAAQH,CAAC,CAAA;EAG1B,IAAIE,SAAS,CAAI,CAAA,EAAA;IACR,OAAA,IAAA;EACT;EAEO,OAAAA,IAAA,KAASD,IAAII,MAAS,GAAA,CAAA;AAC/B;AAGgB,SAAAC,WAAAA,CAAeN,CAAM,EAAAO,CAAA,EAAMN,GAAmB,EAAA;EACtD,MAAAC,IAAA,GAAOD,GAAI,CAAAE,OAAA,CAAQH,CAAC,CAAA;EACpB,MAAAQ,IAAA,GAAOP,GAAI,CAAAE,OAAA,CAAQI,CAAC,CAAA;EAGtB,IAAAL,IAAA,KAAS,CAAM,CAAA,IAAAM,IAAA,KAAS,CAAI,CAAA,EAAA;IACvB,OAAA,IAAA;EACT;EAEA,OAAON,IAAO,GAAAM,IAAA;AAChB;AC1BA,eAAsBC,qBAAqBrC,OAGlB,EAAA;EACjB,MAAA;IAACb,GAAK;IAAAmD;EAAU,CAAA,GAAAtC,OAAA;EAElB,IAAA;IACF,MAAMuC,GAAM,GAAA,MAAMtB,OAAQ,CAAA;MAAC9B;IAAI,CAAA,CAAA;IAG/B,IAAIoD,IAAIC,OAAS,EAAA;MACf,MAAMC,QAAW,GAAAC,MAAA,CAAOC,OAAQ,CAAAJ,GAAA,CAAIC,OAAO,CAAA;MAE3C,KAAA,MAAW,CAACI,OAAA,EAASC,GAAG,CAAA,IAAKJ,QAAU,EAAA;QACjC,IAAA,OAAOI,QAAQ,QAAU,EAAA;UAC3B;QACF;QAEM,MAAAC,IAAA,GAAOJ,MAAO,CAAAI,IAAA,CAAKD,GAAG,CAAA;QAE5B,IAAI,CAAClB,WAAA,CAAY,OAAS,EAAAmB,IAAI,CAAG,EAAA;UACxBR,MAAA,CAAAS,IAAA,cAAAC,MAAA,CAAiBJ,OAAO,2DAAyD,CAAA;QAC1F;QAEA,IAAI,CAACV,WAAA,CAAY,SAAW,EAAA,QAAA,EAAUY,IAAI,CAAG,EAAA;UACpCR,MAAA,CAAAS,IAAA,cAAAC,MAAA,CACOJ,OAAO,yEAAA,CACrB;QACF;QAEA,IAAI,CAACV,WAAA,CAAY,SAAW,EAAA,MAAA,EAAQY,IAAI,CAAG,EAAA;UAClCR,MAAA,CAAAS,IAAA,cAAAC,MAAA,CACOJ,OAAO,uEAAA,CACrB;QACF;QAEA,IAAI,CAACV,WAAA,CAAY,MAAQ,EAAA,QAAA,EAAUY,IAAI,CAAG,EAAA;UACjCR,MAAA,CAAAS,IAAA,cAAAC,MAAA,CACOJ,OAAO,kEAAA,CACrB;QACF;QAEA,IAAI,CAACZ,UAAA,CAAW,SAAW,EAAAc,IAAI,CAAG,EAAA;UACzBR,MAAA,CAAAS,IAAA,cAAAC,MAAA,CAAiBJ,OAAO,4DAA0D,CAAA;QAC3F;MACF;IACF;IAEO,OAAAL,GAAA;WACAU,GAAK,EAAA;IACZ,IAAIA,eAAeC,GAAAA,CAAAA,QAAU,EAAA;MAChB,KAAA,MAAAC,KAAA,IAASF,IAAIG,MAAQ,EAAA;QAC1B,IAAAD,KAAA,CAAME,SAAS,cAAgB,EAAA;UAC1Bf,MAAA,CAAAgB,KAAA,CACL,KAAAN,MAAA,CACOO,UAAA,CAAWJ,KAAM,CAAA3D,IAAI,CAAC,gDAAAwD,MAAA,CACcQ,cAAAA,CAAAA,OAAA,CAAMC,OAAQ,CAAAN,KAAA,CAAMO,QAAQ,CAAC,qBAAAV,MAAA,CACzDQ,cAAAA,CAAAA,OAAA,CAAMC,OAAQ,CAAAN,KAAA,CAAMQ,QAAQ,CAAC,OAC5C,CAAEC,KAAK,EAAE,CAAA,CACX;UACA;QACF;QAEAtB,MAAA,CAAOgB,MAAMH,KAAK,CAAA;MACpB;IAAA,CACK,MAAA;MACLb,MAAA,CAAOgB,MAAML,GAAG,CAAA;IAClB;IAEAY,OAAA,CAAQC,KAAK,CAAC,CAAA;EAChB;AACF;AAEA,SAASP,WAAWQ,QAAkC,EAAA;EACpD,OAAOA,QACJ,CAAAC,GAAA,CAAI,CAACC,CAAA,EAAGC,GAAQ,KAAA;IACf,IAAIA,GAAQ,KAAA,CAAA,EAAU,OAAAD,CAAA;IAElB,IAAA,OAAOA,MAAM,QAAU,EAAA;MACzB,WAAAjB,MAAA,CAAWiB,CAAC;IACd;IAEI,IAAAA,CAAA,CAAE7D,UAAW,CAAA,GAAG,CAAG,EAAA;MACrB,aAAA4C,MAAA,CAAYiB,CAAC;IACf;IAEA,WAAAjB,MAAA,CAAWiB,CAAC;EAAA,CACb,CACA,CAAAL,IAAA,CAAK,EAAE,CAAA;AACZ;AC9FgB,SAAAO,eAAAA,CACd1B,UACAzC,OACU,EAAA;EACJ,MAAA;IAACoE,MAAQ;IAAA7B;EAAO,CAAA,GAAAvC,OAAA;EACtB,MAAMqE,GAAM,GAAAD,MAAA,CAAO7B,GAAI,CAAA+B,IAAA,IAAQ,UAAU,CAAA;EAEzC,MAAMC,SAAmB,EAAC;EAE1B,KAAA,MAAW1B,OAAOJ,QAAU,EAAA;IACtB,IAAAI,GAAA,CAAIjC,WAAW,CAACiC,GAAA,CAAIjC,QAAQ4D,QAAS,CAAAH,GAAA,CAAII,QAAQ,CAAG,EAAA;MAC/CF,MAAA,CAAAG,IAAA,+BAAA1B,MAAA,CACyBT,IAAI+B,IAAI,uBAAAtB,MAAA,CAAoBH,IAAI8B,KAAK,mCAAA3B,MAAA,CAA+BqB,IAAII,QAAQ,OAAA,CAChH;IACF;IAEI,IAAA5B,GAAA,CAAI+B,UAAU,CAAC/B,GAAA,CAAI+B,OAAOJ,QAAS,CAAAH,GAAA,CAAIQ,GAAG,CAAG,EAAA;MACxCN,MAAA,CAAAG,IAAA,+BAAA1B,MAAA,CACyBT,IAAI+B,IAAI,uBAAAtB,MAAA,CAAoBH,IAAI8B,KAAK,kCAAA3B,MAAA,CAA8BqB,IAAIQ,GAAG,OAAA,CAC1G;IACF;EACF;EAEO,OAAAN,MAAA;AACT;ACrBO,SAASO,aAAa9E,OAIO,EAAA;EAClC,MAAM;IAACoE,MAAA;IAAQ7B,GAAK;IAAAwC;EAAA,CAAU,GAAA/E,OAAA;EAE9B,MAAMgF,UAA0C,GAAA;IAC9CC,SAAW,EAAA,IAAA;IACXN,KAAO,EAAA,GAAA;IACPO,OAAO3C,GAAI,CAAA2C,KAAA;IACXC,MAAA,EAAQ5C,IAAI4C,MAAU,IAAA,EAAA;IACtBC,OAAA,EAAS7C,IAAI6C,OAAW,IAAA;MACtBD,MAAA,EAAQ5C,IAAI4C,MAAU,IAAA,EAAA;MACtBvE,SAAS2B,GAAI,CAAA8C,IAAA,IAAQ9C,GAAI,CAAA6C,OAAA,CAAQ7C,IAAI8C,IAAI,CAAA;MACzCT,QAAQrC,GAAI,CAAA+C,MAAA,IAAU/C,GAAI,CAAA6C,OAAA,CAAQ7C,IAAI+C,MAAM;IAC9C,CAAA;IACA1E,SAAS2B,GAAI,CAAA8C,IAAA;IACbT,QAAQrC,GAAI,CAAA+C,MAAA;IACZhG,OAAS,EAAAiD,GAAA,CAAI+C,MAAU,IAAA/C,GAAA,CAAI8C,IAAQ,IAAA;EAAA,CACrC;EAEA,MAAME,eAAgD,EAAC;EAEvD,MAAMhB,SAAmB,EAAC;EAE1B,IAAIhC,IAAIC,OAAS,EAAA;IACf,IAAIuC,MAAU,IAAA,CAACxC,GAAI,CAAAC,OAAA,CAAQ,gBAAgB,CAAG,EAAA;MAC5C+B,MAAA,CAAOG,KAAK,4DAA4D,CAAA;IAC1E;IAEW,KAAA,MAAA,CAACc,YAAYC,WAAW,CAAA,IAAK/C,OAAOC,OAAQ,CAAAJ,GAAA,CAAIC,OAAO,CAAG,EAAA;MAC/D,IAAAgD,UAAA,CAAWhB,QAAS,CAAA,OAAO,CAAG,EAAA;QAChC,IAAIgB,eAAe,gBAAkB,EAAA;UACnC,IAAIC,gBAAgB,gBAAkB,EAAA;YACpClB,MAAA,CAAOG,KAAK,oEAAoE,CAAA;UAClF;QACF;MAAA,CACF,MAAA,IAAWgB,MAAAA,CAAAA,QAAS,CAAAD,WAAW,CAAG,EAAA;QAChC,IAAID,eAAe,GAAK,EAAA;UACtB,IACEC,YAAY7E,OACZ,IAAAoE,UAAA,CAAWpE,WACX6E,WAAY,CAAA7E,OAAA,KAAYoE,WAAWpE,OACnC,EAAA;YACO2D,MAAA,CAAAG,IAAA,CACL,mFAAA,CACF;UACF;UAEA,IAAIe,YAAYb,MAAU,IAAAI,UAAA,CAAWJ,UAAUa,WAAY,CAAAb,MAAA,KAAWI,WAAWJ,MAAQ,EAAA;YAChFL,MAAA,CAAAG,IAAA,CACL,mFAAA,CACF;UACF;UAEA,IAAIe,YAAYP,KAAS,IAAAF,UAAA,CAAWE,SAASO,WAAY,CAAAP,KAAA,KAAUF,WAAWE,KAAO,EAAA;YAC5EX,MAAA,CAAAG,IAAA,CACL,kFAAA,CACF;UACF;UAEA,IAAIe,YAAYN,MAAU,IAAAH,UAAA,CAAWG,UAAUM,WAAY,CAAAN,MAAA,KAAWH,WAAWG,MAAQ,EAAA;YAChFZ,MAAA,CAAAG,IAAA,CACL,oFAAA,CACF;UACF;UAEOhC,MAAA,CAAAiD,MAAA,CAAOX,YAAYS,WAAW,CAAA;QAAA,CAChC,MAAA;UACL,MAAMG,WAA2C,GAAA;YAC/CX,SAAW,EAAA,IAAA;YACXN,KAAO,EAAAa,UAAA;YACP,GAAGC;UAAA,CACL;UAEAF,YAAA,CAAab,KAAKkB,WAAW,CAAA;QAC/B;MAAA,CACK,MAAA;QACLrB,MAAA,CAAOG,KAAK,yCAAyC,CAAA;MACvD;IACF;EACF;EAEA,MAAMjC,QAAW,GAAA,CAACuC,UAAY,EAAA,GAAGO,YAAY,CAAA;EAEtChB,MAAA,CAAAG,IAAA,CAAK,GAAGP,eAAgB,CAAA1B,QAAA,EAAU;IAAC2B,MAAQ;IAAA7B;EAAI,CAAA,CAAC,CAAA;EAEvD,IAAIgC,OAAOtC,MAAQ,EAAA;IACjB,MAAM,IAAIf,KAAM,CAAA,MAAA,GAASqD,MAAO,CAAAX,IAAA,CAAK,MAAM,CAAC,CAAA;EAC9C;EAEO,OAAAnB,QAAA;AACT;AC7FO,MAAMoD,mBAAiC,GAAA;EAAA;EAE5CpB,QAAU,EAAA;IACRA,QAAU,EAAA,KAAA;IACVI,GAAK,EAAA;EACP,CAAA;EAAA;EAGAS,MAAQ,EAAA;IACNb,QAAU,EAAA,MAAA;IACVI,GAAK,EAAA;EACP;AACF,CAAA;AAGO,SAASiB,aAAa9F,OAA8C,EAAA;EACnE,MAAA;IAAC+F;EAAiB,CAAA,GAAA/F,OAAA;EAElB,MAAAgG,GAAA,GAAM;IAAC,GAAGH;GAAmB;EAInC,IAAIE,aAAe,EAAA;IACjBC,GAAA,CAAI,UAAU,CAAI,GAAA;MAChBvB,QAAU,EAAA,KAAA;MACVI,GAAK,EAAA;IAAA,CACP;EACF;EAEO,OAAAmB,GAAA;AACT;AClCA,eAAsBC,aAAajG,OAGD,EAAA;EAC1B,MAAA;IAACb,GAAK;IAAA+G;EAAgB,CAAA,GAAAlG,OAAA;EAE5B,MAAML,aAAawG,WAAG,CAAA7G,OAAA,CAAAJ,cAAA,CAAeC,KAAKgH,WAAAA,CAAAA,OAAG,CAAAC,GAAA,CAAItG,YAAYoG,YAAY,CAAA;EAEzE,IAAI,CAACvG,UAAY,EAAA;IACf,MAAM,IAAIuB,KAAA,4BAAA8B,MAAA,CAAiCkD,YAAY,MAAG,CAAA;EAC5D;EAEA,MAAM/F,aAAagG,WAAAA,CAAAA,OAAG,CAAAE,cAAA,CAAe1G,UAAY,EAAAwG,mBAAA,CAAGC,IAAI/E,QAAQ,CAAA;EAEhE,OAAO8E,WAAAA,CAAAA,QAAGG,0BAA2B,CAAAnG,UAAA,CAAWoG,MAAQ,EAAAJ,mBAAA,CAAGC,KAAKjH,GAAG,CAAA;AACrE;AChBgB,SAAAqH,YAAAA,CAAaC,eAAuBC,QAA2B,EAAA;EAC7E,OAAO,CAAClH,aAAK,CAAAF,OAAA,CAAAqH,QAAA,CAASF,eAAeC,QAAQ,CAAA,CAAEtG,WAAW,IAAI,CAAA;AAChE;AAEO,SAASwG,kBAAkBC,SAAyC,EAAA;EACzE,IAAIb,GAA0B,GAAA,KAAA,CAAA;EAE9B,KAAA,MAAWc,YAAYD,SAAW,EAAA;IAC5B,IAAAE,OAAA,GAAUvH,aAAAA,CAAAA,OAAK,CAAAC,OAAA,CAAQqH,QAAQ,CAAA;IAEnC,IAAI,CAACd,GAAK,EAAA;MACFA,GAAA,GAAAe,OAAA;MACN;IACF;IAEA,OAAOA,YAAYf,GAAK,EAAA;MACZe,OAAA,GAAAvH,aAAA,CAAAF,OAAA,CAAKG,QAAQsH,OAAO,CAAA;MAE9B,IAAIA,YAAYf,GAAK,EAAA;QACnB;MACF;MAEI,IAAAQ,YAAA,CAAaO,OAAS,EAAAf,GAAG,CAAG,EAAA;QACxBA,GAAA,GAAAe,OAAA;QACN;MACF;MAEA,IAAIA,OAAY,KAAA,GAAA,EAAY,OAAA,KAAA,CAAA;IAC9B;EACF;EAEO,OAAAf,GAAA;AACT;ACtBA,SAASgB,YAAAA,CAAapF,GAAWO,CAAW,EAAA;EACpC,MAAA8E,QAAA,GAAWC,OAAOtF,CAAC,CAAA;EACnB,MAAAuF,QAAA,GAAWD,OAAO/E,CAAC,CAAA;EAEzB,OAAO8E,QAAW,GAAAE,QAAA;AACpB;AAEO,SAASC,4BAA4BC,KAAwC,EAAA;EAC5E,MAAAC,MAAA,GAASC,8BAAaF,KAAK,CAAA;EAEjC,MAAM1E,OAAU,GAAA2E,MAAA,CAAOtD,GAAI,CAACwD,GAAQ,IAAA;IAClC,MAAM,CAACC,IAAM,EAAAC,OAAO,CAAI,GAAAF,GAAA,CAAIG,MAAM,GAAG,CAAA;IAErC,OAAO;MAACF,IAAA;MAAMC,OAAS,EAAAA,OAAA,CAAQC,KAAM,CAAA,GAAG,CAAE,CAAA,CAAC,CAAE,CAAAA,KAAA,CAAM,GAAG,CAAA,CAAE,CAAC;IAAC,CAAA;EAAA,CAC3D,CAAA;EAED,MAAMC,SAASjF,OAAQ,CAAAkF,MAAA,CAAQ1F,CAAM,IAAAA,CAAA,CAAEsF,SAAS,SAAS,CAAA;EACzD,MAAMK,QAAQnF,OAAQ,CAAAkF,MAAA,CAAQ1F,CAAM,IAAAA,CAAA,CAAEsF,SAAS,QAAQ,CAAA;EACvD,MAAMM,SAASpF,OAAQ,CAAAkF,MAAA,CAAQ1F,CAAM,IAAAA,CAAA,CAAEsF,SAAS,QAAQ,CAAA;EACxD,MAAMO,OAAOrF,OAAQ,CAAAkF,MAAA,CAAQ1F,CAAM,IAAAA,CAAA,CAAEsF,SAAS,MAAM,CAAA;EACpD,MAAMQ,KAAKtF,OAAQ,CAAAkF,MAAA,CAAQ1F,CAAM,IAAAA,CAAA,CAAEsF,SAAS,SAAS,CAAA;EACrD,MAAMS,SAASvF,OAAQ,CAAAkF,MAAA,CAAQ1F,CAAM,IAAAA,CAAA,CAAEsF,SAAS,SAAS,CAAA;EACzD,MAAMU,MAAMxF,OAAQ,CAAAkF,MAAA,CAAQ1F,CAAM,IAAAA,CAAA,CAAEsF,SAAS,QAAQ,CAAA;EACrD,MAAMW,QAAQzF,OAAQ,CAAAkF,MAAA,CAAQ1F,CAAM,IAAAA,CAAA,CAAEsF,SAAS,OAAO,CAAA;EACtD,MAAMY,OAAO1F,OAAQ,CAAAkF,MAAA,CAAQ1F,CAAM,IAAAA,CAAA,CAAEsF,SAAS,MAAM,CAAA;EAGpD,MAAMa,QAAkC,GAAA;IACtCP,MAAA,EAAQH,OAAO5E,MAAO,CAAA+E,MAAM,EAAE/D,GAAI,CAAC7B,CAAM,IAAAA,CAAA,CAAEuF,OAAO,CAAA;IAClDO,EAAA,EAAIH,MAAM9E,MAAO,CAAAiF,EAAE,EAAEjE,GAAI,CAAC7B,CAAM,IAAAA,CAAA,CAAEuF,OAAO,CAAA;IACzCM,MAAMA,IAAK,CAAAhE,GAAA,CAAK7B,CAAA,IAAMA,EAAEuF,OAAO,CAAA;IAC/BQ,QAAQA,MAAO,CAAAlE,GAAA,CAAK7B,CAAA,IAAMA,EAAEuF,OAAO,CAAA;IACnCS,KAAKA,GAAI,CAAAnE,GAAA,CAAK7B,CAAA,IAAMA,EAAEuF,OAAO,CAAA;IAC7BU,OAAOA,KAAM,CAAApE,GAAA,CAAK7B,CAAA,IAAMA,EAAEuF,OAAO,CAAA;IACjCW,MAAMA,IAAK,CAAArE,GAAA,CAAK7B,CAAA,IAAMA,EAAEuF,OAAO;EAAA,CACjC;EAGSY,QAAA,CAAAP,MAAA,CAAOQ,KAAKvB,YAAY,CAAA;EACxBsB,QAAA,CAAAL,EAAA,CAAGM,KAAKvB,YAAY,CAAA;EACpBsB,QAAA,CAAAN,IAAA,CAAKO,KAAKvB,YAAY,CAAA;EACtBsB,QAAA,CAAAJ,MAAA,CAAOK,KAAKvB,YAAY,CAAA;EACxBsB,QAAA,CAAAH,GAAA,CAAII,KAAKvB,YAAY,CAAA;EACrBsB,QAAA,CAAAF,KAAA,CAAMG,KAAKvB,YAAY,CAAA;EACvBsB,QAAA,CAAAD,IAAA,CAAKE,KAAKvB,YAAY,CAAA;EAExB,OAAAsB,QAAA;AACT;ACzDO,SAASE,qBAAqBF,QAAuD,EAAA;EAC1F,MAAMG,SAAmB,EAAC;EAEtB,IAAAH,QAAA,CAASP,OAAO9F,MAAQ,EAAA;IAC1BwG,MAAA,CAAO/D,qBAAc4D,QAAA,CAASP,MAAO,CAAA,CAAC,CAAC,CAAE,CAAA;EAC3C;EAEI,IAAAO,QAAA,CAASL,GAAGhG,MAAQ,EAAA;IACtBwG,MAAA,CAAO/D,sBAAe4D,QAAA,CAASL,EAAG,CAAA,CAAC,CAAC,CAAE,CAAA;EACxC;EAEI,IAAAK,QAAA,CAASN,KAAK/F,MAAQ,EAAA;IACxBwG,MAAA,CAAO/D,mBAAY4D,QAAA,CAASN,IAAK,CAAA,CAAC,CAAC,CAAE,CAAA;EACvC;EAEI,IAAAM,QAAA,CAASJ,OAAOjG,MAAQ,EAAA;IAC1BwG,MAAA,CAAO/D,kBAAW4D,QAAA,CAASJ,MAAO,CAAA,CAAC,CAAC,CAAE,CAAA;EACxC;EAEI,IAAAI,QAAA,CAASH,IAAIlG,MAAQ,EAAA;IACvBwG,MAAA,CAAO/D,qBAAc4D,QAAA,CAASH,GAAI,CAAA,CAAC,CAAC,CAAE,CAAA;EACxC;EAEI,IAAAG,QAAA,CAASF,MAAMnG,MAAQ,EAAA;IACzBwG,MAAA,CAAO/D,oBAAa4D,QAAA,CAASF,KAAM,CAAA,CAAC,CAAC,CAAE,CAAA;EACzC;EAEI,IAAAK,MAAA,CAAOxG,WAAW,CAAG,EAAA;IAChB,OAAA,KAAA,CAAA;EACT;EAEO,OAAAwG,MAAA;AACT;AChCO,SAASC,kBAAkBJ,QAAuD,EAAA;EACvF,MAAMG,SAAmB,EAAC;EAEtB,IAAAH,QAAA,CAASD,KAAKpG,MAAQ,EAAA;IACxBwG,MAAA,CAAO/D,mBAAY4D,QAAA,CAASD,IAAK,CAAA,CAAC,CAAC,CAAE,CAAA;EACvC;EAEI,IAAAI,MAAA,CAAOxG,WAAW,CAAG,EAAA;IAChB,OAAA,KAAA,CAAA;EACT;EAEO,OAAAwG,MAAA;AACT;ACMA,eAAsBE,oBAAoB3I,OAShB,EAAA;EAAA,IAAA4I,IAAA;EAClB,MAAA;IACJrC,MAAA;IACApH,GAAA;IACA0J,mBAAsB,GAAA,KAAA;IACtBzE,MAAA;IACA9B,MAAA;IACAC,GAAA;IACAwC,MAAA;IACA+D,QAAU,EAAA5C;EACR,CAAA,GAAAlG,OAAA;EACJ,MAAM8I,WAAW,MAAM7C,YAAA,CAAa;IAAC9G,GAAA;IAAK+G;EAAa,CAAA,CAAA;EACvD,MAAM6C,cAAiB,GAAA3B,2BAAA,CAA4B7E,GAAI,CAAAgF,YAAA,IAAgBvG,0BAA0B,CAAA;EAC3F,MAAAgI,UAAA,GAAaN,kBAAkBK,cAAc,CAAA;EAC7C,MAAAE,SAAA,GAAYT,qBAAqBO,cAAc,CAAA;EAErD,IAAI,CAACC,UAAY,EAAA;IACT,MAAA,IAAI9H,MAAM,2BAA2B,CAAA;EAC7C;EAEA,IAAI,CAAC+H,SAAW,EAAA;IACR,MAAA,IAAI/H,MAAM,0BAA0B,CAAA;EAC5C;EAEA,MAAMuH,MAAuC,GAAA;IAC3C,GAAA,EAAKQ,SAAU,CAAAjG,MAAA,CAAOgG,UAAU,CAAA;IAChC5D,OAAS,EAAA6D,SAAA;IACTZ,IAAM,EAAAW;EAAA,CACR;EAEM,MAAAE,aAAA,GAAgBpE,YAAa,CAAA;IAACV,MAAQ;IAAA7B,GAAA;IAAKwC;EAAO,CAAA,CAAE,CAAAoE,MAAA,CAAmB,CAACC,GAAA,EAAKC,CAAM,KAAA;IACvF,MAAM;MAAC1E,KAAA,EAAOa,UAAY;MAAA,GAAGC;KAAe,GAAA4D,CAAA;IAE5C,OAAO;MAAC,GAAGD,GAAA;MAAK,CAAC5D,UAAU,GAAGC;IAAW,CAAA;EAC3C,CAAA,EAAG,CAAE,CAAA,CAAA;EAEL,MAAMjD,OAAU,GAAA3B,qBAAA,CAAsB0F,MAAQ,IAAA,IAAA,GAAA,KAAA,CAAA,GAAAA,MAAA,CAAA/D,OAAA,EAAS0G,aAAa,CAAA;EAEpE,MAAMI,cAAiB,GAAA,CACrB,IAAI/G,IAAIgH,YAAe,GAAA7G,MAAA,CAAOI,KAAKP,GAAI,CAAAgH,YAAY,IAAI,EAAC,GACxD,IAAIhH,IAAIiH,gBAAmB,GAAA9G,MAAA,CAAOI,KAAKP,GAAI,CAAAiH,gBAAgB,IAAI,EAAC,EAClE;EAGA,MAAMC,WACJlD,MAAU,IAAAmD,KAAA,CAAMC,OAAQ,CAAApD,MAAA,CAAOkD,QAAQ,CACnC,GAAA,CAAC,GAAGH,cAAA,EAAgB,GAAG/C,MAAO,CAAAkD,QAAQ,IACtC5I,qBAAsB,CAAA0F,MAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAAA,MAAA,CAAQkD,UAAUH,cAAc,CAAA;EAE5D,MAAMM,cAAclH,MAAO,CAAAmH,MAAA,CAAOrH,OAAO,CACtC,CAAAsH,OAAA,CAASrE,WAAgB,IAAA;IA/E9B,IAAAsE,EAAA,EAAAC,EAAA,EAAAC,EAAA,EAAAC,EAAA;IAgFa,OAAA,CACLzE,WAAY,CAAAb,MAAA,EACZa,WAAY,CAAA7E,OAAA,EACZ,CAAAmJ,EAAA,GAAAtE,WAAA,CAAYL,YAAZ,IAAqB,GAAA,KAAA,CAAA,GAAA2E,EAAA,CAAAnF,MAAA,EACrB,CAAAoF,EAAA,GAAAvE,WAAA,CAAYL,YAAZ,IAAqB,GAAA,KAAA,CAAA,GAAA4E,EAAA,CAAApJ,OAAA,EAAA,CAAA,CACrBqJ,EAAY,GAAAxE,WAAA,CAAA4C,IAAA,KAAZ,IAAkB,GAAA,KAAA,CAAA,GAAA4B,EAAA,CAAA9E,MAAA,KAAUM,YAAY4C,IAAK,CAAAzD,MAAA,EAAA,CAAA,CAC7CsF,EAAY,GAAAzE,WAAA,CAAA4C,IAAA,KAAZ,IAAkB,GAAA,KAAA,CAAA,GAAA6B,EAAA,CAAA/E,MAAA,KAAUM,YAAY4C,IAAK,CAAAzH,OAAA,CAC/C,CAAEiH,OAAOsC,OAAO,CAAA;EAAA,CACjB,EACAnG,GAAI,CAACoG,KAAM5K,aAAAA,CAAAA,OAAK,CAAAI,OAAA,CAAQT,GAAK,EAAAiL,CAAC,CAAC,CAAA;EAE5B,MAAAC,cAAA,GAAiBzD,kBAAkBgD,WAAW,CAAA;EAEpD,IAAIS,mBAAmBlL,GAAK,EAAA;IAC1B,MAAM,IAAI+B,KAAA,CACR,+FAAA,CACF;EACF;EAEA,IAAImJ,cAAkB,IAAA,CAAC7D,YAAa,CAAArH,GAAA,EAAKkL,cAAc,CAAG,EAAA;IAClD,MAAA,IAAInJ,MAAM,qDAAqD,CAAA;EACvE;EAEM,MAAAoJ,cAAA,GAAA,CAAiB/D,iCAAQgE,IAAO,IAAA/K,aAAAA,CAAAA,OAAA,CAAKI,QAAQT,GAAK,EAAAoH,MAAA,CAAOgE,IAAI,CAAI,GAAA,KAAA,CAAA;EAGrE,IAAAD,cAAA,IACAD,kBACAC,cAAmB,KAAAD,cAAA,IACnB,CAAC7D,YAAa,CAAA8D,cAAA,EAAgBD,cAAc,CAC5C,EAAA;IACA/H,MAAA,CAAOkI,kDAA4ChL,aAAA,CAAAF,OAAA,CAAKqH,SAASxH,GAAK,EAAAkL,cAAc,CAAC,QAAM,CAAA;IAErF,MAAA,IAAInJ,MAAM,kEAAkE,CAAA;EACpF;EAEA,MAAMuJ,WAAWH,cAAkB,IAAAD,cAAA;EAEnC,IAAI,CAACI,QAAU,EAAA;IACP,MAAA,IAAIvJ,MAAM,8BAA8B,CAAA;EAChD;EAEA,MAAMwJ,GAAoB,GAAA;IACxBnE,MAAA;IACApH,GAAA;IACAsL,QAAA;IACA5B,mBAAA;IACArG,OAAA;IACAiH,QAAA;IACArF,MAAA;IACAuG,OAAO,EAAC;IACRrI,MAAA;IACAC,GAAA;IACAqI,OAAA,GAAAhC,IAAA,GAASrC,iCAAQqE,OAAW,cAAAhC,IAAA,cAAAA,IAAA,GAAA,GAAA;IAC5B7D,MAAA;IACA0D,MAAA;IACAtC,EAAI,EAAA;MACFI,MAAQ,EAAAuC,QAAA;MACRnJ,UAAY,EAAAuG;IACd;EAAA,CACF;EAEO,OAAAwE,GAAA;AACT;AClIO,SAASG,iBAAiB7K,OAElB,EAAA;EACb,MAAM;IAAC8K;EAAA,CAAc,GAAA9K,OAAA,IAAW,EAAC;EAEjC,MAAM+K,QAAW,GAAA;IACfP,KAAKQ,OAAQ,CAAAR,GAAA;IACbzH,MAAMiI,OAAQ,CAAAjI,IAAA;IACdO,OAAO0H,OAAQ,CAAA1H;EAAA,CACjB;EAEA,MAAM2H,WAA4B,EAAC;EAE3BD,OAAA,CAAAR,GAAA,GAAM;IAAA,SAAAU,IAAA,GAAAC,SAAA,CAAAlJ,MAAA,EAAImJ,IAAoB,OAAA1B,KAAA,CAAAwB,IAAA,GAAAG,IAAA,MAAAA,IAAA,GAAAH,IAAA,EAAAG,IAAA;MAApBD,IAAoB,CAAAC,IAAA,IAAAF,SAAA,CAAAE,IAAA;IAAA;IAAA,OAAAJ,QAAA,CAASvG,KAAK;MAACJ,IAAA,EAAM,KAAO;MAAA8G;IAAA,CAAK,CAAA;EAAA;EAC/DJ,OAAA,CAAAjI,IAAA,GAAO;IAAA,SAAAuI,KAAA,GAAAH,SAAA,CAAAlJ,MAAA,EAAImJ,IAAoB,OAAA1B,KAAA,CAAA4B,KAAA,GAAAC,KAAA,MAAAA,KAAA,GAAAD,KAAA,EAAAC,KAAA;MAApBH,IAAoB,CAAAG,KAAA,IAAAJ,SAAA,CAAAI,KAAA;IAAA;IAAA,OAAAN,QAAA,CAASvG,KAAK;MAACJ,IAAA,EAAM,MAAQ;MAAA8G;IAAA,CAAK,CAAA;EAAA;EACjEJ,OAAA,CAAA1H,KAAA,GAAQ;IAAA,SAAAkI,KAAA,GAAAL,SAAA,CAAAlJ,MAAA,EAAImJ,IAAoB,OAAA1B,KAAA,CAAA8B,KAAA,GAAAC,KAAA,MAAAA,KAAA,GAAAD,KAAA,EAAAC,KAAA;MAApBL,IAAoB,CAAAK,KAAA,IAAAN,SAAA,CAAAM,KAAA;IAAA;IAAA,OAAAR,QAAA,CAASvG,KAAK;MAACJ,IAAA,EAAM,OAAS;MAAA8G;IAAA,CAAK,CAAA;EAAA;EAEpE,OAAA;IACLH,QAAA;IACAS,SAASA,CAAA,KAAM;MACbV,OAAA,CAAQR,MAAMO,QAAS,CAAAP,GAAA;MACvBQ,OAAA,CAAQjI,OAAOgI,QAAS,CAAAhI,IAAA;MACxBiI,OAAA,CAAQ1H,QAAQyH,QAAS,CAAAzH,KAAA;MAEZwH,UAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAAA,UAAA,CAAAG,QAAA,CAAA;IACf;EAAA,CACF;AACF;;;;;;;;;;;"}
|