tshy 3.3.2 → 4.0.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 (76) hide show
  1. package/README.md +16 -0
  2. package/dist/esm/bin-min.d.mts +1 -1
  3. package/dist/esm/bin-min.d.mts.map +1 -1
  4. package/dist/esm/bin-min.mjs +12 -14
  5. package/dist/esm/bin-min.mjs.map +3 -3
  6. package/dist/esm/build-fail.d.ts +1 -1
  7. package/dist/esm/build-fail.d.ts.map +1 -1
  8. package/dist/esm/build-fail.js.map +1 -1
  9. package/dist/esm/build.d.ts.map +1 -1
  10. package/dist/esm/build.js +3 -2
  11. package/dist/esm/build.js.map +1 -1
  12. package/dist/esm/built-imports.d.ts +1 -1
  13. package/dist/esm/built-imports.d.ts.map +1 -1
  14. package/dist/esm/built-imports.js.map +1 -1
  15. package/dist/esm/config.d.ts +1 -1
  16. package/dist/esm/config.d.ts.map +1 -1
  17. package/dist/esm/config.js +3 -3
  18. package/dist/esm/config.js.map +1 -1
  19. package/dist/esm/console.d.ts.map +1 -1
  20. package/dist/esm/console.js +2 -0
  21. package/dist/esm/console.js.map +1 -1
  22. package/dist/esm/exports.d.ts +1 -1
  23. package/dist/esm/exports.d.ts.map +1 -1
  24. package/dist/esm/exports.js.map +1 -1
  25. package/dist/esm/package.d.ts +1 -1
  26. package/dist/esm/package.d.ts.map +1 -1
  27. package/dist/esm/package.js.map +1 -1
  28. package/dist/esm/read-typescript-config.d.ts +1 -1
  29. package/dist/esm/read-typescript-config.d.ts.map +1 -1
  30. package/dist/esm/read-typescript-config.js +1 -0
  31. package/dist/esm/read-typescript-config.js.map +1 -1
  32. package/dist/esm/resolve-export.d.ts +1 -1
  33. package/dist/esm/resolve-export.d.ts.map +1 -1
  34. package/dist/esm/resolve-export.js.map +1 -1
  35. package/dist/esm/self-link.d.ts +2 -1
  36. package/dist/esm/self-link.d.ts.map +1 -1
  37. package/dist/esm/self-link.js +1 -1
  38. package/dist/esm/self-link.js.map +1 -1
  39. package/dist/esm/set-folder-dialect.d.ts +1 -1
  40. package/dist/esm/set-folder-dialect.d.ts.map +1 -1
  41. package/dist/esm/set-folder-dialect.js.map +1 -1
  42. package/dist/esm/tsconfig.d.ts.map +1 -1
  43. package/dist/esm/tsconfig.js +2 -0
  44. package/dist/esm/tsconfig.js.map +1 -1
  45. package/dist/esm/types.d.ts +1 -1
  46. package/dist/esm/types.d.ts.map +1 -1
  47. package/dist/esm/types.js.map +1 -1
  48. package/dist/esm/unbuilt-imports.d.ts +1 -1
  49. package/dist/esm/unbuilt-imports.d.ts.map +1 -1
  50. package/dist/esm/unbuilt-imports.js.map +1 -1
  51. package/dist/esm/valid-dialects.d.ts +3 -3
  52. package/dist/esm/valid-dialects.d.ts.map +1 -1
  53. package/dist/esm/valid-dialects.js.map +1 -1
  54. package/dist/esm/valid-exclude.d.ts +1 -1
  55. package/dist/esm/valid-exclude.d.ts.map +1 -1
  56. package/dist/esm/valid-exclude.js.map +1 -1
  57. package/dist/esm/valid-exports.d.ts +1 -1
  58. package/dist/esm/valid-exports.d.ts.map +1 -1
  59. package/dist/esm/valid-exports.js +2 -1
  60. package/dist/esm/valid-exports.js.map +1 -1
  61. package/dist/esm/valid-external-export.d.ts +1 -1
  62. package/dist/esm/valid-external-export.d.ts.map +1 -1
  63. package/dist/esm/valid-external-export.js.map +1 -1
  64. package/dist/esm/valid-extra-dialects.d.ts +1 -1
  65. package/dist/esm/valid-extra-dialects.d.ts.map +1 -1
  66. package/dist/esm/valid-extra-dialects.js.map +1 -1
  67. package/dist/esm/valid-imports.d.ts +1 -1
  68. package/dist/esm/valid-imports.d.ts.map +1 -1
  69. package/dist/esm/valid-imports.js.map +1 -1
  70. package/dist/esm/valid-project.d.ts.map +1 -1
  71. package/dist/esm/valid-project.js.map +1 -1
  72. package/dist/esm/watch.d.ts +1 -1
  73. package/dist/esm/watch.d.ts.map +1 -1
  74. package/dist/esm/watch.js +1 -0
  75. package/dist/esm/watch.js.map +1 -1
  76. package/package.json +13 -11
