@sanity/pkg-utils 2.1.1 → 2.2.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 (29) hide show
  1. package/dist/_chunks/{build-68e9229a.cjs → build-8d840bfe.cjs} +3 -3
  2. package/dist/_chunks/{build-68e9229a.cjs.map → build-8d840bfe.cjs.map} +1 -1
  3. package/dist/_chunks/{buildAction-9ce9614a.cjs → buildAction-02b78976.cjs} +2 -2
  4. package/dist/_chunks/{buildAction-9ce9614a.cjs.map → buildAction-02b78976.cjs.map} +1 -1
  5. package/dist/_chunks/{check-745260bc.cjs → check-37772bb3.cjs} +12 -11
  6. package/dist/_chunks/check-37772bb3.cjs.map +1 -0
  7. package/dist/_chunks/{checkAction-1aa1fff7.cjs → checkAction-59707d6a.cjs} +2 -2
  8. package/dist/_chunks/{checkAction-1aa1fff7.cjs.map → checkAction-59707d6a.cjs.map} +1 -1
  9. package/dist/_chunks/{index-a01cf661.cjs → index-49daefad.cjs} +2 -2
  10. package/dist/_chunks/{index-a01cf661.cjs.map → index-49daefad.cjs.map} +1 -1
  11. package/dist/_chunks/{resolveBuildContext-702e3fb6.cjs → resolveBuildContext-c51eac50.cjs} +51 -6
  12. package/dist/_chunks/resolveBuildContext-c51eac50.cjs.map +1 -0
  13. package/dist/_chunks/{watch-533fe913.cjs → watch-6cfbe78a.cjs} +3 -3
  14. package/dist/_chunks/{watch-533fe913.cjs.map → watch-6cfbe78a.cjs.map} +1 -1
  15. package/dist/_chunks/{watchAction-d2c08880.cjs → watchAction-de3c9fdf.cjs} +2 -2
  16. package/dist/_chunks/{watchAction-d2c08880.cjs.map → watchAction-de3c9fdf.cjs.map} +1 -1
  17. package/dist/cli.cjs +4 -4
  18. package/dist/index.cjs +5 -5
  19. package/dist/index.js +60 -14
  20. package/dist/index.js.map +1 -1
  21. package/package.json +3 -3
  22. package/src/node/core/pkg/helpers.ts +36 -0
  23. package/src/node/core/pkg/loadPkg.ts +5 -1
  24. package/src/node/core/pkg/loadPkgWithReporting.ts +38 -2
  25. package/src/node/core/pkg/parseExports.ts +1 -1
  26. package/src/node/core/pkg/validatePkg.ts +1 -1
  27. package/src/node/printPackageTree.ts +12 -8
  28. package/dist/_chunks/check-745260bc.cjs.map +0 -1
  29. package/dist/_chunks/resolveBuildContext-702e3fb6.cjs.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"watch-533fe913.cjs","sources":["../../src/node/resolveWatchTasks.ts","../../src/node/globFiles.ts","../../src/node/watchFiles.ts","../../src/node/watchConfigFiles.ts","../../src/node/watch.ts"],"sourcesContent":["import fs from 'fs'\nimport path from 'path'\nimport {PkgExport, PkgFormat, PkgRuntime, BuildContext} from './core'\nimport {WatchTask, DtsWatchTask, RollupWatchTask, RollupTaskEntry} from './tasks'\n\n/** @internal */\nexport function resolveWatchTasks(ctx: BuildContext): WatchTask[] {\n const {config, cwd, pkg, target} = ctx\n const tasks: WatchTask[] = []\n\n const exports = Object.entries(ctx.exports || {}).map(\n ([_path, exp]) => ({_path, ...exp} as PkgExport & {_path: string})\n )\n\n const dtsTask: DtsWatchTask = {\n type: 'watch:dts',\n entries: [],\n }\n\n const rollupTasks: Record<string, RollupWatchTask> = {}\n\n function addRollupTaskEntry(format: PkgFormat, runtime: PkgRuntime, entry: RollupTaskEntry) {\n const buildId = `${format}:${runtime}`\n\n if (rollupTasks[buildId]) {\n rollupTasks[buildId].entries.push(entry)\n } else {\n rollupTasks[buildId] = {\n type: 'watch:js',\n buildId,\n entries: [entry],\n runtime,\n format,\n target: target[runtime],\n }\n }\n }\n\n // Parse `dts` tasks\n for (const exp of exports) {\n const importId = path.join(pkg.name, exp._path)\n\n if (exp.types) {\n dtsTask.entries.push({\n importId,\n exportPath: exp._path,\n sourcePath: exp.source,\n targetPath: exp.types,\n })\n }\n }\n\n // Parse rollup:commonjs:* tasks\n for (const exp of exports) {\n const output = exp.require\n\n if (!output) continue\n\n addRollupTaskEntry('commonjs', ctx.runtime, {\n path: exp._path,\n source: exp.source,\n output,\n })\n }\n\n // Parse rollup:commonjs:browser tasks\n for (const exp of exports) {\n const output = exp.browser?.require\n\n if (!output) continue\n\n addRollupTaskEntry('commonjs', 'browser', {\n path: exp._path,\n source: exp.browser?.source || exp.source,\n output,\n })\n }\n\n // Parse rollup:esm:* tasks\n for (const exp of exports) {\n const output = exp.import\n\n if (!output) continue\n\n addRollupTaskEntry('esm', ctx.runtime, {\n path: exp._path,\n source: exp.source,\n output,\n })\n }\n\n // Parse rollup:esm:browser tasks\n for (const exp of exports) {\n const output = exp.browser?.import\n\n if (!output) continue\n\n addRollupTaskEntry('esm', 'browser', {\n path: exp._path,\n source: exp.browser?.source || exp.source,\n output,\n })\n }\n\n if (dtsTask.entries.length) {\n tasks.push(dtsTask)\n }\n\n tasks.push(...Object.values(rollupTasks))\n\n // Write legacy exports files\n if (config?.legacyExports) {\n for (const exp of exports) {\n if (exp._exported && exp._path !== '.') {\n const relativeTargetPath = (exp.browser?.import || exp.import || '').replace(\n /\\.[^/.]+$/,\n ''\n )\n\n if (relativeTargetPath) {\n fs.writeFileSync(\n path.resolve(cwd, `${exp._path}.js`),\n [`// AUTO-GENERATED – DO NOT EDIT`, `export * from '${relativeTargetPath}'`, ``].join(\n '\\n'\n )\n )\n }\n }\n }\n }\n\n return tasks\n}\n","import globby from 'globby'\n\nexport function globFiles(patterns: string[]): Promise<string[]> {\n return globby(patterns)\n}\n","import chokidar from 'chokidar'\nimport {Observable} from 'rxjs'\n\nexport interface FileEvent {\n type: 'add' | 'addDir' | 'change' | 'unlink' | 'unlinkDir'\n file: string\n}\n\nexport function watchFiles(patterns: string[]): Observable<FileEvent> {\n return new Observable((observer) => {\n const watcher = chokidar.watch(patterns, {\n ignoreInitial: true,\n })\n\n function handleFileEvent(\n type: 'add' | 'addDir' | 'change' | 'unlink' | 'unlinkDir',\n file: string\n ) {\n observer.next({type, file})\n }\n\n watcher.on('all', handleFileEvent)\n\n return () => {\n watcher.off('all', handleFileEvent)\n watcher.close()\n }\n })\n}\n","import path from 'path'\nimport {Observable} from 'rxjs'\nimport {distinctUntilChanged, scan, startWith} from 'rxjs/operators'\nimport {globFiles} from './globFiles'\nimport {Logger} from './logger'\nimport {watchFiles} from './watchFiles'\n\nexport async function watchConfigFiles(options: {\n cwd: string\n logger: Logger\n}): Promise<Observable<string[]>> {\n const {cwd, logger} = options\n\n const initialFiles = await globFiles([\n path.resolve(cwd, 'package.json'),\n path.resolve(cwd, 'package.config.cjs'),\n path.resolve(cwd, 'package.config.js'),\n path.resolve(cwd, 'package.config.ts'),\n ])\n\n const fileEvent$ = watchFiles([\n path.resolve(cwd, 'package.json'),\n path.resolve(cwd, 'package.config.cjs'),\n path.resolve(cwd, 'package.config.js'),\n path.resolve(cwd, 'package.config.ts'),\n ])\n\n return fileEvent$.pipe(\n scan((files, fileEvent) => {\n if (fileEvent.type === 'add') {\n return files.concat(fileEvent.file)\n }\n\n if (fileEvent.type === 'unlink') {\n return files.filter((f) => f !== fileEvent.file)\n }\n\n if (fileEvent.type === 'change') {\n logger.log(\n '--------------------------------------------------------------------------------'\n )\n logger.info(path.relative(cwd, fileEvent.file), 'changed')\n logger.log('')\n\n return files.slice(0) // trigger update\n }\n\n return files\n }, initialFiles),\n startWith(initialFiles),\n distinctUntilChanged()\n )\n}\n","import path from 'path'\nimport {switchMap} from 'rxjs'\nimport {getPkgExtMap, loadConfig, loadPkgWithReporting} from './core'\nimport {createLogger} from './logger'\nimport {resolveBuildContext} from './resolveBuildContext'\nimport {resolveWatchTasks} from './resolveWatchTasks'\nimport {WatchTask, TaskHandler, watchTaskHandlers} from './tasks'\nimport {watchConfigFiles} from './watchConfigFiles'\n\n/** @public */\nexport async function watch(options: {\n cwd: string\n strict?: boolean\n tsconfig?: string\n}): Promise<void> {\n const {cwd, strict = false, tsconfig: tsconfigOption} = options\n\n const logger = createLogger()\n\n const configFiles$ = await watchConfigFiles({cwd, logger})\n\n const ctx$ = configFiles$.pipe(\n switchMap(async (configFiles) => {\n const files = configFiles.map((f) => path.relative(cwd, f))\n\n const packageJsonPath = files.find((f) => f === 'package.json')\n\n if (!packageJsonPath) {\n throw new Error('missing package.json')\n }\n\n const pkg = await loadPkgWithReporting({cwd, logger})\n const config = await loadConfig({cwd})\n const extMap = getPkgExtMap({legacyExports: config?.legacyExports ?? false})\n const tsconfig = tsconfigOption || config?.tsconfig || 'tsconfig.json'\n\n return resolveBuildContext({config, cwd, extMap, logger, pkg, strict, tsconfig})\n })\n )\n\n ctx$.subscribe(async (ctx) => {\n const watchTasks = resolveWatchTasks(ctx)\n\n for (const task of watchTasks) {\n const handler = watchTaskHandlers[task.type] as TaskHandler<WatchTask, unknown>\n const result$ = handler.exec(ctx, task)\n\n result$.subscribe({\n error: (err) => {\n ctx.logger.error(err)\n ctx.logger.log()\n\n process.exit(1)\n },\n next: (result) => {\n handler.complete(ctx, task, result)\n },\n complete: () => {\n ctx.logger.success(handler.name(ctx, task))\n ctx.logger.log()\n },\n })\n }\n })\n}\n"],"names":["resolveWatchTasks","ctx","_a","_b","_c","_d","_e","config","cwd","pkg","target","tasks","exports","Object","entries","map","_path","exp","dtsTask","type","rollupTasks","addRollupTaskEntry","format","runtime","entry","buildId","push","importId","path","join","name","types","exportPath","sourcePath","source","targetPath","output","require","browser","import","length","values","legacyExports","_exported","relativeTargetPath","replace","fs","writeFileSync","default","resolve","globFiles","patterns","globby","watchFiles","Observable","observer","watcher","chokidar","watch","ignoreInitial","handleFileEvent","file","next","on","off","close","watchConfigFiles","options","logger","initialFiles","fileEvent$","pipe","scan","files","fileEvent","concat","filter","f","log","info","relative","slice","startWith","distinctUntilChanged","strict","tsconfig","tsconfigOption","createLogger","configFiles$","ctx$","switchMap","configFiles","packageJsonPath","find","Error","loadPkgWithReporting","loadConfig","extMap","getPkgExtMap","resolveBuildContext","subscribe","watchTasks","task","handler","watchTaskHandlers","result$","exec","error","err","process","exit","result","complete","success"],"mappings":"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"}
