@sanity/pkg-utils 1.18.0 → 1.19.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (106) hide show
  1. package/dist/_chunks/{build-f39a3550.js → build-bcb33ba5.js} +19 -19
  2. package/dist/_chunks/build-bcb33ba5.js.map +1 -0
  3. package/dist/_chunks/{buildAction-8f449d1d.js → buildAction-f240dab8.js} +6 -6
  4. package/dist/_chunks/buildAction-f240dab8.js.map +1 -0
  5. package/dist/_chunks/{check-87cbb6cc.js → check-1ea361f5.js} +26 -26
  6. package/dist/_chunks/check-1ea361f5.js.map +1 -0
  7. package/dist/_chunks/{checkAction-e7e455d4.js → checkAction-16be1201.js} +5 -5
  8. package/dist/_chunks/checkAction-16be1201.js.map +1 -0
  9. package/dist/_chunks/{_handleError-869dec25.js → handleError-65cf3242.js} +3 -3
  10. package/dist/_chunks/handleError-65cf3242.js.map +1 -0
  11. package/dist/_chunks/{index-7a851efa.js → index-79fdb33f.js} +63 -63
  12. package/dist/_chunks/index-79fdb33f.js.map +1 -0
  13. package/dist/_chunks/{_resolveBuildContext-7ca7e64e.js → resolveBuildContext-f2feec19.js} +60 -62
  14. package/dist/_chunks/resolveBuildContext-f2feec19.js.map +1 -0
  15. package/dist/_chunks/{watch-f6cf9246.js → watch-02c85f8a.js} +25 -25
  16. package/dist/_chunks/watch-02c85f8a.js.map +1 -0
  17. package/dist/_chunks/{watchAction-4cf253a0.js → watchAction-9cb9681b.js} +6 -6
  18. package/dist/_chunks/watchAction-9cb9681b.js.map +1 -0
  19. package/dist/cli.js +4 -4
  20. package/dist/index.d.ts +44 -46
  21. package/dist/index.esm.js +165 -167
  22. package/dist/index.esm.js.map +1 -1
  23. package/dist/index.js +22 -22
  24. package/dist/index.js.map +1 -1
  25. package/package.json +48 -1
  26. package/src/cli/buildAction.ts +2 -2
  27. package/src/cli/checkAction.ts +2 -2
  28. package/src/cli/{_handleError.ts → handleError.ts} +1 -1
  29. package/src/cli/watchAction.ts +2 -2
  30. package/src/node/build.ts +11 -11
  31. package/src/node/check.ts +11 -11
  32. package/src/node/{_core → core}/config/defineConfig.ts +0 -0
  33. package/src/node/{_core/config/_findConfigFile.ts → core/config/findConfigFile.ts} +3 -3
  34. package/src/node/core/config/index.ts +4 -0
  35. package/src/node/{_core/config/_loadConfig.ts → core/config/loadConfig.ts} +3 -3
  36. package/src/node/{_core/config/_resolveConfigProperty.ts → core/config/resolveConfigProperty.ts} +1 -1
  37. package/src/node/{_core → core}/config/types.ts +0 -0
  38. package/src/node/{_core/_constants.ts → core/constants.ts} +1 -1
  39. package/src/node/{_core → core}/contexts/buildContext.ts +5 -5
  40. package/src/node/{_core → core}/contexts/index.ts +0 -0
  41. package/src/node/core/defaults.ts +7 -0
  42. package/src/node/core/findCommonPath.test.ts +9 -0
  43. package/src/node/{_core/_findCommonPath.ts → core/findCommonPath.ts} +3 -3
  44. package/src/node/{_core → core}/index.ts +3 -3
  45. package/src/node/{_core/_isRecord.ts → core/isRecord.ts} +1 -1
  46. package/src/node/core/pkg/index.ts +4 -0
  47. package/src/node/{_core/pkg/_loadPkg.ts → core/pkg/loadPkg.ts} +4 -4
  48. package/src/node/{_core/pkg/_loadPkgWithReporting.ts → core/pkg/loadPkgWithReporting.ts} +6 -6
  49. package/src/node/{_core/pkg/_parseExports.ts → core/pkg/parseExports.ts} +7 -7
  50. package/src/node/{_core/pkg/_types.ts → core/pkg/types.ts} +1 -1
  51. package/src/node/{_core/pkg/_validateExports.ts → core/pkg/validateExports.ts} +5 -5
  52. package/src/node/{_core/pkg/_validatePkg.ts → core/pkg/validatePkg.ts} +2 -2
  53. package/src/node/core/ts/index.ts +1 -0
  54. package/src/node/{_core/ts/_loadTSConfig.ts → core/ts/loadTSConfig.ts} +1 -1
  55. package/src/node/{_getFilesize.ts → getFilesize.ts} +1 -1
  56. package/src/node/globFiles.ts +5 -0
  57. package/src/node/index.ts +3 -3
  58. package/src/node/{_printExtractMessages.ts → printExtractMessages.ts} +2 -2
  59. package/src/node/{_printPackageTree.ts → printPackageTree.ts} +17 -17
  60. package/src/node/{_resolveBrowserTarget.ts → resolveBrowserTarget.ts} +2 -2
  61. package/src/node/{_resolveBrowserslistVersions.ts → resolveBrowserslistVersions.ts} +11 -11
  62. package/src/node/{_resolveBuildContext.ts → resolveBuildContext.ts} +28 -28
  63. package/src/node/{_resolveBuildTasks.ts → resolveBuildTasks.ts} +13 -13
  64. package/src/node/{_resolveNodeTarget.ts → resolveNodeTarget.ts} +2 -2
  65. package/src/node/{_resolveWatchTasks.ts → resolveWatchTasks.ts} +11 -11
  66. package/src/node/{_spinner.ts → spinner.ts} +1 -1
  67. package/src/node/{_tasks/dts/_DtsError.ts → tasks/dts/DtsError.ts} +1 -1
  68. package/src/node/{_tasks/dts/_buildTypes.ts → tasks/dts/buildTypes.ts} +1 -1
  69. package/src/node/{_tasks/dts/_createApiExtractorConfig.ts → tasks/dts/createApiExtractorConfig.ts} +1 -1
  70. package/src/node/{_tasks/dts/_createTSDocConfig.ts → tasks/dts/createTSDocConfig.ts} +1 -1
  71. package/src/node/{_tasks/dts/_doExtract.ts → tasks/dts/doExtract.ts} +12 -12
  72. package/src/node/{_tasks/dts/_dtsTask.ts → tasks/dts/dtsTask.ts} +10 -10
  73. package/src/node/{_tasks/dts/_dtsWatchTask.ts → tasks/dts/dtsWatchTask.ts} +10 -10
  74. package/src/node/{_tasks/dts/_extractModuleBlocks.ts → tasks/dts/extractModuleBlocks.ts} +3 -3
  75. package/src/node/{_tasks/dts/_extractTypes.ts → tasks/dts/extractTypes.ts} +11 -11
  76. package/src/node/{_tasks/dts/_getExtractMessagesConfig.ts → tasks/dts/getExtractMessagesConfig.ts} +12 -12
  77. package/src/node/tasks/dts/index.ts +4 -0
  78. package/src/node/{_tasks/dts/_types.ts → tasks/dts/types.ts} +3 -3
  79. package/src/node/tasks/index.ts +19 -0
  80. package/src/node/tasks/rollup/index.ts +2 -0
  81. package/src/node/{_tasks/rollup/_resolveRollupConfig.ts → tasks/rollup/resolveRollupConfig.ts} +16 -11
  82. package/src/node/{_tasks/rollup/_rollupTask.ts → tasks/rollup/rollupTask.ts} +7 -7
  83. package/src/node/{_tasks/rollup/_rollupWatchTask.ts → tasks/rollup/rollupWatchTask.ts} +4 -4
  84. package/src/node/tasks/types.ts +57 -0
  85. package/src/node/watch.ts +13 -13
  86. package/src/node/{_watchConfigFiles.ts → watchConfigFiles.ts} +5 -5
  87. package/src/node/{_watchFiles.ts → watchFiles.ts} +5 -5
  88. package/dist/_chunks/_handleError-869dec25.js.map +0 -1
  89. package/dist/_chunks/_resolveBuildContext-7ca7e64e.js.map +0 -1
  90. package/dist/_chunks/build-f39a3550.js.map +0 -1
  91. package/dist/_chunks/buildAction-8f449d1d.js.map +0 -1
  92. package/dist/_chunks/check-87cbb6cc.js.map +0 -1
  93. package/dist/_chunks/checkAction-e7e455d4.js.map +0 -1
  94. package/dist/_chunks/index-7a851efa.js.map +0 -1
  95. package/dist/_chunks/watch-f6cf9246.js.map +0 -1
  96. package/dist/_chunks/watchAction-4cf253a0.js.map +0 -1
  97. package/src/node/_core/_defaults.ts +0 -9
  98. package/src/node/_core/_findCommonPath.test.ts +0 -9
  99. package/src/node/_core/config/index.ts +0 -4
  100. package/src/node/_core/pkg/index.ts +0 -4
  101. package/src/node/_core/ts/index.ts +0 -1
  102. package/src/node/_globFiles.ts +0 -5
  103. package/src/node/_tasks/_types.ts +0 -57
  104. package/src/node/_tasks/dts/index.ts +0 -4
  105. package/src/node/_tasks/index.ts +0 -19
  106. package/src/node/_tasks/rollup/index.ts +0 -2
