@atomic-ehr/fhir-canonical-manager 0.0.6 → 0.0.8
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.
- package/README.md +30 -30
- package/dist/cli/index.d.ts +2 -2
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.js +45 -35
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/init.d.ts.map +1 -1
- package/dist/cli/init.js +25 -16
- package/dist/cli/init.js.map +1 -1
- package/dist/cli/list.d.ts.map +1 -1
- package/dist/cli/list.js +6 -0
- package/dist/cli/list.js.map +1 -1
- package/dist/cli/resolve.d.ts.map +1 -1
- package/dist/cli/resolve.js +9 -0
- package/dist/cli/resolve.js.map +1 -1
- package/dist/cli/search.d.ts.map +1 -1
- package/dist/cli/search.js +16 -22
- package/dist/cli/search.js.map +1 -1
- package/dist/index.d.ts +14 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +239 -64
- package/dist/index.js.map +1 -1
- package/package.json +4 -3
- package/src/cli/index.ts +53 -39
- package/src/cli/init.ts +36 -23
- package/src/cli/list.ts +6 -0
- package/src/cli/resolve.ts +9 -0
- package/src/cli/search.ts +20 -36
- package/src/index.ts +443 -146
- package/dist/compat.d.ts +0 -17
- package/dist/compat.d.ts.map +0 -1
- package/dist/compat.js +0 -56
- package/dist/compat.js.map +0 -1
- package/src/compat.ts +0 -98
package/README.md
CHANGED
|
@@ -29,10 +29,10 @@ npm install @atomic-ehr/fhir-canonical-manager
|
|
|
29
29
|
import { CanonicalManager } from '@atomic-ehr/fhir-canonical-manager';
|
|
30
30
|
|
|
31
31
|
// Create and initialize the manager
|
|
32
|
-
const manager = CanonicalManager({
|
|
33
|
-
packages: ["hl7.fhir.r4.core"],
|
|
32
|
+
const manager = CanonicalManager({
|
|
33
|
+
packages: ["hl7.fhir.r4.core"],
|
|
34
34
|
workingDir: "tmp/fhir",
|
|
35
|
-
registry: "https://fs.get-ig.org/pkgs" // optional, default registry
|
|
35
|
+
registry: "https://fs.get-ig.org/pkgs/" // optional, default registry
|
|
36
36
|
});
|
|
37
37
|
|
|
38
38
|
await manager.init();
|
|
@@ -94,7 +94,7 @@ Configuration is stored in `package.json`:
|
|
|
94
94
|
{
|
|
95
95
|
"fcm": {
|
|
96
96
|
"packages": ["hl7.fhir.r4.core", "hl7.fhir.us.core@5.0.1"],
|
|
97
|
-
"registry": "https://fs.get-ig.org/pkgs"
|
|
97
|
+
"registry": "https://fs.get-ig.org/pkgs/"
|
|
98
98
|
}
|
|
99
99
|
}
|
|
100
100
|
```
|
|
@@ -257,13 +257,13 @@ interface Config {
|
|
|
257
257
|
|
|
258
258
|
Example:
|
|
259
259
|
```typescript
|
|
260
|
-
const manager = CanonicalManager({
|
|
260
|
+
const manager = CanonicalManager({
|
|
261
261
|
packages: [
|
|
262
262
|
"hl7.fhir.r4.core",
|
|
263
263
|
"hl7.fhir.us.core@5.0.1"
|
|
264
|
-
],
|
|
264
|
+
],
|
|
265
265
|
workingDir: "./fhir-packages",
|
|
266
|
-
registry: "https://fs.get-ig.org/pkgs"
|
|
266
|
+
registry: "https://fs.get-ig.org/pkgs/"
|
|
267
267
|
});
|
|
268
268
|
```
|
|
269
269
|
|
|
@@ -339,17 +339,17 @@ Searches and returns full resources matching criteria.
|
|
|
339
339
|
|
|
340
340
|
```typescript
|
|
341
341
|
// Get all StructureDefinitions
|
|
342
|
-
const structures = await manager.search({
|
|
343
|
-
type: 'StructureDefinition'
|
|
342
|
+
const structures = await manager.search({
|
|
343
|
+
type: 'StructureDefinition'
|
|
344
344
|
});
|
|
345
345
|
|
|
346
346
|
// Get all resources of kind "resource"
|
|
347
|
-
const resources = await manager.search({
|
|
348
|
-
kind: 'resource'
|
|
347
|
+
const resources = await manager.search({
|
|
348
|
+
kind: 'resource'
|
|
349
349
|
});
|
|
350
350
|
|
|
351
351
|
// Complex search
|
|
352
|
-
const valuesets = await manager.search({
|
|
352
|
+
const valuesets = await manager.search({
|
|
353
353
|
type: 'ValueSet',
|
|
354
354
|
package: { name: 'hl7.fhir.r4.core', version: '4.0.1' }
|
|
355
355
|
});
|
|
@@ -361,13 +361,13 @@ Searches and returns index entries (metadata only).
|
|
|
361
361
|
|
|
362
362
|
```typescript
|
|
363
363
|
// Find all CodeSystems
|
|
364
|
-
const entries = await manager.searchEntries({
|
|
365
|
-
type: 'CodeSystem'
|
|
364
|
+
const entries = await manager.searchEntries({
|
|
365
|
+
type: 'CodeSystem'
|
|
366
366
|
});
|
|
367
367
|
|
|
368
368
|
// Find by URL
|
|
369
|
-
const entries = await manager.searchEntries({
|
|
370
|
-
url: 'http://hl7.org/fhir/StructureDefinition/Patient'
|
|
369
|
+
const entries = await manager.searchEntries({
|
|
370
|
+
url: 'http://hl7.org/fhir/StructureDefinition/Patient'
|
|
371
371
|
});
|
|
372
372
|
```
|
|
373
373
|
|
|
@@ -534,12 +534,12 @@ The cache is stored as a JSON file with the following structure:
|
|
|
534
534
|
### Working with Multiple Packages
|
|
535
535
|
|
|
536
536
|
```typescript
|
|
537
|
-
const manager = CanonicalManager({
|
|
537
|
+
const manager = CanonicalManager({
|
|
538
538
|
packages: [
|
|
539
539
|
"hl7.fhir.r4.core",
|
|
540
540
|
"hl7.fhir.us.core@5.0.1",
|
|
541
541
|
"hl7.fhir.us.davinci-drug-formulary"
|
|
542
|
-
],
|
|
542
|
+
],
|
|
543
543
|
workingDir: "./fhir-packages"
|
|
544
544
|
});
|
|
545
545
|
|
|
@@ -549,7 +549,7 @@ await manager.init();
|
|
|
549
549
|
const allValueSets = await manager.search({ type: 'ValueSet' });
|
|
550
550
|
|
|
551
551
|
// Search in specific package
|
|
552
|
-
const usCoreProfiles = await manager.search({
|
|
552
|
+
const usCoreProfiles = await manager.search({
|
|
553
553
|
type: 'StructureDefinition',
|
|
554
554
|
package: { name: 'hl7.fhir.us.core', version: '5.0.1' }
|
|
555
555
|
});
|
|
@@ -559,14 +559,14 @@ const usCoreProfiles = await manager.search({
|
|
|
559
559
|
|
|
560
560
|
```typescript
|
|
561
561
|
// Use the default FHIR package registry
|
|
562
|
-
const manager = CanonicalManager({
|
|
562
|
+
const manager = CanonicalManager({
|
|
563
563
|
packages: ["hl7.fhir.r4.core"],
|
|
564
564
|
workingDir: "./fhir-packages",
|
|
565
|
-
registry: "https://fs.get-ig.org/pkgs"
|
|
565
|
+
registry: "https://fs.get-ig.org/pkgs/"
|
|
566
566
|
});
|
|
567
567
|
|
|
568
568
|
// Use a custom NPM registry
|
|
569
|
-
const manager = CanonicalManager({
|
|
569
|
+
const manager = CanonicalManager({
|
|
570
570
|
packages: ["hl7.fhir.r4.core"],
|
|
571
571
|
workingDir: "./fhir-packages",
|
|
572
572
|
registry: "https://my-private-registry.com"
|
|
@@ -582,10 +582,10 @@ async function validateResource(resource: any, manager: CanonicalManager) {
|
|
|
582
582
|
if (!profileUrl) {
|
|
583
583
|
throw new Error('No profile specified');
|
|
584
584
|
}
|
|
585
|
-
|
|
585
|
+
|
|
586
586
|
// Resolve the StructureDefinition
|
|
587
587
|
const profile = await manager.resolve(profileUrl);
|
|
588
|
-
|
|
588
|
+
|
|
589
589
|
// Validate resource against profile
|
|
590
590
|
// ... validation logic ...
|
|
591
591
|
}
|
|
@@ -597,12 +597,12 @@ async function validateResource(resource: any, manager: CanonicalManager) {
|
|
|
597
597
|
async function analyzeValueSetDependencies(manager: CanonicalManager) {
|
|
598
598
|
// Get all ValueSets
|
|
599
599
|
const valueSets = await manager.search({ type: 'ValueSet' });
|
|
600
|
-
|
|
600
|
+
|
|
601
601
|
const dependencies = new Map<string, Set<string>>();
|
|
602
|
-
|
|
602
|
+
|
|
603
603
|
for (const vs of valueSets) {
|
|
604
604
|
const vsPackage = vs.package?.name || 'unknown';
|
|
605
|
-
|
|
605
|
+
|
|
606
606
|
// Check compose.include for external code systems
|
|
607
607
|
if (vs.compose?.include) {
|
|
608
608
|
for (const include of vs.compose.include) {
|
|
@@ -610,7 +610,7 @@ async function analyzeValueSetDependencies(manager: CanonicalManager) {
|
|
|
610
610
|
try {
|
|
611
611
|
const cs = await manager.resolve(include.system);
|
|
612
612
|
const csPackage = cs.package?.name || 'unknown';
|
|
613
|
-
|
|
613
|
+
|
|
614
614
|
if (csPackage !== vsPackage) {
|
|
615
615
|
if (!dependencies.has(vsPackage)) {
|
|
616
616
|
dependencies.set(vsPackage, new Set());
|
|
@@ -624,7 +624,7 @@ async function analyzeValueSetDependencies(manager: CanonicalManager) {
|
|
|
624
624
|
}
|
|
625
625
|
}
|
|
626
626
|
}
|
|
627
|
-
|
|
627
|
+
|
|
628
628
|
return dependencies;
|
|
629
629
|
}
|
|
630
630
|
```
|
|
@@ -766,4 +766,4 @@ Contributions are welcome! Please feel free to submit a Pull Request.
|
|
|
766
766
|
2. Functional programming style
|
|
767
767
|
3. No external dependencies except Node.js built-ins
|
|
768
768
|
4. Comprehensive tests in `test/index.test.ts`
|
|
769
|
-
5. Update README.md with API changes
|
|
769
|
+
5. Update README.md with API changes
|
package/dist/cli/index.d.ts
CHANGED
package/dist/cli/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":";AAMA,OAAO,KAAK,EAAE,MAAM,EAA2B,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":";AAMA,OAAO,KAAK,EAAE,MAAM,EAA2B,MAAM,aAAa,CAAC;AAgGnE,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG;IACzC,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC;CAC3C,CA4CA;AAED,wBAAsB,eAAe,IAAI,OAAO,CAAC,GAAG,CAAC,CAWpD;AAED,wBAAsB,eAAe,CAAC,IAAI,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,CAG9D;AAED,wBAAgB,wBAAwB,CAAC,WAAW,EAAE,GAAG,GAAG,OAAO,CAAC,MAAM,CAAC,CAO1E"}
|
package/dist/cli/index.js
CHANGED
|
@@ -1,22 +1,22 @@
|
|
|
1
|
-
#!/usr/bin/env
|
|
2
|
-
import * as fs from
|
|
3
|
-
import * as path from
|
|
4
|
-
import { fileURLToPath } from
|
|
5
|
-
import { CanonicalManager } from
|
|
6
|
-
import { initCommand } from
|
|
7
|
-
import { listCommand } from
|
|
8
|
-
import { searchCommand } from
|
|
9
|
-
import { resolveCommand } from
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import * as fs from "fs";
|
|
3
|
+
import * as path from "path";
|
|
4
|
+
import { fileURLToPath } from "url";
|
|
5
|
+
import { CanonicalManager } from "../index.js";
|
|
6
|
+
import { initCommand } from "./init.js";
|
|
7
|
+
import { listCommand } from "./list.js";
|
|
8
|
+
import { searchCommand } from "./search.js";
|
|
9
|
+
import { resolveCommand } from "./resolve.js";
|
|
10
10
|
const __filename = fileURLToPath(import.meta.url);
|
|
11
11
|
const __dirname = path.dirname(__filename);
|
|
12
|
-
const packageJsonPath = path.join(__dirname,
|
|
13
|
-
let VERSION =
|
|
12
|
+
const packageJsonPath = path.join(__dirname, "..", "..", "package.json");
|
|
13
|
+
let VERSION = "unknown";
|
|
14
14
|
try {
|
|
15
|
-
const packageJson = JSON.parse(fs.readFileSync(packageJsonPath,
|
|
15
|
+
const packageJson = JSON.parse(fs.readFileSync(packageJsonPath, "utf-8"));
|
|
16
16
|
VERSION = packageJson.version;
|
|
17
17
|
}
|
|
18
18
|
catch (error) {
|
|
19
|
-
VERSION =
|
|
19
|
+
VERSION = "0.0.3";
|
|
20
20
|
}
|
|
21
21
|
function showHelp() {
|
|
22
22
|
console.log(`
|
|
@@ -26,7 +26,7 @@ Usage: fcm <command> [options]
|
|
|
26
26
|
|
|
27
27
|
Commands:
|
|
28
28
|
init Initialize FHIR packages in current directory
|
|
29
|
-
list List packages or resources
|
|
29
|
+
list List packages or resources
|
|
30
30
|
search Search for resources
|
|
31
31
|
resolve Get a resource by canonical URL
|
|
32
32
|
|
|
@@ -44,23 +44,32 @@ Examples:
|
|
|
44
44
|
async function main() {
|
|
45
45
|
const args = process.argv.slice(2);
|
|
46
46
|
const command = args[0];
|
|
47
|
-
if (!command || command ===
|
|
47
|
+
if (!command || command === "--help" || command === "-h") {
|
|
48
48
|
showHelp();
|
|
49
|
+
if (process.env.NODE_ENV === 'test') {
|
|
50
|
+
return;
|
|
51
|
+
}
|
|
49
52
|
process.exit(0);
|
|
50
53
|
}
|
|
51
|
-
if (command ===
|
|
54
|
+
if (command === "--version" || command === "-v") {
|
|
52
55
|
console.log(VERSION);
|
|
56
|
+
if (process.env.NODE_ENV === 'test') {
|
|
57
|
+
return;
|
|
58
|
+
}
|
|
53
59
|
process.exit(0);
|
|
54
60
|
}
|
|
55
61
|
const commands = {
|
|
56
62
|
init: initCommand,
|
|
57
63
|
list: listCommand,
|
|
58
64
|
search: searchCommand,
|
|
59
|
-
resolve: resolveCommand
|
|
65
|
+
resolve: resolveCommand,
|
|
60
66
|
};
|
|
61
67
|
if (!commands[command]) {
|
|
62
68
|
console.error(`Error: Unknown command '${command}'`);
|
|
63
69
|
console.error(`Run 'fcm --help' for usage information`);
|
|
70
|
+
if (process.env.NODE_ENV === 'test') {
|
|
71
|
+
throw new Error(`Unknown command '${command}'`);
|
|
72
|
+
}
|
|
64
73
|
process.exit(1);
|
|
65
74
|
}
|
|
66
75
|
try {
|
|
@@ -68,6 +77,9 @@ async function main() {
|
|
|
68
77
|
}
|
|
69
78
|
catch (error) {
|
|
70
79
|
console.error(`Error: ${error instanceof Error ? error.message : String(error)}`);
|
|
80
|
+
if (process.env.NODE_ENV === 'test') {
|
|
81
|
+
throw error;
|
|
82
|
+
}
|
|
71
83
|
process.exit(1);
|
|
72
84
|
}
|
|
73
85
|
}
|
|
@@ -76,10 +88,10 @@ export function parseArgs(args) {
|
|
|
76
88
|
const options = {};
|
|
77
89
|
for (let i = 0; i < args.length; i++) {
|
|
78
90
|
const arg = args[i];
|
|
79
|
-
if (arg && arg.startsWith(
|
|
91
|
+
if (arg && arg.startsWith("--")) {
|
|
80
92
|
const key = arg.slice(2);
|
|
81
93
|
const nextArg = args[i + 1];
|
|
82
|
-
if (nextArg && !nextArg.startsWith(
|
|
94
|
+
if (nextArg && !nextArg.startsWith("--")) {
|
|
83
95
|
options[key] = nextArg;
|
|
84
96
|
i++;
|
|
85
97
|
}
|
|
@@ -87,21 +99,21 @@ export function parseArgs(args) {
|
|
|
87
99
|
options[key] = true;
|
|
88
100
|
}
|
|
89
101
|
}
|
|
90
|
-
else if (arg && arg.startsWith(
|
|
102
|
+
else if (arg && arg.startsWith("-")) {
|
|
91
103
|
switch (arg) {
|
|
92
|
-
case
|
|
93
|
-
options.resourceType =
|
|
104
|
+
case "-sd":
|
|
105
|
+
options.resourceType = "StructureDefinition";
|
|
94
106
|
break;
|
|
95
|
-
case
|
|
96
|
-
options.resourceType =
|
|
107
|
+
case "-cs":
|
|
108
|
+
options.resourceType = "CodeSystem";
|
|
97
109
|
break;
|
|
98
|
-
case
|
|
99
|
-
options.resourceType =
|
|
110
|
+
case "-vs":
|
|
111
|
+
options.resourceType = "ValueSet";
|
|
100
112
|
break;
|
|
101
113
|
default:
|
|
102
114
|
const key = arg.slice(1);
|
|
103
115
|
const nextArg = args[i + 1];
|
|
104
|
-
if (nextArg && !nextArg.startsWith(
|
|
116
|
+
if (nextArg && !nextArg.startsWith("-")) {
|
|
105
117
|
options[key] = nextArg;
|
|
106
118
|
i++;
|
|
107
119
|
}
|
|
@@ -117,10 +129,10 @@ export function parseArgs(args) {
|
|
|
117
129
|
return { positional, options };
|
|
118
130
|
}
|
|
119
131
|
export async function loadPackageJson() {
|
|
120
|
-
const packagePath = path.join(process.cwd(),
|
|
132
|
+
const packagePath = path.join(process.cwd(), "package.json");
|
|
121
133
|
try {
|
|
122
134
|
if (fs.existsSync(packagePath)) {
|
|
123
|
-
const content = fs.readFileSync(packagePath,
|
|
135
|
+
const content = fs.readFileSync(packagePath, "utf-8");
|
|
124
136
|
return JSON.parse(content);
|
|
125
137
|
}
|
|
126
138
|
}
|
|
@@ -129,18 +141,16 @@ export async function loadPackageJson() {
|
|
|
129
141
|
return null;
|
|
130
142
|
}
|
|
131
143
|
export async function savePackageJson(data) {
|
|
132
|
-
const packagePath = path.join(process.cwd(),
|
|
133
|
-
fs.writeFileSync(packagePath, JSON.stringify(data, null, 2) +
|
|
144
|
+
const packagePath = path.join(process.cwd(), "package.json");
|
|
145
|
+
fs.writeFileSync(packagePath, JSON.stringify(data, null, 2) + "\n");
|
|
134
146
|
}
|
|
135
147
|
export function getConfigFromPackageJson(packageJson) {
|
|
136
148
|
const fcm = packageJson?.fcm || {};
|
|
137
149
|
return {
|
|
138
150
|
packages: fcm.packages || [],
|
|
139
151
|
registry: fcm.registry,
|
|
140
|
-
workingDir: process.cwd()
|
|
152
|
+
workingDir: process.cwd(),
|
|
141
153
|
};
|
|
142
154
|
}
|
|
143
|
-
|
|
144
|
-
main();
|
|
145
|
-
}
|
|
155
|
+
main();
|
|
146
156
|
//# sourceMappingURL=index.js.map
|
package/dist/cli/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":";AAEA,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AACpC,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAI/C,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAG9C,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAClD,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;AAC3C,MAAM,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC;AAEzE,IAAI,OAAO,GAAG,SAAS,CAAC;AACxB,IAAI,CAAC;IACH,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC,CAAC;IAC1E,OAAO,GAAG,WAAW,CAAC,OAAO,CAAC;AAChC,CAAC;AAAC,OAAO,KAAK,EAAE,CAAC;IAEf,OAAO,GAAG,OAAO,CAAC;AACpB,CAAC;AAED,SAAS,QAAQ;IACf,OAAO,CAAC,GAAG,CAAC;;;;;;;;;;;;;;;;;;;;CAoBb,CAAC,CAAC;AACH,CAAC;AAED,KAAK,UAAU,IAAI;IACjB,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACnC,MAAM,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;IAExB,IAAI,CAAC,OAAO,IAAI,OAAO,KAAK,QAAQ,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;QACzD,QAAQ,EAAE,CAAC;QACX,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,IAAI,OAAO,KAAK,WAAW,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;QAChD,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACrB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,QAAQ,GAAsD;QAClE,IAAI,EAAE,WAAW;QACjB,IAAI,EAAE,WAAW;QACjB,MAAM,EAAE,aAAa;QACrB,OAAO,EAAE,cAAc;KACxB,CAAC;IAEF,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;QACvB,OAAO,CAAC,KAAK,CAAC,2BAA2B,OAAO,GAAG,CAAC,CAAC;QACrD,OAAO,CAAC,KAAK,CAAC,wCAAwC,CAAC,CAAC;QACxD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,IAAI,CAAC;QACH,MAAM,QAAQ,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IACzC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"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"}
|
package/dist/cli/init.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/cli/init.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/cli/init.ts"],"names":[],"mappings":"AASA,wBAAsB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CA0G/D"}
|
package/dist/cli/init.js
CHANGED
|
@@ -1,8 +1,10 @@
|
|
|
1
|
-
import * as fs from
|
|
2
|
-
import * as path from
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
1
|
+
import * as fs from "fs";
|
|
2
|
+
import * as path from "path";
|
|
3
|
+
import { exec } from "child_process";
|
|
4
|
+
import { promisify } from "util";
|
|
5
|
+
import { parseArgs, loadPackageJson, savePackageJson } from "./index.js";
|
|
6
|
+
import { CanonicalManager } from "../index.js";
|
|
7
|
+
const execAsync = promisify(exec);
|
|
6
8
|
export async function initCommand(args) {
|
|
7
9
|
const { positional, options } = parseArgs(args);
|
|
8
10
|
const packages = positional;
|
|
@@ -13,13 +15,15 @@ export async function initCommand(args) {
|
|
|
13
15
|
packageJson = {
|
|
14
16
|
name: path.basename(process.cwd()),
|
|
15
17
|
version: "1.0.0",
|
|
16
|
-
type: "module"
|
|
18
|
+
type: "module",
|
|
17
19
|
};
|
|
18
20
|
}
|
|
19
21
|
if (!packageJson.fcm) {
|
|
20
22
|
packageJson.fcm = {
|
|
21
23
|
packages: [],
|
|
22
|
-
registry: registry
|
|
24
|
+
registry: registry
|
|
25
|
+
? (registry.endsWith('/') ? registry : `${registry}/`)
|
|
26
|
+
: "https://fs.get-ig.org/pkgs/",
|
|
23
27
|
};
|
|
24
28
|
}
|
|
25
29
|
const packagesToInstall = packages.length > 0 ? packages : packageJson.fcm.packages;
|
|
@@ -27,6 +31,9 @@ export async function initCommand(args) {
|
|
|
27
31
|
console.error("Error: No packages specified");
|
|
28
32
|
console.error("Usage: fcm init [packages...]");
|
|
29
33
|
console.error("Example: fcm init hl7.fhir.r4.core hl7.fhir.us.core@5.0.1");
|
|
34
|
+
if (process.env.NODE_ENV === 'test') {
|
|
35
|
+
throw new Error("No packages specified");
|
|
36
|
+
}
|
|
30
37
|
process.exit(1);
|
|
31
38
|
}
|
|
32
39
|
const existingPackages = new Set(packageJson.fcm.packages);
|
|
@@ -35,7 +42,7 @@ export async function initCommand(args) {
|
|
|
35
42
|
});
|
|
36
43
|
packageJson.fcm.packages = Array.from(existingPackages);
|
|
37
44
|
if (registry) {
|
|
38
|
-
packageJson.fcm.registry = registry
|
|
45
|
+
packageJson.fcm.registry = registry.endsWith('/') ? registry : `${registry}/`;
|
|
39
46
|
}
|
|
40
47
|
if (!packageJson.dependencies) {
|
|
41
48
|
packageJson.dependencies = {};
|
|
@@ -48,12 +55,13 @@ export async function initCommand(args) {
|
|
|
48
55
|
for (const pkg of packagesToInstall) {
|
|
49
56
|
console.log(`Installing ${pkg}...`);
|
|
50
57
|
try {
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
58
|
+
const command = packageJson.fcm.registry
|
|
59
|
+
? `npm install ${pkg} --registry ${packageJson.fcm.registry}`
|
|
60
|
+
: `npm install ${pkg}`;
|
|
61
|
+
await execAsync(command, {
|
|
62
|
+
cwd: process.cwd(),
|
|
63
|
+
maxBuffer: 10 * 1024 * 1024,
|
|
64
|
+
});
|
|
57
65
|
}
|
|
58
66
|
catch (error) {
|
|
59
67
|
console.error(`Failed to install ${pkg}`);
|
|
@@ -61,15 +69,16 @@ export async function initCommand(args) {
|
|
|
61
69
|
}
|
|
62
70
|
}
|
|
63
71
|
console.log("Building package index...");
|
|
72
|
+
console.log("Registry", packageJson?.fcm?.registry);
|
|
64
73
|
const manager = CanonicalManager({
|
|
65
74
|
packages: packageJson.fcm.packages,
|
|
66
75
|
workingDir: process.cwd(),
|
|
67
|
-
registry: packageJson.fcm.registry
|
|
76
|
+
registry: packageJson.fcm.registry,
|
|
68
77
|
});
|
|
69
78
|
await manager.init();
|
|
70
79
|
const installedPackages = await manager.packages();
|
|
71
80
|
console.log("\nInstalled packages:");
|
|
72
|
-
installedPackages.forEach(pkg => {
|
|
81
|
+
installedPackages.forEach((pkg) => {
|
|
73
82
|
console.log(` ${pkg.name}@${pkg.version}`);
|
|
74
83
|
});
|
|
75
84
|
await manager.destroy();
|
package/dist/cli/init.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/cli/init.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,EAAE,CAAC,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/cli/init.ts"],"names":[],"mappings":"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"}
|
package/dist/cli/list.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../src/cli/list.ts"],"names":[],"mappings":"AAGA,wBAAsB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../src/cli/list.ts"],"names":[],"mappings":"AAGA,wBAAsB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAoF/D"}
|
package/dist/cli/list.js
CHANGED
|
@@ -9,6 +9,9 @@ export async function listCommand(args) {
|
|
|
9
9
|
if (!packageJson?.fcm?.packages || packageJson.fcm.packages.length === 0) {
|
|
10
10
|
console.error("Error: No FHIR packages configured");
|
|
11
11
|
console.error("Run 'fcm init' first to initialize packages");
|
|
12
|
+
if (process.env.NODE_ENV === 'test') {
|
|
13
|
+
throw new Error("No FHIR packages configured");
|
|
14
|
+
}
|
|
12
15
|
process.exit(1);
|
|
13
16
|
}
|
|
14
17
|
const config = getConfigFromPackageJson(packageJson);
|
|
@@ -34,6 +37,9 @@ export async function listCommand(args) {
|
|
|
34
37
|
console.error(`Error: Package '${packageName}' not found`);
|
|
35
38
|
console.error("Available packages:");
|
|
36
39
|
packages.forEach(p => console.error(` - ${p.name}`));
|
|
40
|
+
if (process.env.NODE_ENV === 'test') {
|
|
41
|
+
throw new Error(`Package '${packageName}' not found`);
|
|
42
|
+
}
|
|
37
43
|
process.exit(1);
|
|
38
44
|
}
|
|
39
45
|
let resources = await manager.searchEntries({ package: pkg });
|
package/dist/cli/list.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"list.js","sourceRoot":"","sources":["../../src/cli/list.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"list.js","sourceRoot":"","sources":["../../src/cli/list.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resolve.d.ts","sourceRoot":"","sources":["../../src/cli/resolve.ts"],"names":[],"mappings":"AAGA,wBAAsB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"resolve.d.ts","sourceRoot":"","sources":["../../src/cli/resolve.ts"],"names":[],"mappings":"AAGA,wBAAsB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CA2DlE"}
|
package/dist/cli/resolve.js
CHANGED
|
@@ -8,12 +8,18 @@ export async function resolveCommand(args) {
|
|
|
8
8
|
console.error("Error: Canonical URL required");
|
|
9
9
|
console.error("Usage: fcm resolve <canonical-url> [--fields field1,field2]");
|
|
10
10
|
console.error("Example: fcm resolve http://hl7.org/fhir/StructureDefinition/Patient");
|
|
11
|
+
if (process.env.NODE_ENV === 'test') {
|
|
12
|
+
throw new Error("Canonical URL required");
|
|
13
|
+
}
|
|
11
14
|
process.exit(1);
|
|
12
15
|
}
|
|
13
16
|
const packageJson = await loadPackageJson();
|
|
14
17
|
if (!packageJson?.fcm?.packages || packageJson.fcm.packages.length === 0) {
|
|
15
18
|
console.error("Error: No FHIR packages configured");
|
|
16
19
|
console.error("Run 'fcm init' first to initialize packages");
|
|
20
|
+
if (process.env.NODE_ENV === 'test') {
|
|
21
|
+
throw new Error("No FHIR packages configured");
|
|
22
|
+
}
|
|
17
23
|
process.exit(1);
|
|
18
24
|
}
|
|
19
25
|
const config = getConfigFromPackageJson(packageJson);
|
|
@@ -37,6 +43,9 @@ export async function resolveCommand(args) {
|
|
|
37
43
|
}
|
|
38
44
|
catch (error) {
|
|
39
45
|
console.error(`Error: Resource not found: ${url}`);
|
|
46
|
+
if (process.env.NODE_ENV === 'test') {
|
|
47
|
+
throw error;
|
|
48
|
+
}
|
|
40
49
|
process.exit(1);
|
|
41
50
|
}
|
|
42
51
|
finally {
|
package/dist/cli/resolve.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resolve.js","sourceRoot":"","sources":["../../src/cli/resolve.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,wBAAwB,EAAE,MAAM,YAAY,CAAC;AAClF,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAE/C,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,IAAc;IACjD,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;IAChD,MAAM,GAAG,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;IAC1B,MAAM,MAAM,GAAG,OAAO,CAAC,MAA4B,CAAC;IAEpD,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,OAAO,CAAC,KAAK,CAAC,+BAA+B,CAAC,CAAC;QAC/C,OAAO,CAAC,KAAK,CAAC,6DAA6D,CAAC,CAAC;QAC7E,OAAO,CAAC,KAAK,CAAC,sEAAsE,CAAC,CAAC;QACtF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAGD,MAAM,WAAW,GAAG,MAAM,eAAe,EAAE,CAAC;IAC5C,IAAI,CAAC,WAAW,EAAE,GAAG,EAAE,QAAQ,IAAI,WAAW,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzE,OAAO,CAAC,KAAK,CAAC,oCAAoC,CAAC,CAAC;QACpD,OAAO,CAAC,KAAK,CAAC,6CAA6C,CAAC,CAAC;QAC7D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,MAAM,GAAG,wBAAwB,CAAC,WAAW,CAAC,CAAC;IACrD,MAAM,OAAO,GAAG,gBAAgB,CAAC,MAAa,CAAC,CAAC;IAChD,MAAM,OAAO,CAAC,IAAI,EAAE,CAAC;IAErB,IAAI,CAAC;QAEH,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAE5C,IAAI,MAAM,EAAE,CAAC;YAEX,MAAM,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;YACvD,MAAM,QAAQ,GAAQ,EAAE,CAAC;YAEzB,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;gBACxB,IAAI,KAAK,IAAI,QAAQ,EAAE,CAAC;oBACtB,QAAQ,CAAC,KAAK,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;gBACpC,CAAC;YACH,CAAC,CAAC,CAAC;YAEH,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QACjD,CAAC;aAAM,CAAC;YAEN,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QACjD,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,8BAA8B,GAAG,EAAE,CAAC,CAAC;QACnD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;YAAS,CAAC;QACT,MAAM,OAAO,CAAC,OAAO,EAAE,CAAC;IAC1B,CAAC;AACH,CAAC"}
|
|
1
|
+
{"version":3,"file":"resolve.js","sourceRoot":"","sources":["../../src/cli/resolve.ts"],"names":[],"mappings":"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"}
|
package/dist/cli/search.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"search.d.ts","sourceRoot":"","sources":["../../src/cli/search.ts"],"names":[],"mappings":"AAGA,wBAAsB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CA+
|
|
1
|
+
{"version":3,"file":"search.d.ts","sourceRoot":"","sources":["../../src/cli/search.ts"],"names":[],"mappings":"AAGA,wBAAsB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CA+EjE"}
|
package/dist/cli/search.js
CHANGED
|
@@ -12,44 +12,38 @@ export async function searchCommand(args) {
|
|
|
12
12
|
if (!packageJson?.fcm?.packages || packageJson.fcm.packages.length === 0) {
|
|
13
13
|
console.error("Error: No FHIR packages configured");
|
|
14
14
|
console.error("Run 'fcm init' first to initialize packages");
|
|
15
|
+
if (process.env.NODE_ENV === 'test' || process.env.BUN_TEST) {
|
|
16
|
+
throw new Error("No FHIR packages configured");
|
|
17
|
+
}
|
|
15
18
|
process.exit(1);
|
|
16
19
|
}
|
|
17
20
|
const config = getConfigFromPackageJson(packageJson);
|
|
18
21
|
const manager = CanonicalManager(config);
|
|
19
22
|
await manager.init();
|
|
20
23
|
try {
|
|
21
|
-
const
|
|
24
|
+
const filters = {};
|
|
25
|
+
if (resourceTypeFilter) {
|
|
26
|
+
filters.resourceType = resourceTypeFilter;
|
|
27
|
+
}
|
|
28
|
+
if (typeFilter) {
|
|
29
|
+
filters.type = typeFilter;
|
|
30
|
+
}
|
|
22
31
|
if (kindFilter) {
|
|
23
|
-
|
|
32
|
+
filters.kind = kindFilter;
|
|
24
33
|
}
|
|
25
34
|
if (packageFilter) {
|
|
26
35
|
const packages = await manager.packages();
|
|
27
36
|
const pkg = packages.find(p => p.name === packageFilter);
|
|
28
37
|
if (!pkg) {
|
|
29
38
|
console.error(`Error: Package '${packageFilter}' not found`);
|
|
39
|
+
if (process.env.NODE_ENV === 'test' || process.env.BUN_TEST) {
|
|
40
|
+
throw new Error(`Package '${packageFilter}' not found`);
|
|
41
|
+
}
|
|
30
42
|
process.exit(1);
|
|
31
43
|
}
|
|
32
|
-
|
|
33
|
-
}
|
|
34
|
-
let results = await manager.searchEntries(searchCriteria);
|
|
35
|
-
if (resourceTypeFilter) {
|
|
36
|
-
results = results.filter(entry => entry.resourceType === resourceTypeFilter);
|
|
37
|
-
}
|
|
38
|
-
if (typeFilter) {
|
|
39
|
-
results = results.filter(entry => entry.type === typeFilter);
|
|
40
|
-
}
|
|
41
|
-
if (searchTerms.length > 0) {
|
|
42
|
-
const terms = searchTerms.map(t => t.toLowerCase());
|
|
43
|
-
results = results.filter(entry => {
|
|
44
|
-
if (!entry.url)
|
|
45
|
-
return false;
|
|
46
|
-
const urlLower = entry.url.toLowerCase();
|
|
47
|
-
return terms.every(term => {
|
|
48
|
-
const urlParts = urlLower.split(/[\/\-_\.]+/);
|
|
49
|
-
return urlParts.some(part => part.startsWith(term));
|
|
50
|
-
});
|
|
51
|
-
});
|
|
44
|
+
filters.package = pkg;
|
|
52
45
|
}
|
|
46
|
+
const results = await manager.smartSearch(searchTerms, filters);
|
|
53
47
|
if (isJson) {
|
|
54
48
|
console.log(JSON.stringify(results, null, 2));
|
|
55
49
|
}
|