@atomic-ehr/fhir-canonical-manager 0.0.8 → 0.0.9

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 (156) hide show
  1. package/README.md +72 -0
  2. package/dist/cache/core.d.ts +7 -0
  3. package/dist/cache/core.d.ts.map +1 -0
  4. package/dist/cache/core.js +11 -0
  5. package/dist/cache/core.js.map +1 -0
  6. package/dist/cache/index.d.ts +4 -0
  7. package/dist/cache/index.d.ts.map +1 -0
  8. package/dist/cache/index.js +4 -0
  9. package/dist/cache/index.js.map +1 -0
  10. package/dist/cache/persistence.d.ts +5 -0
  11. package/dist/cache/persistence.d.ts.map +1 -0
  12. package/dist/cache/persistence.js +25 -0
  13. package/dist/cache/persistence.js.map +1 -0
  14. package/dist/cache/validation.d.ts +2 -0
  15. package/dist/cache/validation.d.ts.map +1 -0
  16. package/dist/cache/validation.js +21 -0
  17. package/dist/cache/validation.js.map +1 -0
  18. package/dist/cli/index.d.ts.map +1 -1
  19. package/dist/cli/index.js +8 -4
  20. package/dist/cli/index.js.map +1 -1
  21. package/dist/cli/searchparam.d.ts +2 -0
  22. package/dist/cli/searchparam.d.ts.map +1 -0
  23. package/dist/cli/searchparam.js +131 -0
  24. package/dist/cli/searchparam.js.map +1 -0
  25. package/dist/constants.d.ts +2 -0
  26. package/dist/constants.d.ts.map +1 -0
  27. package/dist/constants.js +2 -0
  28. package/dist/constants.js.map +1 -0
  29. package/dist/fs/index.d.ts +2 -0
  30. package/dist/fs/index.d.ts.map +1 -0
  31. package/dist/fs/index.js +2 -0
  32. package/dist/fs/index.js.map +1 -0
  33. package/dist/fs/utils.d.ts +4 -0
  34. package/dist/fs/utils.d.ts.map +1 -0
  35. package/dist/fs/utils.js +23 -0
  36. package/dist/fs/utils.js.map +1 -0
  37. package/dist/index.d.ts +6 -111
  38. package/dist/index.d.ts.map +1 -1
  39. package/dist/index.js +5 -592
  40. package/dist/index.js.map +1 -1
  41. package/dist/manager/canonical.d.ts +3 -0
  42. package/dist/manager/canonical.d.ts.map +1 -0
  43. package/dist/manager/canonical.js +194 -0
  44. package/dist/manager/canonical.js.map +1 -0
  45. package/dist/manager/index.d.ts +3 -0
  46. package/dist/manager/index.d.ts.map +1 -0
  47. package/dist/manager/index.js +3 -0
  48. package/dist/manager/index.js.map +1 -0
  49. package/dist/package/detector.d.ts +2 -0
  50. package/dist/package/detector.d.ts.map +1 -0
  51. package/dist/package/detector.js +19 -0
  52. package/dist/package/detector.js.map +1 -0
  53. package/dist/package/index.d.ts +3 -0
  54. package/dist/package/index.d.ts.map +1 -0
  55. package/dist/package/index.js +3 -0
  56. package/dist/package/index.js.map +1 -0
  57. package/dist/package/installer.d.ts +2 -0
  58. package/dist/package/installer.d.ts.map +1 -0
  59. package/dist/package/installer.js +55 -0
  60. package/dist/package/installer.js.map +1 -0
  61. package/dist/reference/index.d.ts +5 -0
  62. package/dist/reference/index.d.ts.map +1 -0
  63. package/dist/reference/index.js +4 -0
  64. package/dist/reference/index.js.map +1 -0
  65. package/dist/reference/manager.d.ts +10 -0
  66. package/dist/reference/manager.d.ts.map +1 -0
  67. package/dist/reference/manager.js +36 -0
  68. package/dist/reference/manager.js.map +1 -0
  69. package/dist/reference/store.d.ts +6 -0
  70. package/dist/reference/store.d.ts.map +1 -0
  71. package/dist/reference/store.js +6 -0
  72. package/dist/reference/store.js.map +1 -0
  73. package/dist/resolver/context.d.ts +4 -0
  74. package/dist/resolver/context.d.ts.map +1 -0
  75. package/dist/resolver/context.js +14 -0
  76. package/dist/resolver/context.js.map +1 -0
  77. package/dist/resolver/index.d.ts +2 -0
  78. package/dist/resolver/index.d.ts.map +1 -0
  79. package/dist/resolver/index.js +2 -0
  80. package/dist/resolver/index.js.map +1 -0
  81. package/dist/scanner/directory.d.ts +3 -0
  82. package/dist/scanner/directory.d.ts.map +1 -0
  83. package/dist/scanner/directory.js +33 -0
  84. package/dist/scanner/directory.js.map +1 -0
  85. package/dist/scanner/index.d.ts +5 -0
  86. package/dist/scanner/index.d.ts.map +1 -0
  87. package/dist/scanner/index.js +5 -0
  88. package/dist/scanner/index.js.map +1 -0
  89. package/dist/scanner/package.d.ts +3 -0
  90. package/dist/scanner/package.d.ts.map +1 -0
  91. package/dist/scanner/package.js +26 -0
  92. package/dist/scanner/package.js.map +1 -0
  93. package/dist/scanner/parser.d.ts +5 -0
  94. package/dist/scanner/parser.d.ts.map +1 -0
  95. package/dist/scanner/parser.js +39 -0
  96. package/dist/scanner/parser.js.map +1 -0
  97. package/dist/scanner/processor.d.ts +4 -0
  98. package/dist/scanner/processor.d.ts.map +1 -0
  99. package/dist/scanner/processor.js +53 -0
  100. package/dist/scanner/processor.js.map +1 -0
  101. package/dist/search/index.d.ts +3 -0
  102. package/dist/search/index.d.ts.map +1 -0
  103. package/dist/search/index.js +3 -0
  104. package/dist/search/index.js.map +1 -0
  105. package/dist/search/smart.d.ts +9 -0
  106. package/dist/search/smart.d.ts.map +1 -0
  107. package/dist/search/smart.js +31 -0
  108. package/dist/search/smart.js.map +1 -0
  109. package/dist/search/terms.d.ts +2 -0
  110. package/dist/search/terms.d.ts.map +1 -0
  111. package/dist/search/terms.js +19 -0
  112. package/dist/search/terms.js.map +1 -0
  113. package/dist/types/core.d.ts +91 -0
  114. package/dist/types/core.d.ts.map +1 -0
  115. package/dist/types/core.js +2 -0
  116. package/dist/types/core.js.map +1 -0
  117. package/dist/types/index.d.ts +3 -0
  118. package/dist/types/index.d.ts.map +1 -0
  119. package/dist/types/index.js +3 -0
  120. package/dist/types/index.js.map +1 -0
  121. package/dist/types/internal.d.ts +48 -0
  122. package/dist/types/internal.d.ts.map +1 -0
  123. package/dist/types/internal.js +2 -0
  124. package/dist/types/internal.js.map +1 -0
  125. package/package.json +1 -1
  126. package/src/cache/core.ts +20 -0
  127. package/src/cache/index.ts +7 -0
  128. package/src/cache/persistence.ts +39 -0
  129. package/src/cache/validation.ts +27 -0
  130. package/src/cli/index.ts +8 -4
  131. package/src/cli/searchparam.ts +162 -0
  132. package/src/constants.ts +6 -0
  133. package/src/fs/index.ts +5 -0
  134. package/src/fs/utils.ts +28 -0
  135. package/src/index.ts +13 -990
  136. package/src/manager/canonical.ts +338 -0
  137. package/src/manager/index.ts +8 -0
  138. package/src/package/detector.ts +24 -0
  139. package/src/package/index.ts +6 -0
  140. package/src/package/installer.ts +77 -0
  141. package/src/reference/index.ts +10 -0
  142. package/src/reference/manager.ts +51 -0
  143. package/src/reference/store.ts +15 -0
  144. package/src/resolver/context.ts +25 -0
  145. package/src/resolver/index.ts +5 -0
  146. package/src/scanner/directory.ts +42 -0
  147. package/src/scanner/index.ts +8 -0
  148. package/src/scanner/package.ts +38 -0
  149. package/src/scanner/parser.ts +42 -0
  150. package/src/scanner/processor.ts +69 -0
  151. package/src/search/index.ts +6 -0
  152. package/src/search/smart.ts +57 -0
  153. package/src/search/terms.ts +22 -0
  154. package/src/types/core.ts +117 -0
  155. package/src/types/index.ts +6 -0
  156. package/src/types/internal.ts +57 -0
