@atomic-ehr/fhir-canonical-manager 0.0.13 → 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 (170) hide show
  1. package/dist/cache.d.ts +17 -0
  2. package/dist/cache.d.ts.map +1 -0
  3. package/dist/cache.js +50 -0
  4. package/dist/cache.js.map +1 -0
  5. package/dist/cli/index.d.ts.map +1 -1
  6. package/dist/cli/index.js +15 -15
  7. package/dist/cli/index.js.map +1 -1
  8. package/dist/cli/init.d.ts.map +1 -1
  9. package/dist/cli/init.js +7 -10
  10. package/dist/cli/init.js.map +1 -1
  11. package/dist/cli/list.d.ts.map +1 -1
  12. package/dist/cli/list.js +14 -10
  13. package/dist/cli/list.js.map +1 -1
  14. package/dist/cli/resolve.js +7 -7
  15. package/dist/cli/resolve.js.map +1 -1
  16. package/dist/cli/search.js +9 -9
  17. package/dist/cli/search.js.map +1 -1
  18. package/dist/cli/searchparam.d.ts.map +1 -1
  19. package/dist/cli/searchparam.js +27 -24
  20. package/dist/cli/searchparam.js.map +1 -1
  21. package/dist/fs/index.d.ts +1 -1
  22. package/dist/fs/index.d.ts.map +1 -1
  23. package/dist/fs/index.js +1 -1
  24. package/dist/fs/index.js.map +1 -1
  25. package/dist/fs/utils.js +2 -2
  26. package/dist/fs/utils.js.map +1 -1
  27. package/dist/index.d.ts +6 -6
  28. package/dist/index.d.ts.map +1 -1
  29. package/dist/index.js +4 -4
  30. package/dist/index.js.map +1 -1
  31. package/dist/manager/canonical.d.ts +1 -1
  32. package/dist/manager/canonical.d.ts.map +1 -1
  33. package/dist/manager/canonical.js +77 -45
  34. package/dist/manager/canonical.js.map +1 -1
  35. package/dist/manager/index.d.ts +1 -2
  36. package/dist/manager/index.d.ts.map +1 -1
  37. package/dist/manager/index.js +1 -2
  38. package/dist/manager/index.js.map +1 -1
  39. package/dist/package.d.ts +4 -0
  40. package/dist/package.d.ts.map +1 -0
  41. package/dist/package.js +69 -0
  42. package/dist/package.js.map +1 -0
  43. package/dist/{reference/manager.d.ts → reference.d.ts} +8 -3
  44. package/dist/reference.d.ts.map +1 -0
  45. package/dist/{reference/manager.js → reference.js} +13 -4
  46. package/dist/reference.js.map +1 -0
  47. package/dist/resolver.d.ts +4 -0
  48. package/dist/resolver.d.ts.map +1 -0
  49. package/dist/{resolver/context.js → resolver.js} +2 -2
  50. package/dist/resolver.js.map +1 -0
  51. package/dist/scanner/directory.d.ts +2 -2
  52. package/dist/scanner/directory.d.ts.map +1 -1
  53. package/dist/scanner/directory.js +24 -27
  54. package/dist/scanner/directory.js.map +1 -1
  55. package/dist/scanner/index.d.ts +4 -4
  56. package/dist/scanner/index.d.ts.map +1 -1
  57. package/dist/scanner/index.js +4 -4
  58. package/dist/scanner/index.js.map +1 -1
  59. package/dist/scanner/package.d.ts +1 -1
  60. package/dist/scanner/package.d.ts.map +1 -1
  61. package/dist/scanner/package.js +4 -4
  62. package/dist/scanner/package.js.map +1 -1
  63. package/dist/scanner/parser.d.ts +2 -2
  64. package/dist/scanner/parser.d.ts.map +1 -1
  65. package/dist/scanner/parser.js +1 -1
  66. package/dist/scanner/parser.js.map +1 -1
  67. package/dist/scanner/processor.d.ts +2 -2
  68. package/dist/scanner/processor.d.ts.map +1 -1
  69. package/dist/scanner/processor.js +3 -3
  70. package/dist/scanner/processor.js.map +1 -1
  71. package/dist/search/index.d.ts +2 -2
  72. package/dist/search/index.d.ts.map +1 -1
  73. package/dist/search/index.js +2 -2
  74. package/dist/search/index.js.map +1 -1
  75. package/dist/search/smart.d.ts +1 -1
  76. package/dist/search/smart.d.ts.map +1 -1
  77. package/dist/search/smart.js +3 -7
  78. package/dist/search/smart.js.map +1 -1
  79. package/dist/search/terms.js.map +1 -1
  80. package/dist/types/core.d.ts +5 -4
  81. package/dist/types/core.d.ts.map +1 -1
  82. package/dist/types/index.d.ts +2 -2
  83. package/dist/types/index.js +2 -2
  84. package/dist/types/internal.d.ts +7 -4
  85. package/dist/types/internal.d.ts.map +1 -1
  86. package/package.json +12 -2
  87. package/src/cache.ts +59 -0
  88. package/src/cli/index.ts +112 -114
  89. package/src/cli/init.ts +104 -108
  90. package/src/cli/list.ts +84 -77
  91. package/src/cli/resolve.ts +57 -57
  92. package/src/cli/search.ts +72 -72
  93. package/src/cli/searchparam.ts +118 -117
  94. package/src/constants.ts +1 -1
  95. package/src/fs/index.ts +1 -1
  96. package/src/fs/utils.ts +16 -16
  97. package/src/index.ts +9 -12
  98. package/src/manager/canonical.ts +349 -360
  99. package/src/manager/index.ts +1 -3
  100. package/src/package.ts +79 -0
  101. package/src/reference.ts +77 -0
  102. package/src/resolver.ts +38 -0
  103. package/src/scanner/directory.ts +25 -31
  104. package/src/scanner/index.ts +4 -4
  105. package/src/scanner/package.ts +26 -29
  106. package/src/scanner/parser.ts +25 -27
  107. package/src/scanner/processor.ts +51 -55
  108. package/src/search/index.ts +2 -2
  109. package/src/search/smart.ts +41 -48
  110. package/src/search/terms.ts +17 -17
  111. package/src/types/core.ts +102 -89
  112. package/src/types/index.ts +2 -2
  113. package/src/types/internal.ts +36 -34
  114. package/dist/cache/core.d.ts +0 -7
  115. package/dist/cache/core.d.ts.map +0 -1
  116. package/dist/cache/core.js +0 -11
  117. package/dist/cache/core.js.map +0 -1
  118. package/dist/cache/index.d.ts +0 -4
  119. package/dist/cache/index.d.ts.map +0 -1
  120. package/dist/cache/index.js +0 -4
  121. package/dist/cache/index.js.map +0 -1
  122. package/dist/cache/persistence.d.ts +0 -5
  123. package/dist/cache/persistence.d.ts.map +0 -1
  124. package/dist/cache/persistence.js +0 -25
  125. package/dist/cache/persistence.js.map +0 -1
  126. package/dist/cache/validation.d.ts +0 -2
  127. package/dist/cache/validation.d.ts.map +0 -1
  128. package/dist/cache/validation.js +0 -21
  129. package/dist/cache/validation.js.map +0 -1
  130. package/dist/package/detector.d.ts +0 -2
  131. package/dist/package/detector.d.ts.map +0 -1
  132. package/dist/package/detector.js +0 -19
  133. package/dist/package/detector.js.map +0 -1
  134. package/dist/package/index.d.ts +0 -3
  135. package/dist/package/index.d.ts.map +0 -1
  136. package/dist/package/index.js +0 -3
  137. package/dist/package/index.js.map +0 -1
  138. package/dist/package/installer.d.ts +0 -2
  139. package/dist/package/installer.d.ts.map +0 -1
  140. package/dist/package/installer.js +0 -55
  141. package/dist/package/installer.js.map +0 -1
  142. package/dist/reference/index.d.ts +0 -5
  143. package/dist/reference/index.d.ts.map +0 -1
  144. package/dist/reference/index.js +0 -4
  145. package/dist/reference/index.js.map +0 -1
  146. package/dist/reference/manager.d.ts.map +0 -1
  147. package/dist/reference/manager.js.map +0 -1
  148. package/dist/reference/store.d.ts +0 -6
  149. package/dist/reference/store.d.ts.map +0 -1
  150. package/dist/reference/store.js +0 -6
  151. package/dist/reference/store.js.map +0 -1
  152. package/dist/resolver/context.d.ts +0 -4
  153. package/dist/resolver/context.d.ts.map +0 -1
  154. package/dist/resolver/context.js.map +0 -1
  155. package/dist/resolver/index.d.ts +0 -2
  156. package/dist/resolver/index.d.ts.map +0 -1
  157. package/dist/resolver/index.js +0 -2
  158. package/dist/resolver/index.js.map +0 -1
  159. package/src/cache/core.ts +0 -20
  160. package/src/cache/index.ts +0 -7
  161. package/src/cache/persistence.ts +0 -39
  162. package/src/cache/validation.ts +0 -27
  163. package/src/package/detector.ts +0 -24
  164. package/src/package/index.ts +0 -6
  165. package/src/package/installer.ts +0 -77
  166. package/src/reference/index.ts +0 -10
  167. package/src/reference/manager.ts +0 -51
  168. package/src/reference/store.ts +0 -15
  169. package/src/resolver/context.ts +0 -25
  170. package/src/resolver/index.ts +0 -5
