@sanity/pkg-utils 1.14.0 → 1.15.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.
Files changed (43) hide show
  1. package/README.md +21 -0
  2. package/dist/_chunks/{_resolveBuildContext-ef196a3e.js → _resolveBuildContext-03173a8b.js} +4 -4
  3. package/dist/_chunks/_resolveBuildContext-03173a8b.js.map +1 -0
  4. package/dist/_chunks/{build-83c36253.js → build-310be3da.js} +7 -4
  5. package/dist/_chunks/build-310be3da.js.map +1 -0
  6. package/dist/_chunks/{buildAction-19b87a46.js → buildAction-a9202a2e.js} +5 -4
  7. package/dist/_chunks/buildAction-a9202a2e.js.map +1 -0
  8. package/dist/_chunks/{check-7d728336.js → check-11e7f6c3.js} +6 -4
  9. package/dist/_chunks/check-11e7f6c3.js.map +1 -0
  10. package/dist/_chunks/{checkAction-2342707c.js → checkAction-94065a29.js} +3 -3
  11. package/dist/_chunks/{checkAction-2342707c.js.map → checkAction-94065a29.js.map} +1 -1
  12. package/dist/_chunks/{index-33f2afe8.js → index-ce8b8c19.js} +68 -58
  13. package/dist/_chunks/index-ce8b8c19.js.map +1 -0
  14. package/dist/_chunks/{watch-12e6eafa.js → watch-66b2cb5a.js} +7 -4
  15. package/dist/_chunks/watch-66b2cb5a.js.map +1 -0
  16. package/dist/_chunks/{watchAction-d4ae9e80.js → watchAction-54591f0e.js} +5 -4
  17. package/dist/_chunks/watchAction-54591f0e.js.map +1 -0
  18. package/dist/cli.js +6 -6
  19. package/dist/cli.js.map +1 -1
  20. package/dist/index.d.ts +13 -3
  21. package/dist/index.esm.js +81 -63
  22. package/dist/index.esm.js.map +1 -1
  23. package/dist/index.js +5 -5
  24. package/package.json +1 -1
  25. package/src/cli/buildAction.ts +2 -1
  26. package/src/cli/index.ts +2 -0
  27. package/src/cli/watchAction.ts +2 -1
  28. package/src/node/_core/config/types.ts +2 -1
  29. package/src/node/_core/contexts/buildContext.ts +1 -0
  30. package/src/node/_resolveBuildContext.ts +8 -2
  31. package/src/node/_tasks/dts/_buildTypes.ts +5 -2
  32. package/src/node/_tasks/dts/_doExtract.ts +2 -2
  33. package/src/node/_tasks/rollup/_resolveRollupConfig.ts +87 -78
  34. package/src/node/build.ts +8 -4
  35. package/src/node/check.ts +3 -2
  36. package/src/node/watch.ts +8 -3
  37. package/dist/_chunks/_resolveBuildContext-ef196a3e.js.map +0 -1
  38. package/dist/_chunks/build-83c36253.js.map +0 -1
  39. package/dist/_chunks/buildAction-19b87a46.js.map +0 -1
  40. package/dist/_chunks/check-7d728336.js.map +0 -1
  41. package/dist/_chunks/index-33f2afe8.js.map +0 -1
  42. package/dist/_chunks/watch-12e6eafa.js.map +0 -1
  43. package/dist/_chunks/watchAction-d4ae9e80.js.map +0 -1
package/dist/index.js CHANGED
@@ -4,15 +4,15 @@ Object.defineProperty(exports, '__esModule', {
4
4
  value: true
5
5
  });
6
6
 
7
- var _resolveBuildContext = require('./_chunks/_resolveBuildContext-ef196a3e.js');
7
+ var _resolveBuildContext = require('./_chunks/_resolveBuildContext-03173a8b.js');
8
8
 
9
- var build = require('./_chunks/build-83c36253.js');
9
+ var build = require('./_chunks/build-310be3da.js');
10
10
 
11
- var index = require('./_chunks/index-33f2afe8.js');
11
+ var index = require('./_chunks/index-ce8b8c19.js');
12
12
 
13
- var check = require('./_chunks/check-7d728336.js');
13
+ var check = require('./_chunks/check-11e7f6c3.js');
14
14
 
15
- var watch = require('./_chunks/watch-12e6eafa.js');
15
+ var watch = require('./_chunks/watch-66b2cb5a.js');
16
16
 
17
17
  require('path');
18
18
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sanity/pkg-utils",
3
- "version": "1.14.0",
3
+ "version": "1.15.1",
4
4
  "author": "Sanity.io <hello@sanity.io>",
5
5
  "license": "MIT",
6
6
  "description": "Simple utilities for modern npm packages.",
@@ -1,10 +1,11 @@
1
1
  import {build} from '../node/build'
2
2
  import {_handleError} from './_handleError'
3
3
 