1
+ {"version":3,"file":"watch-6cfbe78a.cjs","sources":["../../src/node/resolveWatchTasks.ts","../../src/node/globFiles.ts","../../src/node/watchFiles.ts","../../src/node/watchConfigFiles.ts","../../src/node/watch.ts"],"sourcesContent":["import fs from 'fs'\nimport path from 'path'\nimport {PkgExport, PkgFormat, PkgRuntime, BuildContext} from './core'\nimport {WatchTask, DtsWatchTask, RollupWatchTask, RollupTaskEntry} from './tasks'\n\n/** @internal */\nexport function resolveWatchTasks(ctx: BuildContext): WatchTask[] {\n const {config, cwd, pkg, target} = ctx\n const tasks: WatchTask[] = []\n\n const exports = Object.entries(ctx.exports || {}).map(\n ([_path, exp]) => ({_path, ...exp} as PkgExport & {_path: string})\n )\n\n const dtsTask: DtsWatchTask = {\n type: 'watch:dts',\n entries: [],\n }\n\n const rollupTasks: Record<string, RollupWatchTask> = {}\n\n function addRollupTaskEntry(format: PkgFormat, runtime: PkgRuntime, entry: RollupTaskEntry) {\n const buildId = `${format}:${runtime}`\n\n if (rollupTasks[buildId]) {\n rollupTasks[buildId].entries.push(entry)\n } else {\n rollupTasks[buildId] = {\n type: 'watch:js',\n buildId,\n entries: [entry],\n runtime,\n format,\n target: target[runtime],\n }\n }\n }\n\n // Parse `dts` tasks\n for (const exp of exports) {\n const importId = path.join(pkg.name, exp._path)\n\n if (exp.types) {\n dtsTask.entries.push({\n importId,\n exportPath: exp._path,\n sourcePath: exp.source,\n targetPath: exp.types,\n })\n }\n }\n\n // Parse rollup:commonjs:* tasks\n for (const exp of exports) {\n const output = exp.require\n\n if (!output) continue\n\n addRollupTaskEntry('commonjs', ctx.runtime, {\n path: exp._path,\n source: exp.source,\n output,\n })\n }\n\n // Parse rollup:commonjs:browser tasks\n for (const exp of exports) {\n const output = exp.browser?.require\n\n if (!output) continue\n\n addRollupTaskEntry('commonjs', 'browser', {\n path: exp._path,\n source: exp.browser?.source || exp.source,\n output,\n })\n }\n\n // Parse rollup:esm:* tasks\n for (const exp of exports) {\n const output = exp.import\n\n if (!output) continue\n\n addRollupTaskEntry('esm', ctx.runtime, {\n path: exp._path,\n source: exp.source,\n output,\n })\n }\n\n // Parse rollup:esm:browser tasks\n for (const exp of exports) {\n const output = exp.browser?.import\n\n if (!output) continue\n\n addRollupTaskEntry('esm', 'browser', {\n path: exp._path,\n source: exp.browser?.source || exp.source,\n output,\n })\n }\n\n if (dtsTask.entries.length) {\n tasks.push(dtsTask)\n }\n\n tasks.push(...Object.values(rollupTasks))\n\n // Write legacy exports files\n if (config?.legacyExports) {\n for (const exp of exports) {\n if (exp._exported && exp._path !== '.') {\n const relativeTargetPath = (exp.browser?.import || exp.import || '').replace(\n /\\.[^/.]+$/,\n ''\n )\n\n if (relativeTargetPath) {\n fs.writeFileSync(\n path.resolve(cwd, `${exp._path}.js`),\n [`// AUTO-GENERATED – DO NOT EDIT`, `export * from '${relativeTargetPath}'`, ``].join(\n '\\n'\n )\n )\n }\n }\n }\n }\n\n return tasks\n}\n","import globby from 'globby'\n\nexport function globFiles(patterns: string[]): Promise<string[]> {\n return globby(patterns)\n}\n","import chokidar from 'chokidar'\nimport {Observable} from 'rxjs'\n\nexport interface FileEvent {\n type: 'add' | 'addDir' | 'change' | 'unlink' | 'unlinkDir'\n file: string\n}\n\nexport function watchFiles(patterns: string[]): Observable<FileEvent> {\n return new Observable((observer) => {\n const watcher = chokidar.watch(patterns, {\n ignoreInitial: true,\n })\n\n function handleFileEvent(\n type: 'add' | 'addDir' | 'change' | 'unlink' | 'unlinkDir',\n file: string\n ) {\n observer.next({type, file})\n }\n\n watcher.on('all', handleFileEvent)\n\n return () => {\n watcher.off('all', handleFileEvent)\n watcher.close()\n }\n })\n}\n","import path from 'path'\nimport {Observable} from 'rxjs'\nimport {distinctUntilChanged, scan, startWith} from 'rxjs/operators'\nimport {globFiles} from './globFiles'\nimport {Logger} from './logger'\nimport {watchFiles} from './watchFiles'\n\nexport async function watchConfigFiles(options: {\n cwd: string\n logger: Logger\n}): Promise<Observable<string[]>> {\n const {cwd, logger} = options\n\n const initialFiles = await globFiles([\n path.resolve(cwd, 'package.json'),\n path.resolve(cwd, 'package.config.cjs'),\n path.resolve(cwd, 'package.config.js'),\n path.resolve(cwd, 'package.config.ts'),\n ])\n\n const fileEvent$ = watchFiles([\n path.resolve(cwd, 'package.json'),\n path.resolve(cwd, 'package.config.cjs'),\n path.resolve(cwd, 'package.config.js'),\n path.resolve(cwd, 'package.config.ts'),\n ])\n\n return fileEvent$.pipe(\n scan((files, fileEvent) => {\n if (fileEvent.type === 'add') {\n return files.concat(fileEvent.file)\n }\n\n if (fileEvent.type === 'unlink') {\n return files.filter((f) => f !== fileEvent.file)\n }\n\n if (fileEvent.type === 'change') {\n logger.log(\n '--------------------------------------------------------------------------------'\n )\n logger.info(path.relative(cwd, fileEvent.file), 'changed')\n logger.log('')\n\n return files.slice(0) // trigger update\n }\n\n return files\n }, initialFiles),\n startWith(initialFiles),\n distinctUntilChanged()\n )\n}\n","import path from 'path'\nimport {switchMap} from 'rxjs'\nimport {getPkgExtMap, loadConfig, loadPkgWithReporting} from './core'\nimport {createLogger} from './logger'\nimport {resolveBuildContext} from './resolveBuildContext'\nimport {resolveWatchTasks} from './resolveWatchTasks'\nimport {WatchTask, TaskHandler, watchTaskHandlers} from './tasks'\nimport {watchConfigFiles} from './watchConfigFiles'\n\n/** @public */\nexport async function watch(options: {\n cwd: string\n strict?: boolean\n tsconfig?: string\n}): Promise<void> {\n const {cwd, strict = false, tsconfig: tsconfigOption} = options\n\n const logger = createLogger()\n\n const configFiles$ = await watchConfigFiles({cwd, logger})\n\n const ctx$ = configFiles$.pipe(\n switchMap(async (configFiles) => {\n const files = configFiles.map((f) => path.relative(cwd, f))\n\n const packageJsonPath = files.find((f) => f === 'package.json')\n\n if (!packageJsonPath) {\n throw new Error('missing package.json')\n }\n\n const pkg = await loadPkgWithReporting({cwd, logger})\n const config = await loadConfig({cwd})\n const extMap = getPkgExtMap({legacyExports: config?.legacyExports ?? false})\n const tsconfig = tsconfigOption || config?.tsconfig || 'tsconfig.json'\n\n return resolveBuildContext({config, cwd, extMap, logger, pkg, strict, tsconfig})\n })\n )\n\n ctx$.subscribe(async (ctx) => {\n const watchTasks = resolveWatchTasks(ctx)\n\n for (const task of watchTasks) {\n const handler = watchTaskHandlers[task.type] as TaskHandler<WatchTask, unknown>\n const result$ = handler.exec(ctx, task)\n\n result$.subscribe({\n error: (err) => {\n ctx.logger.error(err)\n ctx.logger.log()\n\n process.exit(1)\n },\n next: (result) => {\n handler.complete(ctx, task, result)\n },\n complete: () => {\n ctx.logger.success(handler.name(ctx, task))\n ctx.logger.log()\n },\n })\n }\n })\n}\n"],"names":["resolveWatchTasks","ctx","_a","_b","_c","_d","_e","config","cwd","pkg","target","tasks","exports","Object","entries","map","_path","exp","dtsTask","type","rollupTasks","addRollupTaskEntry","format","runtime","entry","buildId","push","importId","path","join","name","types","exportPath","sourcePath","source","targetPath","output","require","browser","import","length","values","legacyExports","_exported","relativeTargetPath","replace","fs","writeFileSync","default","resolve","globFiles","patterns","globby","watchFiles","Observable","observer","watcher","chokidar","watch","ignoreInitial","handleFileEvent","file","next","on","off","close","watchConfigFiles","options","logger","initialFiles","fileEvent$","pipe","scan","files","fileEvent","concat","filter","f","log","info","relative","slice","startWith","distinctUntilChanged","strict","tsconfig","tsconfigOption","createLogger","configFiles$","ctx$","switchMap","configFiles","packageJsonPath","find","Error","loadPkgWithReporting","loadConfig","extMap","getPkgExtMap","resolveBuildContext","subscribe","watchTasks","task","handler","watchTaskHandlers","result$","exec","error","err","process","exit","result","complete","success"],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var watch = require('./watch-533fe913.cjs');
3
+ var watch = require('./watch-6cfbe78a.cjs');
4
4
  var handleError = require('./handleError-13d87f55.cjs');
5
5
  async function watchAction(options) {
6
6
  try {
@@ -14,4 +14,4 @@ async function watchAction(options) {
14
14
  }
15
15
  }
16
16
  exports.watchAction = watchAction;
17
- //# sourceMappingURL=watchAction-d2c08880.cjs.map
17
+ //# sourceMappingURL=watchAction-de3c9fdf.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"watchAction-d2c08880.cjs","sources":["../../src/cli/watchAction.ts"],"sourcesContent":["import {watch} from '../node/watch'\nimport {handleError} from './handleError'\n\nexport async function watchAction(options: {strict?: boolean; tsconfig?: string}): Promise<void> {\n try {\n await watch({\n cwd: process.cwd(),\n strict: options.strict,\n tsconfig: options.tsconfig,\n })\n } catch (err) {\n handleError(err)\n }\n}\n"],"names":["watchAction","options","watch","cwd","process","strict","tsconfig","err","handleError"],"mappings":";;;;AAGA,eAAsBA,YAAYC,OAA+D,EAAA;EAC3F,IAAA;IACF,MAAMC,WAAM,CAAA;MACVC,GAAA,EAAKC,QAAQD,GAAI,EAAA;MACjBE,QAAQJ,OAAQ,CAAAI,MAAA;MAChBC,UAAUL,OAAQ,CAAAK;IAAA,CACnB,CAAA;WACMC,GAAP,EAAA;IACAC,WAAA,CAAAA,WAAA,CAAYD,GAAG,CAAA;EACjB;AACF;"}
1
+ {"version":3,"file":"watchAction-de3c9fdf.cjs","sources":["../../src/cli/watchAction.ts"],"sourcesContent":["import {watch} from '../node/watch'\nimport {handleError} from './handleError'\n\nexport async function watchAction(options: {strict?: boolean; tsconfig?: string}): Promise<void> {\n try {\n await watch({\n cwd: process.cwd(),\n strict: options.strict,\n tsconfig: options.tsconfig,\n })\n } catch (err) {\n handleError(err)\n }\n}\n"],"names":["watchAction","options","watch","cwd","process","strict","tsconfig","err","handleError"],"mappings":";;;;AAGA,eAAsBA,YAAYC,OAA+D,EAAA;EAC3F,IAAA;IACF,MAAMC,WAAM,CAAA;MACVC,GAAA,EAAKC,QAAQD,GAAI,EAAA;MACjBE,QAAQJ,OAAQ,CAAAI,MAAA;MAChBC,UAAUL,OAAQ,CAAAK;IAAA,CACnB,CAAA;WACMC,GAAP,EAAA;IACAC,WAAA,CAAAA,WAAA,CAAYD,GAAG,CAAA;EACjB;AACF;"}
package/dist/cli.cjs CHANGED
@@ -7,13 +7,13 @@ function _interopDefaultCompat(e) {
7
7
  };
8
8
  }
9
9
  var cac__default = /*#__PURE__*/_interopDefaultCompat(cac);
10
- var version = "2.1.1";
10
+ var version = "2.2.0";
11
11
  const cli = cac__default.default();
12
12
  cli.command("", "Check").option("--strict", "Strict mode").option("--tsconfig [tsconfig]", "[string] tsconfig.json").action(async options => {
13
13
  const {
14
14
  checkAction: statusAction
15
15
  } = await Promise.resolve().then(function () {
16
- return require('./_chunks/checkAction-1aa1fff7.cjs');
16
+ return require('./_chunks/checkAction-59707d6a.cjs');
17
17
  });
18
18
  return statusAction(options);
19
19
  });
@@ -21,7 +21,7 @@ cli.command("build", "Build package").option("--emitDeclarationOnly", "Emit d.ts
21
21
  const {
22
22
  buildAction
23
23
  } = await Promise.resolve().then(function () {
24
- return require('./_chunks/buildAction-9ce9614a.cjs');
24
+ return require('./_chunks/buildAction-02b78976.cjs');
25
25
  });
26
26
  return buildAction(options);
27
27
  });