@@ -3,20 +3,20 @@
3
3
  */
4
4
 
5
5
  export const expandedTerms: Record<string, string[]> = {
6
- str: ["structure"],
7
- struct: ["structure"],
8
- def: ["definition"],
9
- pati: ["patient"],
10
- obs: ["observation"],
11
- org: ["organization"],
12
- pract: ["practitioner"],
13
- med: ["medication", "medicinal"],
14
- req: ["request"],
15
- resp: ["response"],
16
- ref: ["reference"],
17
- val: ["value"],
18
- code: ["codesystem", "code"],
19
- cs: ["codesystem"],
20
- vs: ["valueset"],
21
- sd: ["structuredefinition"],
22
- };
6
+ str: ["structure"],
7
+ struct: ["structure"],
8
+ def: ["definition"],
9
+ pati: ["patient"],
10
+ obs: ["observation"],
11
+ org: ["organization"],
12
+ pract: ["practitioner"],
13
+ med: ["medication", "medicinal"],
14
+ req: ["request"],
15
+ resp: ["response"],
16
+ ref: ["reference"],
17
+ val: ["value"],
18
+ code: ["codesystem", "code"],
19
+ cs: ["codesystem"],
20
+ vs: ["valueset"],
21
+ sd: ["structuredefinition"],
22
+ };
package/src/types/core.ts CHANGED
@@ -3,116 +3,129 @@
3
3
  */
