@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
@@ -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"}
package/src/cache/core.ts DELETED
@@ -1,20 +0,0 @@
1
- /**
2
- * Core cache functionality
3
- */
4
-
5
- import type { IndexCache } from '../types/index.js';
6
- import { createReferenceManager, type ReferenceManager } from '../reference/index.js';
7
-
8
- export interface ExtendedCache extends IndexCache {
9
- referenceManager: ReferenceManager;
10
- }
11
-
12
- export const createCache = (): ExtendedCache => {
13
- const referenceManager = createReferenceManager();
14
- return {
15
- entries: {},
16
- packages: {},
17
- references: {},
18
- referenceManager,
19
- };
20
- };
@@ -1,7 +0,0 @@
1
- /**
2
- * Cache module exports
3
- */
4
-
5
- export { createCache, type ExtendedCache } from './core.js';
6
- export { saveCacheToDisk, loadCacheFromDisk } from './persistence.js';
7
- export { computePackageLockHash } from './validation.js';
@@ -1,39 +0,0 @@
1
- /**
2
- * Cache persistence functionality
3
- */
4
-
5
- import * as fs from 'fs/promises';
6
- import * as path from 'path';
7
- import type { CacheData } from '../types/index.js';
8
- import type { ExtendedCache } from './core.js';
9
- import { computePackageLockHash } from './validation.js';
10
-
11
- export const saveCacheToDisk = async (
12
- cache: ExtendedCache,
13
- cacheDir: string,
14
- workingDir: string,
15
- ): Promise<void> => {
16
- const packageLockHash = await computePackageLockHash(workingDir);
17
-
18
- const cacheData: CacheData = {
19
- entries: cache.entries,
20
- packages: cache.packages,
21
- references: cache.referenceManager.getAllReferences(),
22
- packageLockHash: packageLockHash || undefined,
23
- };
24
-
25
- const cachePath = path.join(cacheDir, "index.json");
26
- await fs.writeFile(cachePath, JSON.stringify(cacheData, null, 2));
27
- };
28
-
29
- export const loadCacheFromDisk = async (
30
- cacheDir: string,
31
- ): Promise<CacheData | null> => {
32
- try {
33
- const cachePath = path.join(cacheDir, "index.json");
34
- const content = await fs.readFile(cachePath, "utf-8");
35
- return JSON.parse(content) as CacheData;
36
- } catch {
37
- return null;
38
- }
39
- };
@@ -1,27 +0,0 @@
1
- /**
2
- * Cache validation utilities
3
- */
4
-
5
- import * as fs from 'fs/promises';
6
- import * as path from 'path';
7
- import { createHash } from 'crypto';
8
-
9
- export const computePackageLockHash = async (
10
- workingDir: string,
11
- ): Promise<string | null> => {
12
- try {
13
- // Try package-lock.json first
14
- const packageLockPath = path.join(workingDir, "package-lock.json");
15
- try {
16
- const content = await fs.readFile(packageLockPath, "utf-8");
17
- return createHash("sha256").update(content).digest("hex");
18
- } catch {
19
- // Try bun.lock if package-lock.json doesn't exist
20
- const bunLockPath = path.join(workingDir, "bun.lock");
21
- const content = await fs.readFile(bunLockPath, "utf-8");
22
- return createHash("sha256").update(content).digest("hex");
23
- }
24
- } catch {
25
- return null;
26
- }
27
- };
@@ -1,24 +0,0 @@
1
- /**
2
- * Package manager detection
3
- */
4
-
5
- import { exec } from 'child_process';
6
- import { promisify } from 'util';
7
-
8
- const execAsync = promisify(exec);
9
-
10
- export async function detectPackageManager(): Promise<"bun" | "npm" | null> {
11
- try {
12
- // Check for bun first
13
- await execAsync("bun --version");
14
- return "bun";
15
- } catch {
16
- try {
17
- // Fall back to npm
18
- await execAsync("npm --version");
19
- return "npm";
20
- } catch {
21
- return null;
22
- }
23
- }
24
- }
@@ -1,6 +0,0 @@
1
- /**
2
- * Package management exports
3
- */
4
-
5
- export { detectPackageManager } from './detector.js';
6
- export { installPackages } from './installer.js';
@@ -1,77 +0,0 @@
1
- /**
2
- * Package installation functionality
3
- */
4
-
5
- import * as fs from 'fs/promises';
6
- import * as path from 'path';
7
- import { exec } from 'child_process';
8
- import { promisify } from 'util';
9
- import { ensureDir, fileExists } from '../fs/index.js';
10
- import { detectPackageManager } from './detector.js';
11
-
12
- const execAsync = promisify(exec);
13
-
14
- export const installPackages = async (
15
- packages: string[],
16
- workingDir: string,
17
- registry?: string,
18
- ): Promise<void> => {
19
- await ensureDir(workingDir);
20
-
21
- // Check if package.json exists
22
- const packageJsonPath = path.join(workingDir, "package.json");
23
- if (!(await fileExists(packageJsonPath))) {
24
- // Create minimal package.json
25
- const minimalPackageJson = {
26
- name: "fhir-canonical-manager-workspace",
27
- version: "1.0.0",
28
- private: true,
29
- dependencies: {},
30
- };
31
- await fs.writeFile(
32
- packageJsonPath,
33
- JSON.stringify(minimalPackageJson, null, 2),
34
- );
35
- }
36
-
37
- // Detect available package manager
38
- const packageManager = await detectPackageManager();
39
- if (!packageManager) {
40
- throw new Error("No package manager found. Please install npm or bun.");
41
- }
42
-
43
- // Install packages
44
- for (const pkg of packages) {
45
- try {
46
- if (packageManager === "bun") {
47
- // Use bun with auth bypass trick for FHIR registry
48
- const env = {
49
- ...process.env,
50
- HOME: workingDir, // Prevent reading user's .npmrc
51
- NPM_CONFIG_USERCONFIG: "/dev/null", // Extra safety
52
- };
53
-
54
- const cmd = registry
55
- ? `cd ${workingDir} && bun add ${pkg} --registry ${registry}`
56
- : `cd ${workingDir} && bun add ${pkg}`;
57
-
58
- await execAsync(cmd, {
59
- env,
60
- maxBuffer: 10 * 1024 * 1024, // 10MB buffer
61
- });
62
- } else {
63
- // Use npm (handles auth correctly)
64
- const cmd = registry
65
- ? `cd ${workingDir} && npm add ${pkg} --registry ${registry}`
66
- : `cd ${workingDir} && npm add ${pkg}`;
67
-
68
- await execAsync(cmd, {
69
- maxBuffer: 10 * 1024 * 1024, // 10MB buffer
70
- });
71
- }
72
- } catch (err) {
73
- console.error(`Failed to install package ${pkg}:`, err);
74
- throw err;
75
- }
76
- }
77
- };