@atomic-ehr/fhir-canonical-manager 0.0.13 → 0.0.14

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 (160) hide show
  1. package/dist/cache.d.ts +16 -0
  2. package/dist/cache.d.ts.map +1 -0
  3. package/dist/cache.js +49 -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 +46 -42
  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/index.d.ts +3 -4
  44. package/dist/reference/index.d.ts.map +1 -1
  45. package/dist/reference/index.js +2 -3
  46. package/dist/reference/index.js.map +1 -1
  47. package/dist/reference/manager.d.ts +2 -2
  48. package/dist/reference/manager.d.ts.map +1 -1
  49. package/dist/reference/manager.js +7 -3
  50. package/dist/reference/manager.js.map +1 -1
  51. package/dist/reference/store.d.ts.map +1 -1
  52. package/dist/reference/store.js +1 -1
  53. package/dist/reference/store.js.map +1 -1
  54. package/dist/resolver/context.d.ts +3 -3
  55. package/dist/resolver/context.d.ts.map +1 -1
  56. package/dist/resolver/context.js +1 -1
  57. package/dist/resolver/context.js.map +1 -1
  58. package/dist/resolver/index.d.ts +1 -1
  59. package/dist/resolver/index.js +1 -1
  60. package/dist/scanner/directory.d.ts +2 -2
  61. package/dist/scanner/directory.d.ts.map +1 -1
  62. package/dist/scanner/directory.js +24 -27
  63. package/dist/scanner/directory.js.map +1 -1
  64. package/dist/scanner/index.d.ts +4 -4
  65. package/dist/scanner/index.d.ts.map +1 -1
  66. package/dist/scanner/index.js +4 -4
  67. package/dist/scanner/index.js.map +1 -1
  68. package/dist/scanner/package.d.ts +1 -1
  69. package/dist/scanner/package.d.ts.map +1 -1
  70. package/dist/scanner/package.js +4 -4
  71. package/dist/scanner/package.js.map +1 -1
  72. package/dist/scanner/parser.d.ts +2 -2
  73. package/dist/scanner/parser.d.ts.map +1 -1
  74. package/dist/scanner/parser.js +1 -1
  75. package/dist/scanner/parser.js.map +1 -1
  76. package/dist/scanner/processor.d.ts +2 -2
  77. package/dist/scanner/processor.d.ts.map +1 -1
  78. package/dist/scanner/processor.js +3 -3
  79. package/dist/scanner/processor.js.map +1 -1
  80. package/dist/search/index.d.ts +2 -2
  81. package/dist/search/index.d.ts.map +1 -1
  82. package/dist/search/index.js +2 -2
  83. package/dist/search/index.js.map +1 -1
  84. package/dist/search/smart.d.ts +1 -1
  85. package/dist/search/smart.d.ts.map +1 -1
  86. package/dist/search/smart.js +3 -7
  87. package/dist/search/smart.js.map +1 -1
  88. package/dist/search/terms.js.map +1 -1
  89. package/dist/types/core.d.ts +3 -2
  90. package/dist/types/core.d.ts.map +1 -1
  91. package/dist/types/index.d.ts +2 -2
  92. package/dist/types/index.js +2 -2
  93. package/dist/types/internal.d.ts +7 -4
  94. package/dist/types/internal.d.ts.map +1 -1
  95. package/package.json +12 -2
  96. package/src/cache.ts +58 -0
  97. package/src/cli/index.ts +112 -114
  98. package/src/cli/init.ts +104 -108
  99. package/src/cli/list.ts +84 -77
  100. package/src/cli/resolve.ts +57 -57
  101. package/src/cli/search.ts +72 -72
  102. package/src/cli/searchparam.ts +118 -117
  103. package/src/constants.ts +1 -1
  104. package/src/fs/index.ts +1 -1
  105. package/src/fs/utils.ts +16 -16
  106. package/src/index.ts +9 -12
  107. package/src/manager/canonical.ts +317 -360
  108. package/src/manager/index.ts +1 -3
  109. package/src/package.ts +79 -0
  110. package/src/reference/index.ts +3 -5
  111. package/src/reference/manager.ts +43 -39
  112. package/src/reference/store.ts +7 -8
  113. package/src/resolver/context.ts +17 -17
  114. package/src/resolver/index.ts +1 -1
  115. package/src/scanner/directory.ts +25 -31
  116. package/src/scanner/index.ts +4 -4
  117. package/src/scanner/package.ts +26 -29
  118. package/src/scanner/parser.ts +25 -27
  119. package/src/scanner/processor.ts +51 -55
  120. package/src/search/index.ts +2 -2
  121. package/src/search/smart.ts +41 -48
  122. package/src/search/terms.ts +17 -17
  123. package/src/types/core.ts +102 -89
  124. package/src/types/index.ts +2 -2
  125. package/src/types/internal.ts +36 -34
  126. package/dist/cache/core.d.ts +0 -7
  127. package/dist/cache/core.d.ts.map +0 -1
  128. package/dist/cache/core.js +0 -11
  129. package/dist/cache/core.js.map +0 -1
  130. package/dist/cache/index.d.ts +0 -4
  131. package/dist/cache/index.d.ts.map +0 -1
  132. package/dist/cache/index.js +0 -4
  133. package/dist/cache/index.js.map +0 -1
  134. package/dist/cache/persistence.d.ts +0 -5
  135. package/dist/cache/persistence.d.ts.map +0 -1
  136. package/dist/cache/persistence.js +0 -25
  137. package/dist/cache/persistence.js.map +0 -1
  138. package/dist/cache/validation.d.ts +0 -2
  139. package/dist/cache/validation.d.ts.map +0 -1
  140. package/dist/cache/validation.js +0 -21
  141. package/dist/cache/validation.js.map +0 -1
  142. package/dist/package/detector.d.ts +0 -2
  143. package/dist/package/detector.d.ts.map +0 -1
  144. package/dist/package/detector.js +0 -19
  145. package/dist/package/detector.js.map +0 -1
  146. package/dist/package/index.d.ts +0 -3
  147. package/dist/package/index.d.ts.map +0 -1
  148. package/dist/package/index.js +0 -3
  149. package/dist/package/index.js.map +0 -1
  150. package/dist/package/installer.d.ts +0 -2
  151. package/dist/package/installer.d.ts.map +0 -1
  152. package/dist/package/installer.js +0 -55
  153. package/dist/package/installer.js.map +0 -1
  154. package/src/cache/core.ts +0 -20
  155. package/src/cache/index.ts +0 -7
  156. package/src/cache/persistence.ts +0 -39
  157. package/src/cache/validation.ts +0 -27
  158. package/src/package/detector.ts +0 -24
  159. package/src/package/index.ts +0 -6
  160. package/src/package/installer.ts +0 -77