@@ -1 +1 @@
1
- {"version":3,"file":"set-folder-dialect.js","sourceRoot":"","sources":["../../src/set-folder-dialect.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,EAAE,aAAa,EAAE,MAAM,IAAI,CAAA;AAClC,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAA;AACnC,OAAO,KAAK,OAAO,MAAM,cAAc,CAAA;AACvC,OAAO,UAAU,MAAM,oBAAoB,CAAA;AAC3C,OAAO,GAAG,MAAM,cAAc,CAAA;AAG9B,MAAM,cAAc,GAAG,CAAC,CAAS,EAAE,IAAc,EAAE,EAAE,CAAC;IACpD,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,OAAO,UAAU,CAAC,GAAG,CAAC,eAAe,CAAC,CAAA;IACxC,CAAC;IACD,MAAM,CAAC,GAAoD;QACzD,IAAI,EAAE,IAAI,KAAK,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,QAAQ;QACjD,OAAO,EAAE,UAAU,CAAC,GAAG,CAAC;KACzB,CAAA;IACD,aAAa,CAAC,GAAG,CAAC,eAAe,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,CAAA;AAAA,CACtE,CAAA;AAED,eAAe,CAAC,KAAa,EAAE,IAAc,EAAE,EAAE,CAAC;IAChD,IAAI,IAAI;QAAE,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAA;IACvE,cAAc,CAAC,KAAK,EAAE,IAAI,CAAC,CAAA;AAAA,CAC5B,CAAA","sourcesContent":["import chalk from 'chalk'\nimport { writeFileSync } from 'fs'\nimport { rimrafSync } from 'rimraf'\nimport * as console from './console.js'\nimport getImports from './built-imports.js'\nimport pkg from './package.js'\nimport { Dialect } from './types.js'\n\nconst writeDialectPJ = (d: string, mode?: Dialect) => {\n if (!mode) {\n return rimrafSync(`${d}/package.json`)\n }\n const v: { type: string; imports?: Record<string, any> } = {\n type: mode === 'commonjs' ? 'commonjs' : 'module',\n imports: getImports(pkg),\n }\n writeFileSync(`${d}/package.json`, JSON.stringify(v, null, 2) + '\\n')\n}\n\nexport default (where: string, mode?: Dialect) => {\n if (mode) console.debug(chalk.cyan.dim('set dialect'), { where, mode })\n writeDialectPJ(where, mode)\n}\n"]}
1
+ {"version":3,"file":"set-folder-dialect.js","sourceRoot":"","sources":["../../src/set-folder-dialect.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,EAAE,aAAa,EAAE,MAAM,IAAI,CAAA;AAClC,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAA;AACnC,OAAO,KAAK,OAAO,MAAM,cAAc,CAAA;AACvC,OAAO,UAAU,MAAM,oBAAoB,CAAA;AAC3C,OAAO,GAAG,MAAM,cAAc,CAAA;AAG9B,MAAM,cAAc,GAAG,CAAC,CAAS,EAAE,IAAc,EAAE,EAAE,CAAC;IACpD,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,OAAO,UAAU,CAAC,GAAG,CAAC,eAAe,CAAC,CAAA;IACxC,CAAC;IACD,MAAM,CAAC,GAAwD;QAC7D,IAAI,EAAE,IAAI,KAAK,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,QAAQ;QACjD,OAAO,EAAE,UAAU,CAAC,GAAG,CAAC;KACzB,CAAA;IACD,aAAa,CAAC,GAAG,CAAC,eAAe,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,CAAA;AAAA,CACtE,CAAA;AAED,eAAe,CAAC,KAAa,EAAE,IAAc,EAAE,EAAE,CAAC;IAChD,IAAI,IAAI;QAAE,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAA;IACvE,cAAc,CAAC,KAAK,EAAE,IAAI,CAAC,CAAA;AAAA,CAC5B,CAAA","sourcesContent":["import chalk from 'chalk'\nimport { writeFileSync } from 'fs'\nimport { rimrafSync } from 'rimraf'\nimport * as console from './console.js'\nimport getImports from './built-imports.js'\nimport pkg from './package.js'\nimport type { Dialect } from './types.js'\n\nconst writeDialectPJ = (d: string, mode?: Dialect) => {\n if (!mode) {\n return rimrafSync(`${d}/package.json`)\n }\n const v: { type: string; imports?: Record<string, unknown> } = {\n type: mode === 'commonjs' ? 'commonjs' : 'module',\n imports: getImports(pkg),\n }\n writeFileSync(`${d}/package.json`, JSON.stringify(v, null, 2) + '\\n')\n}\n\nexport default (where: string, mode?: Dialect) => {\n if (mode) console.debug(chalk.cyan.dim('set dialect'), { where, mode })\n writeDialectPJ(where, mode)\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"tsconfig.d.ts","sourceRoot":"","sources":["../../src/tsconfig.ts"],"names":[],"mappings":"","sourcesContent":["import chalk from 'chalk'\nimport { mkdirpSync } from 'mkdirp'\nimport {\n existsSync,\n readdirSync,\n unlinkSync,\n writeFileSync,\n} from 'node:fs'\nimport { resolve } from 'node:path'\nimport { join } from 'node:path/posix'\nimport * as console from './console.js'\n\n// the commonjs build needs to exclude anything that will be polyfilled\nimport config from './config.js'\nimport polyfills from './polyfills.js'\nimport preventVerbatimModuleSyntax from './prevent-verbatim-module-syntax.js'\nimport readTypescriptConfig from './read-typescript-config.js'\n\nconst {\n dialects = ['esm', 'commonjs'],\n esmDialects = [],\n commonjsDialects = [],\n exclude = [],\n} = config\n\nconst relativeExclude = exclude.map(e => `../${e.replace(/^\\.\\//, '')}`)\n\nconst recommended: Record<string, any> = {\n compilerOptions: {\n declaration: true,\n declarationMap: true,\n esModuleInterop: true,\n forceConsistentCasingInFileNames: true,\n inlineSources: true,\n jsx: 'react',\n module: 'nodenext',\n moduleResolution: 'nodenext',\n noUncheckedIndexedAccess: true,\n resolveJsonModule: true,\n skipLibCheck: true,\n sourceMap: true,\n strict: true,\n target: 'es2022',\n },\n}\n\nconst build = (): Record<string, any> => ({\n extends:\n config.project === undefined ?\n '../tsconfig.json'\n : join('..', config.project),\n compilerOptions: {\n target:\n readTypescriptConfig().compilerOptions.target === undefined ?\n 'es2022'\n : undefined,\n rootDir: '../src',\n module: 'nodenext',\n moduleResolution: 'nodenext',\n },\n})\n\nconst commonjs = (dialect: string): Record<string, any> => {\n const exclude = [\n ...relativeExclude,\n '../src/**/*.mts',\n '../src/package.json',\n ]\n for (const [d, pf] of polyfills) {\n if (d === dialect) continue\n for (const f of pf.map.keys()) {\n exclude.push(`../${join(f)}`)\n }\n }\n return {\n extends: './build.json',\n include: [\n '../src/**/*.ts',\n '../src/**/*.cts',\n '../src/**/*.tsx',\n '../src/**/*.json',\n ],\n exclude,\n compilerOptions: {\n outDir:\n '../.tshy-build/' + (dialect === 'cjs' ? 'commonjs' : dialect),\n },\n }\n}\n\nconst esm = (dialect: string): Record<string, any> => {\n const exclude: string[] = [...relativeExclude, '../src/package.json']\n for (const [d, pf] of polyfills) {\n if (d === dialect) continue\n for (const f of pf.map.keys()) {\n exclude.push(`../${f.replace(/^\\.\\//, '')}`)\n }\n }\n return {\n extends: './build.json',\n include: [\n '../src/**/*.ts',\n '../src/**/*.mts',\n '../src/**/*.tsx',\n '../src/**/*.json',\n ],\n exclude,\n compilerOptions: {\n outDir: '../.tshy-build/' + dialect,\n },\n }\n}\n\nmkdirpSync('.tshy')\nconst writeConfig = (name: string, data: Record<string, any>) =>\n writeFileSync(`.tshy/${name}.json`, JSON.stringify(data, null, 2) + '\\n')\n\nconsole.debug(chalk.cyan.dim('writing tsconfig files...'))\nif (config.project === undefined && !existsSync('tsconfig.json')) {\n console.debug('using recommended tsconfig.json')\n writeConfig('../tsconfig', recommended)\n} else {\n if (dialects.length > 1) preventVerbatimModuleSyntax()\n console.debug('using existing tsconfig.json')\n}\nfor (const f of readdirSync('.tshy')) {\n unlinkSync(resolve('.tshy', f))\n}\nwriteConfig('build', build())\nif (dialects.includes('commonjs')) {\n writeConfig('commonjs', commonjs('cjs'))\n for (const d of commonjsDialects) {\n writeConfig(d, commonjs(d))\n }\n}\nif (dialects.includes('esm')) {\n writeConfig('esm', esm('esm'))\n for (const d of esmDialects) {\n writeConfig(d, esm(d))\n }\n}\n"]}
1
+ {"version":3,"file":"tsconfig.d.ts","sourceRoot":"","sources":["../../src/tsconfig.ts"],"names":[],"mappings":"","sourcesContent":["import chalk from 'chalk'\nimport { mkdirpSync } from 'mkdirp'\nimport {\n existsSync,\n readdirSync,\n unlinkSync,\n writeFileSync,\n} from 'node:fs'\nimport { resolve } from 'node:path'\nimport { join } from 'node:path/posix'\nimport * as console from './console.js'\n\n// the commonjs build needs to exclude anything that will be polyfilled\nimport config from './config.js'\nimport polyfills from './polyfills.js'\nimport preventVerbatimModuleSyntax from './prevent-verbatim-module-syntax.js'\nimport readTypescriptConfig from './read-typescript-config.js'\n\nconst {\n dialects = ['esm', 'commonjs'],\n esmDialects = [],\n commonjsDialects = [],\n exclude = [],\n} = config\n\nconst relativeExclude = exclude.map(e => `../${e.replace(/^\\.\\//, '')}`)\n\nconst recommended: Record<string, unknown> = {\n compilerOptions: {\n types: ['node'],\n rootDir: './',\n declaration: true,\n declarationMap: true,\n esModuleInterop: true,\n forceConsistentCasingInFileNames: true,\n inlineSources: true,\n jsx: 'react',\n module: 'nodenext',\n moduleResolution: 'nodenext',\n noUncheckedIndexedAccess: true,\n resolveJsonModule: true,\n skipLibCheck: true,\n sourceMap: true,\n strict: true,\n target: 'es2022',\n },\n}\n\nconst build = (): Record<string, unknown> => ({\n extends:\n config.project === undefined ?\n '../tsconfig.json'\n : join('..', config.project),\n compilerOptions: {\n target:\n readTypescriptConfig().compilerOptions.target === undefined ?\n 'es2022'\n : undefined,\n rootDir: '../src',\n module: 'nodenext',\n moduleResolution: 'nodenext',\n },\n})\n\nconst commonjs = (dialect: string): Record<string, unknown> => {\n const exclude = [\n ...relativeExclude,\n '../src/**/*.mts',\n '../src/package.json',\n ]\n for (const [d, pf] of polyfills) {\n if (d === dialect) continue\n for (const f of pf.map.keys()) {\n exclude.push(`../${join(f)}`)\n }\n }\n return {\n extends: './build.json',\n include: [\n '../src/**/*.ts',\n '../src/**/*.cts',\n '../src/**/*.tsx',\n '../src/**/*.json',\n ],\n exclude,\n compilerOptions: {\n outDir:\n '../.tshy-build/' + (dialect === 'cjs' ? 'commonjs' : dialect),\n },\n }\n}\n\nconst esm = (dialect: string): Record<string, unknown> => {\n const exclude: string[] = [...relativeExclude, '../src/package.json']\n for (const [d, pf] of polyfills) {\n if (d === dialect) continue\n for (const f of pf.map.keys()) {\n exclude.push(`../${f.replace(/^\\.\\//, '')}`)\n }\n }\n return {\n extends: './build.json',\n include: [\n '../src/**/*.ts',\n '../src/**/*.mts',\n '../src/**/*.tsx',\n '../src/**/*.json',\n ],\n exclude,\n compilerOptions: {\n outDir: '../.tshy-build/' + dialect,\n },\n }\n}\n\nmkdirpSync('.tshy')\nconst writeConfig = (name: string, data: Record<string, unknown>) =>\n writeFileSync(`.tshy/${name}.json`, JSON.stringify(data, null, 2) + '\\n')\n\nconsole.debug(chalk.cyan.dim('writing tsconfig files...'))\nif (config.project === undefined && !existsSync('tsconfig.json')) {\n console.debug('using recommended tsconfig.json')\n writeConfig('../tsconfig', recommended)\n} else {\n if (dialects.length > 1) preventVerbatimModuleSyntax()\n console.debug('using existing tsconfig.json')\n}\nfor (const f of readdirSync('.tshy')) {\n unlinkSync(resolve('.tshy', f))\n}\nwriteConfig('build', build())\nif (dialects.includes('commonjs')) {\n writeConfig('commonjs', commonjs('cjs'))\n for (const d of commonjsDialects) {\n writeConfig(d, commonjs(d))\n }\n}\nif (dialects.includes('esm')) {\n writeConfig('esm', esm('esm'))\n for (const d of esmDialects) {\n writeConfig(d, esm(d))\n }\n}\n"]}
@@ -13,6 +13,8 @@ const { dialects = ['esm', 'commonjs'], esmDialects = [], commonjsDialects = [],
13
13
  const relativeExclude = exclude.map(e => `../${e.replace(/^\.\//, '')}`);
14
14
  const recommended = {
15
15
  compilerOptions: {
16
+ types: ['node'],
17
+ rootDir: './',
16
18
  declaration: true,
17
19
  declarationMap: true,
18
20
  esModuleInterop: true,
@@ -1 +1 @@
1
- {"version":3,"file":"tsconfig.js","sourceRoot":"","sources":["../../src/tsconfig.ts"],"names":[],"mappings":"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","sourcesContent":["import chalk from 'chalk'\nimport { mkdirpSync } from 'mkdirp'\nimport {\n existsSync,\n readdirSync,\n unlinkSync,\n writeFileSync,\n} from 'node:fs'\nimport { resolve } from 'node:path'\nimport { join } from 'node:path/posix'\nimport * as console from './console.js'\n\n// the commonjs build needs to exclude anything that will be polyfilled\nimport config from './config.js'\nimport polyfills from './polyfills.js'\nimport preventVerbatimModuleSyntax from './prevent-verbatim-module-syntax.js'\nimport readTypescriptConfig from './read-typescript-config.js'\n\nconst {\n dialects = ['esm', 'commonjs'],\n esmDialects = [],\n commonjsDialects = [],\n exclude = [],\n} = config\n\nconst relativeExclude = exclude.map(e => `../${e.replace(/^\\.\\//, '')}`)\n\nconst recommended: Record<string, any> = {\n compilerOptions: {\n declaration: true,\n declarationMap: true,\n esModuleInterop: true,\n forceConsistentCasingInFileNames: true,\n inlineSources: true,\n jsx: 'react',\n module: 'nodenext',\n moduleResolution: 'nodenext',\n noUncheckedIndexedAccess: true,\n resolveJsonModule: true,\n skipLibCheck: true,\n sourceMap: true,\n strict: true,\n target: 'es2022',\n },\n}\n\nconst build = (): Record<string, any> => ({\n extends:\n config.project === undefined ?\n '../tsconfig.json'\n : join('..', config.project),\n compilerOptions: {\n target:\n readTypescriptConfig().compilerOptions.target === undefined ?\n 'es2022'\n : undefined,\n rootDir: '../src',\n module: 'nodenext',\n moduleResolution: 'nodenext',\n },\n})\n\nconst commonjs = (dialect: string): Record<string, any> => {\n const exclude = [\n ...relativeExclude,\n '../src/**/*.mts',\n '../src/package.json',\n ]\n for (const [d, pf] of polyfills) {\n if (d === dialect) continue\n for (const f of pf.map.keys()) {\n exclude.push(`../${join(f)}`)\n }\n }\n return {\n extends: './build.json',\n include: [\n '../src/**/*.ts',\n '../src/**/*.cts',\n '../src/**/*.tsx',\n '../src/**/*.json',\n ],\n exclude,\n compilerOptions: {\n outDir:\n '../.tshy-build/' + (dialect === 'cjs' ? 'commonjs' : dialect),\n },\n }\n}\n\nconst esm = (dialect: string): Record<string, any> => {\n const exclude: string[] = [...relativeExclude, '../src/package.json']\n for (const [d, pf] of polyfills) {\n if (d === dialect) continue\n for (const f of pf.map.keys()) {\n exclude.push(`../${f.replace(/^\\.\\//, '')}`)\n }\n }\n return {\n extends: './build.json',\n include: [\n '../src/**/*.ts',\n '../src/**/*.mts',\n '../src/**/*.tsx',\n '../src/**/*.json',\n ],\n exclude,\n compilerOptions: {\n outDir: '../.tshy-build/' + dialect,\n },\n }\n}\n\nmkdirpSync('.tshy')\nconst writeConfig = (name: string, data: Record<string, any>) =>\n writeFileSync(`.tshy/${name}.json`, JSON.stringify(data, null, 2) + '\\n')\n\nconsole.debug(chalk.cyan.dim('writing tsconfig files...'))\nif (config.project === undefined && !existsSync('tsconfig.json')) {\n console.debug('using recommended tsconfig.json')\n writeConfig('../tsconfig', recommended)\n} else {\n if (dialects.length > 1) preventVerbatimModuleSyntax()\n console.debug('using existing tsconfig.json')\n}\nfor (const f of readdirSync('.tshy')) {\n unlinkSync(resolve('.tshy', f))\n}\nwriteConfig('build', build())\nif (dialects.includes('commonjs')) {\n writeConfig('commonjs', commonjs('cjs'))\n for (const d of commonjsDialects) {\n writeConfig(d, commonjs(d))\n }\n}\nif (dialects.includes('esm')) {\n writeConfig('esm', esm('esm'))\n for (const d of esmDialects) {\n writeConfig(d, esm(d))\n }\n}\n"]}
1
+ {"version":3,"file":"tsconfig.js","sourceRoot":"","sources":["../../src/tsconfig.ts"],"names":[],"mappings":"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","sourcesContent":["import chalk from 'chalk'\nimport { mkdirpSync } from 'mkdirp'\nimport {\n existsSync,\n readdirSync,\n unlinkSync,\n writeFileSync,\n} from 'node:fs'\nimport { resolve } from 'node:path'\nimport { join } from 'node:path/posix'\nimport * as console from './console.js'\n\n// the commonjs build needs to exclude anything that will be polyfilled\nimport config from './config.js'\nimport polyfills from './polyfills.js'\nimport preventVerbatimModuleSyntax from './prevent-verbatim-module-syntax.js'\nimport readTypescriptConfig from './read-typescript-config.js'\n\nconst {\n dialects = ['esm', 'commonjs'],\n esmDialects = [],\n commonjsDialects = [],\n exclude = [],\n} = config\n\nconst relativeExclude = exclude.map(e => `../${e.replace(/^\\.\\//, '')}`)\n\nconst recommended: Record<string, unknown> = {\n compilerOptions: {\n types: ['node'],\n rootDir: './',\n declaration: true,\n declarationMap: true,\n esModuleInterop: true,\n forceConsistentCasingInFileNames: true,\n inlineSources: true,\n jsx: 'react',\n module: 'nodenext',\n moduleResolution: 'nodenext',\n noUncheckedIndexedAccess: true,\n resolveJsonModule: true,\n skipLibCheck: true,\n sourceMap: true,\n strict: true,\n target: 'es2022',\n },\n}\n\nconst build = (): Record<string, unknown> => ({\n extends:\n config.project === undefined ?\n '../tsconfig.json'\n : join('..', config.project),\n compilerOptions: {\n target:\n readTypescriptConfig().compilerOptions.target === undefined ?\n 'es2022'\n : undefined,\n rootDir: '../src',\n module: 'nodenext',\n moduleResolution: 'nodenext',\n },\n})\n\nconst commonjs = (dialect: string): Record<string, unknown> => {\n const exclude = [\n ...relativeExclude,\n '../src/**/*.mts',\n '../src/package.json',\n ]\n for (const [d, pf] of polyfills) {\n if (d === dialect) continue\n for (const f of pf.map.keys()) {\n exclude.push(`../${join(f)}`)\n }\n }\n return {\n extends: './build.json',\n include: [\n '../src/**/*.ts',\n '../src/**/*.cts',\n '../src/**/*.tsx',\n '../src/**/*.json',\n ],\n exclude,\n compilerOptions: {\n outDir:\n '../.tshy-build/' + (dialect === 'cjs' ? 'commonjs' : dialect),\n },\n }\n}\n\nconst esm = (dialect: string): Record<string, unknown> => {\n const exclude: string[] = [...relativeExclude, '../src/package.json']\n for (const [d, pf] of polyfills) {\n if (d === dialect) continue\n for (const f of pf.map.keys()) {\n exclude.push(`../${f.replace(/^\\.\\//, '')}`)\n }\n }\n return {\n extends: './build.json',\n include: [\n '../src/**/*.ts',\n '../src/**/*.mts',\n '../src/**/*.tsx',\n '../src/**/*.json',\n ],\n exclude,\n compilerOptions: {\n outDir: '../.tshy-build/' + dialect,\n },\n }\n}\n\nmkdirpSync('.tshy')\nconst writeConfig = (name: string, data: Record<string, unknown>) =>\n writeFileSync(`.tshy/${name}.json`, JSON.stringify(data, null, 2) + '\\n')\n\nconsole.debug(chalk.cyan.dim('writing tsconfig files...'))\nif (config.project === undefined && !existsSync('tsconfig.json')) {\n console.debug('using recommended tsconfig.json')\n writeConfig('../tsconfig', recommended)\n} else {\n if (dialects.length > 1) preventVerbatimModuleSyntax()\n console.debug('using existing tsconfig.json')\n}\nfor (const f of readdirSync('.tshy')) {\n unlinkSync(resolve('.tshy', f))\n}\nwriteConfig('build', build())\nif (dialects.includes('commonjs')) {\n writeConfig('commonjs', commonjs('cjs'))\n for (const d of commonjsDialects) {\n writeConfig(d, commonjs(d))\n }\n}\nif (dialects.includes('esm')) {\n writeConfig('esm', esm('esm'))\n for (const d of esmDialects) {\n writeConfig(d, esm(d))\n }\n}\n"]}
@@ -32,6 +32,6 @@ export type Package = {
32
32
  exports?: ExportsSubpaths;
33
33
  tshy?: TshyConfigMaybeGlobExports;
34
34
  imports?: Imports;
35
- [k: string]: any;
35
+ [k: string]: unknown;
36
36
  };
37
37
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,gBAAgB,EAChB,eAAe,EACf,OAAO,EACR,MAAM,gBAAgB,CAAA;AAEvB,MAAM,MAAM,0BAA0B,GAAG;IACvC,QAAQ,CAAC,EAAE,KAAK,GAAG,MAAM,CAAA;IACzB,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAA;IACxD,QAAQ,CAAC,EAAE,OAAO,EAAE,CAAA;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAA;IAC3B,WAAW,CAAC,EAAE,MAAM,EAAE,CAAA;IACtB,cAAc,CAAC,EAAE,MAAM,EAAE,CAAA;IACzB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAA;IAClB,OAAO,CAAC,EAAE,OAAO,CAAA;CAClB,CAAA;AAED,MAAM,MAAM,UAAU,GAAG,0BAA0B,GAAG;IACpD,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAA;CACrC,CAAA;AAED,MAAM,MAAM,OAAO,GAAG,UAAU,GAAG,KAAK,CAAA;AAExC,MAAM,MAAM,YAAY,GAAG;IACzB,OAAO,EAAE,MAAM,CAAA;IACf,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;CACpB,CAAA;AAED,MAAM,MAAM,UAAU,GAAG,gBAAgB,CAAA;AAEzC,MAAM,MAAM,OAAO,GAAG;IACpB,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,MAAM,CAAA;IACf,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,IAAI,CAAC,EAAE,QAAQ,GAAG,UAAU,CAAA;IAC5B,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IACrC,OAAO,CAAC,EAAE,eAAe,CAAA;IACzB,IAAI,CAAC,EAAE,0BAA0B,CAAA;IACjC,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,CAAC,CAAC,EAAE,MAAM,GAAG,GAAG,CAAA;CACjB,CAAA","sourcesContent":["import type {\n ConditionalValue,\n ExportsSubpaths,\n Imports,\n} from 'resolve-import'\n\nexport type TshyConfigMaybeGlobExports = {\n compiler?: 'tsc' | 'tsgo'\n exports?: string | string[] | Record<string, TshyExport>\n dialects?: Dialect[]\n selfLink?: boolean\n main?: boolean\n module?: boolean\n commonjsDialects?: string[]\n esmDialects?: string[]\n sourceDialects?: string[]\n project?: string\n exclude?: string[]\n liveDev?: boolean\n}\n\nexport type TshyConfig = TshyConfigMaybeGlobExports & {\n exports?: Record<string, TshyExport>\n}\n\nexport type Dialect = 'commonjs' | 'esm'\n\nexport type ExportDetail = {\n default: string\n [k: string]: string\n}\n\nexport type TshyExport = ConditionalValue\n\nexport type Package = {\n name: string\n version: string\n main?: string\n types?: string\n type?: 'module' | 'commonjs'\n bin?: string | Record<string, string>\n exports?: ExportsSubpaths\n tshy?: TshyConfigMaybeGlobExports\n imports?: Imports\n [k: string]: any\n}\n"]}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,gBAAgB,EAChB,eAAe,EACf,OAAO,EACR,MAAM,gBAAgB,CAAA;AAEvB,MAAM,MAAM,0BAA0B,GAAG;IACvC,QAAQ,CAAC,EAAE,KAAK,GAAG,MAAM,CAAA;IACzB,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAA;IACxD,QAAQ,CAAC,EAAE,OAAO,EAAE,CAAA;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAA;IAC3B,WAAW,CAAC,EAAE,MAAM,EAAE,CAAA;IACtB,cAAc,CAAC,EAAE,MAAM,EAAE,CAAA;IACzB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAA;IAClB,OAAO,CAAC,EAAE,OAAO,CAAA;CAClB,CAAA;AAED,MAAM,MAAM,UAAU,GAAG,0BAA0B,GAAG;IACpD,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAA;CACrC,CAAA;AAED,MAAM,MAAM,OAAO,GAAG,UAAU,GAAG,KAAK,CAAA;AAExC,MAAM,MAAM,YAAY,GAAG;IACzB,OAAO,EAAE,MAAM,CAAA;IACf,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;CACpB,CAAA;AAED,MAAM,MAAM,UAAU,GAAG,gBAAgB,CAAA;AAEzC,MAAM,MAAM,OAAO,GAAG;IACpB,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,MAAM,CAAA;IACf,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,IAAI,CAAC,EAAE,QAAQ,GAAG,UAAU,CAAA;IAC5B,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IACrC,OAAO,CAAC,EAAE,eAAe,CAAA;IACzB,IAAI,CAAC,EAAE,0BAA0B,CAAA;IACjC,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAA;CACrB,CAAA","sourcesContent":["import type {\n ConditionalValue,\n ExportsSubpaths,\n Imports,\n} from 'resolve-import'\n\nexport type TshyConfigMaybeGlobExports = {\n compiler?: 'tsc' | 'tsgo'\n exports?: string | string[] | Record<string, TshyExport>\n dialects?: Dialect[]\n selfLink?: boolean\n main?: boolean\n module?: boolean\n commonjsDialects?: string[]\n esmDialects?: string[]\n sourceDialects?: string[]\n project?: string\n exclude?: string[]\n liveDev?: boolean\n}\n\nexport type TshyConfig = TshyConfigMaybeGlobExports & {\n exports?: Record<string, TshyExport>\n}\n\nexport type Dialect = 'commonjs' | 'esm'\n\nexport type ExportDetail = {\n default: string\n [k: string]: string\n}\n\nexport type TshyExport = ConditionalValue\n\nexport type Package = {\n name: string\n version: string\n main?: string\n types?: string\n type?: 'module' | 'commonjs'\n bin?: string | Record<string, string>\n exports?: ExportsSubpaths\n tshy?: TshyConfigMaybeGlobExports\n imports?: Imports\n [k: string]: unknown\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"","sourcesContent":["import type {\n ConditionalValue,\n ExportsSubpaths,\n Imports,\n} from 'resolve-import'\n\nexport type TshyConfigMaybeGlobExports = {\n compiler?: 'tsc' | 'tsgo'\n exports?: string | string[] | Record<string, TshyExport>\n dialects?: Dialect[]\n selfLink?: boolean\n main?: boolean\n module?: boolean\n commonjsDialects?: string[]\n esmDialects?: string[]\n sourceDialects?: string[]\n project?: string\n exclude?: string[]\n liveDev?: boolean\n}\n\nexport type TshyConfig = TshyConfigMaybeGlobExports & {\n exports?: Record<string, TshyExport>\n}\n\nexport type Dialect = 'commonjs' | 'esm'\n\nexport type ExportDetail = {\n default: string\n [k: string]: string\n}\n\nexport type TshyExport = ConditionalValue\n\nexport type Package = {\n name: string\n version: string\n main?: string\n types?: string\n type?: 'module' | 'commonjs'\n bin?: string | Record<string, string>\n exports?: ExportsSubpaths\n tshy?: TshyConfigMaybeGlobExports\n imports?: Imports\n [k: string]: any\n}\n"]}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"","sourcesContent":["import type {\n ConditionalValue,\n ExportsSubpaths,\n Imports,\n} from 'resolve-import'\n\nexport type TshyConfigMaybeGlobExports = {\n compiler?: 'tsc' | 'tsgo'\n exports?: string | string[] | Record<string, TshyExport>\n dialects?: Dialect[]\n selfLink?: boolean\n main?: boolean\n module?: boolean\n commonjsDialects?: string[]\n esmDialects?: string[]\n sourceDialects?: string[]\n project?: string\n exclude?: string[]\n liveDev?: boolean\n}\n\nexport type TshyConfig = TshyConfigMaybeGlobExports & {\n exports?: Record<string, TshyExport>\n}\n\nexport type Dialect = 'commonjs' | 'esm'\n\nexport type ExportDetail = {\n default: string\n [k: string]: string\n}\n\nexport type TshyExport = ConditionalValue\n\nexport type Package = {\n name: string\n version: string\n main?: string\n types?: string\n type?: 'module' | 'commonjs'\n bin?: string | Record<string, string>\n exports?: ExportsSubpaths\n tshy?: TshyConfigMaybeGlobExports\n imports?: Imports\n [k: string]: unknown\n}\n"]}
@@ -1,4 +1,4 @@
1
- import { Package } from './types.js';
1
+ import type { Package } from './types.js';
2
2
  export declare const save: (f: string) => boolean;
3
3
  export declare const link: (pkg: Package, dir: string, save?: boolean) => Promise<void>;
4
4
  export declare const unlink: (pkg: Package, dir: string) => Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"unbuilt-imports.d.ts","sourceRoot":"","sources":["../../src/unbuilt-imports.ts"],"names":[],"mappings":"AAYA,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAA;AAKpC,eAAO,MAAM,IAAI,wBAkBhB,CAAA;AAwCD,eAAO,MAAM,IAAI,8DAiChB,CAAA;AAGD,eAAO,MAAM,MAAM,8CAelB,CAAA","sourcesContent":["// this is the thing that supports top-level package.json imports\n// via symlinks, not the tshy.imports which are just config.\nimport { writeFileSync } from 'fs'\nimport { symlink } from 'fs/promises'\nimport { mkdirp } from 'mkdirp'\nimport { dirname, relative, resolve, sep } from 'path'\nimport { getAllConditionalValues } from 'resolve-import/get-all-conditional-values'\nimport { getUniqueConditionSets } from 'resolve-import/get-unique-condition-sets'\nimport { resolveAllLocalImports } from 'resolve-import/resolve-all-local-imports'\nimport { rimraf } from 'rimraf'\nimport { fileURLToPath } from 'url'\nimport * as console from './console.js'\nimport { Package } from './types.js'\n\nconst dirsMade = new Set<string>()\n\n// write out the steps to the save file script\nexport const save = (f: string): boolean => {\n const links = [...saveSet.entries()]\n if (!links.length) return false\n const dirs = new Set<string>(links.map(([dest]) => dirname(dest)))\n console.debug('save import linker', f)\n writeFileSync(\n f,\n `import { mkdirSync } from 'node:fs'\nimport { symlink } from 'node:fs/promises'\nconst dirs = ${JSON.stringify([...dirs])}\nconst links = [\n${links.map(l => ` ${JSON.stringify(l)},\\n`).join('')}]\nconst e = (er) => { if (er.code !== 'EEXIST') throw er }\nfor (const d of dirs) mkdirSync(d, { recursive: true })\nPromise.all(links.map(([dest, src]) => symlink(src, dest).catch(e)))\n`,\n )\n return true\n}\n\nlet targets: undefined | string[] = undefined\n// Get the targets that will have to be linked, because they're not\n// a target in ./src\nconst getTargets = async (imports: Record<string, any>) => {\n const conds = getAllConditionalValues(imports).filter(\n c => !c.startsWith('./src/'),\n )\n if (!conds.some(c => c.includes('*'))) {\n // fast path\n return (targets = conds.filter(c => c.startsWith('./')))\n }\n const sets = getUniqueConditionSets(imports)\n const t = new Set<string>()\n const pj = resolve('package.json')\n for (const conditions of sets) {\n const imps = await resolveAllLocalImports(pj, { conditions })\n for (const url of Object.values(imps)) {\n // node builtin\n if (typeof url === 'string') continue\n const p = fileURLToPath(url)\n const rel = relative(process.cwd(), p)\n // if it's empty, a dep in node_modules, or a built module, skip\n if (\n !rel ||\n rel.startsWith('..' + sep) ||\n rel.startsWith('src' + sep) ||\n rel.startsWith('node_modules' + sep)\n )\n continue\n t.add('./' + rel.replace(/\\\\/g, '/'))\n }\n }\n return (targets = [...t])\n}\n\nconst saveSet = new Map<string, string>()\n\n// create symlinks for the package imports in the target dir\nexport const link = async (pkg: Package, dir: string, save = false) => {\n const { imports } = pkg\n if (!imports) return\n if (!targets) targets = await getTargets(imports)\n if (!targets.length) return\n console.debug(`link import targets in ${dir}`, targets)\n const rel = relative(resolve(dir), process.cwd())\n const lps: Promise<any>[] = []\n for (const t of targets) {\n const l = t.replace(/^\\.\\//, '')\n const df = dirname(l)\n const dfrel =\n df === '.' ? '' : (\n df\n .split('/')\n .map(() => '../')\n .join('')\n )\n const dest = dir + '/' + l\n const src = rel + '/' + dfrel + l\n if (save) saveSet.set(dest, src)\n lps.push(\n mkdirp(dirname(dest))\n .then(d => {\n // if we aren't saving, then this is a transient link\n // save the dirs created so that we can clean them up\n if (!save && d) dirsMade.add(d)\n return rimraf(dest)\n })\n .then(() => symlink(src, dest)),\n )\n }\n await Promise.all(lps)\n}\n\n// remove symlinks created for package imports in the target dir\nexport const unlink = async (pkg: Package, dir: string) => {\n const { imports } = pkg\n if (!imports) return\n // will always have targets by this point\n /* c8 ignore start */\n if (!targets) targets = await getTargets(imports)\n /* c8 ignore stop */\n console.debug(`unlink import targets in ${dir}`, targets)\n const lps: Promise<any>[] = []\n for (const t of targets) {\n const dest = resolve(dir, t)\n lps.push(rimraf(dest))\n }\n for (const d of dirsMade) lps.push(rimraf(d))\n await Promise.all(lps)\n}\n"]}
1
+ {"version":3,"file":"unbuilt-imports.d.ts","sourceRoot":"","sources":["../../src/unbuilt-imports.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAA;AAMzC,eAAO,MAAM,IAAI,wBAkBhB,CAAA;AAwCD,eAAO,MAAM,IAAI,8DAiChB,CAAA;AAGD,eAAO,MAAM,MAAM,8CAelB,CAAA","sourcesContent":["// this is the thing that supports top-level package.json imports\n// via symlinks, not the tshy.imports which are just config.\nimport { writeFileSync } from 'fs'\nimport { symlink } from 'fs/promises'\nimport { mkdirp } from 'mkdirp'\nimport { dirname, relative, resolve, sep } from 'path'\nimport { getAllConditionalValues } from 'resolve-import/get-all-conditional-values'\nimport { getUniqueConditionSets } from 'resolve-import/get-unique-condition-sets'\nimport { resolveAllLocalImports } from 'resolve-import/resolve-all-local-imports'\nimport { rimraf } from 'rimraf'\nimport { fileURLToPath } from 'url'\nimport * as console from './console.js'\nimport type { Package } from './types.js'\nimport type { Exports, Imports } from 'resolve-import'\n\nconst dirsMade = new Set<string>()\n\n// write out the steps to the save file script\nexport const save = (f: string): boolean => {\n const links = [...saveSet.entries()]\n if (!links.length) return false\n const dirs = new Set<string>(links.map(([dest]) => dirname(dest)))\n console.debug('save import linker', f)\n writeFileSync(\n f,\n `import { mkdirSync } from 'node:fs'\nimport { symlink } from 'node:fs/promises'\nconst dirs = ${JSON.stringify([...dirs])}\nconst links = [\n${links.map(l => ` ${JSON.stringify(l)},\\n`).join('')}]\nconst e = (er) => { if (er.code !== 'EEXIST') throw er }\nfor (const d of dirs) mkdirSync(d, { recursive: true })\nPromise.all(links.map(([dest, src]) => symlink(src, dest).catch(e)))\n`,\n )\n return true\n}\n\nlet targets: undefined | string[] = undefined\n// Get the targets that will have to be linked, because they're not\n// a target in ./src\nconst getTargets = async (imports: Record<string, unknown>) => {\n const conds = getAllConditionalValues(\n imports as Imports | Exports,\n ).filter(c => !c.startsWith('./src/'))\n if (!conds.some(c => c.includes('*'))) {\n // fast path\n return (targets = conds.filter(c => c.startsWith('./')))\n }\n const sets = getUniqueConditionSets(imports as Imports | Exports)\n const t = new Set<string>()\n const pj = resolve('package.json')\n for (const conditions of sets) {\n const imps = await resolveAllLocalImports(pj, { conditions })\n for (const url of Object.values(imps)) {\n // node builtin\n if (typeof url === 'string') continue\n const p = fileURLToPath(url)\n const rel = relative(process.cwd(), p)\n // if it's empty, a dep in node_modules, or a built module, skip\n if (\n !rel ||\n rel.startsWith('..' + sep) ||\n rel.startsWith('src' + sep) ||\n rel.startsWith('node_modules' + sep)\n )\n continue\n t.add('./' + rel.replace(/\\\\/g, '/'))\n }\n }\n return (targets = [...t])\n}\n\nconst saveSet = new Map<string, string>()\n\n// create symlinks for the package imports in the target dir\nexport const link = async (pkg: Package, dir: string, save = false) => {\n const { imports } = pkg\n if (!imports) return\n if (!targets) targets = await getTargets(imports)\n if (!targets.length) return\n console.debug(`link import targets in ${dir}`, targets)\n const rel = relative(resolve(dir), process.cwd())\n const lps: Promise<unknown>[] = []\n for (const t of targets) {\n const l = t.replace(/^\\.\\//, '')\n const df = dirname(l)\n const dfrel =\n df === '.' ? '' : (\n df\n .split('/')\n .map(() => '../')\n .join('')\n )\n const dest = dir + '/' + l\n const src = rel + '/' + dfrel + l\n if (save) saveSet.set(dest, src)\n lps.push(\n mkdirp(dirname(dest))\n .then(d => {\n // if we aren't saving, then this is a transient link\n // save the dirs created so that we can clean them up\n if (!save && d) dirsMade.add(d)\n return rimraf(dest)\n })\n .then(() => symlink(src, dest)),\n )\n }\n await Promise.all(lps)\n}\n\n// remove symlinks created for package imports in the target dir\nexport const unlink = async (pkg: Package, dir: string) => {\n const { imports } = pkg\n if (!imports) return\n // will always have targets by this point\n /* c8 ignore start */\n if (!targets) targets = await getTargets(imports)\n /* c8 ignore stop */\n console.debug(`unlink import targets in ${dir}`, targets)\n const lps: Promise<unknown>[] = []\n for (const t of targets) {\n const dest = resolve(dir, t)\n lps.push(rimraf(dest))\n }\n for (const d of dirsMade) lps.push(rimraf(d))\n await Promise.all(lps)\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"unbuilt-imports.js","sourceRoot":"","sources":["../../src/unbuilt-imports.ts"],"names":[],"mappings":"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","sourcesContent":["// this is the thing that supports top-level package.json imports\n// via symlinks, not the tshy.imports which are just config.\nimport { writeFileSync } from 'fs'\nimport { symlink } from 'fs/promises'\nimport { mkdirp } from 'mkdirp'\nimport { dirname, relative, resolve, sep } from 'path'\nimport { getAllConditionalValues } from 'resolve-import/get-all-conditional-values'\nimport { getUniqueConditionSets } from 'resolve-import/get-unique-condition-sets'\nimport { resolveAllLocalImports } from 'resolve-import/resolve-all-local-imports'\nimport { rimraf } from 'rimraf'\nimport { fileURLToPath } from 'url'\nimport * as console from './console.js'\nimport { Package } from './types.js'\n\nconst dirsMade = new Set<string>()\n\n// write out the steps to the save file script\nexport const save = (f: string): boolean => {\n const links = [...saveSet.entries()]\n if (!links.length) return false\n const dirs = new Set<string>(links.map(([dest]) => dirname(dest)))\n console.debug('save import linker', f)\n writeFileSync(\n f,\n `import { mkdirSync } from 'node:fs'\nimport { symlink } from 'node:fs/promises'\nconst dirs = ${JSON.stringify([...dirs])}\nconst links = [\n${links.map(l => ` ${JSON.stringify(l)},\\n`).join('')}]\nconst e = (er) => { if (er.code !== 'EEXIST') throw er }\nfor (const d of dirs) mkdirSync(d, { recursive: true })\nPromise.all(links.map(([dest, src]) => symlink(src, dest).catch(e)))\n`,\n )\n return true\n}\n\nlet targets: undefined | string[] = undefined\n// Get the targets that will have to be linked, because they're not\n// a target in ./src\nconst getTargets = async (imports: Record<string, any>) => {\n const conds = getAllConditionalValues(imports).filter(\n c => !c.startsWith('./src/'),\n )\n if (!conds.some(c => c.includes('*'))) {\n // fast path\n return (targets = conds.filter(c => c.startsWith('./')))\n }\n const sets = getUniqueConditionSets(imports)\n const t = new Set<string>()\n const pj = resolve('package.json')\n for (const conditions of sets) {\n const imps = await resolveAllLocalImports(pj, { conditions })\n for (const url of Object.values(imps)) {\n // node builtin\n if (typeof url === 'string') continue\n const p = fileURLToPath(url)\n const rel = relative(process.cwd(), p)\n // if it's empty, a dep in node_modules, or a built module, skip\n if (\n !rel ||\n rel.startsWith('..' + sep) ||\n rel.startsWith('src' + sep) ||\n rel.startsWith('node_modules' + sep)\n )\n continue\n t.add('./' + rel.replace(/\\\\/g, '/'))\n }\n }\n return (targets = [...t])\n}\n\nconst saveSet = new Map<string, string>()\n\n// create symlinks for the package imports in the target dir\nexport const link = async (pkg: Package, dir: string, save = false) => {\n const { imports } = pkg\n if (!imports) return\n if (!targets) targets = await getTargets(imports)\n if (!targets.length) return\n console.debug(`link import targets in ${dir}`, targets)\n const rel = relative(resolve(dir), process.cwd())\n const lps: Promise<any>[] = []\n for (const t of targets) {\n const l = t.replace(/^\\.\\//, '')\n const df = dirname(l)\n const dfrel =\n df === '.' ? '' : (\n df\n .split('/')\n .map(() => '../')\n .join('')\n )\n const dest = dir + '/' + l\n const src = rel + '/' + dfrel + l\n if (save) saveSet.set(dest, src)\n lps.push(\n mkdirp(dirname(dest))\n .then(d => {\n // if we aren't saving, then this is a transient link\n // save the dirs created so that we can clean them up\n if (!save && d) dirsMade.add(d)\n return rimraf(dest)\n })\n .then(() => symlink(src, dest)),\n )\n }\n await Promise.all(lps)\n}\n\n// remove symlinks created for package imports in the target dir\nexport const unlink = async (pkg: Package, dir: string) => {\n const { imports } = pkg\n if (!imports) return\n // will always have targets by this point\n /* c8 ignore start */\n if (!targets) targets = await getTargets(imports)\n /* c8 ignore stop */\n console.debug(`unlink import targets in ${dir}`, targets)\n const lps: Promise<any>[] = []\n for (const t of targets) {\n const dest = resolve(dir, t)\n lps.push(rimraf(dest))\n }\n for (const d of dirsMade) lps.push(rimraf(d))\n await Promise.all(lps)\n}\n"]}
1
+ {"version":3,"file":"unbuilt-imports.js","sourceRoot":"","sources":["../../src/unbuilt-imports.ts"],"names":[],"mappings":"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","sourcesContent":["// this is the thing that supports top-level package.json imports\n// via symlinks, not the tshy.imports which are just config.\nimport { writeFileSync } from 'fs'\nimport { symlink } from 'fs/promises'\nimport { mkdirp } from 'mkdirp'\nimport { dirname, relative, resolve, sep } from 'path'\nimport { getAllConditionalValues } from 'resolve-import/get-all-conditional-values'\nimport { getUniqueConditionSets } from 'resolve-import/get-unique-condition-sets'\nimport { resolveAllLocalImports } from 'resolve-import/resolve-all-local-imports'\nimport { rimraf } from 'rimraf'\nimport { fileURLToPath } from 'url'\nimport * as console from './console.js'\nimport type { Package } from './types.js'\nimport type { Exports, Imports } from 'resolve-import'\n\nconst dirsMade = new Set<string>()\n\n// write out the steps to the save file script\nexport const save = (f: string): boolean => {\n const links = [...saveSet.entries()]\n if (!links.length) return false\n const dirs = new Set<string>(links.map(([dest]) => dirname(dest)))\n console.debug('save import linker', f)\n writeFileSync(\n f,\n `import { mkdirSync } from 'node:fs'\nimport { symlink } from 'node:fs/promises'\nconst dirs = ${JSON.stringify([...dirs])}\nconst links = [\n${links.map(l => ` ${JSON.stringify(l)},\\n`).join('')}]\nconst e = (er) => { if (er.code !== 'EEXIST') throw er }\nfor (const d of dirs) mkdirSync(d, { recursive: true })\nPromise.all(links.map(([dest, src]) => symlink(src, dest).catch(e)))\n`,\n )\n return true\n}\n\nlet targets: undefined | string[] = undefined\n// Get the targets that will have to be linked, because they're not\n// a target in ./src\nconst getTargets = async (imports: Record<string, unknown>) => {\n const conds = getAllConditionalValues(\n imports as Imports | Exports,\n ).filter(c => !c.startsWith('./src/'))\n if (!conds.some(c => c.includes('*'))) {\n // fast path\n return (targets = conds.filter(c => c.startsWith('./')))\n }\n const sets = getUniqueConditionSets(imports as Imports | Exports)\n const t = new Set<string>()\n const pj = resolve('package.json')\n for (const conditions of sets) {\n const imps = await resolveAllLocalImports(pj, { conditions })\n for (const url of Object.values(imps)) {\n // node builtin\n if (typeof url === 'string') continue\n const p = fileURLToPath(url)\n const rel = relative(process.cwd(), p)\n // if it's empty, a dep in node_modules, or a built module, skip\n if (\n !rel ||\n rel.startsWith('..' + sep) ||\n rel.startsWith('src' + sep) ||\n rel.startsWith('node_modules' + sep)\n )\n continue\n t.add('./' + rel.replace(/\\\\/g, '/'))\n }\n }\n return (targets = [...t])\n}\n\nconst saveSet = new Map<string, string>()\n\n// create symlinks for the package imports in the target dir\nexport const link = async (pkg: Package, dir: string, save = false) => {\n const { imports } = pkg\n if (!imports) return\n if (!targets) targets = await getTargets(imports)\n if (!targets.length) return\n console.debug(`link import targets in ${dir}`, targets)\n const rel = relative(resolve(dir), process.cwd())\n const lps: Promise<unknown>[] = []\n for (const t of targets) {\n const l = t.replace(/^\\.\\//, '')\n const df = dirname(l)\n const dfrel =\n df === '.' ? '' : (\n df\n .split('/')\n .map(() => '../')\n .join('')\n )\n const dest = dir + '/' + l\n const src = rel + '/' + dfrel + l\n if (save) saveSet.set(dest, src)\n lps.push(\n mkdirp(dirname(dest))\n .then(d => {\n // if we aren't saving, then this is a transient link\n // save the dirs created so that we can clean them up\n if (!save && d) dirsMade.add(d)\n return rimraf(dest)\n })\n .then(() => symlink(src, dest)),\n )\n }\n await Promise.all(lps)\n}\n\n// remove symlinks created for package imports in the target dir\nexport const unlink = async (pkg: Package, dir: string) => {\n const { imports } = pkg\n if (!imports) return\n // will always have targets by this point\n /* c8 ignore start */\n if (!targets) targets = await getTargets(imports)\n /* c8 ignore stop */\n console.debug(`unlink import targets in ${dir}`, targets)\n const lps: Promise<unknown>[] = []\n for (const t of targets) {\n const dest = resolve(dir, t)\n lps.push(rimraf(dest))\n }\n for (const d of dirsMade) lps.push(rimraf(d))\n await Promise.all(lps)\n}\n"]}
@@ -1,5 +1,5 @@
1
- import { Dialect } from './types.js';
2
- export declare const isDialect: (d: any) => d is Dialect;
3
- declare const _default: (d: any) => d is Dialect[];
1
+ import type { Dialect } from './types.js';
2
+ export declare const isDialect: (d: unknown) => d is Dialect;
3
+ declare const _default: (d: unknown) => d is Dialect[];
4
4
  export default _default;
5
5
  //# sourceMappingURL=valid-dialects.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"valid-dialects.d.ts","sourceRoot":"","sources":["../../src/valid-dialects.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAc,MAAM,YAAY,CAAA;AAEhD,eAAO,MAAM,SAAS,0BACW,CAAA;;AAEjC,wBAYC","sourcesContent":["import fail from './fail.js'\nimport { Dialect, TshyConfig } from './types.js'\n\nexport const isDialect = (d: any): d is Dialect =>\n d === 'commonjs' || d === 'esm'\n\nexport default (\n d: any,\n): d is Exclude<TshyConfig['dialects'], undefined> => {\n if (!!d && Array.isArray(d) && d.length && !d.some(d => !isDialect(d))) {\n return true\n }\n\n fail(\n `tshy.dialects must be an array including \"esm\" and/or \"commonjs\", ` +\n `got: ${JSON.stringify(d)}`,\n )\n return process.exit(1)\n}\n"]}
1
+ {"version":3,"file":"valid-dialects.d.ts","sourceRoot":"","sources":["../../src/valid-dialects.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAc,MAAM,YAAY,CAAA;AAErD,eAAO,MAAM,SAAS,8BACW,CAAA;;AAEjC,wBAYC","sourcesContent":["import fail from './fail.js'\nimport type { Dialect, TshyConfig } from './types.js'\n\nexport const isDialect = (d: unknown): d is Dialect =>\n d === 'commonjs' || d === 'esm'\n\nexport default (\n d: unknown,\n): d is Exclude<TshyConfig['dialects'], undefined> => {\n if (!!d && Array.isArray(d) && d.length && !d.some(d => !isDialect(d))) {\n return true\n }\n\n fail(\n `tshy.dialects must be an array including \"esm\" and/or \"commonjs\", ` +\n `got: ${JSON.stringify(d)}`,\n )\n return process.exit(1)\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"valid-dialects.js","sourceRoot":"","sources":["../../src/valid-dialects.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAA;AAG5B,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,CAAM,EAAgB,EAAE,CAChD,CAAC,KAAK,UAAU,IAAI,CAAC,KAAK,KAAK,CAAA;AAEjC,eAAe,CACb,CAAM,EAC2C,EAAE,CAAC;IACpD,IAAI,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACvE,OAAO,IAAI,CAAA;IACb,CAAC;IAED,IAAI,CACF,oEAAoE;QAClE,QAAQ,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAC9B,CAAA;IACD,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;AAAA,CACvB,CAAA","sourcesContent":["import fail from './fail.js'\nimport { Dialect, TshyConfig } from './types.js'\n\nexport const isDialect = (d: any): d is Dialect =>\n d === 'commonjs' || d === 'esm'\n\nexport default (\n d: any,\n): d is Exclude<TshyConfig['dialects'], undefined> => {\n if (!!d && Array.isArray(d) && d.length && !d.some(d => !isDialect(d))) {\n return true\n }\n\n fail(\n `tshy.dialects must be an array including \"esm\" and/or \"commonjs\", ` +\n `got: ${JSON.stringify(d)}`,\n )\n return process.exit(1)\n}\n"]}
1
+ {"version":3,"file":"valid-dialects.js","sourceRoot":"","sources":["../../src/valid-dialects.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAA;AAG5B,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,CAAU,EAAgB,EAAE,CACpD,CAAC,KAAK,UAAU,IAAI,CAAC,KAAK,KAAK,CAAA;AAEjC,eAAe,CACb,CAAU,EACuC,EAAE,CAAC;IACpD,IAAI,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACvE,OAAO,IAAI,CAAA;IACb,CAAC;IAED,IAAI,CACF,oEAAoE;QAClE,QAAQ,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAC9B,CAAA;IACD,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;AAAA,CACvB,CAAA","sourcesContent":["import fail from './fail.js'\nimport type { Dialect, TshyConfig } from './types.js'\n\nexport const isDialect = (d: unknown): d is Dialect =>\n d === 'commonjs' || d === 'esm'\n\nexport default (\n d: unknown,\n): d is Exclude<TshyConfig['dialects'], undefined> => {\n if (!!d && Array.isArray(d) && d.length && !d.some(d => !isDialect(d))) {\n return true\n }\n\n fail(\n `tshy.dialects must be an array including \"esm\" and/or \"commonjs\", ` +\n `got: ${JSON.stringify(d)}`,\n )\n return process.exit(1)\n}\n"]}
@@ -1,3 +1,3 @@
1
- declare const _default: (d: any) => d is string[];
1
+ declare const _default: (d: unknown) => d is string[];
2
2
  export default _default;
3
3
  //# sourceMappingURL=valid-exclude.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"valid-exclude.d.ts","sourceRoot":"","sources":["../../src/valid-exclude.ts"],"names":[],"mappings":";AAEA,wBAgBC","sourcesContent":["import fail from './fail.js'\nimport { TshyConfig } from './types.js'\nexport default (\n d: any,\n): d is Exclude<TshyConfig['exclude'], undefined> => {\n if (\n !!d &&\n Array.isArray(d) &&\n d.length &&\n !d.some(d => typeof d !== 'string')\n ) {\n return true\n }\n fail(\n `tshy.exclude must be an array of string glob patterns if defined, ` +\n `got: ${JSON.stringify(d)}`,\n )\n return process.exit(1)\n}\n"]}
1
+ {"version":3,"file":"valid-exclude.d.ts","sourceRoot":"","sources":["../../src/valid-exclude.ts"],"names":[],"mappings":";AAEA,wBAgBC","sourcesContent":["import fail from './fail.js'\nimport type { TshyConfig } from './types.js'\nexport default (\n d: unknown,\n): d is Exclude<TshyConfig['exclude'], undefined> => {\n if (\n !!d &&\n Array.isArray(d) &&\n d.length &&\n !d.some(d => typeof d !== 'string')\n ) {\n return true\n }\n fail(\n `tshy.exclude must be an array of string glob patterns if defined, ` +\n `got: ${JSON.stringify(d)}`,\n )\n return process.exit(1)\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"valid-exclude.js","sourceRoot":"","sources":["../../src/valid-exclude.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAA;AAE5B,eAAe,CACb,CAAM,EAC0C,EAAE,CAAC;IACnD,IACE,CAAC,CAAC,CAAC;QACH,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;QAChB,CAAC,CAAC,MAAM;QACR,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC,EACnC,CAAC;QACD,OAAO,IAAI,CAAA;IACb,CAAC;IACD,IAAI,CACF,oEAAoE;QAClE,QAAQ,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAC9B,CAAA;IACD,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;AAAA,CACvB,CAAA","sourcesContent":["import fail from './fail.js'\nimport { TshyConfig } from './types.js'\nexport default (\n d: any,\n): d is Exclude<TshyConfig['exclude'], undefined> => {\n if (\n !!d &&\n Array.isArray(d) &&\n d.length &&\n !d.some(d => typeof d !== 'string')\n ) {\n return true\n }\n fail(\n `tshy.exclude must be an array of string glob patterns if defined, ` +\n `got: ${JSON.stringify(d)}`,\n )\n return process.exit(1)\n}\n"]}
1
+ {"version":3,"file":"valid-exclude.js","sourceRoot":"","sources":["../../src/valid-exclude.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAA;AAE5B,eAAe,CACb,CAAU,EACsC,EAAE,CAAC;IACnD,IACE,CAAC,CAAC,CAAC;QACH,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;QAChB,CAAC,CAAC,MAAM;QACR,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC,EACnC,CAAC;QACD,OAAO,IAAI,CAAA;IACb,CAAC;IACD,IAAI,CACF,oEAAoE;QAClE,QAAQ,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAC9B,CAAA;IACD,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;AAAA,CACvB,CAAA","sourcesContent":["import fail from './fail.js'\nimport type { TshyConfig } from './types.js'\nexport default (\n d: unknown,\n): d is Exclude<TshyConfig['exclude'], undefined> => {\n if (\n !!d &&\n Array.isArray(d) &&\n d.length &&\n !d.some(d => typeof d !== 'string')\n ) {\n return true\n }\n fail(\n `tshy.exclude must be an array of string glob patterns if defined, ` +\n `got: ${JSON.stringify(d)}`,\n )\n return process.exit(1)\n}\n"]}
@@ -1,3 +1,3 @@
1
- declare const _default: (e: any) => e is (string | string[] | Record<string, import("resolve-import/raw").ConditionalValue>) & Record<string, import("resolve-import/raw").ConditionalValue>;
1
+ declare const _default: (e: unknown) => e is (string | string[] | Record<string, import("resolve-import/raw").ConditionalValue>) & Record<string, import("resolve-import/raw").ConditionalValue>;
2
2
  export default _default;
3
3
  //# sourceMappingURL=valid-exports.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"valid-exports.d.ts","sourceRoot":"","sources":["../../src/valid-exports.ts"],"names":[],"mappings":";AAKA,wBAsCC","sourcesContent":["import addDot from './add-dot.js'\nimport fail from './fail.js'\nimport { TshyConfig } from './types.js'\nimport validExternalExport from './valid-external-export.js'\n\nexport default (\n e: any,\n): e is Exclude<TshyConfig['exports'], undefined> => {\n if (!e || typeof e !== 'object' || Array.isArray(e)) return false\n for (const [sub, exp] of Object.entries(e)) {\n if (sub !== '.' && !sub.startsWith('./')) {\n fail(`tshy.exports key must be \".\" or start with \"./\", got: ${sub}`)\n return process.exit(1)\n }\n\n // just a module. either a built export, or a simple unbuilt export\n if (typeof exp === 'string') {\n e[sub] = addDot(exp)\n continue\n }\n\n if (typeof exp !== 'object') {\n fail(\n `tshy.exports ${sub} value must be valid package.json exports ` +\n `value, got: ${JSON.stringify(exp)}`,\n )\n return process.exit(1)\n }\n\n // can be any valid external export, but the resolution of\n // import and require must NOT be in ./src\n if (!validExternalExport(exp)) {\n fail(\n `tshy.exports ${sub} unbuilt exports must not be in ./src, ` +\n `and exports in src must be string values. ` +\n `got: ${JSON.stringify(exp)}`,\n )\n return process.exit(1)\n }\n\n e[sub] = exp\n }\n return true\n}\n"]}
1
+ {"version":3,"file":"valid-exports.d.ts","sourceRoot":"","sources":["../../src/valid-exports.ts"],"names":[],"mappings":";AAQA,wBAsCC","sourcesContent":["import addDot from './add-dot.js'\nimport fail from './fail.js'\nimport type { TshyConfig } from './types.js'\nimport validExternalExport from './valid-external-export.js'\n\nconst isRecord = (e: unknown): e is Record<string, unknown> =>\n !!e && typeof e === 'object' && !Array.isArray(e)\n\nexport default (\n e: unknown,\n): e is Exclude<TshyConfig['exports'], undefined> => {\n if (!isRecord(e)) return false\n for (const [sub, exp] of Object.entries(e)) {\n if (sub !== '.' && !sub.startsWith('./')) {\n fail(`tshy.exports key must be \".\" or start with \"./\", got: ${sub}`)\n return process.exit(1)\n }\n\n // just a module. either a built export, or a simple unbuilt export\n if (typeof exp === 'string') {\n e[sub] = addDot(exp)\n continue\n }\n\n if (typeof exp !== 'object') {\n fail(\n `tshy.exports ${sub} value must be valid package.json exports ` +\n `value, got: ${JSON.stringify(exp)}`,\n )\n return process.exit(1)\n }\n\n // can be any valid external export, but the resolution of\n // import and require must NOT be in ./src\n if (!validExternalExport(exp)) {\n fail(\n `tshy.exports ${sub} unbuilt exports must not be in ./src, ` +\n `and exports in src must be string values. ` +\n `got: ${JSON.stringify(exp)}`,\n )\n return process.exit(1)\n }\n\n e[sub] = exp\n }\n return true\n}\n"]}
@@ -1,8 +1,9 @@
1
1
  import addDot from './add-dot.js';
2
2
  import fail from './fail.js';
3
3
  import validExternalExport from './valid-external-export.js';
4
+ const isRecord = (e) => !!e && typeof e === 'object' && !Array.isArray(e);
4
5
  export default (e) => {
5
- if (!e || typeof e !== 'object' || Array.isArray(e))
6
+ if (!isRecord(e))
6
7
  return false;
7
8
  for (const [sub, exp] of Object.entries(e)) {
8
9
  if (sub !== '.' && !sub.startsWith('./')) {
@@ -1 +1 @@
1
- {"version":3,"file":"valid-exports.js","sourceRoot":"","sources":["../../src/valid-exports.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,cAAc,CAAA;AACjC,OAAO,IAAI,MAAM,WAAW,CAAA;AAE5B,OAAO,mBAAmB,MAAM,4BAA4B,CAAA;AAE5D,eAAe,CACb,CAAM,EAC0C,EAAE,CAAC;IACnD,IAAI,CAAC,CAAC,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;QAAE,OAAO,KAAK,CAAA;IACjE,KAAK,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3C,IAAI,GAAG,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;YACzC,IAAI,CAAC,yDAAyD,GAAG,EAAE,CAAC,CAAA;YACpE,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACxB,CAAC;QAED,mEAAmE;QACnE,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;YAC5B,CAAC,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAA;YACpB,SAAQ;QACV,CAAC;QAED,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;YAC5B,IAAI,CACF,gBAAgB,GAAG,4CAA4C;gBAC7D,eAAe,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CACvC,CAAA;YACD,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACxB,CAAC;QAED,0DAA0D;QAC1D,0CAA0C;QAC1C,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,EAAE,CAAC;YAC9B,IAAI,CACF,gBAAgB,GAAG,yCAAyC;gBAC1D,4CAA4C;gBAC5C,QAAQ,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAChC,CAAA;YACD,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACxB,CAAC;QAED,CAAC,CAAC,GAAG,CAAC,GAAG,GAAG,CAAA;IACd,CAAC;IACD,OAAO,IAAI,CAAA;AAAA,CACZ,CAAA","sourcesContent":["import addDot from './add-dot.js'\nimport fail from './fail.js'\nimport { TshyConfig } from './types.js'\nimport validExternalExport from './valid-external-export.js'\n\nexport default (\n e: any,\n): e is Exclude<TshyConfig['exports'], undefined> => {\n if (!e || typeof e !== 'object' || Array.isArray(e)) return false\n for (const [sub, exp] of Object.entries(e)) {\n if (sub !== '.' && !sub.startsWith('./')) {\n fail(`tshy.exports key must be \".\" or start with \"./\", got: ${sub}`)\n return process.exit(1)\n }\n\n // just a module. either a built export, or a simple unbuilt export\n if (typeof exp === 'string') {\n e[sub] = addDot(exp)\n continue\n }\n\n if (typeof exp !== 'object') {\n fail(\n `tshy.exports ${sub} value must be valid package.json exports ` +\n `value, got: ${JSON.stringify(exp)}`,\n )\n return process.exit(1)\n }\n\n // can be any valid external export, but the resolution of\n // import and require must NOT be in ./src\n if (!validExternalExport(exp)) {\n fail(\n `tshy.exports ${sub} unbuilt exports must not be in ./src, ` +\n `and exports in src must be string values. ` +\n `got: ${JSON.stringify(exp)}`,\n )\n return process.exit(1)\n }\n\n e[sub] = exp\n }\n return true\n}\n"]}
1
+ {"version":3,"file":"valid-exports.js","sourceRoot":"","sources":["../../src/valid-exports.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,cAAc,CAAA;AACjC,OAAO,IAAI,MAAM,WAAW,CAAA;AAE5B,OAAO,mBAAmB,MAAM,4BAA4B,CAAA;AAE5D,MAAM,QAAQ,GAAG,CAAC,CAAU,EAAgC,EAAE,CAC5D,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA;AAEnD,eAAe,CACb,CAAU,EACsC,EAAE,CAAC;IACnD,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;QAAE,OAAO,KAAK,CAAA;IAC9B,KAAK,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3C,IAAI,GAAG,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;YACzC,IAAI,CAAC,yDAAyD,GAAG,EAAE,CAAC,CAAA;YACpE,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACxB,CAAC;QAED,mEAAmE;QACnE,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;YAC5B,CAAC,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAA;YACpB,SAAQ;QACV,CAAC;QAED,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;YAC5B,IAAI,CACF,gBAAgB,GAAG,4CAA4C;gBAC7D,eAAe,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CACvC,CAAA;YACD,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACxB,CAAC;QAED,0DAA0D;QAC1D,0CAA0C;QAC1C,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,EAAE,CAAC;YAC9B,IAAI,CACF,gBAAgB,GAAG,yCAAyC;gBAC1D,4CAA4C;gBAC5C,QAAQ,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAChC,CAAA;YACD,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACxB,CAAC;QAED,CAAC,CAAC,GAAG,CAAC,GAAG,GAAG,CAAA;IACd,CAAC;IACD,OAAO,IAAI,CAAA;AAAA,CACZ,CAAA","sourcesContent":["import addDot from './add-dot.js'\nimport fail from './fail.js'\nimport type { TshyConfig } from './types.js'\nimport validExternalExport from './valid-external-export.js'\n\nconst isRecord = (e: unknown): e is Record<string, unknown> =>\n !!e && typeof e === 'object' && !Array.isArray(e)\n\nexport default (\n e: unknown,\n): e is Exclude<TshyConfig['exports'], undefined> => {\n if (!isRecord(e)) return false\n for (const [sub, exp] of Object.entries(e)) {\n if (sub !== '.' && !sub.startsWith('./')) {\n fail(`tshy.exports key must be \".\" or start with \"./\", got: ${sub}`)\n return process.exit(1)\n }\n\n // just a module. either a built export, or a simple unbuilt export\n if (typeof exp === 'string') {\n e[sub] = addDot(exp)\n continue\n }\n\n if (typeof exp !== 'object') {\n fail(\n `tshy.exports ${sub} value must be valid package.json exports ` +\n `value, got: ${JSON.stringify(exp)}`,\n )\n return process.exit(1)\n }\n\n // can be any valid external export, but the resolution of\n // import and require must NOT be in ./src\n if (!validExternalExport(exp)) {\n fail(\n `tshy.exports ${sub} unbuilt exports must not be in ./src, ` +\n `and exports in src must be string values. ` +\n `got: ${JSON.stringify(exp)}`,\n )\n return process.exit(1)\n }\n\n e[sub] = exp\n }\n return true\n}\n"]}
@@ -1,4 +1,4 @@
1
1
  import type { ConditionalValueObject } from 'resolve-import';
2
- declare const _default: (exp: any) => exp is ConditionalValueObject;
2
+ declare const _default: (exp: unknown) => exp is ConditionalValueObject;
3
3
  export default _default;
4
4
  //# sourceMappingURL=valid-external-export.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"valid-external-export.d.ts","sourceRoot":"","sources":["../../src/valid-external-export.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAA;;AAG5D,wBAMC","sourcesContent":["import { join } from 'path/posix'\nimport type { ConditionalValueObject } from 'resolve-import'\nimport { resolveExport } from './resolve-export.js'\n\nexport default (exp: any): exp is ConditionalValueObject => {\n const i = resolveExport(exp, ['import'])\n const r = resolveExport(exp, ['require'])\n if (i && join(i).startsWith('src/')) return false\n if (r && join(r).startsWith('src/')) return false\n return true\n}\n"]}
1
+ {"version":3,"file":"valid-external-export.d.ts","sourceRoot":"","sources":["../../src/valid-external-export.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAA;;AAG5D,wBAMC","sourcesContent":["import { join } from 'path/posix'\nimport type { ConditionalValueObject } from 'resolve-import'\nimport { resolveExport } from './resolve-export.js'\n\nexport default (exp: unknown): exp is ConditionalValueObject => {\n const i = resolveExport(exp, ['import'])\n const r = resolveExport(exp, ['require'])\n if (i && join(i).startsWith('src/')) return false\n if (r && join(r).startsWith('src/')) return false\n return true\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"valid-external-export.js","sourceRoot":"","sources":["../../src/valid-external-export.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAA;AAEjC,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AAEnD,eAAe,CAAC,GAAQ,EAAiC,EAAE,CAAC;IAC1D,MAAM,CAAC,GAAG,aAAa,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAA;IACxC,MAAM,CAAC,GAAG,aAAa,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC,CAAA;IACzC,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC;QAAE,OAAO,KAAK,CAAA;IACjD,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC;QAAE,OAAO,KAAK,CAAA;IACjD,OAAO,IAAI,CAAA;AAAA,CACZ,CAAA","sourcesContent":["import { join } from 'path/posix'\nimport type { ConditionalValueObject } from 'resolve-import'\nimport { resolveExport } from './resolve-export.js'\n\nexport default (exp: any): exp is ConditionalValueObject => {\n const i = resolveExport(exp, ['import'])\n const r = resolveExport(exp, ['require'])\n if (i && join(i).startsWith('src/')) return false\n if (r && join(r).startsWith('src/')) return false\n return true\n}\n"]}
1
+ {"version":3,"file":"valid-external-export.js","sourceRoot":"","sources":["../../src/valid-external-export.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAA;AAEjC,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AAEnD,eAAe,CAAC,GAAY,EAAiC,EAAE,CAAC;IAC9D,MAAM,CAAC,GAAG,aAAa,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAA;IACxC,MAAM,CAAC,GAAG,aAAa,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC,CAAA;IACzC,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC;QAAE,OAAO,KAAK,CAAA;IACjD,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC;QAAE,OAAO,KAAK,CAAA;IACjD,OAAO,IAAI,CAAA;AAAA,CACZ,CAAA","sourcesContent":["import { join } from 'path/posix'\nimport type { ConditionalValueObject } from 'resolve-import'\nimport { resolveExport } from './resolve-export.js'\n\nexport default (exp: unknown): exp is ConditionalValueObject => {\n const i = resolveExport(exp, ['import'])\n const r = resolveExport(exp, ['require'])\n if (i && join(i).startsWith('src/')) return false\n if (r && join(r).startsWith('src/')) return false\n return true\n}\n"]}
@@ -1,4 +1,4 @@
1
- import { TshyConfig } from './types.js';
1
+ import type { TshyConfig } from './types.js';
2
2
  declare const _default: ({ commonjsDialects, esmDialects, sourceDialects, }: TshyConfig) => boolean;
3
3
  export default _default;
4
4
  //# sourceMappingURL=valid-extra-dialects.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"valid-extra-dialects.d.ts","sourceRoot":"","sources":["../../src/valid-extra-dialects.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;;AAuCvC,wBA0CC","sourcesContent":["// validate esmDialects and commonjsDialects\nimport fail from './fail.js'\nimport { TshyConfig } from './types.js'\n\nconst arrayOverlap = (\n a: string[] | undefined,\n b: string[] | undefined,\n): string | false => {\n if (!a || !b) return false\n for (const av of a) {\n if (b.includes(av)) return av\n }\n return false\n}\n\nconst validExtraDialectSet = (\n e: string[],\n which: 'commonjs' | 'esm' | 'source',\n) => {\n for (const d of e) {\n if (typeof d !== 'string') {\n fail(`${which} must be an array of strings, got: ${d}`)\n return process.exit(1)\n }\n if (\n d === 'commonjs' ||\n d === 'cjs' ||\n d === 'esm' ||\n d === 'require' ||\n d === 'import' ||\n d === 'node' ||\n d === 'source' ||\n d === 'default'\n ) {\n fail(`tshy.${which}Dialects must not contain ${JSON.stringify(d)}`)\n return process.exit(1)\n }\n }\n return true\n}\n\nexport default ({\n commonjsDialects,\n esmDialects,\n sourceDialects,\n}: TshyConfig) => {\n if (\n commonjsDialects === undefined &&\n esmDialects === undefined &&\n sourceDialects === undefined\n ) {\n return true\n }\n if (\n commonjsDialects &&\n !validExtraDialectSet(commonjsDialects, 'commonjs')\n ) {\n return false\n }\n if (esmDialects && !validExtraDialectSet(esmDialects, 'esm')) {\n return false\n }\n if (sourceDialects && !validExtraDialectSet(sourceDialects, 'source')) {\n return false\n }\n for (const [aname, bname, a, b] of [\n ['commonjsDialects', 'esmDialects', commonjsDialects, esmDialects],\n [\n 'commonjsDialects',\n 'sourceDialects',\n commonjsDialects,\n sourceDialects,\n ],\n ['esmDialects', 'sourceDialects', esmDialects, sourceDialects],\n ] as const) {\n const overlap = arrayOverlap(a, b)\n if (!overlap) continue\n fail(\n `${aname} and ${bname} must be unique, found ${overlap} in both lists`,\n )\n return process.exit(1)\n }\n return true\n}\n"]}
1
+ {"version":3,"file":"valid-extra-dialects.d.ts","sourceRoot":"","sources":["../../src/valid-extra-dialects.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;;AAuC5C,wBA0CC","sourcesContent":["// validate esmDialects and commonjsDialects\nimport fail from './fail.js'\nimport type { TshyConfig } from './types.js'\n\nconst arrayOverlap = (\n a: string[] | undefined,\n b: string[] | undefined,\n): string | false => {\n if (!a || !b) return false\n for (const av of a) {\n if (b.includes(av)) return av\n }\n return false\n}\n\nconst validExtraDialectSet = (\n e: string[],\n which: 'commonjs' | 'esm' | 'source',\n) => {\n for (const d of e) {\n if (typeof d !== 'string') {\n fail(`${which} must be an array of strings, got: ${d}`)\n return process.exit(1)\n }\n if (\n d === 'commonjs' ||\n d === 'cjs' ||\n d === 'esm' ||\n d === 'require' ||\n d === 'import' ||\n d === 'node' ||\n d === 'source' ||\n d === 'default'\n ) {\n fail(`tshy.${which}Dialects must not contain ${JSON.stringify(d)}`)\n return process.exit(1)\n }\n }\n return true\n}\n\nexport default ({\n commonjsDialects,\n esmDialects,\n sourceDialects,\n}: TshyConfig) => {\n if (\n commonjsDialects === undefined &&\n esmDialects === undefined &&\n sourceDialects === undefined\n ) {\n return true\n }\n if (\n commonjsDialects &&\n !validExtraDialectSet(commonjsDialects, 'commonjs')\n ) {\n return false\n }\n if (esmDialects && !validExtraDialectSet(esmDialects, 'esm')) {\n return false\n }\n if (sourceDialects && !validExtraDialectSet(sourceDialects, 'source')) {\n return false\n }\n for (const [aname, bname, a, b] of [\n ['commonjsDialects', 'esmDialects', commonjsDialects, esmDialects],\n [\n 'commonjsDialects',\n 'sourceDialects',\n commonjsDialects,\n sourceDialects,\n ],\n ['esmDialects', 'sourceDialects', esmDialects, sourceDialects],\n ] as const) {\n const overlap = arrayOverlap(a, b)\n if (!overlap) continue\n fail(\n `${aname} and ${bname} must be unique, found ${overlap} in both lists`,\n )\n return process.exit(1)\n }\n return true\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"valid-extra-dialects.js","sourceRoot":"","sources":["../../src/valid-extra-dialects.ts"],"names":[],"mappings":"AAAA,4CAA4C;AAC5C,OAAO,IAAI,MAAM,WAAW,CAAA;AAG5B,MAAM,YAAY,GAAG,CACnB,CAAuB,EACvB,CAAuB,EACP,EAAE,CAAC;IACnB,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC;QAAE,OAAO,KAAK,CAAA;IAC1B,KAAK,MAAM,EAAE,IAAI,CAAC,EAAE,CAAC;QACnB,IAAI,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC;YAAE,OAAO,EAAE,CAAA;IAC/B,CAAC;IACD,OAAO,KAAK,CAAA;AAAA,CACb,CAAA;AAED,MAAM,oBAAoB,GAAG,CAC3B,CAAW,EACX,KAAoC,EACpC,EAAE,CAAC;IACH,KAAK,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;QAClB,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE,CAAC;YAC1B,IAAI,CAAC,GAAG,KAAK,sCAAsC,CAAC,EAAE,CAAC,CAAA;YACvD,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACxB,CAAC;QACD,IACE,CAAC,KAAK,UAAU;YAChB,CAAC,KAAK,KAAK;YACX,CAAC,KAAK,KAAK;YACX,CAAC,KAAK,SAAS;YACf,CAAC,KAAK,QAAQ;YACd,CAAC,KAAK,MAAM;YACZ,CAAC,KAAK,QAAQ;YACd,CAAC,KAAK,SAAS,EACf,CAAC;YACD,IAAI,CAAC,QAAQ,KAAK,6BAA6B,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAA;YACnE,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACxB,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAA;AAAA,CACZ,CAAA;AAED,eAAe,CAAC,EACd,gBAAgB,EAChB,WAAW,EACX,cAAc,GACH,EAAE,EAAE,CAAC;IAChB,IACE,gBAAgB,KAAK,SAAS;QAC9B,WAAW,KAAK,SAAS;QACzB,cAAc,KAAK,SAAS,EAC5B,CAAC;QACD,OAAO,IAAI,CAAA;IACb,CAAC;IACD,IACE,gBAAgB;QAChB,CAAC,oBAAoB,CAAC,gBAAgB,EAAE,UAAU,CAAC,EACnD,CAAC;QACD,OAAO,KAAK,CAAA;IACd,CAAC;IACD,IAAI,WAAW,IAAI,CAAC,oBAAoB,CAAC,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC;QAC7D,OAAO,KAAK,CAAA;IACd,CAAC;IACD,IAAI,cAAc,IAAI,CAAC,oBAAoB,CAAC,cAAc,EAAE,QAAQ,CAAC,EAAE,CAAC;QACtE,OAAO,KAAK,CAAA;IACd,CAAC;IACD,KAAK,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI;QACjC,CAAC,kBAAkB,EAAE,aAAa,EAAE,gBAAgB,EAAE,WAAW,CAAC;QAClE;YACE,kBAAkB;YAClB,gBAAgB;YAChB,gBAAgB;YAChB,cAAc;SACf;QACD,CAAC,aAAa,EAAE,gBAAgB,EAAE,WAAW,EAAE,cAAc,CAAC;KACtD,EAAE,CAAC;QACX,MAAM,OAAO,GAAG,YAAY,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;QAClC,IAAI,CAAC,OAAO;YAAE,SAAQ;QACtB,IAAI,CACF,GAAG,KAAK,QAAQ,KAAK,0BAA0B,OAAO,gBAAgB,CACvE,CAAA;QACD,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACxB,CAAC;IACD,OAAO,IAAI,CAAA;AAAA,CACZ,CAAA","sourcesContent":["// validate esmDialects and commonjsDialects\nimport fail from './fail.js'\nimport { TshyConfig } from './types.js'\n\nconst arrayOverlap = (\n a: string[] | undefined,\n b: string[] | undefined,\n): string | false => {\n if (!a || !b) return false\n for (const av of a) {\n if (b.includes(av)) return av\n }\n return false\n}\n\nconst validExtraDialectSet = (\n e: string[],\n which: 'commonjs' | 'esm' | 'source',\n) => {\n for (const d of e) {\n if (typeof d !== 'string') {\n fail(`${which} must be an array of strings, got: ${d}`)\n return process.exit(1)\n }\n if (\n d === 'commonjs' ||\n d === 'cjs' ||\n d === 'esm' ||\n d === 'require' ||\n d === 'import' ||\n d === 'node' ||\n d === 'source' ||\n d === 'default'\n ) {\n fail(`tshy.${which}Dialects must not contain ${JSON.stringify(d)}`)\n return process.exit(1)\n }\n }\n return true\n}\n\nexport default ({\n commonjsDialects,\n esmDialects,\n sourceDialects,\n}: TshyConfig) => {\n if (\n commonjsDialects === undefined &&\n esmDialects === undefined &&\n sourceDialects === undefined\n ) {\n return true\n }\n if (\n commonjsDialects &&\n !validExtraDialectSet(commonjsDialects, 'commonjs')\n ) {\n return false\n }\n if (esmDialects && !validExtraDialectSet(esmDialects, 'esm')) {\n return false\n }\n if (sourceDialects && !validExtraDialectSet(sourceDialects, 'source')) {\n return false\n }\n for (const [aname, bname, a, b] of [\n ['commonjsDialects', 'esmDialects', commonjsDialects, esmDialects],\n [\n 'commonjsDialects',\n 'sourceDialects',\n commonjsDialects,\n sourceDialects,\n ],\n ['esmDialects', 'sourceDialects', esmDialects, sourceDialects],\n ] as const) {\n const overlap = arrayOverlap(a, b)\n if (!overlap) continue\n fail(\n `${aname} and ${bname} must be unique, found ${overlap} in both lists`,\n )\n return process.exit(1)\n }\n return true\n}\n"]}
1
+ {"version":3,"file":"valid-extra-dialects.js","sourceRoot":"","sources":["../../src/valid-extra-dialects.ts"],"names":[],"mappings":"AAAA,4CAA4C;AAC5C,OAAO,IAAI,MAAM,WAAW,CAAA;AAG5B,MAAM,YAAY,GAAG,CACnB,CAAuB,EACvB,CAAuB,EACP,EAAE,CAAC;IACnB,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC;QAAE,OAAO,KAAK,CAAA;IAC1B,KAAK,MAAM,EAAE,IAAI,CAAC,EAAE,CAAC;QACnB,IAAI,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC;YAAE,OAAO,EAAE,CAAA;IAC/B,CAAC;IACD,OAAO,KAAK,CAAA;AAAA,CACb,CAAA;AAED,MAAM,oBAAoB,GAAG,CAC3B,CAAW,EACX,KAAoC,EACpC,EAAE,CAAC;IACH,KAAK,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;QAClB,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE,CAAC;YAC1B,IAAI,CAAC,GAAG,KAAK,sCAAsC,CAAC,EAAE,CAAC,CAAA;YACvD,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACxB,CAAC;QACD,IACE,CAAC,KAAK,UAAU;YAChB,CAAC,KAAK,KAAK;YACX,CAAC,KAAK,KAAK;YACX,CAAC,KAAK,SAAS;YACf,CAAC,KAAK,QAAQ;YACd,CAAC,KAAK,MAAM;YACZ,CAAC,KAAK,QAAQ;YACd,CAAC,KAAK,SAAS,EACf,CAAC;YACD,IAAI,CAAC,QAAQ,KAAK,6BAA6B,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAA;YACnE,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACxB,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAA;AAAA,CACZ,CAAA;AAED,eAAe,CAAC,EACd,gBAAgB,EAChB,WAAW,EACX,cAAc,GACH,EAAE,EAAE,CAAC;IAChB,IACE,gBAAgB,KAAK,SAAS;QAC9B,WAAW,KAAK,SAAS;QACzB,cAAc,KAAK,SAAS,EAC5B,CAAC;QACD,OAAO,IAAI,CAAA;IACb,CAAC;IACD,IACE,gBAAgB;QAChB,CAAC,oBAAoB,CAAC,gBAAgB,EAAE,UAAU,CAAC,EACnD,CAAC;QACD,OAAO,KAAK,CAAA;IACd,CAAC;IACD,IAAI,WAAW,IAAI,CAAC,oBAAoB,CAAC,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC;QAC7D,OAAO,KAAK,CAAA;IACd,CAAC;IACD,IAAI,cAAc,IAAI,CAAC,oBAAoB,CAAC,cAAc,EAAE,QAAQ,CAAC,EAAE,CAAC;QACtE,OAAO,KAAK,CAAA;IACd,CAAC;IACD,KAAK,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI;QACjC,CAAC,kBAAkB,EAAE,aAAa,EAAE,gBAAgB,EAAE,WAAW,CAAC;QAClE;YACE,kBAAkB;YAClB,gBAAgB;YAChB,gBAAgB;YAChB,cAAc;SACf;QACD,CAAC,aAAa,EAAE,gBAAgB,EAAE,WAAW,EAAE,cAAc,CAAC;KACtD,EAAE,CAAC;QACX,MAAM,OAAO,GAAG,YAAY,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;QAClC,IAAI,CAAC,OAAO;YAAE,SAAQ;QACtB,IAAI,CACF,GAAG,KAAK,QAAQ,KAAK,0BAA0B,OAAO,gBAAgB,CACvE,CAAA;QACD,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACxB,CAAC;IACD,OAAO,IAAI,CAAA;AAAA,CACZ,CAAA","sourcesContent":["// validate esmDialects and commonjsDialects\nimport fail from './fail.js'\nimport type { TshyConfig } from './types.js'\n\nconst arrayOverlap = (\n a: string[] | undefined,\n b: string[] | undefined,\n): string | false => {\n if (!a || !b) return false\n for (const av of a) {\n if (b.includes(av)) return av\n }\n return false\n}\n\nconst validExtraDialectSet = (\n e: string[],\n which: 'commonjs' | 'esm' | 'source',\n) => {\n for (const d of e) {\n if (typeof d !== 'string') {\n fail(`${which} must be an array of strings, got: ${d}`)\n return process.exit(1)\n }\n if (\n d === 'commonjs' ||\n d === 'cjs' ||\n d === 'esm' ||\n d === 'require' ||\n d === 'import' ||\n d === 'node' ||\n d === 'source' ||\n d === 'default'\n ) {\n fail(`tshy.${which}Dialects must not contain ${JSON.stringify(d)}`)\n return process.exit(1)\n }\n }\n return true\n}\n\nexport default ({\n commonjsDialects,\n esmDialects,\n sourceDialects,\n}: TshyConfig) => {\n if (\n commonjsDialects === undefined &&\n esmDialects === undefined &&\n sourceDialects === undefined\n ) {\n return true\n }\n if (\n commonjsDialects &&\n !validExtraDialectSet(commonjsDialects, 'commonjs')\n ) {\n return false\n }\n if (esmDialects && !validExtraDialectSet(esmDialects, 'esm')) {\n return false\n }\n if (sourceDialects && !validExtraDialectSet(sourceDialects, 'source')) {\n return false\n }\n for (const [aname, bname, a, b] of [\n ['commonjsDialects', 'esmDialects', commonjsDialects, esmDialects],\n [\n 'commonjsDialects',\n 'sourceDialects',\n commonjsDialects,\n sourceDialects,\n ],\n ['esmDialects', 'sourceDialects', esmDialects, sourceDialects],\n ] as const) {\n const overlap = arrayOverlap(a, b)\n if (!overlap) continue\n fail(\n `${aname} and ${bname} must be unique, found ${overlap} in both lists`,\n )\n return process.exit(1)\n }\n return true\n}\n"]}
@@ -1,4 +1,4 @@
1
- import { Package } from './types.js';
1
+ import type { Package } from './types.js';
2
2
  declare const _default: (pkg: Package) => boolean;
3
3
  export default _default;
4
4
  //# sourceMappingURL=valid-imports.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"valid-imports.d.ts","sourceRoot":"","sources":["../../src/valid-imports.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAA;;AAIpC,wBA2BC","sourcesContent":["import fail from './fail.js'\nimport { Package } from './types.js'\nimport validExternalExport from './valid-external-export.js'\n\n// validate the package.imports field\nexport default (pkg: Package) => {\n const { imports } = pkg\n if (imports === undefined) return true\n if (Array.isArray(imports) || typeof imports !== 'object') {\n fail(\n 'invalid imports object, must be Record<string, Import>, ' +\n `got: ${JSON.stringify(imports)}`,\n )\n return process.exit(1)\n }\n\n for (const [i, v] of Object.entries(imports)) {\n if (!i.startsWith('#') || i === '#' || i.startsWith('#/')) {\n fail('invalid imports module specifier: ' + i)\n return process.exit(1)\n }\n if (typeof v === 'string') continue\n if (!validExternalExport(v)) {\n fail(\n `unbuilt package.imports ${i} must not be in ./src, ` +\n 'and imports in ./src must be string values. got: ' +\n JSON.stringify(v),\n )\n return process.exit(1)\n }\n }\n return true\n}\n"]}
1
+ {"version":3,"file":"valid-imports.d.ts","sourceRoot":"","sources":["../../src/valid-imports.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAA;;AAIzC,wBA2BC","sourcesContent":["import fail from './fail.js'\nimport type { Package } from './types.js'\nimport validExternalExport from './valid-external-export.js'\n\n// validate the package.imports field\nexport default (pkg: Package) => {\n const { imports } = pkg\n if (imports === undefined) return true\n if (Array.isArray(imports) || typeof imports !== 'object') {\n fail(\n 'invalid imports object, must be Record<string, Import>, ' +\n `got: ${JSON.stringify(imports)}`,\n )\n return process.exit(1)\n }\n\n for (const [i, v] of Object.entries(imports)) {\n if (!i.startsWith('#') || i === '#' || i.startsWith('#/')) {\n fail('invalid imports module specifier: ' + i)\n return process.exit(1)\n }\n if (typeof v === 'string') continue\n if (!validExternalExport(v)) {\n fail(\n `unbuilt package.imports ${i} must not be in ./src, ` +\n 'and imports in ./src must be string values. got: ' +\n JSON.stringify(v),\n )\n return process.exit(1)\n }\n }\n return true\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"valid-imports.js","sourceRoot":"","sources":["../../src/valid-imports.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAA;AAE5B,OAAO,mBAAmB,MAAM,4BAA4B,CAAA;AAE5D,qCAAqC;AACrC,eAAe,CAAC,GAAY,EAAE,EAAE,CAAC;IAC/B,MAAM,EAAE,OAAO,EAAE,GAAG,GAAG,CAAA;IACvB,IAAI,OAAO,KAAK,SAAS;QAAE,OAAO,IAAI,CAAA;IACtC,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;QAC1D,IAAI,CACF,0DAA0D;YACxD,QAAQ,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,CACpC,CAAA;QACD,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACxB,CAAC;IAED,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;QAC7C,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;YAC1D,IAAI,CAAC,oCAAoC,GAAG,CAAC,CAAC,CAAA;YAC9C,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACxB,CAAC;QACD,IAAI,OAAO,CAAC,KAAK,QAAQ;YAAE,SAAQ;QACnC,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC,EAAE,CAAC;YAC5B,IAAI,CACF,2BAA2B,CAAC,yBAAyB;gBACnD,mDAAmD;gBACnD,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CACpB,CAAA;YACD,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACxB,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAA;AAAA,CACZ,CAAA","sourcesContent":["import fail from './fail.js'\nimport { Package } from './types.js'\nimport validExternalExport from './valid-external-export.js'\n\n// validate the package.imports field\nexport default (pkg: Package) => {\n const { imports } = pkg\n if (imports === undefined) return true\n if (Array.isArray(imports) || typeof imports !== 'object') {\n fail(\n 'invalid imports object, must be Record<string, Import>, ' +\n `got: ${JSON.stringify(imports)}`,\n )\n return process.exit(1)\n }\n\n for (const [i, v] of Object.entries(imports)) {\n if (!i.startsWith('#') || i === '#' || i.startsWith('#/')) {\n fail('invalid imports module specifier: ' + i)\n return process.exit(1)\n }\n if (typeof v === 'string') continue\n if (!validExternalExport(v)) {\n fail(\n `unbuilt package.imports ${i} must not be in ./src, ` +\n 'and imports in ./src must be string values. got: ' +\n JSON.stringify(v),\n )\n return process.exit(1)\n }\n }\n return true\n}\n"]}
1
+ {"version":3,"file":"valid-imports.js","sourceRoot":"","sources":["../../src/valid-imports.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAA;AAE5B,OAAO,mBAAmB,MAAM,4BAA4B,CAAA;AAE5D,qCAAqC;AACrC,eAAe,CAAC,GAAY,EAAE,EAAE,CAAC;IAC/B,MAAM,EAAE,OAAO,EAAE,GAAG,GAAG,CAAA;IACvB,IAAI,OAAO,KAAK,SAAS;QAAE,OAAO,IAAI,CAAA;IACtC,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;QAC1D,IAAI,CACF,0DAA0D;YACxD,QAAQ,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,CACpC,CAAA;QACD,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACxB,CAAC;IAED,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;QAC7C,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;YAC1D,IAAI,CAAC,oCAAoC,GAAG,CAAC,CAAC,CAAA;YAC9C,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACxB,CAAC;QACD,IAAI,OAAO,CAAC,KAAK,QAAQ;YAAE,SAAQ;QACnC,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC,EAAE,CAAC;YAC5B,IAAI,CACF,2BAA2B,CAAC,yBAAyB;gBACnD,mDAAmD;gBACnD,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CACpB,CAAA;YACD,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACxB,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAA;AAAA,CACZ,CAAA","sourcesContent":["import fail from './fail.js'\nimport type { Package } from './types.js'\nimport validExternalExport from './valid-external-export.js'\n\n// validate the package.imports field\nexport default (pkg: Package) => {\n const { imports } = pkg\n if (imports === undefined) return true\n if (Array.isArray(imports) || typeof imports !== 'object') {\n fail(\n 'invalid imports object, must be Record<string, Import>, ' +\n `got: ${JSON.stringify(imports)}`,\n )\n return process.exit(1)\n }\n\n for (const [i, v] of Object.entries(imports)) {\n if (!i.startsWith('#') || i === '#' || i.startsWith('#/')) {\n fail('invalid imports module specifier: ' + i)\n return process.exit(1)\n }\n if (typeof v === 'string') continue\n if (!validExternalExport(v)) {\n fail(\n `unbuilt package.imports ${i} must not be in ./src, ` +\n 'and imports in ./src must be string values. got: ' +\n JSON.stringify(v),\n )\n return process.exit(1)\n }\n }\n return true\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"valid-project.d.ts","sourceRoot":"","sources":["../../src/valid-project.ts"],"names":[],"mappings":";AAKA,wBAaC","sourcesContent":["import { resolve } from 'path'\nimport { readFileSync } from 'node:fs'\nimport fail from './fail.js'\nimport { TshyConfig } from './types.js'\n\nexport default (p: unknown): p is TshyConfig['project'] => {\n if (typeof p === 'string') {\n try {\n readFileSync(resolve(p), 'utf8')\n return true\n } catch (_) {}\n }\n\n fail(\n `tshy.project must point to a tsconfig file on disk, ` +\n `got: ${JSON.stringify(p)}`,\n )\n return process.exit(1)\n}\n"]}
1
+ {"version":3,"file":"valid-project.d.ts","sourceRoot":"","sources":["../../src/valid-project.ts"],"names":[],"mappings":";AAKA,wBAaC","sourcesContent":["import { resolve } from 'path'\nimport { readFileSync } from 'node:fs'\nimport fail from './fail.js'\nimport type { TshyConfig } from './types.js'\n\nexport default (p: unknown): p is TshyConfig['project'] => {\n if (typeof p === 'string') {\n try {\n readFileSync(resolve(p), 'utf8')\n return true\n } catch (_) {}\n }\n\n fail(\n `tshy.project must point to a tsconfig file on disk, ` +\n `got: ${JSON.stringify(p)}`,\n )\n return process.exit(1)\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"valid-project.js","sourceRoot":"","sources":["../../src/valid-project.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAA;AAC9B,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AACtC,OAAO,IAAI,MAAM,WAAW,CAAA;AAG5B,eAAe,CAAC,CAAU,EAA8B,EAAE,CAAC;IACzD,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE,CAAC;QAC1B,IAAI,CAAC;YACH,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAA;YAChC,OAAO,IAAI,CAAA;QACb,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC,CAAA,CAAC;IAChB,CAAC;IAED,IAAI,CACF,sDAAsD;QACpD,QAAQ,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAC9B,CAAA;IACD,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;AAAA,CACvB,CAAA","sourcesContent":["import { resolve } from 'path'\nimport { readFileSync } from 'node:fs'\nimport fail from './fail.js'\nimport { TshyConfig } from './types.js'\n\nexport default (p: unknown): p is TshyConfig['project'] => {\n if (typeof p === 'string') {\n try {\n readFileSync(resolve(p), 'utf8')\n return true\n } catch (_) {}\n }\n\n fail(\n `tshy.project must point to a tsconfig file on disk, ` +\n `got: ${JSON.stringify(p)}`,\n )\n return process.exit(1)\n}\n"]}
1
+ {"version":3,"file":"valid-project.js","sourceRoot":"","sources":["../../src/valid-project.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAA;AAC9B,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AACtC,OAAO,IAAI,MAAM,WAAW,CAAA;AAG5B,eAAe,CAAC,CAAU,EAA8B,EAAE,CAAC;IACzD,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE,CAAC;QAC1B,IAAI,CAAC;YACH,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAA;YAChC,OAAO,IAAI,CAAA;QACb,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC,CAAA,CAAC;IAChB,CAAC;IAED,IAAI,CACF,sDAAsD;QACpD,QAAQ,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAC9B,CAAA;IACD,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;AAAA,CACvB,CAAA","sourcesContent":["import { resolve } from 'path'\nimport { readFileSync } from 'node:fs'\nimport fail from './fail.js'\nimport type { TshyConfig } from './types.js'\n\nexport default (p: unknown): p is TshyConfig['project'] => {\n if (typeof p === 'string') {\n try {\n readFileSync(resolve(p), 'utf8')\n return true\n } catch (_) {}\n }\n\n fail(\n `tshy.project must point to a tsconfig file on disk, ` +\n `got: ${JSON.stringify(p)}`,\n )\n return process.exit(1)\n}\n"]}
@@ -1,4 +1,4 @@
1
- import { ChokidarOptions } from 'chokidar';
1
+ import type { ChokidarOptions } from 'chokidar';
2
2
  export declare const options: ChokidarOptions;
3
3
  export declare const srcPJ: string;
4
4
  export declare const srcNM: string;
@@ -1 +1 @@
1
- {"version":3,"file":"watch.d.ts","sourceRoot":"","sources":["../../src/watch.ts"],"names":[],"mappings":"AAIA,OAAO,EAAS,eAAe,EAAE,MAAM,UAAU,CAAA;AAmBjD,eAAO,MAAM,OAAO,EAAE,eAWrB,CAAA;AAED,eAAO,MAAM,KAAK,QAAgC,CAAA;AAClD,eAAO,MAAM,KAAK,QAAgC,CAAA;AAClD,eAAO,MAAM,GAAG,QAAmB,CAAA;AACnC,eAAO,MAAM,MAAM,QAA4B,CAAA;AAC/C,eAAO,MAAM,OAAO,UAAgB,CAAA;AACpC,eAAO,MAAM,GAAG,QAAwD,CAAA;;AAExE,wBA8CC","sourcesContent":["// any time the root package.json or any typescript files in src\n// are changed/added/removed, run the build\nimport chalk from 'chalk'\nimport { spawn } from 'child_process'\nimport { watch, ChokidarOptions } from 'chokidar'\nimport { readFileSync } from 'fs'\nimport { resolve, sep } from 'path'\nimport { fileURLToPath } from 'url'\nimport * as tshyConsole from './console.js'\n\nconst pjData = (): string => {\n try {\n return JSON.stringify(\n JSON.parse(readFileSync('./package.json', 'utf8')),\n )\n /* c8 ignore start */\n } catch {\n return 'null'\n }\n /* c8 ignore stop */\n}\nlet lastPJData: string = 'null'\n\nexport const options: ChokidarOptions = {\n persistent: true,\n ignoreInitial: true,\n ignorePermissionErrors: true,\n ignored: path => {\n const r = resolve(path)\n if (r === srcPJ) return true\n if (r === srcNM) return true\n if (r.startsWith(srcNM + sep)) return true\n return false\n },\n}\n\nexport const srcPJ = resolve('./src/package.json')\nexport const srcNM = resolve('./src/node_modules')\nexport const src = resolve('./src')\nexport const rootPJ = resolve('./package.json')\nexport const targets = [src, rootPJ]\nexport const bin = fileURLToPath(new URL('./index.js', import.meta.url))\n\nexport default () => {\n let building = false\n let needRebuild = false\n const watcher = watch(targets, options)\n const build = () => {\n building = true\n needRebuild = false\n const child = spawn(process.execPath, [bin], { stdio: 'inherit' })\n child.on('close', (code, signal) => {\n if (code || signal) {\n tshyConsole.error(chalk.red('build failure'), {\n code,\n signal,\n })\n tshyConsole.print()\n } else {\n console.log(chalk.green('build success'), { code, signal })\n }\n if (needRebuild) build()\n else building = false\n })\n }\n watcher.on('all', (ev, path) => {\n // prevent infinite looping on the src dir in liveDev mode\n if (ev === 'addDir' && path === src) {\n return\n }\n\n const r = resolve(path)\n if (r === srcPJ) return\n if (r === rootPJ) {\n // check if the data actually changed\n const newData = pjData()\n /* c8 ignore next */\n if (newData === lastPJData) return\n lastPJData = newData\n }\n if (building) {\n if (r !== rootPJ) needRebuild = true\n return\n }\n tshyConsole.debug(chalk.cyan.dim(ev), path)\n build()\n })\n lastPJData = pjData()\n build()\n}\n"]}
1
+ {"version":3,"file":"watch.d.ts","sourceRoot":"","sources":["../../src/watch.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,UAAU,CAAA;AAoB/C,eAAO,MAAM,OAAO,EAAE,eAWrB,CAAA;AAED,eAAO,MAAM,KAAK,QAAgC,CAAA;AAClD,eAAO,MAAM,KAAK,QAAgC,CAAA;AAClD,eAAO,MAAM,GAAG,QAAmB,CAAA;AACnC,eAAO,MAAM,MAAM,QAA4B,CAAA;AAC/C,eAAO,MAAM,OAAO,UAAgB,CAAA;AACpC,eAAO,MAAM,GAAG,QAAwD,CAAA;;AAExE,wBA8CC","sourcesContent":["// any time the root package.json or any typescript files in src\n// are changed/added/removed, run the build\n// oxlint-disable no-console\nimport chalk from 'chalk'\nimport { spawn } from 'child_process'\nimport type { ChokidarOptions } from 'chokidar'\nimport { watch } from 'chokidar'\nimport { readFileSync } from 'fs'\nimport { resolve, sep } from 'path'\nimport { fileURLToPath } from 'url'\nimport * as tshyConsole from './console.js'\n\nconst pjData = (): string => {\n try {\n return JSON.stringify(\n JSON.parse(readFileSync('./package.json', 'utf8')),\n )\n /* c8 ignore start */\n } catch {\n return 'null'\n }\n /* c8 ignore stop */\n}\nlet lastPJData: string = 'null'\n\nexport const options: ChokidarOptions = {\n persistent: true,\n ignoreInitial: true,\n ignorePermissionErrors: true,\n ignored: path => {\n const r = resolve(path)\n if (r === srcPJ) return true\n if (r === srcNM) return true\n if (r.startsWith(srcNM + sep)) return true\n return false\n },\n}\n\nexport const srcPJ = resolve('./src/package.json')\nexport const srcNM = resolve('./src/node_modules')\nexport const src = resolve('./src')\nexport const rootPJ = resolve('./package.json')\nexport const targets = [src, rootPJ]\nexport const bin = fileURLToPath(new URL('./index.js', import.meta.url))\n\nexport default () => {\n let building = false\n let needRebuild = false\n const watcher = watch(targets, options)\n const build = () => {\n building = true\n needRebuild = false\n const child = spawn(process.execPath, [bin], { stdio: 'inherit' })\n child.on('close', (code, signal) => {\n if (code || signal) {\n tshyConsole.error(chalk.red('build failure'), {\n code,\n signal,\n })\n tshyConsole.print()\n } else {\n console.log(chalk.green('build success'), { code, signal })\n }\n if (needRebuild) build()\n else building = false\n })\n }\n watcher.on('all', (ev, path) => {\n // prevent infinite looping on the src dir in liveDev mode\n if (ev === 'addDir' && path === src) {\n return\n }\n\n const r = resolve(path)\n if (r === srcPJ) return\n if (r === rootPJ) {\n // check if the data actually changed\n const newData = pjData()\n /* c8 ignore next */\n if (newData === lastPJData) return\n lastPJData = newData\n }\n if (building) {\n if (r !== rootPJ) needRebuild = true\n return\n }\n tshyConsole.debug(chalk.cyan.dim(ev), path)\n build()\n })\n lastPJData = pjData()\n build()\n}\n"]}
package/dist/esm/watch.js CHANGED
@@ -1,5 +1,6 @@
1
1
  // any time the root package.json or any typescript files in src
2
2
  // are changed/added/removed, run the build
3
+ // oxlint-disable no-console
3
4
  import chalk from 'chalk';
4
5
  import { spawn } from 'child_process';
5
6
  import { watch } from 'chokidar';
@@ -1 +1 @@
1
- {"version":3,"file":"watch.js","sourceRoot":"","sources":["../../src/watch.ts"],"names":[],"mappings":"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","sourcesContent":["// any time the root package.json or any typescript files in src\n// are changed/added/removed, run the build\nimport chalk from 'chalk'\nimport { spawn } from 'child_process'\nimport { watch, ChokidarOptions } from 'chokidar'\nimport { readFileSync } from 'fs'\nimport { resolve, sep } from 'path'\nimport { fileURLToPath } from 'url'\nimport * as tshyConsole from './console.js'\n\nconst pjData = (): string => {\n try {\n return JSON.stringify(\n JSON.parse(readFileSync('./package.json', 'utf8')),\n )\n /* c8 ignore start */\n } catch {\n return 'null'\n }\n /* c8 ignore stop */\n}\nlet lastPJData: string = 'null'\n\nexport const options: ChokidarOptions = {\n persistent: true,\n ignoreInitial: true,\n ignorePermissionErrors: true,\n ignored: path => {\n const r = resolve(path)\n if (r === srcPJ) return true\n if (r === srcNM) return true\n if (r.startsWith(srcNM + sep)) return true\n return false\n },\n}\n\nexport const srcPJ = resolve('./src/package.json')\nexport const srcNM = resolve('./src/node_modules')\nexport const src = resolve('./src')\nexport const rootPJ = resolve('./package.json')\nexport const targets = [src, rootPJ]\nexport const bin = fileURLToPath(new URL('./index.js', import.meta.url))\n\nexport default () => {\n let building = false\n let needRebuild = false\n const watcher = watch(targets, options)\n const build = () => {\n building = true\n needRebuild = false\n const child = spawn(process.execPath, [bin], { stdio: 'inherit' })\n child.on('close', (code, signal) => {\n if (code || signal) {\n tshyConsole.error(chalk.red('build failure'), {\n code,\n signal,\n })\n tshyConsole.print()\n } else {\n console.log(chalk.green('build success'), { code, signal })\n }\n if (needRebuild) build()\n else building = false\n })\n }\n watcher.on('all', (ev, path) => {\n // prevent infinite looping on the src dir in liveDev mode\n if (ev === 'addDir' && path === src) {\n return\n }\n\n const r = resolve(path)\n if (r === srcPJ) return\n if (r === rootPJ) {\n // check if the data actually changed\n const newData = pjData()\n /* c8 ignore next */\n if (newData === lastPJData) return\n lastPJData = newData\n }\n if (building) {\n if (r !== rootPJ) needRebuild = true\n return\n }\n tshyConsole.debug(chalk.cyan.dim(ev), path)\n build()\n })\n lastPJData = pjData()\n build()\n}\n"]}
1
+ {"version":3,"file":"watch.js","sourceRoot":"","sources":["../../src/watch.ts"],"names":[],"mappings":"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","sourcesContent":["// any time the root package.json or any typescript files in src\n// are changed/added/removed, run the build\n// oxlint-disable no-console\nimport chalk from 'chalk'\nimport { spawn } from 'child_process'\nimport type { ChokidarOptions } from 'chokidar'\nimport { watch } from 'chokidar'\nimport { readFileSync } from 'fs'\nimport { resolve, sep } from 'path'\nimport { fileURLToPath } from 'url'\nimport * as tshyConsole from './console.js'\n\nconst pjData = (): string => {\n try {\n return JSON.stringify(\n JSON.parse(readFileSync('./package.json', 'utf8')),\n )\n /* c8 ignore start */\n } catch {\n return 'null'\n }\n /* c8 ignore stop */\n}\nlet lastPJData: string = 'null'\n\nexport const options: ChokidarOptions = {\n persistent: true,\n ignoreInitial: true,\n ignorePermissionErrors: true,\n ignored: path => {\n const r = resolve(path)\n if (r === srcPJ) return true\n if (r === srcNM) return true\n if (r.startsWith(srcNM + sep)) return true\n return false\n },\n}\n\nexport const srcPJ = resolve('./src/package.json')\nexport const srcNM = resolve('./src/node_modules')\nexport const src = resolve('./src')\nexport const rootPJ = resolve('./package.json')\nexport const targets = [src, rootPJ]\nexport const bin = fileURLToPath(new URL('./index.js', import.meta.url))\n\nexport default () => {\n let building = false\n let needRebuild = false\n const watcher = watch(targets, options)\n const build = () => {\n building = true\n needRebuild = false\n const child = spawn(process.execPath, [bin], { stdio: 'inherit' })\n child.on('close', (code, signal) => {\n if (code || signal) {\n tshyConsole.error(chalk.red('build failure'), {\n code,\n signal,\n })\n tshyConsole.print()\n } else {\n console.log(chalk.green('build success'), { code, signal })\n }\n if (needRebuild) build()\n else building = false\n })\n }\n watcher.on('all', (ev, path) => {\n // prevent infinite looping on the src dir in liveDev mode\n if (ev === 'addDir' && path === src) {\n return\n }\n\n const r = resolve(path)\n if (r === srcPJ) return\n if (r === rootPJ) {\n // check if the data actually changed\n const newData = pjData()\n /* c8 ignore next */\n if (newData === lastPJData) return\n lastPJData = newData\n }\n if (building) {\n if (r !== rootPJ) needRebuild = true\n return\n }\n tshyConsole.debug(chalk.cyan.dim(ev), path)\n build()\n })\n lastPJData = pjData()\n build()\n}\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "tshy",
3
- "version": "3.3.2",
3
+ "version": "4.0.0",
4
4
  "description": "TypeScript HYbridizer - Hybrid (CommonJS/ESM) TypeScript node package builder",
5
5
  "author": "Isaac Z. Schlueter <i@izs.me> (https://izs.me)",
6
6
  "license": "BlueOak-1.0.0",
@@ -21,7 +21,7 @@
21
21
  "resolve-import": "^2.4.0",
22
22
  "rimraf": "^6.1.2",
23
23
  "sync-content": "^2.0.3",
24
- "typescript": "^5.9.3",
24
+ "typescript": "^6.0.2",
25
25
  "walk-up-path": "^4.0.0"
26
26
  },
27
27
  "scripts": {
@@ -31,13 +31,13 @@
31
31
  "prepare": "tsgo -p .tshy/esm.json && bash scripts/fixup.sh",
32
32
  "pretest": "npm run prepare",
33
33
  "presnap": "npm run prepare",
34
- "format": "prettier --write . --ignore-path ./.prettierignore --cache",
34
+ "format": "prettier --write .",
35
35
  "typedoc": "typedoc --tsconfig .tshy/esm.json ./src/*.ts",
36
36
  "test": "tap",
37
- "snap": "tap"
38
- },
39
- "tap": {
40
- "coverage-map": "map.js"
37
+ "snap": "tap",
38
+ "lint": "oxlint --fix src test",
39
+ "postsnap": "npm run lint",
40
+ "postlint": "npm run format"
41
41
  },
42
42
  "engines": {
43
43
  "node": "20 || >=22"
@@ -52,11 +52,13 @@
52
52
  "build"
53
53
  ],
54
54
  "devDependencies": {
55
- "@types/node": "^24.6.1",
55
+ "@types/node": "^25.5.0",
56
56
  "esbuild": "^0.27.2",
57
- "prettier": "^3.6.2",
58
- "tap": "^21.1.4",
59
- "typedoc": "^0.28.14"
57
+ "oxlint": "^1.57.0",
58
+ "oxlint-tsgolint": "^0.17.4",
59
+ "prettier": "^3.8.1",
60
+ "tap": "^21.6.2",
61
+ "typedoc": "^0.28.18"
60
62
  },
61
63
  "tshy": {
62
64
  "compiler": "tsgo",