@@ -29,7 +29,7 @@ cli.command("watch", "Watch package").option("--strict", "Strict mode").option("
29
29
  const {
30
30
  watchAction
31
31
  } = await Promise.resolve().then(function () {
32
- return require('./_chunks/watchAction-d2c08880.cjs');
32
+ return require('./_chunks/watchAction-de3c9fdf.cjs');
33
33
  });
34
34
  return watchAction(options);
35
35
  });
package/dist/index.cjs CHANGED
@@ -3,11 +3,11 @@
3
3
  Object.defineProperty(exports, '__esModule', {
4
4
  value: true
5
5
  });
6
- var build = require('./_chunks/build-68e9229a.cjs');
7
- var check = require('./_chunks/check-745260bc.cjs');
8
- var resolveBuildContext = require('./_chunks/resolveBuildContext-702e3fb6.cjs');
9
- var index = require('./_chunks/index-a01cf661.cjs');
10
- var watch = require('./_chunks/watch-533fe913.cjs');
6
+ var build = require('./_chunks/build-8d840bfe.cjs');
7
+ var check = require('./_chunks/check-37772bb3.cjs');
8
+ var resolveBuildContext = require('./_chunks/resolveBuildContext-c51eac50.cjs');
9
+ var index = require('./_chunks/index-49daefad.cjs');
10
+ var watch = require('./_chunks/watch-6cfbe78a.cjs');
11
11
  function defineConfig(configOptions) {
12
12
  return configOptions;
13
13
  }
