🚀 Socket Launch Week Day 5:Introducing Repository Access Permissions and Custom Roles.Learn more
Sign In

tshy

Package Overview
Dependencies
Maintainers
1
Versions
54
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

tshy - npm Package Compare versions

Comparing version
3.3.2
to
4.0.0
+1
-1
dist/esm/bin-min.d.mts

@@ -1,2 +0,2 @@

export {};
import './index.js';
//# sourceMappingURL=bin-min.d.mts.map

@@ -1,1 +0,1 @@

{"version":3,"file":"bin-min.d.mts","sourceRoot":"","sources":["../../src/bin-min.mts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAA","sourcesContent":["// this is a placeholder for the compiled bin\nexport {}\n"]}
{"version":3,"file":"bin-min.d.mts","sourceRoot":"","sources":["../../src/bin-min.mts"],"names":[],"mappings":"AACA,OAAO,YAAY,CAAA","sourcesContent":["// this is a placeholder for the compiled bin\nimport './index.js'\n"]}

@@ -1,2 +0,2 @@

import { SpawnSyncReturns } from 'node:child_process';
import type { SpawnSyncReturns } from 'node:child_process';
import './tsconfig.js';

@@ -3,0 +3,0 @@ declare const _default: (res: SpawnSyncReturns<Buffer<ArrayBufferLike>>) => never;

@@ -1,1 +0,1 @@

{"version":3,"file":"build-fail.d.ts","sourceRoot":"","sources":["../../src/build-fail.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AAIrD,OAAO,eAAe,CAAA;;AAKtB,wBAOC","sourcesContent":["import { SpawnSyncReturns } from 'node:child_process'\nimport * as console from './console.js'\nimport fail from './fail.js'\nimport setFolderDialect from './set-folder-dialect.js'\nimport './tsconfig.js'\nimport { unlink as unlinkImports } from './unbuilt-imports.js'\nimport { unlink as unlinkSelfDep } from './self-link.js'\nimport pkg from './package.js'\n\nexport default (res: SpawnSyncReturns<Buffer>) => {\n setFolderDialect('src')\n unlinkImports(pkg, 'src')\n unlinkSelfDep(pkg, 'src')\n fail('build failed')\n console.error(res)\n process.exit(1)\n}\n"]}
{"version":3,"file":"build-fail.d.ts","sourceRoot":"","sources":["../../src/build-fail.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AAI1D,OAAO,eAAe,CAAA;;AAKtB,wBAOC","sourcesContent":["import type { SpawnSyncReturns } from 'node:child_process'\nimport * as console from './console.js'\nimport fail from './fail.js'\nimport setFolderDialect from './set-folder-dialect.js'\nimport './tsconfig.js'\nimport { unlink as unlinkImports } from './unbuilt-imports.js'\nimport { unlink as unlinkSelfDep } from './self-link.js'\nimport pkg from './package.js'\n\nexport default (res: SpawnSyncReturns<Buffer>) => {\n setFolderDialect('src')\n unlinkImports(pkg, 'src')\n unlinkSelfDep(pkg, 'src')\n fail('build failed')\n console.error(res)\n process.exit(1)\n}\n"]}

@@ -1,1 +0,1 @@

{"version":3,"file":"build-fail.js","sourceRoot":"","sources":["../../src/build-fail.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,OAAO,MAAM,cAAc,CAAA;AACvC,OAAO,IAAI,MAAM,WAAW,CAAA;AAC5B,OAAO,gBAAgB,MAAM,yBAAyB,CAAA;AACtD,OAAO,eAAe,CAAA;AACtB,OAAO,EAAE,MAAM,IAAI,aAAa,EAAE,MAAM,sBAAsB,CAAA;AAC9D,OAAO,EAAE,MAAM,IAAI,aAAa,EAAE,MAAM,gBAAgB,CAAA;AACxD,OAAO,GAAG,MAAM,cAAc,CAAA;AAE9B,eAAe,CAAC,GAA6B,EAAE,EAAE,CAAC;IAChD,gBAAgB,CAAC,KAAK,CAAC,CAAA;IACvB,aAAa,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA;IACzB,aAAa,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA;IACzB,IAAI,CAAC,cAAc,CAAC,CAAA;IACpB,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;IAClB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;AAAA,CAChB,CAAA","sourcesContent":["import { SpawnSyncReturns } from 'node:child_process'\nimport * as console from './console.js'\nimport fail from './fail.js'\nimport setFolderDialect from './set-folder-dialect.js'\nimport './tsconfig.js'\nimport { unlink as unlinkImports } from './unbuilt-imports.js'\nimport { unlink as unlinkSelfDep } from './self-link.js'\nimport pkg from './package.js'\n\nexport default (res: SpawnSyncReturns<Buffer>) => {\n setFolderDialect('src')\n unlinkImports(pkg, 'src')\n unlinkSelfDep(pkg, 'src')\n fail('build failed')\n console.error(res)\n process.exit(1)\n}\n"]}
{"version":3,"file":"build-fail.js","sourceRoot":"","sources":["../../src/build-fail.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,OAAO,MAAM,cAAc,CAAA;AACvC,OAAO,IAAI,MAAM,WAAW,CAAA;AAC5B,OAAO,gBAAgB,MAAM,yBAAyB,CAAA;AACtD,OAAO,eAAe,CAAA;AACtB,OAAO,EAAE,MAAM,IAAI,aAAa,EAAE,MAAM,sBAAsB,CAAA;AAC9D,OAAO,EAAE,MAAM,IAAI,aAAa,EAAE,MAAM,gBAAgB,CAAA;AACxD,OAAO,GAAG,MAAM,cAAc,CAAA;AAE9B,eAAe,CAAC,GAA6B,EAAE,EAAE,CAAC;IAChD,gBAAgB,CAAC,KAAK,CAAC,CAAA;IACvB,aAAa,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA;IACzB,aAAa,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA;IACzB,IAAI,CAAC,cAAc,CAAC,CAAA;IACpB,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;IAClB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;AAAA,CAChB,CAAA","sourcesContent":["import type { SpawnSyncReturns } from 'node:child_process'\nimport * as console from './console.js'\nimport fail from './fail.js'\nimport setFolderDialect from './set-folder-dialect.js'\nimport './tsconfig.js'\nimport { unlink as unlinkImports } from './unbuilt-imports.js'\nimport { unlink as unlinkSelfDep } from './self-link.js'\nimport pkg from './package.js'\n\nexport default (res: SpawnSyncReturns<Buffer>) => {\n setFolderDialect('src')\n unlinkImports(pkg, 'src')\n unlinkSelfDep(pkg, 'src')\n fail('build failed')\n console.error(res)\n process.exit(1)\n}\n"]}

@@ -1,1 +0,1 @@

{"version":3,"file":"build.d.ts","sourceRoot":"","sources":["../../src/build.ts"],"names":[],"mappings":"AAcA,OAAO,eAAe,CAAA;;AAUtB,wBAyCC","sourcesContent":["import chalk from 'chalk'\nimport config from './config.js'\nimport { syncContentSync } from 'sync-content'\nimport bins from './bins.js'\nimport { buildCommonJS } from './build-commonjs.js'\nimport { buildESM } from './build-esm.js'\nimport cleanBuildTmp from './clean-build-tmp.js'\nimport * as console from './console.js'\nimport dialects from './dialects.js'\nimport pkg from './package.js'\nimport {\n link as linkSelfDep,\n unlink as unlinkSelfDep,\n} from './self-link.js'\nimport './tsconfig.js'\nimport {\n link as linkImports,\n save as saveImports,\n unlink as unlinkImports,\n} from './unbuilt-imports.js'\nimport writePackage from './write-package.js'\nimport { buildLiveESM } from './build-live-esm.js'\nimport { buildLiveCommonJS } from './build-live-commonjs.js'\n\nexport default async () => {\n await cleanBuildTmp()\n\n linkSelfDep(pkg, 'src')\n await linkImports(pkg, 'src')\n const liveDev =\n config.liveDev &&\n process.env.npm_command !== 'publish' &&\n process.env.npm_command !== 'pack'\n const esm = liveDev ? buildLiveESM : buildESM\n const commonjs = liveDev ? buildLiveCommonJS : buildCommonJS\n if (dialects.includes('esm')) esm()\n if (dialects.includes('commonjs')) commonjs()\n await unlinkImports(pkg, 'src')\n unlinkSelfDep(pkg, 'src')\n\n console.debug(chalk.cyan.dim('moving to ./dist'))\n syncContentSync('.tshy-build', 'dist')\n console.debug(chalk.cyan.dim('cleaning build temp dir'))\n\n await cleanBuildTmp()\n\n linkSelfDep(pkg, 'dist')\n\n if (pkg.imports) {\n console.debug('linking package imports', pkg.imports)\n if (dialects.includes('commonjs'))\n await linkImports(pkg, 'dist/commonjs', true)\n if (dialects.includes('esm')) await linkImports(pkg, 'dist/esm', true)\n if (saveImports('dist/.tshy-link-imports.mjs')) {\n pkg.scripts = pkg.scripts || {}\n pkg.scripts.preinstall =\n 'node -e \"import(process.argv[1]).catch(()=>{})\" ' +\n 'dist/.tshy-link-imports.mjs'\n }\n }\n\n console.debug(chalk.cyan.dim('chmod bins'))\n bins()\n console.debug(chalk.cyan.dim('write package.json'))\n writePackage()\n}\n"]}
{"version":3,"file":"build.d.ts","sourceRoot":"","sources":["../../src/build.ts"],"names":[],"mappings":"AAcA,OAAO,eAAe,CAAA;;AAUtB,wBA0CC","sourcesContent":["import chalk from 'chalk'\nimport config from './config.js'\nimport { syncContentSync } from 'sync-content'\nimport bins from './bins.js'\nimport { buildCommonJS } from './build-commonjs.js'\nimport { buildESM } from './build-esm.js'\nimport cleanBuildTmp from './clean-build-tmp.js'\nimport * as console from './console.js'\nimport dialects from './dialects.js'\nimport pkg from './package.js'\nimport {\n link as linkSelfDep,\n unlink as unlinkSelfDep,\n} from './self-link.js'\nimport './tsconfig.js'\nimport {\n link as linkImports,\n save as saveImports,\n unlink as unlinkImports,\n} from './unbuilt-imports.js'\nimport writePackage from './write-package.js'\nimport { buildLiveESM } from './build-live-esm.js'\nimport { buildLiveCommonJS } from './build-live-commonjs.js'\n\nexport default async () => {\n await cleanBuildTmp()\n\n linkSelfDep(pkg, 'src')\n await linkImports(pkg, 'src')\n const liveDev =\n config.liveDev &&\n process.env.npm_command !== 'publish' &&\n process.env.npm_command !== 'pack'\n const esm = liveDev ? buildLiveESM : buildESM\n const commonjs = liveDev ? buildLiveCommonJS : buildCommonJS\n if (dialects.includes('esm')) esm()\n if (dialects.includes('commonjs')) commonjs()\n await unlinkImports(pkg, 'src')\n unlinkSelfDep(pkg, 'src')\n\n console.debug(chalk.cyan.dim('moving to ./dist'))\n syncContentSync('.tshy-build', 'dist')\n console.debug(chalk.cyan.dim('cleaning build temp dir'))\n\n await cleanBuildTmp()\n\n linkSelfDep(pkg, 'dist')\n\n if (pkg.imports) {\n console.debug('linking package imports', pkg.imports)\n if (dialects.includes('commonjs'))\n await linkImports(pkg, 'dist/commonjs', true)\n if (dialects.includes('esm')) await linkImports(pkg, 'dist/esm', true)\n if (saveImports('dist/.tshy-link-imports.mjs')) {\n const scripts = (pkg.scripts || {}) as Record<string, string>\n scripts.preinstall =\n 'node -e \"import(process.argv[1]).catch(()=>{})\" ' +\n 'dist/.tshy-link-imports.mjs'\n pkg.scripts = scripts\n }\n }\n\n console.debug(chalk.cyan.dim('chmod bins'))\n bins()\n console.debug(chalk.cyan.dim('write package.json'))\n writePackage()\n}\n"]}

@@ -44,6 +44,7 @@ import chalk from 'chalk';

if (saveImports('dist/.tshy-link-imports.mjs')) {
pkg.scripts = pkg.scripts || {};
pkg.scripts.preinstall =
const scripts = (pkg.scripts || {});
scripts.preinstall =
'node -e "import(process.argv[1]).catch(()=>{})" ' +
'dist/.tshy-link-imports.mjs';
pkg.scripts = scripts;
}

@@ -50,0 +51,0 @@ }

@@ -1,1 +0,1 @@

{"version":3,"file":"build.js","sourceRoot":"","sources":["../../src/build.ts"],"names":[],"mappings":"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","sourcesContent":["import chalk from 'chalk'\nimport config from './config.js'\nimport { syncContentSync } from 'sync-content'\nimport bins from './bins.js'\nimport { buildCommonJS } from './build-commonjs.js'\nimport { buildESM } from './build-esm.js'\nimport cleanBuildTmp from './clean-build-tmp.js'\nimport * as console from './console.js'\nimport dialects from './dialects.js'\nimport pkg from './package.js'\nimport {\n link as linkSelfDep,\n unlink as unlinkSelfDep,\n} from './self-link.js'\nimport './tsconfig.js'\nimport {\n link as linkImports,\n save as saveImports,\n unlink as unlinkImports,\n} from './unbuilt-imports.js'\nimport writePackage from './write-package.js'\nimport { buildLiveESM } from './build-live-esm.js'\nimport { buildLiveCommonJS } from './build-live-commonjs.js'\n\nexport default async () => {\n await cleanBuildTmp()\n\n linkSelfDep(pkg, 'src')\n await linkImports(pkg, 'src')\n const liveDev =\n config.liveDev &&\n process.env.npm_command !== 'publish' &&\n process.env.npm_command !== 'pack'\n const esm = liveDev ? buildLiveESM : buildESM\n const commonjs = liveDev ? buildLiveCommonJS : buildCommonJS\n if (dialects.includes('esm')) esm()\n if (dialects.includes('commonjs')) commonjs()\n await unlinkImports(pkg, 'src')\n unlinkSelfDep(pkg, 'src')\n\n console.debug(chalk.cyan.dim('moving to ./dist'))\n syncContentSync('.tshy-build', 'dist')\n console.debug(chalk.cyan.dim('cleaning build temp dir'))\n\n await cleanBuildTmp()\n\n linkSelfDep(pkg, 'dist')\n\n if (pkg.imports) {\n console.debug('linking package imports', pkg.imports)\n if (dialects.includes('commonjs'))\n await linkImports(pkg, 'dist/commonjs', true)\n if (dialects.includes('esm')) await linkImports(pkg, 'dist/esm', true)\n if (saveImports('dist/.tshy-link-imports.mjs')) {\n pkg.scripts = pkg.scripts || {}\n pkg.scripts.preinstall =\n 'node -e \"import(process.argv[1]).catch(()=>{})\" ' +\n 'dist/.tshy-link-imports.mjs'\n }\n }\n\n console.debug(chalk.cyan.dim('chmod bins'))\n bins()\n console.debug(chalk.cyan.dim('write package.json'))\n writePackage()\n}\n"]}
{"version":3,"file":"build.js","sourceRoot":"","sources":["../../src/build.ts"],"names":[],"mappings":"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","sourcesContent":["import chalk from 'chalk'\nimport config from './config.js'\nimport { syncContentSync } from 'sync-content'\nimport bins from './bins.js'\nimport { buildCommonJS } from './build-commonjs.js'\nimport { buildESM } from './build-esm.js'\nimport cleanBuildTmp from './clean-build-tmp.js'\nimport * as console from './console.js'\nimport dialects from './dialects.js'\nimport pkg from './package.js'\nimport {\n link as linkSelfDep,\n unlink as unlinkSelfDep,\n} from './self-link.js'\nimport './tsconfig.js'\nimport {\n link as linkImports,\n save as saveImports,\n unlink as unlinkImports,\n} from './unbuilt-imports.js'\nimport writePackage from './write-package.js'\nimport { buildLiveESM } from './build-live-esm.js'\nimport { buildLiveCommonJS } from './build-live-commonjs.js'\n\nexport default async () => {\n await cleanBuildTmp()\n\n linkSelfDep(pkg, 'src')\n await linkImports(pkg, 'src')\n const liveDev =\n config.liveDev &&\n process.env.npm_command !== 'publish' &&\n process.env.npm_command !== 'pack'\n const esm = liveDev ? buildLiveESM : buildESM\n const commonjs = liveDev ? buildLiveCommonJS : buildCommonJS\n if (dialects.includes('esm')) esm()\n if (dialects.includes('commonjs')) commonjs()\n await unlinkImports(pkg, 'src')\n unlinkSelfDep(pkg, 'src')\n\n console.debug(chalk.cyan.dim('moving to ./dist'))\n syncContentSync('.tshy-build', 'dist')\n console.debug(chalk.cyan.dim('cleaning build temp dir'))\n\n await cleanBuildTmp()\n\n linkSelfDep(pkg, 'dist')\n\n if (pkg.imports) {\n console.debug('linking package imports', pkg.imports)\n if (dialects.includes('commonjs'))\n await linkImports(pkg, 'dist/commonjs', true)\n if (dialects.includes('esm')) await linkImports(pkg, 'dist/esm', true)\n if (saveImports('dist/.tshy-link-imports.mjs')) {\n const scripts = (pkg.scripts || {}) as Record<string, string>\n scripts.preinstall =\n 'node -e \"import(process.argv[1]).catch(()=>{})\" ' +\n 'dist/.tshy-link-imports.mjs'\n pkg.scripts = scripts\n }\n }\n\n console.debug(chalk.cyan.dim('chmod bins'))\n bins()\n console.debug(chalk.cyan.dim('write package.json'))\n writePackage()\n}\n"]}

@@ -1,4 +0,4 @@

import { Package } from './types.js';
import type { Package } from './types.js';
declare const _default: (pkg: Package) => import("resolve-import/raw").Imports | undefined;
export default _default;
//# sourceMappingURL=built-imports.d.ts.map

@@ -1,1 +0,1 @@

{"version":3,"file":"built-imports.d.ts","sourceRoot":"","sources":["../../src/built-imports.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAA;;AAIpC,wBAeC","sourcesContent":["// merge tshy.imports with package.json imports\n\nimport { Package } from './types.js'\n\n// strip the ./src/ and turn ts extension into js for built imports\n// leave unbuilt imports alone, they'll be symlinked\nexport default (pkg: Package): Package['imports'] => {\n const { imports } = pkg\n if (!imports) return undefined\n return Object.fromEntries(\n Object.entries(imports).map(([k, v]) => [\n k,\n typeof v === 'string' && v.startsWith('./src/') ?\n './' +\n v\n .substring('./src/'.length)\n .replace(/\\.([cm]?)ts$/, '.$1js')\n .replace(/\\.tsx$/, '.js')\n : v,\n ]),\n )\n}\n"]}
{"version":3,"file":"built-imports.d.ts","sourceRoot":"","sources":["../../src/built-imports.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAA;;AAIzC,wBAeC","sourcesContent":["// merge tshy.imports with package.json imports\n\nimport type { Package } from './types.js'\n\n// strip the ./src/ and turn ts extension into js for built imports\n// leave unbuilt imports alone, they'll be symlinked\nexport default (pkg: Package): Package['imports'] => {\n const { imports } = pkg\n if (!imports) return undefined\n return Object.fromEntries(\n Object.entries(imports).map(([k, v]) => [\n k,\n typeof v === 'string' && v.startsWith('./src/') ?\n './' +\n v\n .substring('./src/'.length)\n .replace(/\\.([cm]?)ts$/, '.$1js')\n .replace(/\\.tsx$/, '.js')\n : v,\n ]),\n )\n}\n"]}

@@ -1,1 +0,1 @@

{"version":3,"file":"built-imports.js","sourceRoot":"","sources":["../../src/built-imports.ts"],"names":[],"mappings":"AAAA,+CAA+C;AAI/C,mEAAmE;AACnE,oDAAoD;AACpD,eAAe,CAAC,GAAY,EAAsB,EAAE,CAAC;IACnD,MAAM,EAAE,OAAO,EAAE,GAAG,GAAG,CAAA;IACvB,IAAI,CAAC,OAAO;QAAE,OAAO,SAAS,CAAA;IAC9B,OAAO,MAAM,CAAC,WAAW,CACvB,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC;QACtC,CAAC;QACD,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC;YAC/C,IAAI;gBACJ,CAAC;qBACE,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC;qBAC1B,OAAO,CAAC,cAAc,EAAE,OAAO,CAAC;qBAChC,OAAO,CAAC,QAAQ,EAAE,KAAK,CAAC;YAC7B,CAAC,CAAC,CAAC;KACJ,CAAC,CACH,CAAA;AAAA,CACF,CAAA","sourcesContent":["// merge tshy.imports with package.json imports\n\nimport { Package } from './types.js'\n\n// strip the ./src/ and turn ts extension into js for built imports\n// leave unbuilt imports alone, they'll be symlinked\nexport default (pkg: Package): Package['imports'] => {\n const { imports } = pkg\n if (!imports) return undefined\n return Object.fromEntries(\n Object.entries(imports).map(([k, v]) => [\n k,\n typeof v === 'string' && v.startsWith('./src/') ?\n './' +\n v\n .substring('./src/'.length)\n .replace(/\\.([cm]?)ts$/, '.$1js')\n .replace(/\\.tsx$/, '.js')\n : v,\n ]),\n )\n}\n"]}
{"version":3,"file":"built-imports.js","sourceRoot":"","sources":["../../src/built-imports.ts"],"names":[],"mappings":"AAAA,+CAA+C;AAI/C,mEAAmE;AACnE,oDAAoD;AACpD,eAAe,CAAC,GAAY,EAAsB,EAAE,CAAC;IACnD,MAAM,EAAE,OAAO,EAAE,GAAG,GAAG,CAAA;IACvB,IAAI,CAAC,OAAO;QAAE,OAAO,SAAS,CAAA;IAC9B,OAAO,MAAM,CAAC,WAAW,CACvB,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC;QACtC,CAAC;QACD,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC;YAC/C,IAAI;gBACJ,CAAC;qBACE,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC;qBAC1B,OAAO,CAAC,cAAc,EAAE,OAAO,CAAC;qBAChC,OAAO,CAAC,QAAQ,EAAE,KAAK,CAAC;YAC7B,CAAC,CAAC,CAAC;KACJ,CAAC,CACH,CAAA;AAAA,CACF,CAAA","sourcesContent":["// merge tshy.imports with package.json imports\n\nimport type { Package } from './types.js'\n\n// strip the ./src/ and turn ts extension into js for built imports\n// leave unbuilt imports alone, they'll be symlinked\nexport default (pkg: Package): Package['imports'] => {\n const { imports } = pkg\n if (!imports) return undefined\n return Object.fromEntries(\n Object.entries(imports).map(([k, v]) => [\n k,\n typeof v === 'string' && v.startsWith('./src/') ?\n './' +\n v\n .substring('./src/'.length)\n .replace(/\\.([cm]?)ts$/, '.$1js')\n .replace(/\\.tsx$/, '.js')\n : v,\n ]),\n )\n}\n"]}

@@ -1,4 +0,4 @@

import { TshyConfig } from './types.js';
import type { TshyConfig } from './types.js';
declare const config: TshyConfig;
export default config;
//# sourceMappingURL=config.d.ts.map

@@ -1,1 +0,1 @@

{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/config.ts"],"names":[],"mappings":"AAQA,OAAO,EAEL,UAAU,EAEX,MAAM,YAAY,CAAA;AA2GnB,QAAA,MAAM,MAAM,EAAE,UAAoC,CAAA;AAClD,eAAe,MAAM,CAAA","sourcesContent":["// get the config and package and stuff\n\nimport chalk from 'chalk'\nimport { Minimatch } from 'minimatch'\nimport * as console from './console.js'\nimport fail from './fail.js'\nimport pkg from './package.js'\nimport sources from './sources.js'\nimport {\n Package,\n TshyConfig,\n TshyConfigMaybeGlobExports,\n} from './types.js'\nimport validDialects from './valid-dialects.js'\nimport validExclude from './valid-exclude.js'\nimport validExports from './valid-exports.js'\nimport validExtraDialects from './valid-extra-dialects.js'\nimport validImports from './valid-imports.js'\nimport validProject from './valid-project.js'\nimport validCompiler from './valid-compiler.js'\n\nconst validBoolean = (e: Record<string, any>, name: string) => {\n const v = e[name]\n if (v === undefined || typeof v === 'boolean') return true\n fail(`tshy.${name} must be a boolean value if specified, got: ` + v)\n return process.exit(1)\n}\n\nconst isStringArray = (e: any): e is string[] =>\n !!e && Array.isArray(e) && !e.some(e => typeof e !== 'string')\n\nconst validConfig = (e: any): e is TshyConfigMaybeGlobExports =>\n !!e &&\n typeof e === 'object' &&\n (e.exports === undefined ||\n typeof e.exports === 'string' ||\n isStringArray(e.exports) ||\n validExports(e.exports)) &&\n (e.dialects === undefined || validDialects(e.dialects)) &&\n (e.project === undefined || validProject(e.project)) &&\n (e.exclude === undefined || validExclude(e.exclude)) &&\n validExtraDialects(e) &&\n validCompiler(e.compiler) &&\n validBoolean(e, 'selfLink') &&\n validBoolean(e, 'main') &&\n validBoolean(e, 'liveDev')\n\nconst match = (e: string, pattern: Minimatch[]): boolean =>\n pattern.some(m => m.match(e))\n\nconst parsePattern = (p: string | string[]): Minimatch[] =>\n Array.isArray(p) ?\n p.map(p => new Minimatch(p.replace(/^\\.\\//, '')))\n : parsePattern([p])\n\nconst getConfig = (pkg: Package, sources: Set<string>): TshyConfig => {\n const tshy: TshyConfigMaybeGlobExports =\n validConfig(pkg.tshy) ? pkg.tshy : {}\n let exportsConfig = tshy.exports\n if (typeof exportsConfig === 'string' || Array.isArray(exportsConfig)) {\n // Strip off the `./src` prefix and the extension\n // exports: \"src/**/*.ts\" => exports: {\"./foo\": \"./src/foo.ts\"}\n const exp: Exclude<TshyConfig['exports'], undefined> = {}\n const pattern: string | string[] = exportsConfig\n const m = parsePattern(pattern)\n for (const e of sources) {\n if (!match(e.replace(/^\\.\\//, ''), m)) continue\n // index is main, anything else is a subpath\n const sp =\n /^\\.\\/src\\/index.([mc]?[jt]s|[jt]sx)$/.test(e) ? '.' : (\n './' +\n e.replace(/^\\.\\/src\\//, '').replace(/\\.([mc]?[tj]s|[jt]sx)$/, '')\n )\n exp[sp] = `./${e}`\n }\n /* c8 ignore start - should be impossible */\n if (!validExports(exp)) {\n console.error('invalid exports pattern, using default exports')\n delete tshy.exports\n exportsConfig = undefined\n } else {\n /* c8 ignore stop */\n exp['./package.json'] = './package.json'\n tshy.exports = exp\n }\n }\n const config = { ...tshy } as TshyConfig\n const ti = config as TshyConfig & { imports?: any }\n if (ti.imports) {\n console.debug(\n chalk.cyan.dim('imports') + ' moving from tshy config to top level',\n )\n pkg.imports = {\n ...pkg.imports,\n ...ti.imports,\n }\n delete ti.imports\n }\n validImports(pkg)\n if (!exportsConfig) {\n const e: Exclude<TshyConfig['exports'], undefined> = {\n './package.json': './package.json',\n }\n for (const i of sources) {\n if (/^\\.\\/src\\/index\\.[^\\.]+$/.test(i)) {\n e['.'] = i\n break\n }\n }\n config.exports = e\n tshy.exports = e\n exportsConfig = e\n }\n // return the filled out config, but leave the package.json\n // exports as they were, as long as they turned out to be valid.\n pkg.tshy = { ...tshy, exports: exportsConfig }\n return config\n}\n\nconst config: TshyConfig = getConfig(pkg, sources)\nexport default config\n"]}
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/config.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAEV,UAAU,EAEX,MAAM,YAAY,CAAA;AA6GnB,QAAA,MAAM,MAAM,EAAE,UAAoC,CAAA;AAClD,eAAe,MAAM,CAAA","sourcesContent":["// get the config and package and stuff\n\nimport chalk from 'chalk'\nimport { Minimatch } from 'minimatch'\nimport * as console from './console.js'\nimport fail from './fail.js'\nimport pkg from './package.js'\nimport sources from './sources.js'\nimport type {\n Package,\n TshyConfig,\n TshyConfigMaybeGlobExports,\n} from './types.js'\nimport validDialects from './valid-dialects.js'\nimport validExclude from './valid-exclude.js'\nimport validExports from './valid-exports.js'\nimport validExtraDialects from './valid-extra-dialects.js'\nimport validImports from './valid-imports.js'\nimport validProject from './valid-project.js'\nimport validCompiler from './valid-compiler.js'\n\nconst validBoolean = (e: Record<string, unknown>, name: string) => {\n const v = e[name]\n if (v === undefined || typeof v === 'boolean') return true\n fail(`tshy.${name} must be a boolean value if specified, got: ` + v)\n return process.exit(1)\n}\n\nconst isStringArray = (e: unknown): e is string[] =>\n !!e && Array.isArray(e) && !e.some(e => typeof e !== 'string')\n\nconst isRecord = (e: unknown): e is Record<string, unknown> =>\n !!e && typeof e === 'object' && !Array.isArray(e)\n\nconst validConfig = (e: unknown): e is TshyConfigMaybeGlobExports =>\n isRecord(e) &&\n (e.exports === undefined ||\n typeof e.exports === 'string' ||\n isStringArray(e.exports) ||\n validExports(e.exports)) &&\n (e.dialects === undefined || validDialects(e.dialects)) &&\n (e.project === undefined || validProject(e.project)) &&\n (e.exclude === undefined || validExclude(e.exclude)) &&\n validExtraDialects(e) &&\n validCompiler(e.compiler) &&\n validBoolean(e, 'selfLink') &&\n validBoolean(e, 'main') &&\n validBoolean(e, 'liveDev')\n\nconst match = (e: string, pattern: Minimatch[]): boolean =>\n pattern.some(m => m.match(e))\n\nconst parsePattern = (p: string | string[]): Minimatch[] =>\n Array.isArray(p) ?\n p.map(p => new Minimatch(p.replace(/^\\.\\//, '')))\n : parsePattern([p])\n\nconst getConfig = (pkg: Package, sources: Set<string>): TshyConfig => {\n const tshy: TshyConfigMaybeGlobExports =\n validConfig(pkg.tshy) ? pkg.tshy : {}\n let exportsConfig = tshy.exports\n if (typeof exportsConfig === 'string' || Array.isArray(exportsConfig)) {\n // Strip off the `./src` prefix and the extension\n // exports: \"src/**/*.ts\" => exports: {\"./foo\": \"./src/foo.ts\"}\n const exp: Exclude<TshyConfig['exports'], undefined> = {}\n const pattern: string | string[] = exportsConfig\n const m = parsePattern(pattern)\n for (const e of sources) {\n if (!match(e.replace(/^\\.\\//, ''), m)) continue\n // index is main, anything else is a subpath\n const sp =\n /^\\.\\/src\\/index.([mc]?[jt]s|[jt]sx)$/.test(e) ? '.' : (\n './' +\n e.replace(/^\\.\\/src\\//, '').replace(/\\.([mc]?[tj]s|[jt]sx)$/, '')\n )\n exp[sp] = `./${e}`\n }\n /* c8 ignore start - should be impossible */\n if (!validExports(exp)) {\n console.error('invalid exports pattern, using default exports')\n delete tshy.exports\n exportsConfig = undefined\n } else {\n /* c8 ignore stop */\n exp['./package.json'] = './package.json'\n tshy.exports = exp\n }\n }\n const config = { ...tshy } as TshyConfig\n const ti = config as TshyConfig & { imports?: unknown }\n if (ti.imports) {\n console.debug(\n chalk.cyan.dim('imports') + ' moving from tshy config to top level',\n )\n pkg.imports = {\n ...pkg.imports,\n ...ti.imports,\n }\n delete ti.imports\n }\n validImports(pkg)\n if (!exportsConfig) {\n const e: Exclude<TshyConfig['exports'], undefined> = {\n './package.json': './package.json',\n }\n for (const i of sources) {\n if (/^\\.\\/src\\/index\\.[^.]+$/.test(i)) {\n e['.'] = i\n break\n }\n }\n config.exports = e\n tshy.exports = e\n exportsConfig = e\n }\n // return the filled out config, but leave the package.json\n // exports as they were, as long as they turned out to be valid.\n pkg.tshy = { ...tshy, exports: exportsConfig }\n return config\n}\n\nconst config: TshyConfig = getConfig(pkg, sources)\nexport default config\n"]}

@@ -23,4 +23,4 @@ // get the config and package and stuff

const isStringArray = (e) => !!e && Array.isArray(e) && !e.some(e => typeof e !== 'string');
const validConfig = (e) => !!e &&
typeof e === 'object' &&
const isRecord = (e) => !!e && typeof e === 'object' && !Array.isArray(e);
const validConfig = (e) => isRecord(e) &&
(e.exports === undefined ||

@@ -87,3 +87,3 @@ typeof e.exports === 'string' ||

for (const i of sources) {
if (/^\.\/src\/index\.[^\.]+$/.test(i)) {
if (/^\.\/src\/index\.[^.]+$/.test(i)) {
e['.'] = i;

@@ -90,0 +90,0 @@ break;

@@ -1,1 +0,1 @@

{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/config.ts"],"names":[],"mappings":"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","sourcesContent":["// get the config and package and stuff\n\nimport chalk from 'chalk'\nimport { Minimatch } from 'minimatch'\nimport * as console from './console.js'\nimport fail from './fail.js'\nimport pkg from './package.js'\nimport sources from './sources.js'\nimport {\n Package,\n TshyConfig,\n TshyConfigMaybeGlobExports,\n} from './types.js'\nimport validDialects from './valid-dialects.js'\nimport validExclude from './valid-exclude.js'\nimport validExports from './valid-exports.js'\nimport validExtraDialects from './valid-extra-dialects.js'\nimport validImports from './valid-imports.js'\nimport validProject from './valid-project.js'\nimport validCompiler from './valid-compiler.js'\n\nconst validBoolean = (e: Record<string, any>, name: string) => {\n const v = e[name]\n if (v === undefined || typeof v === 'boolean') return true\n fail(`tshy.${name} must be a boolean value if specified, got: ` + v)\n return process.exit(1)\n}\n\nconst isStringArray = (e: any): e is string[] =>\n !!e && Array.isArray(e) && !e.some(e => typeof e !== 'string')\n\nconst validConfig = (e: any): e is TshyConfigMaybeGlobExports =>\n !!e &&\n typeof e === 'object' &&\n (e.exports === undefined ||\n typeof e.exports === 'string' ||\n isStringArray(e.exports) ||\n validExports(e.exports)) &&\n (e.dialects === undefined || validDialects(e.dialects)) &&\n (e.project === undefined || validProject(e.project)) &&\n (e.exclude === undefined || validExclude(e.exclude)) &&\n validExtraDialects(e) &&\n validCompiler(e.compiler) &&\n validBoolean(e, 'selfLink') &&\n validBoolean(e, 'main') &&\n validBoolean(e, 'liveDev')\n\nconst match = (e: string, pattern: Minimatch[]): boolean =>\n pattern.some(m => m.match(e))\n\nconst parsePattern = (p: string | string[]): Minimatch[] =>\n Array.isArray(p) ?\n p.map(p => new Minimatch(p.replace(/^\\.\\//, '')))\n : parsePattern([p])\n\nconst getConfig = (pkg: Package, sources: Set<string>): TshyConfig => {\n const tshy: TshyConfigMaybeGlobExports =\n validConfig(pkg.tshy) ? pkg.tshy : {}\n let exportsConfig = tshy.exports\n if (typeof exportsConfig === 'string' || Array.isArray(exportsConfig)) {\n // Strip off the `./src` prefix and the extension\n // exports: \"src/**/*.ts\" => exports: {\"./foo\": \"./src/foo.ts\"}\n const exp: Exclude<TshyConfig['exports'], undefined> = {}\n const pattern: string | string[] = exportsConfig\n const m = parsePattern(pattern)\n for (const e of sources) {\n if (!match(e.replace(/^\\.\\//, ''), m)) continue\n // index is main, anything else is a subpath\n const sp =\n /^\\.\\/src\\/index.([mc]?[jt]s|[jt]sx)$/.test(e) ? '.' : (\n './' +\n e.replace(/^\\.\\/src\\//, '').replace(/\\.([mc]?[tj]s|[jt]sx)$/, '')\n )\n exp[sp] = `./${e}`\n }\n /* c8 ignore start - should be impossible */\n if (!validExports(exp)) {\n console.error('invalid exports pattern, using default exports')\n delete tshy.exports\n exportsConfig = undefined\n } else {\n /* c8 ignore stop */\n exp['./package.json'] = './package.json'\n tshy.exports = exp\n }\n }\n const config = { ...tshy } as TshyConfig\n const ti = config as TshyConfig & { imports?: any }\n if (ti.imports) {\n console.debug(\n chalk.cyan.dim('imports') + ' moving from tshy config to top level',\n )\n pkg.imports = {\n ...pkg.imports,\n ...ti.imports,\n }\n delete ti.imports\n }\n validImports(pkg)\n if (!exportsConfig) {\n const e: Exclude<TshyConfig['exports'], undefined> = {\n './package.json': './package.json',\n }\n for (const i of sources) {\n if (/^\\.\\/src\\/index\\.[^\\.]+$/.test(i)) {\n e['.'] = i\n break\n }\n }\n config.exports = e\n tshy.exports = e\n exportsConfig = e\n }\n // return the filled out config, but leave the package.json\n // exports as they were, as long as they turned out to be valid.\n pkg.tshy = { ...tshy, exports: exportsConfig }\n return config\n}\n\nconst config: TshyConfig = getConfig(pkg, sources)\nexport default config\n"]}
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/config.ts"],"names":[],"mappings":"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","sourcesContent":["// get the config and package and stuff\n\nimport chalk from 'chalk'\nimport { Minimatch } from 'minimatch'\nimport * as console from './console.js'\nimport fail from './fail.js'\nimport pkg from './package.js'\nimport sources from './sources.js'\nimport type {\n Package,\n TshyConfig,\n TshyConfigMaybeGlobExports,\n} from './types.js'\nimport validDialects from './valid-dialects.js'\nimport validExclude from './valid-exclude.js'\nimport validExports from './valid-exports.js'\nimport validExtraDialects from './valid-extra-dialects.js'\nimport validImports from './valid-imports.js'\nimport validProject from './valid-project.js'\nimport validCompiler from './valid-compiler.js'\n\nconst validBoolean = (e: Record<string, unknown>, name: string) => {\n const v = e[name]\n if (v === undefined || typeof v === 'boolean') return true\n fail(`tshy.${name} must be a boolean value if specified, got: ` + v)\n return process.exit(1)\n}\n\nconst isStringArray = (e: unknown): e is string[] =>\n !!e && Array.isArray(e) && !e.some(e => typeof e !== 'string')\n\nconst isRecord = (e: unknown): e is Record<string, unknown> =>\n !!e && typeof e === 'object' && !Array.isArray(e)\n\nconst validConfig = (e: unknown): e is TshyConfigMaybeGlobExports =>\n isRecord(e) &&\n (e.exports === undefined ||\n typeof e.exports === 'string' ||\n isStringArray(e.exports) ||\n validExports(e.exports)) &&\n (e.dialects === undefined || validDialects(e.dialects)) &&\n (e.project === undefined || validProject(e.project)) &&\n (e.exclude === undefined || validExclude(e.exclude)) &&\n validExtraDialects(e) &&\n validCompiler(e.compiler) &&\n validBoolean(e, 'selfLink') &&\n validBoolean(e, 'main') &&\n validBoolean(e, 'liveDev')\n\nconst match = (e: string, pattern: Minimatch[]): boolean =>\n pattern.some(m => m.match(e))\n\nconst parsePattern = (p: string | string[]): Minimatch[] =>\n Array.isArray(p) ?\n p.map(p => new Minimatch(p.replace(/^\\.\\//, '')))\n : parsePattern([p])\n\nconst getConfig = (pkg: Package, sources: Set<string>): TshyConfig => {\n const tshy: TshyConfigMaybeGlobExports =\n validConfig(pkg.tshy) ? pkg.tshy : {}\n let exportsConfig = tshy.exports\n if (typeof exportsConfig === 'string' || Array.isArray(exportsConfig)) {\n // Strip off the `./src` prefix and the extension\n // exports: \"src/**/*.ts\" => exports: {\"./foo\": \"./src/foo.ts\"}\n const exp: Exclude<TshyConfig['exports'], undefined> = {}\n const pattern: string | string[] = exportsConfig\n const m = parsePattern(pattern)\n for (const e of sources) {\n if (!match(e.replace(/^\\.\\//, ''), m)) continue\n // index is main, anything else is a subpath\n const sp =\n /^\\.\\/src\\/index.([mc]?[jt]s|[jt]sx)$/.test(e) ? '.' : (\n './' +\n e.replace(/^\\.\\/src\\//, '').replace(/\\.([mc]?[tj]s|[jt]sx)$/, '')\n )\n exp[sp] = `./${e}`\n }\n /* c8 ignore start - should be impossible */\n if (!validExports(exp)) {\n console.error('invalid exports pattern, using default exports')\n delete tshy.exports\n exportsConfig = undefined\n } else {\n /* c8 ignore stop */\n exp['./package.json'] = './package.json'\n tshy.exports = exp\n }\n }\n const config = { ...tshy } as TshyConfig\n const ti = config as TshyConfig & { imports?: unknown }\n if (ti.imports) {\n console.debug(\n chalk.cyan.dim('imports') + ' moving from tshy config to top level',\n )\n pkg.imports = {\n ...pkg.imports,\n ...ti.imports,\n }\n delete ti.imports\n }\n validImports(pkg)\n if (!exportsConfig) {\n const e: Exclude<TshyConfig['exports'], undefined> = {\n './package.json': './package.json',\n }\n for (const i of sources) {\n if (/^\\.\\/src\\/index\\.[^.]+$/.test(i)) {\n e['.'] = i\n break\n }\n }\n config.exports = e\n tshy.exports = e\n exportsConfig = e\n }\n // return the filled out config, but leave the package.json\n // exports as they were, as long as they turned out to be valid.\n pkg.tshy = { ...tshy, exports: exportsConfig }\n return config\n}\n\nconst config: TshyConfig = getConfig(pkg, sources)\nexport default config\n"]}

@@ -1,1 +0,1 @@

{"version":3,"file":"console.d.ts","sourceRoot":"","sources":["../../src/console.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,KAAK,uBAGjB,CAAA;AACD,eAAO,MAAM,KAAK,uBAGjB,CAAA;AAGD,eAAO,MAAM,GAAG,uBAEf,CAAA;AAED,eAAO,MAAM,KAAK,YAKjB,CAAA","sourcesContent":["// only print the logs if it fails, or if TSHY_VERBOSE is set\n\nlet verbose = parseInt(process.env.TSHY_VERBOSE || '0')\n\nconst errors: any[][] = []\nexport const error = (...a: any[]) => {\n if (verbose >= 1) console.error(...a)\n else errors.push(a)\n}\nexport const debug = (...a: any[]) => {\n if (verbose >= 2) console.error(...a)\n else errors.push(a)\n}\n\n// we only print stdout on success anyway\nexport const log = (...a: any[]) => {\n if (verbose >= 1) console.log(...a)\n}\n\nexport const print = () => {\n for (const a of errors) {\n console.error(...a)\n }\n errors.length = 0\n}\n"]}
{"version":3,"file":"console.d.ts","sourceRoot":"","sources":["../../src/console.ts"],"names":[],"mappings":"AAOA,eAAO,MAAM,KAAK,uBAGjB,CAAA;AACD,eAAO,MAAM,KAAK,uBAGjB,CAAA;AAGD,eAAO,MAAM,GAAG,uBAEf,CAAA;AAED,eAAO,MAAM,KAAK,YAKjB,CAAA","sourcesContent":["// only print the logs if it fails, or if TSHY_VERBOSE is set\n//oxlint-disable no-console\n//oxlint-disable no-explicit-any\n\nlet verbose = parseInt(process.env.TSHY_VERBOSE || '0')\n\nconst errors: unknown[][] = []\nexport const error = (...a: any[]) => {\n if (verbose >= 1) console.error(...a)\n else errors.push(a)\n}\nexport const debug = (...a: any[]) => {\n if (verbose >= 2) console.error(...a)\n else errors.push(a)\n}\n\n// we only print stdout on success anyway\nexport const log = (...a: any[]) => {\n if (verbose >= 1) console.log(...a)\n}\n\nexport const print = () => {\n for (const a of errors) {\n console.error(...a)\n }\n errors.length = 0\n}\n"]}
// only print the logs if it fails, or if TSHY_VERBOSE is set
//oxlint-disable no-console
//oxlint-disable no-explicit-any
let verbose = parseInt(process.env.TSHY_VERBOSE || '0');

@@ -3,0 +5,0 @@ const errors = [];

@@ -1,1 +0,1 @@

{"version":3,"file":"console.js","sourceRoot":"","sources":["../../src/console.ts"],"names":[],"mappings":"AAAA,6DAA6D;AAE7D,IAAI,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,YAAY,IAAI,GAAG,CAAC,CAAA;AAEvD,MAAM,MAAM,GAAY,EAAE,CAAA;AAC1B,MAAM,CAAC,MAAM,KAAK,GAAG,CAAC,GAAG,CAAQ,EAAE,EAAE,CAAC;IACpC,IAAI,OAAO,IAAI,CAAC;QAAE,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAA;;QAChC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;AAAA,CACpB,CAAA;AACD,MAAM,CAAC,MAAM,KAAK,GAAG,CAAC,GAAG,CAAQ,EAAE,EAAE,CAAC;IACpC,IAAI,OAAO,IAAI,CAAC;QAAE,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAA;;QAChC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;AAAA,CACpB,CAAA;AAED,yCAAyC;AACzC,MAAM,CAAC,MAAM,GAAG,GAAG,CAAC,GAAG,CAAQ,EAAE,EAAE,CAAC;IAClC,IAAI,OAAO,IAAI,CAAC;QAAE,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAA;AAAA,CACpC,CAAA;AAED,MAAM,CAAC,MAAM,KAAK,GAAG,GAAG,EAAE,CAAC;IACzB,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;QACvB,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAA;IACrB,CAAC;IACD,MAAM,CAAC,MAAM,GAAG,CAAC,CAAA;AAAA,CAClB,CAAA","sourcesContent":["// only print the logs if it fails, or if TSHY_VERBOSE is set\n\nlet verbose = parseInt(process.env.TSHY_VERBOSE || '0')\n\nconst errors: any[][] = []\nexport const error = (...a: any[]) => {\n if (verbose >= 1) console.error(...a)\n else errors.push(a)\n}\nexport const debug = (...a: any[]) => {\n if (verbose >= 2) console.error(...a)\n else errors.push(a)\n}\n\n// we only print stdout on success anyway\nexport const log = (...a: any[]) => {\n if (verbose >= 1) console.log(...a)\n}\n\nexport const print = () => {\n for (const a of errors) {\n console.error(...a)\n }\n errors.length = 0\n}\n"]}
{"version":3,"file":"console.js","sourceRoot":"","sources":["../../src/console.ts"],"names":[],"mappings":"AAAA,6DAA6D;AAC7D,2BAA2B;AAC3B,gCAAgC;AAEhC,IAAI,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,YAAY,IAAI,GAAG,CAAC,CAAA;AAEvD,MAAM,MAAM,GAAgB,EAAE,CAAA;AAC9B,MAAM,CAAC,MAAM,KAAK,GAAG,CAAC,GAAG,CAAQ,EAAE,EAAE,CAAC;IACpC,IAAI,OAAO,IAAI,CAAC;QAAE,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAA;;QAChC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;AAAA,CACpB,CAAA;AACD,MAAM,CAAC,MAAM,KAAK,GAAG,CAAC,GAAG,CAAQ,EAAE,EAAE,CAAC;IACpC,IAAI,OAAO,IAAI,CAAC;QAAE,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAA;;QAChC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;AAAA,CACpB,CAAA;AAED,yCAAyC;AACzC,MAAM,CAAC,MAAM,GAAG,GAAG,CAAC,GAAG,CAAQ,EAAE,EAAE,CAAC;IAClC,IAAI,OAAO,IAAI,CAAC;QAAE,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAA;AAAA,CACpC,CAAA;AAED,MAAM,CAAC,MAAM,KAAK,GAAG,GAAG,EAAE,CAAC;IACzB,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;QACvB,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAA;IACrB,CAAC;IACD,MAAM,CAAC,MAAM,GAAG,CAAC,CAAA;AAAA,CAClB,CAAA","sourcesContent":["// only print the logs if it fails, or if TSHY_VERBOSE is set\n//oxlint-disable no-console\n//oxlint-disable no-explicit-any\n\nlet verbose = parseInt(process.env.TSHY_VERBOSE || '0')\n\nconst errors: unknown[][] = []\nexport const error = (...a: any[]) => {\n if (verbose >= 1) console.error(...a)\n else errors.push(a)\n}\nexport const debug = (...a: any[]) => {\n if (verbose >= 2) console.error(...a)\n else errors.push(a)\n}\n\n// we only print stdout on success anyway\nexport const log = (...a: any[]) => {\n if (verbose >= 1) console.log(...a)\n}\n\nexport const print = () => {\n for (const a of errors) {\n console.error(...a)\n }\n errors.length = 0\n}\n"]}
import type { ConditionalValue, ExportsSubpaths } from 'resolve-import';
import type { PolyfillSet } from './polyfills.js';
import { Package, TshyConfig } from './types.js';
import type { Package, TshyConfig } from './types.js';
export declare const getImpTarget: (s: ConditionalValue | undefined, polyfills?: Map<string, PolyfillSet>) => string | null | undefined;

@@ -5,0 +5,0 @@ export declare const getReqTarget: (s: ConditionalValue | undefined, polyfills?: Map<string, PolyfillSet>) => string | null | undefined;

@@ -1,1 +0,1 @@

{"version":3,"file":"exports.d.ts","sourceRoot":"","sources":["../../src/exports.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,gBAAgB,EAEhB,eAAe,EAChB,MAAM,gBAAgB,CAAA;AAKvB,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAA;AAGjD,OAAO,EAAE,OAAO,EAAE,UAAU,EAAc,MAAM,YAAY,CAAA;AAuC5D,eAAO,MAAM,YAAY,sGAG8C,CAAA;AAEvE,eAAO,MAAM,YAAY,sGAUtB,CAAA;AAoIH,eAAO,MAAM,OAAO;;eAoCnB,CAAA;;AAKD,wBAA0B","sourcesContent":["import { relative, resolve } from 'node:path/posix'\nimport type {\n ConditionalValue,\n ConditionalValueObject,\n ExportsSubpaths,\n} from 'resolve-import'\nimport config from './config.js'\nimport dialects from './dialects.js'\nimport fail from './fail.js'\nimport pkg from './package.js'\nimport type { PolyfillSet } from './polyfills.js'\nimport polyfills from './polyfills.js'\nimport { resolveExport } from './resolve-export.js'\nimport { Package, TshyConfig, TshyExport } from './types.js'\nconst { esmDialects = [], commonjsDialects = [] } = config\n\nconst liveDev =\n config.liveDev &&\n process.env.npm_command !== 'publish' &&\n process.env.npm_command !== 'pack'\n\nconst getTargetForDialectCondition = <T extends string>(\n s: string | TshyExport | undefined | null,\n dialect: T,\n condition: T extends 'esm' ? 'import'\n : T extends 'commonjs' ? 'require'\n : T,\n type: T extends 'esm' ? 'esm'\n : T extends 'commonjs' ? 'commonjs'\n : 'esm' | 'commonjs',\n polyfills: Map<string, PolyfillSet> = new Map(),\n): string | undefined | null => {\n if (s === undefined) return undefined\n if (typeof s === 'string') {\n // the excluded filename pattern\n const xts = type === 'commonjs' ? '.mts' : '.cts'\n if (s.endsWith(xts)) return undefined\n const pf = dialect === 'commonjs' ? 'cjs' : dialect\n const rel = relative(\n resolve('./src'),\n resolve(polyfills.get(pf)?.map.get(s) ?? s),\n )\n const target = liveDev ? rel : rel.replace(/\\.([mc]?)tsx?$/, '.$1js')\n return (\n !s || !s.startsWith('./src/') ? s\n : dialects.includes(type) ? `./dist/${dialect}/${target}`\n : undefined\n )\n }\n return resolveExport(s, [condition])\n}\n\nexport const getImpTarget = (\n s: string | TshyExport | undefined | null,\n polyfills: Map<string, PolyfillSet> = new Map(),\n) => getTargetForDialectCondition(s, 'esm', 'import', 'esm', polyfills)\n\nexport const getReqTarget = (\n s: string | TshyExport | undefined | null,\n polyfills: Map<string, PolyfillSet> = new Map(),\n) =>\n getTargetForDialectCondition(\n s,\n 'commonjs',\n 'require',\n 'commonjs',\n polyfills,\n )\n\nconst getExports = (\n c: TshyConfig,\n pkgType: 'commonjs' | 'module',\n): Record<string, ConditionalValue> => {\n // by this time it always exports, will get the default if missing\n /* c8 ignore start */\n if (!c.exports) {\n fail('no exports on tshy config (is there code in ./src?)')\n return process.exit(1)\n }\n /* c8 ignore stop */\n const e: Record<string, ConditionalValue> = {}\n for (const [sub, s] of Object.entries(c.exports)) {\n // external export, not built by us\n if (s !== null && (typeof s !== 'string' || !s.startsWith('./src/'))) {\n // already been validated, just accept as-is\n e[sub] = s as ConditionalValue\n continue\n }\n\n /* c8 ignore next - already guarded */\n if (s === null) continue\n\n const impTarget = getImpTarget(s, polyfills)\n const reqTarget = getReqTarget(s, polyfills)\n\n // should be impossible\n /* c8 ignore start */\n if (!impTarget && !reqTarget) continue\n /* c8 ignore stop */\n\n const exp: ConditionalValueObject = (e[sub] = {})\n if (impTarget) {\n for (const d of esmDialects) {\n const source = s && (polyfills.get(d)?.map.get(s) ?? s)\n\n const target = getTargetForDialectCondition(\n s,\n d,\n d,\n 'esm',\n polyfills,\n )\n if (target) {\n exp[d] =\n liveDev ?\n {\n ...(pkgType === 'commonjs' ?\n getSourceDialects(source, c)\n : {}),\n default: target,\n }\n : {\n ...(pkgType === 'commonjs' ?\n getSourceDialects(source, c)\n : {}),\n types: target.replace(/\\.js$/, '.d.ts'),\n default: target,\n }\n }\n }\n }\n\n if (reqTarget) {\n for (const d of commonjsDialects) {\n const source = s && (polyfills.get(d)?.map.get(s) ?? s)\n const target = getTargetForDialectCondition(\n s,\n d,\n d,\n 'commonjs',\n polyfills,\n )\n if (target) {\n exp[d] =\n liveDev ?\n {\n ...(pkgType === 'module' ?\n getSourceDialects(source, c)\n : {}),\n default: target,\n }\n : {\n ...(pkgType === 'module' ?\n getSourceDialects(source, c)\n : {}),\n types: target.replace(/\\.js$/, '.d.ts'),\n default: target,\n }\n }\n }\n }\n\n // put the default import/require after all the other special ones.\n if (impTarget) {\n exp.import =\n liveDev ?\n {\n ...(pkgType === 'module' ? getSourceDialects(s, c) : {}),\n default: impTarget,\n }\n : {\n ...(pkgType === 'module' ? getSourceDialects(s, c) : {}),\n types: impTarget.replace(/\\.(m?)js$/, '.d.$1ts'),\n default: impTarget,\n }\n }\n if (reqTarget) {\n exp.require =\n liveDev ?\n {\n ...(pkgType === 'commonjs' ? getSourceDialects(s, c) : {}),\n default: reqTarget,\n }\n : {\n ...(pkgType === 'commonjs' ? getSourceDialects(s, c) : {}),\n types: reqTarget.replace(/\\.(c?)js$/, '.d.$1ts'),\n default: reqTarget,\n }\n }\n }\n return e\n}\n\nconst getSourceDialects = (source: string, c: TshyConfig) => {\n const { sourceDialects } = c\n if (!sourceDialects) return {}\n return Object.fromEntries(sourceDialects.map(s => [s, source]))\n}\n\nexport const setMain = (\n c: TshyConfig | undefined,\n pkg: Package & { exports: ExportsSubpaths },\n) => {\n pkg.type = pkg.type === 'commonjs' ? 'commonjs' : 'module'\n const mod = resolveExport(pkg.exports['.'], ['require'])\n const main = c?.main ?? !!mod\n if (main) {\n if (!mod) {\n fail(`could not resolve exports['.'] for tshy.main 'require'`)\n return process.exit(1)\n }\n const types = resolveExport(pkg.exports['.'], ['require', 'types'])\n pkg.main = mod\n if (types && types !== mod) pkg.types = types\n else delete pkg.types\n } else {\n if (c && c.main !== false) delete c.main\n delete pkg.main\n delete pkg.types\n }\n\n // Set the package module to exports[\".\"]\n const importMod = resolveExport(pkg.exports['.'], ['import'])\n const module = c?.module ?? !!importMod\n if (module) {\n if (!importMod) {\n fail(`could not resolve exports['.'] for tshy.module 'import'`)\n return process.exit(1)\n }\n\n pkg.module = importMod\n } else {\n if (c && c.module !== false) delete c.module\n delete pkg.module\n }\n}\n\npkg.exports = getExports(config, pkg.type)\n\nsetMain(config, pkg as Package & { exports: ExportsSubpaths })\nexport default pkg.exports\n"]}
{"version":3,"file":"exports.d.ts","sourceRoot":"","sources":["../../src/exports.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,gBAAgB,EAEhB,eAAe,EAChB,MAAM,gBAAgB,CAAA;AAKvB,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAA;AAGjD,OAAO,KAAK,EAAE,OAAO,EAAE,UAAU,EAAc,MAAM,YAAY,CAAA;AAuCjE,eAAO,MAAM,YAAY,sGAG8C,CAAA;AAEvE,eAAO,MAAM,YAAY,sGAUtB,CAAA;AAoIH,eAAO,MAAM,OAAO;;eAoCnB,CAAA;;AAKD,wBAA0B","sourcesContent":["import { relative, resolve } from 'node:path/posix'\nimport type {\n ConditionalValue,\n ConditionalValueObject,\n ExportsSubpaths,\n} from 'resolve-import'\nimport config from './config.js'\nimport dialects from './dialects.js'\nimport fail from './fail.js'\nimport pkg from './package.js'\nimport type { PolyfillSet } from './polyfills.js'\nimport polyfills from './polyfills.js'\nimport { resolveExport } from './resolve-export.js'\nimport type { Package, TshyConfig, TshyExport } from './types.js'\nconst { esmDialects = [], commonjsDialects = [] } = config\n\nconst liveDev =\n config.liveDev &&\n process.env.npm_command !== 'publish' &&\n process.env.npm_command !== 'pack'\n\nconst getTargetForDialectCondition = <T extends string>(\n s: string | TshyExport | undefined | null,\n dialect: T,\n condition: T extends 'esm' ? 'import'\n : T extends 'commonjs' ? 'require'\n : T,\n type: T extends 'esm' ? 'esm'\n : T extends 'commonjs' ? 'commonjs'\n : 'esm' | 'commonjs',\n polyfills: Map<string, PolyfillSet> = new Map(),\n): string | undefined | null => {\n if (s === undefined) return undefined\n if (typeof s === 'string') {\n // the excluded filename pattern\n const xts = type === 'commonjs' ? '.mts' : '.cts'\n if (s.endsWith(xts)) return undefined\n const pf = dialect === 'commonjs' ? 'cjs' : dialect\n const rel = relative(\n resolve('./src'),\n resolve(polyfills.get(pf)?.map.get(s) ?? s),\n )\n const target = liveDev ? rel : rel.replace(/\\.([mc]?)tsx?$/, '.$1js')\n return (\n !s || !s.startsWith('./src/') ? s\n : dialects.includes(type) ? `./dist/${dialect}/${target}`\n : undefined\n )\n }\n return resolveExport(s, [condition])\n}\n\nexport const getImpTarget = (\n s: string | TshyExport | undefined | null,\n polyfills: Map<string, PolyfillSet> = new Map(),\n) => getTargetForDialectCondition(s, 'esm', 'import', 'esm', polyfills)\n\nexport const getReqTarget = (\n s: string | TshyExport | undefined | null,\n polyfills: Map<string, PolyfillSet> = new Map(),\n) =>\n getTargetForDialectCondition(\n s,\n 'commonjs',\n 'require',\n 'commonjs',\n polyfills,\n )\n\nconst getExports = (\n c: TshyConfig,\n pkgType: 'commonjs' | 'module',\n): Record<string, ConditionalValue> => {\n // by this time it always exports, will get the default if missing\n /* c8 ignore start */\n if (!c.exports) {\n fail('no exports on tshy config (is there code in ./src?)')\n return process.exit(1)\n }\n /* c8 ignore stop */\n const e: Record<string, ConditionalValue> = {}\n for (const [sub, s] of Object.entries(c.exports)) {\n // external export, not built by us\n if (s !== null && (typeof s !== 'string' || !s.startsWith('./src/'))) {\n // already been validated, just accept as-is\n e[sub] = s as ConditionalValue\n continue\n }\n\n /* c8 ignore next - already guarded */\n if (s === null) continue\n\n const impTarget = getImpTarget(s, polyfills)\n const reqTarget = getReqTarget(s, polyfills)\n\n // should be impossible\n /* c8 ignore start */\n if (!impTarget && !reqTarget) continue\n /* c8 ignore stop */\n\n const exp: ConditionalValueObject = (e[sub] = {})\n if (impTarget) {\n for (const d of esmDialects) {\n const source = s && (polyfills.get(d)?.map.get(s) ?? s)\n\n const target = getTargetForDialectCondition(\n s,\n d,\n d,\n 'esm',\n polyfills,\n )\n if (target) {\n exp[d] =\n liveDev ?\n {\n ...(pkgType === 'commonjs' ?\n getSourceDialects(source, c)\n : {}),\n default: target,\n }\n : {\n ...(pkgType === 'commonjs' ?\n getSourceDialects(source, c)\n : {}),\n types: target.replace(/\\.js$/, '.d.ts'),\n default: target,\n }\n }\n }\n }\n\n if (reqTarget) {\n for (const d of commonjsDialects) {\n const source = s && (polyfills.get(d)?.map.get(s) ?? s)\n const target = getTargetForDialectCondition(\n s,\n d,\n d,\n 'commonjs',\n polyfills,\n )\n if (target) {\n exp[d] =\n liveDev ?\n {\n ...(pkgType === 'module' ?\n getSourceDialects(source, c)\n : {}),\n default: target,\n }\n : {\n ...(pkgType === 'module' ?\n getSourceDialects(source, c)\n : {}),\n types: target.replace(/\\.js$/, '.d.ts'),\n default: target,\n }\n }\n }\n }\n\n // put the default import/require after all the other special ones.\n if (impTarget) {\n exp.import =\n liveDev ?\n {\n ...(pkgType === 'module' ? getSourceDialects(s, c) : {}),\n default: impTarget,\n }\n : {\n ...(pkgType === 'module' ? getSourceDialects(s, c) : {}),\n types: impTarget.replace(/\\.(m?)js$/, '.d.$1ts'),\n default: impTarget,\n }\n }\n if (reqTarget) {\n exp.require =\n liveDev ?\n {\n ...(pkgType === 'commonjs' ? getSourceDialects(s, c) : {}),\n default: reqTarget,\n }\n : {\n ...(pkgType === 'commonjs' ? getSourceDialects(s, c) : {}),\n types: reqTarget.replace(/\\.(c?)js$/, '.d.$1ts'),\n default: reqTarget,\n }\n }\n }\n return e\n}\n\nconst getSourceDialects = (source: string, c: TshyConfig) => {\n const { sourceDialects } = c\n if (!sourceDialects) return {}\n return Object.fromEntries(sourceDialects.map(s => [s, source]))\n}\n\nexport const setMain = (\n c: TshyConfig | undefined,\n pkg: Package & { exports: ExportsSubpaths },\n) => {\n pkg.type = pkg.type === 'commonjs' ? 'commonjs' : 'module'\n const mod = resolveExport(pkg.exports['.'], ['require'])\n const main = c?.main ?? !!mod\n if (main) {\n if (!mod) {\n fail(`could not resolve exports['.'] for tshy.main 'require'`)\n return process.exit(1)\n }\n const types = resolveExport(pkg.exports['.'], ['require', 'types'])\n pkg.main = mod\n if (types && types !== mod) pkg.types = types\n else delete pkg.types\n } else {\n if (c && c.main !== false) delete c.main\n delete pkg.main\n delete pkg.types\n }\n\n // Set the package module to exports[\".\"]\n const importMod = resolveExport(pkg.exports['.'], ['import'])\n const module = c?.module ?? !!importMod\n if (module) {\n if (!importMod) {\n fail(`could not resolve exports['.'] for tshy.module 'import'`)\n return process.exit(1)\n }\n\n pkg.module = importMod\n } else {\n if (c && c.module !== false) delete c.module\n delete pkg.module\n }\n}\n\npkg.exports = getExports(config, pkg.type)\n\nsetMain(config, pkg as Package & { exports: ExportsSubpaths })\nexport default pkg.exports\n"]}

@@ -1,1 +0,1 @@

{"version":3,"file":"exports.js","sourceRoot":"","sources":["../../src/exports.ts"],"names":[],"mappings":"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","sourcesContent":["import { relative, resolve } from 'node:path/posix'\nimport type {\n ConditionalValue,\n ConditionalValueObject,\n ExportsSubpaths,\n} from 'resolve-import'\nimport config from './config.js'\nimport dialects from './dialects.js'\nimport fail from './fail.js'\nimport pkg from './package.js'\nimport type { PolyfillSet } from './polyfills.js'\nimport polyfills from './polyfills.js'\nimport { resolveExport } from './resolve-export.js'\nimport { Package, TshyConfig, TshyExport } from './types.js'\nconst { esmDialects = [], commonjsDialects = [] } = config\n\nconst liveDev =\n config.liveDev &&\n process.env.npm_command !== 'publish' &&\n process.env.npm_command !== 'pack'\n\nconst getTargetForDialectCondition = <T extends string>(\n s: string | TshyExport | undefined | null,\n dialect: T,\n condition: T extends 'esm' ? 'import'\n : T extends 'commonjs' ? 'require'\n : T,\n type: T extends 'esm' ? 'esm'\n : T extends 'commonjs' ? 'commonjs'\n : 'esm' | 'commonjs',\n polyfills: Map<string, PolyfillSet> = new Map(),\n): string | undefined | null => {\n if (s === undefined) return undefined\n if (typeof s === 'string') {\n // the excluded filename pattern\n const xts = type === 'commonjs' ? '.mts' : '.cts'\n if (s.endsWith(xts)) return undefined\n const pf = dialect === 'commonjs' ? 'cjs' : dialect\n const rel = relative(\n resolve('./src'),\n resolve(polyfills.get(pf)?.map.get(s) ?? s),\n )\n const target = liveDev ? rel : rel.replace(/\\.([mc]?)tsx?$/, '.$1js')\n return (\n !s || !s.startsWith('./src/') ? s\n : dialects.includes(type) ? `./dist/${dialect}/${target}`\n : undefined\n )\n }\n return resolveExport(s, [condition])\n}\n\nexport const getImpTarget = (\n s: string | TshyExport | undefined | null,\n polyfills: Map<string, PolyfillSet> = new Map(),\n) => getTargetForDialectCondition(s, 'esm', 'import', 'esm', polyfills)\n\nexport const getReqTarget = (\n s: string | TshyExport | undefined | null,\n polyfills: Map<string, PolyfillSet> = new Map(),\n) =>\n getTargetForDialectCondition(\n s,\n 'commonjs',\n 'require',\n 'commonjs',\n polyfills,\n )\n\nconst getExports = (\n c: TshyConfig,\n pkgType: 'commonjs' | 'module',\n): Record<string, ConditionalValue> => {\n // by this time it always exports, will get the default if missing\n /* c8 ignore start */\n if (!c.exports) {\n fail('no exports on tshy config (is there code in ./src?)')\n return process.exit(1)\n }\n /* c8 ignore stop */\n const e: Record<string, ConditionalValue> = {}\n for (const [sub, s] of Object.entries(c.exports)) {\n // external export, not built by us\n if (s !== null && (typeof s !== 'string' || !s.startsWith('./src/'))) {\n // already been validated, just accept as-is\n e[sub] = s as ConditionalValue\n continue\n }\n\n /* c8 ignore next - already guarded */\n if (s === null) continue\n\n const impTarget = getImpTarget(s, polyfills)\n const reqTarget = getReqTarget(s, polyfills)\n\n // should be impossible\n /* c8 ignore start */\n if (!impTarget && !reqTarget) continue\n /* c8 ignore stop */\n\n const exp: ConditionalValueObject = (e[sub] = {})\n if (impTarget) {\n for (const d of esmDialects) {\n const source = s && (polyfills.get(d)?.map.get(s) ?? s)\n\n const target = getTargetForDialectCondition(\n s,\n d,\n d,\n 'esm',\n polyfills,\n )\n if (target) {\n exp[d] =\n liveDev ?\n {\n ...(pkgType === 'commonjs' ?\n getSourceDialects(source, c)\n : {}),\n default: target,\n }\n : {\n ...(pkgType === 'commonjs' ?\n getSourceDialects(source, c)\n : {}),\n types: target.replace(/\\.js$/, '.d.ts'),\n default: target,\n }\n }\n }\n }\n\n if (reqTarget) {\n for (const d of commonjsDialects) {\n const source = s && (polyfills.get(d)?.map.get(s) ?? s)\n const target = getTargetForDialectCondition(\n s,\n d,\n d,\n 'commonjs',\n polyfills,\n )\n if (target) {\n exp[d] =\n liveDev ?\n {\n ...(pkgType === 'module' ?\n getSourceDialects(source, c)\n : {}),\n default: target,\n }\n : {\n ...(pkgType === 'module' ?\n getSourceDialects(source, c)\n : {}),\n types: target.replace(/\\.js$/, '.d.ts'),\n default: target,\n }\n }\n }\n }\n\n // put the default import/require after all the other special ones.\n if (impTarget) {\n exp.import =\n liveDev ?\n {\n ...(pkgType === 'module' ? getSourceDialects(s, c) : {}),\n default: impTarget,\n }\n : {\n ...(pkgType === 'module' ? getSourceDialects(s, c) : {}),\n types: impTarget.replace(/\\.(m?)js$/, '.d.$1ts'),\n default: impTarget,\n }\n }\n if (reqTarget) {\n exp.require =\n liveDev ?\n {\n ...(pkgType === 'commonjs' ? getSourceDialects(s, c) : {}),\n default: reqTarget,\n }\n : {\n ...(pkgType === 'commonjs' ? getSourceDialects(s, c) : {}),\n types: reqTarget.replace(/\\.(c?)js$/, '.d.$1ts'),\n default: reqTarget,\n }\n }\n }\n return e\n}\n\nconst getSourceDialects = (source: string, c: TshyConfig) => {\n const { sourceDialects } = c\n if (!sourceDialects) return {}\n return Object.fromEntries(sourceDialects.map(s => [s, source]))\n}\n\nexport const setMain = (\n c: TshyConfig | undefined,\n pkg: Package & { exports: ExportsSubpaths },\n) => {\n pkg.type = pkg.type === 'commonjs' ? 'commonjs' : 'module'\n const mod = resolveExport(pkg.exports['.'], ['require'])\n const main = c?.main ?? !!mod\n if (main) {\n if (!mod) {\n fail(`could not resolve exports['.'] for tshy.main 'require'`)\n return process.exit(1)\n }\n const types = resolveExport(pkg.exports['.'], ['require', 'types'])\n pkg.main = mod\n if (types && types !== mod) pkg.types = types\n else delete pkg.types\n } else {\n if (c && c.main !== false) delete c.main\n delete pkg.main\n delete pkg.types\n }\n\n // Set the package module to exports[\".\"]\n const importMod = resolveExport(pkg.exports['.'], ['import'])\n const module = c?.module ?? !!importMod\n if (module) {\n if (!importMod) {\n fail(`could not resolve exports['.'] for tshy.module 'import'`)\n return process.exit(1)\n }\n\n pkg.module = importMod\n } else {\n if (c && c.module !== false) delete c.module\n delete pkg.module\n }\n}\n\npkg.exports = getExports(config, pkg.type)\n\nsetMain(config, pkg as Package & { exports: ExportsSubpaths })\nexport default pkg.exports\n"]}
{"version":3,"file":"exports.js","sourceRoot":"","sources":["../../src/exports.ts"],"names":[],"mappings":"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","sourcesContent":["import { relative, resolve } from 'node:path/posix'\nimport type {\n ConditionalValue,\n ConditionalValueObject,\n ExportsSubpaths,\n} from 'resolve-import'\nimport config from './config.js'\nimport dialects from './dialects.js'\nimport fail from './fail.js'\nimport pkg from './package.js'\nimport type { PolyfillSet } from './polyfills.js'\nimport polyfills from './polyfills.js'\nimport { resolveExport } from './resolve-export.js'\nimport type { Package, TshyConfig, TshyExport } from './types.js'\nconst { esmDialects = [], commonjsDialects = [] } = config\n\nconst liveDev =\n config.liveDev &&\n process.env.npm_command !== 'publish' &&\n process.env.npm_command !== 'pack'\n\nconst getTargetForDialectCondition = <T extends string>(\n s: string | TshyExport | undefined | null,\n dialect: T,\n condition: T extends 'esm' ? 'import'\n : T extends 'commonjs' ? 'require'\n : T,\n type: T extends 'esm' ? 'esm'\n : T extends 'commonjs' ? 'commonjs'\n : 'esm' | 'commonjs',\n polyfills: Map<string, PolyfillSet> = new Map(),\n): string | undefined | null => {\n if (s === undefined) return undefined\n if (typeof s === 'string') {\n // the excluded filename pattern\n const xts = type === 'commonjs' ? '.mts' : '.cts'\n if (s.endsWith(xts)) return undefined\n const pf = dialect === 'commonjs' ? 'cjs' : dialect\n const rel = relative(\n resolve('./src'),\n resolve(polyfills.get(pf)?.map.get(s) ?? s),\n )\n const target = liveDev ? rel : rel.replace(/\\.([mc]?)tsx?$/, '.$1js')\n return (\n !s || !s.startsWith('./src/') ? s\n : dialects.includes(type) ? `./dist/${dialect}/${target}`\n : undefined\n )\n }\n return resolveExport(s, [condition])\n}\n\nexport const getImpTarget = (\n s: string | TshyExport | undefined | null,\n polyfills: Map<string, PolyfillSet> = new Map(),\n) => getTargetForDialectCondition(s, 'esm', 'import', 'esm', polyfills)\n\nexport const getReqTarget = (\n s: string | TshyExport | undefined | null,\n polyfills: Map<string, PolyfillSet> = new Map(),\n) =>\n getTargetForDialectCondition(\n s,\n 'commonjs',\n 'require',\n 'commonjs',\n polyfills,\n )\n\nconst getExports = (\n c: TshyConfig,\n pkgType: 'commonjs' | 'module',\n): Record<string, ConditionalValue> => {\n // by this time it always exports, will get the default if missing\n /* c8 ignore start */\n if (!c.exports) {\n fail('no exports on tshy config (is there code in ./src?)')\n return process.exit(1)\n }\n /* c8 ignore stop */\n const e: Record<string, ConditionalValue> = {}\n for (const [sub, s] of Object.entries(c.exports)) {\n // external export, not built by us\n if (s !== null && (typeof s !== 'string' || !s.startsWith('./src/'))) {\n // already been validated, just accept as-is\n e[sub] = s as ConditionalValue\n continue\n }\n\n /* c8 ignore next - already guarded */\n if (s === null) continue\n\n const impTarget = getImpTarget(s, polyfills)\n const reqTarget = getReqTarget(s, polyfills)\n\n // should be impossible\n /* c8 ignore start */\n if (!impTarget && !reqTarget) continue\n /* c8 ignore stop */\n\n const exp: ConditionalValueObject = (e[sub] = {})\n if (impTarget) {\n for (const d of esmDialects) {\n const source = s && (polyfills.get(d)?.map.get(s) ?? s)\n\n const target = getTargetForDialectCondition(\n s,\n d,\n d,\n 'esm',\n polyfills,\n )\n if (target) {\n exp[d] =\n liveDev ?\n {\n ...(pkgType === 'commonjs' ?\n getSourceDialects(source, c)\n : {}),\n default: target,\n }\n : {\n ...(pkgType === 'commonjs' ?\n getSourceDialects(source, c)\n : {}),\n types: target.replace(/\\.js$/, '.d.ts'),\n default: target,\n }\n }\n }\n }\n\n if (reqTarget) {\n for (const d of commonjsDialects) {\n const source = s && (polyfills.get(d)?.map.get(s) ?? s)\n const target = getTargetForDialectCondition(\n s,\n d,\n d,\n 'commonjs',\n polyfills,\n )\n if (target) {\n exp[d] =\n liveDev ?\n {\n ...(pkgType === 'module' ?\n getSourceDialects(source, c)\n : {}),\n default: target,\n }\n : {\n ...(pkgType === 'module' ?\n getSourceDialects(source, c)\n : {}),\n types: target.replace(/\\.js$/, '.d.ts'),\n default: target,\n }\n }\n }\n }\n\n // put the default import/require after all the other special ones.\n if (impTarget) {\n exp.import =\n liveDev ?\n {\n ...(pkgType === 'module' ? getSourceDialects(s, c) : {}),\n default: impTarget,\n }\n : {\n ...(pkgType === 'module' ? getSourceDialects(s, c) : {}),\n types: impTarget.replace(/\\.(m?)js$/, '.d.$1ts'),\n default: impTarget,\n }\n }\n if (reqTarget) {\n exp.require =\n liveDev ?\n {\n ...(pkgType === 'commonjs' ? getSourceDialects(s, c) : {}),\n default: reqTarget,\n }\n : {\n ...(pkgType === 'commonjs' ? getSourceDialects(s, c) : {}),\n types: reqTarget.replace(/\\.(c?)js$/, '.d.$1ts'),\n default: reqTarget,\n }\n }\n }\n return e\n}\n\nconst getSourceDialects = (source: string, c: TshyConfig) => {\n const { sourceDialects } = c\n if (!sourceDialects) return {}\n return Object.fromEntries(sourceDialects.map(s => [s, source]))\n}\n\nexport const setMain = (\n c: TshyConfig | undefined,\n pkg: Package & { exports: ExportsSubpaths },\n) => {\n pkg.type = pkg.type === 'commonjs' ? 'commonjs' : 'module'\n const mod = resolveExport(pkg.exports['.'], ['require'])\n const main = c?.main ?? !!mod\n if (main) {\n if (!mod) {\n fail(`could not resolve exports['.'] for tshy.main 'require'`)\n return process.exit(1)\n }\n const types = resolveExport(pkg.exports['.'], ['require', 'types'])\n pkg.main = mod\n if (types && types !== mod) pkg.types = types\n else delete pkg.types\n } else {\n if (c && c.main !== false) delete c.main\n delete pkg.main\n delete pkg.types\n }\n\n // Set the package module to exports[\".\"]\n const importMod = resolveExport(pkg.exports['.'], ['import'])\n const module = c?.module ?? !!importMod\n if (module) {\n if (!importMod) {\n fail(`could not resolve exports['.'] for tshy.module 'import'`)\n return process.exit(1)\n }\n\n pkg.module = importMod\n } else {\n if (c && c.module !== false) delete c.module\n delete pkg.module\n }\n}\n\npkg.exports = getExports(config, pkg.type)\n\nsetMain(config, pkg as Package & { exports: ExportsSubpaths })\nexport default pkg.exports\n"]}

@@ -1,2 +0,2 @@

import { Package } from './types.js';
import type { Package } from './types.js';
declare const _default: Package & {

@@ -3,0 +3,0 @@ type: "commonjs" | "module";

@@ -1,1 +0,1 @@

{"version":3,"file":"package.d.ts","sourceRoot":"","sources":["../../src/package.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAA;;;;AAoBpC,wBAAwB","sourcesContent":["// get the package.json data for the cwd\n\nimport { readFileSync } from 'fs'\nimport { JSONResult, parse, stringify } from 'polite-json'\nimport fail from './fail.js'\nimport { Package } from './types.js'\n\nconst isPackage = (pkg: JSONResult): pkg is Package =>\n !!pkg && typeof pkg === 'object' && !Array.isArray(pkg)\n\nconst readPkg = (): Package & { type: 'commonjs' | 'module' } => {\n try {\n const res = parse(readFileSync('package.json', 'utf8'))\n if (isPackage(res)) {\n return Object.assign(res, {\n type: res.type === 'commonjs' ? 'commonjs' : 'module',\n })\n }\n throw new Error('Invalid package.json contents: ' + stringify(res))\n } catch (er) {\n fail('failed to read package.json', er as Error)\n process.exit(1)\n }\n}\n\nexport default readPkg()\n"]}
{"version":3,"file":"package.d.ts","sourceRoot":"","sources":["../../src/package.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAA;;;;AAoBzC,wBAAwB","sourcesContent":["// get the package.json data for the cwd\n\nimport { readFileSync } from 'fs'\nimport { parse, stringify } from 'polite-json'\nimport fail from './fail.js'\nimport type { Package } from './types.js'\n\nconst isPackage = (pkg: unknown): pkg is Package =>\n !!pkg && typeof pkg === 'object' && !Array.isArray(pkg)\n\nconst readPkg = (): Package & { type: 'commonjs' | 'module' } => {\n try {\n const res = parse(readFileSync('package.json', 'utf8'))\n if (isPackage(res)) {\n return Object.assign(res, {\n type: res.type === 'commonjs' ? 'commonjs' : 'module',\n })\n }\n throw new Error('Invalid package.json contents: ' + stringify(res))\n } catch (er) {\n fail('failed to read package.json', er as Error)\n process.exit(1)\n }\n}\n\nexport default readPkg()\n"]}

@@ -1,1 +0,1 @@

{"version":3,"file":"package.js","sourceRoot":"","sources":["../../src/package.ts"],"names":[],"mappings":"AAAA,wCAAwC;AAExC,OAAO,EAAE,YAAY,EAAE,MAAM,IAAI,CAAA;AACjC,OAAO,EAAc,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAC1D,OAAO,IAAI,MAAM,WAAW,CAAA;AAG5B,MAAM,SAAS,GAAG,CAAC,GAAe,EAAkB,EAAE,CACpD,CAAC,CAAC,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;AAEzD,MAAM,OAAO,GAAG,GAA8C,EAAE,CAAC;IAC/D,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,KAAK,CAAC,YAAY,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC,CAAA;QACvD,IAAI,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC;YACnB,OAAO,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE;gBACxB,IAAI,EAAE,GAAG,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,QAAQ;aACtD,CAAC,CAAA;QACJ,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,iCAAiC,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,CAAA;IACrE,CAAC;IAAC,OAAO,EAAE,EAAE,CAAC;QACZ,IAAI,CAAC,6BAA6B,EAAE,EAAW,CAAC,CAAA;QAChD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACjB,CAAC;AAAA,CACF,CAAA;AAED,eAAe,OAAO,EAAE,CAAA","sourcesContent":["// get the package.json data for the cwd\n\nimport { readFileSync } from 'fs'\nimport { JSONResult, parse, stringify } from 'polite-json'\nimport fail from './fail.js'\nimport { Package } from './types.js'\n\nconst isPackage = (pkg: JSONResult): pkg is Package =>\n !!pkg && typeof pkg === 'object' && !Array.isArray(pkg)\n\nconst readPkg = (): Package & { type: 'commonjs' | 'module' } => {\n try {\n const res = parse(readFileSync('package.json', 'utf8'))\n if (isPackage(res)) {\n return Object.assign(res, {\n type: res.type === 'commonjs' ? 'commonjs' : 'module',\n })\n }\n throw new Error('Invalid package.json contents: ' + stringify(res))\n } catch (er) {\n fail('failed to read package.json', er as Error)\n process.exit(1)\n }\n}\n\nexport default readPkg()\n"]}
{"version":3,"file":"package.js","sourceRoot":"","sources":["../../src/package.ts"],"names":[],"mappings":"AAAA,wCAAwC;AAExC,OAAO,EAAE,YAAY,EAAE,MAAM,IAAI,CAAA;AACjC,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAC9C,OAAO,IAAI,MAAM,WAAW,CAAA;AAG5B,MAAM,SAAS,GAAG,CAAC,GAAY,EAAkB,EAAE,CACjD,CAAC,CAAC,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;AAEzD,MAAM,OAAO,GAAG,GAA8C,EAAE,CAAC;IAC/D,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,KAAK,CAAC,YAAY,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC,CAAA;QACvD,IAAI,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC;YACnB,OAAO,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE;gBACxB,IAAI,EAAE,GAAG,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,QAAQ;aACtD,CAAC,CAAA;QACJ,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,iCAAiC,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,CAAA;IACrE,CAAC;IAAC,OAAO,EAAE,EAAE,CAAC;QACZ,IAAI,CAAC,6BAA6B,EAAE,EAAW,CAAC,CAAA;QAChD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACjB,CAAC;AAAA,CACF,CAAA;AAED,eAAe,OAAO,EAAE,CAAA","sourcesContent":["// get the package.json data for the cwd\n\nimport { readFileSync } from 'fs'\nimport { parse, stringify } from 'polite-json'\nimport fail from './fail.js'\nimport type { Package } from './types.js'\n\nconst isPackage = (pkg: unknown): pkg is Package =>\n !!pkg && typeof pkg === 'object' && !Array.isArray(pkg)\n\nconst readPkg = (): Package & { type: 'commonjs' | 'module' } => {\n try {\n const res = parse(readFileSync('package.json', 'utf8'))\n if (isPackage(res)) {\n return Object.assign(res, {\n type: res.type === 'commonjs' ? 'commonjs' : 'module',\n })\n }\n throw new Error('Invalid package.json contents: ' + stringify(res))\n } catch (er) {\n fail('failed to read package.json', er as Error)\n process.exit(1)\n }\n}\n\nexport default readPkg()\n"]}

@@ -1,2 +0,2 @@

declare const _default: () => Record<string, any> & {
declare const _default: () => Record<string, unknown> & {
compilerOptions: import("typescript").CompilerOptions;

@@ -3,0 +3,0 @@ };

@@ -1,1 +0,1 @@

{"version":3,"file":"read-typescript-config.d.ts","sourceRoot":"","sources":["../../src/read-typescript-config.ts"],"names":[],"mappings":";;;AAuBA,wBAGC","sourcesContent":["// read the actual configuration that tsc is using\n// reimplemented in this way to avoid pulling in the massive pile\n// of CommonJS that is the typescript module, since we really do not\n// need most of the logic that it (reasonably) applies when parsing\n// configs, just for our purposes.\nimport { dirname, isAbsolute, resolve } from 'node:path'\nimport config from './config.js'\nimport type { ParsedCommandLine } from 'typescript'\nimport { readFileSync, statSync } from 'node:fs'\nimport { walkUp } from 'walk-up-path'\nimport JSON from 'jsonc-simple-parser'\n\nconst isFile = (f: string) => {\n try {\n return statSync(f).isFile()\n } catch {\n return false\n }\n}\n\nlet parsedTsConfig: Record<string, any> & {\n compilerOptions: ParsedCommandLine['options']\n}\nexport default () => {\n const configPath = config.project ?? 'tsconfig.json'\n return (parsedTsConfig ??= parseTsConfig(resolveConfig(configPath)))\n}\n\nconst resolveConfig = (\n target: string,\n from: string = process.cwd(),\n): string => {\n if (isAbsolute(target)) return target\n let local = resolve(from, target)\n if (!isFile(local) && isFile(local + '.json')) local += '.json'\n if (\n isFile(local) ||\n target.startsWith('.\\\\') ||\n target.startsWith('./')\n ) {\n return local\n }\n\n // starts with a package name?\n for (const p of walkUp(from)) {\n const found = resolve(p, 'node_modules', target)\n if (isFile(found)) return found\n const pre = resolve(p, 'node_modules', target)\n const foundTsconfig = resolve(pre, 'tsconfig.json')\n if (isFile(foundTsconfig)) return foundTsconfig\n if (isFile(pre + '.json')) return pre + '.json'\n }\n\n throw new Error('Could not resolve tsconfig file location', {\n cause: {\n target,\n from,\n },\n })\n}\n\nconst applyExtends = (\n data: Record<string, any>,\n base: Record<string, any>,\n) => {\n for (const [key, val] of Object.entries(base)) {\n if (typeof val !== 'object' || Array.isArray(val)) {\n data[key] ??= val\n } else if (!(key in data)) {\n data[key] = val\n } else if (\n typeof data[key] === 'object' &&\n !Array.isArray(data[key])\n ) {\n data[key] = applyExtends(data[key], val)\n }\n }\n return data\n}\n\nconst parseTsConfig = (configPath: string, seen = new Set<string>()) => {\n try {\n const data = JSON.parse(\n readFileSync(resolveConfig(configPath), 'utf8'),\n )\n if (!data || typeof data !== 'object' || Array.isArray(data)) {\n throw new Error('invalid data, expected object', {\n cause: data,\n })\n }\n if (!data.compilerOptions) data.compilerOptions = {}\n if (typeof data.extends === 'string') {\n const ext = resolveConfig(data.extends, dirname(configPath))\n if (!seen.has(ext)) {\n seen.add(ext)\n applyExtends(data, parseTsConfig(ext, seen))\n }\n }\n return data\n } catch (e) {\n throw new Error('Invalid tsconfig file', { cause: e })\n }\n}\n"]}
{"version":3,"file":"read-typescript-config.d.ts","sourceRoot":"","sources":["../../src/read-typescript-config.ts"],"names":[],"mappings":";;;AAuBA,wBAGC","sourcesContent":["// read the actual configuration that tsc is using\n// reimplemented in this way to avoid pulling in the massive pile\n// of CommonJS that is the typescript module, since we really do not\n// need most of the logic that it (reasonably) applies when parsing\n// configs, just for our purposes.\nimport { dirname, isAbsolute, resolve } from 'node:path'\nimport config from './config.js'\nimport type { ParsedCommandLine } from 'typescript'\nimport { readFileSync, statSync } from 'node:fs'\nimport { walkUp } from 'walk-up-path'\nimport JSON from 'jsonc-simple-parser'\n\nconst isFile = (f: string) => {\n try {\n return statSync(f).isFile()\n } catch {\n return false\n }\n}\n\nlet parsedTsConfig: Record<string, unknown> & {\n compilerOptions: ParsedCommandLine['options']\n}\nexport default () => {\n const configPath = config.project ?? 'tsconfig.json'\n return (parsedTsConfig ??= parseTsConfig(resolveConfig(configPath)))\n}\n\nconst resolveConfig = (\n target: string,\n from: string = process.cwd(),\n): string => {\n if (isAbsolute(target)) return target\n let local = resolve(from, target)\n if (!isFile(local) && isFile(local + '.json')) local += '.json'\n if (\n isFile(local) ||\n target.startsWith('.\\\\') ||\n target.startsWith('./')\n ) {\n return local\n }\n\n // starts with a package name?\n for (const p of walkUp(from)) {\n const found = resolve(p, 'node_modules', target)\n if (isFile(found)) return found\n const pre = resolve(p, 'node_modules', target)\n const foundTsconfig = resolve(pre, 'tsconfig.json')\n if (isFile(foundTsconfig)) return foundTsconfig\n if (isFile(pre + '.json')) return pre + '.json'\n }\n\n throw new Error('Could not resolve tsconfig file location', {\n cause: {\n target,\n from,\n },\n })\n}\n\nconst applyExtends = (\n data: Record<string, unknown>,\n base: Record<string, unknown>,\n) => {\n for (const [key, val] of Object.entries(base)) {\n if (typeof val !== 'object' || Array.isArray(val)) {\n data[key] ??= val\n } else if (!(key in data)) {\n data[key] = val\n } else if (\n typeof data[key] === 'object' &&\n !!data[key] &&\n !Array.isArray(data[key])\n ) {\n data[key] = applyExtends(\n data[key] as Record<string, unknown>,\n val as Record<string, unknown>,\n )\n }\n }\n return data\n}\n\nconst parseTsConfig = (configPath: string, seen = new Set<string>()) => {\n try {\n const data = JSON.parse(\n readFileSync(resolveConfig(configPath), 'utf8'),\n )\n if (!data || typeof data !== 'object' || Array.isArray(data)) {\n throw new Error('invalid data, expected object', {\n cause: data,\n })\n }\n if (!data.compilerOptions) data.compilerOptions = {}\n if (typeof data.extends === 'string') {\n const ext = resolveConfig(data.extends, dirname(configPath))\n if (!seen.has(ext)) {\n seen.add(ext)\n applyExtends(data, parseTsConfig(ext, seen))\n }\n }\n return data\n } catch (e) {\n throw new Error('Invalid tsconfig file', { cause: e })\n }\n}\n"]}

@@ -63,2 +63,3 @@ // read the actual configuration that tsc is using

else if (typeof data[key] === 'object' &&
!!data[key] &&
!Array.isArray(data[key])) {

@@ -65,0 +66,0 @@ data[key] = applyExtends(data[key], val);

@@ -1,1 +0,1 @@

{"version":3,"file":"read-typescript-config.js","sourceRoot":"","sources":["../../src/read-typescript-config.ts"],"names":[],"mappings":"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","sourcesContent":["// read the actual configuration that tsc is using\n// reimplemented in this way to avoid pulling in the massive pile\n// of CommonJS that is the typescript module, since we really do not\n// need most of the logic that it (reasonably) applies when parsing\n// configs, just for our purposes.\nimport { dirname, isAbsolute, resolve } from 'node:path'\nimport config from './config.js'\nimport type { ParsedCommandLine } from 'typescript'\nimport { readFileSync, statSync } from 'node:fs'\nimport { walkUp } from 'walk-up-path'\nimport JSON from 'jsonc-simple-parser'\n\nconst isFile = (f: string) => {\n try {\n return statSync(f).isFile()\n } catch {\n return false\n }\n}\n\nlet parsedTsConfig: Record<string, any> & {\n compilerOptions: ParsedCommandLine['options']\n}\nexport default () => {\n const configPath = config.project ?? 'tsconfig.json'\n return (parsedTsConfig ??= parseTsConfig(resolveConfig(configPath)))\n}\n\nconst resolveConfig = (\n target: string,\n from: string = process.cwd(),\n): string => {\n if (isAbsolute(target)) return target\n let local = resolve(from, target)\n if (!isFile(local) && isFile(local + '.json')) local += '.json'\n if (\n isFile(local) ||\n target.startsWith('.\\\\') ||\n target.startsWith('./')\n ) {\n return local\n }\n\n // starts with a package name?\n for (const p of walkUp(from)) {\n const found = resolve(p, 'node_modules', target)\n if (isFile(found)) return found\n const pre = resolve(p, 'node_modules', target)\n const foundTsconfig = resolve(pre, 'tsconfig.json')\n if (isFile(foundTsconfig)) return foundTsconfig\n if (isFile(pre + '.json')) return pre + '.json'\n }\n\n throw new Error('Could not resolve tsconfig file location', {\n cause: {\n target,\n from,\n },\n })\n}\n\nconst applyExtends = (\n data: Record<string, any>,\n base: Record<string, any>,\n) => {\n for (const [key, val] of Object.entries(base)) {\n if (typeof val !== 'object' || Array.isArray(val)) {\n data[key] ??= val\n } else if (!(key in data)) {\n data[key] = val\n } else if (\n typeof data[key] === 'object' &&\n !Array.isArray(data[key])\n ) {\n data[key] = applyExtends(data[key], val)\n }\n }\n return data\n}\n\nconst parseTsConfig = (configPath: string, seen = new Set<string>()) => {\n try {\n const data = JSON.parse(\n readFileSync(resolveConfig(configPath), 'utf8'),\n )\n if (!data || typeof data !== 'object' || Array.isArray(data)) {\n throw new Error('invalid data, expected object', {\n cause: data,\n })\n }\n if (!data.compilerOptions) data.compilerOptions = {}\n if (typeof data.extends === 'string') {\n const ext = resolveConfig(data.extends, dirname(configPath))\n if (!seen.has(ext)) {\n seen.add(ext)\n applyExtends(data, parseTsConfig(ext, seen))\n }\n }\n return data\n } catch (e) {\n throw new Error('Invalid tsconfig file', { cause: e })\n }\n}\n"]}
{"version":3,"file":"read-typescript-config.js","sourceRoot":"","sources":["../../src/read-typescript-config.ts"],"names":[],"mappings":"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","sourcesContent":["// read the actual configuration that tsc is using\n// reimplemented in this way to avoid pulling in the massive pile\n// of CommonJS that is the typescript module, since we really do not\n// need most of the logic that it (reasonably) applies when parsing\n// configs, just for our purposes.\nimport { dirname, isAbsolute, resolve } from 'node:path'\nimport config from './config.js'\nimport type { ParsedCommandLine } from 'typescript'\nimport { readFileSync, statSync } from 'node:fs'\nimport { walkUp } from 'walk-up-path'\nimport JSON from 'jsonc-simple-parser'\n\nconst isFile = (f: string) => {\n try {\n return statSync(f).isFile()\n } catch {\n return false\n }\n}\n\nlet parsedTsConfig: Record<string, unknown> & {\n compilerOptions: ParsedCommandLine['options']\n}\nexport default () => {\n const configPath = config.project ?? 'tsconfig.json'\n return (parsedTsConfig ??= parseTsConfig(resolveConfig(configPath)))\n}\n\nconst resolveConfig = (\n target: string,\n from: string = process.cwd(),\n): string => {\n if (isAbsolute(target)) return target\n let local = resolve(from, target)\n if (!isFile(local) && isFile(local + '.json')) local += '.json'\n if (\n isFile(local) ||\n target.startsWith('.\\\\') ||\n target.startsWith('./')\n ) {\n return local\n }\n\n // starts with a package name?\n for (const p of walkUp(from)) {\n const found = resolve(p, 'node_modules', target)\n if (isFile(found)) return found\n const pre = resolve(p, 'node_modules', target)\n const foundTsconfig = resolve(pre, 'tsconfig.json')\n if (isFile(foundTsconfig)) return foundTsconfig\n if (isFile(pre + '.json')) return pre + '.json'\n }\n\n throw new Error('Could not resolve tsconfig file location', {\n cause: {\n target,\n from,\n },\n })\n}\n\nconst applyExtends = (\n data: Record<string, unknown>,\n base: Record<string, unknown>,\n) => {\n for (const [key, val] of Object.entries(base)) {\n if (typeof val !== 'object' || Array.isArray(val)) {\n data[key] ??= val\n } else if (!(key in data)) {\n data[key] = val\n } else if (\n typeof data[key] === 'object' &&\n !!data[key] &&\n !Array.isArray(data[key])\n ) {\n data[key] = applyExtends(\n data[key] as Record<string, unknown>,\n val as Record<string, unknown>,\n )\n }\n }\n return data\n}\n\nconst parseTsConfig = (configPath: string, seen = new Set<string>()) => {\n try {\n const data = JSON.parse(\n readFileSync(resolveConfig(configPath), 'utf8'),\n )\n if (!data || typeof data !== 'object' || Array.isArray(data)) {\n throw new Error('invalid data, expected object', {\n cause: data,\n })\n }\n if (!data.compilerOptions) data.compilerOptions = {}\n if (typeof data.extends === 'string') {\n const ext = resolveConfig(data.extends, dirname(configPath))\n if (!seen.has(ext)) {\n seen.add(ext)\n applyExtends(data, parseTsConfig(ext, seen))\n }\n }\n return data\n } catch (e) {\n throw new Error('Invalid tsconfig file', { cause: e })\n }\n}\n"]}

@@ -1,2 +0,2 @@

export declare const resolveExport: (exp: any, conditions: string[]) => string | null | undefined;
export declare const resolveExport: (exp: unknown, conditions: string[]) => string | null | undefined;
//# sourceMappingURL=resolve-export.d.ts.map

@@ -1,1 +0,1 @@

{"version":3,"file":"resolve-export.d.ts","sourceRoot":"","sources":["../../src/resolve-export.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,aAAa,+DAqBzB,CAAA","sourcesContent":["export const resolveExport = (\n exp: any,\n conditions: string[],\n): string | undefined | null => {\n if (typeof exp === 'string') return exp\n if (typeof exp !== 'object') return undefined\n if (exp === null) return exp\n if (Array.isArray(exp)) {\n for (const e of exp) {\n const u = resolveExport(e, conditions)\n if (u || u === null) return u\n }\n return undefined\n }\n const conds = [...conditions, 'node', 'default']\n for (const [c, e] of Object.entries(exp)) {\n if (conds.includes(c)) {\n const u = resolveExport(e, conditions)\n if (u || u === null) return u\n }\n }\n}\n"]}
{"version":3,"file":"resolve-export.d.ts","sourceRoot":"","sources":["../../src/resolve-export.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,aAAa,mEAqBzB,CAAA","sourcesContent":["export const resolveExport = (\n exp: unknown,\n conditions: string[],\n): string | undefined | null => {\n if (typeof exp === 'string') return exp\n if (typeof exp !== 'object') return undefined\n if (exp === null) return exp\n if (Array.isArray(exp)) {\n for (const e of exp) {\n const u = resolveExport(e, conditions)\n if (u || u === null) return u\n }\n return undefined\n }\n const conds = [...conditions, 'node', 'default']\n for (const [c, e] of Object.entries(exp)) {\n if (conds.includes(c)) {\n const u = resolveExport(e, conditions)\n if (u || u === null) return u\n }\n }\n}\n"]}

@@ -1,1 +0,1 @@

{"version":3,"file":"resolve-export.js","sourceRoot":"","sources":["../../src/resolve-export.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,aAAa,GAAG,CAC3B,GAAQ,EACR,UAAoB,EACO,EAAE,CAAC;IAC9B,IAAI,OAAO,GAAG,KAAK,QAAQ;QAAE,OAAO,GAAG,CAAA;IACvC,IAAI,OAAO,GAAG,KAAK,QAAQ;QAAE,OAAO,SAAS,CAAA;IAC7C,IAAI,GAAG,KAAK,IAAI;QAAE,OAAO,GAAG,CAAA;IAC5B,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;QACvB,KAAK,MAAM,CAAC,IAAI,GAAG,EAAE,CAAC;YACpB,MAAM,CAAC,GAAG,aAAa,CAAC,CAAC,EAAE,UAAU,CAAC,CAAA;YACtC,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI;gBAAE,OAAO,CAAC,CAAA;QAC/B,CAAC;QACD,OAAO,SAAS,CAAA;IAClB,CAAC;IACD,MAAM,KAAK,GAAG,CAAC,GAAG,UAAU,EAAE,MAAM,EAAE,SAAS,CAAC,CAAA;IAChD,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;QACzC,IAAI,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;YACtB,MAAM,CAAC,GAAG,aAAa,CAAC,CAAC,EAAE,UAAU,CAAC,CAAA;YACtC,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI;gBAAE,OAAO,CAAC,CAAA;QAC/B,CAAC;IACH,CAAC;AAAA,CACF,CAAA","sourcesContent":["export const resolveExport = (\n exp: any,\n conditions: string[],\n): string | undefined | null => {\n if (typeof exp === 'string') return exp\n if (typeof exp !== 'object') return undefined\n if (exp === null) return exp\n if (Array.isArray(exp)) {\n for (const e of exp) {\n const u = resolveExport(e, conditions)\n if (u || u === null) return u\n }\n return undefined\n }\n const conds = [...conditions, 'node', 'default']\n for (const [c, e] of Object.entries(exp)) {\n if (conds.includes(c)) {\n const u = resolveExport(e, conditions)\n if (u || u === null) return u\n }\n }\n}\n"]}
{"version":3,"file":"resolve-export.js","sourceRoot":"","sources":["../../src/resolve-export.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,aAAa,GAAG,CAC3B,GAAY,EACZ,UAAoB,EACO,EAAE,CAAC;IAC9B,IAAI,OAAO,GAAG,KAAK,QAAQ;QAAE,OAAO,GAAG,CAAA;IACvC,IAAI,OAAO,GAAG,KAAK,QAAQ;QAAE,OAAO,SAAS,CAAA;IAC7C,IAAI,GAAG,KAAK,IAAI;QAAE,OAAO,GAAG,CAAA;IAC5B,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;QACvB,KAAK,MAAM,CAAC,IAAI,GAAG,EAAE,CAAC;YACpB,MAAM,CAAC,GAAG,aAAa,CAAC,CAAC,EAAE,UAAU,CAAC,CAAA;YACtC,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI;gBAAE,OAAO,CAAC,CAAA;QAC/B,CAAC;QACD,OAAO,SAAS,CAAA;IAClB,CAAC;IACD,MAAM,KAAK,GAAG,CAAC,GAAG,UAAU,EAAE,MAAM,EAAE,SAAS,CAAC,CAAA;IAChD,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;QACzC,IAAI,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;YACtB,MAAM,CAAC,GAAG,aAAa,CAAC,CAAC,EAAE,UAAU,CAAC,CAAA;YACtC,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI;gBAAE,OAAO,CAAC,CAAA;QAC/B,CAAC;IACH,CAAC;AAAA,CACF,CAAA","sourcesContent":["export const resolveExport = (\n exp: unknown,\n conditions: string[],\n): string | undefined | null => {\n if (typeof exp === 'string') return exp\n if (typeof exp !== 'object') return undefined\n if (exp === null) return exp\n if (Array.isArray(exp)) {\n for (const e of exp) {\n const u = resolveExport(e, conditions)\n if (u || u === null) return u\n }\n return undefined\n }\n const conds = [...conditions, 'node', 'default']\n for (const [c, e] of Object.entries(exp)) {\n if (conds.includes(c)) {\n const u = resolveExport(e, conditions)\n if (u || u === null) return u\n }\n }\n}\n"]}

@@ -1,4 +0,5 @@

import { Package } from './types.js';
import type { Package } from './types.js';
export declare const linkedAlready: (pkg: Package) => boolean;
export declare const link: (pkg: Package, where: string) => void;
export declare const unlink: (pkg: Package, where: string) => void;
//# sourceMappingURL=self-link.d.ts.map

@@ -1,1 +0,1 @@

{"version":3,"file":"self-link.d.ts","sourceRoot":"","sources":["../../src/self-link.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAA;AAmCpC,eAAO,MAAM,IAAI,uCAuBhB,CAAA;AAED,eAAO,MAAM,MAAM,uCAQlB,CAAA","sourcesContent":["// link the package folder into ./target/node_modules/<pkgname>\nimport { readlinkSync, symlinkSync } from 'fs'\nimport { mkdirpSync } from 'mkdirp'\nimport { dirname, relative, resolve, sep } from 'path'\nimport { rimrafSync } from 'rimraf'\nimport { walkUp } from 'walk-up-path'\nimport { Package } from './types.js'\n\nconst dirsMade = new Map<string, string>()\n\n// if the cwd is in already linked to or living within node_modules,\n// then skip the linking, because it's already done.\n// This is typically the case in a workspaces setup, and\n// creating yet *another* symlink to ourselves in src/node_modules\n// will break nx's change detection logic with an ELOOP error.\nlet inNM: boolean | undefined = undefined\n\nconst linkedAlready = (pkg: Package) => {\n if (inNM !== undefined) {\n return inNM\n }\n\n const cwd = process.cwd()\n const p = `${sep}node_modules${sep}${pkg.name}`.toLowerCase()\n if (cwd.toLowerCase().endsWith(p)) {\n return (inNM = true)\n }\n\n for (const p of walkUp(cwd)) {\n const link = resolve(p, 'node_modules', pkg.name)\n try {\n const target = resolve(dirname(link), readlinkSync(link))\n if (relative(target, cwd) === '') {\n return (inNM = true)\n }\n } catch {}\n }\n\n return (inNM = false)\n}\n\nexport const link = (pkg: Package, where: string) => {\n const selfLink = pkg?.tshy?.selfLink\n if (!pkg.name || selfLink === false || linkedAlready(pkg)) {\n return\n }\n const dest = resolve(where, 'node_modules', pkg.name)\n const dir = dirname(dest)\n const src = relative(dir, process.cwd())\n const made = mkdirpSync(dir)\n if (made) dirsMade.set(dest, made)\n try {\n symlinkSync(src, dest)\n } catch {\n rimrafSync(dest)\n let threw = true\n try {\n symlinkSync(src, dest)\n threw = false\n } finally {\n // best effort if not set explicitly. suppress error with return.\n if (threw && selfLink === undefined) return\n }\n }\n}\n\nexport const unlink = (pkg: Package, where: string) => {\n if (!pkg.name || pkg?.tshy?.selfLink === false || linkedAlready(pkg)) {\n return\n }\n const dest = resolve(where, 'node_modules', pkg.name)\n rimrafSync(dest)\n const made = dirsMade.get(dest)\n if (made) rimrafSync(made)\n}\n"]}
{"version":3,"file":"self-link.d.ts","sourceRoot":"","sources":["../../src/self-link.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAA;AAWzC,eAAO,MAAM,aAAa,2BAsBzB,CAAA;AAED,eAAO,MAAM,IAAI,uCAuBhB,CAAA;AAED,eAAO,MAAM,MAAM,uCAQlB,CAAA","sourcesContent":["// link the package folder into ./target/node_modules/<pkgname>\nimport { readlinkSync, symlinkSync } from 'fs'\nimport { mkdirpSync } from 'mkdirp'\nimport { dirname, relative, resolve, sep } from 'path'\nimport { rimrafSync } from 'rimraf'\nimport { walkUp } from 'walk-up-path'\nimport type { Package } from './types.js'\n\nconst dirsMade = new Map<string, string>()\n\n// if the cwd is in already linked to or living within node_modules,\n// then skip the linking, because it's already done.\n// This is typically the case in a workspaces setup, and\n// creating yet *another* symlink to ourselves in src/node_modules\n// will break nx's change detection logic with an ELOOP error.\nlet inNM: boolean | undefined = undefined\n\nexport const linkedAlready = (pkg: Package) => {\n if (inNM !== undefined) {\n return inNM\n }\n\n const cwd = process.cwd()\n const p = `${sep}node_modules${sep}${pkg.name}`.toLowerCase()\n if (cwd.toLowerCase().endsWith(p)) {\n return (inNM = true)\n }\n\n for (const p of walkUp(cwd)) {\n const link = resolve(p, 'node_modules', pkg.name)\n try {\n const target = resolve(dirname(link), readlinkSync(link))\n if (relative(target, cwd) === '') {\n return (inNM = true)\n }\n } catch {}\n }\n\n return (inNM = false)\n}\n\nexport const link = (pkg: Package, where: string) => {\n const selfLink = pkg?.tshy?.selfLink\n if (!pkg.name || selfLink === false || linkedAlready(pkg)) {\n return\n }\n const dest = resolve(where, 'node_modules', pkg.name)\n const dir = dirname(dest)\n const src = relative(dir, process.cwd())\n const made = mkdirpSync(dir)\n if (made) dirsMade.set(dest, made)\n try {\n symlinkSync(src, dest)\n } catch {\n rimrafSync(dest)\n let threw = true\n try {\n symlinkSync(src, dest)\n threw = false\n } finally {\n // best effort if not set explicitly. suppress error with return.\n if (threw && selfLink === undefined) return\n }\n }\n}\n\nexport const unlink = (pkg: Package, where: string) => {\n if (!pkg.name || pkg?.tshy?.selfLink === false || linkedAlready(pkg)) {\n return\n }\n const dest = resolve(where, 'node_modules', pkg.name)\n rimrafSync(dest)\n const made = dirsMade.get(dest)\n if (made) rimrafSync(made)\n}\n"]}

@@ -14,3 +14,3 @@ // link the package folder into ./target/node_modules/<pkgname>

let inNM = undefined;
const linkedAlready = (pkg) => {
export const linkedAlready = (pkg) => {
if (inNM !== undefined) {

@@ -17,0 +17,0 @@ return inNM;

@@ -1,1 +0,1 @@

{"version":3,"file":"self-link.js","sourceRoot":"","sources":["../../src/self-link.ts"],"names":[],"mappings":"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","sourcesContent":["// link the package folder into ./target/node_modules/<pkgname>\nimport { readlinkSync, symlinkSync } from 'fs'\nimport { mkdirpSync } from 'mkdirp'\nimport { dirname, relative, resolve, sep } from 'path'\nimport { rimrafSync } from 'rimraf'\nimport { walkUp } from 'walk-up-path'\nimport { Package } from './types.js'\n\nconst dirsMade = new Map<string, string>()\n\n// if the cwd is in already linked to or living within node_modules,\n// then skip the linking, because it's already done.\n// This is typically the case in a workspaces setup, and\n// creating yet *another* symlink to ourselves in src/node_modules\n// will break nx's change detection logic with an ELOOP error.\nlet inNM: boolean | undefined = undefined\n\nconst linkedAlready = (pkg: Package) => {\n if (inNM !== undefined) {\n return inNM\n }\n\n const cwd = process.cwd()\n const p = `${sep}node_modules${sep}${pkg.name}`.toLowerCase()\n if (cwd.toLowerCase().endsWith(p)) {\n return (inNM = true)\n }\n\n for (const p of walkUp(cwd)) {\n const link = resolve(p, 'node_modules', pkg.name)\n try {\n const target = resolve(dirname(link), readlinkSync(link))\n if (relative(target, cwd) === '') {\n return (inNM = true)\n }\n } catch {}\n }\n\n return (inNM = false)\n}\n\nexport const link = (pkg: Package, where: string) => {\n const selfLink = pkg?.tshy?.selfLink\n if (!pkg.name || selfLink === false || linkedAlready(pkg)) {\n return\n }\n const dest = resolve(where, 'node_modules', pkg.name)\n const dir = dirname(dest)\n const src = relative(dir, process.cwd())\n const made = mkdirpSync(dir)\n if (made) dirsMade.set(dest, made)\n try {\n symlinkSync(src, dest)\n } catch {\n rimrafSync(dest)\n let threw = true\n try {\n symlinkSync(src, dest)\n threw = false\n } finally {\n // best effort if not set explicitly. suppress error with return.\n if (threw && selfLink === undefined) return\n }\n }\n}\n\nexport const unlink = (pkg: Package, where: string) => {\n if (!pkg.name || pkg?.tshy?.selfLink === false || linkedAlready(pkg)) {\n return\n }\n const dest = resolve(where, 'node_modules', pkg.name)\n rimrafSync(dest)\n const made = dirsMade.get(dest)\n if (made) rimrafSync(made)\n}\n"]}
{"version":3,"file":"self-link.js","sourceRoot":"","sources":["../../src/self-link.ts"],"names":[],"mappings":"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","sourcesContent":["// link the package folder into ./target/node_modules/<pkgname>\nimport { readlinkSync, symlinkSync } from 'fs'\nimport { mkdirpSync } from 'mkdirp'\nimport { dirname, relative, resolve, sep } from 'path'\nimport { rimrafSync } from 'rimraf'\nimport { walkUp } from 'walk-up-path'\nimport type { Package } from './types.js'\n\nconst dirsMade = new Map<string, string>()\n\n// if the cwd is in already linked to or living within node_modules,\n// then skip the linking, because it's already done.\n// This is typically the case in a workspaces setup, and\n// creating yet *another* symlink to ourselves in src/node_modules\n// will break nx's change detection logic with an ELOOP error.\nlet inNM: boolean | undefined = undefined\n\nexport const linkedAlready = (pkg: Package) => {\n if (inNM !== undefined) {\n return inNM\n }\n\n const cwd = process.cwd()\n const p = `${sep}node_modules${sep}${pkg.name}`.toLowerCase()\n if (cwd.toLowerCase().endsWith(p)) {\n return (inNM = true)\n }\n\n for (const p of walkUp(cwd)) {\n const link = resolve(p, 'node_modules', pkg.name)\n try {\n const target = resolve(dirname(link), readlinkSync(link))\n if (relative(target, cwd) === '') {\n return (inNM = true)\n }\n } catch {}\n }\n\n return (inNM = false)\n}\n\nexport const link = (pkg: Package, where: string) => {\n const selfLink = pkg?.tshy?.selfLink\n if (!pkg.name || selfLink === false || linkedAlready(pkg)) {\n return\n }\n const dest = resolve(where, 'node_modules', pkg.name)\n const dir = dirname(dest)\n const src = relative(dir, process.cwd())\n const made = mkdirpSync(dir)\n if (made) dirsMade.set(dest, made)\n try {\n symlinkSync(src, dest)\n } catch {\n rimrafSync(dest)\n let threw = true\n try {\n symlinkSync(src, dest)\n threw = false\n } finally {\n // best effort if not set explicitly. suppress error with return.\n if (threw && selfLink === undefined) return\n }\n }\n}\n\nexport const unlink = (pkg: Package, where: string) => {\n if (!pkg.name || pkg?.tshy?.selfLink === false || linkedAlready(pkg)) {\n return\n }\n const dest = resolve(where, 'node_modules', pkg.name)\n rimrafSync(dest)\n const made = dirsMade.get(dest)\n if (made) rimrafSync(made)\n}\n"]}

@@ -1,4 +0,4 @@

import { Dialect } from './types.js';
import type { Dialect } from './types.js';
declare const _default: (where: string, mode?: Dialect | undefined) => void;
export default _default;
//# sourceMappingURL=set-folder-dialect.d.ts.map

@@ -1,1 +0,1 @@

{"version":3,"file":"set-folder-dialect.d.ts","sourceRoot":"","sources":["../../src/set-folder-dialect.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAA;;AAapC,wBAGC","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"]}
{"version":3,"file":"set-folder-dialect.d.ts","sourceRoot":"","sources":["../../src/set-folder-dialect.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAA;;AAazC,wBAGC","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 +0,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"]}
{"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 +0,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"]}
{"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"]}

@@ -16,2 +16,4 @@ import chalk from 'chalk';

compilerOptions: {
types: ['node'],
rootDir: './',
declaration: true,

@@ -18,0 +20,0 @@ declarationMap: true,

@@ -1,1 +0,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"]}
{"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"]}

@@ -35,4 +35,4 @@ import type { ConditionalValue, ExportsSubpaths, Imports } from 'resolve-import';

imports?: Imports;
[k: string]: any;
[k: string]: unknown;
};
//# sourceMappingURL=types.d.ts.map

@@ -1,1 +0,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"]}
{"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 +0,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"]}
{"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,2 +0,2 @@

import { Package } from './types.js';
import type { Package } from './types.js';
export declare const save: (f: string) => boolean;

@@ -3,0 +3,0 @@ export declare const link: (pkg: Package, dir: string, save?: boolean) => Promise<void>;

@@ -1,1 +0,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"]}
{"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 +0,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"]}
{"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 +0,5 @@

import { Dialect } from './types.js';
export declare const isDialect: (d: any) => d is Dialect;
declare const _default: (d: any) => d is Dialect[];
import type { Dialect } from './types.js';
export declare const isDialect: (d: unknown) => d is Dialect;
declare const _default: (d: unknown) => d is Dialect[];
export default _default;
//# sourceMappingURL=valid-dialects.d.ts.map

@@ -1,1 +0,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"]}
{"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 +0,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"]}
{"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 +0,3 @@

declare const _default: (d: any) => d is string[];
declare const _default: (d: unknown) => d is string[];
export default _default;
//# sourceMappingURL=valid-exclude.d.ts.map

@@ -1,1 +0,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"]}
{"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 +0,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"]}
{"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 +0,3 @@

declare const _default: (e: any) => e is (string | string[] | Record<string, import("resolve-import/raw").ConditionalValue>) & Record<string, import("resolve-import/raw").ConditionalValue>;
declare const _default: (e: unknown) => e is (string | string[] | Record<string, import("resolve-import/raw").ConditionalValue>) & Record<string, import("resolve-import/raw").ConditionalValue>;
export default _default;
//# sourceMappingURL=valid-exports.d.ts.map

@@ -1,1 +0,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"]}
{"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"]}
import addDot from './add-dot.js';
import fail from './fail.js';
import validExternalExport from './valid-external-export.js';
const isRecord = (e) => !!e && typeof e === 'object' && !Array.isArray(e);
export default (e) => {
if (!e || typeof e !== 'object' || Array.isArray(e))
if (!isRecord(e))
return false;

@@ -7,0 +8,0 @@ for (const [sub, exp] of Object.entries(e)) {

@@ -1,1 +0,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"]}
{"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"]}
import type { ConditionalValueObject } from 'resolve-import';
declare const _default: (exp: any) => exp is ConditionalValueObject;
declare const _default: (exp: unknown) => exp is ConditionalValueObject;
export default _default;
//# sourceMappingURL=valid-external-export.d.ts.map

@@ -1,1 +0,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"]}
{"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 +0,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"]}
{"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 +0,4 @@

import { TshyConfig } from './types.js';
import type { TshyConfig } from './types.js';
declare const _default: ({ commonjsDialects, esmDialects, sourceDialects, }: TshyConfig) => boolean;
export default _default;
//# sourceMappingURL=valid-extra-dialects.d.ts.map

@@ -1,1 +0,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"]}
{"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 +0,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"]}
{"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 +0,4 @@

import { Package } from './types.js';
import type { Package } from './types.js';
declare const _default: (pkg: Package) => boolean;
export default _default;
//# sourceMappingURL=valid-imports.d.ts.map

@@ -1,1 +0,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"]}
{"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 +0,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"]}
{"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 +0,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"]}
{"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 +0,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"]}
{"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,2 +0,2 @@

import { ChokidarOptions } from 'chokidar';
import type { ChokidarOptions } from 'chokidar';
export declare const options: ChokidarOptions;

@@ -3,0 +3,0 @@ export declare const srcPJ: string;

@@ -1,1 +0,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"]}
{"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"]}
// any time the root package.json or any typescript files in src
// are changed/added/removed, run the build
// oxlint-disable no-console
import chalk from 'chalk';

@@ -4,0 +5,0 @@ import { spawn } from 'child_process';

@@ -1,1 +0,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"]}
{"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"]}
{
"name": "tshy",
"version": "3.3.2",
"version": "4.0.0",
"description": "TypeScript HYbridizer - Hybrid (CommonJS/ESM) TypeScript node package builder",

@@ -24,3 +24,3 @@ "author": "Isaac Z. Schlueter <i@izs.me> (https://izs.me)",

"sync-content": "^2.0.3",
"typescript": "^5.9.3",
"typescript": "^6.0.2",
"walk-up-path": "^4.0.0"

@@ -35,10 +35,10 @@ },

"presnap": "npm run prepare",
"format": "prettier --write . --ignore-path ./.prettierignore --cache",
"format": "prettier --write .",
"typedoc": "typedoc --tsconfig .tshy/esm.json ./src/*.ts",
"test": "tap",
"snap": "tap"
"snap": "tap",
"lint": "oxlint --fix src test",
"postsnap": "npm run lint",
"postlint": "npm run format"
},
"tap": {
"coverage-map": "map.js"
},
"engines": {

@@ -57,7 +57,9 @@ "node": "20 || >=22"

"devDependencies": {
"@types/node": "^24.6.1",
"@types/node": "^25.5.0",
"esbuild": "^0.27.2",
"prettier": "^3.6.2",
"tap": "^21.1.4",
"typedoc": "^0.28.14"
"oxlint": "^1.57.0",
"oxlint-tsgolint": "^0.17.4",
"prettier": "^3.8.1",
"tap": "^21.6.2",
"typedoc": "^0.28.18"
},

@@ -64,0 +66,0 @@ "tshy": {

@@ -12,2 +12,18 @@ # tshy - TypeScript HYbridizer

> > [!NOTICE]
>
> ## Upgrading from v3 to v4
>
> Version 4 switches from TypeScript 5 to TypeScript 6. (Note: you
> can already preview TypeScript 7 by setting `"compiler": "tsgo"`
> in your tshy options.)
>
> This may cause problems upgrading, because tshy will only
> create a new `tsconfig.json` file if the file is missing
> (assuming that you've put it there for a good reason), and the
> requirements have changed slightly.
>
> If you get tsc errors after upgrading, try deleting your
> `tsconfig.json` file, and re-running tshy.
## USAGE

@@ -14,0 +30,0 @@

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display