@atomic-ehr/fhir-canonical-manager 0.0.24 → 0.0.25

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 (50) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +96 -3
  3. package/dist/cache.js +1 -1
  4. package/dist/cache.js.map +1 -1
  5. package/dist/cli/search.d.ts.map +1 -1
  6. package/dist/cli/search.js +14 -16
  7. package/dist/cli/search.js.map +1 -1
  8. package/dist/index.d.ts +2 -4
  9. package/dist/index.d.ts.map +1 -1
  10. package/dist/index.js +2 -4
  11. package/dist/index.js.map +1 -1
  12. package/dist/local.js.map +1 -1
  13. package/dist/manager/canonical.d.ts.map +1 -1
  14. package/dist/manager/canonical.js +57 -13
  15. package/dist/manager/canonical.js.map +1 -1
  16. package/dist/package.d.ts.map +1 -1
  17. package/dist/package.js.map +1 -1
  18. package/dist/patches.d.ts +10 -0
  19. package/dist/patches.d.ts.map +1 -0
  20. package/dist/patches.js +27 -0
  21. package/dist/patches.js.map +1 -0
  22. package/dist/reference.d.ts +3 -4
  23. package/dist/reference.d.ts.map +1 -1
  24. package/dist/reference.js +0 -1
  25. package/dist/reference.js.map +1 -1
  26. package/dist/scanner/directory.d.ts +2 -4
  27. package/dist/scanner/directory.d.ts.map +1 -1
  28. package/dist/scanner/directory.js +3 -3
  29. package/dist/scanner/directory.js.map +1 -1
  30. package/dist/scanner/index.d.ts +2 -2
  31. package/dist/scanner/index.d.ts.map +1 -1
  32. package/dist/scanner/index.js +1 -1
  33. package/dist/scanner/index.js.map +1 -1
  34. package/dist/scanner/package.d.ts +7 -4
  35. package/dist/scanner/package.d.ts.map +1 -1
  36. package/dist/scanner/package.js +45 -85
  37. package/dist/scanner/package.js.map +1 -1
  38. package/dist/scanner/processor.d.ts +23 -1
  39. package/dist/scanner/processor.d.ts.map +1 -1
  40. package/dist/scanner/processor.js +108 -46
  41. package/dist/scanner/processor.js.map +1 -1
  42. package/dist/types/core.d.ts +44 -18
  43. package/dist/types/core.d.ts.map +1 -1
  44. package/dist/types/internal.d.ts +3 -3
  45. package/dist/types/internal.d.ts.map +1 -1
  46. package/package.json +8 -1
  47. package/dist/manager/index.d.ts +0 -2
  48. package/dist/manager/index.d.ts.map +0 -1
  49. package/dist/manager/index.js +0 -2
  50. package/dist/manager/index.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"reference.d.ts","sourceRoot":"","sources":["../src/reference.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,SAAS,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAKrF,eAAO,MAAM,mBAAmB,GAAI,UAAU;IAC1C,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,MAAM,CAAC;IACvB,QAAQ,EAAE,MAAM,CAAC;CACpB,KAAG,MAGH,CAAC;AAKF,MAAM,WAAW,gBAAiB,SAAQ,cAAc;IACpD,UAAU,EAAE,OAAO,mBAAmB,CAAC;IACvC,WAAW,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,EAAE,CAAC;IACvC,eAAe,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,iBAAiB,KAAK,SAAS,CAAC;IACxE,gBAAgB,EAAE,MAAM,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC;CAC7D;AAKD,eAAO,MAAM,sBAAsB,QAAO,gBAwCzC,CAAC;AAGF,OAAO,EAAE,sBAAsB,IAAI,uBAAuB,EAAE,CAAC"}
1
+ {"version":3,"file":"reference.d.ts","sourceRoot":"","sources":["../src/reference.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,WAAW,EAAE,cAAc,EAAE,SAAS,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAKlH,eAAO,MAAM,mBAAmB,GAAI,UAAU;IAC1C,WAAW,EAAE,WAAW,CAAC;IACzB,cAAc,EAAE,cAAc,CAAC;IAC/B,QAAQ,EAAE,MAAM,CAAC;CACpB,KAAG,MAGH,CAAC;AAKF,MAAM,WAAW,gBAAiB,SAAQ,cAAc;IACpD,UAAU,EAAE,OAAO,mBAAmB,CAAC;IACvC,WAAW,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,EAAE,CAAC;IACvC,eAAe,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,iBAAiB,KAAK,SAAS,CAAC;IACxE,gBAAgB,EAAE,MAAM,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC;CAC7D;AAKD,eAAO,MAAM,sBAAsB,QAAO,gBAwCzC,CAAC"}
package/dist/reference.js CHANGED
@@ -41,5 +41,4 @@ export const createReferenceManager = () => {
41
41
  getAllReferences: () => references,
42
42
  };
43
43
  };