4
- export async function buildAction(options: {tsconfig?: string}): Promise<void> {
4
+ export async function buildAction(options: {strict?: boolean; tsconfig?: string}): Promise<void> {
5
5
  try {
6
6
  await build({
7
7
  cwd: process.cwd(),
8
+ strict: options.strict,
8
9
  tsconfig: options.tsconfig,
9
10
  })
10
11
  } catch (err) {
package/src/cli/index.ts CHANGED
@@ -16,6 +16,7 @@ cli
16
16
 
17
17
  cli
18
18
  .command('build', 'Build package')
19
+ .option('--strict', 'Strict mode')
19
20
  .option('--tsconfig [tsconfig]', '[string] tsconfig.json')
20
21
  .action(async (options) => {
21
22
  const {buildAction} = await import('./buildAction')
@@ -25,6 +26,7 @@ cli
25
26
 
26
27
  cli
27
28
  .command('watch', 'Watch package')
29
+ .option('--strict', 'Strict mode')
28
30
  .option('--tsconfig [tsconfig]', '[string] tsconfig.json')
29
31
  .action(async (options) => {
30
32
  const {watchAction} = await import('./watchAction')
@@ -1,10 +1,11 @@
1
1
  import {watch} from '../node/watch'
2
2
  import {_handleError} from './_handleError'
3
3
 
4
- export async function watchAction(options: {tsconfig?: string}): Promise<void> {
4
+ export async function watchAction(options: {strict?: boolean; tsconfig?: string}): Promise<void> {
5
5
  try {
6
6
  await watch({
7
7
  cwd: process.cwd(),
8
+ strict: options.strict,
8
9
  tsconfig: options.tsconfig,
9
10
  })
10
11
  } catch (err) {
@@ -112,7 +112,7 @@ export interface PkgConfigOptions {
112
112
  minify?: boolean
113
113
  /** @alpha */
114
114
  rollup?: {
115
- plugins?: RollupPlugin[]
115
+ plugins?: PkgConfigProperty<RollupPlugin[]>
116
116
  }
117
117
  /**
118
118
  * Default runtime of package exports
@@ -123,4 +123,5 @@ export interface PkgConfigOptions {
123
123
  * Directory of source files.
124
124
  */
125
125
  src?: string
126
+ tsconfig?: string
126
127
  }
@@ -25,6 +25,7 @@ export interface _BuildContext {
25
25
  }
26
26
  pkg: _PackageJSON
27
27
  runtime: PkgRuntime
28
+ strict: boolean
28
29
  target: Record<PkgRuntime, string[]>
29
30
  ts: {
30
31
  config?: ts.ParsedCommandLine
@@ -42,9 +42,10 @@ export async function _resolveBuildContext(options: {
42
42
  config?: PkgConfigOptions
43
43
  cwd: string
44
44
  pkg: _PackageJSON
45
+ strict: boolean
45
46
  tsconfig: string
46
47
  }): Promise<_BuildContext> {
47
- const {config, cwd, pkg, tsconfig: tsconfigPath} = options
48
+ const {config, cwd, pkg, strict, tsconfig: tsconfigPath} = options
48
49
  const logger = _createLogger()
49
50
  const tsconfig = await _loadTSConfig({cwd, tsconfigPath})
50
51
  const targetVersions = _resolveBrowserslistVersions(pkg.browserslist || _DEFAULTS.browserslist)
@@ -78,7 +79,11 @@ export async function _resolveBuildContext(options: {
78
79
  ...(pkg.peerDependencies ? Object.keys(pkg.peerDependencies) : []),
79
80
  ]
80
81
 
81
- const external = _resolveConfigProperty(config?.external, parsedExternal)
82
+ // Merge externals if an array is provided, replace if it's a function
83
+ const external =
84
+ config && Array.isArray(config.external)
85
+ ? [...parsedExternal, ...config.external]
86
+ : _resolveConfigProperty(config?.external, parsedExternal)
82
87
 
83
88
  const outputPaths = Object.values(exports)
84
89
  .flatMap((exportEntry) => {
@@ -134,6 +139,7 @@ export async function _resolveBuildContext(options: {
134
139
  logger,
135
140
  pkg,
136
141
  runtime: config?.runtime ?? '*',
142
+ strict,
137
143
  target,
138
144
  ts: {
139
145
  config: tsconfig,
@@ -13,8 +13,9 @@ export async function _buildTypes(options: {
13
13
  cwd: string
14
14
  outDir: string
15
15
  tsconfig: ts.ParsedCommandLine
16
+ strict: boolean
16
17
  }): Promise<void> {
17
- const {outDir, tsconfig} = options
18
+ const {outDir, tsconfig, strict = false} = options
18
19
 
19
20
  const compilerOptions: ts.CompilerOptions = {
20
21
  ...tsconfig.options,
@@ -49,7 +50,9 @@ export async function _buildTypes(options: {
49
50
  if (errors.length) {
50
51
  console.error(ts.formatDiagnostics(errors, formatHost))
51
52
 
52
- throw new Error('failed to compile')
53
+ if (strict) {
54
+ throw new Error('failed to compile TypeScript definitions')
55
+ }
53
56
  }
54
57
  }
55
58
  }
@@ -19,7 +19,7 @@ export async function _doExtract(
19
19
  ctx: _BuildContext,
20
20
  task: _DtsTask | _DtsWatchTask
21
21
  ): Promise<_DtsResult> {
22
- const {config, cwd, files, ts} = ctx
22
+ const {config, cwd, files, strict, ts} = ctx
23
23
 
24
24
  if (!ts.config || !ts.configPath) {
25
25
  return {type: 'dts', messages: [], results: []}
@@ -33,7 +33,7 @@ export async function _doExtract(
33
33
 
34
34
  const tmpPath = path.resolve(outDir, '__tmp__')
35
35
 
36
- await _buildTypes({cwd, outDir: tmpPath, tsconfig: ts.config})
36
+ await _buildTypes({cwd, outDir: tmpPath, strict, tsconfig: ts.config})
37
37
 
38
38
  const messages: ExtractorMessage[] = []
39
39
 
@@ -5,10 +5,10 @@ import commonjs from '@rollup/plugin-commonjs'
5
5
  import json from '@rollup/plugin-json'
6
6
  import {nodeResolve} from '@rollup/plugin-node-resolve'
7
7
  import replace from '@rollup/plugin-replace'
8
- import {InputOptions, OutputOptions} from 'rollup'
8
+ import {InputOptions, OutputOptions, Plugin} from 'rollup'
9
9
  import esbuild from 'rollup-plugin-esbuild'
10
10
  import {terser} from 'rollup-plugin-terser'
11
- import {_BuildContext, _DEFAULTS, _MODULE_EXT} from '../../_core'
11
+ import {_BuildContext, _DEFAULTS, _MODULE_EXT, _resolveConfigProperty} from '../../_core'
12
12
  import {_RollupTask, _RollupWatchTask} from '../_types'
13
13
 
14
14
  export interface _RollupConfig {
@@ -49,6 +49,90 @@ export function _resolveRollupConfig(
49
49
  Object.entries(config?.define || {}).map(([key, val]) => [key, JSON.stringify(val)])
50
50
  )
51
51
 
52
+ const defaultPlugins = [
53
+ replace({
54
+ preventAssignment: true,
55
+ values: {
56
+ ...(pkg.name === '@sanity/pkg-utils'
57
+ ? {...replacements}
58
+ : {
59
+ 'process.env.PKG_FILE_PATH': (arg) => {
60
+ const sourcePath = './' + path.relative(cwd, arg)
61
+ const entry = entries.find((e) => e.source === sourcePath)
62
+
63
+ if (!entry) {
64
+ // eslint-disable-next-line no-console
65
+ console.error(`could not find source entry: ${sourcePath}`)
66
+
67
+ return 'null'
68
+ }
69
+
70
+ return JSON.stringify(
71
+ path.relative(cwd, path.resolve(outDir, entry.name + outputExt))
72
+ )
73
+ },
74
+ 'process.env.PKG_FORMAT': JSON.stringify(format),
75
+ 'process.env.PKG_RUNTIME': JSON.stringify(runtime),
76
+ 'process.env.PKG_VERSION': JSON.stringify(process.env.PKG_VERSION || pkg.version),
77
+ ...replacements,
78
+ }),
79
+ },
80
+ }),
81
+ alias({
82
+ entries: {...pathAliases},
83
+ }),
84
+ nodeResolve({
85
+ // mainFields: ['module', 'jsnext', 'main'],
86
+ browser: runtime === 'browser',
87
+ // exportConditions: [runtime === 'node' ? 'node' : 'browser'],
88
+ extensions: ['.cjs', '.mjs', '.js', '.jsx', '.json', '.node'],
89
+ preferBuiltins: true, // runtime === 'node',
90
+ }),
91
+ commonjs({
92
+ esmExternals: false,
93
+ extensions: ['.js'],
94
+ // include: /\/node_modules\//,
95
+ // requireReturnsDefault: 'namespace',
96
+ }),
97
+ json(),
98
+ esbuild({
99
+ jsx: config?.jsx ?? 'automatic',
100
+ jsxFactory: config?.jsxFactory ?? 'createElement',
101
+ jsxFragment: config?.jsxFragment ?? 'Fragment',
102
+ jsxImportSource: config?.jsxImportSource ?? 'react',
103
+ target,
104
+ tsconfig: ctx.ts.configPath || 'tsconfig.json',
105
+ }),
106
+ getBabelOutputPlugin({
107
+ babelrc: false,
108
+ plugins: ['@babel/plugin-proposal-object-rest-spread'],
109
+ presets: [['@babel/preset-env', {targets: pkg.browserslist || _DEFAULTS.browserslist}]],
110
+ }),
111
+ minify &&
112
+ terser({
113
+ output: {
114
+ comments: (_node, comment) => {
115
+ const text = comment.value
116
+ const type = comment.type
117
+
118
+ // Check if this is a multiline comment
119
+ if (type == 'comment2') {
120
+ // Keep licensing comments
121
+ return /@preserve|@license|@cc_on/i.test(text)
122
+ }
123
+
124
+ return false
125
+ },
126
+ },
127
+ }),
128
+ ].filter(Boolean) as Plugin[]
129
+
130
+ const userPlugins = config?.rollup?.plugins
131
+
132
+ const plugins = Array.isArray(userPlugins)
133
+ ? defaultPlugins.concat(userPlugins)
134
+ : _resolveConfigProperty(config?.rollup?.plugins, defaultPlugins)
135
+
52
136
  return {
53
137
  inputOptions: {
54
138
  context: cwd,
@@ -96,82 +180,7 @@ export function _resolveRollupConfig(
96
180
  }
97
181
  },
98
182
 
99
- plugins: [
100
- replace({
101
- preventAssignment: true,
102
- values: {
103
- ...(pkg.name === '@sanity/pkg-utils'
104
- ? {...replacements}
105
- : {
106
- 'process.env.PKG_FILE_PATH': (arg) => {
107
- const sourcePath = './' + path.relative(cwd, arg)
108
- const entry = entries.find((e) => e.source === sourcePath)
109
-
110
- if (!entry) {
111
- throw new Error(`could not find source entry: ${sourcePath}`)
112
- }
113
-
114
- return JSON.stringify(
115
- path.relative(cwd, path.resolve(outDir, entry.name + outputExt))
116
- )
117
- },
118
- 'process.env.PKG_FORMAT': JSON.stringify(format),
119
- 'process.env.PKG_RUNTIME': JSON.stringify(runtime),
120
- 'process.env.PKG_VERSION': JSON.stringify(process.env.PKG_VERSION || pkg.version),
121
- ...replacements,
122
- }),
123
- },
124
- }),
125
- alias({
126
- entries: {...pathAliases},
127
- }),
128
- nodeResolve({
129
- // mainFields: ['module', 'jsnext', 'main'],
130
- browser: runtime === 'browser',
131
- // exportConditions: [runtime === 'node' ? 'node' : 'browser'],
132
- extensions: ['.cjs', '.mjs', '.js', '.jsx', '.json', '.node'],
133
- preferBuiltins: true, // runtime === 'node',
134
- }),
135
- commonjs({
136
- esmExternals: false,
137
- extensions: ['.js'],
138
- // include: /\/node_modules\//,
139
- // requireReturnsDefault: 'namespace',
140
- }),
141
- json(),
142
- esbuild({
143
- jsx: config?.jsx ?? 'automatic',
144
- jsxFactory: config?.jsxFactory ?? 'createElement',
145
- jsxFragment: config?.jsxFragment ?? 'Fragment',
146
- jsxImportSource: config?.jsxImportSource ?? 'react',
147
- target,
148
- tsconfig: ctx.ts.configPath || 'tsconfig.json',
149
- }),
150
- getBabelOutputPlugin({
151
- babelrc: false,
152
- plugins: ['@babel/plugin-proposal-object-rest-spread'],
153
- presets: [['@babel/preset-env', {targets: pkg.browserslist || _DEFAULTS.browserslist}]],
154
- }),
155
- minify &&
156
- terser({
157
- output: {
158
- comments: (_node, comment) => {
159
- const text = comment.value
160
- const type = comment.type
161
-
162
- // Check if this is a multiline comment
163
- if (type == 'comment2') {
164
- // Keep licensing comments
165
- return /@preserve|@license|@cc_on/i.test(text)
166
- }
167
-
168
- return false
169
- },
170
- },
171
- }),
172
-
173
- ...(config?.rollup?.plugins || []),
174
- ].filter(Boolean),
183
+ plugins,
175
184
 
176
185
  treeshake: {
177
186
  propertyReadSideEffects: false,
package/src/node/build.ts CHANGED
@@ -23,13 +23,17 @@ import {_BuildTask, _TaskHandler, _buildTaskHandlers} from './_tasks'
23
23
  *
24
24
  * @public
25
25
  */
26
- export async function build(options: {cwd: string; tsconfig?: string}): Promise<void> {
27
- const {cwd, tsconfig = 'tsconfig.json'} = options
26
+ export async function build(options: {
27
+ cwd: string
28
+ strict?: boolean
29
+ tsconfig?: string
30
+ }): Promise<void> {
31
+ const {cwd, strict = false, tsconfig: tsconfigOption} = options
28
32
 
29
33
  const pkg = await _loadPkgWithReporting({cwd})
30
34
  const config = await _loadConfig({cwd})
31
-
32
- const ctx = await _resolveBuildContext({config, cwd, pkg, tsconfig})
35
+ const tsconfig = tsconfigOption || config?.tsconfig || 'tsconfig.json'
36
+ const ctx = await _resolveBuildContext({config, cwd, pkg, strict, tsconfig})
33
37
 
34
38
  const buildTasks = _resolveBuildTasks(ctx)
35
39
 
package/src/node/check.ts CHANGED
@@ -10,11 +10,12 @@ export async function check(options: {
10
10
  strict?: boolean
11
11
  tsconfig?: string
12
12
  }): Promise<void> {
13
- const {cwd, strict, tsconfig = 'tsconfig.json'} = options
13
+ const {cwd, strict = false, tsconfig: tsconfigOption} = options
14
14
 
15
15
  const pkg = await _loadPkgWithReporting({cwd})
16
16
  const config = await _loadConfig({cwd})
17
- const ctx = await _resolveBuildContext({config, cwd, pkg, tsconfig})
17
+ const tsconfig = tsconfigOption || config?.tsconfig || 'tsconfig.json'
18
+ const ctx = await _resolveBuildContext({config, cwd, pkg, strict, tsconfig})
18
19
  const {logger} = ctx
19
20
 
20
21
  _printPackageTree(ctx)
package/src/node/watch.ts CHANGED
@@ -7,8 +7,12 @@ import {_WatchTask, _TaskHandler, _watchTaskHandlers} from './_tasks'
7
7
  import {_watchConfigFiles} from './_watchConfigFiles'
8
8
 
9
9
  /** @public */
10
- export async function watch(options: {cwd: string; tsconfig?: string}): Promise<void> {
11
- const {cwd, tsconfig = 'tsconfig.json'} = options
10
+ export async function watch(options: {
11
+ cwd: string
12
+ strict?: boolean
13
+ tsconfig?: string
14
+ }): Promise<void> {
15
+ const {cwd, strict = false, tsconfig: tsconfigOption} = options
12
16
 
13
17
  const configFiles$ = await _watchConfigFiles({cwd})
14
18
 
@@ -24,8 +28,9 @@ export async function watch(options: {cwd: string; tsconfig?: string}): Promise<
24
28
 
25
29
  const pkg = await _loadPkgWithReporting({cwd})
26
30
  const config = await _loadConfig({cwd})
31
+ const tsconfig = tsconfigOption || config?.tsconfig || 'tsconfig.json'
27
32
 
28
- return _resolveBuildContext({config, cwd, pkg, tsconfig})
33
+ return _resolveBuildContext({config, cwd, pkg, strict, tsconfig})
29
34
  })
30
35
  )
31
36
 
@@ -1 +0,0 @@
1
- {"version":3,"file":"_resolveBuildContext-ef196a3e.js","sources":["../../src/node/_core/_constants.ts","../../src/node/_core/_defaults.ts","../../src/node/_core/_isRecord.ts","../../src/node/_core/config/_findConfigFile.ts","../../src/node/_core/config/_loadConfig.ts","../../src/node/_core/config/_resolveConfigProperty.ts","../../src/node/_core/pkg/_validatePkg.ts","../../src/node/_core/pkg/_loadPkg.ts","../../src/node/_core/pkg/_loadPkgWithReporting.ts","../../src/node/_core/pkg/_validateExports.ts","../../src/node/_core/pkg/_parseExports.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"],"sourcesContent":["/** @internal */\nexport const _MODULE_EXT: Record<'commonjs' | 'module', {commonjs: string; esm: string}> = {\n // pkg.type: \"commonjs\"\n commonjs: {\n commonjs: '.js',\n // NOTE: using the `.mjs` extension causing issues in situations where\n // not every and all dependencies support ESM exports.\n // So for now, we require the ESM modules to have the `.esm.js` extension.\n esm: '.esm.js',\n },\n\n // pkg.type: \"module\"\n module: {\n commonjs: '.cjs',\n esm: '.js',\n },\n}\n","/** @internal */\nexport const _DEFAULTS = {\n browserslist: [\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}\n","/** @internal */\nexport function _isRecord(value: unknown): value is Record<string, unknown> {\n return Boolean(value) && !Array.isArray(value) && typeof value === 'object'\n}\n","import {stat} from 'fs/promises'\nimport path from 'path'\nimport findConfig from 'find-config'\n\nconst CONFIG_FILE_NAMES = [\n 'package.config.ts',\n 'package.config.js',\n 'package.config.cjs',\n 'package.config.mjs',\n]\n\nexport async function _findConfigFile(cwd: string): Promise<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 = await _fileExists(configPath)\n\n if (exists) {\n return configPath\n }\n }\n\n return undefined\n}\n\nasync function _fileExists(filePath: string) {\n try {\n await stat(filePath)\n\n return true\n } catch (_) {\n return false\n }\n}\n","import path from 'path'\nimport {register} from 'esbuild-register/dist/node'\nimport pkgUp from 'pkg-up'\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 try {\n const {unregister} = register({extensions: ['.js', '.mjs', '.ts']})\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 } catch (_) {\n return undefined\n }\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","import {z} from 'zod'\nimport {_PackageJSON} from './_types'\n\nconst pkgSchema = z.object({\n type: z.optional(z.enum(['commonjs', 'module'])),\n name: z.string(),\n version: z.string(),\n license: z.string(),\n bin: z.optional(z.record(z.string())),\n dependencies: z.optional(z.record(z.string())),\n devDependencies: z.optional(z.record(z.string())),\n peerDependencies: z.optional(z.record(z.string())),\n source: z.optional(z.string()),\n main: z.optional(z.string()),\n browser: z.optional(z.record(z.string())),\n module: z.optional(z.string()),\n types: z.optional(z.string()),\n exports: z.optional(\n z.record(\n z.object({\n types: z.optional(z.string()),\n source: z.string(),\n browser: z.optional(\n z.object({\n source: z.string(),\n require: z.optional(z.string()),\n import: z.optional(z.string()),\n })\n ),\n node: z.optional(\n z.object({\n source: z.string(),\n require: z.optional(z.string()),\n import: z.optional(z.string()),\n })\n ),\n require: z.optional(z.string()),\n import: z.optional(z.string()),\n default: z.string(),\n })\n )\n ),\n browserslist: z.optional(z.array(z.string())),\n})\n\nexport function _validatePkg(input: unknown): _PackageJSON {\n const pkg = pkgSchema.parse(input)\n\n return {...pkg, type: pkg.type || 'commonjs'}\n}\n","import fs from 'fs/promises'\nimport pkgUp from 'pkg-up'\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 return _validatePkg(JSON.parse(buf.toString()))\n}\n","/* eslint-disable no-console */\n\nimport chalk from 'chalk'\nimport {ZodError} from 'zod'\nimport {_loadPkg} from './_loadPkg'\nimport {_PackageJSON} from './_types'\n\n/** @internal */\nexport async function _loadPkgWithReporting(options: {cwd: string}): Promise<_PackageJSON> {\n try {\n return await _loadPkg(options)\n } catch (err) {\n if (err instanceof ZodError) {\n for (const issue of err.issues) {\n if (issue.code === 'invalid_type') {\n console.log(\n [\n `${chalk.red('fail')} \\`${_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 }\n }\n } else {\n console.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 {_MODULE_EXT} from '../_constants'\nimport {PkgExport} from '../config'\nimport {_PackageJSON} from './_types'\n\nexport function _validateExports(\n _exports: (PkgExport & {_path: string})[],\n options: {pkg: _PackageJSON}\n): (PkgExport & {_path: string})[] {\n const {pkg} = options\n const ext = _MODULE_EXT[pkg.type]\n\n for (const exp of _exports) {\n if (exp.require && !exp.require.endsWith(ext.commonjs)) {\n throw new Error(\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 throw new Error(\n `package.json with \\`type: \"${pkg.type}\"\\` - \\`exports[\"${exp._path}\"].require\\` must end with \"${ext.esm}\"`\n )\n }\n }\n\n return _exports\n}\n","import {_isRecord} from '../_isRecord'\nimport {PkgExport} from '../config'\nimport {_PackageJSON} from './_types'\nimport {_validateExports} from './_validateExports'\n\n/** @internal */\nexport function _parseExports(options: {pkg: _PackageJSON}): (PkgExport & {_path: string})[] {\n const {pkg} = 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 import: pkg.module,\n require: pkg.main,\n default: pkg.module || pkg.main || '',\n }\n\n const extraExports: (PkgExport & {_path: string})[] = []\n\n if (pkg.exports) {\n for (const [exportPath, exportEntry] of Object.entries(pkg.exports)) {\n if (_isRecord(exportEntry)) {\n if (exportPath === '.') {\n if (\n exportEntry.require &&\n rootExport.require &&\n exportEntry.require !== rootExport.require\n ) {\n throw new Error('mismatch between \"main\" and \"require\"')\n }\n\n if (exportEntry.import && rootExport.import && exportEntry.import !== rootExport.import) {\n throw new Error('mismatch between \"module\" and \"import\"')\n }\n\n if (exportEntry.types && rootExport.types && exportEntry.types !== rootExport.types) {\n throw new Error('mismatch between \"types\" and \"types\"')\n }\n\n if (exportEntry.source && rootExport.source && exportEntry.source !== rootExport.source) {\n throw new Error('mismatch between \"source\" and \"source\"')\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 throw new Error('string entries are not supported')\n }\n }\n }\n\n const _exports = [rootExport, ...extraExports]\n\n return _validateExports(_exports, {pkg})\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'\nimport chalk from 'chalk'\nimport {\n PkgConfigOptions,\n PkgExports,\n PkgRuntime,\n _BuildContext,\n _DEFAULTS,\n _loadTSConfig,\n _PackageJSON,\n _parseExports,\n _resolveConfigProperty,\n} from './_core'\nimport {_findCommonDirPath, _pathContains} from './_core/_findCommonPath'\nimport {_resolveBrowserslistVersions} from './_resolveBrowserslistVersions'\nimport {_resolveBrowserTarget} from './_resolveBrowserTarget'\nimport {_resolveNodeTarget} from './_resolveNodeTarget'\n\nfunction _createLogger(): _BuildContext['logger'] {\n return {\n /* eslint-disable no-console */\n log: (...args) => {\n console.log(...args)\n },\n info: (...args) => {\n console.log(chalk.blue(' info'), ...args)\n },\n warn: (...args) => {\n console.log(chalk.yellow(' warn'), ...args)\n },\n error: (...args) => {\n console.log(chalk.red(' fail'), ...args)\n },\n success: (...args) => {\n console.log(chalk.green(' ok '), ...args)\n },\n /* eslint-enable no-console */\n }\n}\n\nexport async function _resolveBuildContext(options: {\n config?: PkgConfigOptions\n cwd: string\n pkg: _PackageJSON\n tsconfig: string\n}): Promise<_BuildContext> {\n const {config, cwd, pkg, tsconfig: tsconfigPath} = options\n const logger = _createLogger()\n const tsconfig = await _loadTSConfig({cwd, tsconfigPath})\n const targetVersions = _resolveBrowserslistVersions(pkg.browserslist || _DEFAULTS.browserslist)\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({pkg}).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 const external = _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?.import,\n 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 exports,\n external,\n files: [],\n logger,\n pkg,\n runtime: config?.runtime ?? '*',\n target,\n ts: {\n config: tsconfig,\n configPath: tsconfigPath,\n },\n }\n\n return ctx\n}\n"],"names":["_MODULE_EXT","commonjs","esm","module","_DEFAULTS","browserslist","_isRecord","value","Boolean","Array","isArray","CONFIG_FILE_NAMES","_findConfigFile","cwd","pkgJsonPath","findConfig","pkgPath","path","dirname","fileName","configPath","resolve","exists","_fileExists","filePath","stat","_","_loadConfig","options","pkgUp","root","configFile","startsWith","unregister","register","extensions","mod","require","default","_resolveConfigProperty","prop","initialValue","pkgSchema","z","object","type","optional","enum","name","string","version","license","bin","record","dependencies","devDependencies","peerDependencies","source","main","browser","types","exports","import","node","array","_validatePkg","input","pkg","parse","_loadPkg","Error","buf","fs","readFile","JSON","toString","_loadPkgWithReporting","err","ZodError","issue","issues","code","console","log","chalk","red","_formatPath","magenta","expected","received","join","error","process","exit","segments","map","s","idx","_validateExports","_exports","ext","exp","endsWith","_path","_parseExports","rootExport","_exported","extraExports","exportPath","exportEntry","Object","entries","assign","extraExport","push","_loadTSConfig","tsconfigPath","ts","findConfigFile","sys","fileExists","readConfigFile","parseJsonConfigFileContent","config","_pathContains","containerPath","itemPath","relative","_findCommonDirPath","filePaths","ret","dirPath","_sortAsNumber","a","b","aVersion","Number","bVersion","_resolveBrowserslistVersions","query","result","key","split","andChr","filter","andFf","chrome","edge","ff","iosSaf","saf","opera","versions","concat","sort","_resolveBrowserTarget","target","length","_resolveNodeTarget","_createLogger","info","args","blue","warn","yellow","success","green","_resolveBuildContext","tsconfig","logger","targetVersions","nodeTarget","webTarget","parsedExports","reduce","acc","x","parsedExternal","keys","external","outputPaths","values","flatMap","_a","_b","_c","_d","p","commonDistPath","configDistPath","dist","distPath","ctx","files","runtime"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"build-83c36253.js","sources":["../../src/node/_resolveBuildTasks.ts","../../src/node/_spinner.ts","../../src/node/build.ts"],"sourcesContent":["import fs from 'fs'\nimport path from 'path'\nimport {PkgExport, PkgFormat, PkgRuntime, _BuildContext} from './_core'\nimport {_BuildTask, _DtsTask, _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 // 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 if (bundle.require) {\n _addRollupTaskEntry('commonjs', bundle.runtime || ctx.runtime, {\n path: '__bundle__',\n source: bundle.source,\n output: bundle.require,\n })\n }\n\n if (bundle.import) {\n _addRollupTaskEntry('commonjs', bundle.runtime || ctx.runtime, {\n path: '__bundle__',\n source: bundle.source,\n output: bundle.import,\n })\n }\n }\n\n if (dtsTask.entries.length) {\n tasks.push(dtsTask)\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 return tasks\n}\n","/* eslint-disable no-console */\n\nimport chalk from 'chalk'\n\nexport function _spinner(msg: string): {complete: () => void; error: () => void} {\n const startTime = Date.now()\n\n console.log(`${chalk.yellow('run ')} ${msg}`)\n\n return {\n complete: () => {\n console.log(`${chalk.green('ok ')} ${chalk.gray(`${Date.now() - startTime}ms`)}`)\n },\n error: () => {\n console.log(`${chalk.red(`failed`)} ${chalk.gray(`${Date.now() - startTime}ms`)}`)\n },\n }\n}\n","import {_loadConfig, _loadPkgWithReporting} from './_core'\nimport {_resolveBuildContext} from './_resolveBuildContext'\nimport {_resolveBuildTasks} from './_resolveBuildTasks'\nimport {_spinner} from './_spinner'\nimport {_BuildTask, _TaskHandler, _buildTaskHandlers} 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: {cwd: string; tsconfig?: string}): Promise<void> {\n const {cwd, tsconfig = 'tsconfig.json'} = options\n\n const pkg = await _loadPkgWithReporting({cwd})\n const config = await _loadConfig({cwd})\n\n const ctx = await _resolveBuildContext({config, cwd, pkg, tsconfig})\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 = _spinner(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","_path","exp","dtsTask","type","rollupTasks","_addRollupTaskEntry","format","runtime","entry","buildId","push","importId","path","join","name","types","exportPath","sourcePath","source","targetPath","output","require","import","browser","bundle","length","values","legacyExports","_exported","relativeTargetPath","replace","fs","writeFileSync","resolve","_spinner","msg","startTime","Date","now","console","log","chalk","yellow","complete","green","gray","error","red","build","options","tsconfig","_loadPkgWithReporting","_loadConfig","_resolveBuildContext","buildTasks","task","handler","_buildTaskHandlers","taskName","spinner","result","exec","toPromise","logger","err","Error","RE_CWD","RegExp","message","process","exit"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"buildAction-19b87a46.js","sources":["../../src/cli/buildAction.ts"],"sourcesContent":["import {build} from '../node/build'\nimport {_handleError} from './_handleError'\n\nexport async function buildAction(options: {tsconfig?: string}): Promise<void> {\n try {\n await build({\n cwd: process.cwd(),\n tsconfig: options.tsconfig,\n })\n } catch (err) {\n _handleError(err)\n }\n}\n"],"names":["buildAction","options","build","cwd","process","tsconfig","err","_handleError"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEO,eAAeA,WAAf,CAA2BC,OAA3B,EAAoC;EACzC,IAAI;IACF,MAAMC,WAAAA,CAAM;MACVC,GAAG,EAAEC,OAAO,CAACD,GAAR,EADK;MAEVE,QAAQ,EAAEJ,OAAO,CAACI;IAFR,CAANH,CAAN;EAID,CALD,CAKE,OAAOI,GAAP,EAAY;IACZC,YAAY,CAAAA,YAAZA,CAAaD,GAAbC;EACD;AACH;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"check-7d728336.js","sources":["../../src/node/_getFilesize.ts","../../src/node/_printPackageTree.ts","../../src/node/check.ts"],"sourcesContent":["import {statSync} from 'fs'\nimport prettyBytes from 'pretty-bytes'\n\nexport function _getFilesize(file: string): string {\n const stats = statSync(file)\n\n return prettyBytes(stats.size)\n}\n","import fs from 'fs'\nimport path from 'path'\nimport chalk from 'chalk'\nimport treeify from 'treeify'\nimport {PkgExport, _BuildContext} from './_core'\nimport {_getFilesize} from './_getFilesize'\n\nexport function _fileExists(file: string): boolean {\n try {\n fs.accessSync(file)\n\n return true\n } catch (_) {\n return false\n }\n}\n\nfunction _getFileInfo(cwd: string, filePath: string) {\n const p = path.resolve(cwd, filePath)\n const exists = _fileExists(p)\n const size = exists ? _getFilesize(p) : undefined\n\n return {exists, size}\n}\n\nexport function _printPackageTree(ctx: _BuildContext): void {\n const {cwd, exports, logger, pkg} = ctx\n\n if (!exports) return\n\n logger.log(`${chalk.blue(pkg.name)}@${chalk.green(pkg.version)}`)\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const tree: Record<string, any> = {}\n\n if (pkg.bin) {\n tree.bin = pkg.bin\n }\n\n function _fileInfo(file: string) {\n const info = _getFileInfo(cwd, file)\n\n if (!info.size) {\n return `${chalk.gray(file)} ${chalk.red('does not exist')}`\n }\n\n return `${file} ${chalk.gray(info.size)}`\n }\n\n tree.exports = Object.fromEntries(\n Object.entries(exports)\n .filter(([, entry]) => entry._exported)\n .map(([exportPath, entry]) => {\n const exp: Omit<PkgExport, '_exported'> = {\n source: entry.source,\n types: undefined,\n browser: undefined,\n node: undefined,\n import: undefined,\n require: undefined,\n default: entry.default,\n }\n\n if (entry.types) {\n exp.types = _fileInfo(entry.types)\n } else {\n delete exp.types\n }\n\n if (entry.browser) {\n exp.browser = {source: entry.browser.source}\n\n if (entry.browser.import) exp.browser.import = _fileInfo(entry.browser.import)\n if (entry.browser.require) exp.browser.require = _fileInfo(entry.browser.require)\n } else {\n delete exp.browser\n }\n\n if (entry.node) {\n exp.node = {source: entry.node.source}\n\n if (entry.node.import) exp.node.import = _fileInfo(entry.node.import)\n if (entry.node.require) exp.node.require = _fileInfo(entry.node.require)\n } else {\n delete exp.node\n }\n\n if (entry.import) {\n exp.import = _fileInfo(entry.import)\n } else {\n delete exp.import\n }\n\n if (entry.require) {\n exp.require = _fileInfo(entry.require)\n } else {\n delete exp.require\n }\n\n exp.default = _fileInfo(entry.default)\n\n return [chalk.green(path.join(pkg.name, exportPath)), exp]\n })\n )\n\n logger.log(treeify.asTree(tree, true, true))\n}\n","import path from 'path'\nimport esbuild, {BuildFailure} from 'esbuild'\nimport {_loadConfig, _loadPkgWithReporting} from './_core'\nimport {_fileExists, _printPackageTree} from './_printPackageTree'\nimport {_resolveBuildContext} from './_resolveBuildContext'\n\n/** @public */\nexport async function check(options: {\n cwd: string\n strict?: boolean\n tsconfig?: string\n}): Promise<void> {\n const {cwd, strict, tsconfig = 'tsconfig.json'} = options\n\n const pkg = await _loadPkgWithReporting({cwd})\n const config = await _loadConfig({cwd})\n const ctx = await _resolveBuildContext({config, cwd, pkg, tsconfig})\n const {logger} = ctx\n\n _printPackageTree(ctx)\n\n if (strict) {\n const missingFiles: string[] = []\n\n // Check if there are missing files\n for (const [, exp] of Object.entries(ctx.exports || {})) {\n if (exp.source && !_fileExists(path.resolve(cwd, exp.source))) {\n missingFiles.push(exp.source)\n }\n\n if (exp.require && !_fileExists(path.resolve(cwd, exp.require))) {\n missingFiles.push(exp.require)\n }\n\n if (exp.import && !_fileExists(path.resolve(cwd, exp.import))) {\n missingFiles.push(exp.import)\n }\n\n if (exp.types && !_fileExists(path.resolve(cwd, exp.types))) {\n missingFiles.push(exp.types)\n }\n }\n\n if (missingFiles.length) {\n logger.error('missing files')\n process.exit(1)\n }\n\n // Check if the files are resolved\n const _paths: {require: string[]; import: string[]} = {\n require: [],\n import: [],\n }\n\n for (const exp of Object.values(ctx.exports || {})) {\n if (!exp._exported) continue\n if (exp.require) _paths.require.push(exp.require)\n if (exp.import) _paths.import.push(exp.import)\n }\n\n const external = Object.keys(pkg.dependencies || {}).concat(\n Object.keys(pkg.devDependencies || {})\n )\n\n if (_paths.import.length) {\n const code = _paths.import.map((id) => `import('${id}')`).join('\\n')\n\n try {\n const esbuildResult = await esbuild.build({\n external,\n stdin: {\n contents: code,\n loader: 'js',\n resolveDir: cwd,\n },\n format: 'esm',\n bundle: true,\n logLevel: 'silent',\n // otherwise output maps to stdout as we're using stdin\n outfile: '/dev/null',\n platform: 'node',\n })\n\n if (esbuildResult.warnings.length > 0) {\n logger.warn(...esbuildResult.warnings)\n }\n } catch (err) {\n const {errors} = err as BuildFailure\n\n for (const _err of errors) {\n if (_err.location) {\n logger.error(_err.detail || _err.text)\n logger.error(`${_err.location.line} | ${_err.location.lineText}`)\n logger.error(\n 'in',\n `./${_err.location.file}:${_err.location.line}:${_err.location.column}`\n )\n } else {\n logger.error(_err.detail || _err.text)\n }\n\n logger.log()\n }\n\n process.exit(1)\n }\n }\n\n if (_paths.require.length) {\n const code = _paths.require.map((id) => `require('${id}')`).join('\\n')\n\n const esbuildResult = await esbuild.build({\n external,\n stdin: {\n contents: code,\n loader: 'js',\n resolveDir: cwd,\n },\n format: 'cjs',\n bundle: true,\n // otherwise output maps to stdout as we're using stdin\n outfile: '/dev/null',\n platform: 'node',\n })\n\n if (esbuildResult.errors.length > 0) {\n // throw new Error(esbuildResult.errors.join(', '))\n logger.error(esbuildResult.errors.join(', '))\n process.exit(1)\n }\n\n if (esbuildResult.warnings.length > 0) {\n logger.warn(...esbuildResult.warnings)\n }\n }\n }\n}\n"],"names":["_getFilesize","file","stats","statSync","prettyBytes","size","_fileExists","fs","accessSync","_","_getFileInfo","cwd","filePath","p","path","resolve","exists","_printPackageTree","ctx","exports","logger","pkg","log","chalk","blue","name","green","version","tree","bin","_fileInfo","info","gray","red","Object","fromEntries","entries","filter","entry","_exported","map","exportPath","exp","source","types","browser","node","import","require","default","join","treeify","asTree","check","options","strict","tsconfig","_loadPkgWithReporting","config","_loadConfig","_resolveBuildContext","missingFiles","push","length","error","process","exit","_paths","values","external","keys","dependencies","concat","devDependencies","code","id","esbuildResult","esbuild","build","stdin","contents","loader","resolveDir","format","bundle","logLevel","outfile","platform","warnings","warn","err","errors","_err","location","detail","text","line","lineText","column"],"mappings":"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"}