@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.
- package/dist/_chunks/{build-f39a3550.js → build-bcb33ba5.js} +19 -19
- package/dist/_chunks/build-bcb33ba5.js.map +1 -0
- package/dist/_chunks/{buildAction-8f449d1d.js → buildAction-f240dab8.js} +6 -6
- package/dist/_chunks/buildAction-f240dab8.js.map +1 -0
- package/dist/_chunks/{check-87cbb6cc.js → check-1ea361f5.js} +26 -26
- package/dist/_chunks/check-1ea361f5.js.map +1 -0
- package/dist/_chunks/{checkAction-e7e455d4.js → checkAction-16be1201.js} +5 -5
- package/dist/_chunks/checkAction-16be1201.js.map +1 -0
- package/dist/_chunks/{_handleError-869dec25.js → handleError-65cf3242.js} +3 -3
- package/dist/_chunks/handleError-65cf3242.js.map +1 -0
- package/dist/_chunks/{index-7a851efa.js → index-79fdb33f.js} +63 -63
- package/dist/_chunks/index-79fdb33f.js.map +1 -0
- package/dist/_chunks/{_resolveBuildContext-7ca7e64e.js → resolveBuildContext-f2feec19.js} +60 -62
- package/dist/_chunks/resolveBuildContext-f2feec19.js.map +1 -0
- package/dist/_chunks/{watch-f6cf9246.js → watch-02c85f8a.js} +25 -25
- package/dist/_chunks/watch-02c85f8a.js.map +1 -0
- package/dist/_chunks/{watchAction-4cf253a0.js → watchAction-9cb9681b.js} +6 -6
- package/dist/_chunks/watchAction-9cb9681b.js.map +1 -0
- package/dist/cli.js +4 -4
- package/dist/index.d.ts +44 -46
- package/dist/index.esm.js +165 -167
- package/dist/index.esm.js.map +1 -1
- package/dist/index.js +22 -22
- package/dist/index.js.map +1 -1
- package/package.json +48 -1
- package/src/cli/buildAction.ts +2 -2
- package/src/cli/checkAction.ts +2 -2
- package/src/cli/{_handleError.ts → handleError.ts} +1 -1
- package/src/cli/watchAction.ts +2 -2
- package/src/node/build.ts +11 -11
- package/src/node/check.ts +11 -11
- package/src/node/{_core → core}/config/defineConfig.ts +0 -0
- package/src/node/{_core/config/_findConfigFile.ts → core/config/findConfigFile.ts} +3 -3
- package/src/node/core/config/index.ts +4 -0
- package/src/node/{_core/config/_loadConfig.ts → core/config/loadConfig.ts} +3 -3
- package/src/node/{_core/config/_resolveConfigProperty.ts → core/config/resolveConfigProperty.ts} +1 -1
- package/src/node/{_core → core}/config/types.ts +0 -0
- package/src/node/{_core/_constants.ts → core/constants.ts} +1 -1
- package/src/node/{_core → core}/contexts/buildContext.ts +5 -5
- package/src/node/{_core → core}/contexts/index.ts +0 -0
- package/src/node/core/defaults.ts +7 -0
- package/src/node/core/findCommonPath.test.ts +9 -0
- package/src/node/{_core/_findCommonPath.ts → core/findCommonPath.ts} +3 -3
- package/src/node/{_core → core}/index.ts +3 -3
- package/src/node/{_core/_isRecord.ts → core/isRecord.ts} +1 -1
- package/src/node/core/pkg/index.ts +4 -0
- package/src/node/{_core/pkg/_loadPkg.ts → core/pkg/loadPkg.ts} +4 -4
- package/src/node/{_core/pkg/_loadPkgWithReporting.ts → core/pkg/loadPkgWithReporting.ts} +6 -6
- package/src/node/{_core/pkg/_parseExports.ts → core/pkg/parseExports.ts} +7 -7
- package/src/node/{_core/pkg/_types.ts → core/pkg/types.ts} +1 -1
- package/src/node/{_core/pkg/_validateExports.ts → core/pkg/validateExports.ts} +5 -5
- package/src/node/{_core/pkg/_validatePkg.ts → core/pkg/validatePkg.ts} +2 -2
- package/src/node/core/ts/index.ts +1 -0
- package/src/node/{_core/ts/_loadTSConfig.ts → core/ts/loadTSConfig.ts} +1 -1
- package/src/node/{_getFilesize.ts → getFilesize.ts} +1 -1
- package/src/node/globFiles.ts +5 -0
- package/src/node/index.ts +3 -3
- package/src/node/{_printExtractMessages.ts → printExtractMessages.ts} +2 -2
- package/src/node/{_printPackageTree.ts → printPackageTree.ts} +17 -17
- package/src/node/{_resolveBrowserTarget.ts → resolveBrowserTarget.ts} +2 -2
- package/src/node/{_resolveBrowserslistVersions.ts → resolveBrowserslistVersions.ts} +11 -11
- package/src/node/{_resolveBuildContext.ts → resolveBuildContext.ts} +28 -28
- package/src/node/{_resolveBuildTasks.ts → resolveBuildTasks.ts} +13 -13
- package/src/node/{_resolveNodeTarget.ts → resolveNodeTarget.ts} +2 -2
- package/src/node/{_resolveWatchTasks.ts → resolveWatchTasks.ts} +11 -11
- package/src/node/{_spinner.ts → spinner.ts} +1 -1
- package/src/node/{_tasks/dts/_DtsError.ts → tasks/dts/DtsError.ts} +1 -1
- package/src/node/{_tasks/dts/_buildTypes.ts → tasks/dts/buildTypes.ts} +1 -1
- package/src/node/{_tasks/dts/_createApiExtractorConfig.ts → tasks/dts/createApiExtractorConfig.ts} +1 -1
- package/src/node/{_tasks/dts/_createTSDocConfig.ts → tasks/dts/createTSDocConfig.ts} +1 -1
- package/src/node/{_tasks/dts/_doExtract.ts → tasks/dts/doExtract.ts} +12 -12
- package/src/node/{_tasks/dts/_dtsTask.ts → tasks/dts/dtsTask.ts} +10 -10
- package/src/node/{_tasks/dts/_dtsWatchTask.ts → tasks/dts/dtsWatchTask.ts} +10 -10
- package/src/node/{_tasks/dts/_extractModuleBlocks.ts → tasks/dts/extractModuleBlocks.ts} +3 -3
- package/src/node/{_tasks/dts/_extractTypes.ts → tasks/dts/extractTypes.ts} +11 -11
- package/src/node/{_tasks/dts/_getExtractMessagesConfig.ts → tasks/dts/getExtractMessagesConfig.ts} +12 -12
- package/src/node/tasks/dts/index.ts +4 -0
- package/src/node/{_tasks/dts/_types.ts → tasks/dts/types.ts} +3 -3
- package/src/node/tasks/index.ts +19 -0
- package/src/node/tasks/rollup/index.ts +2 -0
- package/src/node/{_tasks/rollup/_resolveRollupConfig.ts → tasks/rollup/resolveRollupConfig.ts} +16 -11
- package/src/node/{_tasks/rollup/_rollupTask.ts → tasks/rollup/rollupTask.ts} +7 -7
- package/src/node/{_tasks/rollup/_rollupWatchTask.ts → tasks/rollup/rollupWatchTask.ts} +4 -4
- package/src/node/tasks/types.ts +57 -0
- package/src/node/watch.ts +13 -13
- package/src/node/{_watchConfigFiles.ts → watchConfigFiles.ts} +5 -5
- package/src/node/{_watchFiles.ts → watchFiles.ts} +5 -5
- package/dist/_chunks/_handleError-869dec25.js.map +0 -1
- package/dist/_chunks/_resolveBuildContext-7ca7e64e.js.map +0 -1
- package/dist/_chunks/build-f39a3550.js.map +0 -1
- package/dist/_chunks/buildAction-8f449d1d.js.map +0 -1
- package/dist/_chunks/check-87cbb6cc.js.map +0 -1
- package/dist/_chunks/checkAction-e7e455d4.js.map +0 -1
- package/dist/_chunks/index-7a851efa.js.map +0 -1
- package/dist/_chunks/watch-f6cf9246.js.map +0 -1
- package/dist/_chunks/watchAction-4cf253a0.js.map +0 -1
- package/src/node/_core/_defaults.ts +0 -9
- package/src/node/_core/_findCommonPath.test.ts +0 -9
- package/src/node/_core/config/index.ts +0 -4
- package/src/node/_core/pkg/index.ts +0 -4
- package/src/node/_core/ts/index.ts +0 -1
- package/src/node/_globFiles.ts +0 -5
- package/src/node/_tasks/_types.ts +0 -57
- package/src/node/_tasks/dts/index.ts +0 -4
- package/src/node/_tasks/index.ts +0 -19
- 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
|
|
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(...
|
|
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
|
|
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,
|
|
12
|
-
import {
|
|
13
|
-
import {
|
|
14
|
-
import {
|
|
15
|
-
import {
|
|
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
|
|
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:
|
|
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
|
|
43
|
+
const tsdocConfigFile = await createTSDocConfig({
|
|
44
44
|
customTags: customTags || [],
|
|
45
45
|
})
|
|
46
46
|
|
|
47
47
|
const extractorConfig: ExtractorConfig = ExtractorConfig.prepare({
|
|
48
|
-
configObject:
|
|
48
|
+
configObject: createApiExtractorConfig({
|
|
49
49
|
distPath,
|
|
50
50
|
exportPath,
|
|
51
51
|
filePath,
|
|
52
|
-
messages:
|
|
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
|
|
83
|
+
const moduleBlocks = await extractModuleBlocksFromTypes({
|
|
84
84
|
extractResult: extractorResult,
|
|
85
85
|
tsOutDir: tmpPath,
|
|
86
86
|
})
|
package/src/node/{_tasks/dts/_getExtractMessagesConfig.ts → tasks/dts/getExtractMessagesConfig.ts}
RENAMED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import {ExtractorLogLevel, IExtractorMessagesConfig} from '@microsoft/api-extractor'
|
|
2
|
-
import {PkgRuleLevel, PkgConfigOptions} from '../../
|
|
2
|
+
import {PkgRuleLevel, PkgConfigOptions} from '../../core'
|
|
3
3
|
|
|
4
|
-
const
|
|
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
|
|
12
|
+
export function getExtractMessagesConfig(options: {
|
|
13
13
|
rules: NonNullable<PkgConfigOptions['extract']>['rules']
|
|
14
14
|
}): IExtractorMessagesConfig {
|
|
15
15
|
const {rules} = options
|
|
16
16
|
|
|
17
|
-
function
|
|
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 ?
|
|
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:
|
|
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:
|
|
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:
|
|
50
|
+
logLevel: ruleToLogLevel('ae-internal-missing-underscore'),
|
|
51
51
|
addToApiReportFile: false,
|
|
52
52
|
},
|
|
53
53
|
|
|
54
54
|
'ae-missing-release-tag': {
|
|
55
|
-
logLevel:
|
|
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:
|
|
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:
|
|
77
|
+
logLevel: ruleToLogLevel('tsdoc-undefined-tag', 'error' as ExtractorLogLevel),
|
|
78
78
|
addToApiReportFile: false,
|
|
79
79
|
},
|
|
80
80
|
|
|
81
81
|
'tsdoc-unsupported-tag': {
|
|
82
|
-
logLevel:
|
|
82
|
+
logLevel: ruleToLogLevel('tsdoc-unsupported-tag', 'none' as ExtractorLogLevel),
|
|
83
83
|
addToApiReportFile: false,
|
|
84
84
|
},
|
|
85
85
|
},
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import {ExtractorMessage} from '@microsoft/api-extractor'
|
|
2
2
|
|
|
3
3
|
/** @internal */
|
|
4
|
-
export interface
|
|
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
|
|
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
|
|
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
|
+
}
|
package/src/node/{_tasks/rollup/_resolveRollupConfig.ts → tasks/rollup/resolveRollupConfig.ts}
RENAMED
|
@@ -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 {
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
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
|
|
21
|
-
ctx:
|
|
22
|
-
buildTask:
|
|
23
|
-
):
|
|
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 =
|
|
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 ||
|
|
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
|
-
:
|
|
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 {
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
7
|
+
import {BuildContext} from '../../core'
|
|
8
|
+
import {RollupTask, TaskHandler} from '../types'
|
|
9
|
+
import {resolveRollupConfig} from './resolveRollupConfig'
|
|
10
10
|
|
|
11
11
|
/** @internal */
|
|
12
|
-
export const
|
|
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
|
-
|
|
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
|
|
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} =
|
|
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 {
|
|
6
|
-
import {
|
|
5
|
+
import {RollupWatchTask, TaskHandler} from '../types'
|
|
6
|
+
import {resolveRollupConfig} from './resolveRollupConfig'
|
|
7
7
|
|
|
8
8
|
/** @internal */
|
|
9
|
-
export const
|
|
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} =
|
|
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 {
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
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
|
|
17
|
+
const configFiles$ = await watchConfigFiles({cwd})
|
|
18
18
|
|
|
19
19
|
const ctx$ = configFiles$.pipe(
|
|
20
20
|
switchMap(async (configFiles) => {
|
|
21
|
-
const
|
|
21
|
+
const files = configFiles.map((f) => path.relative(cwd, f))
|
|
22
22
|
|
|
23
|
-
const packageJsonPath =
|
|
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
|
|
30
|
-
const config = await
|
|
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
|
|
33
|
+
return resolveBuildContext({config, cwd, pkg, strict, tsconfig})
|
|
34
34
|
})
|
|
35
35
|
)
|
|
36
36
|
|
|
37
37
|
ctx$.subscribe(async (ctx) => {
|
|
38
|
-
const watchTasks =
|
|
38
|
+
const watchTasks = resolveWatchTasks(ctx)
|
|
39
39
|
|
|
40
40
|
for (const task of watchTasks) {
|
|
41
|
-
const handler =
|
|
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 {
|
|
6
|
-
import {
|
|
5
|
+
import {globFiles} from './globFiles'
|
|
6
|
+
import {watchFiles} from './watchFiles'
|
|
7
7
|
|
|
8
|
-
export async function
|
|
8
|
+
export async function watchConfigFiles(options: {cwd: string}): Promise<Observable<string[]>> {
|
|
9
9
|
const {cwd} = options
|
|
10
10
|
|
|
11
|
-
const initialFiles = await
|
|
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$ =
|
|
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
|
|
4
|
+
export interface FileEvent {
|
|
5
5
|
type: 'add' | 'addDir' | 'change' | 'unlink' | 'unlinkDir'
|
|
6
6
|
file: string
|
|
7
7
|
}
|
|
8
8
|
|
|
9
|
-
export function
|
|
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
|
|
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',
|
|
22
|
+
watcher.on('all', handleFileEvent)
|
|
23
23
|
|
|
24
24
|
return () => {
|
|
25
|
-
watcher.off('all',
|
|
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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"}
|