@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.
- package/LICENSE +21 -0
- package/README.md +96 -3
- package/dist/cache.js +1 -1
- package/dist/cache.js.map +1 -1
- package/dist/cli/search.d.ts.map +1 -1
- package/dist/cli/search.js +14 -16
- package/dist/cli/search.js.map +1 -1
- package/dist/index.d.ts +2 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -4
- package/dist/index.js.map +1 -1
- package/dist/local.js.map +1 -1
- package/dist/manager/canonical.d.ts.map +1 -1
- package/dist/manager/canonical.js +57 -13
- package/dist/manager/canonical.js.map +1 -1
- package/dist/package.d.ts.map +1 -1
- package/dist/package.js.map +1 -1
- package/dist/patches.d.ts +10 -0
- package/dist/patches.d.ts.map +1 -0
- package/dist/patches.js +27 -0
- package/dist/patches.js.map +1 -0
- package/dist/reference.d.ts +3 -4
- package/dist/reference.d.ts.map +1 -1
- package/dist/reference.js +0 -1
- package/dist/reference.js.map +1 -1
- package/dist/scanner/directory.d.ts +2 -4
- package/dist/scanner/directory.d.ts.map +1 -1
- package/dist/scanner/directory.js +3 -3
- package/dist/scanner/directory.js.map +1 -1
- package/dist/scanner/index.d.ts +2 -2
- package/dist/scanner/index.d.ts.map +1 -1
- package/dist/scanner/index.js +1 -1
- package/dist/scanner/index.js.map +1 -1
- package/dist/scanner/package.d.ts +7 -4
- package/dist/scanner/package.d.ts.map +1 -1
- package/dist/scanner/package.js +45 -85
- package/dist/scanner/package.js.map +1 -1
- package/dist/scanner/processor.d.ts +23 -1
- package/dist/scanner/processor.d.ts.map +1 -1
- package/dist/scanner/processor.js +108 -46
- package/dist/scanner/processor.js.map +1 -1
- package/dist/types/core.d.ts +44 -18
- package/dist/types/core.d.ts.map +1 -1
- package/dist/types/internal.d.ts +3 -3
- package/dist/types/internal.d.ts.map +1 -1
- package/package.json +8 -1
- package/dist/manager/index.d.ts +0 -2
- package/dist/manager/index.d.ts.map +0 -1
- package/dist/manager/index.js +0 -2
- package/dist/manager/index.js.map +0 -1
package/dist/reference.d.ts.map
CHANGED
|
@@ -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;
|
|
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
package/dist/reference.js.map
CHANGED
|
@@ -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
|
|
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
|
|
3
|
-
export declare const loadPackagesIntoCache: (cache: ExtendedCache, pwd: string,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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;
|
|
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"}
|
package/dist/scanner/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
export { loadPackagesIntoCache
|
|
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,
|
|
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"}
|
package/dist/scanner/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { loadPackagesIntoCache
|
|
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,
|
|
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 {
|
|
3
|
-
export
|
|
4
|
-
|
|
5
|
-
|
|
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;
|
|
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"}
|
package/dist/scanner/package.js
CHANGED
|
@@ -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 {
|
|
5
|
-
|
|
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
|
-
|
|
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
|
-
|
|
76
|
-
|
|
77
|
-
|
|
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
|
|
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 (!
|
|
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":"AAIA,OAAO,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACvC,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAElC,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;
|
|
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;
|
|
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
|
|
6
|
+
export const collectFromIndex = async (basePath) => {
|
|
6
7
|
const indexPath = path.join(basePath, ".index.json");
|
|
8
|
+
let indexContent;
|
|
7
9
|
try {
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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;
|
|
1
|
+
{"version":3,"file":"processor.js","sourceRoot":"","sources":["../../src/scanner/processor.ts"],"names":[],"mappings":"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"}
|