@jsonic/multisource 1.9.0 → 2.0.1

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.
@@ -1,4 +1,6 @@
1
+ import * as SystemFs from 'node:fs';
1
2
  import { Jsonic, Context, Rule, Plugin } from 'jsonic';
3
+ type FST = typeof SystemFs;
2
4
  interface MultiSourceMeta {
3
5
  path?: string;
4
6
  parents?: string[];
@@ -41,9 +43,9 @@ type DependencyMap = {
41
43
  };
42
44
  declare const TOP: unique symbol;
43
45
  declare const MultiSource: Plugin;
44
- declare function resolvePathSpec(popts: MultiSourceOptions, ctx: Context, spec: any, resolvefolder: (path: string) => string): PathSpec;
46
+ declare function resolvePathSpec(popts: MultiSourceOptions, ctx: Context, spec: any, resolvefolder: (path: string, fs: FST) => string): PathSpec;
45
47
  declare const meta: {
46
48
  name: string;
47
49
  };
48
- export type { Resolver, Resolution, Processor, MultiSourceOptions, Dependency, DependencyMap, MultiSourceMeta, PathSpec, };
50
+ export type { Resolver, Resolution, Processor, MultiSourceOptions, Dependency, DependencyMap, MultiSourceMeta, PathSpec, FST, };
49
51
  export { MultiSource, resolvePathSpec, NONE, TOP, meta };
@@ -1,8 +1,42 @@
1
1
  "use strict";
2
- /* Copyright (c) 2021 Richard Rodger, MIT License */
2
+ /* Copyright (c) 2025 Richard Rodger, MIT License */
3
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
4
+ if (k2 === undefined) k2 = k;
5
+ var desc = Object.getOwnPropertyDescriptor(m, k);
6
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
7
+ desc = { enumerable: true, get: function() { return m[k]; } };
8
+ }
9
+ Object.defineProperty(o, k2, desc);
10
+ }) : (function(o, m, k, k2) {
11
+ if (k2 === undefined) k2 = k;
12
+ o[k2] = m[k];
13
+ }));
14
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
15
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
16
+ }) : function(o, v) {
17
+ o["default"] = v;
18
+ });
19
+ var __importStar = (this && this.__importStar) || (function () {
20
+ var ownKeys = function(o) {
21
+ ownKeys = Object.getOwnPropertyNames || function (o) {
22
+ var ar = [];
23
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
24
+ return ar;
25
+ };
26
+ return ownKeys(o);
27
+ };
28
+ return function (mod) {
29
+ if (mod && mod.__esModule) return mod;
30
+ var result = {};
31
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
32
+ __setModuleDefault(result, mod);
33
+ return result;
34
+ };
35
+ })();
3
36
  Object.defineProperty(exports, "__esModule", { value: true });
4
37
  exports.meta = exports.TOP = exports.NONE = exports.MultiSource = void 0;
5
38
  exports.resolvePathSpec = resolvePathSpec;
39
+ const SystemFs = __importStar(require("node:fs"));
6
40
  const jsonic_1 = require("jsonic");
7
41
  const directive_1 = require("@jsonic/directive");
8
42
  const jsonic_2 = require("./processor/jsonic");
@@ -96,7 +130,6 @@ const MultiSource = (jsonic, popts) => {
96
130
  meta,
97
131
  };
98
132
  let proc = processor[res.kind] || processor[NONE];
99
- // console.log('FROM', from, 'PROC', proc, processor, ctxproc.meta)
100
133
  proc(res, popts, rule, ctxproc, jsonic);
101
134
  // Handle the {@foo} case, injecting keys into parent map.