package/dist/index.js CHANGED
@@ -1,593 +1,6 @@
1
- import * as path from "path";
2
- import * as fs from "fs/promises";
3
- import { createHash } from "crypto";
4
- import { exec } from "child_process";
5
- import { promisify } from "util";
6
- const execAsync = promisify(exec);
7
- class ShellError extends Error {
8
- exitCode;
9
- stdout;
10
- stderr;
11
- constructor(message, exitCode, stdout, stderr) {
12
- super(message);
13
- this.name = "ShellError";
14
- this.exitCode = exitCode;
15
- this.stdout = stdout;
16
- this.stderr = stderr;
17
- }
18
- }
19
- function $(strings, ...values) {
20
- const command = strings.reduce((acc, str, i) => {
21
- return acc + str + (values[i] || "");
22
- }, "");
23
- let envVars = {};
24
- const execute = async (options = {}) => {
25
- try {
26
- const execOptions = {
27
- shell: true,
28
- maxBuffer: 10 * 1024 * 1024,
29
- };
30
- if (Object.keys(envVars).length > 0) {
31
- execOptions.env = { ...process.env, ...envVars };
32
- }
33
- const { stdout, stderr } = await execAsync(command, execOptions);
34
- return {
35
- stdout: stdout?.toString() || "",
36
- stderr: stderr?.toString() || "",
37
- exitCode: 0,
38
- };
39
- }
40
- catch (error) {
41
- const code = error.code || 1;
42
- const stdout = error.stdout?.toString() || "";
43
- const stderr = error.stderr?.toString() || error.message || "";
44
- throw new ShellError(`Command failed: ${command}`, code, stdout, stderr);
45
- }
46
- };
47
- let executed = false;
48
- let resultPromise = null;
49
- const lazyPromise = {
50
- then(onFulfilled, onRejected) {
51
- if (!executed) {
52
- executed = true;
53
- resultPromise = execute();
54
- }
55
- return resultPromise.then(onFulfilled, onRejected);
56
- },
57
- catch(onRejected) {
58
- return this.then(undefined, onRejected);
59
- },
60
- finally(onFinally) {
61
- return this.then((value) => {
62
- onFinally?.();
63
- return value;
64
- }, (reason) => {
65
- onFinally?.();
66
- throw reason;
67
- });
68
- },
69
- quiet() {
70
- return execute({ quiet: true });
71
- },
72
- env(vars) {
73
- envVars = vars;
74
- return this;
75
- },
76
- [Symbol.toStringTag]: "ShellPromise",
77
- };
78
- return lazyPromise;
79
- }
80
- async function detectPackageManager() {
81
- try {
82
- await $ `bun --version`.quiet();
83
- return "bun";
84
- }
85
- catch {
86
- try {
87
- await $ `npm --version`.quiet();
88
- return "npm";
89
- }
90
- catch {
91
- return null;
92
- }
93
- }
94
- }
95
- export { ShellError, detectPackageManager };
96
- const generateReferenceId = (metadata) => {
97
- const input = `${metadata.packageName}@${metadata.packageVersion}:${metadata.filePath}`;
98
- return createHash("sha256").update(input).digest("base64url");
99
- };
100
- export const ReferenceManager = () => {
101
- const references = {};
102
- const urlToIds = {};
103
- const set = (id, metadata) => {
104
- references[id] = metadata;
105
- if (metadata.url) {
106
- if (!urlToIds[metadata.url]) {
107
- urlToIds[metadata.url] = [];
108
- }
109
- const ids = urlToIds[metadata.url];
110
- if (ids && !ids.includes(id)) {
111
- ids.push(id);
112
- }
113
- }
114
- };
115
- const clear = () => {
116
- Object.keys(references).forEach((key) => delete references[key]);
117
- Object.keys(urlToIds).forEach((key) => delete urlToIds[key]);
118
- };
119
- return {
120
- generateId: generateReferenceId,
121
- get: (id) => references[id],
122
- set,
123
- has: (id) => id in references,
124
- clear,
125
- size: () => Object.keys(references).length,
126
- getIdsByUrl: (url) => urlToIds[url] || [],
127
- createReference: (id, metadata) => ({
128
- id,
129
- resourceType: metadata.resourceType,
130
- }),
131
- getAllReferences: () => references,
132
- };
133
- };
134
- const isValidFileEntry = (entry) => {
135
- if (!entry || typeof entry !== "object")
136
- return false;
137
- if (!entry.filename || typeof entry.filename !== "string")
138
- return false;
139
- if (!entry.resourceType || typeof entry.resourceType !== "string")
140
- return false;
141
- if (!entry.id || typeof entry.id !== "string")
142
- return false;
143
- const optionalStringFields = ["url", "version", "kind", "type"];
144
- for (const field of optionalStringFields) {
145
- if (entry[field] !== undefined && typeof entry[field] !== "string") {
146
- return false;
147
- }
148
- }
149
- return true;
150
- };
151
- const isValidIndexFile = (data) => {
152
- if (!data || typeof data !== "object")
153
- return false;
154
- if (!data["index-version"] || typeof data["index-version"] !== "number")
155
- return false;
156
- if (!Array.isArray(data.files))
157
- return false;
158
- return data.files.every((file) => isValidFileEntry(file));
159
- };
160
- const parseIndex = (content, filePath) => {
161
- try {
162
- const data = JSON.parse(content);
163
- if (!isValidIndexFile(data)) {
164
- return null;
165
- }
166
- return data;
167
- }
168
- catch {
169
- return null;
170
- }
171
- };
172
- const fileExists = async (filePath) => {
173
- try {
174
- await fs.access(filePath);
175
- return true;
176
- }
177
- catch {
178
- return false;
179
- }
180
- };
181
- const ensureDir = async (dirPath) => {
182
- try {
183
- await fs.mkdir(dirPath, { recursive: true });
184
- }
185
- catch {
186
- }
187
- };
188
- const isFhirPackage = async (dirPath) => {
189
- const indexPath = path.join(dirPath, ".index.json");
190
- return fileExists(indexPath);
191
- };
192
- const createCache = () => {
193
- const referenceManager = ReferenceManager();
194
- return {
195
- entries: {},
196
- packages: {},
197
- references: {},
198
- referenceManager,
199
- };
200
- };
201
- const computePackageLockHash = async (workingDir) => {
202
- try {
203
- const packageLockPath = path.join(workingDir, "package-lock.json");
204
- try {
205
- const content = await fs.readFile(packageLockPath, "utf-8");
206
- return createHash("sha256").update(content).digest("hex");
207
- }
208
- catch {
209
- const bunLockPath = path.join(workingDir, "bun.lock");
210
- const content = await fs.readFile(bunLockPath, "utf-8");
211
- return createHash("sha256").update(content).digest("hex");
212
- }
213
- }
214
- catch {
215
- return null;
216
- }
217
- };
218
- const saveCacheToDisk = async (cache, cacheDir, workingDir) => {
219
- const packageLockHash = await computePackageLockHash(workingDir);
220
- const cacheData = {
221
- entries: cache.entries,
222
- packages: cache.packages,
223
- references: cache.referenceManager.getAllReferences(),
224
- packageLockHash: packageLockHash || undefined,
225
- };
226
- const cachePath = path.join(cacheDir, "index.json");
227
- await fs.writeFile(cachePath, JSON.stringify(cacheData, null, 2));
228
- };
229
- const loadCacheFromDisk = async (cacheDir) => {
230
- try {
231
- const cachePath = path.join(cacheDir, "index.json");
232
- const content = await fs.readFile(cachePath, "utf-8");
233
- return JSON.parse(content);
234
- }
235
- catch {
236
- return null;
237
- }
238
- };
239
- const installPackages = async (packages, workingDir, registry) => {
240
- await ensureDir(workingDir);
241
- const packageJsonPath = path.join(workingDir, "package.json");
242
- if (!(await fileExists(packageJsonPath))) {
243
- const minimalPackageJson = {
244
- name: "fhir-canonical-manager-workspace",
245
- version: "1.0.0",
246
- private: true,
247
- dependencies: {},
248
- };
249
- await fs.writeFile(packageJsonPath, JSON.stringify(minimalPackageJson, null, 2));
250
- }
251
- const packageManager = await detectPackageManager();
252
- if (!packageManager) {
253
- throw new Error("No package manager found. Please install npm or bun.");
254
- }
255
- for (const pkg of packages) {
256
- try {
257
- if (packageManager === "bun") {
258
- const env = {
259
- HOME: workingDir,
260
- NPM_CONFIG_USERCONFIG: "/dev/null",
261
- };
262
- const cmd = registry
263
- ? `cd ${workingDir} && bun add ${pkg} --registry ${registry}`
264
- : `cd ${workingDir} && bun add ${pkg}`;
265
- await $ `${cmd}`.env(env);
266
- }
267
- else {
268
- const cmd = registry
269
- ? `cd ${workingDir} && npm add ${pkg} --registry ${registry}`
270
- : `cd ${workingDir} && npm add ${pkg}`;
271
- await $ `${cmd}`;
272
- }
273
- }
274
- catch (err) {
275
- console.error(`Failed to install package ${pkg}:`, err);
276
- throw err;
277
- }
278
- }
279
- };
280
- const processIndex = async (basePath, packageJson, cache) => {
281
- const indexPath = path.join(basePath, ".index.json");
282
- try {
283
- const indexContent = await fs.readFile(indexPath, "utf-8");
284
- const index = parseIndex(indexContent, indexPath);
285
- if (!index)
286
- return;
287
- for (const file of index.files) {
288
- if (!file.url)
289
- continue;
290
- const filePath = path.join(basePath, file.filename);
291
- const id = cache.referenceManager.generateId({
292
- packageName: packageJson.name,
293
- packageVersion: packageJson.version,
294
- filePath,
295
- });
296
- cache.referenceManager.set(id, {
297
- packageName: packageJson.name,
298
- packageVersion: packageJson.version,
299
- filePath,
300
- resourceType: file.resourceType,
301
- url: file.url,
302
- version: file.version,
303
- });
304
- const entry = {
305
- id,
306
- resourceType: file.resourceType,
307
- indexVersion: index["index-version"],
308
- url: file.url,
309
- version: file.version,
310
- kind: file.kind,
311
- type: file.type,
312
- package: {
313
- name: packageJson.name,
314
- version: packageJson.version,
315
- },
316
- };
317
- if (!cache.entries[file.url]) {
318
- cache.entries[file.url] = [];
319
- }
320
- const entries = cache.entries[file.url];
321
- if (entries) {
322
- entries.push(entry);
323
- }
324
- }
325
- }
326
- catch {
327
- }
328
- };
329
- const scanPackage = async (packagePath, cache) => {
330
- try {
331
- const packageJsonPath = path.join(packagePath, "package.json");
332
- const packageJsonContent = await fs.readFile(packageJsonPath, "utf-8");
333
- const packageJson = JSON.parse(packageJsonContent);
334
- const packageInfo = {
335
- id: { name: packageJson.name, version: packageJson.version },
336
- path: packagePath,
337
- canonical: packageJson.canonical,
338
- fhirVersions: packageJson.fhirVersions,
339
- };
340
- cache.packages[packageJson.name] = packageInfo;
341
- await processIndex(packagePath, packageJson, cache);
342
- const examplesPath = path.join(packagePath, "examples");
343
- if (await fileExists(path.join(examplesPath, ".index.json"))) {
344
- await processIndex(examplesPath, packageJson, cache);
345
- }
346
- }
347
- catch {
348
- }
349
- };
350
- const scanDirectory = async (dirPath, cache) => {
351
- try {
352
- const entries = await fs.readdir(dirPath, { withFileTypes: true });
353
- for (const entry of entries) {
354
- if (!entry.isDirectory())
355
- continue;
356
- const fullPath = path.join(dirPath, entry.name);
357
- if (entry.name.startsWith("@")) {
358
- const scopedEntries = await fs.readdir(fullPath, {
359
- withFileTypes: true,
360
- });
361
- for (const scopedEntry of scopedEntries) {
362
- if (!scopedEntry.isDirectory())
363
- continue;
364
- const scopedPath = path.join(fullPath, scopedEntry.name);
365
- if (await isFhirPackage(scopedPath)) {
366
- await scanPackage(scopedPath, cache);
367
- }
368
- }
369
- }
370
- else if (await isFhirPackage(fullPath)) {
371
- await scanPackage(fullPath, cache);
372
- }
373
- }
374
- }
375
- catch {
376
- }
377
- };
378
- const resolveWithContext = async (url, context, cache, resolveEntry) => {
379
- if (context.package) {
380
- try {
381
- return await resolveEntry(url, {
382
- package: context.package.name,
383
- version: context.package.version,
384
- });
385
- }
386
- catch {
387
- }
388
- }
389
- return null;
390
- };
391
- const DEFAULT_REGISTRY = "https://fs.get-ig.org/pkgs/";
392
- export const CanonicalManager = (config) => {
393
- const { packages, workingDir } = config;
394
- const registry = config.registry
395
- ? config.registry.endsWith('/') ? config.registry : `${config.registry}/`
396
- : DEFAULT_REGISTRY;
397
- const nodeModulesPath = path.join(workingDir, "node_modules");
398
- const cacheDir = path.join(workingDir, ".fcm", "cache");
399
- let cache = createCache();
400
- let initialized = false;
401
- const ensureInitialized = () => {
402
- if (!initialized) {
403
- throw new Error("CanonicalManager not initialized. Call init() first.");
404
- }
405
- };
406
- const init = async () => {
407
- if (initialized)
408
- return;
409
- await ensureDir(workingDir);
410
- await ensureDir(cacheDir);
411
- const currentPackageLockHash = await computePackageLockHash(workingDir);
412
- const cachedData = await loadCacheFromDisk(cacheDir);
413
- const cacheValid = cachedData &&
414
- cachedData.packageLockHash === currentPackageLockHash &&
415
- currentPackageLockHash !== null;
416
- if (cacheValid) {
417
- cache.entries = cachedData.entries;
418
- cache.packages = cachedData.packages;
419
- Object.entries(cachedData.references).forEach(([id, metadata]) => {
420
- cache.referenceManager.set(id, metadata);
421
- });
422
- }
423
- else {
424
- if (cachedData && cachedData.packageLockHash !== currentPackageLockHash) {
425
- console.log("Package dependencies have changed, rebuilding index...");
426
- }
427
- await installPackages(packages, workingDir, registry);
428
- cache = createCache();
429
- await scanDirectory(nodeModulesPath, cache);
430
- await saveCacheToDisk(cache, cacheDir, workingDir);
431
- }
432
- initialized = true;
433
- };
434
- const destroy = async () => {
435
- cache.entries = {};
436
- cache.packages = {};
437
- cache.referenceManager.clear();
438
- initialized = false;
439
- };
440
- const getPackages = async () => {
441
- ensureInitialized();
442
- return Object.values(cache.packages).map((p) => p.id);
443
- };
444
- const resolveEntry = async (canonicalUrl, options) => {
445
- ensureInitialized();
446
- if (options?.sourceContext) {
447
- const contextResolved = await resolveWithContext(canonicalUrl, options.sourceContext, cache, resolveEntry);
448
- if (contextResolved) {
449
- return contextResolved;
450
- }
451
- }
452
- const entries = cache.entries[canonicalUrl] || [];
453
- if (entries.length === 0) {
454
- throw new Error(`Cannot resolve canonical URL: ${canonicalUrl}`);
455
- }
456
- let filtered = [...entries];
457
- if (options?.package) {
458
- filtered = filtered.filter((e) => e.package?.name === options.package);
459
- }
460
- if (options?.version) {
461
- filtered = filtered.filter((e) => e.version === options.version);
462
- }
463
- if (filtered.length === 0) {
464
- throw new Error(`No matching resource found for ${canonicalUrl} with given options`);
465
- }
466
- return filtered[0];
467
- };
468
- const resolve = async (canonicalUrl, options) => {
469
- const entry = await resolveEntry(canonicalUrl, options);
470
- return read(entry);
471
- };
472
- const read = async (reference) => {
473
- ensureInitialized();
474
- const metadata = cache.referenceManager.get(reference.id);
475
- if (!metadata) {
476
- throw new Error(`Invalid reference ID: ${reference.id}`);
477
- }
478
- try {
479
- const content = await fs.readFile(metadata.filePath, "utf-8");
480
- const resource = JSON.parse(content);
481
- return {
482
- ...resource,
483
- id: reference.id,
484
- resourceType: reference.resourceType,
485
- };
486
- }
487
- catch (err) {
488
- throw new Error(`Failed to read resource: ${err}`);
489
- }
490
- };
491
- const searchEntries = async (params) => {
492
- ensureInitialized();
493
- let results = [];
494
- if (params.url) {
495
- results = cache.entries[params.url] || [];
496
- }
497
- else {
498
- for (const entries of Object.values(cache.entries)) {
499
- results.push(...entries);
500
- }
501
- }
502
- if (params.kind !== undefined) {
503
- results = results.filter((e) => e.kind === params.kind);
504
- }
505
- if (params.type !== undefined) {
506
- results = results.filter((e) => e.type === params.type);
507
- }
508
- if (params.version !== undefined) {
509
- results = results.filter((e) => e.version === params.version);
510
- }
511
- if (params.package) {
512
- const pkg = params.package;
513
- results = results.filter((e) => e.package?.name === pkg.name && e.package?.version === pkg.version);
514
- }
515
- return results;
516
- };
517
- const search = async (params) => {
518
- const entries = await searchEntries(params);
519
- const resources = await Promise.all(entries.map((entry) => read(entry)));
520
- return resources;
521
- };
522
- const smartSearch = async (searchTerms, filters) => {
523
- ensureInitialized();
524
- let results = await searchEntries({
525
- kind: filters?.kind,
526
- package: filters?.package,
527
- });
528
- if (filters?.resourceType) {
529
- results = results.filter(entry => entry.resourceType === filters.resourceType);
530
- }
531
- if (filters?.type) {
532
- results = results.filter(entry => entry.type === filters.type);
533
- }
534
- if (searchTerms.length > 0) {
535
- const terms = searchTerms.map(t => t.toLowerCase());
536
- results = results.filter(entry => {
537
- if (!entry.url)
538
- return false;
539
- const urlLower = entry.url.toLowerCase();
540
- const fullText = [
541
- urlLower,
542
- entry.type?.toLowerCase() || '',
543
- entry.resourceType?.toLowerCase() || ''
544
- ].join(' ');
545
- return terms.every(term => {
546
- const allParts = fullText.split(/[\/\-_\.\s]+/);
547
- const directMatch = allParts.some(part => part.startsWith(term));
548
- if (directMatch)
549
- return true;
550
- const expandedTerms = {
551
- 'str': ['structure'],
552
- 'struct': ['structure'],
553
- 'def': ['definition'],
554
- 'pati': ['patient'],
555
- 'obs': ['observation'],
556
- 'org': ['organization'],
557
- 'pract': ['practitioner'],
558
- 'med': ['medication', 'medicinal'],
559
- 'req': ['request'],
560
- 'resp': ['response'],
561
- 'ref': ['reference'],
562
- 'val': ['value'],
563
- 'code': ['codesystem', 'code'],
564
- 'cs': ['codesystem'],
565
- 'vs': ['valueset'],
566
- 'sd': ['structuredefinition'],
567
- };
568
- const expansions = expandedTerms[term] || [];
569
- for (const expansion of expansions) {
570
- if (allParts.some(part => part.startsWith(expansion))) {
571
- return true;
572
- }
573
- }
574
- return fullText.includes(term);
575
- });
576
- });
577
- }
578
- return results;
579
- };
580
- return {
581
- init,
582
- destroy,
583
- packages: getPackages,
584
- resolveEntry,
585
- resolve,
586
- read,
587
- searchEntries,
588
- search,
589
- smartSearch,
590
- };
591
- };
592
- export default CanonicalManager;
1
+ export * from './types';
2
+ export { createReferenceManager, ReferenceManagerFactory as ReferenceManager } from './reference';
3
+ export { CanonicalManager, createCanonicalManager } from './manager';
4
+ import { createCanonicalManager } from './manager';
5
+ export default createCanonicalManager;
593
6
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAMA,cAAc,SAAS,CAAC;AAGxB,OAAO,EAAE,sBAAsB,EAAE,uBAAuB,IAAI,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAIlG,OAAO,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,MAAM,WAAW,CAAC;AAMrE,OAAO,EAAE,sBAAsB,EAAE,MAAM,WAAW,CAAC;AACnD,eAAe,sBAAsB,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { Config, CanonicalManager } from '../types';
2
+ export declare const createCanonicalManager: (config: Config) => CanonicalManager;
3
+ //# sourceMappingURL=canonical.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"canonical.d.ts","sourceRoot":"","sources":["../../src/manager/canonical.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EACV,MAAM,EACN,gBAAgB,EAOjB,MAAM,UAAU,CAAC;AAelB,eAAO,MAAM,sBAAsB,GAAI,QAAQ,MAAM,KAAG,gBAmTvD,CAAC"}