@atomic-ehr/fhir-canonical-manager 0.0.14 → 0.0.15
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/dist/cache.d.ts +2 -1
- package/dist/cache.d.ts.map +1 -1
- package/dist/cache.js +3 -2
- package/dist/cache.js.map +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/manager/canonical.d.ts.map +1 -1
- package/dist/manager/canonical.js +41 -13
- package/dist/manager/canonical.js.map +1 -1
- package/dist/{reference/manager.d.ts → reference.d.ts} +8 -3
- package/dist/reference.d.ts.map +1 -0
- package/dist/{reference/manager.js → reference.js} +7 -2
- package/dist/reference.js.map +1 -0
- package/dist/{resolver/context.d.ts → resolver.d.ts} +3 -3
- package/dist/resolver.d.ts.map +1 -0
- package/dist/{resolver/context.js → resolver.js} +1 -1
- package/dist/resolver.js.map +1 -0
- package/dist/types/core.d.ts +2 -2
- package/dist/types/core.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/cache.ts +3 -2
- package/src/index.ts +2 -2
- package/src/manager/canonical.ts +46 -14
- package/src/{reference/manager.ts → reference.ts} +25 -3
- package/src/resolver.ts +38 -0
- package/src/types/core.ts +2 -2
- package/dist/reference/index.d.ts +0 -4
- package/dist/reference/index.d.ts.map +0 -1
- package/dist/reference/index.js +0 -3
- package/dist/reference/index.js.map +0 -1
- package/dist/reference/manager.d.ts.map +0 -1
- package/dist/reference/manager.js.map +0 -1
- package/dist/reference/store.d.ts +0 -6
- package/dist/reference/store.d.ts.map +0 -1
- package/dist/reference/store.js +0 -6
- package/dist/reference/store.js.map +0 -1
- package/dist/resolver/context.d.ts.map +0 -1
- package/dist/resolver/context.js.map +0 -1
- package/dist/resolver/index.d.ts +0 -2
- package/dist/resolver/index.d.ts.map +0 -1
- package/dist/resolver/index.js +0 -2
- package/dist/resolver/index.js.map +0 -1
- package/src/reference/index.ts +0 -8
- package/src/reference/store.ts +0 -14
- package/src/resolver/context.ts +0 -25
- package/src/resolver/index.ts +0 -5
package/dist/cache.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { type ReferenceManager } from "./reference
|
|
1
|
+
import { type ReferenceManager } from "./reference.js";
|
|
2
2
|
import type { CacheData, CacheKey, IndexCache } from "./types/index.js";
|
|
3
3
|
export interface ExtendedCache extends IndexCache {
|
|
4
4
|
referenceManager: ReferenceManager;
|
|
@@ -9,6 +9,7 @@ export declare const cacheRecordPaths: (pwd: string, packages: string[]) => {
|
|
|
9
9
|
cacheRecordPath: string;
|
|
10
10
|
cacheIndexFile: string;
|
|
11
11
|
npmPackagePath: string;
|
|
12
|
+
npmRootPackageJsonFile: string;
|
|
12
13
|
};
|
|
13
14
|
export declare const createCacheRecord: () => ExtendedCache;
|
|
14
15
|
export declare const loadCacheRecordFromDisk: (pwd: string, cacheKey: CacheKey) => Promise<CacheData | undefined>;
|
package/dist/cache.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cache.d.ts","sourceRoot":"","sources":["../src/cache.ts"],"names":[],"mappings":"AAGA,OAAO,EAA0B,KAAK,gBAAgB,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"cache.d.ts","sourceRoot":"","sources":["../src/cache.ts"],"names":[],"mappings":"AAGA,OAAO,EAA0B,KAAK,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAC/E,OAAO,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAExE,MAAM,WAAW,aAAc,SAAQ,UAAU;IAC7C,gBAAgB,EAAE,gBAAgB,CAAC;CACtC;AAED,eAAO,MAAM,eAAe,GAAI,UAAU,MAAM,EAAE,KAAG,QAIpD,CAAC;AAUF,eAAO,MAAM,gBAAgB,GAAI,KAAK,MAAM,EAAE,UAAU,MAAM,EAAE;;;;;;CAG/D,CAAC;AAEF,eAAO,MAAM,iBAAiB,QAAO,aAOpC,CAAC;AAEF,eAAO,MAAM,uBAAuB,GAAU,KAAK,MAAM,EAAE,UAAU,QAAQ,KAAG,OAAO,CAAC,SAAS,GAAG,SAAS,CAQ5G,CAAC;AAEF,eAAO,MAAM,qBAAqB,GAAU,OAAO,aAAa,EAAE,KAAK,MAAM,EAAE,UAAU,QAAQ,KAAG,OAAO,CAAC,IAAI,CAU/G,CAAC"}
|
package/dist/cache.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { createHash } from "node:crypto";
|
|
2
2
|
import * as afs from "node:fs/promises";
|
|
3
3
|
import * as Path from "node:path";
|
|
4
|
-
import { createReferenceManager } from "./reference
|
|
4
|
+
import { createReferenceManager } from "./reference.js";
|
|
5
5
|
export const computeCacheKey = (packages) => {
|
|
6
6
|
const content = JSON.stringify(packages.toSorted());
|
|
7
7
|
const hash = createHash("sha256").update(content).digest("hex");
|
|
@@ -10,8 +10,9 @@ export const computeCacheKey = (packages) => {
|
|
|
10
10
|
const cacheRecordPathsFromKey = (pwd, cacheKey) => {
|
|
11
11
|
const cacheRecordPath = Path.join(pwd, cacheKey);
|
|
12
12
|
const npmPackagePath = Path.join(process.cwd(), cacheRecordPath, "node");
|
|
13
|
+
const npmRootPackageJsonFile = Path.join(npmPackagePath, "package.json");
|
|
13
14
|
const cacheIndexFile = Path.join(cacheRecordPath, "index.json");
|
|
14
|
-
return { cacheKey, cacheRecordPath, cacheIndexFile, npmPackagePath };
|
|
15
|
+
return { cacheKey, cacheRecordPath, cacheIndexFile, npmPackagePath, npmRootPackageJsonFile };
|
|
15
16
|
};
|
|
16
17
|
export const cacheRecordPaths = (pwd, packages) => {
|
|
17
18
|
const cacheKey = computeCacheKey(packages);
|
package/dist/cache.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cache.js","sourceRoot":"","sources":["../src/cache.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,KAAK,GAAG,MAAM,kBAAkB,CAAC;AACxC,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,EAAE,sBAAsB,EAAyB,MAAM,
|
|
1
|
+
{"version":3,"file":"cache.js","sourceRoot":"","sources":["../src/cache.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
export { CanonicalManager, createCanonicalManager } from "./manager/index.js";
|
|
2
|
-
export type { ReferenceManager as ReferenceManagerType } from "./reference
|
|
3
|
-
export { createReferenceManager, ReferenceManagerFactory as ReferenceManager } from "./reference
|
|
2
|
+
export type { ReferenceManager as ReferenceManagerType } from "./reference.js";
|
|
3
|
+
export { createReferenceManager, ReferenceManagerFactory as ReferenceManager } from "./reference.js";
|
|
4
4
|
export type { CanonicalManager as TCanonicalManager } from "./types/core.js";
|
|
5
5
|
export * from "./types/index.js";
|
|
6
6
|
import { createCanonicalManager } from "./manager/index.js";
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AAC9E,YAAY,EAAE,gBAAgB,IAAI,oBAAoB,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AAC9E,YAAY,EAAE,gBAAgB,IAAI,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAE/E,OAAO,EAAE,sBAAsB,EAAE,uBAAuB,IAAI,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAErG,YAAY,EAAE,gBAAgB,IAAI,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAE7E,cAAc,kBAAkB,CAAC;AAGjC,OAAO,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AAC5D,eAAe,sBAAsB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export { CanonicalManager, createCanonicalManager } from "./manager/index.js";
|
|
2
|
-
export { createReferenceManager, ReferenceManagerFactory as ReferenceManager } from "./reference
|
|
2
|
+
export { createReferenceManager, ReferenceManagerFactory as ReferenceManager } from "./reference.js";
|
|
3
3
|
export * from "./types/index.js";
|
|
4
4
|
import { createCanonicalManager } from "./manager/index.js";
|
|
5
5
|
export default createCanonicalManager;
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AAG9E,OAAO,EAAE,sBAAsB,EAAE,uBAAuB,IAAI,gBAAgB,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AAG9E,OAAO,EAAE,sBAAsB,EAAE,uBAAuB,IAAI,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAIrG,cAAc,kBAAkB,CAAC;AAGjC,OAAO,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AAC5D,eAAe,sBAAsB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"canonical.d.ts","sourceRoot":"","sources":["../../src/manager/canonical.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EACR,gBAAgB,EAChB,MAAM,EAQT,MAAM,mBAAmB,CAAC;AAE3B,eAAO,MAAM,sBAAsB,GAAI,QAAQ,MAAM,KAAG,
|
|
1
|
+
{"version":3,"file":"canonical.d.ts","sourceRoot":"","sources":["../../src/manager/canonical.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EACR,gBAAgB,EAChB,MAAM,EAQT,MAAM,mBAAmB,CAAC;AAE3B,eAAO,MAAM,sBAAsB,GAAI,QAAQ,MAAM,KAAG,gBA6UvD,CAAC"}
|
|
@@ -4,7 +4,7 @@ import { cacheRecordPaths, createCacheRecord, loadCacheRecordFromDisk, saveCache
|
|
|
4
4
|
import { DEFAULT_REGISTRY } from "../constants.js";
|
|
5
5
|
import { ensureDir } from "../fs/index.js";
|
|
6
6
|
import { installPackages } from "../package.js";
|
|
7
|
-
import { resolveWithContext } from "../resolver
|
|
7
|
+
import { resolveWithContext } from "../resolver.js";
|
|
8
8
|
import { scanDirectory } from "../scanner/index.js";
|
|
9
9
|
import { filterBySmartSearch } from "../search/index.js";
|
|
10
10
|
export const createCanonicalManager = (config) => {
|
|
@@ -21,9 +21,35 @@ export const createCanonicalManager = (config) => {
|
|
|
21
21
|
throw new Error("CanonicalManager not initialized. Call init() first.");
|
|
22
22
|
}
|
|
23
23
|
};
|
|
24
|
+
const packageRefToPackageMeta = async () => {
|
|
25
|
+
ensureInitialized();
|
|
26
|
+
const { npmRootPackageJsonFile } = cacheRecordPaths(workingDir, packages);
|
|
27
|
+
const rootPackageDeps = JSON.parse(await afs.readFile(npmRootPackageJsonFile, "utf8")).dependencies ?? {};
|
|
28
|
+
const res = {};
|
|
29
|
+
for (const pkgRef of packages) {
|
|
30
|
+
if (pkgRef.startsWith("http://") || pkgRef.startsWith("https://")) {
|
|
31
|
+
for (const [depName, depVersion] of Object.entries(rootPackageDeps)) {
|
|
32
|
+
if (depVersion === pkgRef) {
|
|
33
|
+
const packageInfo = cache.packages[depName];
|
|
34
|
+
if (!packageInfo)
|
|
35
|
+
throw new Error(`Package not found: ${depName}`);
|
|
36
|
+
res[pkgRef] = { name: packageInfo.id.name, version: packageInfo.id.version };
|
|
37
|
+
break;
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
else {
|
|
42
|
+
const [name, version] = pkgRef.split("@");
|
|
43
|
+
if (!name)
|
|
44
|
+
throw new Error(`Invalid FHIR package meta: ${pkgRef}`);
|
|
45
|
+
res[pkgRef] = { name, version: version ?? "latest" };
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
return res;
|
|
49
|
+
};
|
|
24
50
|
const init = async () => {
|
|
25
51
|
if (initialized)
|
|
26
|
-
return;
|
|
52
|
+
return packageRefToPackageMeta();
|
|
27
53
|
await ensureDir(workingDir);
|
|
28
54
|
const { cacheKey, npmPackagePath } = cacheRecordPaths(workingDir, packages);
|
|
29
55
|
const cachedData = await loadCacheRecordFromDisk(workingDir, cacheKey);
|
|
@@ -41,6 +67,7 @@ export const createCanonicalManager = (config) => {
|
|
|
41
67
|
await saveCacheRecordToDisk(cache, workingDir, cacheKey);
|
|
42
68
|
}
|
|
43
69
|
initialized = true;
|
|
70
|
+
return packageRefToPackageMeta();
|
|
44
71
|
};
|
|
45
72
|
const destroy = async () => {
|
|
46
73
|
cache.entries = {};
|
|
@@ -55,20 +82,20 @@ export const createCanonicalManager = (config) => {
|
|
|
55
82
|
};
|
|
56
83
|
const addPackages = async (...newPackages) => {
|
|
57
84
|
if (newPackages.length === 0)
|
|
58
|
-
return;
|
|
85
|
+
return packageRefToPackageMeta();
|
|
59
86
|
const packagesToAdd = newPackages.filter((pkg) => !packages.includes(pkg));
|
|
60
87
|
if (packagesToAdd.length !== 0) {
|
|
61
88
|
packages.push(...packagesToAdd);
|
|
62
89
|
}
|
|
63
90
|
if (!initialized) {
|
|
64
91
|
await init();
|
|
65
|
-
return;
|
|
92
|
+
return packageRefToPackageMeta();
|
|
66
93
|
}
|
|
67
94
|
if (packagesToAdd.length > 0) {
|
|
68
95
|
await destroy();
|
|
69
96
|
await init();
|
|
70
97
|
}
|
|
71
|
-
return;
|
|
98
|
+
return packageRefToPackageMeta();
|
|
72
99
|
};
|
|
73
100
|
const resolveEntry = async (canonicalUrl, options) => {
|
|
74
101
|
ensureInitialized();
|
|
@@ -192,6 +219,14 @@ export const createCanonicalManager = (config) => {
|
|
|
192
219
|
searchParamsCache.set(resourceType, results);
|
|
193
220
|
return results;
|
|
194
221
|
};
|
|
222
|
+
const packageJson = async (packageName) => {
|
|
223
|
+
ensureInitialized();
|
|
224
|
+
const fn = cache.packages[packageName]?.path;
|
|
225
|
+
if (!fn)
|
|
226
|
+
throw new Error(`Package ${packageName} not found`);
|
|
227
|
+
const packageJSON = JSON.parse(await afs.readFile(Path.join(fn, "package.json"), "utf8"));
|
|
228
|
+
return packageJSON;
|
|
229
|
+
};
|
|
195
230
|
return {
|
|
196
231
|
init,
|
|
197
232
|
destroy,
|
|
@@ -204,14 +239,7 @@ export const createCanonicalManager = (config) => {
|
|
|
204
239
|
search,
|
|
205
240
|
smartSearch,
|
|
206
241
|
getSearchParametersForResource,
|
|
207
|
-
packageJson
|
|
208
|
-
ensureInitialized();
|
|
209
|
-
const fn = cache.packages[packageName]?.path;
|
|
210
|
-
if (!fn)
|
|
211
|
-
throw new Error(`Package ${packageName} not found`);
|
|
212
|
-
const packageJSON = JSON.parse(await afs.readFile(Path.join(fn, "package.json"), "utf8"));
|
|
213
|
-
return packageJSON;
|
|
214
|
-
},
|
|
242
|
+
packageJson,
|
|
215
243
|
};
|
|
216
244
|
};
|
|
217
245
|
//# sourceMappingURL=canonical.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"canonical.js","sourceRoot":"","sources":["../../src/manager/canonical.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,GAAG,MAAM,kBAAkB,CAAC;AACxC,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,uBAAuB,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAClH,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,kBAAkB,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"canonical.js","sourceRoot":"","sources":["../../src/manager/canonical.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,9 @@
|
|
|
1
|
-
import type { Reference, ReferenceMetadata, ReferenceStore } from "
|
|
2
|
-
|
|
1
|
+
import type { Reference, ReferenceMetadata, ReferenceStore } from "./types/index.js";
|
|
2
|
+
export declare const generateReferenceId: (metadata: {
|
|
3
|
+
packageName: string;
|
|
4
|
+
packageVersion: string;
|
|
5
|
+
filePath: string;
|
|
6
|
+
}) => string;
|
|
3
7
|
export interface ReferenceManager extends ReferenceStore {
|
|
4
8
|
generateId: typeof generateReferenceId;
|
|
5
9
|
getIdsByUrl: (url: string) => string[];
|
|
@@ -7,4 +11,5 @@ export interface ReferenceManager extends ReferenceStore {
|
|
|
7
11
|
getAllReferences: () => Record<string, ReferenceMetadata>;
|
|
8
12
|
}
|
|
9
13
|
export declare const createReferenceManager: () => ReferenceManager;
|
|
10
|
-
|
|
14
|
+
export { createReferenceManager as ReferenceManagerFactory };
|
|
15
|
+
//# sourceMappingURL=reference.d.ts.map
|
|
@@ -0,0 +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,4 +1,8 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { createHash } from "node:crypto";
|
|
2
|
+
export const generateReferenceId = (metadata) => {
|
|
3
|
+
const input = `${metadata.packageName}@${metadata.packageVersion}:${metadata.filePath}`;
|
|
4
|
+
return createHash("sha256").update(input).digest("base64url");
|
|
5
|
+
};
|
|
2
6
|
export const createReferenceManager = () => {
|
|
3
7
|
const references = {};
|
|
4
8
|
const urlToIds = {};
|
|
@@ -37,4 +41,5 @@ export const createReferenceManager = () => {
|
|
|
37
41
|
getAllReferences: () => references,
|
|
38
42
|
};
|
|
39
43
|
};
|
|
40
|
-
|
|
44
|
+
export { createReferenceManager as ReferenceManagerFactory };
|
|
45
|
+
//# sourceMappingURL=reference.js.map
|
|
@@ -0,0 +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,4 +1,4 @@
|
|
|
1
|
-
import type { ExtendedCache } from "
|
|
2
|
-
import type { IndexEntry, SourceContext } from "
|
|
1
|
+
import type { ExtendedCache } from "./cache.js";
|
|
2
|
+
import type { IndexEntry, SourceContext } from "./types/index.js";
|
|
3
3
|
export declare const resolveWithContext: (url: string, context: SourceContext, _cache: ExtendedCache, resolveEntry: (url: string, options?: any) => Promise<IndexEntry>) => Promise<IndexEntry | null>;
|
|
4
|
-
//# sourceMappingURL=
|
|
4
|
+
//# sourceMappingURL=resolver.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolver.d.ts","sourceRoot":"","sources":["../src/resolver.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,KAAK,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAclE,eAAO,MAAM,kBAAkB,GAC3B,KAAK,MAAM,EACX,SAAS,aAAa,EACtB,QAAQ,aAAa,EACrB,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,KAAK,OAAO,CAAC,UAAU,CAAC,KAClE,OAAO,CAAC,UAAU,GAAG,IAAI,CAY3B,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolver.js","sourceRoot":"","sources":["../src/resolver.ts"],"names":[],"mappings":"AAoBA,MAAM,CAAC,MAAM,kBAAkB,GAAG,KAAK,EACnC,GAAW,EACX,OAAsB,EACtB,MAAqB,EACrB,YAAiE,EACvC,EAAE;IAC5B,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;QAClB,IAAI,CAAC;YACD,OAAO,MAAM,YAAY,CAAC,GAAG,EAAE;gBAC3B,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,IAAI;gBAC7B,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,OAAO;aACnC,CAAC,CAAC;QACP,CAAC;QAAC,MAAM,CAAC;QAET,CAAC;IACL,CAAC;IACD,OAAO,IAAI,CAAC;AAChB,CAAC,CAAC"}
|
package/dist/types/core.d.ts
CHANGED
|
@@ -52,10 +52,10 @@ export interface PackageInfo {
|
|
|
52
52
|
fhirVersions?: string[];
|
|
53
53
|
}
|
|
54
54
|
export interface CanonicalManager {
|
|
55
|
-
init(): Promise<
|
|
55
|
+
init(): Promise<Record<string, PackageId>>;
|
|
56
56
|
destroy(): Promise<void>;
|
|
57
57
|
packages(): Promise<PackageId[]>;
|
|
58
|
-
addPackages(...packageNames: string[]): Promise<
|
|
58
|
+
addPackages(...packageNames: string[]): Promise<Record<string, PackageId>>;
|
|
59
59
|
resolveEntry(canonicalUrl: string, options?: {
|
|
60
60
|
package?: string;
|
|
61
61
|
version?: string;
|
package/dist/types/core.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../../src/types/core.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,SAAS;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,YAAY,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,SAAS;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,UAAW,SAAQ,SAAS;IACzC,YAAY,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,SAAS,CAAC;CACvB;AAED,MAAM,WAAW,QAAS,SAAQ,SAAS;IACvC,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACtB;AAED,MAAM,WAAW,eAAe;IAE5B,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IAGnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,UAAU,CAAC,EAAE,KAAK,CAAC,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC;IACjF,QAAQ,CAAC,EAAE,KAAK,CACV,SAAS,GACT,OAAO,GACP,UAAU,GACV,KAAK,GACL,MAAM,GACN,IAAI,GACJ,QAAQ,GACR,OAAO,GACP,OAAO,GACP,MAAM,GACN,YAAY,GACZ,QAAQ,CACb,CAAC;IAGF,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACtB;AAED,MAAM,WAAW,aAAa;IAC1B,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,OAAO,CAAC,EAAE,SAAS,CAAC;IACpB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,MAAM;IACnB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,WAAW;IACxB,EAAE,EAAE,SAAS,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;CAC3B;AAED,MAAM,WAAW,gBAAgB;IAC7B,IAAI,IAAI,OAAO,CAAC,
|
|
1
|
+
{"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../../src/types/core.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/src/cache.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { createHash } from "node:crypto";
|
|
2
2
|
import * as afs from "node:fs/promises";
|
|
3
3
|
import * as Path from "node:path";
|
|
4
|
-
import { createReferenceManager, type ReferenceManager } from "./reference
|
|
4
|
+
import { createReferenceManager, type ReferenceManager } from "./reference.js";
|
|
5
5
|
import type { CacheData, CacheKey, IndexCache } from "./types/index.js";
|
|
6
6
|
|
|
7
7
|
export interface ExtendedCache extends IndexCache {
|
|
@@ -17,8 +17,9 @@ export const computeCacheKey = (packages: string[]): CacheKey => {
|
|
|
17
17
|
const cacheRecordPathsFromKey = (pwd: string, cacheKey: CacheKey) => {
|
|
18
18
|
const cacheRecordPath = Path.join(pwd, cacheKey);
|
|
19
19
|
const npmPackagePath = Path.join(process.cwd(), cacheRecordPath, "node");
|
|
20
|
+
const npmRootPackageJsonFile = Path.join(npmPackagePath, "package.json");
|
|
20
21
|
const cacheIndexFile = Path.join(cacheRecordPath, "index.json");
|
|
21
|
-
return { cacheKey, cacheRecordPath, cacheIndexFile, npmPackagePath };
|
|
22
|
+
return { cacheKey, cacheRecordPath, cacheIndexFile, npmPackagePath, npmRootPackageJsonFile };
|
|
22
23
|
};
|
|
23
24
|
|
|
24
25
|
export const cacheRecordPaths = (pwd: string, packages: string[]) => {
|
package/src/index.ts
CHANGED
|
@@ -5,9 +5,9 @@
|
|
|
5
5
|
|
|
6
6
|
// Re-export main CanonicalManager factory and class
|
|
7
7
|
export { CanonicalManager, createCanonicalManager } from "./manager/index.js";
|
|
8
|
-
export type { ReferenceManager as ReferenceManagerType } from "./reference
|
|
8
|
+
export type { ReferenceManager as ReferenceManagerType } from "./reference.js";
|
|
9
9
|
// Re-export reference management
|
|
10
|
-
export { createReferenceManager, ReferenceManagerFactory as ReferenceManager } from "./reference
|
|
10
|
+
export { createReferenceManager, ReferenceManagerFactory as ReferenceManager } from "./reference.js";
|
|
11
11
|
// Re-export CanonicalManager type interface with T prefix
|
|
12
12
|
export type { CanonicalManager as TCanonicalManager } from "./types/core.js";
|
|
13
13
|
// Re-export all public types
|
package/src/manager/canonical.ts
CHANGED
|
@@ -8,7 +8,7 @@ import { cacheRecordPaths, createCacheRecord, loadCacheRecordFromDisk, saveCache
|
|
|
8
8
|
import { DEFAULT_REGISTRY } from "../constants.js";
|
|
9
9
|
import { ensureDir } from "../fs/index.js";
|
|
10
10
|
import { installPackages } from "../package.js";
|
|
11
|
-
import { resolveWithContext } from "../resolver
|
|
11
|
+
import { resolveWithContext } from "../resolver.js";
|
|
12
12
|
import { scanDirectory } from "../scanner/index.js";
|
|
13
13
|
import { filterBySmartSearch } from "../search/index.js";
|
|
14
14
|
import type {
|
|
@@ -41,8 +41,37 @@ export const createCanonicalManager = (config: Config): CanonicalManager => {
|
|
|
41
41
|
}
|
|
42
42
|
};
|
|
43
43
|
|
|
44
|
-
const
|
|
45
|
-
|
|
44
|
+
const packageRefToPackageMeta = async () => {
|
|
45
|
+
ensureInitialized();
|
|
46
|
+
const { npmRootPackageJsonFile } = cacheRecordPaths(workingDir, packages);
|
|
47
|
+
const rootPackageDeps =
|
|
48
|
+
(
|
|
49
|
+
JSON.parse(await afs.readFile(npmRootPackageJsonFile, "utf8")) as {
|
|
50
|
+
dependencies?: Record<string, string>;
|
|
51
|
+
}
|
|
52
|
+
).dependencies ?? {};
|
|
53
|
+
const res: Record<string, PackageId> = {};
|
|
54
|
+
for (const pkgRef of packages) {
|
|
55
|
+
if (pkgRef.startsWith("http://") || pkgRef.startsWith("https://")) {
|
|
56
|
+
for (const [depName, depVersion] of Object.entries(rootPackageDeps)) {
|
|
57
|
+
if (depVersion === pkgRef) {
|
|
58
|
+
const packageInfo = cache.packages[depName];
|
|
59
|
+
if (!packageInfo) throw new Error(`Package not found: ${depName}`);
|
|
60
|
+
res[pkgRef] = { name: packageInfo.id.name, version: packageInfo.id.version };
|
|
61
|
+
break;
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
} else {
|
|
65
|
+
const [name, version] = pkgRef.split("@");
|
|
66
|
+
if (!name) throw new Error(`Invalid FHIR package meta: ${pkgRef}`);
|
|
67
|
+
res[pkgRef] = { name, version: version ?? "latest" };
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
return res;
|
|
71
|
+
};
|
|
72
|
+
|
|
73
|
+
const init = async (): Promise<Record<string, PackageId>> => {
|
|
74
|
+
if (initialized) return packageRefToPackageMeta();
|
|
46
75
|
|
|
47
76
|
await ensureDir(workingDir);
|
|
48
77
|
const { cacheKey, npmPackagePath } = cacheRecordPaths(workingDir, packages);
|
|
@@ -63,6 +92,7 @@ export const createCanonicalManager = (config: Config): CanonicalManager => {
|
|
|
63
92
|
}
|
|
64
93
|
|
|
65
94
|
initialized = true;
|
|
95
|
+
return packageRefToPackageMeta();
|
|
66
96
|
};
|
|
67
97
|
|
|
68
98
|
const destroy = async (): Promise<void> => {
|
|
@@ -78,8 +108,8 @@ export const createCanonicalManager = (config: Config): CanonicalManager => {
|
|
|
78
108
|
return Object.values(cache.packages).map((p: PackageInfo) => p.id);
|
|
79
109
|
};
|
|
80
110
|
|
|
81
|
-
const addPackages = async (...newPackages: string[]): Promise<
|
|
82
|
-
if (newPackages.length === 0) return;
|
|
111
|
+
const addPackages = async (...newPackages: string[]): Promise<Record<string, PackageId>> => {
|
|
112
|
+
if (newPackages.length === 0) return packageRefToPackageMeta();
|
|
83
113
|
|
|
84
114
|
// Check if packages already exists in packages
|
|
85
115
|
const packagesToAdd = newPackages.filter((pkg) => !packages.includes(pkg));
|
|
@@ -89,7 +119,7 @@ export const createCanonicalManager = (config: Config): CanonicalManager => {
|
|
|
89
119
|
|
|
90
120
|
if (!initialized) {
|
|
91
121
|
await init();
|
|
92
|
-
return;
|
|
122
|
+
return packageRefToPackageMeta();
|
|
93
123
|
}
|
|
94
124
|
|
|
95
125
|
if (packagesToAdd.length > 0) {
|
|
@@ -97,7 +127,7 @@ export const createCanonicalManager = (config: Config): CanonicalManager => {
|
|
|
97
127
|
await destroy();
|
|
98
128
|
await init();
|
|
99
129
|
}
|
|
100
|
-
return;
|
|
130
|
+
return packageRefToPackageMeta();
|
|
101
131
|
};
|
|
102
132
|
|
|
103
133
|
const resolveEntry = async (
|
|
@@ -304,6 +334,14 @@ export const createCanonicalManager = (config: Config): CanonicalManager => {
|
|
|
304
334
|
return results;
|
|
305
335
|
};
|
|
306
336
|
|
|
337
|
+
const packageJson = async (packageName: string) => {
|
|
338
|
+
ensureInitialized();
|
|
339
|
+
const fn = cache.packages[packageName]?.path;
|
|
340
|
+
if (!fn) throw new Error(`Package ${packageName} not found`);
|
|
341
|
+
const packageJSON = JSON.parse(await afs.readFile(Path.join(fn, "package.json"), "utf8"));
|
|
342
|
+
return packageJSON;
|
|
343
|
+
};
|
|
344
|
+
|
|
307
345
|
return {
|
|
308
346
|
init,
|
|
309
347
|
destroy,
|
|
@@ -316,12 +354,6 @@ export const createCanonicalManager = (config: Config): CanonicalManager => {
|
|
|
316
354
|
search,
|
|
317
355
|
smartSearch,
|
|
318
356
|
getSearchParametersForResource,
|
|
319
|
-
packageJson
|
|
320
|
-
ensureInitialized();
|
|
321
|
-
const fn = cache.packages[packageName]?.path;
|
|
322
|
-
if (!fn) throw new Error(`Package ${packageName} not found`);
|
|
323
|
-
const packageJSON = JSON.parse(await afs.readFile(Path.join(fn, "package.json"), "utf8"));
|
|
324
|
-
return packageJSON;
|
|
325
|
-
},
|
|
357
|
+
packageJson,
|
|
326
358
|
};
|
|
327
359
|
};
|
|
@@ -1,10 +1,26 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Reference
|
|
2
|
+
* Reference management module
|
|
3
|
+
* Merged from reference/index.ts, reference/manager.ts, and reference/store.ts
|
|
3
4
|
*/
|
|
4
5
|
|
|
5
|
-
import
|
|
6
|
-
import {
|
|
6
|
+
import { createHash } from "node:crypto";
|
|
7
|
+
import type { Reference, ReferenceMetadata, ReferenceStore } from "./types/index.js";
|
|
7
8
|
|
|
9
|
+
/**
|
|
10
|
+
* Generate a unique reference ID from metadata
|
|
11
|
+
*/
|
|
12
|
+
export const generateReferenceId = (metadata: {
|
|
13
|
+
packageName: string;
|
|
14
|
+
packageVersion: string;
|
|
15
|
+
filePath: string;
|
|
16
|
+
}): string => {
|
|
17
|
+
const input = `${metadata.packageName}@${metadata.packageVersion}:${metadata.filePath}`;
|
|
18
|
+
return createHash("sha256").update(input).digest("base64url");
|
|
19
|
+
};
|
|
20
|
+
|
|
21
|
+
/**
|
|
22
|
+
* Reference manager interface
|
|
23
|
+
*/
|
|
8
24
|
export interface ReferenceManager extends ReferenceStore {
|
|
9
25
|
generateId: typeof generateReferenceId;
|
|
10
26
|
getIdsByUrl: (url: string) => string[];
|
|
@@ -12,6 +28,9 @@ export interface ReferenceManager extends ReferenceStore {
|
|
|
12
28
|
getAllReferences: () => Record<string, ReferenceMetadata>;
|
|
13
29
|
}
|
|
14
30
|
|
|
31
|
+
/**
|
|
32
|
+
* Create a reference manager instance
|
|
33
|
+
*/
|
|
15
34
|
export const createReferenceManager = (): ReferenceManager => {
|
|
16
35
|
const references: Record<string, ReferenceMetadata> = {};
|
|
17
36
|
const urlToIds: Record<string, string[]> = {};
|
|
@@ -53,3 +72,6 @@ export const createReferenceManager = (): ReferenceManager => {
|
|
|
53
72
|
getAllReferences: () => references,
|
|
54
73
|
};
|
|
55
74
|
};
|
|
75
|
+
|
|
76
|
+
// For backward compatibility - function alias (will be deprecated)
|
|
77
|
+
export { createReferenceManager as ReferenceManagerFactory };
|
package/src/resolver.ts
ADDED
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Resolver module - Context-aware resolution functionality
|
|
3
|
+
* Merged from resolver/index.ts and resolver/context.ts
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
import type { ExtendedCache } from "./cache.js";
|
|
7
|
+
import type { IndexEntry, SourceContext } from "./types/index.js";
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* Resolve a canonical URL with context awareness
|
|
11
|
+
*
|
|
12
|
+
* Attempts to resolve a URL within a specific package context first,
|
|
13
|
+
* then falls back to global resolution if the context-specific resolution fails.
|
|
14
|
+
*
|
|
15
|
+
* @param url - The canonical URL to resolve
|
|
16
|
+
* @param context - The source context containing package information
|
|
17
|
+
* @param _cache - The extended cache instance (currently unused but kept for future use)
|
|
18
|
+
* @param resolveEntry - Function to resolve an entry by URL with optional package/version
|
|
19
|
+
* @returns The resolved index entry or null if resolution fails
|
|
20
|
+
*/
|
|
21
|
+
export const resolveWithContext = async (
|
|
22
|
+
url: string,
|
|
23
|
+
context: SourceContext,
|
|
24
|
+
_cache: ExtendedCache,
|
|
25
|
+
resolveEntry: (url: string, options?: any) => Promise<IndexEntry>,
|
|
26
|
+
): Promise<IndexEntry | null> => {
|
|
27
|
+
if (context.package) {
|
|
28
|
+
try {
|
|
29
|
+
return await resolveEntry(url, {
|
|
30
|
+
package: context.package.name,
|
|
31
|
+
version: context.package.version,
|
|
32
|
+
});
|
|
33
|
+
} catch {
|
|
34
|
+
// Fall through to global resolution
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
return null;
|
|
38
|
+
};
|
package/src/types/core.ts
CHANGED
|
@@ -82,10 +82,10 @@ export interface PackageInfo {
|
|
|
82
82
|
}
|
|
83
83
|
|
|
84
84
|
export interface CanonicalManager {
|
|
85
|
-
init(): Promise<
|
|
85
|
+
init(): Promise<Record<string, PackageId>>;
|
|
86
86
|
destroy(): Promise<void>;
|
|
87
87
|
packages(): Promise<PackageId[]>;
|
|
88
|
-
addPackages(...packageNames: string[]): Promise<
|
|
88
|
+
addPackages(...packageNames: string[]): Promise<Record<string, PackageId>>;
|
|
89
89
|
resolveEntry(
|
|
90
90
|
canonicalUrl: string,
|
|
91
91
|
options?: {
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/reference/index.ts"],"names":[],"mappings":"AAIA,YAAY,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAErD,OAAO,EAAE,sBAAsB,EAAE,sBAAsB,IAAI,uBAAuB,EAAE,MAAM,cAAc,CAAC;AACzG,OAAO,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC"}
|
package/dist/reference/index.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/reference/index.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,sBAAsB,EAAE,sBAAsB,IAAI,uBAAuB,EAAE,MAAM,cAAc,CAAC;AACzG,OAAO,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../src/reference/manager.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,SAAS,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACtF,OAAO,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAEjD,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;AAED,eAAO,MAAM,sBAAsB,QAAO,gBAwCzC,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"manager.js","sourceRoot":"","sources":["../../src/reference/manager.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AASjD,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 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../src/reference/store.ts"],"names":[],"mappings":"AAMA,eAAO,MAAM,mBAAmB,GAAI,UAAU;IAC1C,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,MAAM,CAAC;IACvB,QAAQ,EAAE,MAAM,CAAC;CACpB,KAAG,MAGH,CAAC"}
|
package/dist/reference/store.js
DELETED
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
import { createHash } from "node:crypto";
|
|
2
|
-
export const generateReferenceId = (metadata) => {
|
|
3
|
-
const input = `${metadata.packageName}@${metadata.packageVersion}:${metadata.filePath}`;
|
|
4
|
-
return createHash("sha256").update(input).digest("base64url");
|
|
5
|
-
};
|
|
6
|
-
//# sourceMappingURL=store.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"store.js","sourceRoot":"","sources":["../../src/reference/store.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC,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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../src/resolver/context.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,KAAK,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAEnE,eAAO,MAAM,kBAAkB,GAC3B,KAAK,MAAM,EACX,SAAS,aAAa,EACtB,QAAQ,aAAa,EACrB,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,KAAK,OAAO,CAAC,UAAU,CAAC,KAClE,OAAO,CAAC,UAAU,GAAG,IAAI,CAY3B,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"context.js","sourceRoot":"","sources":["../../src/resolver/context.ts"],"names":[],"mappings":"AAOA,MAAM,CAAC,MAAM,kBAAkB,GAAG,KAAK,EACnC,GAAW,EACX,OAAsB,EACtB,MAAqB,EACrB,YAAiE,EACvC,EAAE;IAC5B,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;QAClB,IAAI,CAAC;YACD,OAAO,MAAM,YAAY,CAAC,GAAG,EAAE;gBAC3B,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,IAAI;gBAC7B,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,OAAO;aACnC,CAAC,CAAC;QACP,CAAC;QAAC,MAAM,CAAC;QAET,CAAC;IACL,CAAC;IACD,OAAO,IAAI,CAAC;AAChB,CAAC,CAAC"}
|
package/dist/resolver/index.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/resolver/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC"}
|
package/dist/resolver/index.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/resolver/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC"}
|
package/src/reference/index.ts
DELETED
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Reference management exports
|
|
3
|
-
*/
|
|
4
|
-
|
|
5
|
-
export type { ReferenceManager } from "./manager.js";
|
|
6
|
-
// For backward compatibility - function alias (will be deprecated)
|
|
7
|
-
export { createReferenceManager, createReferenceManager as ReferenceManagerFactory } from "./manager.js";
|
|
8
|
-
export { generateReferenceId } from "./store.js";
|
package/src/reference/store.ts
DELETED
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Reference store implementation
|
|
3
|
-
*/
|
|
4
|
-
|
|
5
|
-
import { createHash } from "node:crypto";
|
|
6
|
-
|
|
7
|
-
export const generateReferenceId = (metadata: {
|
|
8
|
-
packageName: string;
|
|
9
|
-
packageVersion: string;
|
|
10
|
-
filePath: string;
|
|
11
|
-
}): string => {
|
|
12
|
-
const input = `${metadata.packageName}@${metadata.packageVersion}:${metadata.filePath}`;
|
|
13
|
-
return createHash("sha256").update(input).digest("base64url");
|
|
14
|
-
};
|
package/src/resolver/context.ts
DELETED
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Context-aware resolution functionality
|
|
3
|
-
*/
|
|
4
|
-
|
|
5
|
-
import type { ExtendedCache } from "../cache.js";
|
|
6
|
-
import type { IndexEntry, SourceContext } from "../types/index.js";
|
|
7
|
-
|
|
8
|
-
export const resolveWithContext = async (
|
|
9
|
-
url: string,
|
|
10
|
-
context: SourceContext,
|
|
11
|
-
_cache: ExtendedCache,
|
|
12
|
-
resolveEntry: (url: string, options?: any) => Promise<IndexEntry>,
|
|
13
|
-
): Promise<IndexEntry | null> => {
|
|
14
|
-
if (context.package) {
|
|
15
|
-
try {
|
|
16
|
-
return await resolveEntry(url, {
|
|
17
|
-
package: context.package.name,
|
|
18
|
-
version: context.package.version,
|
|
19
|
-
});
|
|
20
|
-
} catch {
|
|
21
|
-
// Fall through to global resolution
|
|
22
|
-
}
|
|
23
|
-
}
|
|
24
|
-
return null;
|
|
25
|
-
};
|