@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.
Files changed (48) hide show
  1. package/dist/cache.d.ts +2 -1
  2. package/dist/cache.d.ts.map +1 -1
  3. package/dist/cache.js +3 -2
  4. package/dist/cache.js.map +1 -1
  5. package/dist/index.d.ts +2 -2
  6. package/dist/index.d.ts.map +1 -1
  7. package/dist/index.js +1 -1
  8. package/dist/index.js.map +1 -1
  9. package/dist/manager/canonical.d.ts.map +1 -1
  10. package/dist/manager/canonical.js +41 -13
  11. package/dist/manager/canonical.js.map +1 -1
  12. package/dist/{reference/manager.d.ts → reference.d.ts} +8 -3
  13. package/dist/reference.d.ts.map +1 -0
  14. package/dist/{reference/manager.js → reference.js} +7 -2
  15. package/dist/reference.js.map +1 -0
  16. package/dist/{resolver/context.d.ts → resolver.d.ts} +3 -3
  17. package/dist/resolver.d.ts.map +1 -0
  18. package/dist/{resolver/context.js → resolver.js} +1 -1
  19. package/dist/resolver.js.map +1 -0
  20. package/dist/types/core.d.ts +2 -2
  21. package/dist/types/core.d.ts.map +1 -1
  22. package/package.json +1 -1
  23. package/src/cache.ts +3 -2
  24. package/src/index.ts +2 -2
  25. package/src/manager/canonical.ts +46 -14
  26. package/src/{reference/manager.ts → reference.ts} +25 -3
  27. package/src/resolver.ts +38 -0
  28. package/src/types/core.ts +2 -2
  29. package/dist/reference/index.d.ts +0 -4
  30. package/dist/reference/index.d.ts.map +0 -1
  31. package/dist/reference/index.js +0 -3
  32. package/dist/reference/index.js.map +0 -1
  33. package/dist/reference/manager.d.ts.map +0 -1
  34. package/dist/reference/manager.js.map +0 -1
  35. package/dist/reference/store.d.ts +0 -6
  36. package/dist/reference/store.d.ts.map +0 -1
  37. package/dist/reference/store.js +0 -6
  38. package/dist/reference/store.js.map +0 -1
  39. package/dist/resolver/context.d.ts.map +0 -1
  40. package/dist/resolver/context.js.map +0 -1
  41. package/dist/resolver/index.d.ts +0 -2
  42. package/dist/resolver/index.d.ts.map +0 -1
  43. package/dist/resolver/index.js +0 -2
  44. package/dist/resolver/index.js.map +0 -1
  45. package/src/reference/index.ts +0 -8
  46. package/src/reference/store.ts +0 -14
  47. package/src/resolver/context.ts +0 -25
  48. package/src/resolver/index.ts +0 -5
package/dist/cache.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { type ReferenceManager } from "./reference/index.js";
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>;
@@ -1 +1 @@
1
- {"version":3,"file":"cache.d.ts","sourceRoot":"","sources":["../src/cache.ts"],"names":[],"mappings":"AAGA,OAAO,EAA0B,KAAK,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACrF,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;AASF,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"}
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/index.js";
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,sBAAsB,CAAC;AAOrF,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,QAAkB,EAAY,EAAE;IAC5D,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAC;IACpD,MAAM,IAAI,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAChE,OAAO,IAAgB,CAAC;AAC5B,CAAC,CAAC;AAEF,MAAM,uBAAuB,GAAG,CAAC,GAAW,EAAE,QAAkB,EAAE,EAAE;IAChE,MAAM,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;IACjD,MAAM,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,eAAe,EAAE,MAAM,CAAC,CAAC;IACzE,MAAM,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,YAAY,CAAC,CAAC;IAChE,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAE,cAAc,EAAE,cAAc,EAAE,CAAC;AACzE,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,GAAW,EAAE,QAAkB,EAAE,EAAE;IAChE,MAAM,QAAQ,GAAG,eAAe,CAAC,QAAQ,CAAC,CAAC;IAC3C,OAAO,uBAAuB,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;AAClD,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,iBAAiB,GAAG,GAAkB,EAAE;IACjD,OAAO;QACH,OAAO,EAAE,EAAE;QACX,QAAQ,EAAE,EAAE;QACZ,UAAU,EAAE,EAAE;QACd,gBAAgB,EAAE,sBAAsB,EAAE;KAC7C,CAAC;AACN,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,uBAAuB,GAAG,KAAK,EAAE,GAAW,EAAE,QAAkB,EAAkC,EAAE;IAC7G,IAAI,CAAC;QACD,MAAM,EAAE,cAAc,EAAE,GAAG,uBAAuB,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;QAClE,MAAM,OAAO,GAAG,MAAM,GAAG,CAAC,QAAQ,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC;QAC5D,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAc,CAAC;IAC5C,CAAC;IAAC,MAAM,CAAC;QACL,OAAO;IACX,CAAC;AACL,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,qBAAqB,GAAG,KAAK,EAAE,KAAoB,EAAE,GAAW,EAAE,QAAkB,EAAiB,EAAE;IAChH,MAAM,SAAS,GAAc;QACzB,OAAO,EAAE,KAAK,CAAC,OAAO;QACtB,QAAQ,EAAE,KAAK,CAAC,QAAQ;QACxB,UAAU,EAAE,KAAK,CAAC,gBAAgB,CAAC,gBAAgB,EAAE;QACrD,eAAe,EAAE,QAAQ;KAC5B,CAAC;IACF,MAAM,EAAE,cAAc,EAAE,eAAe,EAAE,GAAG,uBAAuB,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;IACnF,MAAM,GAAG,CAAC,KAAK,CAAC,eAAe,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACtD,MAAM,GAAG,CAAC,SAAS,CAAC,cAAc,EAAE,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;AAC5E,CAAC,CAAC"}
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/index.js";
3
- export { createReferenceManager, ReferenceManagerFactory as ReferenceManager } from "./reference/index.js";
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";
@@ -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,sBAAsB,CAAC;AAErF,OAAO,EAAE,sBAAsB,EAAE,uBAAuB,IAAI,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAE3G,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"}
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/index.js";
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,sBAAsB,CAAC;AAI3G,cAAc,kBAAkB,CAAC;AAGjC,OAAO,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AAC5D,eAAe,sBAAsB,CAAC"}
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,gBA6SvD,CAAC"}
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/index.js";
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: async (packageName) => {
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":"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"}
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 "../types/index.js";
2
- import { generateReferenceId } from "./store.js";
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
- //# sourceMappingURL=manager.d.ts.map
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 { generateReferenceId } from "./store.js";
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
- //# sourceMappingURL=manager.js.map
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 "../cache.js";
2
- import type { IndexEntry, SourceContext } from "../types/index.js";
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=context.d.ts.map
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"}
@@ -11,4 +11,4 @@ export const resolveWithContext = async (url, context, _cache, resolveEntry) =>
11
11
  }