4
4
 
5
5
  export interface Reference {
6
- id: string;
7
- resourceType: string;
6
+ id: string;
7
+ resourceType: string;
8
8
  }
9
9
 
10
10
  export interface PackageId {
11
- name: string;
12
- version: string;
11
+ name: string;
12
+ version: string;
13
13
  }
14
14
 
15
15
  export interface IndexEntry extends Reference {
16
- indexVersion: number;
17
- kind?: string;
18
- url?: string;
19
- type?: string;
20
- version?: string;
21
- package?: PackageId;
16
+ indexVersion: number;
17
+ kind?: string;
18
+ url?: string;
19
+ type?: string;
20
+ version?: string;
21
+ package?: PackageId;
22
22
  }
23
23
 
24
24
  export interface Resource extends Reference {
25
- url?: string;
26
- version?: string;
27
- [key: string]: any;
25
+ url?: string;
26
+ version?: string;
27
+ [key: string]: any;
28
28
  }
29
29
 
30
30
  export interface SearchParameter {
31
- // Required fields
32
- url: string;
33
- name: string;
34
- code: string;
35
- base: string[];
36
- type: string;
37
- expression: string;
38
-
39
- // Optional commonly-used fields
40
- version?: string;
41
- target?: string[];
42
- multipleOr?: boolean;
43
- multipleAnd?: boolean;
44
- comparator?: Array<'eq' | 'ne' | 'gt' | 'lt' | 'ge' | 'le' | 'sa' | 'eb' | 'ap'>;
45
- modifier?: Array<'missing' | 'exact' | 'contains' | 'not' | 'text' |
46
- 'in' | 'not-in' | 'below' | 'above' | 'type' | 'identifier' | 'ofType'>;
47
-
48
- // Open for all other FHIR SearchParameter fields
49
- [key: string]: any;
31
+ // Required fields
32
+ url: string;
33
+ name: string;
34
+ code: string;
35
+ base: string[];
36
+ type: string;
37
+ expression: string;
38
+
39
+ // Optional commonly-used fields
40
+ version?: string;
41
+ target?: string[];
42
+ multipleOr?: boolean;
43
+ multipleAnd?: boolean;
44
+ comparator?: Array<"eq" | "ne" | "gt" | "lt" | "ge" | "le" | "sa" | "eb" | "ap">;
45
+ modifier?: Array<
46
+ | "missing"
47
+ | "exact"
48
+ | "contains"
49
+ | "not"
50
+ | "text"
51
+ | "in"
52
+ | "not-in"
53
+ | "below"
54
+ | "above"
55
+ | "type"
56
+ | "identifier"
57
+ | "ofType"
58
+ >;
59
+
60
+ // Open for all other FHIR SearchParameter fields
61
+ [key: string]: any;
50
62
  }
51
63
 
52
64
  export interface SourceContext {
53
- id?: string;
54
- package?: PackageId;
55
- url?: string;
56
- path?: string;
65
+ id?: string;
66
+ package?: PackageId;
67
+ url?: string;
68
+ path?: string;
57
69
  }
58
70
 
59
71
  export interface Config {
60
- packages: string[];
61
- workingDir: string;
62
- registry?: string;
72
+ packages: string[];
73
+ workingDir: string;
74
+ registry?: string;
63
75
  }
64
76
 
65
77
  export interface PackageInfo {
66
- id: PackageId;
67
- path: string;
68
- canonical?: string;
69
- fhirVersions?: string[];
78
+ id: PackageId;
79
+ path: string;
80
+ canonical?: string;
81
+ fhirVersions?: string[];
70
82
  }
71
83
 
