@prosopo/config 3.3.0 → 3.3.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (46) hide show
  1. package/.turbo/turbo-build$colon$cjs.log +4 -4
  2. package/.turbo/turbo-build$colon$tsc.log +4 -4
  3. package/.turbo/turbo-build.log +5 -5
  4. package/.turbo/turbo-typecheck.log +1 -1
  5. package/CHANGELOG.md +10 -0
  6. package/dist/cjs/vite/vite.backend.config.cjs +8 -1
  7. package/dist/cjs/webpack/webpack.config.cjs +8 -6
  8. package/dist/vite/vite.backend.config.d.ts +1 -1
  9. package/dist/vite/vite.backend.config.d.ts.map +1 -1
  10. package/dist/vite/vite.backend.config.js +8 -1
  11. package/dist/vite/vite.backend.config.js.map +1 -1
  12. package/dist/vite/vite.commonjs.config.d.ts +1 -1
  13. package/dist/vite/vite.commonjs.config.d.ts.map +1 -1
  14. package/dist/vite/vite.commonjs.config.js.map +1 -1
  15. package/dist/vite/vite.esm.config.d.ts +1 -1
  16. package/dist/vite/vite.esm.config.d.ts.map +1 -1
  17. package/dist/vite/vite.esm.config.js.map +1 -1
  18. package/dist/webpack/webpack.config.d.ts +1 -6
  19. package/dist/webpack/webpack.config.d.ts.map +1 -1
  20. package/dist/webpack/webpack.config.js +8 -6
  21. package/dist/webpack/webpack.config.js.map +1 -1
  22. package/package.json +4 -3
  23. package/src/dependencies.ts +246 -0
  24. package/src/index.ts +16 -0
  25. package/src/vite/NodejsPolarsDirnamePlugin.ts +45 -0
  26. package/src/vite/NodejsPolarsNativeFilePlugin.ts +83 -0
  27. package/src/vite/TsNoCheckPlugin.ts +27 -0
  28. package/src/vite/index.ts +25 -0
  29. package/src/vite/types.ts +13 -0
  30. package/src/vite/vite-plugin-close-and-copy.ts +76 -0
  31. package/src/vite/vite-plugin-copy.ts +67 -0
  32. package/src/vite/vite-plugin-fix-absolute-imports.ts +40 -0
  33. package/src/vite/vite-plugin-remove-unused-translations.ts +128 -0
  34. package/src/vite/vite-plugin-sourcemap-exclude.ts +36 -0
  35. package/src/vite/vite.backend.config.ts +148 -0
  36. package/src/vite/vite.commonjs.config.ts +96 -0
  37. package/src/vite/vite.esm.config.ts +87 -0
  38. package/src/vite/vite.frontend.config.ts +265 -0
  39. package/src/vite/vite.test.config.ts +111 -0
  40. package/src/vite/vite.threads.test.config.ts +109 -0
  41. package/src/webpack/index.ts +14 -0
  42. package/src/webpack/webpack.config.ts +152 -0
  43. package/tsconfig.cjs.json +9 -0
  44. package/tsconfig.json +17 -0
  45. package/tsconfig.tsbuildinfo +1 -0
  46. package/tsconfig.types.json +9 -0
@@ -1,5 +1,5 @@
1
1
 
2
- > @prosopo/config@3.3.0 build:cjs
2
+ > @prosopo/config@3.3.2 build:cjs
3
3
  > NODE_ENV=${NODE_ENV:-production}; vite build --config vite.cjs.config.ts --mode $NODE_ENV
4
4
 
5
5
  ViteCommonJSConfig: .
@@ -25,8 +25,8 @@ rendering chunks...
25
25
  dist/cjs/vite/vite.threads.test.config.cjs 2.51 kB
26
26
  dist/cjs/vite/vite.test.config.cjs 2.54 kB
27
27
  dist/cjs/vite/vite-plugin-remove-unused-translations.cjs 2.60 kB
28
- dist/cjs/vite/vite.backend.config.cjs 3.37 kB
29
- dist/cjs/webpack/webpack.config.cjs 4.91 kB
28
+ dist/cjs/vite/vite.backend.config.cjs 3.57 kB
29
+ dist/cjs/webpack/webpack.config.cjs 5.05 kB
30
30
  dist/cjs/dependencies.cjs 5.22 kB
31
31
  dist/cjs/vite/vite.frontend.config.cjs 7.39 kB
32
- ✓ built in 168ms
32
+ ✓ built in 219ms
@@ -1,11 +1,11 @@
1
1
 
2
- > @prosopo/config@3.3.0 build:tsc
2
+ > @prosopo/config@3.3.2 build:tsc
3
3
  > tsc --build --verbose
4
4
 
5
- 4:56:24 PM - Projects in this build:
5
+ 1:47:41 PM - Projects in this build:
6
6
  * tsconfig.json
7
7
 
8
- 4:56:24 PM - Project 'tsconfig.json' is out of date because output file 'tsconfig.tsbuildinfo' does not exist
8
+ 1:47:41 PM - Project 'tsconfig.json' is out of date because output file 'tsconfig.tsbuildinfo' does not exist
9
9
 
10
- 4:56:24 PM - Building project '/home/runner/work/captcha/captcha/dev/config/tsconfig.json'...
10
+ 1:47:41 PM - Building project '/home/runner/work/captcha/captcha/dev/config/tsconfig.json'...
11
11
 
@@ -1,9 +1,9 @@
1
1
 
2
- > @prosopo/config@3.3.0 build
2
+ > @prosopo/config@3.3.2 build
3
3
  > npm run build:cross-env -- --mode ${NODE_ENV:-development}
4
4
 
5
5
 
6
- > @prosopo/config@3.3.0 build:cross-env
6
+ > @prosopo/config@3.3.2 build:cross-env
7
7
  > vite build --config vite.esm.config.ts --mode production
8
8
 
9
9
  ViteEsmConfig: .
@@ -28,8 +28,8 @@ rendering chunks...
28
28
  dist/vite/vite-plugin-remove-unused-translations.js 2.43 kB
29
29
  dist/vite/vite.threads.test.config.js 2.48 kB
30
30
  dist/vite/vite.test.config.js 2.51 kB