12
12
  return null;
13
13
  };
14
- //# sourceMappingURL=context.js.map
14
+ //# sourceMappingURL=resolver.js.map
@@ -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"}
@@ -52,10 +52,10 @@ export interface PackageInfo {
52
52
  fhirVersions?: string[];
53
53
  }
54
54
  export interface CanonicalManager {
55
- init(): Promise<void>;
55
+ init(): Promise<Record<string, PackageId>>;
56
56
  destroy(): Promise<void>;
57
57
  packages(): Promise<PackageId[]>;
58
- addPackages(...packageNames: string[]): Promise<void>;
58
+ addPackages(...packageNames: string[]): Promise<Record<string, PackageId>>;
59
59
  resolveEntry(canonicalUrl: string, options?: {
60
60
  package?: string;
61
61
  version?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../../src/types/core.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../../src/types/core.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@atomic-ehr/fhir-canonical-manager",
3
- "version": "0.0.14",
3
+ "version": "0.0.15",
4
4
  "type": "module",
5
5
  "main": "./dist/index.js",
6
6
  "types": "./dist/index.d.ts",
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/index.js";
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/index.js";
8
+ export type { ReferenceManager as ReferenceManagerType } from "./reference.js";
9
9
  // Re-export reference management
10
- export { createReferenceManager, ReferenceManagerFactory as ReferenceManager } from "./reference/index.js";
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
@@ -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/index.js";
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 init = async (): Promise<void> => {
45
- if (initialized) return;
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<void> => {
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: async (packageName: string) => {
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 manager factory
2
+ * Reference management module
3
+ * Merged from reference/index.ts, reference/manager.ts, and reference/store.ts
3
4
  */
4
5
 
5
- import type { Reference, ReferenceMetadata, ReferenceStore } from "../types/index.js";
6
- import { generateReferenceId } from "./store.js";
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 };
@@ -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<void>;
85
+ init(): Promise<Record<string, PackageId>>;
86
86
  destroy(): Promise<void>;
87
87
  packages(): Promise<PackageId[]>;
88
- addPackages(...packageNames: string[]): Promise<void>;
88
+ addPackages(...packageNames: string[]): Promise<Record<string, PackageId>>;
89
89
  resolveEntry(
90
90
  canonicalUrl: string,
91
91
  options?: {
@@ -1,4 +0,0 @@
1
- export type { ReferenceManager } from "./manager.js";
2
- export { createReferenceManager, createReferenceManager as ReferenceManagerFactory } from "./manager.js";
3
- export { generateReferenceId } from "./store.js";
4
- //# sourceMappingURL=index.d.ts.map
@@ -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"}
@@ -1,3 +0,0 @@
1
- export { createReferenceManager, createReferenceManager as ReferenceManagerFactory } from "./manager.js";
2
- export { generateReferenceId } from "./store.js";
3
- //# sourceMappingURL=index.js.map
@@ -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,6 +0,0 @@
1
- export declare const generateReferenceId: (metadata: {
2
- packageName: string;
3
- packageVersion: string;
4
- filePath: string;
5
- }) => string;
6
- //# sourceMappingURL=store.d.ts.map
@@ -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"}
@@ -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"}
@@ -1,2 +0,0 @@
1
- export { resolveWithContext } from "./context.js";
2
- //# sourceMappingURL=index.d.ts.map
@@ -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"}
@@ -1,2 +0,0 @@
1
- export { resolveWithContext } from "./context.js";
2
- //# sourceMappingURL=index.js.map
@@ -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"}
@@ -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";
@@ -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
- };
@@ -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
- };
@@ -1,5 +0,0 @@
1
- /**
2
- * Resolver module exports
3
- */
4
-
5
- export { resolveWithContext } from "./context.js";