72
84
  export interface CanonicalManager {
73
- init(): Promise<void>;
74
- destroy(): Promise<void>;
75
- packages(): Promise<PackageId[]>;
76
- addPackages(...packageNames: string[]): Promise<void>;
77
- resolveEntry(
78
- canonicalUrl: string,
79
- options?: {
80
- package?: string;
81
- version?: string;
82
- sourceContext?: SourceContext;
83
- },
84
- ): Promise<IndexEntry>;
85
- resolve(
86
- canonicalUrl: string,
87
- options?: {
88
- package?: string;
89
- version?: string;
90
- sourceContext?: SourceContext;
91
- },
92
- ): Promise<Resource>;
93
- read(reference: Reference): Promise<Resource>;
94
- searchEntries(params: {
95
- kind?: string;
96
- url?: string;
97
- type?: string;
98
- version?: string;
99
- package?: PackageId;
100
- }): Promise<IndexEntry[]>;
101
- search(params: {
102
- kind?: string;
103
- url?: string;
104
- type?: string;
105
- version?: string;
106
- package?: PackageId;
107
- }): Promise<Resource[]>;
108
- smartSearch(
109
- searchTerms: string[],
110
- filters?: {
111
- resourceType?: string;
112
- type?: string;
113
- kind?: string;
114
- package?: PackageId;
115
- },
116
- ): Promise<IndexEntry[]>;
117
- getSearchParametersForResource(resourceType: string): Promise<SearchParameter[]>;
118
- }
85
+ init(): Promise<Record<string, PackageId>>;
86
+ destroy(): Promise<void>;
87
+ packages(): Promise<PackageId[]>;
88
+ addPackages(...packageNames: string[]): Promise<Record<string, PackageId>>;
89
+ resolveEntry(
90
+ canonicalUrl: string,
91
+ options?: {
92
+ package?: string;
93
+ version?: string;
94
+ sourceContext?: SourceContext;
95
+ },
96
+ ): Promise<IndexEntry>;
97
+ resolve(
98
+ canonicalUrl: string,
99
+ options?: {
100
+ package?: string;
101
+ version?: string;
102
+ sourceContext?: SourceContext;
103
+ },
104
+ ): Promise<Resource>;
105
+ read(reference: Reference): Promise<Resource>;
106
+ searchEntries(params: {
107
+ kind?: string;
108
+ url?: string;
109
+ type?: string;
110
+ version?: string;
111
+ package?: PackageId;
112
+ }): Promise<IndexEntry[]>;
113
+ search(params: {
114
+ kind?: string;
115
+ url?: string;
116
+ type?: string;
117
+ version?: string;
118
+ package?: PackageId;
119
+ }): Promise<Resource[]>;
120
+ smartSearch(
121
+ searchTerms: string[],
122
+ filters?: {
123
+ resourceType?: string;
124
+ type?: string;
125
+ kind?: string;
126
+ package?: PackageId;
127
+ },
128
+ ): Promise<IndexEntry[]>;
129
+ getSearchParametersForResource(resourceType: string): Promise<SearchParameter[]>;
130
+ packageJson(packageName: string): Promise<unknown>;
131
+ }
@@ -2,5 +2,5 @@
2
2
  * Type exports for FHIR Canonical Manager
3
3
  */
4
4
 
5
- export * from './core.js';
6
- export * from './internal.js';
5
+ export * from "./core.js";
6
+ export * from "./internal.js";
@@ -3,55 +3,57 @@
3
3
  */
4
4
 
5
5
  export interface IndexFile {
6
- "index-version": number;
7
- files: IndexFileEntry[];
6
+ "index-version": number;
7
+ files: IndexFileEntry[];
8
8
  }
9
9
 
10
10
  export interface IndexFileEntry {
11
- filename: string;
12
- resourceType: string;
13
- id: string;
14
- url?: string;
15
- version?: string;
16
- kind?: string;
17
- type?: string;
11
+ filename: string;
12
+ resourceType: string;
13
+ id: string;
14
+ url?: string;
15
+ version?: string;
16
+ kind?: string;
17
+ type?: string;
18
18
  }
19
19
 
20
20
  export interface PackageJson {
21
- name: string;
22
- version: string;
23
- fhirVersions?: string[];
24
- type?: string;
25
- canonical?: string;
26
- dependencies?: Record<string, string>;
21
+ name: string;
22
+ version: string;
23
+ fhirVersions?: string[];
24
+ type?: string;
25
+ canonical?: string;
26
+ dependencies?: Record<string, string>;
27
27
  }
28
28
 
29
29
  export interface ReferenceMetadata {
30
- packageName: string;
31
- packageVersion: string;
32
- filePath: string;
33
- resourceType: string;
34
- url?: string;
35
- version?: string;
30
+ packageName: string;
31
+ packageVersion: string;
32
+ filePath: string;
33
+ resourceType: string;
34
+ url?: string;
35
+ version?: string;
36
36
  }
37
37
 
