@checkdigit/typescript-config 11.0.0-PR.82-4adb → 11.0.0-PR.82-5210

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/bin/builder.mjs CHANGED
@@ -49,7 +49,9 @@ function analyze(metafile) {
49
49
  // src/compile.ts
50
50
  import { strict as assert2 } from "node:assert";
51
51
  import { promises as fs } from "node:fs";
52
+ import module from "node:module";
52
53
  import path from "node:path";
54
+ import { fileURLToPath } from "node:url";
53
55
  import typescript from "typescript";
54
56
  import { build } from "esbuild";
55
57
 
@@ -58,6 +60,9 @@ var tsconfig_default = {
58
60
  compilerOptions: {
59
61
  target: "esnext",
60
62
  moduleResolution: "bundler",
63
+ paths: {
64
+ "@js-temporal/polyfill": ["./src/types/js-temporal-polyfill.d.ts"]
65
+ },
61
66
  sourceMap: true,
62
67
  inlineSources: true,
63
68
  declaration: true,
@@ -148,6 +153,38 @@ function resolveTypescriptPaths() {
148
153
  });
149
154
  };
150
155
  }
156
+ function getTemporalPolyfillModulePath({
157
+ exports
158
+ }) {
159
+ return exports?.["."]?.find((entry) => entry.import?.default !== void 0)?.import?.default;
160
+ }
161
+ function resolveRuntimeTemporalPolyfill(external2) {
162
+ return (pluginBuild) => {
163
+ pluginBuild.onResolve(
164
+ // Note: the /u flag cannot be used here because the underlying Go implementation does not support it
165
+ // eslint-disable-next-line require-unicode-regexp
166
+ { filter: /^@js-temporal\/polyfill$/ },
167
+ async (resolved) => {
168
+ const packageJsonPath = module.findPackageJSON(
169
+ resolved.path,
170
+ resolved.resolveDir
171
+ );
172
+ assert2.ok(packageJsonPath !== void 0);
173
+ if (external2.includes("./node_modules/*")) {
174
+ return { path: resolved.path, external: true };
175
+ }
176
+ const packageJson = JSON.parse(
177
+ await fs.readFile(packageJsonPath, "utf8")
178
+ );
179
+ const modulePath = getTemporalPolyfillModulePath(packageJson);
180
+ assert2.ok(modulePath !== void 0);
181
+ return {
182
+ path: path.join(path.dirname(packageJsonPath), modulePath)
183
+ };
184
+ }
185
+ );
186
+ };
187
+ }
151
188
  async function compile_default({
152
189
  type: type2,
153
190
  entryPoint: entryPoint2,
@@ -169,7 +206,8 @@ async function compile_default({
169
206
  const compilerOptions = typescript.parseJsonConfigFileContent(
170
207
  tsconfig_default,
171
208
  typescript.sys,
172
- outDir2
209
+ // @checkdigit/typescript-config package root:
210
+ path.dirname(path.dirname(fileURLToPath(import.meta.url)))
173
211
  ).options;
174
212
  const program = typescript.createProgram(productionSourceFiles, {
175
213
  ...compilerOptions,
@@ -246,6 +284,10 @@ async function compile_default({
246
284
  legalComments: "none",
247
285
  external: external2,
248
286
  plugins: [
287
+ {
288
+ name: "resolve-runtime-temporal-polyfill",
289
+ setup: resolveRuntimeTemporalPolyfill(external2)
290
+ },
249
291
  {
250
292
  name: "exclude-source-maps",
251
293
  // Note: the /u flag cannot be used here because the underlying Go implementation does not support it
@@ -1,7 +1,9 @@
1
1
  // src/compile.ts
2
2
  import { strict as assert } from "node:assert";
3
3
  import { promises as fs } from "node:fs";
4
+ import module from "node:module";
4
5
  import path from "node:path";
6
+ import { fileURLToPath } from "node:url";
5
7
  import typescript from "typescript";
6
8
  import { build } from "esbuild";
7
9
  import tsConfigJson from "../tsconfig.json" with { type: "json" };
@@ -61,6 +63,38 @@ function resolveTypescriptPaths() {
61
63
  });
62
64
  };
63
65
  }
66
+ function getTemporalPolyfillModulePath({
67
+ exports
68
+ }) {
69
+ return exports?.["."]?.find((entry) => entry.import?.default !== void 0)?.import?.default;
70
+ }
71
+ function resolveRuntimeTemporalPolyfill(external) {
72
+ return (pluginBuild) => {
73
+ pluginBuild.onResolve(
74
+ // Note: the /u flag cannot be used here because the underlying Go implementation does not support it
75
+ // eslint-disable-next-line require-unicode-regexp
76
+ { filter: /^@js-temporal\/polyfill$/ },
77
+ async (resolved) => {
78
+ const packageJsonPath = module.findPackageJSON(
79
+ resolved.path,
80
+ resolved.resolveDir
81
+ );
82
+ assert.ok(packageJsonPath !== void 0);
83
+ if (external.includes("./node_modules/*")) {
84
+ return { path: resolved.path, external: true };
85
+ }
86
+ const packageJson = JSON.parse(
87
+ await fs.readFile(packageJsonPath, "utf8")
88
+ );
89
+ const modulePath = getTemporalPolyfillModulePath(packageJson);
90
+ assert.ok(modulePath !== void 0);
91
+ return {
92
+ path: path.join(path.dirname(packageJsonPath), modulePath)
93
+ };
94
+ }
95
+ );
96
+ };
97
+ }
64
98
  async function compile_default({
65
99
  type,
66
100
  entryPoint,
@@ -82,7 +116,8 @@ async function compile_default({
82
116
  const compilerOptions = typescript.parseJsonConfigFileContent(
83
117
  tsConfigJson,
84
118
  typescript.sys,
85
- outDir
119
+ // @checkdigit/typescript-config package root:
120
+ path.dirname(path.dirname(fileURLToPath(import.meta.url)))
86
121
  ).options;
87
122
  const program = typescript.createProgram(productionSourceFiles, {
88
123
  ...compilerOptions,
@@ -159,6 +194,10 @@ async function compile_default({
159
194
  legalComments: "none",
160
195
  external,
161
196
  plugins: [
197
+ {
198
+ name: "resolve-runtime-temporal-polyfill",
199
+ setup: resolveRuntimeTemporalPolyfill(external)
200
+ },
162
201
  {
163
202
  name: "exclude-source-maps",
164
203
  // Note: the /u flag cannot be used here because the underlying Go implementation does not support it
@@ -179,4 +218,4 @@ async function compile_default({
179
218
  export {
180
219
  compile_default as default
181
220
  };
182
- //# sourceMappingURL=data:application/json;base64,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
221
+ //# sourceMappingURL=data:application/json;base64,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
@@ -0,0 +1 @@
1
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFtdLAogICJtYXBwaW5ncyI6ICIiLAogICJuYW1lcyI6IFtdCn0K
package/package.json CHANGED
@@ -1 +1 @@
1
- {"name":"@checkdigit/typescript-config","version":"11.0.0-PR.82-4adb","description":"Check Digit standard Typescript configuration","homepage":"https://github.com/checkdigit/typescript-config#readme","bugs":{"url":"https://github.com/checkdigit/typescript-config/issues"},"repository":{"type":"git","url":"git+https://github.com/checkdigit/typescript-config.git"},"license":"MIT","author":"Check Digit, LLC","type":"module","exports":{".":{"types":"./dist-types/index.d.ts","import":"./dist-mjs/index.mjs","default":"./tsconfig.json"}},"bin":{"builder":"./bin/builder.mjs","tsc":"./node_modules/.bin/tscgo"},"files":["bin","tsconfig.json","src","dist-types","dist-mjs","!src/**/test/**","!src/**/*.test.ts","!src/**/*.spec.ts","!dist-types/**/test/**","!dist-types/**/*.test.d.ts","!dist-types/**/*.spec.d.ts","!dist-mjs/**/test/**","!dist-mjs/**/*.test.mjs","!dist-mjs/**/*.spec.mjs","SECURITY.md"],"scripts":{"build":"npm run build:builder && npm run build:types && npm run build:mjs && npm run build:mjs-bundle && npm run build:mjs-bundle-minify && npm run build:mjs-bundle-no-external","build:builder":"esbuild src/builder.ts --bundle --platform=node --format=esm --external:typescript --external:esbuild --outfile=build-builder/builder.mjs && mkdir -p bin && { echo '#!/usr/bin/env node'; cat build-builder/builder.mjs; } > bin/builder.mjs && chmod +x bin/builder.mjs","build:dist-mjs":"node -e \"require('node:fs').rmSync('dist-mjs', { recursive: true, force: true })\" && npx builder --type=module --sourceMap --outDir=dist-mjs && node dist-mjs/index.mjs","build:dist-types":"node -e \"require('node:fs').rmSync('dist-types', { recursive: true, force: true })\" && npx builder --type=types --outDir=dist-types","build:mjs":"node -e \"require('node:fs').rmSync('build-mjs', { recursive: true, force: true })\" && bin/builder.mjs --type=module --outDir=build-mjs","build:mjs-bundle":"node -e \"require('node:fs').rmSync('build-mjs-bundle', { recursive: true, force: true })\" && bin/builder.mjs --type=module --outDir=build-mjs-bundle --entryPoint=index.test.ts --outFile=index.test.mjs","build:mjs-bundle-minify":"node -e \"require('node:fs').rmSync('build-mjs-bundle-minify', { recursive: true, force: true })\" && bin/builder.mjs --type=module --minify --outDir=build-mjs-bundle-minify --entryPoint=index.test.ts --outFile=index.test.mjs","build:mjs-bundle-no-external":"node -e \"require('node:fs').rmSync('build-mjs-bundle-no-external', { recursive: true, force: true })\" && bin/builder.mjs --type=module --external=./node_modules/* --outDir=build-mjs-bundle-no-external --entryPoint=index.test.ts --outFile=index.test.mjs --minify","build:types":"node -e \"require('node:fs').rmSync('build-types', { recursive: true, force: true })\" && bin/builder.mjs --type=types --outDir=build-types","ci:compile":"time tsgo && time tsc","ci:lint":"npm run lint","ci:style":"npm run prettier","ci:test":"npm run build && npm run test:node && npm run test:mjs && npm run test:mjs-bundle && npm run test:mjs-bundle-no-external","lint":"eslint . --max-warnings=0 --concurrency=auto --flag unstable_native_nodejs_ts_config","lint:fix":"eslint . --fix --concurrency=auto --flag unstable_native_nodejs_ts_config","prepare":"","prepublishOnly":"npm run build:builder && npm run build:dist-types && npm run build:dist-mjs","prettier":"prettier --ignore-path .gitignore --list-different .","prettier:fix":"prettier --ignore-path .gitignore --write .","test":"npm run ci:compile && npm run ci:test && npm run ci:lint && npm run ci:style","test:mjs":"node --test build-mjs/test/index.mjs","test:mjs-bundle":"node --test build-mjs-bundle/index.test.mjs","test:mjs-bundle-minify":"node --test build-mjs-bundle-minify/index.test.mjs","test:mjs-bundle-no-external":"node --test build-mjs-bundle-no-external/index.test.mjs","test:node":"node --disable-warning ExperimentalWarning --experimental-strip-types --test-timeout 600000 --test \"src/**/*.spec.ts\""},"prettier":"@checkdigit/prettier-config","devDependencies":{"@checkdigit/prettier-config":"^8.0.0","@eslint/js":"^10.0.1","@eslint/json":"^2.0.0","@eslint/markdown":"^8.0.2","eslint":"^10.4.1","eslint-config-prettier":"^10.1.8","eslint-plugin-yml":"^3.4.0","typescript-eslint":"^8.60.0"},"peerDependencies":{"@swc-node/register":"1.11.1","@types/node":">=24","@typescript/native-preview":"7.0.0-dev.20260601.1","esbuild":"0.28.0","typescript":">=6.0.3 <7"},"engines":{"node":">=24.14.1 <25 || >=26"}}
1
+ {"name":"@checkdigit/typescript-config","version":"11.0.0-PR.82-5210","description":"Check Digit standard Typescript configuration","homepage":"https://github.com/checkdigit/typescript-config#readme","bugs":{"url":"https://github.com/checkdigit/typescript-config/issues"},"repository":{"type":"git","url":"git+https://github.com/checkdigit/typescript-config.git"},"license":"MIT","author":"Check Digit, LLC","type":"module","exports":{".":{"types":"./dist-types/index.d.ts","import":"./dist-mjs/index.mjs","default":"./tsconfig.json"}},"bin":{"builder":"./bin/builder.mjs","tsc":"./node_modules/.bin/tscgo"},"files":["bin","tsconfig.json","src","dist-types","dist-mjs","!src/**/test/**","!src/**/*.test.ts","!src/**/*.spec.ts","!dist-types/**/test/**","!dist-types/**/*.test.d.ts","!dist-types/**/*.spec.d.ts","!dist-mjs/**/test/**","!dist-mjs/**/*.test.mjs","!dist-mjs/**/*.spec.mjs","SECURITY.md"],"scripts":{"build":"npm run build:builder && npm run build:types && npm run build:mjs && npm run build:mjs-bundle && npm run build:mjs-bundle-minify && npm run build:mjs-bundle-no-external","build:builder":"esbuild src/builder.ts --bundle --platform=node --format=esm --external:typescript --external:esbuild --outfile=build-builder/builder.mjs && mkdir -p bin && { echo '#!/usr/bin/env node'; cat build-builder/builder.mjs; } > bin/builder.mjs && chmod +x bin/builder.mjs","build:dist-mjs":"node -e \"require('node:fs').rmSync('dist-mjs', { recursive: true, force: true })\" && npx builder --type=module --sourceMap --outDir=dist-mjs && node dist-mjs/index.mjs","build:dist-types":"node -e \"require('node:fs').rmSync('dist-types', { recursive: true, force: true })\" && npx builder --type=types --outDir=dist-types","build:mjs":"node -e \"require('node:fs').rmSync('build-mjs', { recursive: true, force: true })\" && bin/builder.mjs --type=module --outDir=build-mjs","build:mjs-bundle":"node -e \"require('node:fs').rmSync('build-mjs-bundle', { recursive: true, force: true })\" && bin/builder.mjs --type=module --outDir=build-mjs-bundle --entryPoint=index.test.ts --outFile=index.test.mjs","build:mjs-bundle-minify":"node -e \"require('node:fs').rmSync('build-mjs-bundle-minify', { recursive: true, force: true })\" && bin/builder.mjs --type=module --minify --outDir=build-mjs-bundle-minify --entryPoint=index.test.ts --outFile=index.test.mjs","build:mjs-bundle-no-external":"node -e \"require('node:fs').rmSync('build-mjs-bundle-no-external', { recursive: true, force: true })\" && bin/builder.mjs --type=module --external=./node_modules/* --outDir=build-mjs-bundle-no-external --entryPoint=index.test.ts --outFile=index.test.mjs --minify","build:types":"node -e \"require('node:fs').rmSync('build-types', { recursive: true, force: true })\" && bin/builder.mjs --type=types --outDir=build-types","ci:compile":"time tsgo && time tsc","ci:lint":"npm run lint","ci:style":"npm run prettier","ci:test":"npm run build && npm run test:node && npm run test:mjs && npm run test:mjs-bundle && npm run test:mjs-bundle-no-external","lint":"eslint . --max-warnings=0 --concurrency=auto --flag unstable_native_nodejs_ts_config","lint:fix":"eslint . --fix --concurrency=auto --flag unstable_native_nodejs_ts_config","prepare":"","prepublishOnly":"npm run build:builder && npm run build:dist-types && npm run build:dist-mjs","prettier":"prettier . --check","prettier:fix":"prettier . --write","test":"npm run ci:compile && npm run ci:test && npm run ci:lint && npm run ci:style","test:mjs":"node --test build-mjs/test/index.mjs","test:mjs-bundle":"node --test build-mjs-bundle/index.test.mjs","test:mjs-bundle-minify":"node --test build-mjs-bundle-minify/index.test.mjs","test:mjs-bundle-no-external":"node --test build-mjs-bundle-no-external/index.test.mjs","test:node":"node --disable-warning ExperimentalWarning --experimental-strip-types --test-timeout 600000 --test \"src/**/*.spec.ts\""},"prettier":"@checkdigit/prettier-config","devDependencies":{"@checkdigit/prettier-config":"^8.1.0","@eslint/js":"^10.0.1","@eslint/json":"^2.0.1","@eslint/markdown":"^8.0.3","@js-temporal/polyfill":"^0.5.1","eslint":"^10.6.0","eslint-config-prettier":"^10.1.8","eslint-plugin-yml":"^3.5.0","typescript-eslint":"^8.62.1"},"peerDependencies":{"@swc-node/register":"1.11.1","@types/node":">=24","@typescript/native-preview":"7.0.0-dev.20260702.3","esbuild":"0.28.1","typescript":">=6.0.3 <7"},"engines":{"node":">=24.14.1 <25 || >=26"}}
package/src/compile.ts CHANGED
@@ -2,7 +2,9 @@
2
2
 
3
3
  import { strict as assert } from 'node:assert';
4
4
  import { promises as fs } from 'node:fs';
5
+ import module from 'node:module';
5
6
  import path from 'node:path';
7
+ import { fileURLToPath } from 'node:url';
6
8
 
7
9
  import typescript from 'typescript';
8
10
  import { build, type PluginBuild } from 'esbuild';
@@ -188,6 +190,57 @@ function resolveTypescriptPaths() {
188
190
  };
189
191
  }
190
192
 
193
+ /**
194
+ * The Temporal polyfill handling can be removed once Node 26 becomes minimum version
195
+ */
196
+ interface TemporalPolyfillPackageJson {
197
+ exports?: {
198
+ '.'?: {
199
+ import?: {
200
+ default?: string;
201
+ };
202
+ }[];
203
+ };
204
+ }
205
+
206
+ function getTemporalPolyfillModulePath({
207
+ exports,
208
+ }: TemporalPolyfillPackageJson): string | undefined {
209
+ return exports?.['.']?.find((entry) => entry.import?.default !== undefined)
210
+ ?.import?.default;
211
+ }
212
+
213
+ function resolveRuntimeTemporalPolyfill(external: string[]) {
214
+ return (pluginBuild: PluginBuild) => {
215
+ pluginBuild.onResolve(
216
+ // Note: the /u flag cannot be used here because the underlying Go implementation does not support it
217
+ // eslint-disable-next-line require-unicode-regexp
218
+ { filter: /^@js-temporal\/polyfill$/ },
219
+ async (resolved) => {
220
+ const packageJsonPath = module.findPackageJSON(
221
+ resolved.path,
222
+ resolved.resolveDir,
223
+ );
224
+
225
+ assert.ok(packageJsonPath !== undefined);
226
+ if (external.includes('./node_modules/*')) {
227
+ return { path: resolved.path, external: true };
228
+ }
229
+
230
+ const packageJson = JSON.parse(
231
+ await fs.readFile(packageJsonPath, 'utf8'),
232
+ ) as TemporalPolyfillPackageJson;
233
+ const modulePath = getTemporalPolyfillModulePath(packageJson);
234
+
235
+ assert.ok(modulePath !== undefined);
236
+ return {
237
+ path: path.join(path.dirname(packageJsonPath), modulePath),
238
+ };
239
+ },
240
+ );
241
+ };
242
+ }
243
+
191
244
  // eslint-disable-next-line max-lines-per-function
192
245
  export default async function ({
193
246
  type,
@@ -220,7 +273,8 @@ export default async function ({
220
273
  const compilerOptions = typescript.parseJsonConfigFileContent(
221
274
  tsConfigJson,
222
275
  typescript.sys,
223
- outDir,
276
+ // @checkdigit/typescript-config package root:
277
+ path.dirname(path.dirname(fileURLToPath(import.meta.url))),
224
278
  ).options;
225
279
  const program = typescript.createProgram(productionSourceFiles, {
226
280
  ...compilerOptions,
@@ -308,6 +362,10 @@ export default async function ({
308
362
  legalComments: 'none',
309
363
  external,
310
364
  plugins: [
365
+ {
366
+ name: 'resolve-runtime-temporal-polyfill',
367
+ setup: resolveRuntimeTemporalPolyfill(external),
368
+ },
311
369
  {
312
370
  name: 'exclude-source-maps',
313
371
  // Note: the /u flag cannot be used here because the underlying Go implementation does not support it
@@ -0,0 +1,5 @@
1
+ // types/js-temporal-polyfill.ts
2
+
3
+ export declare const Temporal: typeof globalThis.Temporal;
4
+ export declare const Intl: typeof globalThis.Intl;
5
+ export declare function toTemporalInstant(this: Date): Temporal.Instant;
package/tsconfig.json CHANGED
@@ -2,6 +2,9 @@
2
2
  "compilerOptions": {
3
3
  "target": "esnext",
4
4
  "moduleResolution": "bundler",
5
+ "paths": {
6
+ "@js-temporal/polyfill": ["./src/types/js-temporal-polyfill.d.ts"]
7
+ },
5
8
  "sourceMap": true,
6
9
  "inlineSources": true,
7
10
  "declaration": true,