44
- export { createReferenceManager as ReferenceManagerFactory };
45
44
  //# sourceMappingURL=reference.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"reference.js","sourceRoot":"","sources":["../src/reference.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAMzC,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,QAInC,EAAU,EAAE;IACT,MAAM,KAAK,GAAG,GAAG,QAAQ,CAAC,WAAW,IAAI,QAAQ,CAAC,cAAc,IAAI,QAAQ,CAAC,QAAQ,EAAE,CAAC;IACxF,OAAO,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;AAClE,CAAC,CAAC;AAeF,MAAM,CAAC,MAAM,sBAAsB,GAAG,GAAqB,EAAE;IACzD,MAAM,UAAU,GAAsC,EAAE,CAAC;IACzD,MAAM,QAAQ,GAA6B,EAAE,CAAC;IAE9C,MAAM,GAAG,GAAG,CAAC,EAAU,EAAE,QAA2B,EAAQ,EAAE;QAC1D,UAAU,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC;QAC1B,IAAI,QAAQ,CAAC,GAAG,EAAE,CAAC;YACf,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC1B,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;YAChC,CAAC;YACD,MAAM,GAAG,GAAG,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;YACnC,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC;gBAC3B,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACjB,CAAC;QACL,CAAC;IACL,CAAC,CAAC;IAEF,MAAM,KAAK,GAAG,GAAS,EAAE;QACrB,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;YACpC,OAAO,UAAU,CAAC,GAAG,CAAC,CAAC;QAC3B,CAAC,CAAC,CAAC;QACH,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;YAClC,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAC;QACzB,CAAC,CAAC,CAAC;IACP,CAAC,CAAC;IAEF,OAAO;QACH,UAAU,EAAE,mBAAmB;QAC/B,GAAG,EAAE,CAAC,EAAU,EAAE,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC;QACnC,GAAG;QACH,GAAG,EAAE,CAAC,EAAU,EAAE,EAAE,CAAC,EAAE,IAAI,UAAU;QACrC,KAAK;QACL,IAAI,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,MAAM;QAC1C,WAAW,EAAE,CAAC,GAAW,EAAE,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,EAAE;QACjD,eAAe,EAAE,CAAC,EAAU,EAAE,QAA2B,EAAa,EAAE,CAAC,CAAC;YACtE,EAAE;YACF,YAAY,EAAE,QAAQ,CAAC,YAAY;SACtC,CAAC;QACF,gBAAgB,EAAE,GAAG,EAAE,CAAC,UAAU;KACrC,CAAC;AACN,CAAC,CAAC;AAGF,OAAO,EAAE,sBAAsB,IAAI,uBAAuB,EAAE,CAAC"}