38
+ export type CacheKey = string & { readonly __brand: unique symbol };
39
+
38
40
  export interface IndexCache {
39
- entries: Record<string, import('./core').IndexEntry[]>;
40
- packages: Record<string, import('./core').PackageInfo>;
41
- references: Record<string, ReferenceMetadata>;
41
+ entries: Record<string, import("./core").IndexEntry[]>;
42
+ packages: Record<string, import("./core").PackageInfo>;
43
+ references: Record<string, ReferenceMetadata>;
42
44
  }
43
45
 
44
46
  export interface CacheData {
45
- entries: Record<string, import('./core').IndexEntry[]>;
46
- packages: Record<string, import('./core').PackageInfo>;
47
- references: Record<string, ReferenceMetadata>;
48
- packageLockHash?: string; // Hash of package-lock.json to detect changes
47
+ entries: Record<string, import("./core").IndexEntry[]>;
48
+ packages: Record<string, import("./core").PackageInfo>;
49
+ references: Record<string, ReferenceMetadata>;
50
+ packageLockHash?: string; // Hash of package-lock.json to detect changes
49
51
  }
50
52
 
51
53
  export interface ReferenceStore {
52
- get(id: string): ReferenceMetadata | undefined;
53
- set(id: string, metadata: ReferenceMetadata): void;
54
- has(id: string): boolean;
55
- clear(): void;
56
- size(): number;
57
- }
54
+ get(id: string): ReferenceMetadata | undefined;
55
+ set(id: string, metadata: ReferenceMetadata): void;
56
+ has(id: string): boolean;
57
+ clear(): void;
58
+ size(): number;
59
+ }
@@ -1,7 +0,0 @@
1
- import type { IndexCache } from '../types/index.js';
2
- import { type ReferenceManager } from '../reference/index.js';
3
- export interface ExtendedCache extends IndexCache {
4
- referenceManager: ReferenceManager;
5
- }
6
- export declare const createCache: () => ExtendedCache;
7
- //# sourceMappingURL=core.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../../src/cache/core.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAA0B,KAAK,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAEtF,MAAM,WAAW,aAAc,SAAQ,UAAU;IAC/C,gBAAgB,EAAE,gBAAgB,CAAC;CACpC;AAED,eAAO,MAAM,WAAW,QAAO,aAQ9B,CAAC"}
@@ -1,11 +0,0 @@
1
- import { createReferenceManager } from '../reference/index.js';
2
- export const createCache = () => {
3
- const referenceManager = createReferenceManager();
4
- return {
5
- entries: {},
6
- packages: {},
7
- references: {},
8
- referenceManager,
9
- };
10
- };
11
- //# sourceMappingURL=core.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"core.js","sourceRoot":"","sources":["../../src/cache/core.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,sBAAsB,EAAyB,MAAM,uBAAuB,CAAC;AAMtF,MAAM,CAAC,MAAM,WAAW,GAAG,GAAkB,EAAE;IAC7C,MAAM,gBAAgB,GAAG,sBAAsB,EAAE,CAAC;IAClD,OAAO;QACL,OAAO,EAAE,EAAE;QACX,QAAQ,EAAE,EAAE;QACZ,UAAU,EAAE,EAAE;QACd,gBAAgB;KACjB,CAAC;AACJ,CAAC,CAAC"}
@@ -1,4 +0,0 @@
1
- export { createCache, type ExtendedCache } from './core.js';
2
- export { saveCacheToDisk, loadCacheFromDisk } from './persistence.js';
3
- export { computePackageLockHash } from './validation.js';
4
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cache/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,WAAW,EAAE,KAAK,aAAa,EAAE,MAAM,WAAW,CAAC;AAC5D,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACtE,OAAO,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAC"}
@@ -1,4 +0,0 @@
1
- export { createCache } from './core.js';
2
- export { saveCacheToDisk, loadCacheFromDisk } from './persistence.js';
3
- export { computePackageLockHash } from './validation.js';
4
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cache/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,WAAW,EAAsB,MAAM,WAAW,CAAC;AAC5D,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACtE,OAAO,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAC"}
@@ -1,5 +0,0 @@
1
- import type { CacheData } from '../types/index.js';
2
- import type { ExtendedCache } from './core.js';
3
- export declare const saveCacheToDisk: (cache: ExtendedCache, cacheDir: string, workingDir: string) => Promise<void>;
4
- export declare const loadCacheFromDisk: (cacheDir: string) => Promise<CacheData | null>;
5
- //# sourceMappingURL=persistence.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"persistence.d.ts","sourceRoot":"","sources":["../../src/cache/persistence.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAG/C,eAAO,MAAM,eAAe,GAC1B,OAAO,aAAa,EACpB,UAAU,MAAM,EAChB,YAAY,MAAM,KACjB,OAAO,CAAC,IAAI,CAYd,CAAC;AAEF,eAAO,MAAM,iBAAiB,GAC5B,UAAU,MAAM,KACf,OAAO,CAAC,SAAS,GAAG,IAAI,CAQ1B,CAAC"}
@@ -1,25 +0,0 @@
1
- import * as fs from 'fs/promises';
2
- import * as path from 'path';
3
- import { computePackageLockHash } from './validation.js';
4
- export const saveCacheToDisk = async (cache, cacheDir, workingDir) => {
5
- const packageLockHash = await computePackageLockHash(workingDir);
6
- const cacheData = {
7
- entries: cache.entries,
8
- packages: cache.packages,
9
- references: cache.referenceManager.getAllReferences(),
10
- packageLockHash: packageLockHash || undefined,
11
- };
12
- const cachePath = path.join(cacheDir, "index.json");
13
- await fs.writeFile(cachePath, JSON.stringify(cacheData, null, 2));
14
- };
15
- export const loadCacheFromDisk = async (cacheDir) => {
16
- try {
17
- const cachePath = path.join(cacheDir, "index.json");
18
- const content = await fs.readFile(cachePath, "utf-8");
19
- return JSON.parse(content);
20
- }
21
- catch {
22
- return null;
23
- }
24
- };
25
- //# sourceMappingURL=persistence.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"persistence.js","sourceRoot":"","sources":["../../src/cache/persistence.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,MAAM,aAAa,CAAC;AAClC,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAG7B,OAAO,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AAEzD,MAAM,CAAC,MAAM,eAAe,GAAG,KAAK,EAClC,KAAoB,EACpB,QAAgB,EAChB,UAAkB,EACH,EAAE;IACjB,MAAM,eAAe,GAAG,MAAM,sBAAsB,CAAC,UAAU,CAAC,CAAC;IAEjE,MAAM,SAAS,GAAc;QAC3B,OAAO,EAAE,KAAK,CAAC,OAAO;QACtB,QAAQ,EAAE,KAAK,CAAC,QAAQ;QACxB,UAAU,EAAE,KAAK,CAAC,gBAAgB,CAAC,gBAAgB,EAAE;QACrD,eAAe,EAAE,eAAe,IAAI,SAAS;KAC9C,CAAC;IAEF,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;IACpD,MAAM,EAAE,CAAC,SAAS,CAAC,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;AACpE,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,iBAAiB,GAAG,KAAK,EACpC,QAAgB,EACW,EAAE;IAC7B,IAAI,CAAC;QACH,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;QACpD,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QACtD,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAc,CAAC;IAC1C,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC,CAAC"}
@@ -1,2 +0,0 @@
1
- export declare const computePackageLockHash: (workingDir: string) => Promise<string | null>;
2
- //# sourceMappingURL=validation.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../../src/cache/validation.ts"],"names":[],"mappings":"AAQA,eAAO,MAAM,sBAAsB,GACjC,YAAY,MAAM,KACjB,OAAO,CAAC,MAAM,GAAG,IAAI,CAgBvB,CAAC"}
@@ -1,21 +0,0 @@
1
- import * as fs from 'fs/promises';
2
- import * as path from 'path';
3
- import { createHash } from 'crypto';
4
- export const computePackageLockHash = async (workingDir) => {
5
- try {
6
- const packageLockPath = path.join(workingDir, "package-lock.json");
7
- try {
8
- const content = await fs.readFile(packageLockPath, "utf-8");
9
- return createHash("sha256").update(content).digest("hex");
10
- }
11
- catch {
12
- const bunLockPath = path.join(workingDir, "bun.lock");
13
- const content = await fs.readFile(bunLockPath, "utf-8");
14
- return createHash("sha256").update(content).digest("hex");
15
- }
16
- }
17
- catch {
18
- return null;
19
- }
20
- };
21
- //# sourceMappingURL=validation.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"validation.js","sourceRoot":"","sources":["../../src/cache/validation.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,MAAM,aAAa,CAAC;AAClC,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AAEpC,MAAM,CAAC,MAAM,sBAAsB,GAAG,KAAK,EACzC,UAAkB,EACM,EAAE;IAC1B,IAAI,CAAC;QAEH,MAAM,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,mBAAmB,CAAC,CAAC;QACnE,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC;YAC5D,OAAO,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC5D,CAAC;QAAC,MAAM,CAAC;YAEP,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;YACtD,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;YACxD,OAAO,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC5D,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC,CAAC"}
@@ -1,2 +0,0 @@
1
- export declare function detectPackageManager(): Promise<"bun" | "npm" | null>;
2
- //# sourceMappingURL=detector.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"detector.d.ts","sourceRoot":"","sources":["../../src/package/detector.ts"],"names":[],"mappings":"AASA,wBAAsB,oBAAoB,IAAI,OAAO,CAAC,KAAK,GAAG,KAAK,GAAG,IAAI,CAAC,CAc1E"}
@@ -1,19 +0,0 @@
1
- import { exec } from 'child_process';
2
- import { promisify } from 'util';
3
- const execAsync = promisify(exec);
4
- export async function detectPackageManager() {
5
- try {
6
- await execAsync("bun --version");
7
- return "bun";
8
- }
9
- catch {
10
- try {
11
- await execAsync("npm --version");
12
- return "npm";
13
- }
14
- catch {
15
- return null;
16
- }
17
- }
18
- }
19
- //# sourceMappingURL=detector.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"detector.js","sourceRoot":"","sources":["../../src/package/detector.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AACrC,OAAO,EAAE,SAAS,EAAE,MAAM,MAAM,CAAC;AAEjC,MAAM,SAAS,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;AAElC,MAAM,CAAC,KAAK,UAAU,oBAAoB;IACxC,IAAI,CAAC;QAEH,MAAM,SAAS,CAAC,eAAe,CAAC,CAAC;QACjC,OAAO,KAAK,CAAC;IACf,CAAC;IAAC,MAAM,CAAC;QACP,IAAI,CAAC;YAEH,MAAM,SAAS,CAAC,eAAe,CAAC,CAAC;YACjC,OAAO,KAAK,CAAC;QACf,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;AACH,CAAC"}
@@ -1,3 +0,0 @@
1
- export { detectPackageManager } from './detector.js';
2
- export { installPackages } from './installer.js';
3
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/package/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC"}
@@ -1,3 +0,0 @@
1
- export { detectPackageManager } from './detector.js';
2
- export { installPackages } from './installer.js';
3
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/package/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC"}
@@ -1,2 +0,0 @@
1
- export declare const installPackages: (packages: string[], workingDir: string, registry?: string) => Promise<void>;
2
- //# sourceMappingURL=installer.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"installer.d.ts","sourceRoot":"","sources":["../../src/package/installer.ts"],"names":[],"mappings":"AAaA,eAAO,MAAM,eAAe,GAC1B,UAAU,MAAM,EAAE,EAClB,YAAY,MAAM,EAClB,WAAW,MAAM,KAChB,OAAO,CAAC,IAAI,CA2Dd,CAAC"}
@@ -1,55 +0,0 @@
1
- import * as fs from 'fs/promises';
2
- import * as path from 'path';
3
- import { exec } from 'child_process';
4
- import { promisify } from 'util';
5
- import { ensureDir, fileExists } from '../fs/index.js';
6
- import { detectPackageManager } from './detector.js';
7
- const execAsync = promisify(exec);
8
- export const installPackages = async (packages, workingDir, registry) => {
9
- await ensureDir(workingDir);
10
- const packageJsonPath = path.join(workingDir, "package.json");
11
- if (!(await fileExists(packageJsonPath))) {
12
- const minimalPackageJson = {
13
- name: "fhir-canonical-manager-workspace",
14
- version: "1.0.0",
15
- private: true,
16
- dependencies: {},
17
- };
18
- await fs.writeFile(packageJsonPath, JSON.stringify(minimalPackageJson, null, 2));
19
- }
20
- const packageManager = await detectPackageManager();
21
- if (!packageManager) {
22
- throw new Error("No package manager found. Please install npm or bun.");
23
- }
24
- for (const pkg of packages) {
25
- try {
26
- if (packageManager === "bun") {
27
- const env = {
28
- ...process.env,
29
- HOME: workingDir,
30
- NPM_CONFIG_USERCONFIG: "/dev/null",
31
- };
32
- const cmd = registry
33
- ? `cd ${workingDir} && bun add ${pkg} --registry ${registry}`
34
- : `cd ${workingDir} && bun add ${pkg}`;
35
- await execAsync(cmd, {
36
- env,
37
- maxBuffer: 10 * 1024 * 1024,
38
- });
39
- }
40
- else {
41
- const cmd = registry
42
- ? `cd ${workingDir} && npm add ${pkg} --registry ${registry}`
43
- : `cd ${workingDir} && npm add ${pkg}`;
44
- await execAsync(cmd, {
45
- maxBuffer: 10 * 1024 * 1024,
46
- });
47
- }
48
- }
49
- catch (err) {
50
- console.error(`Failed to install package ${pkg}:`, err);
51
- throw err;
52
- }
53
- }
54
- };
55
- //# sourceMappingURL=installer.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"installer.js","sourceRoot":"","sources":["../../src/package/installer.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,MAAM,aAAa,CAAC;AAClC,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AACrC,OAAO,EAAE,SAAS,EAAE,MAAM,MAAM,CAAC;AACjC,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACvD,OAAO,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AAErD,MAAM,SAAS,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;AAElC,MAAM,CAAC,MAAM,eAAe,GAAG,KAAK,EAClC,QAAkB,EAClB,UAAkB,EAClB,QAAiB,EACF,EAAE;IACjB,MAAM,SAAS,CAAC,UAAU,CAAC,CAAC;IAG5B,MAAM,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,cAAc,CAAC,CAAC;IAC9D,IAAI,CAAC,CAAC,MAAM,UAAU,CAAC,eAAe,CAAC,CAAC,EAAE,CAAC;QAEzC,MAAM,kBAAkB,GAAG;YACzB,IAAI,EAAE,kCAAkC;YACxC,OAAO,EAAE,OAAO;YAChB,OAAO,EAAE,IAAI;YACb,YAAY,EAAE,EAAE;SACjB,CAAC;QACF,MAAM,EAAE,CAAC,SAAS,CAChB,eAAe,EACf,IAAI,CAAC,SAAS,CAAC,kBAAkB,EAAE,IAAI,EAAE,CAAC,CAAC,CAC5C,CAAC;IACJ,CAAC;IAGD,MAAM,cAAc,GAAG,MAAM,oBAAoB,EAAE,CAAC;IACpD,IAAI,CAAC,cAAc,EAAE,CAAC;QACpB,MAAM,IAAI,KAAK,CAAC,sDAAsD,CAAC,CAAC;IAC1E,CAAC;IAGD,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE,CAAC;QAC3B,IAAI,CAAC;YACH,IAAI,cAAc,KAAK,KAAK,EAAE,CAAC;gBAE7B,MAAM,GAAG,GAAG;oBACV,GAAG,OAAO,CAAC,GAAG;oBACd,IAAI,EAAE,UAAU;oBAChB,qBAAqB,EAAE,WAAW;iBACnC,CAAC;gBAEF,MAAM,GAAG,GAAG,QAAQ;oBAClB,CAAC,CAAC,MAAM,UAAU,eAAe,GAAG,eAAe,QAAQ,EAAE;oBAC7D,CAAC,CAAC,MAAM,UAAU,eAAe,GAAG,EAAE,CAAC;gBAEzC,MAAM,SAAS,CAAC,GAAG,EAAE;oBACnB,GAAG;oBACH,SAAS,EAAE,EAAE,GAAG,IAAI,GAAG,IAAI;iBAC5B,CAAC,CAAC;YACL,CAAC;iBAAM,CAAC;gBAEN,MAAM,GAAG,GAAG,QAAQ;oBAClB,CAAC,CAAC,MAAM,UAAU,eAAe,GAAG,eAAe,QAAQ,EAAE;oBAC7D,CAAC,CAAC,MAAM,UAAU,eAAe,GAAG,EAAE,CAAC;gBAEzC,MAAM,SAAS,CAAC,GAAG,EAAE;oBACnB,SAAS,EAAE,EAAE,GAAG,IAAI,GAAG,IAAI;iBAC5B,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,6BAA6B,GAAG,GAAG,EAAE,GAAG,CAAC,CAAC;YACxD,MAAM,GAAG,CAAC;QACZ,CAAC;IACH,CAAC;AACH,CAAC,CAAC"}
@@ -1,5 +0,0 @@
1
- export { generateReferenceId } from './store.js';
2
- export { createReferenceManager } from './manager.js';
3
- export type { ReferenceManager } from './manager.js';
4
- export { createReferenceManager as ReferenceManagerFactory } from './manager.js';
5
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/reference/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AACjD,OAAO,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AACtD,YAAY,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAGrD,OAAO,EAAE,sBAAsB,IAAI,uBAAuB,EAAE,MAAM,cAAc,CAAC"}
@@ -1,4 +0,0 @@
1
- export { generateReferenceId } from './store.js';
2
- export { createReferenceManager } from './manager.js';
3
- export { createReferenceManager as ReferenceManagerFactory } from './manager.js';
4
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/reference/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AACjD,OAAO,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AAItD,OAAO,EAAE,sBAAsB,IAAI,uBAAuB,EAAE,MAAM,cAAc,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;IACtD,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;CAC3D;AAED,eAAO,MAAM,sBAAsB,QAAO,gBAoCzC,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;IAC3D,MAAM,UAAU,GAAsC,EAAE,CAAC;IACzD,MAAM,QAAQ,GAA6B,EAAE,CAAC;IAE9C,MAAM,GAAG,GAAG,CAAC,EAAU,EAAE,QAA2B,EAAQ,EAAE;QAC5D,UAAU,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC;QAC1B,IAAI,QAAQ,CAAC,GAAG,EAAE,CAAC;YACjB,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC5B,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;YAC9B,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;gBAC7B,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACf,CAAC;QACH,CAAC;IACH,CAAC,CAAC;IAEF,MAAM,KAAK,GAAG,GAAS,EAAE;QACvB,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,OAAO,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC;QACjE,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;IAC/D,CAAC,CAAC;IAEF,OAAO;QACL,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;YACxE,EAAE;YACF,YAAY,EAAE,QAAQ,CAAC,YAAY;SACpC,CAAC;QACF,gBAAgB,EAAE,GAAG,EAAE,CAAC,UAAU;KACnC,CAAC;AACJ,CAAC,CAAC"}