102
135
  if ('pair' === from) {
@@ -187,8 +220,9 @@ MultiSource.defaults = {
187
220
  implictExt: ['jsonic', 'jsc', 'json', 'js'],
188
221
  };
189
222
  function resolvePathSpec(popts, ctx, spec, resolvefolder) {
223
+ const fs = ctx.meta?.fs || SystemFs;
190
224
  let msmeta = ctx.meta?.multisource;
191
- let base = resolvefolder(null == msmeta || null == msmeta.path ? popts.path : msmeta.path);
225
+ let base = resolvefolder(null == msmeta || null == msmeta.path ? popts.path : msmeta.path, fs);
192
226
  let path = 'string' === typeof spec
193
227
  ? spec
194
228
  : null != spec.path
@@ -1 +1 @@
1
- {"version":3,"file":"multisource.js","sourceRoot":"","sources":["../src/multisource.ts"],"names":[],"mappings":";AAAA,oDAAoD;;;AAuV9B,0CAAe;AArVrC,mCAAsD;AACtD,iDAA+D;AAE/D,+CAAwD;AACxD,uCAAwD;AAWxD,2CAA2C;AAC3C,MAAM,IAAI,GAAG,EAAE,CAAA;AAqUwB,oBAAI;AA1Q3C,kCAAkC;AAClC,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,CAAA;AAyQoB,kBAAG;AAvQhD,MAAM,WAAW,GAAW,CAAC,MAAc,EAAE,KAAyB,EAAE,EAAE;IACxE,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAkB,CAAA;IACzC,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAoB,CAAA;IAC3C,MAAM,SAAS,GAAG,KAAK,CAAC,SAA0C,CAAA;IAElE,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,CAAC,IAAI,CAAA;IAE5B,mDAAmD;IACnD,MAAM,UAAU,GAAG,CAAC,KAAK,CAAC,UAAU,IAAI,EAAE,CAAa,CAAA;IACvD,KAAK,IAAI,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,UAAU,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE,CAAC;QACpD,IAAI,GAAG,GAAG,UAAU,CAAC,IAAI,CAAC,CAAA;QAC1B,UAAU,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,CAAA;IAC1D,CAAC;IAED,MAAM,CAAC,OAAO,CAAC;QACb,KAAK,EAAE;YACL,qBAAqB,EAAE,0BAA0B;SAClD;QACD,IAAI,EAAE;YACJ,4DAA4D;YAC5D,gDAAgD;YAChD,qBAAqB,EACnB,qEAAqE;SACxE;KACF,CAAC,CAAA;IAEF,kEAAkE;IAClE,IAAI,KAAK,GAAqB;QAC5B,IAAI,EAAE,aAAa;QACnB,IAAI,EAAE,QAAQ;QACd,KAAK,EAAE;YACL,IAAI,EAAE;gBACJ,GAAG,EAAE,EAAE;gBACP,IAAI,EAAE;oBACJ,CAAC,EAAE,CAAC,CAAO,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC;iBAC5B;aACF;SACF;QACD,MAAM,EAAE,SAAS,sBAAsB,CAAC,IAAU,EAAE,GAAY;YAC9D,IAAI,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAA;YAC3B,IAAI,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAA;YAE1B,IAAI,GAAG,GAAG,QAAQ,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,CAAC,CAAA;YAElD,IAAI,IAAI,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC;gBAC9B,OAAO,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,CAAC,uBAAuB,EAAE;oBAClD,GAAG,CAAC,GAAG,IAAI,EAAE,CAAC;oBACd,SAAS,EAAE,CAAC,GAAG,EAAE,MAAM,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;iBACnD,CAAC,CAAA;YACJ,CAAC;YAED,IAAI,QAAQ,GACV,IAAI,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAA;YAEvE,GAAG,CAAC,IAAI,GAAG,IAAI,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAA;YAE7C,2BAA2B;YAC3B,IAAI,MAAM,GAAoB,GAAG,CAAC,IAAI,EAAE,WAAW,IAAI,EAAE,CAAA;YACzD,IAAI,OAAO,GAAG,MAAM,CAAC,OAAO,IAAI,EAAE,CAAA;YAClC,IAAI,IAAI,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;gBACxB,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;YAC3B,CAAC;YAED,IAAI,IAAI,GAAQ;gBACd,GAAG,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC;gBACnB,QAAQ,EAAE,GAAG,CAAC,IAAI;gBAClB,WAAW,EAAE;oBACX,GAAG,MAAM;oBACT,OAAO;oBACP,IAAI,EAAE,GAAG,CAAC,IAAI;iBACf;aACF,CAAA;YAED,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC9C,IAAI,CAAC,IAAI,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAA;YAC5C,CAAC;YAED,gCAAgC;YAChC,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;gBAChB,IAAI,MAAM,GAAG,MAAM,CAAC,IAAqB,CAAA;gBACzC,IAAI,MAAM,GAAG,CAAC,MAAM,CAAC,IAAI,IAAI,GAAG,CAAW,CAAA;gBAC3C,IAAI,IAAI,IAAI,MAAM,EAAE,CAAC;oBACnB,IAAI,GAAG,GAAe;wBACpB,GAAG,EAAE,MAAM;wBACX,GAAG,EAAE,QAAQ;wBACb,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE;qBAChB,CAAA;oBACD,MAAM,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,CAAA;oBACrC,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,GAAG,GAAG,CAAA;gBAChC,CAAC;YACH,CAAC;YAED,kBAAkB;YAClB,IAAI,OAAO,GAAG;gBACZ,GAAG,GAAG;gBACN,IAAI;aACL,CAAA;YAED,IAAI,IAAI,GAAG,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,IAAI,CAAC,CAAA;YACjD,mEAAmE;YACnE,IAAI,CAAC,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,CAAC,CAAA;YAEvC,0DAA0D;YAC1D,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;gBACpB,IAAI,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC;oBACtB,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CACzC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,EACvB,GAAG,CAAC,GAAG,EACP,IAAI,EACJ,GAAG,CACJ,CAAA;gBACH,CAAC;qBAAM,IAAI,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC;oBAC9B,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,GAAG,CAAC,CAAA;gBAClE,CAAC;qBAAM,CAAC;oBACN,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,GAAG,CAAC,CAAA;gBAC1C,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC,GAAG,CAAA;YACrB,CAAC;YAED,sBAAsB;YAEtB,OAAO,SAAS,CAAA;QAClB,CAAC;QAED,MAAM,EAAE,CAAC,MAAc,EAAE,EAAE,IAAI,EAAE,IAAI,EAAO,EAAE,EAAE;YAC9C,yDAAyD;YACzD,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE;gBACxB,EAAE,CAAC,IAAI,CAAC;oBACN;wBACE,CAAC,EAAE,CAAC,IAAI,CAAC;wBACT,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,MAAM,IAAI,CAAC,CAAC,MAAM,CAAC,IAAI;wBAC/C,CAAC,EAAE,CAAC;wBACJ,CAAC,EAAE,IAAI,GAAG,SAAS;qBACpB;oBACD,AADE;oBAEF;wBACE,CAAC,EAAE,CAAC,IAAI,CAAC;wBACT,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;wBACnB,CAAC,EAAE,KAAK;wBACR,CAAC,EAAE,CAAC;wBACJ,CAAC,EAAE,EAAE,CAAC,IAAI,GAAG,MAAM,CAAC,EAAE,CAAC,EAAE;qBAC1B;iBAAC,CACH,CAAA;YACH,CAAC,CAAC,CAAA;YAEF,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE;gBACxB,EAAE,CAAC,IAAI,CAAC;oBACN,CAAC,EAAE,CAAC,IAAI,CAAC;oBACT,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,MAAM,CAAC;oBAC/C,CAAC,EAAE,MAAM;oBACT,CAAC,EAAE,CAAC;iBACL,CAAC,CAAC,KAAK,CAAC;oBACP,CAAC,EAAE,CAAC,IAAI,CAAC;oBACT,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE;oBACpB,CAAC,EAAE,CAAC;oBACJ,CAAC,EAAE,IAAI,GAAG,SAAS;iBACpB,CAAC,CAAA;YACJ,CAAC,CAAC,CAAA;YAEF,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,EAAE;gBACzB,EAAE,CAAC,KAAK,CAAC;oBACP,CAAC,EAAE,CAAC,IAAI,CAAC;oBACT,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE;oBACpB,CAAC,EAAE,CAAC;oBACJ,CAAC,EAAE,IAAI,GAAG,SAAS;iBACpB,CAAC,CAAA;YACJ,CAAC,CAAC,CAAA;QAEJ,CAAC;KACF,CAAA;IAED,MAAM,CAAC,GAAG,CAAC,qBAAS,EAAE,KAAK,CAAC,CAAA;AAC9B,CAAC,CAAA;AA0FQ,kCAAW;AAxFpB,mCAAmC;AACnC,SAAS,aAAa,CAAC,OAA8C;IACnE,OAAO,CAAC,GAAe,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,GAAa,EAAE,GAAG,CAAC,CAAC,CAAA;AACzE,CAAC;AAED,uDAAuD;AACvD,MAAM,gBAAgB,GAAG,aAAa,CAAC,CAAC,GAAW,EAAE,EAAE,CAAC,GAAG,CAAC,CAAA;AAE5D,MAAM,gBAAgB,GAAG,eAAM,CAAC,IAAI,CAAC,MAAa,CAAC,CAAA;AAEnD,kDAAkD;AAClD,MAAM,aAAa,GAAG,aAAa,CAAC,CAAC,GAAW,EAAE,GAAe,EAAE,EAAE;AACnE,4CAA4C;AAC5C,IAAI,IAAI,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,gBAAgB,CAAC,GAAG,EAAE,EAAE,QAAQ,EAAE,GAAG,CAAC,IAAI,EAAE,CAAC,CACxE,CAAA;AAED,MAAM,eAAe,GAAG,IAAA,4BAAmB,GAAE,CAAA;AAC7C,MAAM,WAAW,GAAG,IAAA,4BAAuB,GAAE,CAAA;AAE7C,WAAW,CAAC,QAAQ,GAAG;IACrB,QAAQ,EAAE,GAAG;IACb,SAAS,EAAE;QACT,CAAC,IAAI,CAAC,EAAE,gBAAgB;QACxB,MAAM,EAAE,eAAe;QACvB,GAAG,EAAE,eAAe;QACpB,IAAI,EAAE,aAAa;QACnB,EAAE,EAAE,WAAW;KAChB;IACD,UAAU,EAAE,CAAC,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC;CAC5C,CAAA;AAED,SAAS,eAAe,CACtB,KAAyB,EACzB,GAAY,EACZ,IAAS,EACT,aAAuC;IAEvC,IAAI,MAAM,GAAG,GAAG,CAAC,IAAI,EAAE,WAAW,CAAA;IAClC,IAAI,IAAI,GAAG,aAAa,CACtB,IAAI,IAAI,MAAM,IAAI,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CACjE,CAAA;IAED,IAAI,IAAI,GACN,QAAQ,KAAK,OAAO,IAAI;QACtB,CAAC,CAAC,IAAI;QACN,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI;YACjB,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI;YAChB,CAAC,CAAC,SAAS,CAAA;IAEjB,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,UAAU,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC,CAAA;IAC7D,IAAI,IAAI,GAAG,GAAG;QACZ,CAAC,CAAC,IAAI;QACN,CAAC,CAAC,IAAI,IAAI,IAAI,IAAI,EAAE,IAAI,IAAI;YAC1B,CAAC,CAAC,IAAI,IAAI,IAAI,IAAI,EAAE,IAAI,IAAI;gBAC1B,CAAC,CAAC,IAAI,GAAG,GAAG,GAAG,IAAI;gBACnB,CAAC,CAAC,IAAI;YACR,CAAC,CAAC,SAAS,CAAA;IAEf,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;IAE9E,IAAI,GAAG,GAAe;QACpB,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,GAAG;QACH,KAAK,EAAE,KAAK;KACb,CAAA;IAED,OAAO,GAAG,CAAA;AACZ,CAAC;AAED,mBAAmB;AACnB,MAAM,IAAI,GAAG;IACX,IAAI,EAAE,aAAa;CACpB,CAAA;AAaiD,oBAAI"}
1
+ {"version":3,"file":"multisource.js","sourceRoot":"","sources":["../src/multisource.ts"],"names":[],"mappings":";AAAA,oDAAoD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA6V9B,0CAAe;AA3VrC,kDAAmC;AAEnC,mCAAsD;AACtD,iDAA+D;AAE/D,+CAAwD;AACxD,uCAAwD;AAaxD,2CAA2C;AAC3C,MAAM,IAAI,GAAG,EAAE,CAAA;AAuUwB,oBAAI;AA5Q3C,kCAAkC;AAClC,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,CAAA;AA2QoB,kBAAG;AAzQhD,MAAM,WAAW,GAAW,CAAC,MAAc,EAAE,KAAyB,EAAE,EAAE;IACxE,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAkB,CAAA;IACzC,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAoB,CAAA;IAC3C,MAAM,SAAS,GAAG,KAAK,CAAC,SAA0C,CAAA;IAElE,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,CAAC,IAAI,CAAA;IAE5B,mDAAmD;IACnD,MAAM,UAAU,GAAG,CAAC,KAAK,CAAC,UAAU,IAAI,EAAE,CAAa,CAAA;IACvD,KAAK,IAAI,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,UAAU,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE,CAAC;QACpD,IAAI,GAAG,GAAG,UAAU,CAAC,IAAI,CAAC,CAAA;QAC1B,UAAU,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,CAAA;IAC1D,CAAC;IAED,MAAM,CAAC,OAAO,CAAC;QACb,KAAK,EAAE;YACL,qBAAqB,EAAE,0BAA0B;SAClD;QACD,IAAI,EAAE;YACJ,4DAA4D;YAC5D,gDAAgD;YAChD,qBAAqB,EACnB,qEAAqE;SACxE;KACF,CAAC,CAAA;IAEF,kEAAkE;IAClE,IAAI,KAAK,GAAqB;QAC5B,IAAI,EAAE,aAAa;QACnB,IAAI,EAAE,QAAQ;QACd,KAAK,EAAE;YACL,IAAI,EAAE;gBACJ,GAAG,EAAE,EAAE;gBACP,IAAI,EAAE;oBACJ,CAAC,EAAE,CAAC,CAAO,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC;iBAC5B;aACF;SACF;QACD,MAAM,EAAE,SAAS,sBAAsB,CAAC,IAAU,EAAE,GAAY;YAC9D,IAAI,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAA;YAC3B,IAAI,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAA;YAE1B,IAAI,GAAG,GAAG,QAAQ,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,CAAC,CAAA;YAElD,IAAI,IAAI,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC;gBAC9B,OAAO,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,CAAC,uBAAuB,EAAE;oBAClD,GAAG,CAAC,GAAG,IAAI,EAAE,CAAC;oBACd,SAAS,EAAE,CAAC,GAAG,EAAE,MAAM,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;iBACnD,CAAC,CAAA;YACJ,CAAC;YAED,IAAI,QAAQ,GACV,IAAI,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAA;YAEvE,GAAG,CAAC,IAAI,GAAG,IAAI,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAA;YAE7C,2BAA2B;YAC3B,IAAI,MAAM,GAAoB,GAAG,CAAC,IAAI,EAAE,WAAW,IAAI,EAAE,CAAA;YACzD,IAAI,OAAO,GAAG,MAAM,CAAC,OAAO,IAAI,EAAE,CAAA;YAClC,IAAI,IAAI,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;gBACxB,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;YAC3B,CAAC;YAED,IAAI,IAAI,GAAQ;gBACd,GAAG,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC;gBACnB,QAAQ,EAAE,GAAG,CAAC,IAAI;gBAClB,WAAW,EAAE;oBACX,GAAG,MAAM;oBACT,OAAO;oBACP,IAAI,EAAE,GAAG,CAAC,IAAI;iBACf;aACF,CAAA;YAED,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC9C,IAAI,CAAC,IAAI,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAA;YAC5C,CAAC;YAED,gCAAgC;YAChC,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;gBAChB,IAAI,MAAM,GAAG,MAAM,CAAC,IAAqB,CAAA;gBACzC,IAAI,MAAM,GAAG,CAAC,MAAM,CAAC,IAAI,IAAI,GAAG,CAAW,CAAA;gBAC3C,IAAI,IAAI,IAAI,MAAM,EAAE,CAAC;oBACnB,IAAI,GAAG,GAAe;wBACpB,GAAG,EAAE,MAAM;wBACX,GAAG,EAAE,QAAQ;wBACb,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE;qBAChB,CAAA;oBACD,MAAM,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,CAAA;oBACrC,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,GAAG,GAAG,CAAA;gBAChC,CAAC;YACH,CAAC;YAED,kBAAkB;YAClB,IAAI,OAAO,GAAG;gBACZ,GAAG,GAAG;gBACN,IAAI;aACL,CAAA;YAED,IAAI,IAAI,GAAG,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,IAAI,CAAC,CAAA;YACjD,IAAI,CAAC,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,CAAC,CAAA;YAEvC,0DAA0D;YAC1D,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;gBACpB,IAAI,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC;oBACtB,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CACzC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,EACvB,GAAG,CAAC,GAAG,EACP,IAAI,EACJ,GAAG,CACJ,CAAA;gBACH,CAAC;qBAAM,IAAI,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC;oBAC9B,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,GAAG,CAAC,CAAA;gBAClE,CAAC;qBAAM,CAAC;oBACN,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,GAAG,CAAC,CAAA;gBAC1C,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC,GAAG,CAAA;YACrB,CAAC;YAED,sBAAsB;YAEtB,OAAO,SAAS,CAAA;QAClB,CAAC;QAED,MAAM,EAAE,CAAC,MAAc,EAAE,EAAE,IAAI,EAAE,IAAI,EAAO,EAAE,EAAE;YAC9C,yDAAyD;YACzD,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE;gBACxB,EAAE,CAAC,IAAI,CAAC;oBACN;wBACE,CAAC,EAAE,CAAC,IAAI,CAAC;wBACT,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,MAAM,IAAI,CAAC,CAAC,MAAM,CAAC,IAAI;wBAC/C,CAAC,EAAE,CAAC;wBACJ,CAAC,EAAE,IAAI,GAAG,SAAS;qBACpB;oBACD,AADE;oBAEF;wBACE,CAAC,EAAE,CAAC,IAAI,CAAC;wBACT,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;wBACnB,CAAC,EAAE,KAAK;wBACR,CAAC,EAAE,CAAC;wBACJ,CAAC,EAAE,EAAE,CAAC,IAAI,GAAG,MAAM,CAAC,EAAE,CAAC,EAAE;qBAC1B;iBAAC,CACH,CAAA;YACH,CAAC,CAAC,CAAA;YAEF,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE;gBACxB,EAAE,CAAC,IAAI,CAAC;oBACN,CAAC,EAAE,CAAC,IAAI,CAAC;oBACT,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,MAAM,CAAC;oBAC/C,CAAC,EAAE,MAAM;oBACT,CAAC,EAAE,CAAC;iBACL,CAAC,CAAC,KAAK,CAAC;oBACP,CAAC,EAAE,CAAC,IAAI,CAAC;oBACT,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE;oBACpB,CAAC,EAAE,CAAC;oBACJ,CAAC,EAAE,IAAI,GAAG,SAAS;iBACpB,CAAC,CAAA;YACJ,CAAC,CAAC,CAAA;YAEF,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,EAAE;gBACzB,EAAE,CAAC,KAAK,CAAC;oBACP,CAAC,EAAE,CAAC,IAAI,CAAC;oBACT,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE;oBACpB,CAAC,EAAE,CAAC;oBACJ,CAAC,EAAE,IAAI,GAAG,SAAS;iBACpB,CAAC,CAAA;YACJ,CAAC,CAAC,CAAA;QAEJ,CAAC;KACF,CAAA;IAED,MAAM,CAAC,GAAG,CAAC,qBAAS,EAAE,KAAK,CAAC,CAAA;AAC9B,CAAC,CAAA;AA6FQ,kCAAW;AA3FpB,mCAAmC;AACnC,SAAS,aAAa,CAAC,OAA8C;IACnE,OAAO,CAAC,GAAe,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,GAAa,EAAE,GAAG,CAAC,CAAC,CAAA;AACzE,CAAC;AAED,uDAAuD;AACvD,MAAM,gBAAgB,GAAG,aAAa,CAAC,CAAC,GAAW,EAAE,EAAE,CAAC,GAAG,CAAC,CAAA;AAE5D,MAAM,gBAAgB,GAAG,eAAM,CAAC,IAAI,CAAC,MAAa,CAAC,CAAA;AAEnD,kDAAkD;AAClD,MAAM,aAAa,GAAG,aAAa,CAAC,CAAC,GAAW,EAAE,GAAe,EAAE,EAAE;AACnE,4CAA4C;AAC5C,IAAI,IAAI,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,gBAAgB,CAAC,GAAG,EAAE,EAAE,QAAQ,EAAE,GAAG,CAAC,IAAI,EAAE,CAAC,CACxE,CAAA;AAED,MAAM,eAAe,GAAG,IAAA,4BAAmB,GAAE,CAAA;AAC7C,MAAM,WAAW,GAAG,IAAA,4BAAuB,GAAE,CAAA;AAE7C,WAAW,CAAC,QAAQ,GAAG;IACrB,QAAQ,EAAE,GAAG;IACb,SAAS,EAAE;QACT,CAAC,IAAI,CAAC,EAAE,gBAAgB;QACxB,MAAM,EAAE,eAAe;QACvB,GAAG,EAAE,eAAe;QACpB,IAAI,EAAE,aAAa;QACnB,EAAE,EAAE,WAAW;KAChB;IACD,UAAU,EAAE,CAAC,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC;CAC5C,CAAA;AAED,SAAS,eAAe,CACtB,KAAyB,EACzB,GAAY,EACZ,IAAS,EACT,aAAgD;IAEhD,MAAM,EAAE,GAAG,GAAG,CAAC,IAAI,EAAE,EAAE,IAAI,QAAQ,CAAA;IACnC,IAAI,MAAM,GAAG,GAAG,CAAC,IAAI,EAAE,WAAW,CAAA;IAClC,IAAI,IAAI,GAAG,aAAa,CACtB,IAAI,IAAI,MAAM,IAAI,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,EAChE,EAAE,CACH,CAAA;IAED,IAAI,IAAI,GACN,QAAQ,KAAK,OAAO,IAAI;QACtB,CAAC,CAAC,IAAI;QACN,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI;YACjB,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI;YAChB,CAAC,CAAC,SAAS,CAAA;IAEjB,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,UAAU,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC,CAAA;IAC7D,IAAI,IAAI,GAAG,GAAG;QACZ,CAAC,CAAC,IAAI;QACN,CAAC,CAAC,IAAI,IAAI,IAAI,IAAI,EAAE,IAAI,IAAI;YAC1B,CAAC,CAAC,IAAI,IAAI,IAAI,IAAI,EAAE,IAAI,IAAI;gBAC1B,CAAC,CAAC,IAAI,GAAG,GAAG,GAAG,IAAI;gBACnB,CAAC,CAAC,IAAI;YACR,CAAC,CAAC,SAAS,CAAA;IAEf,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;IAE9E,IAAI,GAAG,GAAe;QACpB,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,GAAG;QACH,KAAK,EAAE,KAAK;KACb,CAAA;IAED,OAAO,GAAG,CAAA;AACZ,CAAC;AAED,mBAAmB;AACnB,MAAM,IAAI,GAAG;IACX,IAAI,EAAE,aAAa;CACpB,CAAA;AAciD,oBAAI"}
@@ -1,28 +1,62 @@
1
1
  "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
2
35
  var __importDefault = (this && this.__importDefault) || function (mod) {
3
36
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
37
  };
5
38
  Object.defineProperty(exports, "__esModule", { value: true });
6
39
  exports.makeFileResolver = makeFileResolver;
7
- const fs_1 = __importDefault(require("fs"));
40
+ const SystemFs = __importStar(require("node:fs"));
8
41
  const path_1 = __importDefault(require("path"));
9
42
  const multisource_1 = require("../multisource");
10
43
  const mem_1 = require("./mem");
11
44
  function makeFileResolver(pathfinder) {
12
45
  return function FileResolver(spec, popts, _rule, ctx) {
13
- let foundSpec = pathfinder ? pathfinder(spec) : spec;
14
- let ps = (0, multisource_1.resolvePathSpec)(popts, ctx, foundSpec, resolvefolder);
46
+ const fs = ctx.meta?.fs || SystemFs;
47
+ const foundSpec = pathfinder ? pathfinder(spec) : spec;
48
+ const ps = (0, multisource_1.resolvePathSpec)(popts, ctx, foundSpec, resolvefolder);
15
49
  let src = undefined;
16
50
  let search = [];
17
51
  if (null != ps.full) {
18
52
  ps.full = path_1.default.resolve(ps.full);
19
53
  search.push(ps.full);
20
- src = load(ps.full);
54
+ src = load(ps.full, fs);
21
55
  if (null == src && multisource_1.NONE === ps.kind) {
22
56
  let potentials = (0, mem_1.buildPotentials)(ps, popts, (...s) => path_1.default.resolve(s.reduce((a, p) => path_1.default.join(a, p))));
23
57
  search.push(...potentials);
24
58
  for (let path of potentials) {
25
- if (null != (src = load(path))) {
59
+ if (null != (src = load(path, fs))) {
26
60
  ps.full = path;
27
61
  ps.kind = (path.match(/\.([^.]*)$/) || [multisource_1.NONE, multisource_1.NONE])[1];
28
62
  break;
@@ -39,12 +73,12 @@ function makeFileResolver(pathfinder) {
39
73
  return res;
40
74
  };
41
75
  }
42
- function resolvefolder(path) {
76
+ function resolvefolder(path, fs) {
43
77
  if ('string' !== typeof path) {
44
78
  return path;
45
79
  }
46
80
  let folder = path;
47
- let pathstats = fs_1.default.statSync(path);
81
+ let pathstats = fs.statSync(path);
48
82
  if (pathstats.isFile()) {
49
83
  let pathdesc = path_1.default.parse(path);
50
84
  folder = pathdesc.dir;
@@ -52,9 +86,9 @@ function resolvefolder(path) {
52
86
  return folder;
53
87
  }
54
88
  // TODO: in multisource.ts, generate an error token if cannot resolve
55
- function load(path) {
89
+ function load(path, fs) {
56
90
  try {
57
- return fs_1.default.readFileSync(path).toString();
91
+ return fs.readFileSync(path).toString();
58
92
  }
59
93
  catch (e) {
60
94
  // NOTE: don't need this, as in all cases, we consider failed
@@ -1 +1 @@
1
- {"version":3,"file":"file.js","sourceRoot":"","sources":["../../src/resolver/file.ts"],"names":[],"mappings":";;;;;AAmGE,4CAAgB;AAnGlB,4CAAmB;AACnB,gDAAuB;AAIvB,gDAMuB;AAGvB,+BAEc;AAKd,SAAS,gBAAgB,CAAC,UAAuB;IAE/C,OAAO,SAAS,YAAY,CAC1B,IAAS,EACT,KAAyB,EACzB,KAAW,EACX,GAAY;QAEZ,IAAI,SAAS,GAAG,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;QAEpD,IAAI,EAAE,GAAG,IAAA,6BAAe,EAAC,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE,aAAa,CAAC,CAAA;QAC9D,IAAI,GAAG,GAAG,SAAS,CAAA;QAEnB,IAAI,MAAM,GAAa,EAAE,CAAA;QAEzB,IAAI,IAAI,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC;YACpB,EAAE,CAAC,IAAI,GAAG,cAAI,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC,CAAA;YAE/B,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,CAAA;YACpB,GAAG,GAAG,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,CAAA;YAEnB,IAAI,IAAI,IAAI,GAAG,IAAI,kBAAI,KAAK,EAAE,CAAC,IAAI,EAAE,CAAC;gBACpC,IAAI,UAAU,GACZ,IAAA,qBAAe,EAAC,EAAE,EAAE,KAAK,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,CAClC,cAAI,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,cAAI,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;gBACtD,MAAM,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC,CAAA;gBAE1B,KAAK,IAAI,IAAI,IAAI,UAAU,EAAE,CAAC;oBAC5B,IAAI,IAAI,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;wBAC/B,EAAE,CAAC,IAAI,GAAG,IAAI,CAAA;wBACd,EAAE,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,kBAAI,EAAE,kBAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;wBACvD,MAAK;oBACP,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;QAED,IAAI,GAAG,GAAe;YACpB,GAAG,EAAE;YACL,GAAG;YACH,KAAK,EAAE,IAAI,IAAI,GAAG;YAClB,MAAM;SACP,CAAA;QAED,OAAO,GAAG,CAAA;IACZ,CAAC,CAAA;AACH,CAAC;AAED,SAAS,aAAa,CAAC,IAAY;IACjC,IAAI,QAAQ,KAAK,OAAO,IAAI,EAAE,CAAC;QAC7B,OAAO,IAAI,CAAA;IACb,CAAC;IAED,IAAI,MAAM,GAAG,IAAI,CAAA;IACjB,IAAI,SAAS,GAAG,YAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAA;IAEjC,IAAI,SAAS,CAAC,MAAM,EAAE,EAAE,CAAC;QACvB,IAAI,QAAQ,GAAG,cAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;QAC/B,MAAM,GAAG,QAAQ,CAAC,GAAG,CAAA;IACvB,CAAC;IAED,OAAO,MAAM,CAAA;AACf,CAAC;AAGD,qEAAqE;AACrE,SAAS,IAAI,CAAC,IAAY;IACxB,IAAI,CAAC;QACH,OAAO,YAAE,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAA;IACzC,CAAC;IACD,OAAO,CAAC,EAAE,CAAC;QACT,6DAA6D;QAC7D,mCAAmC;IACrC,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"file.js","sourceRoot":"","sources":["../../src/resolver/file.ts"],"names":[],"mappings":"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"}
@@ -36,9 +36,7 @@ function makeresolvefolder(filemap) {
36
36
  folder = (path
37
37
  .replace(/[\\\/]+$/, '')
38
38
  .match(/[\\\/]+([^\\\/]+)$/) || ['', ''])[1];
39
- // console.log('PF', path, folder)
40
39
  }
41
- // console.log('RF', folder)
42
40
  return folder;
43
41
  };
44
42
  }
@@ -69,7 +67,6 @@ function buildPotentials(ps, popts, pathjoin) {
69
67
  }
70
68
  }
71
69
  }
72
- // console.log('POT', potentials)
73
70
  return potentials;
74
71
  }
75
72
  //# sourceMappingURL=mem.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"mem.js","sourceRoot":"","sources":["../../src/resolver/mem.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mem.js","sourceRoot":"","sources":["../../src/resolver/mem.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,5 @@
1
1
  import { Resolver } from '../multisource';
2
- declare function makePkgResolver(options: any): Resolver;
2
+ declare function makePkgResolver(options: {
3
+ require: Function | string | string[];
4
+ }): Resolver;
3
5
  export { makePkgResolver, };
@@ -4,8 +4,8 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.makePkgResolver = makePkgResolver;
7
- const fs_1 = __importDefault(require("fs"));
8
- const path_1 = __importDefault(require("path"));
7
+ const node_fs_1 = __importDefault(require("node:fs"));
8
+ const node_path_1 = __importDefault(require("node:path"));
9
9
  const multisource_1 = require("../multisource");
10
10
  const mem_1 = require("./mem");
11
11
  function makePkgResolver(options) {
@@ -25,7 +25,10 @@ function makePkgResolver(options) {
25
25
  };
26
26
  }
27
27
  return function PkgResolver(spec, popts, _rule, ctx) {
28
+ let fs = node_fs_1.default;
28
29
  // TODO: support pathfinder as file.ts
30
+ // TODO: support virtual fs
31
+ // const base = ctx.meta?.multisource?.path ?? ctx.meta?.path
29
32
  let foundSpec = spec;
30
33
  let ps = (0, multisource_1.resolvePathSpec)(popts, ctx, foundSpec, resolvefolder);
31
34
  let src = undefined;
@@ -34,7 +37,7 @@ function makePkgResolver(options) {
34
37
  try {
35
38
  ps.full = useRequire.resolve(ps.path, requireOptions);
36
39
  if (null != ps.full) {
37
- src = load(ps.full);
40
+ src = load(ps.full, fs);
38
41
  ps.kind = (ps.full.match(/\.([^.]*)$/) || [multisource_1.NONE, multisource_1.NONE])[1];
39
42
  }
40
43
  }
@@ -43,30 +46,36 @@ function makePkgResolver(options) {
43
46
  // search.push(...(requireOptions?.paths || (useRequire.resolve.paths(ps.path)
44
47
  // .map((p: string) => Path.join(p, (ps.path as string))))))
45
48
  let potentials = [];
46
- let localpath = path_1.default.join(process.cwd(), 'NIL');
47
- let localparts;
48
- do {
49
- localparts = path_1.default.parse(localpath);
50
- localpath = localparts.dir;
51
- potentials.push(path_1.default.join(localpath, 'node_modules', ps.path));
52
- } while (localparts.root !== localparts.dir);
49
+ if (null == ctx.meta?.fs) {
50
+ let localpath = node_path_1.default.join(process.cwd(), 'NIL');
51
+ let localparts;
52
+ do {
53
+ localparts = node_path_1.default.parse(localpath);
54
+ localpath = localparts.dir;
55
+ potentials.push(node_path_1.default.join(localpath, 'node_modules', ps.path));
56
+ } while (localparts.root !== localparts.dir);
57
+ }
58
+ else {
59
+ potentials.push(ps.path);
60
+ }
53
61
  if (null != ps.path && 'string' === typeof ps.path) {
54
62
  const pspath = ps.path;
55
63
  // Add the main paths of the current require
56
- potentials.push(...useRequire.main.paths.map((p) => path_1.default.join(p, pspath)));
64
+ potentials.push(...useRequire.main.paths.map((p) => node_path_1.default.join(p, pspath)));
57
65
  // Remove module name prefix
58
66
  const subpath = ps.path.replace(/^(@[^/]+\/)?[^/]+\//, '');
59
67
  potentials.push(...useRequire.main.paths
60
68
  .map((p) => p.replace(/node_modules$/, subpath)));
61
69
  }
62
- potentials.push(...(0, mem_1.buildPotentials)(ps, popts, (...s) => path_1.default.resolve(s.reduce((a, p) => path_1.default.join(a, p)))));
70
+ potentials.push(...(0, mem_1.buildPotentials)(ps, popts, (...s) => node_path_1.default.resolve(s.reduce((a, p) => node_path_1.default.join(a, p)))));
63
71
  // Check longest paths first
64
72
  potentials.sort((a, b) => b.length - a.length);
73
+ requireOptions = { paths: ['/'] };
65
74
  for (let path of potentials) {
66
75
  try {
67
76
  ps.full = useRequire.resolve(path, requireOptions);
68
77
  if (null != ps.full) {
69
- src = load(ps.full);
78
+ src = load(ps.full, fs);
70
79
  ps.kind = (ps.full.match(/\.([^.]*)$/) || [multisource_1.NONE, multisource_1.NONE])[1];
71
80
  break;
72
81
  }
@@ -88,22 +97,22 @@ function makePkgResolver(options) {
88
97
  return res;
89
98
  };
90
99
  }
91
- function resolvefolder(path) {
100
+ function resolvefolder(path, fs) {
92
101
  if ('string' !== typeof path) {
93
102
  return path;
94
103
  }
95
104
  let folder = path;
96
- let pathstats = fs_1.default.statSync(path);
105
+ let pathstats = fs.statSync(path);
97
106
  if (pathstats.isFile()) {
98
- let pathdesc = path_1.default.parse(path);
107
+ let pathdesc = node_path_1.default.parse(path);
99
108
  folder = pathdesc.dir;
100
109
  }
101
110
  return folder;
102
111
  }
103
112
  // TODO: in multisource.ts, generate an error token if cannot resolve
104
- function load(path) {
113
+ function load(path, fs) {
105
114
  try {
106
- return fs_1.default.readFileSync(path).toString();
115
+ return fs.readFileSync(path).toString();
107
116
  }
108
117
  catch (e) {
109
118
  // NOTE: don't need this, as in all cases, we consider failed
@@ -1 +1 @@
1
- {"version":3,"file":"pkg.js","sourceRoot":"","sources":["../../src/resolver/pkg.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pkg.js","sourceRoot":"","sources":["../../src/resolver/pkg.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"root":["../src/multisource.ts","../src/processor/js.ts","../src/processor/jsonic.ts","../src/resolver/file.ts","../src/resolver/mem.ts","../src/resolver/pkg.ts"],"version":"5.7.3"}
1
+ {"root":["../src/multisource.ts","../src/processor/js.ts","../src/processor/jsonic.ts","../src/resolver/file.ts","../src/resolver/mem.ts","../src/resolver/pkg.ts"],"version":"5.9.2"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jsonic/multisource",
3
- "version": "1.9.0",
3
+ "version": "2.0.1",
4
4
  "description": "",
5
5
  "main": "dist/multisource.js",
6
6
  "type": "commonjs",
@@ -19,10 +19,9 @@
19
19
  "url": "git://github.com/jsonicjs/multisource.git"
20
20
  },
21
21
  "scripts": {
22
- "test": "node --enable-source-maps --test dist-test",
23
- "test22": "node --enable-source-maps --test \"dist-test/*.test.js\"",
22
+ "test": "node --enable-source-maps --test \"dist-test/*.test.js\"",
24
23
  "test-cov": "rm -rf ./coverage && mkdir -p ./coverage && node --experimental-test-coverage --test-reporter=spec --test-reporter-destination=stdout --test-reporter=lcov --test-reporter-destination=coverage/lcov.info --enable-source-maps --test \"dist-test/*.test.js\"",
25
- "test-some": "node --enable-source-maps --test-name-pattern=\"$npm_config_pattern\" --test dist-test",
24
+ "test-some": "node --enable-source-maps --test-name-pattern=\"$npm_config_pattern\" --test \"dist-test/*.test.js\"",
26
25
  "watch": "tsc --build src test -w",
27
26
  "build": "tsc --build src test",
28
27
  "clean": "rm -rf dist dist-test node_modules yarn.lock package-lock.json",
@@ -49,13 +48,14 @@
49
48
  "devDependencies": {
50
49
  "@hapi/code": "^9.0.3",
51
50
  "@jsonic/doc": "^0.0.9",
52
- "@types/node": "^22.10.7",
51
+ "@types/node": "^24.3.0",
53
52
  "jsonic-multisource-pkg-test": "^0.0.1",
54
- "typescript": "^5.7.3"
53
+ "memfs": "^4.38.2",
54
+ "typescript": "^5.9.2"
55
55
  },
56
56
  "peerDependencies": {
57
- "@jsonic/path": ">=1.3.0",
58
57
  "@jsonic/directive": ">=1.1.0",
58
+ "@jsonic/path": ">=1.4.0",
59
59
  "jsonic": ">=2.16.0"
60
60
  }
61
61
  }
@@ -1,4 +1,6 @@
1
- /* Copyright (c) 2021 Richard Rodger, MIT License */
1
+ /* Copyright (c) 2025 Richard Rodger, MIT License */
2
+
3
+ import * as SystemFs from 'node:fs'
2
4
 
3
5
  import { Jsonic, Context, Rule, Plugin } from 'jsonic'
4
6
  import { Directive, DirectiveOptions } from '@jsonic/directive'
@@ -6,6 +8,8 @@ import { Directive, DirectiveOptions } from '@jsonic/directive'
6
8
  import { makeJsonicProcessor } from './processor/jsonic'
7
9
  import { makeJavaScriptProcessor } from './processor/js'
8
10
 
11
+ type FST = typeof SystemFs
12
+
9
13
  // TODO: jsonic-cli should provide basepath
10
14
 
11
15
  // Jsonic parsing meta data. In this case, storing the dependency tree.
@@ -177,7 +181,6 @@ const MultiSource: Plugin = (jsonic: Jsonic, popts: MultiSourceOptions) => {
177
181
  }
178
182
 
179
183
  let proc = processor[res.kind] || processor[NONE]
180
- // console.log('FROM', from, 'PROC', proc, processor, ctxproc.meta)
181
184
  proc(res, popts, rule, ctxproc, jsonic)
182
185
 
183
186
  // Handle the {@foo} case, injecting keys into parent map.
@@ -288,11 +291,13 @@ function resolvePathSpec(
288
291
  popts: MultiSourceOptions,
289
292
  ctx: Context,
290
293
  spec: any,
291
- resolvefolder: (path: string) => string,
294
+ resolvefolder: (path: string, fs: FST) => string,
292
295
  ): PathSpec {
296
+ const fs = ctx.meta?.fs || SystemFs
293
297
  let msmeta = ctx.meta?.multisource
294
298
  let base = resolvefolder(
295
299
  null == msmeta || null == msmeta.path ? popts.path : msmeta.path,
300
+ fs
296
301
  )
297
302
 
298
303
  let path =
@@ -339,6 +344,8 @@ export type {
339
344
  DependencyMap,
340
345
  MultiSourceMeta,
341
346
  PathSpec,
347
+ FST,
342
348
  }
343
349
 
344
350
  export { MultiSource, resolvePathSpec, NONE, TOP, meta }
351
+
@@ -1,6 +1,11 @@
1
- import Fs from 'fs'
1
+
2
+ import * as SystemFs from 'node:fs'
2
3
  import Path from 'path'
3
4
 
5
+ import type {
6
+ FST
7
+ } from '../multisource'
8
+
4
9
  import { Rule, Context } from 'jsonic'
5
10
 
6
11
  import {
@@ -27,9 +32,10 @@ function makeFileResolver(pathfinder?: PathFinder): Resolver {
27
32
  _rule: Rule,
28
33
  ctx: Context,
29
34
  ): Resolution {
30
- let foundSpec = pathfinder ? pathfinder(spec) : spec
35
+ const fs = ctx.meta?.fs || SystemFs
36
+ const foundSpec = pathfinder ? pathfinder(spec) : spec
31
37
 
32
- let ps = resolvePathSpec(popts, ctx, foundSpec, resolvefolder)
38
+ const ps = resolvePathSpec(popts, ctx, foundSpec, resolvefolder)
33
39
  let src = undefined
34
40
 
35
41
  let search: string[] = []
@@ -38,7 +44,7 @@ function makeFileResolver(pathfinder?: PathFinder): Resolver {
38
44
  ps.full = Path.resolve(ps.full)
39
45
 
40
46
  search.push(ps.full)
41
- src = load(ps.full)
47
+ src = load(ps.full, fs)
42
48
 
43
49
  if (null == src && NONE === ps.kind) {
44
50
  let potentials =
@@ -47,7 +53,7 @@ function makeFileResolver(pathfinder?: PathFinder): Resolver {
47
53
  search.push(...potentials)
48
54
 
49
55
  for (let path of potentials) {
50
- if (null != (src = load(path))) {
56
+ if (null != (src = load(path, fs))) {
51
57
  ps.full = path
52
58
  ps.kind = (path.match(/\.([^.]*)$/) || [NONE, NONE])[1]
53
59
  break
@@ -67,13 +73,13 @@ function makeFileResolver(pathfinder?: PathFinder): Resolver {
67
73
  }
68
74
  }
69
75
 
70
- function resolvefolder(path: string) {
76
+ function resolvefolder(path: string, fs: FST) {
71
77
  if ('string' !== typeof path) {
72
78
  return path
73
79
  }
74
80
 
75
81
  let folder = path
76
- let pathstats = Fs.statSync(path)
82
+ let pathstats = fs.statSync(path)
77
83
 
78
84
  if (pathstats.isFile()) {
79
85
  let pathdesc = Path.parse(path)
@@ -85,9 +91,9 @@ function resolvefolder(path: string) {
85
91
 
86
92
 
87
93
  // TODO: in multisource.ts, generate an error token if cannot resolve
88
- function load(path: string) {
94
+ function load(path: string, fs: FST) {
89
95
  try {
90
- return Fs.readFileSync(path).toString()
96
+ return fs.readFileSync(path).toString()
91
97
  }
92
98
  catch (e) {
93
99
  // NOTE: don't need this, as in all cases, we consider failed
@@ -61,9 +61,7 @@ function makeresolvefolder(filemap: { [fullpath: string]: string }) {
61
61
  folder = (path
62
62
  .replace(/[\\\/]+$/, '')
63
63
  .match(/[\\\/]+([^\\\/]+)$/) || ['', ''])[1]
64
- // console.log('PF', path, folder)
65
64
  }
66
- // console.log('RF', folder)
67
65
  return folder
68
66
  }
69
67
  }
@@ -103,8 +101,6 @@ function buildPotentials(
103
101
  }
104
102
  }
105
103
 
106
- // console.log('POT', potentials)
107
-
108
104
  return potentials
109
105
  }
110
106
 
@@ -1,5 +1,11 @@
1
- import Fs from 'fs'
2
- import Path from 'path'
1
+ import SystemFs from 'node:fs'
2
+ import Path from 'node:path'
3
+ // import Module from 'node:module'
4
+
5
+ import type {
6
+ FST
7
+ } from '../multisource'
8
+
3
9
 
4
10
  import { Rule, Context } from 'jsonic'
5
11
 
@@ -17,12 +23,20 @@ import {
17
23
  } from './mem'
18
24
 
19
25
 
20
- function makePkgResolver(options: any): Resolver {
21
- let useRequire: any = require
26
+ function makePkgResolver(options: {
27
+ require: Function | string | string[]
28
+ }): Resolver {
29
+ let useRequire: {
30
+ resolve: (target: string, options?: any) => any
31
+ main: {
32
+ paths: string[]
33
+ }
34
+ } = require as any
35
+
22
36
  let requireOptions: any = undefined
23
37
 
24
38
  if ('function' === typeof options.require) {
25
- useRequire = options.require
39
+ useRequire = options.require as any
26
40
  }
27
41
  else if (Array.isArray(options.require)) {
28
42
  requireOptions = {
@@ -41,8 +55,13 @@ function makePkgResolver(options: any): Resolver {
41
55
  _rule: Rule,
42
56
  ctx: Context,
43
57
  ): Resolution {
58
+ let fs = SystemFs
59
+
44
60
  // TODO: support pathfinder as file.ts
45
61
 
62
+ // TODO: support virtual fs
63
+ // const base = ctx.meta?.multisource?.path ?? ctx.meta?.path
64
+
46
65
  let foundSpec = spec
47
66
 
48
67
  let ps = resolvePathSpec(popts, ctx, foundSpec, resolvefolder)
@@ -53,7 +72,7 @@ function makePkgResolver(options: any): Resolver {
53
72
  try {
54
73
  ps.full = useRequire.resolve(ps.path, requireOptions)
55
74
  if (null != ps.full) {
56
- src = load(ps.full)
75
+ src = load(ps.full, fs)
57
76
  ps.kind = (ps.full.match(/\.([^.]*)$/) || [NONE, NONE])[1]
58
77
  }
59
78
  }
@@ -64,15 +83,19 @@ function makePkgResolver(options: any): Resolver {
64
83
 
65
84
  let potentials = []
66
85
 
67
- let localpath = Path.join(process.cwd(), 'NIL')
68
- let localparts
69
- do {
70
- localparts = Path.parse(localpath)
71
- localpath = localparts.dir
72
- potentials.push(Path.join(localpath, 'node_modules', ps.path))
86
+ if (null == ctx.meta?.fs) {
87
+ let localpath = Path.join(process.cwd(), 'NIL')
88
+ let localparts
89
+ do {
90
+ localparts = Path.parse(localpath)
91
+ localpath = localparts.dir
92
+ potentials.push(Path.join(localpath, 'node_modules', ps.path))
93
+ }
94
+ while (localparts.root !== localparts.dir)
95
+ }
96
+ else {
97
+ potentials.push(ps.path)
73
98
  }
74
- while (localparts.root !== localparts.dir)
75
-
76
99
 
77
100
  if (null != ps.path && 'string' === typeof ps.path) {
78
101
  const pspath = ps.path
@@ -95,11 +118,13 @@ function makePkgResolver(options: any): Resolver {
95
118
  potentials.sort((a, b) => b.length - a.length)
96
119
 
97
120
 
121
+ requireOptions = { paths: ['/'] }
122
+
98
123
  for (let path of potentials) {
99
124
  try {
100
125
  ps.full = useRequire.resolve(path, requireOptions)
101
126
  if (null != ps.full) {
102
- src = load(ps.full)
127
+ src = load(ps.full, fs)
103
128
  ps.kind = (ps.full.match(/\.([^.]*)$/) || [NONE, NONE])[1]
104
129
  break
105
130
  }
@@ -125,13 +150,13 @@ function makePkgResolver(options: any): Resolver {
125
150
  }
126
151
 
127
152
 
128
- function resolvefolder(path: string) {
153
+ function resolvefolder(path: string, fs: FST) {
129
154
  if ('string' !== typeof path) {
130
155
  return path
131
156
  }
132
157
 
133
158
  let folder = path
134
- let pathstats = Fs.statSync(path)
159
+ let pathstats = fs.statSync(path)
135
160
 
136
161
  if (pathstats.isFile()) {
137
162
  let pathdesc = Path.parse(path)
@@ -143,9 +168,9 @@ function resolvefolder(path: string) {
143
168
 
144
169
 
145
170
  // TODO: in multisource.ts, generate an error token if cannot resolve
146
- function load(path: string) {
171
+ function load(path: string, fs: FST) {
147
172
  try {
148
- return Fs.readFileSync(path).toString()
173
+ return fs.readFileSync(path).toString()
149
174
  }
150
175
  catch (e) {
151
176
  // NOTE: don't need this, as in all cases, we consider failed
@@ -154,6 +179,7 @@ function load(path: string) {
154
179
  }
155
180
 
156
181
 
182
+
157
183
  export {
158
184
  makePkgResolver,
159
185
  }