@@ -2,56 +2,49 @@
2
2
  * Smart search functionality with abbreviation support
3
3
  */
4
4
 
5
- import type { IndexEntry, PackageId } from '../types/index.js';
6
- import { expandedTerms } from './terms.js';
5
+ import type { IndexEntry, PackageId } from "../types/index.js";
6
+ import { expandedTerms } from "./terms.js";
7
7
 
8
8
  export interface SmartSearchFilters {
9
- resourceType?: string;
10
- type?: string;
11
- kind?: string;
12
- package?: PackageId;
9
+ resourceType?: string;
10
+ type?: string;
11
+ kind?: string;
12
+ package?: PackageId;
13
13
  }
14
14
 
15
- export const filterBySmartSearch = (
16
- results: IndexEntry[],
17
- searchTerms: string[],
18
- ): IndexEntry[] => {
19
- if (searchTerms.length === 0) {
20
- return results;
21
- }
22
-
23
- const terms = searchTerms.map((t) => t.toLowerCase());
24
-
25
- return results.filter((entry) => {
26
- if (!entry.url) return false;
27
- const urlLower = entry.url.toLowerCase();
28
-
29
- // Also check type and resourceType for matching
30
- const fullText = [
31
- urlLower,
32
- entry.type?.toLowerCase() || "",
33
- entry.resourceType?.toLowerCase() || "",
34
- ].join(" ");
35
-
36
- // Check if all search terms match
37
- return terms.every((term) => {
38
- // Split the text into parts (by /, -, _, ., spaces)
39
- const allParts = fullText.split(/[\/\-_\.\s]+/);
40
-
41
- // Check if any part starts with the search term
42
- const directMatch = allParts.some((part) => part.startsWith(term));
43
- if (directMatch) return true;
44
-
45
- // Check if the term is an abbreviation
46
- const expansions = expandedTerms[term] || [];
47
- for (const expansion of expansions) {
48
- if (allParts.some((part) => part.startsWith(expansion))) {
49
- return true;
50
- }
51
- }
52
-
53
- // If still no match, check if the term appears anywhere (substring match)
54
- return fullText.includes(term);
15
+ export const filterBySmartSearch = (results: IndexEntry[], searchTerms: string[]): IndexEntry[] => {
16
+ if (searchTerms.length === 0) {
17
+ return results;
18
+ }
19
+
20
+ const terms = searchTerms.map((t) => t.toLowerCase());
21
+
22
+ return results.filter((entry) => {
23
+ if (!entry.url) return false;
24
+ const urlLower = entry.url.toLowerCase();
25
+
26
+ // Also check type and resourceType for matching
27
+ const fullText = [urlLower, entry.type?.toLowerCase() || "", entry.resourceType?.toLowerCase() || ""].join(" ");
28
+
29
+ // Check if all search terms match
30
+ return terms.every((term) => {
31
+ // Split the text into parts (by /, -, _, ., spaces)
32
+ const allParts = fullText.split(/[/\-_.\s]+/);
33
+
34
+ // Check if any part starts with the search term
35
+ const directMatch = allParts.some((part) => part.startsWith(term));
36
+ if (directMatch) return true;
37
+
38
+ // Check if the term is an abbreviation
39
+ const expansions = expandedTerms[term] || [];
40
+ for (const expansion of expansions) {
41
+ if (allParts.some((part) => part.startsWith(expansion))) {
42
+ return true;
43
+ }
44
+ }
45
+
46
+ // If still no match, check if the term appears anywhere (substring match)
47
+ return fullText.includes(term);
48
+ });
55
49
  });
56
- });
57
- };
50
+ };
@@ -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<void>;
86
+ destroy(): Promise<void>;
87
+ packages(): Promise<PackageId[]>;
88
+ addPackages(...packageNames: string[]): Promise<void>;
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"}