@@ -8,7 +8,7 @@ import {Program} from 'typescript'
8
8
  * A workaround to find all module blocks in extract TS files.
9
9
  * @internal
10
10
  * */
11
- export async function _extractModuleBlocksFromTypes({
11
+ export async function extractModuleBlocksFromTypes({
12
12
  tsOutDir,
13
13
  extractResult,
14
14
  }: {
@@ -26,7 +26,7 @@ export async function _extractModuleBlocksFromTypes({
26
26
 
27
27
  for (const sourceFile of sourceFiles) {
28
28
  if (sourceFile.text.includes('declare module')) {
29
- moduleBlocks.push(..._extractModuleBlocks(sourceFile.text))
29
+ moduleBlocks.push(...extractModuleBlocks(sourceFile.text))
30
30
  }
31
31
  }
32
32
 
@@ -34,7 +34,7 @@ export async function _extractModuleBlocksFromTypes({
34
34
  }
35
35
 
36
36
  /** @internal */
37
- export function _extractModuleBlocks(fileContent: string): string[] {
37
+ export function extractModuleBlocks(fileContent: string): string[] {
38
38
  const ast = parse(fileContent, {
39
39
  parser: typeScriptParser,
40
40
  }) as File
@@ -8,19 +8,19 @@ import {
8
8
  } from '@microsoft/api-extractor'
9
9
  import mkdirp from 'mkdirp'
10
10
  import prettier from 'prettier'
11
- import {PkgConfigOptions, _BuildFile} from '../../_core'
12
- import {_createApiExtractorConfig} from './_createApiExtractorConfig'
13
- import {_createTSDocConfig} from './_createTSDocConfig'
14
- import {_extractModuleBlocksFromTypes} from './_extractModuleBlocks'
15
- import {_getExtractMessagesConfig} from './_getExtractMessagesConfig'
11
+ import {PkgConfigOptions, BuildFile} from '../../core'
12
+ import {createApiExtractorConfig} from './createApiExtractorConfig'
13
+ import {createTSDocConfig} from './createTSDocConfig'
14
+ import {extractModuleBlocksFromTypes} from './extractModuleBlocks'
15
+ import {getExtractMessagesConfig} from './getExtractMessagesConfig'
16
16
 
17
- export async function _extractTypes(options: {
17
+ export async function extractTypes(options: {
18
18
  customTags: NonNullable<PkgConfigOptions['extract']>['customTags']
19
19
  cwd: string
20
20
  distPath: string
21
21
  exportPath: string
22
22
  filePath: string
23
- files: _BuildFile[]
23
+ files: BuildFile[]
24
24
  projectPath: string
25
25
  rules?: NonNullable<PkgConfigOptions['extract']>['rules']
26
26
  sourceTypesPath: string
@@ -40,16 +40,16 @@ export async function _extractTypes(options: {
40
40
  tsconfigPath,
41
41
  } = options
42
42
 
43
- const tsdocConfigFile = await _createTSDocConfig({
43
+ const tsdocConfigFile = await createTSDocConfig({
44
44
  customTags: customTags || [],
45
45
  })
46
46
 
47
47
  const extractorConfig: ExtractorConfig = ExtractorConfig.prepare({
48
- configObject: _createApiExtractorConfig({
48
+ configObject: createApiExtractorConfig({
49
49
  distPath,
50
50
  exportPath,
51
51
  filePath,
52
- messages: _getExtractMessagesConfig({rules}),
52
+ messages: getExtractMessagesConfig({rules}),
53
53
  projectFolder: projectPath,
54
54
  mainEntryPointFilePath: sourceTypesPath,
55
55
  tsconfigPath,
@@ -80,7 +80,7 @@ export async function _extractTypes(options: {
80
80
 
81
81
  await mkdirp(path.dirname(typesPath))
82
82
 
83
- const moduleBlocks = await _extractModuleBlocksFromTypes({
83
+ const moduleBlocks = await extractModuleBlocksFromTypes({
84
84
  extractResult: extractorResult,
85
85
  tsOutDir: tmpPath,
86
86
  })
@@ -1,7 +1,7 @@
1
1
  import {ExtractorLogLevel, IExtractorMessagesConfig} from '@microsoft/api-extractor'
2
- import {PkgRuleLevel, PkgConfigOptions} from '../../_core'
2
+ import {PkgRuleLevel, PkgConfigOptions} from '../../core'
3
3
 
4
- const _LOG_LEVELS: Record<PkgRuleLevel, ExtractorLogLevel> = {
4
+ const LOG_LEVELS: Record<PkgRuleLevel, ExtractorLogLevel> = {
5
5
  error: 'error' as ExtractorLogLevel.Error,
6
6
  info: 'info' as ExtractorLogLevel.Info,
7
7
  off: 'none' as ExtractorLogLevel.None,
@@ -9,18 +9,18 @@ const _LOG_LEVELS: Record<PkgRuleLevel, ExtractorLogLevel> = {
9
9
  }
10
10
 
11
11
  /** @internal */
12
- export function _getExtractMessagesConfig(options: {
12
+ export function getExtractMessagesConfig(options: {
13
13
  rules: NonNullable<PkgConfigOptions['extract']>['rules']
14
14
  }): IExtractorMessagesConfig {
15
15
  const {rules} = options
16
16
 
17
- function _ruleToLogLevel(
17
+ function ruleToLogLevel(
18
18
  key: keyof NonNullable<NonNullable<PkgConfigOptions['extract']>['rules']>,
19
19
  defaultLevel?: ExtractorLogLevel
20
20
  ) {
21
21
  const r = rules?.[key]
22
22
 
23
- return (r ? _LOG_LEVELS[r] : defaultLevel || 'warning') as ExtractorLogLevel
23
+ return (r ? LOG_LEVELS[r] : defaultLevel || 'warning') as ExtractorLogLevel
24
24
  }
25
25
 
26
26
  return {
@@ -37,22 +37,22 @@ export function _getExtractMessagesConfig(options: {
37
37
  },
38
38
 
39
39
  'ae-forgotten-export': {
40
- logLevel: _ruleToLogLevel('ae-forgotten-export', 'error' as ExtractorLogLevel),
40
+ logLevel: ruleToLogLevel('ae-forgotten-export', 'error' as ExtractorLogLevel),
41
41
  addToApiReportFile: false,
42
42
  },
43
43
 
44
44
  'ae-incompatible-release-tags': {
45
- logLevel: _ruleToLogLevel('ae-incompatible-release-tags', 'error' as ExtractorLogLevel),
45
+ logLevel: ruleToLogLevel('ae-incompatible-release-tags', 'error' as ExtractorLogLevel),
46
46
  addToApiReportFile: false,
47
47
  },
48
48
 
49
49
  'ae-internal-missing-underscore': {
50
- logLevel: _ruleToLogLevel('ae-internal-missing-underscore'),
50
+ logLevel: ruleToLogLevel('ae-internal-missing-underscore'),
51
51
  addToApiReportFile: false,
52
52
  },
53
53
 
54
54
  'ae-missing-release-tag': {
55
- logLevel: _ruleToLogLevel('ae-missing-release-tag', 'error' as ExtractorLogLevel),
55
+ logLevel: ruleToLogLevel('ae-missing-release-tag', 'error' as ExtractorLogLevel),
56
56
  addToApiReportFile: false,
57
57
  },
58
58
 
@@ -69,17 +69,17 @@ export function _getExtractMessagesConfig(options: {
69
69
  },
70
70
 
71
71
  'tsdoc-link-tag-unescaped-text': {
72
- logLevel: _ruleToLogLevel('tsdoc-link-tag-unescaped-text', 'warning' as ExtractorLogLevel),
72
+ logLevel: ruleToLogLevel('tsdoc-link-tag-unescaped-text', 'warning' as ExtractorLogLevel),
73
73
  addToApiReportFile: false,
74
74
  },
75
75
 
76
76
  'tsdoc-undefined-tag': {
77
- logLevel: _ruleToLogLevel('tsdoc-undefined-tag', 'error' as ExtractorLogLevel),
77
+ logLevel: ruleToLogLevel('tsdoc-undefined-tag', 'error' as ExtractorLogLevel),
78
78
  addToApiReportFile: false,
79
79
  },
80
80
 
81
81
  'tsdoc-unsupported-tag': {
82
- logLevel: _ruleToLogLevel('tsdoc-unsupported-tag', 'none' as ExtractorLogLevel),
82
+ logLevel: ruleToLogLevel('tsdoc-unsupported-tag', 'none' as ExtractorLogLevel),
83
83
  addToApiReportFile: false,
84
84
  },
85
85
  },
@@ -0,0 +1,4 @@
1
+ export * from './dtsTask'
2
+ export * from './dtsWatchTask'
3
+ export * from './getExtractMessagesConfig'
4
+ export * from './types'
@@ -1,7 +1,7 @@
1
1
  import {ExtractorMessage} from '@microsoft/api-extractor'
2
2
 
3
3
  /** @internal */
4
- export interface _DtsWatchTask {
4
+ export interface DtsWatchTask {
5
5
  type: 'watch:dts'
6
6
  entries: {
7
7
  exportPath: string
@@ -12,7 +12,7 @@ export interface _DtsWatchTask {
12
12
  }
13
13
 
14
14
  /** @internal */
15
- export interface _DtsTask {
15
+ export interface DtsTask {
16
16
  type: 'build:dts'
17
17
  entries: {
18
18
  exportPath: string
@@ -23,7 +23,7 @@ export interface _DtsTask {
23
23
  }
24
24
 
25
25
  /** @internal */
26
- export interface _DtsResult {
26
+ export interface DtsResult {
27
27
  type: 'dts'
28
28
  messages: ExtractorMessage[]
29
29
  results: {sourcePath: string; filePath: string}[]
@@ -0,0 +1,19 @@
1
+ import {dtsTask, dtsWatchTask} from './dts'
2
+ import {rollupTask, rollupWatchTask} from './rollup'
3
+ import {BuildTaskHandlers, WatchTaskHandlers} from './types'
4
+
5
+ export * from './types'
6
+ export * from './dts'
7
+ export * from './rollup'
8
+
9
+ /** @internal */
10
+ export const buildTaskHandlers: BuildTaskHandlers = {
11
+ 'build:dts': dtsTask,
12
+ 'build:js': rollupTask,
13
+ }
14
+
15
+ /** @internal */
16
+ export const watchTaskHandlers: WatchTaskHandlers = {
17
+ 'watch:dts': dtsWatchTask,
18
+ 'watch:js': rollupWatchTask,
19
+ }
@@ -0,0 +1,2 @@
1
+ export * from './rollupTask'
2
+ export * from './rollupWatchTask'
@@ -8,22 +8,27 @@ import replace from '@rollup/plugin-replace'
8
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, _resolveConfigProperty} from '../../_core'
12
- import {_RollupTask, _RollupWatchTask} from '../_types'
13
-
14
- export interface _RollupConfig {
11
+ import {
12
+ BuildContext,
13
+ DEFAULT_BROWSERSLIST_QUERY,
14
+ MODULE_EXT,
15
+ resolveConfigProperty,
16
+ } from '../../core'
17
+ import {RollupTask, RollupWatchTask} from '../types'
18
+
19
+ export interface RollupConfig {
15
20
  inputOptions: InputOptions
16
21
  outputOptions: OutputOptions
17
22
  }
18
23
 
19
24
  /** @internal */
20
- export function _resolveRollupConfig(
21
- ctx: _BuildContext,
22
- buildTask: _RollupTask | _RollupWatchTask
23
- ): _RollupConfig {
25
+ export function resolveRollupConfig(
26
+ ctx: BuildContext,
27
+ buildTask: RollupTask | RollupWatchTask
28
+ ): RollupConfig {
24
29
  const {format, runtime, target} = buildTask
25
30
  const {config, cwd, exports: _exports, external, distPath, logger, pkg, ts} = ctx
26
- const outputExt = _MODULE_EXT[pkg.type][format]
31
+ const outputExt = MODULE_EXT[pkg.type][format]
27
32
  const minify = config?.minify ?? true
28
33
  const outDir = path.relative(cwd, distPath)
29
34
 
@@ -106,7 +111,7 @@ export function _resolveRollupConfig(
106
111
  getBabelOutputPlugin({
107
112
  babelrc: false,
108
113
  plugins: ['@babel/plugin-proposal-object-rest-spread'],
109
- presets: [['@babel/preset-env', {targets: pkg.browserslist || _DEFAULTS.browserslist}]],
114
+ presets: [['@babel/preset-env', {targets: pkg.browserslist || DEFAULT_BROWSERSLIST_QUERY}]],
110
115
  }),
111
116
  minify &&
112
117
  terser({
@@ -131,7 +136,7 @@ export function _resolveRollupConfig(
131
136
 
132
137
  const plugins = Array.isArray(userPlugins)
133
138
  ? defaultPlugins.concat(userPlugins)
134
- : _resolveConfigProperty(config?.rollup?.plugins, defaultPlugins)
139
+ : resolveConfigProperty(config?.rollup?.plugins, defaultPlugins)
135
140
 
136
141
  return {
137
142
  inputOptions: {
@@ -4,12 +4,12 @@ import path from 'path'
4
4
  import chalk from 'chalk'
5
5
  import {rollup} from 'rollup'
6
6
  import {Observable} from 'rxjs'
7
- import {_BuildContext} from '../../_core'
8
- import {_RollupTask, _TaskHandler} from '../_types'
9
- import {_resolveRollupConfig} from './_resolveRollupConfig'
7
+ import {BuildContext} from '../../core'
8
+ import {RollupTask, TaskHandler} from '../types'
9
+ import {resolveRollupConfig} from './resolveRollupConfig'
10
10
 
11
11
  /** @internal */
12
- export const _rollupTask: _TaskHandler<_RollupTask> = {
12
+ export const rollupTask: TaskHandler<RollupTask> = {
13
13
  name: (ctx, task) =>
14
14
  `build javascript files (target ${task.target.join(' + ')}, format ${
15
15
  task.format
@@ -18,7 +18,7 @@ export const _rollupTask: _TaskHandler<_RollupTask> = {
18
18
  .join('\n ')}`,
19
19
  exec: (ctx, task) => {
20
20
  return new Observable((observer) => {
21
- _execPromise(ctx, task)
21
+ execPromise(ctx, task)
22
22
  .then((result) => {
23
23
  observer.next(result)
24
24
  observer.complete()
@@ -36,11 +36,11 @@ export const _rollupTask: _TaskHandler<_RollupTask> = {
36
36
  },
37
37
  }
38
38
 
39
- async function _execPromise(ctx: _BuildContext, task: _RollupTask) {
39
+ async function execPromise(ctx: BuildContext, task: RollupTask) {
40
40
  const {files, distPath} = ctx
41
41
  const outDir = path.relative(ctx.cwd, distPath)
42
42
 
43
- const {inputOptions, outputOptions} = _resolveRollupConfig(ctx, task)
43
+ const {inputOptions, outputOptions} = resolveRollupConfig(ctx, task)
44
44
 
45
45
  // Create bundle
46
46
  const bundle = await rollup(inputOptions)
@@ -2,11 +2,11 @@ import path from 'path'
2
2
  import chalk from 'chalk'
3
3
  import {RollupWatcherEvent, RollupWatchOptions, watch as rollupWatch} from 'rollup'
4
4
  import {Observable} from 'rxjs'
5
- import {_RollupWatchTask, _TaskHandler} from '../_types'
6
- import {_resolveRollupConfig} from './_resolveRollupConfig'
5
+ import {RollupWatchTask, TaskHandler} from '../types'
6
+ import {resolveRollupConfig} from './resolveRollupConfig'
7
7
 
8
8
  /** @internal */
9
- export const _rollupWatchTask: _TaskHandler<_RollupWatchTask, RollupWatcherEvent> = {
9
+ export const rollupWatchTask: TaskHandler<RollupWatchTask, RollupWatcherEvent> = {
10
10
  name: (ctx, task) =>
11
11
  `build javascript files (target ${task.target.join(' + ')}, format ${
12
12
  task.format
@@ -14,7 +14,7 @@ export const _rollupWatchTask: _TaskHandler<_RollupWatchTask, RollupWatcherEvent
14
14
  .map((e) => `${chalk.blue(path.join(ctx.pkg.name, e.path))}: ${e.source} -> ${e.output}`)
15
15
  .join('\n ')}`,
16
16
  exec: (ctx, task) => {
17
- const {inputOptions, outputOptions} = _resolveRollupConfig(ctx, task)
17
+ const {inputOptions, outputOptions} = resolveRollupConfig(ctx, task)
18
18
 
19
19
  return new Observable((observer) => {
20
20
  const watchOptions: RollupWatchOptions = {
@@ -0,0 +1,57 @@
1
+ import {RollupWatcherEvent} from 'rollup'
2
+ import {Observable} from 'rxjs'
3
+ import {PkgRuntime, BuildContext} from '../core'
4
+ import {DtsResult, DtsTask, DtsWatchTask} from './dts'
5
+
6
+ /** @internal */
7
+ export interface RollupTaskEntry {
8
+ path: string
9
+ source: string
10
+ output: string
11
+ }
12
+
13
+ /** @internal */
14
+ export interface RollupTask {
15
+ type: 'build:js'
16
+ buildId: string
17
+ entries: RollupTaskEntry[]
18
+ runtime: PkgRuntime
19
+ format: 'commonjs' | 'esm'
20
+ target: string[]
21
+ }
22
+
23
+ /** @internal */
24
+ export interface RollupWatchTask {
25
+ type: 'watch:js'
26
+ buildId: string
27
+ entries: RollupTaskEntry[]
28
+ runtime: PkgRuntime
29
+ format: 'commonjs' | 'esm'
30
+ target: string[]
31
+ }
32
+
33
+ /** @internal */
34
+ export type BuildTask = DtsTask | RollupTask
35
+
36
+ /** @internal */
37
+ export type WatchTask = DtsWatchTask | RollupWatchTask
38
+
39
+ /** @internal */
40
+ export type TaskHandler<Task, Result = void> = {
41
+ name: (ctx: BuildContext, task: Task) => string
42
+ exec: (ctx: BuildContext, task: Task) => Observable<Result>
43
+ complete: (ctx: BuildContext, task: Task, result: Result) => void
44
+ error: (ctx: BuildContext, task: Task, error: unknown) => void
45
+ }
46
+
47
+ /** @internal */
48
+ export interface BuildTaskHandlers {
49
+ 'build:dts': TaskHandler<DtsTask, DtsResult>
50
+ 'build:js': TaskHandler<RollupTask>
51
+ }
52
+
53
+ /** @internal */
54
+ export interface WatchTaskHandlers {
55
+ 'watch:dts': TaskHandler<DtsWatchTask, DtsResult>
56
+ 'watch:js': TaskHandler<RollupWatchTask, RollupWatcherEvent>
57
+ }
package/src/node/watch.ts CHANGED
@@ -1,10 +1,10 @@
1
1
  import path from 'path'
2
2
  import {switchMap} from 'rxjs'
3
- import {_loadConfig, _loadPkgWithReporting} from './_core'
4
- import {_resolveBuildContext} from './_resolveBuildContext'
5
- import {_resolveWatchTasks} from './_resolveWatchTasks'
6
- import {_WatchTask, _TaskHandler, _watchTaskHandlers} from './_tasks'
7
- import {_watchConfigFiles} from './_watchConfigFiles'
3
+ import {loadConfig, loadPkgWithReporting} from './core'
4
+ import {resolveBuildContext} from './resolveBuildContext'
5
+ import {resolveWatchTasks} from './resolveWatchTasks'
6
+ import {WatchTask, TaskHandler, watchTaskHandlers} from './tasks'
7
+ import {watchConfigFiles} from './watchConfigFiles'
8
8
 
9
9
  /** @public */
10
10
  export async function watch(options: {
@@ -14,31 +14,31 @@ export async function watch(options: {
14
14
  }): Promise<void> {
15
15
  const {cwd, strict = false, tsconfig: tsconfigOption} = options
16
16
 
17
- const configFiles$ = await _watchConfigFiles({cwd})
17
+ const configFiles$ = await watchConfigFiles({cwd})
18
18
 
19
19
  const ctx$ = configFiles$.pipe(
20
20
  switchMap(async (configFiles) => {
21
- const _files = configFiles.map((f) => path.relative(cwd, f))
21
+ const files = configFiles.map((f) => path.relative(cwd, f))
22
22
 
23
- const packageJsonPath = _files.find((f) => f === 'package.json')
23
+ const packageJsonPath = files.find((f) => f === 'package.json')
24
24
 
25
25
  if (!packageJsonPath) {
26
26
  throw new Error('missing package.json')
27
27
  }
28
28
 
29
- const pkg = await _loadPkgWithReporting({cwd})
30
- const config = await _loadConfig({cwd})
29
+ const pkg = await loadPkgWithReporting({cwd})
30
+ const config = await loadConfig({cwd})
31
31
  const tsconfig = tsconfigOption || config?.tsconfig || 'tsconfig.json'
32
32
 
33
- return _resolveBuildContext({config, cwd, pkg, strict, tsconfig})
33
+ return resolveBuildContext({config, cwd, pkg, strict, tsconfig})
34
34
  })
35
35
  )
36
36
 
37
37
  ctx$.subscribe(async (ctx) => {
38
- const watchTasks = _resolveWatchTasks(ctx)
38
+ const watchTasks = resolveWatchTasks(ctx)
39
39
 
40
40
  for (const task of watchTasks) {
41
- const handler = _watchTaskHandlers[task.type] as _TaskHandler<_WatchTask, unknown>
41
+ const handler = watchTaskHandlers[task.type] as TaskHandler<WatchTask, unknown>
42
42
  const result$ = handler.exec(ctx, task)
43
43
 
44
44
  result$.subscribe({
@@ -2,20 +2,20 @@ import path from 'path'
2
2
  import chalk from 'chalk'
3
3
  import {Observable} from 'rxjs'
4
4
  import {distinctUntilChanged, scan, startWith} from 'rxjs/operators'
5
- import {_globFiles} from './_globFiles'
6
- import {_watchFiles} from './_watchFiles'
5
+ import {globFiles} from './globFiles'
6
+ import {watchFiles} from './watchFiles'
7
7
 
8
- export async function _watchConfigFiles(options: {cwd: string}): Promise<Observable<string[]>> {
8
+ export async function watchConfigFiles(options: {cwd: string}): Promise<Observable<string[]>> {
9
9
  const {cwd} = options
10
10
 
11
- const initialFiles = await _globFiles([
11
+ const initialFiles = await globFiles([
12
12
  path.resolve(cwd, 'package.json'),
13
13
  path.resolve(cwd, 'package.config.cjs'),
14
14
  path.resolve(cwd, 'package.config.js'),
15
15
  path.resolve(cwd, 'package.config.ts'),
16
16
  ])
17
17
 
18
- const fileEvent$ = _watchFiles([
18
+ const fileEvent$ = watchFiles([
19
19
  path.resolve(cwd, 'package.json'),
20
20
  path.resolve(cwd, 'package.config.cjs'),
21
21
  path.resolve(cwd, 'package.config.js'),
@@ -1,28 +1,28 @@
1
1
  import chokidar from 'chokidar'
2
2
  import {Observable} from 'rxjs'
3
3
 
4
- export interface _FileEvent {
4
+ export interface FileEvent {
5
5
  type: 'add' | 'addDir' | 'change' | 'unlink' | 'unlinkDir'
6
6
  file: string
7
7
  }
8
8
 
9
- export function _watchFiles(patterns: string[]): Observable<_FileEvent> {
9
+ export function watchFiles(patterns: string[]): Observable<FileEvent> {
10
10
  return new Observable((observer) => {
11
11
  const watcher = chokidar.watch(patterns, {
12
12
  ignoreInitial: true,
13
13
  })
14
14
 
15
- function _handleFileEvent(
15
+ function handleFileEvent(
16
16
  type: 'add' | 'addDir' | 'change' | 'unlink' | 'unlinkDir',
17
17
  file: string
18
18
  ) {
19
19
  observer.next({type, file})
20
20
  }
21
21
 
22
- watcher.on('all', _handleFileEvent)
22
+ watcher.on('all', handleFileEvent)
23
23
 
24
24
  return () => {
25
- watcher.off('all', _handleFileEvent)
25
+ watcher.off('all', handleFileEvent)
26
26
  watcher.close()
27
27
  }
28
28
  })
@@ -1 +0,0 @@
1
- {"version":3,"file":"_handleError-869dec25.js","sources":["../../src/cli/_handleError.ts"],"sourcesContent":["/* eslint-disable no-console */\n\nimport chalk from 'chalk'\n\nexport function _handleError(err: unknown): void {\n if (err instanceof Error) {\n console.error(chalk.red('error'), err.message)\n }\n\n process.exit(1)\n}\n"],"names":["_handleError","err","Error","console","error","chalk","red","message","process","exit"],"mappings":";;;;;;;;;AACO,SAASA,YAAY,CAACC,GAAG,EAAE;EAChC,IAAIA,GAAG,YAAYC,KAAK,EAAE;IACxBC,OAAO,CAACC,KAAK,CAACC,yBAAK,CAACC,GAAG,CAAC,OAAO,CAAC,EAAEL,GAAG,CAACM,OAAO,CAAC;EAC/C;EACDC,OAAO,CAACC,IAAI,CAAC,CAAC,CAAC;AACjB;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"_resolveBuildContext-7ca7e64e.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.union([\n z.custom<`./${string}.json`>((val) => /^\\.\\/.*\\.json$/.test(val as string)),\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 ),\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): string[] {\n const {pkg} = options\n const ext = _MODULE_EXT[pkg.type]\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 {_isRecord} from '../_isRecord'\nimport {PkgExport} from '../config'\nimport {_PackageJSON} from './_types'\nimport {_validateExports} from './_validateExports'\n\n/** @internal */\nexport function _parseExports(options: {\n pkg: _PackageJSON\n strict: boolean\n}): (PkgExport & {_path: string})[] {\n const {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 import: pkg.module,\n require: pkg.main,\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, {pkg}))\n\n if (errors.length) {\n throw new Error('\\n- ' + errors.join('\\n- '))\n }\n\n return _exports\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 emitDeclarationOnly?: boolean\n pkg: _PackageJSON\n strict: boolean\n tsconfig: string\n}): Promise<_BuildContext> {\n const {config, cwd, emitDeclarationOnly = false, pkg, strict, 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, 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?.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 emitDeclarationOnly,\n exports,\n external,\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"],"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","union","custom","val","test","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","errors","exp","endsWith","push","_path","_parseExports","strict","rootExport","_exported","extraExports","exportPath","exportEntry","Object","entries","assign","extraExport","length","_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","_resolveNodeTarget","_createLogger","info","args","blue","warn","yellow","success","green","_resolveBuildContext","emitDeclarationOnly","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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"}