package/dist/index.js CHANGED
@@ -116,6 +116,7 @@ const pkgSchema = z.object({
116
116
  exports: z.optional(z.record(z.union([z.custom(val => /^\.\/.*\.json$/.test(val)), z.object({
117
117
  types: z.optional(z.string()),
118
118
  source: z.string(),
119
+ require: z.optional(z.string()),
119
120
  browser: z.optional(z.object({
120
121
  source: z.string(),
121
122
  require: z.optional(z.string()),
@@ -126,7 +127,6 @@ const pkgSchema = z.object({
126
127
  require: z.optional(z.string()),
127
128
  import: z.optional(z.string())
128
129
  })),
129
- require: z.optional(z.string()),
130
130
  import: z.optional(z.string()),
131
131
  default: z.string()
132
132
  })]))),
@@ -144,7 +144,31 @@ async function loadPkg(options) {
144
144
  });
145
145
  if (!pkgPath) throw new Error("no package.json found");
146
146
  const buf = await fs.readFile(pkgPath);
147
- return validatePkg(JSON.parse(buf.toString()));
147
+ const raw = JSON.parse(buf.toString());
148
+ validatePkg(raw);
149
+ return raw;
150
+ }
151
+ function assertFirst(a, arr) {
152
+ const aIdx = arr.indexOf(a);
153
+ if (aIdx === -1) {
154
+ return true;
155
+ }
156
+ return aIdx === 0;
157
+ }
158
+ function assertLast(a, arr) {
159
+ const aIdx = arr.indexOf(a);
160
+ if (aIdx === -1) {
161
+ return true;
162
+ }
163
+ return aIdx === arr.length - 1;
164
+ }
165
+ function assertOrder(a, b, arr) {
166
+ const aIdx = arr.indexOf(a);
167
+ const bIdx = arr.indexOf(b);
168
+ if (aIdx === -1 || bIdx === -1) {
169
+ return true;
170
+ }
171
+ return aIdx < bIdx;
148
172
  }
149
173
  async function loadPkgWithReporting(options) {
150
174
  const {
@@ -155,8 +179,29 @@ async function loadPkgWithReporting(options) {
155
179
  const pkg = await loadPkg({
156
180
  cwd
157
181
  });
158
- if (pkg.type === void 0) {
159
- logger.warn('no "type" field in package.json, defaulting to "commonjs"');
182
+ if (pkg.exports) {
183
+ const _exports = Object.entries(pkg.exports);
184
+ for (const [expPath, exp] of _exports) {
185
+ if (typeof exp === "string") {
186
+ continue;
187
+ }
188
+ const keys = Object.keys(exp);
189
+ if (!assertFirst("types", keys)) {
190
+ logger.warn("exports[\"".concat(expPath, "\"]: the `types` property should be the first property"));
191
+ }
192
+ if (!assertOrder("require", "import", keys)) {
193
+ logger.warn("exports[\"".concat(expPath, "\"]: the `require` property should come before the `import` property"));
194
+ }
195
+ if (!assertOrder("require", "node", keys)) {
196
+ logger.warn("exports[\"".concat(expPath, "\"]: the `require` property should come before the `node` property"));
197
+ }
198
+ if (!assertOrder("node", "import", keys)) {
199
+ logger.warn("exports[\"".concat(expPath, "\"]: the `node` property should come before `import` property"));
200
+ }
201
+ if (!assertLast("default", keys)) {
202
+ logger.warn("exports[\"".concat(expPath, "\"]: the `default` property should be the last property"));
203
+ }
204
+ }
160
205
  }
161
206
  return pkg;
162
207
  } catch (err) {
@@ -219,8 +264,8 @@ function parseExports(options) {
219
264
  require: pkg.main && pkg.browser[pkg.main],
220
265
  import: pkg.module && pkg.browser[pkg.module]
221
266
  },
222
- import: pkg.module,
223
267
  require: pkg.main,
268
+ import: pkg.module,
224
269
  default: pkg.module || pkg.main || ""
225
270
  };
226
271
  const extraExports = [];
@@ -1576,9 +1621,10 @@ function printPackageTree(ctx) {
1576
1621
  } = ctx;
1577
1622
  if (!exports) return;
1578
1623
  logger.log("".concat(chalk.blue(pkg.name), "@").concat(chalk.green(pkg.version)));
1579
- const tree = {
1580
- type: chalk.yellow(pkg.type)
1581
- };
1624
+ const tree = {};
1625
+ if (pkg.type) {
1626
+ tree.type = chalk.yellow(pkg.type);
1627
+ }
1582
1628
  if (pkg.bin) {
1583
1629
  tree.bin = Object.fromEntries(Object.entries(pkg.bin).map(_ref13 => {
1584
1630
  let [name, file] = _ref13;
@@ -1601,9 +1647,9 @@ function printPackageTree(ctx) {
1601
1647
  types: void 0,
1602
1648
  source: fileInfo(entry.source),
1603
1649
  browser: void 0,
1650
+ require: void 0,
1604
1651
  node: void 0,
1605
1652
  import: void 0,
1606
- require: void 0,
1607
1653
  default: fileInfo(entry.default)
1608
1654
  };
1609
1655
  if (entry.types) {
@@ -1620,6 +1666,11 @@ function printPackageTree(ctx) {
1620
1666
  } else {
1621
1667
  delete exp.browser;
1622
1668
  }
1669
+ if (entry.require) {
1670
+ exp.require = fileInfo(entry.require);
1671
+ } else {
1672
+ delete exp.require;
1673
+ }
1623
1674
  if (entry.node) {
1624
1675
  exp.node = {};
1625
1676
  if (entry.node.source) exp.node.source = fileInfo(entry.node.source);
@@ -1633,11 +1684,6 @@ function printPackageTree(ctx) {
1633
1684
  } else {
1634
1685
  delete exp.import;
1635
1686
  }
1636
- if (entry.require) {
1637
- exp.require = fileInfo(entry.require);
1638
- } else {
1639
- delete exp.require;
1640
- }
1641
1687
  return [chalk.cyan(path.join(pkg.name, exportPath)), exp];
1642
1688
  }));
1643
1689
  logger.log(treeify.asTree(tree, true, true));