31
- dist/vite/vite.backend.config.js 3.29 kB
32
- dist/webpack/webpack.config.js 3.68 kB
31
+ dist/vite/vite.backend.config.js 3.49 kB
32
+ dist/webpack/webpack.config.js 3.81 kB
33
33
  dist/dependencies.js 5.02 kB
34
34
  dist/vite/vite.frontend.config.js 7.27 kB
35
- ✓ built in 241ms
35
+ ✓ built in 224ms
@@ -1,4 +1,4 @@
1
1
 
2
- > @prosopo/config@3.3.0 typecheck
2
+ > @prosopo/config@3.3.2 typecheck
3
3
  > tsc --project tsconfig.types.json
4
4
 
package/CHANGELOG.md CHANGED
@@ -1,5 +1,15 @@
1
1
  # @prosopo/config
2
2
 
3
+ ## 3.3.2
4
+ ### Patch Changes
5
+
6
+ - 7a97bba: chore(deps): bump esbuild from 0.25.9 to 0.28.1
7
+
8
+ ## 3.3.1
9
+ ### Patch Changes
10
+
11
+ - e1ea65f: Better spam email domain checking
12
+
3
13
  ## 3.3.0
4
14
  ### Minor Changes
5
15
 
@@ -40,8 +40,15 @@ async function vite_backend_config(packageName, packageVersion, bundleName, pack
40
40
  let entriesAbsolute;
41
41
  if (typeof entry === "string") {
42
42
  entriesAbsolute = [path.resolve(packageDir, entry)];
43
- } else {
43
+ } else if (Array.isArray(entry)) {
44
44
  entriesAbsolute = entry.map((e) => path.resolve(packageDir, e));
45
+ } else {
46
+ entriesAbsolute = Object.fromEntries(
47
+ Object.entries(entry).map(([key, value]) => [
48
+ key,
49
+ path.resolve(packageDir, value)
50
+ ])
51
+ );
45
52
  }
46
53
  const drop = mode === "production" ? ["console", "debugger"] : void 0;
47
54
  return {
@@ -22,6 +22,7 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
22
22
  mod
23
23
  ));
24
24
  const fs = require("node:fs");
25
+ const node_module = require("node:module");
25
26
  const path = require("node:path");
26
27
  const HtmlWebpackPlugin = require("html-webpack-plugin");
27
28
  const MiniCssExtractPlugin = require("mini-css-extract-plugin");
@@ -33,6 +34,12 @@ function resolveEntryFile() {
33
34
  const supportedEntries = [defaultEntry, "./src/index.ts"];
34
35
  return supportedEntries.find((entry) => fs.existsSync(path.resolve(entry))) || defaultEntry;
35
36
  }
37
+ const nodeExternals = {};
38
+ for (const m of node_module.builtinModules) {
39
+ const key = m.indexOf("node:") === -1 ? `node:${m}` : m;
40
+ nodeExternals[key] = `commonjs ${m}`;
41
+ nodeExternals[m] = `commonjs ${m}`;
42
+ }
36
43
  const webpack_config = (mode) => {
37
44
  const isProduction = mode === "production";
38
45
  const libraryName = "react_app";
@@ -53,12 +60,7 @@ const webpack_config = (mode) => {
53
60
  )
54
61
  }
55
62
  },
56
- externals: {
57
- "node:url": "commonjs url",
58
- url: "commonjs url",
59
- "node:path": "commonjs path",
60
- "node:fs": "commonjs fs"
61
- },
63
+ externals: nodeExternals,
62
64
  entry: resolveEntryFile(),