1
+ {"version":3,"file":"reference.js","sourceRoot":"","sources":["../src/reference.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAMzC,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,QAInC,EAAU,EAAE;IACT,MAAM,KAAK,GAAG,GAAG,QAAQ,CAAC,WAAW,IAAI,QAAQ,CAAC,cAAc,IAAI,QAAQ,CAAC,QAAQ,EAAE,CAAC;IACxF,OAAO,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;AAClE,CAAC,CAAC;AAeF,MAAM,CAAC,MAAM,sBAAsB,GAAG,GAAqB,EAAE;IACzD,MAAM,UAAU,GAAsC,EAAE,CAAC;IACzD,MAAM,QAAQ,GAA6B,EAAE,CAAC;IAE9C,MAAM,GAAG,GAAG,CAAC,EAAU,EAAE,QAA2B,EAAQ,EAAE;QAC1D,UAAU,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC;QAC1B,IAAI,QAAQ,CAAC,GAAG,EAAE,CAAC;YACf,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC1B,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;YAChC,CAAC;YACD,MAAM,GAAG,GAAG,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;YACnC,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC;gBAC3B,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACjB,CAAC;QACL,CAAC;IACL,CAAC,CAAC;IAEF,MAAM,KAAK,GAAG,GAAS,EAAE;QACrB,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;YACpC,OAAO,UAAU,CAAC,GAAG,CAAC,CAAC;QAC3B,CAAC,CAAC,CAAC;QACH,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;YAClC,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAC;QACzB,CAAC,CAAC,CAAC;IACP,CAAC,CAAC;IAEF,OAAO;QACH,UAAU,EAAE,mBAAmB;QAC/B,GAAG,EAAE,CAAC,EAAU,EAAE,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC;QACnC,GAAG;QACH,GAAG,EAAE,CAAC,EAAU,EAAE,EAAE,CAAC,EAAE,IAAI,UAAU;QACrC,KAAK;QACL,IAAI,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,MAAM;QAC1C,WAAW,EAAE,CAAC,GAAW,EAAE,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,EAAE;QACjD,eAAe,EAAE,CAAC,EAAU,EAAE,QAA2B,EAAa,EAAE,CAAC,CAAC;YACtE,EAAE;YACF,YAAY,EAAE,QAAQ,CAAC,YAAY;SACtC,CAAC;QACF,gBAAgB,EAAE,GAAG,EAAE,CAAC,UAAU;KACrC,CAAC;AACN,CAAC,CAAC"}
@@ -1,6 +1,4 @@
1
1
  import type { ExtendedCache } from "../cache.js";
2
- import type { PreprocessContext } from "../types/index.js";
3
- export declare const loadPackagesIntoCache: (cache: ExtendedCache, pwd: string, preprocessPackage?: (context: PreprocessContext) => PreprocessContext, options?: {
4
- ignorePackageIndex?: boolean;
5
- }) => Promise<void>;
2
+ import { type ScanOptions } from "./package.js";
3
+ export declare const loadPackagesIntoCache: (cache: ExtendedCache, pwd: string, options: ScanOptions) => Promise<void>;
6
4
  //# sourceMappingURL=directory.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"directory.d.ts","sourceRoot":"","sources":["../../src/scanner/directory.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAG3D,eAAO,MAAM,qBAAqB,GAC9B,OAAO,aAAa,EACpB,KAAK,MAAM,EACX,oBAAoB,CAAC,OAAO,EAAE,iBAAiB,KAAK,iBAAiB,EACrE,UAAU;IAAE,kBAAkB,CAAC,EAAE,OAAO,CAAA;CAAE,KAC3C,OAAO,CAAC,IAAI,CAyBd,CAAC"}
1
+ {"version":3,"file":"directory.d.ts","sourceRoot":"","sources":["../../src/scanner/directory.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,EAAe,KAAK,WAAW,EAAE,MAAM,cAAc,CAAC;AAE7D,eAAO,MAAM,qBAAqB,GAAU,OAAO,aAAa,EAAE,KAAK,MAAM,EAAE,SAAS,WAAW,KAAG,OAAO,CAAC,IAAI,CAyBjH,CAAC"}
@@ -1,7 +1,7 @@
1
1
  import * as fs from "node:fs/promises";
2
2
  import * as path from "node:path";
3
3
  import { loadPackage } from "./package.js";
4
- export const loadPackagesIntoCache = async (cache, pwd, preprocessPackage, options) => {
4
+ export const loadPackagesIntoCache = async (cache, pwd, options) => {
5
5
  const nodeModulesPath = path.join(pwd, "node_modules");
6
6
  const entries = await fs.readdir(nodeModulesPath, { withFileTypes: true });
7
7
  const warnings = [];
@@ -14,13 +14,13 @@ export const loadPackagesIntoCache = async (cache, pwd, preprocessPackage, optio
14
14
  for (const scopedEntry of scopedEntries) {
15
15
  if (!scopedEntry.isDirectory())
16
16
  continue;
17
- const w = await loadPackage(path.join(packagePath, scopedEntry.name), cache, preprocessPackage, options);
17
+ const w = await loadPackage(path.join(packagePath, scopedEntry.name), cache, options);
18
18
  if (w)
19
19
  warnings.push(w);
20
20
  }
21
21
  }
22
22
  else {
23
- const w = await loadPackage(packagePath, cache, preprocessPackage, options);
23
+ const w = await loadPackage(packagePath, cache, options);
24
24
  if (w)
25
25
  warnings.push(w);
26
26
  }
@@ -1 +1 @@
1
- {"version":3,"file":"directory.js","sourceRoot":"","sources":["../../src/scanner/directory.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACvC,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAGlC,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAE3C,MAAM,CAAC,MAAM,qBAAqB,GAAG,KAAK,EACtC,KAAoB,EACpB,GAAW,EACX,iBAAqE,EACrE,OAA0C,EAC7B,EAAE;IACf,MAAM,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC;IACvD,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,OAAO,CAAC,eAAe,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;IAC3E,MAAM,QAAQ,GAAa,EAAE,CAAC;IAE9B,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC1B,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE;YAAE,SAAS;QACnC,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;QAE5D,IAAI,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YAC7B,MAAM,aAAa,GAAG,MAAM,EAAE,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;YAC7E,KAAK,MAAM,WAAW,IAAI,aAAa,EAAE,CAAC;gBACtC,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE;oBAAE,SAAS;gBACzC,MAAM,CAAC,GAAG,MAAM,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,WAAW,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,iBAAiB,EAAE,OAAO,CAAC,CAAC;gBACzG,IAAI,CAAC;oBAAE,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAC5B,CAAC;QACL,CAAC;aAAM,CAAC;YACJ,MAAM,CAAC,GAAG,MAAM,WAAW,CAAC,WAAW,EAAE,KAAK,EAAE,iBAAiB,EAAE,OAAO,CAAC,CAAC;YAC5E,IAAI,CAAC;gBAAE,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC5B,CAAC;IACL,CAAC;IAED,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACtB,OAAO,CAAC,IAAI,CAAC,cAAc,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC7E,CAAC;AACL,CAAC,CAAC"}
1
+ {"version":3,"file":"directory.js","sourceRoot":"","sources":["../../src/scanner/directory.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACvC,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAElC,OAAO,EAAE,WAAW,EAAoB,MAAM,cAAc,CAAC;AAE7D,MAAM,CAAC,MAAM,qBAAqB,GAAG,KAAK,EAAE,KAAoB,EAAE,GAAW,EAAE,OAAoB,EAAiB,EAAE;IAClH,MAAM,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC;IACvD,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,OAAO,CAAC,eAAe,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;IAC3E,MAAM,QAAQ,GAAa,EAAE,CAAC;IAE9B,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC1B,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE;YAAE,SAAS;QACnC,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;QAE5D,IAAI,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YAC7B,MAAM,aAAa,GAAG,MAAM,EAAE,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;YAC7E,KAAK,MAAM,WAAW,IAAI,aAAa,EAAE,CAAC;gBACtC,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE;oBAAE,SAAS;gBACzC,MAAM,CAAC,GAAG,MAAM,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,WAAW,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;gBACtF,IAAI,CAAC;oBAAE,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAC5B,CAAC;QACL,CAAC;aAAM,CAAC;YACJ,MAAM,CAAC,GAAG,MAAM,WAAW,CAAC,WAAW,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;YACzD,IAAI,CAAC;gBAAE,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC5B,CAAC;IACL,CAAC;IAED,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACtB,OAAO,CAAC,IAAI,CAAC,cAAc,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC7E,CAAC;AACL,CAAC,CAAC"}
@@ -1,5 +1,5 @@
1
- export { loadPackagesIntoCache as scanDirectory } from "./directory.js";
2
- export { loadPackage } from "./package.js";
1
+ export { loadPackagesIntoCache } from "./directory.js";
2
+ export { loadPackage, type ScanOptions } from "./package.js";
3
3
  export { isValidFileEntry, isValidIndexFile, parseIndex } from "./parser.js";
4
4
  export { processIndex } from "./processor.js";
5
5
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/scanner/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,qBAAqB,IAAI,aAAa,EAAE,MAAM,gBAAgB,CAAC;AACxE,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAC7E,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/scanner/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AACvD,OAAO,EAAE,WAAW,EAAE,KAAK,WAAW,EAAE,MAAM,cAAc,CAAC;AAC7D,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAC7E,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC"}
@@ -1,4 +1,4 @@
1
- export { loadPackagesIntoCache as scanDirectory } from "./directory.js";
1
+ export { loadPackagesIntoCache } from "./directory.js";
2
2
  export { loadPackage } from "./package.js";
3
3
  export { isValidFileEntry, isValidIndexFile, parseIndex } from "./parser.js";
4
4
  export { processIndex } from "./processor.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/scanner/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,qBAAqB,IAAI,aAAa,EAAE,MAAM,gBAAgB,CAAC;AACxE,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAC7E,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/scanner/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AACvD,OAAO,EAAE,WAAW,EAAoB,MAAM,cAAc,CAAC;AAC7D,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAC7E,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC"}
@@ -1,6 +1,9 @@
1
1
  import type { ExtendedCache } from "../cache.js";
2
- import type { PreprocessContext } from "../types/index.js";
3
- export declare const loadPackage: (packagePath: string, cache: ExtendedCache, preprocessPackage?: (context: PreprocessContext) => PreprocessContext, options?: {
4
- ignorePackageIndex?: boolean;
5
- }) => Promise<string | undefined>;
2
+ import type { PackageIndexMode, Patches, PatchReportSink } from "../types/index.js";
3
+ export type ScanOptions = {
4
+ packageIndexMode: PackageIndexMode;
5
+ patches: Patches;
6
+ report: PatchReportSink;
7
+ };
8
+ export declare const loadPackage: (packagePath: string, cache: ExtendedCache, options: ScanOptions) => Promise<string | undefined>;
6
9
  //# sourceMappingURL=package.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"package.d.ts","sourceRoot":"","sources":["../../src/scanner/package.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAEjD,OAAO,KAAK,EAA2B,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAiFpF,eAAO,MAAM,WAAW,GACpB,aAAa,MAAM,EACnB,OAAO,aAAa,EACpB,oBAAoB,CAAC,OAAO,EAAE,iBAAiB,KAAK,iBAAiB,EACrE,UAAU;IAAE,kBAAkB,CAAC,EAAE,OAAO,CAAA;CAAE,KAC3C,OAAO,CAAC,MAAM,GAAG,SAAS,CA4D5B,CAAC"}
1
+ {"version":3,"file":"package.d.ts","sourceRoot":"","sources":["../../src/scanner/package.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAGjD,OAAO,KAAK,EAAE,gBAAgB,EAAe,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAajG,MAAM,MAAM,WAAW,GAAG;IACtB,gBAAgB,EAAE,gBAAgB,CAAC;IAEnC,OAAO,EAAE,OAAO,CAAC;IAEjB,MAAM,EAAE,eAAe,CAAC;CAC3B,CAAC;AA+DF,eAAO,MAAM,WAAW,GACpB,aAAa,MAAM,EACnB,OAAO,aAAa,EACpB,SAAS,WAAW,KACrB,OAAO,CAAC,MAAM,GAAG,SAAS,CA8C5B,CAAC"}
@@ -1,62 +1,8 @@
1
1
  import * as fs from "node:fs/promises";
2
2
  import * as path from "node:path";
3
3
  import { fileExists } from "../fs/index.js";
4
- import { processIndex } from "./processor.js";
5
- const scanDirectoryForResources = async (dirPath, packageJson, cache) => {
6
- let count = 0;
7
- try {
8
- const entries = await fs.readdir(dirPath, { withFileTypes: true });
9
- for (const entry of entries) {
10
- if (!entry.isFile() || !entry.name.endsWith(".json"))
11
- continue;
12
- if (entry.name === "package.json" || entry.name === ".index.json")
13
- continue;
14
- const filePath = path.join(dirPath, entry.name);
15
- try {
16
- const content = await fs.readFile(filePath, "utf-8");
17
- const resource = JSON.parse(content);
18
- if (!resource.resourceType || !resource.url)
19
- continue;
20
- const id = cache.referenceManager.generateId({
21
- packageName: packageJson.name,
22
- packageVersion: packageJson.version,
23
- filePath,
24
- });
25
- cache.referenceManager.set(id, {
26
- packageName: packageJson.name,
27
- packageVersion: packageJson.version,
28
- filePath,
29
- resourceType: resource.resourceType,
30
- url: resource.url,
31
- version: resource.version,
32
- });
33
- const indexEntry = {
34
- id,
35
- resourceType: resource.resourceType,
36
- indexVersion: 0,
37
- url: resource.url,
38
- version: resource.version,
39
- kind: resource.kind,
40
- type: resource.type,
41
- package: {
42
- name: packageJson.name,
43
- version: packageJson.version,
44
- },
45
- };
46
- if (!cache.entries[resource.url]) {
47
- cache.entries[resource.url] = [];
48
- }
49
- cache.entries[resource.url]?.push(indexEntry);
50
- count++;
51
- }
52
- catch {
53
- }
54
- }
55
- }
56
- catch {
57
- }
58
- return count;
59
- };
4
+ import { applyPatches } from "../patches.js";
5
+ import { collectFromDirectory, collectFromIndex, commitEntries } from "./processor.js";
60
6
  const CORE_PACKAGE_PATTERN = /^hl7\.fhir\.r\d+\.core$/;
61
7
  const isCorePackage = (name) => CORE_PACKAGE_PATTERN.test(name);
62
8
  const hasCorePackageDependency = (dependencies) => {
@@ -64,7 +10,42 @@ const hasCorePackageDependency = (dependencies) => {
64
10
  return false;
65
11
  return Object.keys(dependencies).some(isCorePackage);
66
12
  };
67
- export const loadPackage = async (packagePath, cache, preprocessPackage, options) => {
13
+ const loadResources = async (packagePath, packageJson, cache, mode, patches, report) => {
14
+ const pkgId = `${packageJson.name}@${packageJson.version}`;
15
+ if (mode === "regenerate" || !(await fileExists(path.join(packagePath, ".index.json")))) {
16
+ const count = commitEntries(cache, packageJson, await collectFromDirectory(packagePath), patches, report);
17
+ if (count > 0) {
18
+ console.warn(`Warning: index generated for ${packageJson.name} (${count} resources)`);
19
+ }
20
+ return { count, usedIndex: false };
21
+ }
22
+ const { result, entries } = await collectFromIndex(packagePath);
23
+ if (!result.ok) {
24
+ if (mode === "recover") {
25
+ console.warn(`Recovered ${pkgId}: .index.json is ${result.reason}; scanning directory instead.`);
26
+ const count = commitEntries(cache, packageJson, await collectFromDirectory(packagePath), patches, report);
27
+ report({
28
+ kind: "index-recovery",
29
+ package: { name: packageJson.name, version: packageJson.version },
30
+ reason: result.reason,
31
+ recovered: count,
32
+ });
33
+ return { count, usedIndex: false };
34
+ }
35
+ const count = commitEntries(cache, packageJson, entries, patches, report);
36
+ console.warn(`Warning: ${pkgId} .index.json is ${result.reason}; loaded ${count} resource(s). ` +
37
+ `Set packageIndex: "recover" to fall back to a directory scan.`);
38
+ return { count, usedIndex: true };
39
+ }
40
+ let count = commitEntries(cache, packageJson, entries, patches, report);
41
+ const examplesPath = path.join(packagePath, "examples");
42
+ if (await fileExists(path.join(examplesPath, ".index.json"))) {
43
+ count += commitEntries(cache, packageJson, (await collectFromIndex(examplesPath)).entries, patches, report);
44
+ }
45
+ return { count, usedIndex: true };
46
+ };
47
+ export const loadPackage = async (packagePath, cache, options) => {
48
+ const { packageIndexMode: mode, patches, report } = options;
68
49
  const packageJsonPath = path.join(packagePath, "package.json");
69
50
  if (!(await fileExists(packageJsonPath)))
70
51
  return undefined;
@@ -72,15 +53,9 @@ export const loadPackage = async (packagePath, cache, preprocessPackage, options
72
53
  try {
73
54
  const content = await fs.readFile(packageJsonPath, "utf-8");
74
55
  let parsed = JSON.parse(content);
75
- if (preprocessPackage) {
76
- const result = preprocessPackage({
77
- kind: "package",
78
- packageJson: parsed,
79
- package: { name: parsed.name, version: parsed.version },
80
- });
81
- if (result.kind === "package")
82
- parsed = result.packageJson;
83
- }
56
+ const result = applyPatches(patches.packageJson, { name: parsed.name, version: parsed.version }, parsed, report);
57
+ if (result)
58
+ parsed = result;
84
59
  packageJson = parsed;
85
60
  }
86
61
  catch {
@@ -93,28 +68,13 @@ export const loadPackage = async (packagePath, cache, preprocessPackage, options
93
68
  fhirVersions: packageJson.fhirVersions,
94
69
  packageJson,
95
70
  };
96
- const hasIndex = !options?.ignorePackageIndex && (await fileExists(path.join(packagePath, ".index.json")));
71
+ const { count, usedIndex } = await loadResources(packagePath, packageJson, cache, mode, patches, report);
72
+ if (count === 0)
73
+ return undefined;
97
74
  const hasFhirVersions = Array.isArray(packageJson.fhirVersions) && packageJson.fhirVersions.length > 0;
98
75
  const hasCoreDep = isCorePackage(packageJson.name) || hasCorePackageDependency(packageJson.dependencies);
99
- let resourceCount = 0;
100
- if (hasIndex) {
101
- await processIndex(packagePath, packageJson, cache);
102
- const examplesPath = path.join(packagePath, "examples");
103
- if (await fileExists(path.join(examplesPath, ".index.json"))) {
104
- await processIndex(examplesPath, packageJson, cache);
105
- }
106
- resourceCount = 1;
107
- }
108
- else {
109
- resourceCount = await scanDirectoryForResources(packagePath, packageJson, cache);
110
- if (resourceCount > 0) {
111
- console.warn(`Warning: index generated for ${packageJson.name} (${resourceCount} resources)`);
112
- }
113
- }
114
- if (resourceCount === 0)
115
- return undefined;
116
76
  const issues = [];
117
- if (!hasIndex)
77
+ if (!usedIndex)
118
78
  issues.push("no .index.json");
119
79
  if (!hasFhirVersions)
120
80
  issues.push("no fhirVersions");
@@ -1 +1 @@
1
- {"version":3,"file":"package.js","sourceRoot":"","sources":["../../src/scanner/package.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"package.js","sourceRoot":"","sources":["../../src/scanner/package.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,26 @@
1
1
  import type { ExtendedCache } from "../cache.js";
2
- import type { PackageJson } from "../types/index.js";
2
+ import type { PackageJson, Patches, PatchReportSink } from "../types/index.js";
3
+ export type CollectedEntry = {
4
+ filePath: string;
5
+ resourceType: string;
6
+ url: string;
7
+ version?: string;
8
+ kind?: string;
9
+ type?: string;
10
+ indexVersion: number;
11
+ };
12
+ export type IndexLoadResult = {
13
+ ok: true;
14
+ count: number;
15
+ } | {
16
+ ok: false;
17
+ reason: "unparseable" | "missing-files";
18
+ };
19
+ export declare const collectFromIndex: (basePath: string) => Promise<{
20
+ result: IndexLoadResult;
21
+ entries: CollectedEntry[];
22
+ }>;
23
+ export declare const collectFromDirectory: (dirPath: string) => Promise<CollectedEntry[]>;
24
+ export declare const commitEntries: (cache: ExtendedCache, packageJson: PackageJson, entries: CollectedEntry[], patches?: Patches, report?: PatchReportSink) => number;
3
25
  export declare const processIndex: (basePath: string, packageJson: PackageJson, cache: ExtendedCache) => Promise<void>;
4
26
  //# sourceMappingURL=processor.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"processor.d.ts","sourceRoot":"","sources":["../../src/scanner/processor.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAEjD,OAAO,KAAK,EAAc,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAGjE,eAAO,MAAM,YAAY,GAAU,UAAU,MAAM,EAAE,aAAa,WAAW,EAAE,OAAO,aAAa,KAAG,OAAO,CAAC,IAAI,CAkEjH,CAAC"}
1
+ {"version":3,"file":"processor.d.ts","sourceRoot":"","sources":["../../src/scanner/processor.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAGjD,OAAO,KAAK,EAAc,WAAW,EAAE,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAI3F,MAAM,MAAM,cAAc,GAAG;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,MAAM,CAAC;CACxB,CAAC;AAGF,MAAM,MAAM,eAAe,GAAG;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,aAAa,GAAG,eAAe,CAAA;CAAE,CAAC;AAOnH,eAAO,MAAM,gBAAgB,GACzB,UAAU,MAAM,KACjB,OAAO,CAAC;IAAE,MAAM,EAAE,eAAe,CAAC;IAAC,OAAO,EAAE,cAAc,EAAE,CAAA;CAAE,CAqChE,CAAC;AAOF,eAAO,MAAM,oBAAoB,GAAU,SAAS,MAAM,KAAG,OAAO,CAAC,cAAc,EAAE,CA+BpF,CAAC;AAQF,eAAO,MAAM,aAAa,GACtB,OAAO,aAAa,EACpB,aAAa,WAAW,EACxB,SAAS,cAAc,EAAE,EACzB,UAAU,OAAO,EACjB,SAAS,eAAe,KACzB,MA8CF,CAAC;AAMF,eAAO,MAAM,YAAY,GAAU,UAAU,MAAM,EAAE,aAAa,WAAW,EAAE,OAAO,aAAa,KAAG,OAAO,CAAC,IAAI,CAQjH,CAAC"}
@@ -1,62 +1,124 @@
1
1
  import * as fs from "node:fs/promises";
2
2
  import * as path from "node:path";
3
3
  import { fileExists } from "../fs/index.js";
4
+ import { applyPatches } from "../patches.js";
4
5
  import { parseIndex } from "./parser.js";
5
- export const processIndex = async (basePath, packageJson, cache) => {
6
+ export const collectFromIndex = async (basePath) => {
6
7
  const indexPath = path.join(basePath, ".index.json");
8
+ let indexContent;
7
9
  try {
8
- const indexContent = await fs.readFile(indexPath, "utf-8");
9
- const index = parseIndex(indexContent, indexPath);
10
- if (!index)
11
- return;
12
- let missingCount = 0;
13
- for (const file of index.files) {
14
- if (!file.url)
10
+ indexContent = await fs.readFile(indexPath, "utf-8");
11
+ }
12
+ catch {
13
+ return { result: { ok: false, reason: "unparseable" }, entries: [] };
14
+ }
15
+ const index = parseIndex(indexContent, indexPath);
16
+ if (!index)
17
+ return { result: { ok: false, reason: "unparseable" }, entries: [] };
18
+ const entries = [];
19
+ let missingCount = 0;
20
+ for (const file of index.files) {
21
+ if (!file.url)
22
+ continue;
23
+ const filePath = path.join(basePath, file.filename);
24
+ if (!(await fileExists(filePath))) {
25
+ missingCount++;
26
+ continue;
27
+ }
28
+ entries.push({
29
+ filePath,
30
+ resourceType: file.resourceType,
31
+ url: file.url,
32
+ version: file.version,
33
+ kind: file.kind,
34
+ type: file.type,
35
+ indexVersion: index["index-version"],
36
+ });
37
+ }
38
+ if (missingCount > 0)
39
+ return { result: { ok: false, reason: "missing-files" }, entries };
40
+ return { result: { ok: true, count: entries.length }, entries };
41
+ };
42
+ export const collectFromDirectory = async (dirPath) => {
43
+ const entries = [];
44
+ try {
45
+ const dirents = await fs.readdir(dirPath, { withFileTypes: true });
46
+ for (const dirent of dirents) {
47
+ if (!dirent.isFile() || !dirent.name.endsWith(".json"))
15
48
  continue;
16
- const filePath = path.join(basePath, file.filename);
17
- if (!(await fileExists(filePath))) {
18
- missingCount++;
49
+ if (dirent.name === "package.json" || dirent.name === ".index.json")
19
50
  continue;
51
+ const filePath = path.join(dirPath, dirent.name);
52
+ try {
53
+ const resource = JSON.parse(await fs.readFile(filePath, "utf-8"));
54
+ if (!resource.resourceType || !resource.url)
55
+ continue;
56
+ entries.push({
57
+ filePath,
58
+ resourceType: resource.resourceType,
59
+ url: resource.url,
60
+ version: resource.version,
61
+ kind: resource.kind,
62
+ type: resource.type,
63
+ indexVersion: 0,
64
+ });
20
65
  }
21
- const id = cache.referenceManager.generateId({
22
- packageName: packageJson.name,
23
- packageVersion: packageJson.version,
24
- filePath,
25
- });
26
- cache.referenceManager.set(id, {
27
- packageName: packageJson.name,
28
- packageVersion: packageJson.version,
29
- filePath,
30
- resourceType: file.resourceType,
31
- url: file.url,
32
- version: file.version,
33
- });
34
- const entry = {
35
- id,
36
- resourceType: file.resourceType,
37
- indexVersion: index["index-version"],
38
- url: file.url,
39
- version: file.version,
40
- kind: file.kind,
41
- type: file.type,
42
- package: {
43
- name: packageJson.name,
44
- version: packageJson.version,
45
- },
46
- };
47
- if (!cache.entries[file.url]) {
48
- cache.entries[file.url] = [];
49
- }
50
- const entries = cache.entries[file.url];
51
- if (entries) {
52
- entries.push(entry);
66
+ catch {
53
67
  }
54
68
  }
55
- if (missingCount > 0) {
56
- console.warn(`Warning: ${packageJson.name}@${packageJson.version} .index.json references ${missingCount} file(s) not found on disk — index may be corrupt`);
57
- }
58
69
  }
59
70
  catch {
60
71
  }
72
+ return entries;
73
+ };
74
+ export const commitEntries = (cache, packageJson, entries, patches, report) => {
75
+ const pkg = { name: packageJson.name, version: packageJson.version };
76
+ let committed = 0;
77
+ for (const entry of entries) {
78
+ const id = cache.referenceManager.generateId({
79
+ packageName: packageJson.name,
80
+ packageVersion: packageJson.version,
81
+ filePath: entry.filePath,
82
+ });
83
+ let indexEntry = {
84
+ id,
85
+ resourceType: entry.resourceType,
86
+ indexVersion: entry.indexVersion,
87
+ url: entry.url,
88
+ version: entry.version,
89
+ kind: entry.kind,
90
+ type: entry.type,
91
+ package: pkg,
92
+ };
93
+ if (patches?.indexEntry.length && report) {
94
+ const result = applyPatches(patches.indexEntry, pkg, indexEntry, report);
95
+ if (result === null)
96
+ continue;
97
+ indexEntry = result;
98
+ }
99
+ const url = indexEntry.url;
100
+ if (!url)
101
+ continue;
102
+ cache.referenceManager.set(id, {
103
+ packageName: packageJson.name,
104
+ packageVersion: packageJson.version,
105
+ filePath: entry.filePath,
106
+ resourceType: indexEntry.resourceType,
107
+ url,
108
+ version: indexEntry.version,
109
+ });
110
+ if (!cache.entries[url])
111
+ cache.entries[url] = [];
112
+ cache.entries[url]?.push(indexEntry);
113
+ committed++;
114
+ }
115
+ return committed;
116
+ };
117
+ export const processIndex = async (basePath, packageJson, cache) => {
118
+ const { result, entries } = await collectFromIndex(basePath);
119
+ commitEntries(cache, packageJson, entries);
120
+ if (!result.ok && result.reason === "missing-files") {
121
+ console.warn(`Warning: ${packageJson.name}@${packageJson.version} .index.json references file(s) not found on disk — index may be corrupt`);
122
+ }
61
123
  };
62
124
  //# sourceMappingURL=processor.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"processor.js","sourceRoot":"","sources":["../../src/scanner/processor.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACvC,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAElC,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAE5C,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC,MAAM,CAAC,MAAM,YAAY,GAAG,KAAK,EAAE,QAAgB,EAAE,WAAwB,EAAE,KAAoB,EAAiB,EAAE;IAClH,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC;IAErD,IAAI,CAAC;QACD,MAAM,YAAY,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QAC3D,MAAM,KAAK,GAAG,UAAU,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC;QAElD,IAAI,CAAC,KAAK;YAAE,OAAO;QAEnB,IAAI,YAAY,GAAG,CAAC,CAAC;QACrB,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;YAC7B,IAAI,CAAC,IAAI,CAAC,GAAG;gBAAE,SAAS;YAExB,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;YAEpD,IAAI,CAAC,CAAC,MAAM,UAAU,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC;gBAChC,YAAY,EAAE,CAAC;gBACf,SAAS;YACb,CAAC;YAED,MAAM,EAAE,GAAG,KAAK,CAAC,gBAAgB,CAAC,UAAU,CAAC;gBACzC,WAAW,EAAE,WAAW,CAAC,IAAI;gBAC7B,cAAc,EAAE,WAAW,CAAC,OAAO;gBACnC,QAAQ;aACX,CAAC,CAAC;YAEH,KAAK,CAAC,gBAAgB,CAAC,GAAG,CAAC,EAAE,EAAE;gBAC3B,WAAW,EAAE,WAAW,CAAC,IAAI;gBAC7B,cAAc,EAAE,WAAW,CAAC,OAAO;gBACnC,QAAQ;gBACR,YAAY,EAAE,IAAI,CAAC,YAAY;gBAC/B,GAAG,EAAE,IAAI,CAAC,GAAG;gBACb,OAAO,EAAE,IAAI,CAAC,OAAO;aACxB,CAAC,CAAC;YAEH,MAAM,KAAK,GAAe;gBACtB,EAAE;gBACF,YAAY,EAAE,IAAI,CAAC,YAAY;gBAC/B,YAAY,EAAE,KAAK,CAAC,eAAe,CAAC;gBACpC,GAAG,EAAE,IAAI,CAAC,GAAG;gBACb,OAAO,EAAE,IAAI,CAAC,OAAO;gBACrB,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,OAAO,EAAE;oBACL,IAAI,EAAE,WAAW,CAAC,IAAI;oBACtB,OAAO,EAAE,WAAW,CAAC,OAAO;iBAC/B;aACJ,CAAC;YAEF,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC3B,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;YACjC,CAAC;YACD,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACxC,IAAI,OAAO,EAAE,CAAC;gBACV,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACxB,CAAC;QACL,CAAC;QAED,IAAI,YAAY,GAAG,CAAC,EAAE,CAAC;YACnB,OAAO,CAAC,IAAI,CACR,YAAY,WAAW,CAAC,IAAI,IAAI,WAAW,CAAC,OAAO,2BAA2B,YAAY,mDAAmD,CAChJ,CAAC;QACN,CAAC;IACL,CAAC;IAAC,MAAM,CAAC;IAET,CAAC;AACL,CAAC,CAAC"}
1
+ {"version":3,"file":"processor.js","sourceRoot":"","sources":["../../src/scanner/processor.ts"],"names":[],"mappings":"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"}