63
65
  output: {
64
66
  filename: `${libraryName}.[name].bundle.js`,
@@ -1,3 +1,3 @@
1
1
  import type { UserConfig } from "vite";
2
- export default function (packageName: string, packageVersion: string, bundleName: string, packageDir: string, entry: string | string[], command?: string, mode?: string, outputDir?: string): Promise<UserConfig>;
2
+ export default function (packageName: string, packageVersion: string, bundleName: string, packageDir: string, entry: string | string[] | Record<string, string>, command?: string, mode?: string, outputDir?: string): Promise<UserConfig>;
3
3
  //# sourceMappingURL=vite.backend.config.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"vite.backend.config.d.ts","sourceRoot":"","sources":["../../src/vite/vite.backend.config.ts"],"names":[],"mappings":"AAmBA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,MAAM,CAAC;AAKvC,yBACC,WAAW,EAAE,MAAM,EACnB,cAAc,EAAE,MAAM,EACtB,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,MAAM,EAClB,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,EACxB,OAAO,CAAC,EAAE,MAAM,EAChB,IAAI,CAAC,EAAE,MAAM,EACb,SAAS,CAAC,EAAE,MAAM,GAChB,OAAO,CAAC,UAAU,CAAC,CA2GrB"}
1
+ {"version":3,"file":"vite.backend.config.d.ts","sourceRoot":"","sources":["../../src/vite/vite.backend.config.ts"],"names":[],"mappings":"AAmBA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,MAAM,CAAC;AAKvC,yBACC,WAAW,EAAE,MAAM,EACnB,cAAc,EAAE,MAAM,EACtB,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,MAAM,EAClB,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EACjD,OAAO,CAAC,EAAE,MAAM,EAChB,IAAI,CAAC,EAAE,MAAM,EACb,SAAS,CAAC,EAAE,MAAM,GAChB,OAAO,CAAC,UAAU,CAAC,CAkHrB"}
@@ -39,8 +39,15 @@ async function vite_backend_config(packageName, packageVersion, bundleName, pack
39
39
  let entriesAbsolute;
40
40
  if (typeof entry === "string") {
41
41
  entriesAbsolute = [path.resolve(packageDir, entry)];
42
- } else {
42
+ } else if (Array.isArray(entry)) {
43
43
  entriesAbsolute = entry.map((e) => path.resolve(packageDir, e));
44
+ } else {
45
+ entriesAbsolute = Object.fromEntries(
46
+ Object.entries(entry).map(([key, value]) => [
47
+ key,
48
+ path.resolve(packageDir, value)
49
+ ])
50
+ );
44
51
  }
45
52
  const drop = mode === "production" ? ["console", "debugger"] : void 0;
46
53
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"vite.backend.config.js","sourceRoot":"","sources":["../../src/vite/vite.backend.config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"vite.backend.config.js","sourceRoot":"","sources":["../../src/vite/vite.backend.config.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,3 @@
1
1
  import { type UserConfig } from "vite";
2
- export default function (name: string, tsConfigPath: string, entry?: string | Record<string, string>): Promise<UserConfig>;
2
+ export default function (name: string, tsConfigPath: string, entry?: string | string[] | Record<string, string>): Promise<UserConfig>;
3
3
  //# sourceMappingURL=vite.commonjs.config.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"vite.commonjs.config.d.ts","sourceRoot":"","sources":["../../src/vite/vite.commonjs.config.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,KAAK,UAAU,EAAgB,MAAM,MAAM,CAAC;AAOrD,yBACC,IAAI,EAAE,MAAM,EACZ,YAAY,EAAE,MAAM,EACpB,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GACrC,OAAO,CAAC,UAAU,CAAC,CAoErB"}
1
+ {"version":3,"file":"vite.commonjs.config.d.ts","sourceRoot":"","sources":["../../src/vite/vite.commonjs.config.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,KAAK,UAAU,EAAgB,MAAM,MAAM,CAAC;AAOrD,yBACC,IAAI,EAAE,MAAM,EACZ,YAAY,EAAE,MAAM,EACpB,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAChD,OAAO,CAAC,UAAU,CAAC,CAoErB"}
@@ -1 +1 @@
1
- {"version":3,"file":"vite.commonjs.config.js","sourceRoot":"","sources":["../../src/vite/vite.commonjs.config.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAmB,YAAY,EAAE,MAAM,MAAM,CAAC;AACrD,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAClE,OAAO,aAAa,MAAM,qBAAqB,CAAC;AAChD,OAAO,EAAE,0BAA0B,EAAE,MAAM,oBAAoB,CAAC;AAChE,OAAO,sBAAsB,MAAM,iCAAiC,CAAC;AACrE,OAAO,cAAc,MAAM,uBAAuB,CAAC;AAEnD,MAAM,CAAC,OAAO,CAAC,KAAK,WACnB,IAAY,EACZ,YAAoB,EACpB,KAAuC;IAEvC,OAAO,CAAC,IAAI,CAAC,uBAAuB,IAAI,EAAE,CAAC,CAAC;IAC5C,MAAM,eAAe,GAAG,MAAM,0BAA0B,CAAC,YAAY,EAAE;QACtE,KAAK;KACL,CAAC,CAAC;IACH,MAAM,WAAW,GAAG;QACnB,GAAG,cAAc;QACjB,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC;QACzC,GAAG,eAAe;KAClB,CAAC;IACF,OAAO,YAAY,CAAC;QACnB,GAAG,EAAE,EAAE,QAAQ,EAAE,WAAW,EAAE;QAC9B,OAAO,EAAE;YAER;gBACC,IAAI,EAAE,gCAAgC;gBACtC,cAAc,CAAC,CAAC,EAAE,MAAM;oBACvB,KAAK,MAAM,QAAQ,IAAI,MAAM,EAAE,CAAC;wBAC/B,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;wBAC/B,IACC,KAAK;4BACL,KAAK,CAAC,IAAI,KAAK,OAAO;4BACtB,MAAM,IAAI,KAAK;4BACf,KAAK,CAAC,IAAI,EACT,CAAC;4BACF,KAAK,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,CAC9B,oBAAoB,EACpB,+CAA+C,CAC/C,CAAC;wBACH,CAAC;oBACF,CAAC;gBACF,CAAC;aACD;YAED,cAAc,CAAC;gBACd,IAAI,EAAE,KAAK;gBACX,IAAI,EAAE,UAAU;aAChB,CAAC;YACF,cAAc,CAAC;gBACd,MAAM,EAAE,KAAK;gBACb,OAAO,EAAE,MAAM;gBACf,OAAO,EAAE,CAAC,WAAW,CAAC;aACtB,CAAC;YACF,aAAa,CAAC,EAAE,QAAQ,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC;YACzD,sBAAsB,EAAE;SACxB;QACD,KAAK,EAAE;YACN,WAAW,EAAE,KAAK;YAClB,GAAG,EAAE,IAAI;YACT,MAAM,EAAE,QAAQ;YAChB,MAAM,EAAE,UAAU;YAClB,GAAG,EAAE;gBACJ,IAAI;gBACJ,OAAO,EAAE,CAAC,KAAK,CAAC;gBAChB,KAAK,EAAE,KAAK,IAAI,cAAc;aAC9B;YACD,aAAa,EAAE;gBACd,SAAS,EAAE,KAAK;gBAChB,QAAQ,EAAE,WAAW;aACrB;SACD;QACD,OAAO,EAAE;YACR,GAAG,EAAE,WAAW;YAGhB,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,aAAa;SAC9C;KACD,CAAC,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"vite.commonjs.config.js","sourceRoot":"","sources":["../../src/vite/vite.commonjs.config.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAmB,YAAY,EAAE,MAAM,MAAM,CAAC;AACrD,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAClE,OAAO,aAAa,MAAM,qBAAqB,CAAC;AAChD,OAAO,EAAE,0BAA0B,EAAE,MAAM,oBAAoB,CAAC;AAChE,OAAO,sBAAsB,MAAM,iCAAiC,CAAC;AACrE,OAAO,cAAc,MAAM,uBAAuB,CAAC;AAEnD,MAAM,CAAC,OAAO,CAAC,KAAK,WACnB,IAAY,EACZ,YAAoB,EACpB,KAAkD;IAElD,OAAO,CAAC,IAAI,CAAC,uBAAuB,IAAI,EAAE,CAAC,CAAC;IAC5C,MAAM,eAAe,GAAG,MAAM,0BAA0B,CAAC,YAAY,EAAE;QACtE,KAAK;KACL,CAAC,CAAC;IACH,MAAM,WAAW,GAAG;QACnB,GAAG,cAAc;QACjB,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC;QACzC,GAAG,eAAe;KAClB,CAAC;IACF,OAAO,YAAY,CAAC;QACnB,GAAG,EAAE,EAAE,QAAQ,EAAE,WAAW,EAAE;QAC9B,OAAO,EAAE;YAER;gBACC,IAAI,EAAE,gCAAgC;gBACtC,cAAc,CAAC,CAAC,EAAE,MAAM;oBACvB,KAAK,MAAM,QAAQ,IAAI,MAAM,EAAE,CAAC;wBAC/B,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;wBAC/B,IACC,KAAK;4BACL,KAAK,CAAC,IAAI,KAAK,OAAO;4BACtB,MAAM,IAAI,KAAK;4BACf,KAAK,CAAC,IAAI,EACT,CAAC;4BACF,KAAK,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,CAC9B,oBAAoB,EACpB,+CAA+C,CAC/C,CAAC;wBACH,CAAC;oBACF,CAAC;gBACF,CAAC;aACD;YAED,cAAc,CAAC;gBACd,IAAI,EAAE,KAAK;gBACX,IAAI,EAAE,UAAU;aAChB,CAAC;YACF,cAAc,CAAC;gBACd,MAAM,EAAE,KAAK;gBACb,OAAO,EAAE,MAAM;gBACf,OAAO,EAAE,CAAC,WAAW,CAAC;aACtB,CAAC;YACF,aAAa,CAAC,EAAE,QAAQ,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC;YACzD,sBAAsB,EAAE;SACxB;QACD,KAAK,EAAE;YACN,WAAW,EAAE,KAAK;YAClB,GAAG,EAAE,IAAI;YACT,MAAM,EAAE,QAAQ;YAChB,MAAM,EAAE,UAAU;YAClB,GAAG,EAAE;gBACJ,IAAI;gBACJ,OAAO,EAAE,CAAC,KAAK,CAAC;gBAChB,KAAK,EAAE,KAAK,IAAI,cAAc;aAC9B;YACD,aAAa,EAAE;gBACd,SAAS,EAAE,KAAK;gBAChB,QAAQ,EAAE,WAAW;aACrB;SACD;QACD,OAAO,EAAE;YACR,GAAG,EAAE,WAAW;YAGhB,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,aAAa;SAC9C;KACD,CAAC,CAAC;AACJ,CAAC"}
@@ -1,3 +1,3 @@
1
1
  import { type UserConfig } from "vite";
2
- export default function (name: string, tsConfigPath: string, entry?: string | Record<string, string>): Promise<UserConfig>;
2
+ export default function (name: string, tsConfigPath: string, entry?: string | string[] | Record<string, string>): Promise<UserConfig>;
3
3
  //# sourceMappingURL=vite.esm.config.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"vite.esm.config.d.ts","sourceRoot":"","sources":["../../src/vite/vite.esm.config.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,KAAK,UAAU,EAAgB,MAAM,MAAM,CAAC;AAOrD,yBACC,IAAI,EAAE,MAAM,EACZ,YAAY,EAAE,MAAM,EACpB,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GACrC,OAAO,CAAC,UAAU,CAAC,CA2DrB"}
1
+ {"version":3,"file":"vite.esm.config.d.ts","sourceRoot":"","sources":["../../src/vite/vite.esm.config.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,KAAK,UAAU,EAAgB,MAAM,MAAM,CAAC;AAOrD,yBACC,IAAI,EAAE,MAAM,EACZ,YAAY,EAAE,MAAM,EACpB,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAChD,OAAO,CAAC,UAAU,CAAC,CA2DrB"}
@@ -1 +1 @@
1
- {"version":3,"file":"vite.esm.config.js","sourceRoot":"","sources":["../../src/vite/vite.esm.config.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAmB,YAAY,EAAE,MAAM,MAAM,CAAC;AACrD,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAClE,OAAO,aAAa,MAAM,qBAAqB,CAAC;AAChD,OAAO,EAAE,0BAA0B,EAAE,MAAM,oBAAoB,CAAC;AAChE,OAAO,sBAAsB,MAAM,iCAAiC,CAAC;AACrE,OAAO,cAAc,MAAM,uBAAuB,CAAC;AAEnD,MAAM,CAAC,OAAO,CAAC,KAAK,WACnB,IAAY,EACZ,YAAoB,EACpB,KAAuC;IAEvC,OAAO,CAAC,IAAI,CAAC,kBAAkB,IAAI,EAAE,CAAC,CAAC;IACvC,MAAM,eAAe,GAAG,MAAM,0BAA0B,CAAC,YAAY,EAAE;QACtE,KAAK;KACL,CAAC,CAAC;IACH,MAAM,WAAW,GAAG;QACnB,GAAG,cAAc;QACjB,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC;QACzC,GAAG,eAAe;QAElB,qBAAqB;QACrB,yBAAyB;QACzB,8BAA8B;QAC9B,uBAAuB;QACvB,SAAS;QACT,oBAAoB;QACpB,+BAA+B;QAC/B,cAAc;QACd,YAAY;QACZ,uBAAuB;KACvB,CAAC;IACF,OAAO,YAAY,CAAC;QACnB,GAAG,EAAE,EAAE,QAAQ,EAAE,WAAW,EAAE;QAC9B,OAAO,EAAE;YAER,cAAc,CAAC;gBACd,IAAI,EAAE,KAAK;gBACX,IAAI,EAAE,UAAU;aAChB,CAAC;YACF,cAAc,CAAC;gBACd,MAAM,EAAE,KAAK;gBACb,OAAO,EAAE,MAAM;gBACf,OAAO,EAAE,CAAC,WAAW,CAAC;aACtB,CAAC;YACF,aAAa,CAAC,EAAE,QAAQ,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC;YACzD,sBAAsB,EAAE;SACxB;QACD,KAAK,EAAE;YACN,WAAW,EAAE,KAAK;YAClB,GAAG,EAAE,IAAI;YACT,MAAM,EAAE,QAAQ;YAChB,MAAM,EAAE,MAAM;YACd,GAAG,EAAE;gBACJ,IAAI;gBACJ,OAAO,EAAE,CAAC,IAAI,CAAC;gBACf,KAAK,EAAE,KAAK,IAAI,cAAc;aAC9B;YACD,aAAa,EAAE;gBACd,SAAS,EAAE,KAAK;gBAChB,QAAQ,EAAE,WAAW;aACrB;SACD;QACD,OAAO,EAAE;YACR,GAAG,EAAE,WAAW;YAGhB,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,aAAa;SAC9C;KACD,CAAC,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"vite.esm.config.js","sourceRoot":"","sources":["../../src/vite/vite.esm.config.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAmB,YAAY,EAAE,MAAM,MAAM,CAAC;AACrD,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAClE,OAAO,aAAa,MAAM,qBAAqB,CAAC;AAChD,OAAO,EAAE,0BAA0B,EAAE,MAAM,oBAAoB,CAAC;AAChE,OAAO,sBAAsB,MAAM,iCAAiC,CAAC;AACrE,OAAO,cAAc,MAAM,uBAAuB,CAAC;AAEnD,MAAM,CAAC,OAAO,CAAC,KAAK,WACnB,IAAY,EACZ,YAAoB,EACpB,KAAkD;IAElD,OAAO,CAAC,IAAI,CAAC,kBAAkB,IAAI,EAAE,CAAC,CAAC;IACvC,MAAM,eAAe,GAAG,MAAM,0BAA0B,CAAC,YAAY,EAAE;QACtE,KAAK;KACL,CAAC,CAAC;IACH,MAAM,WAAW,GAAG;QACnB,GAAG,cAAc;QACjB,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC;QACzC,GAAG,eAAe;QAElB,qBAAqB;QACrB,yBAAyB;QACzB,8BAA8B;QAC9B,uBAAuB;QACvB,SAAS;QACT,oBAAoB;QACpB,+BAA+B;QAC/B,cAAc;QACd,YAAY;QACZ,uBAAuB;KACvB,CAAC;IACF,OAAO,YAAY,CAAC;QACnB,GAAG,EAAE,EAAE,QAAQ,EAAE,WAAW,EAAE;QAC9B,OAAO,EAAE;YAER,cAAc,CAAC;gBACd,IAAI,EAAE,KAAK;gBACX,IAAI,EAAE,UAAU;aAChB,CAAC;YACF,cAAc,CAAC;gBACd,MAAM,EAAE,KAAK;gBACb,OAAO,EAAE,MAAM;gBACf,OAAO,EAAE,CAAC,WAAW,CAAC;aACtB,CAAC;YACF,aAAa,CAAC,EAAE,QAAQ,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC;YACzD,sBAAsB,EAAE;SACxB;QACD,KAAK,EAAE;YACN,WAAW,EAAE,KAAK;YAClB,GAAG,EAAE,IAAI;YACT,MAAM,EAAE,QAAQ;YAChB,MAAM,EAAE,MAAM;YACd,GAAG,EAAE;gBACJ,IAAI;gBACJ,OAAO,EAAE,CAAC,IAAI,CAAC;gBACf,KAAK,EAAE,KAAK,IAAI,cAAc;aAC9B;YACD,aAAa,EAAE;gBACd,SAAS,EAAE,KAAK;gBAChB,QAAQ,EAAE,WAAW;aACrB;SACD;QACD,OAAO,EAAE;YACR,GAAG,EAAE,WAAW;YAGhB,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,aAAa;SAC9C;KACD,CAAC,CAAC;AACJ,CAAC"}
@@ -15,12 +15,7 @@ declare const _default: (mode: string) => {
15
15
  "@polkadot/x-textencoder": string;
16
16
  };
17
17
  };
18
- externals: {
19
- "node:url": string;
20
- url: string;
21
- "node:path": string;
22
- "node:fs": string;
23
- };
18
+ externals: Record<string, string>;
24
19
  entry: string;
25
20
  output: {
26
21
  filename: string;
@@ -1 +1 @@
1
- {"version":3,"file":"webpack.config.d.ts","sourceRoot":"","sources":["../../src/webpack/webpack.config.ts"],"names":[],"mappings":"AAgBA,OAAO,iBAAiB,MAAM,qBAAqB,CAAC;AACpD,OAAO,oBAAoB,MAAM,yBAAyB,CAAC;AAC3D,OAAO,kBAAkB,MAAM,8BAA8B,CAAC;AAC9D,OAAO,YAAY,MAAM,uBAAuB,CAAC;+BAc3B,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAA5B,wBAmHE"}
1
+ {"version":3,"file":"webpack.config.d.ts","sourceRoot":"","sources":["../../src/webpack/webpack.config.ts"],"names":[],"mappings":"AAiBA,OAAO,iBAAiB,MAAM,qBAAqB,CAAC;AACpD,OAAO,oBAAoB,MAAM,yBAAyB,CAAC;AAC3D,OAAO,kBAAkB,MAAM,8BAA8B,CAAC;AAC9D,OAAO,YAAY,MAAM,uBAAuB,CAAC;+BAqB3B,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAA5B,wBA8GE"}
@@ -1,4 +1,5 @@
1
1
  import fs from "node:fs";
2
+ import { builtinModules } from "node:module";
2
3
  import path from "node:path";
3
4
  import HtmlWebpackPlugin from "html-webpack-plugin";
4
5
  import MiniCssExtractPlugin from "mini-css-extract-plugin";
@@ -10,6 +11,12 @@ function resolveEntryFile() {
10
11
  const supportedEntries = [defaultEntry, "./src/index.ts"];
11
12
  return supportedEntries.find((entry) => fs.existsSync(path.resolve(entry))) || defaultEntry;
12
13
  }
14
+ const nodeExternals = {};
15
+ for (const m of builtinModules) {
16
+ const key = m.indexOf("node:") === -1 ? `node:${m}` : m;
17
+ nodeExternals[key] = `commonjs ${m}`;
18
+ nodeExternals[m] = `commonjs ${m}`;
19
+ }
13
20
  const webpack_config = (mode) => {
14
21
  const isProduction = mode === "production";
15
22
  const libraryName = "react_app";
@@ -30,12 +37,7 @@ const webpack_config = (mode) => {
30
37
  )
31
38
  }
32
39
  },
33
- externals: {
34
- "node:url": "commonjs url",
35
- url: "commonjs url",
36
- "node:path": "commonjs path",
37
- "node:fs": "commonjs fs"
38
- },
40
+ externals: nodeExternals,
39
41
  entry: resolveEntryFile(),
40
42
  output: {
41
43
  filename: `${libraryName}.[name].bundle.js`,
@@ -1 +1 @@
1
- {"version":3,"file":"webpack.config.js","sourceRoot":"","sources":["../../src/webpack/webpack.config.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,iBAAiB,MAAM,qBAAqB,CAAC;AACpD,OAAO,oBAAoB,MAAM,yBAAyB,CAAC;AAC3D,OAAO,kBAAkB,MAAM,8BAA8B,CAAC;AAC9D,OAAO,YAAY,MAAM,uBAAuB,CAAC;AAEjD,MAAM,UAAU,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC,CAAC;AAEpD,SAAS,gBAAgB;IACxB,MAAM,YAAY,GAAG,iBAAiB,CAAC;IACvC,MAAM,gBAAgB,GAAG,CAAC,YAAY,EAAE,gBAAgB,CAAC,CAAC;IAE1D,OAAO,CACN,gBAAgB,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;QACpE,YAAY,CACZ,CAAC;AACH,CAAC;AAED,eAAe,CAAC,IAAY,EAAE,EAAE;IAC/B,MAAM,YAAY,GAAG,IAAI,KAAK,YAAY,CAAC;IAC3C,MAAM,WAAW,GAAG,WAAW,CAAC;IAEhC,OAAO;QACN,OAAO,EAAE;YACR,UAAU,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC;YAClD,cAAc,EAAE;gBACf,KAAK,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC;aACrC;YACD,OAAO,EAAE,UAAU;YACnB,cAAc,EAAE,KAAK;YACrB,KAAK,EAAE;gBACN,yBAAyB,EAAE,IAAI,CAAC,OAAO,CACtC,wEAAwE,CACxE;gBACD,yBAAyB,EAAE,IAAI,CAAC,OAAO,CACtC,wEAAwE,CACxE;aACD;SACD;QACD,SAAS,EAAE;YACV,UAAU,EAAE,cAAc;YAC1B,GAAG,EAAE,cAAc;YACnB,WAAW,EAAE,eAAe;YAC5B,SAAS,EAAE,aAAa;SACxB;QACD,KAAK,EAAE,gBAAgB,EAAE;QACzB,MAAM,EAAE;YACP,QAAQ,EAAE,GAAG,WAAW,mBAAmB;YAC3C,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC;YAC5B,UAAU,EAAE,GAAG;SACf;QACD,MAAM,EAAE;YACP,KAAK,EAAE;gBAEN;oBACC,IAAI,EAAE,sBAAsB;oBAC5B,OAAO,EAAE,cAAc;oBACvB,GAAG,EAAE;wBACJ,MAAM,EAAE,cAAc;wBACtB,OAAO,EAAE;4BACR,OAAO,EAAE;gCACR,iCAAiC;gCACjC,mCAAmC;gCACnC,qCAAqC;gCACrC,mCAAmC;gCACnC;oCACC,wCAAwC;oCACxC,EAAE,sBAAsB,EAAE,IAAI,EAAE;iCAChC;6BACD;4BACD,OAAO,EAAE,CAAC,mBAAmB,EAAE,0BAA0B,CAAC;yBAC1D;qBACD;iBACD;gBACD;oBACC,OAAO,EAAE,kBAAkB;oBAC3B,IAAI,EAAE,QAAQ;oBACd,OAAO,EAAE;wBACR,cAAc,EAAE,KAAK;qBACrB;oBACD,WAAW,EAAE,IAAI;oBACjB,GAAG,EAAE;wBACJ,oBAAoB,CAAC,MAAM;wBAC3B;4BACC,MAAM,EAAE,OAAO,CAAC,OAAO,CAAC,YAAY,CAAC;4BACrC,OAAO,EAAE;gCACR,GAAG,EAAE,KAAK;6BACV;yBACD;qBACD;iBACD;gBACD;oBACC,IAAI,EAAE,eAAe;oBACrB,MAAM,EAAE,+BAA+B;iBACvC;gBAED;oBACC,IAAI,EAAE,iBAAiB;oBACvB,MAAM,EAAE,uBAAuB;oBAC/B,OAAO,EAAE;wBACR,MAAM,EAAE,oCAAoC;wBAC5C,OAAO,EAAE,OAAO;qBAChB;iBACD;aACD;SACD;QAED,OAAO,EAAE;YACR,IAAI,kBAAkB,EAAE;YACxB,IAAI,iBAAiB,CAAC;gBACrB,QAAQ,EAAE,kBAAkB;aAC5B,CAAC;YACF,IAAI,oBAAoB,CAAC;gBACxB,QAAQ,EAAE,wBAAwB;aAClC,CAAC;SACF;QACD,YAAY,EAAE;YACb,cAAc,EAAE,IAAI;YACpB,QAAQ,EAAE,YAAY;YACtB,SAAS,EAAE,YAAY;gBACtB,CAAC,CAAC;oBACA,IAAI,YAAY,CAAC;wBAChB,aAAa,EAAE;4BACd,QAAQ,EAAE;gCACT,YAAY,EAAE,IAAI;6BAClB;yBACD;qBACD,CAAC;iBACF;gBACF,CAAC,CAAC,EAAE;YACL,WAAW,EAAE,IAAI;SACjB;KACD,CAAC;AACH,CAAC,CAAC"}
1
+ {"version":3,"file":"webpack.config.js","sourceRoot":"","sources":["../../src/webpack/webpack.config.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@prosopo/config",
3
- "version": "3.3.0",
3
+ "version": "3.3.2",
4
4
  "description": "Prosopo config library",
5
5
  "type": "module",
6
6
  "scripts": {
@@ -22,7 +22,7 @@
22
22
  "@rollup/plugin-typescript": "11.1.6",
23
23
  "@rollup/plugin-wasm": "6.2.2",
24
24
  "@vitejs/plugin-react": "5.1.0",
25
- "esbuild": "0.25.9",
25
+ "esbuild": "0.28.1",
26
26
  "fast-glob": "3.3.2",
27
27
  "html-webpack-plugin": "5.6.0",
28
28
  "mini-css-extract-plugin": "2.9.1",
@@ -71,7 +71,8 @@
71
71
  },
72
72
  "repository": {
73
73
  "type": "git",
74
- "url": "git+https://github.com/prosopo/captcha.git"
74
+ "url": "git+https://github.com/prosopo/captcha.git",
75
+ "directory": "dev/config"
75
76
  },
76
77
  "bugs": {
77
78
  "url": "https://github.com/prosopo/captcha/issues"
@@ -0,0 +1,246 @@
1
+ // Copyright 2021-2026 Prosopo (UK) Ltd.
2
+ //
3
+ // Licensed under the Apache License, Version 2.0 (the "License");
4
+ // you may not use this file except in compliance with the License.
5
+ // You may obtain a copy of the License at
6
+ //
7
+ // http://www.apache.org/licenses/LICENSE-2.0
8
+ //
9
+ // Unless required by applicable law or agreed to in writing, software
10
+ // distributed under the License is distributed on an "AS IS" BASIS,
11
+ // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ // See the License for the specific language governing permissions and
13
+ // limitations under the License.
14
+
15
+ import child_process from "node:child_process";
16
+ import fs from "node:fs";
17
+ import path from "node:path";
18
+ import util from "node:util";
19
+ import type { ProjectReference } from "typescript";
20
+
21
+ const exec = util.promisify(child_process.exec);
22
+ const peerDepsRegex = /UNMET\sOPTIONAL\sDEPENDENCY\s+(@*[\w\-/.]+)@/;
23
+ const depsRegex = /\s+(@*[\w\-/.]+)@/;
24
+
25
+ const getTsconfigDir = (tsConfigPath: string): string =>
26
+ ".json" === path.extname(tsConfigPath)
27
+ ? path.dirname(tsConfigPath)
28
+ : tsConfigPath;
29
+
30
+ async function getPackageDir(packageName: string): Promise<string> {
31
+ let pkg = packageName;
32
+ if (packageName && !packageName.startsWith("@prosopo/")) {
33
+ pkg = `@prosopo/${packageName}`;
34
+ }
35
+ const pkgCommand = `npm list ${pkg} -ap`;
36
+ console.info(`Running command ${pkgCommand}`);
37
+ // get package directory
38
+ const { stdout: packageDir, stderr } = await exec(pkgCommand);
39
+ if (stderr) {
40
+ if (stderr.includes("ERR!")) {
41
+ throw new Error("CONFIG.INVALID_PACKAGE_DIR");
42
+ }
43
+ }
44
+ return packageDir.trim() || path.resolve();
45
+ }
46
+
47
+ /**
48
+ * Resolve the tsconfig path for a reference using the initial tsconfig path and the reference path. If the reference
49
+ * does not contain a tsconfig filename, `tsconfig.json` will be appended to the path.
50
+ * @param initialTsConfigPath
51
+ * @param reference
52
+ */
53
+ function getReferenceTsConfigPath(
54
+ initialTsConfigPath: string,
55
+ reference: ProjectReference,
56
+ ) {
57
+ // remove tsconfig.*.json from the path and get the path to the new directory via the reference path
58
+ let refTSConfigPath = path.resolve(
59
+ getTsconfigDir(initialTsConfigPath),
60
+ reference.path,
61
+ );
62
+ if (!refTSConfigPath.endsWith(".json")) {
63
+ refTSConfigPath = path.resolve(refTSConfigPath, "tsconfig.json");
64
+ }
65
+ return refTSConfigPath;
66
+ }
67
+
68
+ /**
69
+ * Get the tsconfig paths for a package
70
+ * @param tsConfigPath the tsconfig path to start with
71
+ * @param ignorePatterns the patterns to ignore
72
+ * @param tsConfigPaths the tsconfig paths to add to
73
+ * @param includeInitialTsConfig return the initial tsconfig path in the returned array
74
+ */
75
+ export function getTsConfigs(
76
+ tsConfigPath: string,
77
+ ignorePatterns: RegExp[] = [],
78
+ tsConfigPaths: string[] = [],
79
+ includeInitialTsConfig = true,
80
+ ): string[] {
81
+ let tsConfigs = [...tsConfigPaths];
82
+ //TODO use dynamic import with JSON assertion (TS complains that resolveJsonModule is not set)
83
+ const references = JSON.parse(
84
+ fs.readFileSync(tsConfigPath).toString(),
85
+ ).references;
86
+ if (!tsConfigs.includes(tsConfigPath)) {
87
+ if (references) {
88
+ const ignore =
89
+ ignorePatterns && ignorePatterns.length > 0
90
+ ? new RegExp(`${ignorePatterns.join("|")}`)
91
+ : undefined;
92
+ if (includeInitialTsConfig) {
93
+ tsConfigs.push(tsConfigPath);
94
+ }
95
+
96
+ // ignore the packages we don't want to bundle
97
+ const filteredReferences = references.filter(
98
+ (reference: ProjectReference) =>
99
+ ignore ? !ignore.test(reference.path) : false,
100
+ );
101
+ // for each reference, get the tsconfig paths - recursively calling this function
102
+ for (const reference of filteredReferences) {
103
+ // remove tsconfig.*.json from the path and get the path to the new directory via the reference path
104
+ const refTSConfigPath = getReferenceTsConfigPath(
105
+ tsConfigPath,
106
+ reference,
107
+ );
108
+
109
+ // take the reference TS config path (refTSConfigPath) and get the tsconfig paths for it (newTsConfigs),
110
+ // adding both to a distinct list, as there may be duplicates
111
+ const newTsConfigs = getTsConfigs(
112
+ refTSConfigPath,
113
+ ignorePatterns,
114
+ tsConfigs,
115
+ );
116
+ if (newTsConfigs.length > 0) {
117
+ const distinctTsConfigPaths = new Set(tsConfigs.concat(newTsConfigs));
118
+ tsConfigs = [...distinctTsConfigPaths];
119
+ }
120
+ }
121
+ }
122
+ }
123
+ return tsConfigs;
124
+ }
125
+
126
+ /**
127
+ * Get the workspace externals for a package
128
+ * @param tsConfigPath
129
+ * @param ignorePatterns
130
+ */
131
+ export async function getExternalsFromReferences(
132
+ tsConfigPath: string,
133
+ ignorePatterns: RegExp[] = [],
134
+ ): Promise<string[]> {
135
+ const tsConfigPaths = getTsConfigs(tsConfigPath, ignorePatterns, [], false);
136
+ console.debug({ tsConfigPaths });
137
+ const promises: Promise<string>[] = [];
138
+ for (const refTsConfigPath of tsConfigPaths) {
139
+ const packageJsonPath = path.resolve(
140
+ getTsconfigDir(refTsConfigPath),
141
+ "package.json",
142
+ );
143
+ promises.push(
144
+ new Promise((resolve, reject) => {
145
+ // if package.json exists, read it and get the package name
146
+ fs.stat(packageJsonPath, (err) => {
147
+ if (err) {
148
+ reject(err);
149
+ }
150
+ fs.readFile(packageJsonPath, (err, buffer) => {
151
+ if (err) {
152
+ reject(err);
153
+ } else {
154
+ const packageJson = JSON.parse(buffer.toString());
155
+ const pkg = packageJson.name;
156
+ resolve(pkg);
157
+ }
158
+ });
159
+ });
160
+ }),
161
+ );
162
+ }
163
+ const externals = await Promise.all(promises);
164
+ console.debug({ externals });
165
+ return externals;
166
+ }
167
+
168
+ /**
169
+ * Get the dependencies for a package
170
+ * @param packageName
171
+ * @param production
172
+ */
173
+ export async function getDependencies(
174
+ packageName?: string,
175
+ production?: boolean,
176
+ ): Promise<{ dependencies: string[]; optionalPeerDependencies: string[] }> {
177
+ let cmd = production
178
+ ? "npm ls -a --silent --omit=dev --package-lock-only"
179
+ : "npm ls --silent -a --package-lock-only";
180
+
181
+ if (packageName) {
182
+ const packageDir = await getPackageDir(packageName);
183
+ cmd = `cd ${packageDir.trim()} && ${cmd}`;
184
+ console.info(`Running command ${cmd} in ${packageDir}`);
185
+ }
186
+
187
+ let concat = "";
188
+ const { stdout, stderr } = await exec(cmd);
189
+ concat = stdout + stderr;
190
+
191
+ let deps: string[] = [];
192
+ let peerDeps: string[] = [];
193
+ // for each line, check if there is an unmet optional dependency
194
+ for (const line of concat.split("\n")) {
195
+ if (line.includes("UNMET OPTIONAL DEPENDENCY")) {
196
+ // │ │ │ ├── UNMET OPTIONAL DEPENDENCY bufferutil@^4.0.1
197
+ const parts = line.match(peerDepsRegex);
198
+ if (parts && parts.length > 1) {
199
+ peerDeps.push(parts[1] as string);
200
+ }
201
+ } else {
202
+ // │ │ │ ├─┬ mongodb-memory-server-core@8.15.1
203
+ const parts = line.match(depsRegex);
204
+ if (parts && parts.length > 1) {
205
+ deps.push(parts[1] as string);
206
+ }
207
+ }
208
+ }
209
+
210
+ // ensure deps and peerDeps are unique
211
+ deps = [...new Set(deps)];
212
+ peerDeps = [...new Set(peerDeps)];
213
+
214
+ // dedupe and return deps and peer deps
215
+ return {
216
+ dependencies: deps.filter((x, i) => i === deps.indexOf(x)),
217
+ optionalPeerDependencies: peerDeps.filter(
218
+ (x, i) => i === peerDeps.indexOf(x),
219
+ ),
220
+ };
221
+ }
222
+
223
+ /**
224
+ * Filter out the dependencies we don't want
225
+ * @param deps
226
+ * @param filters
227
+ */
228
+ export function filterDependencies(
229
+ deps: string[],
230
+ filters: string[],
231
+ ): { internal: string[]; external: string[] } {
232
+ const depsDeduped = deps.filter((x, i) => i === deps.indexOf(x));
233
+ const depsWithLength = depsDeduped.filter((dep) => dep.length > 0).sort();
234
+ const exclude = new RegExp(`${filters.join("|")}`);
235
+ // filter out the deps we don't want
236
+ const internal: string[] = [];
237
+ const external: string[] = [];
238
+ for (const dep of depsWithLength) {
239
+ if (exclude.test(dep)) {
240
+ external.push(dep);
241
+ } else {
242
+ internal.push(dep);
243
+ }
244
+ }
245
+ return { internal, external };
246
+ }
package/src/index.ts ADDED
@@ -0,0 +1,16 @@
1
+ // Copyright 2021-2026 Prosopo (UK) Ltd.
2
+ //
3
+ // Licensed under the Apache License, Version 2.0 (the "License");
4
+ // you may not use this file except in compliance with the License.
5
+ // You may obtain a copy of the License at
6
+ //
7
+ // http://www.apache.org/licenses/LICENSE-2.0
8
+ //
9
+ // Unless required by applicable law or agreed to in writing, software
10
+ // distributed under the License is distributed on an "AS IS" BASIS,
11
+ // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ // See the License for the specific language governing permissions and
13
+ // limitations under the License.
14
+ export * from "./vite/index.js";
15
+ export * from "./dependencies.js";
16
+ export * from "./webpack/index.js";
@@ -0,0 +1,45 @@
1
+ // Copyright 2021-2026 Prosopo (UK) Ltd.
2
+ //
3
+ // Licensed under the Apache License, Version 2.0 (the "License");
4
+ // you may not use this file except in compliance with the License.
5
+ // You may obtain a copy of the License at
6
+ //
7
+ // http://www.apache.org/licenses/LICENSE-2.0
8
+ //
9
+ // Unless required by applicable law or agreed to in writing, software
10
+ // distributed under the License is distributed on an "AS IS" BASIS,
11
+ // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ // See the License for the specific language governing permissions and
13
+ // limitations under the License.
14
+
15
+ export const nodejsPolarsDirnamePlugin = () => {
16
+ const name = "nodejs-polars-dirname-plugin";
17
+ return {
18
+ name,
19
+ // biome-ignore lint/suspicious/noExplicitAny: TODO not sure of options type
20
+ resolveId(source: string, importer: string | undefined, options: any) {
21
+ // aim for the node_modules/nodejs-polars/bin/native-polars.js file
22
+ if (source.endsWith("nodejs-polars/bin/native-polars.js")) {
23
+ console.debug(name, "resolves", source, "imported by", importer);
24
+ // return the source to indicate this plugin can resolve the import
25
+ return source;
26
+ }
27
+ // return null if this plugin can't resolve the import
28
+ return null;
29
+ },
30
+ transform(code: string, id: string) {
31
+ // aim for the node_modules/nodejs-polars/bin/native-polars.js file
32
+ if (id.endsWith("nodejs-polars/bin/native-polars.js")) {
33
+ // replace all instances of __dirname with the path relative to the output bundle
34
+ console.debug(name, "transform", id);
35
+ const newCode = code.replaceAll(
36
+ "__dirname",
37
+ `new URL(import.meta.url).pathname.split('/').slice(0,-1).join('/')`,
38
+ );
39
+ return newCode;
40
+ }
41
+ // else return the original code (leave code unrelated to nodejs-polars untouched)
42
+ return code;
43
+ },
44
+ };
45
+ };