@atomic-ehr/fhir-canonical-manager 0.0.2 → 0.0.4
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 +265 -25
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.js +35 -1
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/init.js +1 -1
- package/dist/cli/init.js.map +1 -1
- package/dist/cli/search.d.ts.map +1 -1
- package/dist/cli/search.js +32 -10
- package/dist/cli/search.js.map +1 -1
- package/dist/compat.d.ts +17 -0
- package/dist/compat.d.ts.map +1 -0
- package/dist/compat.js +56 -0
- package/dist/compat.js.map +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +25 -5
- package/dist/index.js.map +1 -1
- package/package.json +10 -3
- package/src/cli/index.ts +37 -1
- package/src/cli/init.ts +1 -1
- package/src/cli/search.ts +42 -12
- package/src/compat.ts +98 -0
- package/src/index.ts +38 -6
package/README.md
CHANGED
|
@@ -13,6 +13,7 @@ A TypeScript package manager for FHIR resources that provides canonical URL reso
|
|
|
13
13
|
- 🎯 **Flexible Search** - Search resources by type, kind, URL, version, or package
|
|
14
14
|
- ⚡ **Performance Optimized** - In-memory cache with disk persistence
|
|
15
15
|
- 🛠️ **TypeScript First** - Full TypeScript support with comprehensive types
|
|
16
|
+
- 🖥️ **CLI Tool** - Command-line interface for package management and resource discovery
|
|
16
17
|
|
|
17
18
|
## Installation
|
|
18
19
|
|
|
@@ -41,6 +42,185 @@ const resource = await manager.resolve('http://hl7.org/fhir/StructureDefinition/
|
|
|
41
42
|
console.log(resource.url); // http://hl7.org/fhir/StructureDefinition/Patient
|
|
42
43
|
```
|
|
43
44
|
|
|
45
|
+
## CLI Usage
|
|
46
|
+
|
|
47
|
+
The package includes a powerful command-line interface (`fcm`) for managing FHIR packages and searching resources without writing code.
|
|
48
|
+
|
|
49
|
+
### Installation
|
|
50
|
+
|
|
51
|
+
```bash
|
|
52
|
+
# Install globally
|
|
53
|
+
npm install -g @atomic-ehr/fhir-canonical-manager
|
|
54
|
+
|
|
55
|
+
# Or use with npx
|
|
56
|
+
npx @atomic-ehr/fhir-canonical-manager
|
|
57
|
+
|
|
58
|
+
# Or run directly with bunx
|
|
59
|
+
bunx @atomic-ehr/fhir-canonical-manager
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
### Getting Started
|
|
63
|
+
|
|
64
|
+
```bash
|
|
65
|
+
# Create a new project and initialize with FHIR packages
|
|
66
|
+
mkdir my-fhir-project && cd my-fhir-project
|
|
67
|
+
fcm init hl7.fhir.r4.core
|
|
68
|
+
|
|
69
|
+
# Search for resources
|
|
70
|
+
fcm search Patient
|
|
71
|
+
|
|
72
|
+
# Get a specific resource
|
|
73
|
+
fcm resolve http://hl7.org/fhir/StructureDefinition/Patient
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
### Commands
|
|
77
|
+
|
|
78
|
+
#### `fcm init`
|
|
79
|
+
Initialize FHIR packages in the current directory.
|
|
80
|
+
|
|
81
|
+
```bash
|
|
82
|
+
# Initialize with packages
|
|
83
|
+
fcm init hl7.fhir.r4.core hl7.fhir.us.core@5.0.1
|
|
84
|
+
|
|
85
|
+
# With custom registry
|
|
86
|
+
fcm init hl7.fhir.r4.core --registry https://packages.simplifier.net
|
|
87
|
+
|
|
88
|
+
# Initialize from existing package.json
|
|
89
|
+
fcm init
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
Configuration is stored in `package.json`:
|
|
93
|
+
```json
|
|
94
|
+
{
|
|
95
|
+
"fcm": {
|
|
96
|
+
"packages": ["hl7.fhir.r4.core", "hl7.fhir.us.core@5.0.1"],
|
|
97
|
+
"registry": "https://fs.get-ig.org/pkgs"
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
#### `fcm list`
|
|
103
|
+
List installed packages or resources.
|
|
104
|
+
|
|
105
|
+
```bash
|
|
106
|
+
# List all packages
|
|
107
|
+
fcm list
|
|
108
|
+
|
|
109
|
+
# List resources in a package
|
|
110
|
+
fcm list hl7.fhir.r4.core
|
|
111
|
+
|
|
112
|
+
# Filter by type
|
|
113
|
+
fcm list hl7.fhir.r4.core --type StructureDefinition
|
|
114
|
+
|
|
115
|
+
# Output as JSON
|
|
116
|
+
fcm list --json
|
|
117
|
+
```
|
|
118
|
+
|
|
119
|
+
#### `fcm search`
|
|
120
|
+
Search for resources with advanced filtering and prefix matching capabilities.
|
|
121
|
+
|
|
122
|
+
**Basic Usage:**
|
|
123
|
+
```bash
|
|
124
|
+
# Search by URL pattern
|
|
125
|
+
fcm search Patient
|
|
126
|
+
|
|
127
|
+
# Prefix search - space-separated terms match URL components
|
|
128
|
+
fcm search str def pat # Matches: StructureDefinition/Patient
|
|
129
|
+
```
|
|
130
|
+
|
|
131
|
+
**Resource Type Shortcuts:**
|
|
132
|
+
```bash
|
|
133
|
+
fcm search -sd # All StructureDefinitions
|
|
134
|
+
fcm search -cs # All CodeSystems
|
|
135
|
+
fcm search -vs # All ValueSets
|
|
136
|
+
fcm search -sd patient # Patient-related StructureDefinitions
|
|
137
|
+
```
|
|
138
|
+
|
|
139
|
+
**Advanced Filtering:**
|
|
140
|
+
```bash
|
|
141
|
+
# Filter by type (-t)
|
|
142
|
+
fcm search -t Extension # All Extensions
|
|
143
|
+
fcm search -t Patient # Resources with type="Patient"
|
|
144
|
+
fcm search -sd -t Patient # Patient StructureDefinition specifically
|
|
145
|
+
|
|
146
|
+
# Filter by kind (-k)
|
|
147
|
+
fcm search -k resource # All resources (Patient, Observation, etc.)
|
|
148
|
+
fcm search -k complex-type # All complex types (HumanName, Address, etc.)
|
|
149
|
+
fcm search -k primitive-type # All primitive types (string, boolean, etc.)
|
|
150
|
+
|
|
151
|
+
# Combine filters
|
|
152
|
+
fcm search -t Extension -k complex-type # All Extension complex types
|
|
153
|
+
fcm search -sd pat -t Extension # Patient-related Extensions
|
|
154
|
+
|
|
155
|
+
# Filter by package
|
|
156
|
+
fcm search allergy --package hl7.fhir.us.core
|
|
157
|
+
|
|
158
|
+
# Output as JSON
|
|
159
|
+
fcm search Patient --json
|
|
160
|
+
```
|
|
161
|
+
|
|
162
|
+
**Output Format:**
|
|
163
|
+
By default, results are displayed one per line in the format:
|
|
164
|
+
```
|
|
165
|
+
url, {"resourceType":"...", "kind":"...", "type":"..."}
|
|
166
|
+
```
|
|
167
|
+
|
|
168
|
+
Example output:
|
|
169
|
+
```
|
|
170
|
+
http://hl7.org/fhir/StructureDefinition/Patient, {"resourceType":"StructureDefinition","kind":"resource","type":"Patient"}
|
|
171
|
+
```
|
|
172
|
+
|
|
173
|
+
#### `fcm resolve`
|
|
174
|
+
Get a resource by its canonical URL.
|
|
175
|
+
|
|
176
|
+
```bash
|
|
177
|
+
# Display resource
|
|
178
|
+
fcm resolve http://hl7.org/fhir/StructureDefinition/Patient
|
|
179
|
+
|
|
180
|
+
# Save to file
|
|
181
|
+
fcm resolve http://hl7.org/fhir/ValueSet/administrative-gender > gender.json
|
|
182
|
+
|
|
183
|
+
# Show only specific fields
|
|
184
|
+
fcm resolve http://hl7.org/fhir/StructureDefinition/Patient --fields url,type,kind
|
|
185
|
+
```
|
|
186
|
+
|
|
187
|
+
### CLI Examples
|
|
188
|
+
|
|
189
|
+
```bash
|
|
190
|
+
# Set up a new FHIR project
|
|
191
|
+
mkdir my-fhir-project && cd my-fhir-project
|
|
192
|
+
fcm init hl7.fhir.r4.core
|
|
193
|
+
|
|
194
|
+
# Search for Observation-related resources
|
|
195
|
+
fcm search observation
|
|
196
|
+
|
|
197
|
+
# Get a specific resource and save it
|
|
198
|
+
fcm resolve http://hl7.org/fhir/StructureDefinition/Observation > observation.json
|
|
199
|
+
|
|
200
|
+
# List all ValueSets in JSON format
|
|
201
|
+
fcm search --type ValueSet --json > valuesets.json
|
|
202
|
+
```
|
|
203
|
+
|
|
204
|
+
### Quick Reference
|
|
205
|
+
|
|
206
|
+
| Task | Command |
|
|
207
|
+
|------|---------|
|
|
208
|
+
| Initialize project | `fcm init hl7.fhir.r4.core` |
|
|
209
|
+
| List packages | `fcm list` |
|
|
210
|
+
| List package resources | `fcm list hl7.fhir.r4.core` |
|
|
211
|
+
| Search all resources | `fcm search` |
|
|
212
|
+
| Search by name | `fcm search Patient` |
|
|
213
|
+
| Search with prefix | `fcm search str def pat` |
|
|
214
|
+
| All StructureDefinitions | `fcm search -sd` |
|
|
215
|
+
| All CodeSystems | `fcm search -cs` |
|
|
216
|
+
| All ValueSets | `fcm search -vs` |
|
|
217
|
+
| Filter by type | `fcm search -t Extension` |
|
|
218
|
+
| Filter by kind | `fcm search -k resource` |
|
|
219
|
+
| Combine filters | `fcm search -sd -t Patient` |
|
|
220
|
+
| Get resource | `fcm resolve <url>` |
|
|
221
|
+
| Export as JSON | `fcm search --json` |
|
|
222
|
+
| Help | `fcm --help` |
|
|
223
|
+
|
|
44
224
|
## Core Concepts
|
|
45
225
|
|
|
46
226
|
### Package Management
|
|
@@ -218,6 +398,79 @@ Cleans up resources and clears cache from memory (disk cache persists).
|
|
|
218
398
|
await manager.destroy();
|
|
219
399
|
```
|
|
220
400
|
|
|
401
|
+
## CLI Reference
|
|
402
|
+
|
|
403
|
+
The `fcm` command-line interface provides comprehensive FHIR resource management capabilities.
|
|
404
|
+
|
|
405
|
+
### Command Overview
|
|
406
|
+
|
|
407
|
+
| Command | Description |
|
|
408
|
+
|---------|-------------|
|
|
409
|
+
| `fcm init [packages...]` | Initialize FHIR packages in current directory |
|
|
410
|
+
| `fcm list [package]` | List packages or resources |
|
|
411
|
+
| `fcm search [terms...]` | Search resources with advanced filtering |
|
|
412
|
+
| `fcm resolve <url>` | Get a resource by canonical URL |
|
|
413
|
+
|
|
414
|
+
### Global Options
|
|
415
|
+
|
|
416
|
+
- `--help`, `-h` - Show help information
|
|
417
|
+
- `--version`, `-v` - Show version number
|
|
418
|
+
- `--json` - Output results as JSON (available for list, search, resolve)
|
|
419
|
+
|
|
420
|
+
### Search Options
|
|
421
|
+
|
|
422
|
+
| Option | Description | Example |
|
|
423
|
+
|--------|-------------|---------|
|
|
424
|
+
| `-sd` | Filter to StructureDefinitions | `fcm search -sd` |
|
|
425
|
+
| `-cs` | Filter to CodeSystems | `fcm search -cs` |
|
|
426
|
+
| `-vs` | Filter to ValueSets | `fcm search -vs` |
|
|
427
|
+
| `-t <type>` | Filter by type field | `fcm search -t Extension` |
|
|
428
|
+
| `-k <kind>` | Filter by kind field | `fcm search -k resource` |
|
|
429
|
+
| `--type <resourceType>` | Filter by resourceType | `fcm search --type ValueSet` |
|
|
430
|
+
| `--package <name>` | Filter by package | `fcm search --package hl7.fhir.us.core` |
|
|
431
|
+
|
|
432
|
+
### Prefix Search
|
|
433
|
+
|
|
434
|
+
The search command supports intelligent prefix matching. When you provide multiple space-separated terms, each term is matched as a prefix against URL components:
|
|
435
|
+
|
|
436
|
+
```bash
|
|
437
|
+
# Search for "str" AND "def" AND "pat" as prefixes
|
|
438
|
+
fcm search str def pat
|
|
439
|
+
|
|
440
|
+
# This matches URLs like:
|
|
441
|
+
# - http://hl7.org/fhir/StructureDefinition/Patient
|
|
442
|
+
# - http://hl7.org/fhir/StructureDefinition/PatientContact
|
|
443
|
+
```
|
|
444
|
+
|
|
445
|
+
### Filter Combinations
|
|
446
|
+
|
|
447
|
+
Filters can be combined for precise searching:
|
|
448
|
+
|
|
449
|
+
```bash
|
|
450
|
+
# Find all Extension complex types
|
|
451
|
+
fcm search -t Extension -k complex-type
|
|
452
|
+
|
|
453
|
+
# Find Patient-related Extensions
|
|
454
|
+
fcm search -sd pat -t Extension
|
|
455
|
+
|
|
456
|
+
# Find all primitive types in US Core
|
|
457
|
+
fcm search -k primitive-type --package hl7.fhir.us.core
|
|
458
|
+
```
|
|
459
|
+
|
|
460
|
+
### Output Formats
|
|
461
|
+
|
|
462
|
+
**Default (Single-line):**
|
|
463
|
+
```
|
|
464
|
+
http://hl7.org/fhir/StructureDefinition/Patient, {"resourceType":"StructureDefinition","kind":"resource","type":"Patient"}
|
|
465
|
+
```
|
|
466
|
+
|
|
467
|
+
**JSON Format:**
|
|
468
|
+
```bash
|
|
469
|
+
fcm search Patient --json
|
|
470
|
+
```
|
|
471
|
+
|
|
472
|
+
Returns full IndexEntry objects as JSON array.
|
|
473
|
+
|
|
221
474
|
## Directory Structure
|
|
222
475
|
|
|
223
476
|
After initialization, your working directory will contain:
|
|
@@ -449,27 +702,6 @@ interface SourceContext {
|
|
|
449
702
|
}
|
|
450
703
|
```
|
|
451
704
|
|
|
452
|
-
## CLI Tool
|
|
453
|
-
|
|
454
|
-
The package includes a command-line search tool:
|
|
455
|
-
|
|
456
|
-
```bash
|
|
457
|
-
# Search by URL pattern
|
|
458
|
-
bun tools/search-canonical.ts --url Patient --limit 10
|
|
459
|
-
|
|
460
|
-
# Find all StructureDefinitions
|
|
461
|
-
bun tools/search-canonical.ts --type StructureDefinition
|
|
462
|
-
|
|
463
|
-
# Search by kind
|
|
464
|
-
bun tools/search-canonical.ts --kind resource --limit 20
|
|
465
|
-
|
|
466
|
-
# Export as JSON
|
|
467
|
-
bun tools/search-canonical.ts --type ValueSet --format json > valuesets.json
|
|
468
|
-
|
|
469
|
-
# Filter by package
|
|
470
|
-
bun tools/search-canonical.ts --package hl7.fhir.r4.core --type CodeSystem
|
|
471
|
-
```
|
|
472
|
-
|
|
473
705
|
## Development
|
|
474
706
|
|
|
475
707
|
To install dependencies:
|
|
@@ -495,11 +727,19 @@ bun run example.ts
|
|
|
495
727
|
```
|
|
496
728
|
fhir-canonical-manager/
|
|
497
729
|
├── src/
|
|
498
|
-
│
|
|
730
|
+
│ ├── index.ts # Core library implementation
|
|
731
|
+
│ ├── compat.ts # Bun/Node.js compatibility layer
|
|
732
|
+
│ └── cli/ # CLI implementation
|
|
733
|
+
│ ├── index.ts # CLI entry point
|
|
734
|
+
│ ├── init.ts # Init command
|
|
735
|
+
│ ├── list.ts # List command
|
|
736
|
+
│ ├── search.ts # Search command
|
|
737
|
+
│ └── resolve.ts # Resolve command
|
|
499
738
|
├── test/
|
|
500
|
-
│
|
|
501
|
-
├──
|
|
502
|
-
│ └──
|
|
739
|
+
│ ├── index.test.ts # Core library tests
|
|
740
|
+
│ ├── cli.test.ts # CLI unit tests
|
|
741
|
+
│ └── cli-integration.test.ts # CLI integration tests
|
|
742
|
+
├── dist/ # Compiled output (generated)
|
|
503
743
|
├── example.ts # Usage example
|
|
504
744
|
├── package.json
|
|
505
745
|
├── tsconfig.json
|
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":";
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":";AAMA,OAAO,KAAK,EAAE,MAAM,EAA2B,MAAM,UAAU,CAAC;AAkFhE,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG;IAAE,UAAU,EAAE,MAAM,EAAE,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,CAAA;CAAE,CA4C7G;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,12 +1,23 @@
|
|
|
1
1
|
#!/usr/bin/env bun
|
|
2
2
|
import * as fs from 'fs';
|
|
3
3
|
import * as path from 'path';
|
|
4
|
+
import { fileURLToPath } from 'url';
|
|
4
5
|
import { CanonicalManager } from '../index';
|
|
5
6
|
import { initCommand } from './init';
|
|
6
7
|
import { listCommand } from './list';
|
|
7
8
|
import { searchCommand } from './search';
|
|
8
9
|
import { resolveCommand } from './resolve';
|
|
9
|
-
const
|
|
10
|
+
const __filename = fileURLToPath(import.meta.url);
|
|
11
|
+
const __dirname = path.dirname(__filename);
|
|
12
|
+
const packageJsonPath = path.join(__dirname, '..', '..', 'package.json');
|
|
13
|
+
let VERSION = 'unknown';
|
|
14
|
+
try {
|
|
15
|
+
const packageJson = JSON.parse(fs.readFileSync(packageJsonPath, 'utf-8'));
|
|
16
|
+
VERSION = packageJson.version;
|
|
17
|
+
}
|
|
18
|
+
catch (error) {
|
|
19
|
+
VERSION = '0.0.3';
|
|
20
|
+
}
|
|
10
21
|
function showHelp() {
|
|
11
22
|
console.log(`
|
|
12
23
|
fcm - FHIR Canonical Manager CLI
|
|
@@ -76,6 +87,29 @@ export function parseArgs(args) {
|
|
|
76
87
|
options[key] = true;
|
|
77
88
|
}
|
|
78
89
|
}
|
|
90
|
+
else if (arg && arg.startsWith('-')) {
|
|
91
|
+
switch (arg) {
|
|
92
|
+
case '-sd':
|
|
93
|
+
options.resourceType = 'StructureDefinition';
|
|
94
|
+
break;
|
|
95
|
+
case '-cs':
|
|
96
|
+
options.resourceType = 'CodeSystem';
|
|
97
|
+
break;
|
|
98
|
+
case '-vs':
|
|
99
|
+
options.resourceType = 'ValueSet';
|
|
100
|
+
break;
|
|
101
|
+
default:
|
|
102
|
+
const key = arg.slice(1);
|
|
103
|
+
const nextArg = args[i + 1];
|
|
104
|
+
if (nextArg && !nextArg.startsWith('-')) {
|
|
105
|
+
options[key] = nextArg;
|
|
106
|
+
i++;
|
|
107
|
+
}
|
|
108
|
+
else {
|
|
109
|
+
options[key] = true;
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
}
|
|
79
113
|
else if (arg) {
|
|
80
114
|
positional.push(arg);
|
|
81
115
|
}
|
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,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAI5C,OAAO,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AACrC,OAAO,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AACrC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"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"}
|
package/dist/cli/init.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import * as fs from 'fs';
|
|
2
2
|
import * as path from 'path';
|
|
3
|
-
import { $ } from '
|
|
3
|
+
import { $ } from '../compat';
|
|
4
4
|
import { parseArgs, loadPackageJson, savePackageJson } from './index';
|
|
5
5
|
import { CanonicalManager } from '../index';
|
|
6
6
|
export async function initCommand(args) {
|
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/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,
|
|
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+FjE"}
|
package/dist/cli/search.js
CHANGED
|
@@ -2,9 +2,11 @@ import { parseArgs, loadPackageJson, getConfigFromPackageJson } from './index';
|
|
|
2
2
|
import { CanonicalManager } from '../index';
|
|
3
3
|
export async function searchCommand(args) {
|
|
4
4
|
const { positional, options } = parseArgs(args);
|
|
5
|
-
const
|
|
5
|
+
const searchTerms = positional;
|
|
6
6
|
const isJson = options.json === true;
|
|
7
|
-
const
|
|
7
|
+
const resourceTypeFilter = (options.type || options.resourceType);
|
|
8
|
+
const typeFilter = options.t;
|
|
9
|
+
const kindFilter = options.k;
|
|
8
10
|
const packageFilter = options.package;
|
|
9
11
|
const packageJson = await loadPackageJson();
|
|
10
12
|
if (!packageJson?.fcm?.packages || packageJson.fcm.packages.length === 0) {
|
|
@@ -17,8 +19,8 @@ export async function searchCommand(args) {
|
|
|
17
19
|
await manager.init();
|
|
18
20
|
try {
|
|
19
21
|
const searchCriteria = {};
|
|
20
|
-
if (
|
|
21
|
-
searchCriteria.
|
|
22
|
+
if (kindFilter) {
|
|
23
|
+
searchCriteria.kind = kindFilter;
|
|
22
24
|
}
|
|
23
25
|
if (packageFilter) {
|
|
24
26
|
const packages = await manager.packages();
|
|
@@ -30,9 +32,23 @@ export async function searchCommand(args) {
|
|
|
30
32
|
searchCriteria.package = pkg;
|
|
31
33
|
}
|
|
32
34
|
let results = await manager.searchEntries(searchCriteria);
|
|
33
|
-
if (
|
|
34
|
-
|
|
35
|
-
|
|
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
|
+
});
|
|
36
52
|
}
|
|
37
53
|
if (isJson) {
|
|
38
54
|
console.log(JSON.stringify(results, null, 2));
|
|
@@ -42,10 +58,16 @@ export async function searchCommand(args) {
|
|
|
42
58
|
console.log("No resources found");
|
|
43
59
|
}
|
|
44
60
|
else {
|
|
45
|
-
|
|
61
|
+
const searchInfo = searchTerms.length > 0 ? ` matching "${searchTerms.join(' ')}"` : '';
|
|
62
|
+
console.log(`Found ${results.length} resource${results.length === 1 ? '' : 's'}${searchInfo}:`);
|
|
46
63
|
results.forEach(resource => {
|
|
47
|
-
|
|
48
|
-
|
|
64
|
+
const info = {
|
|
65
|
+
resourceType: resource.resourceType,
|
|
66
|
+
kind: resource.kind,
|
|
67
|
+
type: resource.type,
|
|
68
|
+
package: resource.package?.name
|
|
69
|
+
};
|
|
70
|
+
console.log(`${resource.url}, ${JSON.stringify(info)}`);
|
|
49
71
|
});
|
|
50
72
|
}
|
|
51
73
|
}
|
package/dist/cli/search.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"search.js","sourceRoot":"","sources":["../../src/cli/search.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,wBAAwB,EAAE,MAAM,SAAS,CAAC;AAC/E,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAE5C,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,IAAc;IAChD,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;IAChD,MAAM,
|
|
1
|
+
{"version":3,"file":"search.js","sourceRoot":"","sources":["../../src/cli/search.ts"],"names":[],"mappings":"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"}
|
package/dist/compat.d.ts
ADDED
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
export declare class ShellError extends Error {
|
|
2
|
+
exitCode: number;
|
|
3
|
+
stdout: string;
|
|
4
|
+
stderr: string;
|
|
5
|
+
constructor(message: string, exitCode: number, stdout: string, stderr: string);
|
|
6
|
+
}
|
|
7
|
+
interface ShellResult {
|
|
8
|
+
stdout: string;
|
|
9
|
+
stderr: string;
|
|
10
|
+
exitCode: number;
|
|
11
|
+
}
|
|
12
|
+
interface ShellPromise extends Promise<ShellResult> {
|
|
13
|
+
quiet(): Promise<ShellResult>;
|
|
14
|
+
}
|
|
15
|
+
export declare function $(strings: TemplateStringsArray, ...values: any[]): ShellPromise;
|
|
16
|
+
export {};
|
|
17
|
+
//# sourceMappingURL=compat.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"compat.d.ts","sourceRoot":"","sources":["../src/compat.ts"],"names":[],"mappings":"AAmBA,qBAAa,UAAW,SAAQ,KAAK;IACnC,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;gBAEH,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;CAO9E;AAED,UAAU,WAAW;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,UAAU,YAAa,SAAQ,OAAO,CAAC,WAAW,CAAC;IACjD,KAAK,IAAI,OAAO,CAAC,WAAW,CAAC,CAAC;CAC/B;AAMD,wBAAgB,CAAC,CAAC,OAAO,EAAE,oBAAoB,EAAE,GAAG,MAAM,EAAE,GAAG,EAAE,GAAG,YAAY,CAkD/E"}
|
package/dist/compat.js
ADDED
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { exec } from 'child_process';
|
|
2
|
+
import { promisify } from 'util';
|
|
3
|
+
const execAsync = promisify(exec);
|
|
4
|
+
export class ShellError extends Error {
|
|
5
|
+
exitCode;
|
|
6
|
+
stdout;
|
|
7
|
+
stderr;
|
|
8
|
+
constructor(message, exitCode, stdout, stderr) {
|
|
9
|
+
super(message);
|
|
10
|
+
this.name = 'ShellError';
|
|
11
|
+
this.exitCode = exitCode;
|
|
12
|
+
this.stdout = stdout;
|
|
13
|
+
this.stderr = stderr;
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
export function $(strings, ...values) {
|
|
17
|
+
const command = strings.reduce((acc, str, i) => {
|
|
18
|
+
return acc + str + (values[i] || '');
|
|
19
|
+
}, '');
|
|
20
|
+
const execute = async (options = {}) => {
|
|
21
|
+
if (typeof Bun !== 'undefined' && Bun.$) {
|
|
22
|
+
const bunShell = Bun.$;
|
|
23
|
+
if (options.quiet) {
|
|
24
|
+
const result = await bunShell(strings, ...values).quiet();
|
|
25
|
+
return {
|
|
26
|
+
stdout: result.stdout ? result.stdout.toString() : '',
|
|
27
|
+
stderr: result.stderr ? result.stderr.toString() : '',
|
|
28
|
+
exitCode: result.exitCode || 0
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
else {
|
|
32
|
+
const result = await bunShell(strings, ...values);
|
|
33
|
+
return {
|
|
34
|
+
stdout: result.stdout ? result.stdout.toString() : '',
|
|
35
|
+
stderr: result.stderr ? result.stderr.toString() : '',
|
|
36
|
+
exitCode: result.exitCode || 0
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
try {
|
|
41
|
+
const { stdout, stderr } = await execAsync(command);
|
|
42
|
+
return {
|
|
43
|
+
stdout: stdout || '',
|
|
44
|
+
stderr: stderr || '',
|
|
45
|
+
exitCode: 0
|
|
46
|
+
};
|
|
47
|
+
}
|
|
48
|
+
catch (error) {
|
|
49
|
+
throw new ShellError(`Failed with exit code ${error.code}`, error.code || 1, error.stdout || '', error.stderr || '');
|
|
50
|
+
}
|
|
51
|
+
};
|
|
52
|
+
const promise = execute();
|
|
53
|
+
promise.quiet = () => execute({ quiet: true });
|
|
54
|
+
return promise;
|
|
55
|
+
}
|
|
56
|
+
//# sourceMappingURL=compat.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"compat.js","sourceRoot":"","sources":["../src/compat.ts"],"names":[],"mappings":"AAaA,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AACrC,OAAO,EAAE,SAAS,EAAE,MAAM,MAAM,CAAC;AAEjC,MAAM,SAAS,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;AAGlC,MAAM,OAAO,UAAW,SAAQ,KAAK;IACnC,QAAQ,CAAS;IACjB,MAAM,CAAS;IACf,MAAM,CAAS;IAEf,YAAY,OAAe,EAAE,QAAgB,EAAE,MAAc,EAAE,MAAc;QAC3E,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,YAAY,CAAC;QACzB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;CACF;AAgBD,MAAM,UAAU,CAAC,CAAC,OAA6B,EAAE,GAAG,MAAa;IAC/D,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE;QAC7C,OAAO,GAAG,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IACvC,CAAC,EAAE,EAAE,CAAC,CAAC;IAGP,MAAM,OAAO,GAAG,KAAK,EAAE,UAA+B,EAAE,EAAE,EAAE;QAE1D,IAAI,OAAO,GAAG,KAAK,WAAW,IAAK,GAAW,CAAC,CAAC,EAAE,CAAC;YACjD,MAAM,QAAQ,GAAI,GAAW,CAAC,CAAC,CAAC;YAEhC,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;gBAClB,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,OAAO,EAAE,GAAG,MAAM,CAAC,CAAC,KAAK,EAAE,CAAC;gBAC1D,OAAO;oBACL,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE;oBACrD,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE;oBACrD,QAAQ,EAAE,MAAM,CAAC,QAAQ,IAAI,CAAC;iBAC/B,CAAC;YACJ,CAAC;iBAAM,CAAC;gBACN,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,OAAO,EAAE,GAAG,MAAM,CAAC,CAAC;gBAClD,OAAO;oBACL,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE;oBACrD,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE;oBACrD,QAAQ,EAAE,MAAM,CAAC,QAAQ,IAAI,CAAC;iBAC/B,CAAC;YACJ,CAAC;QACH,CAAC;QAGD,IAAI,CAAC;YACH,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,SAAS,CAAC,OAAO,CAAC,CAAC;YACpD,OAAO;gBACL,MAAM,EAAE,MAAM,IAAI,EAAE;gBACpB,MAAM,EAAE,MAAM,IAAI,EAAE;gBACpB,QAAQ,EAAE,CAAC;aACZ,CAAC;QACJ,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,MAAM,IAAI,UAAU,CAClB,yBAAyB,KAAK,CAAC,IAAI,EAAE,EACrC,KAAK,CAAC,IAAI,IAAI,CAAC,EACf,KAAK,CAAC,MAAM,IAAI,EAAE,EAClB,KAAK,CAAC,MAAM,IAAI,EAAE,CACnB,CAAC;QACJ,CAAC;IACH,CAAC,CAAC;IAGF,MAAM,OAAO,GAAG,OAAO,EAAS,CAAC;IACjC,OAAO,CAAC,KAAK,GAAG,GAAG,EAAE,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IAC/C,OAAO,OAAuB,CAAC;AACjC,CAAC"}
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import * as path from 'path';
|
|
2
2
|
import * as fs from 'fs/promises';
|
|
3
3
|
import { createHash } from 'crypto';
|
|
4
|
-
import {
|
|
4
|
+
import { $, ShellError } from './compat.js';
|
|
5
5
|
const generateReferenceId = (metadata) => {
|
|
6
6
|
const input = `${metadata.packageName}@${metadata.packageVersion}:${metadata.filePath}`;
|
|
7
7
|
return createHash('sha256').update(input).digest('base64url');
|
|
@@ -107,11 +107,23 @@ const createCache = () => {
|
|
|
107
107
|
referenceManager
|
|
108
108
|
};
|
|
109
109
|
};
|
|
110
|
-
const
|
|
110
|
+
const computePackageLockHash = async (workingDir) => {
|
|
111
|
+
try {
|
|
112
|
+
const packageLockPath = path.join(workingDir, 'package-lock.json');
|
|
113
|
+
const content = await fs.readFile(packageLockPath, 'utf-8');
|
|
114
|
+
return createHash('sha256').update(content).digest('hex');
|
|
115
|
+
}
|
|
116
|
+
catch {
|
|
117
|
+
return null;
|
|
118
|
+
}
|
|
119
|
+
};
|
|
120
|
+
const saveCacheToDisk = async (cache, cacheDir, workingDir) => {
|
|
121
|
+
const packageLockHash = await computePackageLockHash(workingDir);
|
|
111
122
|
const cacheData = {
|
|
112
123
|
entries: cache.entries,
|
|
113
124
|
packages: cache.packages,
|
|
114
|
-
references: cache.referenceManager.getAllReferences()
|
|
125
|
+
references: cache.referenceManager.getAllReferences(),
|
|
126
|
+
packageLockHash: packageLockHash || undefined
|
|
115
127
|
};
|
|
116
128
|
const cachePath = path.join(cacheDir, 'index.json');
|
|
117
129
|
await fs.writeFile(cachePath, JSON.stringify(cacheData, null, 2));
|
|
@@ -278,8 +290,12 @@ export const CanonicalManager = (config) => {
|
|
|
278
290
|
return;
|
|
279
291
|
await ensureDir(workingDir);
|
|
280
292
|
await ensureDir(cacheDir);
|
|
293
|
+
const currentPackageLockHash = await computePackageLockHash(workingDir);
|
|
281
294
|
const cachedData = await loadCacheFromDisk(cacheDir);
|
|
282
|
-
|
|
295
|
+
const cacheValid = cachedData &&
|
|
296
|
+
cachedData.packageLockHash === currentPackageLockHash &&
|
|
297
|
+
currentPackageLockHash !== null;
|
|
298
|
+
if (cacheValid) {
|
|
283
299
|
cache.entries = cachedData.entries;
|
|
284
300
|
cache.packages = cachedData.packages;
|
|
285
301
|
Object.entries(cachedData.references).forEach(([id, metadata]) => {
|
|
@@ -287,9 +303,13 @@ export const CanonicalManager = (config) => {
|
|
|
287
303
|
});
|
|
288
304
|
}
|
|
289
305
|
else {
|
|
306
|
+
if (cachedData && cachedData.packageLockHash !== currentPackageLockHash) {
|
|
307
|
+
console.log('Package dependencies have changed, rebuilding index...');
|
|
308
|
+
}
|
|
290
309
|
await installPackages(packages, workingDir, registry);
|
|
310
|
+
cache = createCache();
|
|
291
311
|
await scanDirectory(nodeModulesPath, cache);
|
|
292
|
-
await saveCacheToDisk(cache, cacheDir);
|
|
312
|
+
await saveCacheToDisk(cache, cacheDir, workingDir);
|
|
293
313
|
}
|
|
294
314
|
initialized = true;
|
|
295
315
|
};
|
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":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@atomic-ehr/fhir-canonical-manager",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.4",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"main": "./dist/index.js",
|
|
6
6
|
"types": "./dist/index.d.ts",
|
|
@@ -25,12 +25,19 @@
|
|
|
25
25
|
"prepublishOnly": "bun run build"
|
|
26
26
|
},
|
|
27
27
|
"devDependencies": {
|
|
28
|
+
"@atomic-ehr/hl7.fhir.r4.core": "^0.0.1",
|
|
28
29
|
"@types/bun": "latest",
|
|
29
|
-
"@atomic-ehr/hl7.fhir.r4.core": "latest",
|
|
30
30
|
"typescript": "^5"
|
|
31
31
|
},
|
|
32
32
|
"peerDependencies": {
|
|
33
33
|
"typescript": "^5"
|
|
34
34
|
},
|
|
35
|
-
"
|
|
35
|
+
"fcm": {
|
|
36
|
+
"packages": [
|
|
37
|
+
"hl7.fhir.r4.core",
|
|
38
|
+
"search",
|
|
39
|
+
"pat"
|
|
40
|
+
],
|
|
41
|
+
"registry": "https://fs.get-ig.org/pkgs"
|
|
42
|
+
}
|
|
36
43
|
}
|
package/src/cli/index.ts
CHANGED
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
import * as fs from 'fs';
|
|
4
4
|
import * as path from 'path';
|
|
5
|
+
import { fileURLToPath } from 'url';
|
|
5
6
|
import { CanonicalManager } from '../index';
|
|
6
7
|
import type { Config, IndexEntry, PackageInfo } from '../index';
|
|
7
8
|
|
|
@@ -11,7 +12,19 @@ import { listCommand } from './list';
|
|
|
11
12
|
import { searchCommand } from './search';
|
|
12
13
|
import { resolveCommand } from './resolve';
|
|
13
14
|
|
|
14
|
-
|
|
15
|
+
// Get version from package.json
|
|
16
|
+
const __filename = fileURLToPath(import.meta.url);
|
|
17
|
+
const __dirname = path.dirname(__filename);
|
|
18
|
+
const packageJsonPath = path.join(__dirname, '..', '..', 'package.json');
|
|
19
|
+
|
|
20
|
+
let VERSION = 'unknown';
|
|
21
|
+
try {
|
|
22
|
+
const packageJson = JSON.parse(fs.readFileSync(packageJsonPath, 'utf-8'));
|
|
23
|
+
VERSION = packageJson.version;
|
|
24
|
+
} catch (error) {
|
|
25
|
+
// Fallback version if package.json can't be read
|
|
26
|
+
VERSION = '0.0.3';
|
|
27
|
+
}
|
|
15
28
|
|
|
16
29
|
function showHelp() {
|
|
17
30
|
console.log(`
|
|
@@ -88,6 +101,29 @@ export function parseArgs(args: string[]): { positional: string[], options: Reco
|
|
|
88
101
|
} else {
|
|
89
102
|
options[key] = true;
|
|
90
103
|
}
|
|
104
|
+
} else if (arg && arg.startsWith('-')) {
|
|
105
|
+
// Handle short aliases
|
|
106
|
+
switch (arg) {
|
|
107
|
+
case '-sd':
|
|
108
|
+
options.resourceType = 'StructureDefinition';
|
|
109
|
+
break;
|
|
110
|
+
case '-cs':
|
|
111
|
+
options.resourceType = 'CodeSystem';
|
|
112
|
+
break;
|
|
113
|
+
case '-vs':
|
|
114
|
+
options.resourceType = 'ValueSet';
|
|
115
|
+
break;
|
|
116
|
+
default:
|
|
117
|
+
// Handle other single-letter flags
|
|
118
|
+
const key = arg.slice(1);
|
|
119
|
+
const nextArg = args[i + 1];
|
|
120
|
+
if (nextArg && !nextArg.startsWith('-')) {
|
|
121
|
+
options[key] = nextArg;
|
|
122
|
+
i++;
|
|
123
|
+
} else {
|
|
124
|
+
options[key] = true;
|
|
125
|
+
}
|
|
126
|
+
}
|
|
91
127
|
} else if (arg) {
|
|
92
128
|
positional.push(arg);
|
|
93
129
|
}
|
package/src/cli/init.ts
CHANGED
package/src/cli/search.ts
CHANGED
|
@@ -3,9 +3,11 @@ import { CanonicalManager } from '../index';
|
|
|
3
3
|
|
|
4
4
|
export async function searchCommand(args: string[]): Promise<void> {
|
|
5
5
|
const { positional, options } = parseArgs(args);
|
|
6
|
-
const
|
|
6
|
+
const searchTerms = positional; // Now support multiple search terms
|
|
7
7
|
const isJson = options.json === true;
|
|
8
|
-
const
|
|
8
|
+
const resourceTypeFilter = (options.type || options.resourceType) as string | undefined;
|
|
9
|
+
const typeFilter = options.t as string | undefined;
|
|
10
|
+
const kindFilter = options.k as string | undefined;
|
|
9
11
|
const packageFilter = options.package as string | undefined;
|
|
10
12
|
|
|
11
13
|
// Load config from package.json
|
|
@@ -24,8 +26,9 @@ export async function searchCommand(args: string[]): Promise<void> {
|
|
|
24
26
|
// Build search criteria
|
|
25
27
|
const searchCriteria: any = {};
|
|
26
28
|
|
|
27
|
-
|
|
28
|
-
|
|
29
|
+
// Handle kind filter through search criteria
|
|
30
|
+
if (kindFilter) {
|
|
31
|
+
searchCriteria.kind = kindFilter;
|
|
29
32
|
}
|
|
30
33
|
|
|
31
34
|
if (packageFilter) {
|
|
@@ -41,12 +44,33 @@ export async function searchCommand(args: string[]): Promise<void> {
|
|
|
41
44
|
// Search for resources
|
|
42
45
|
let results = await manager.searchEntries(searchCriteria);
|
|
43
46
|
|
|
47
|
+
// Filter by resourceType if specified
|
|
48
|
+
if (resourceTypeFilter) {
|
|
49
|
+
results = results.filter(entry => entry.resourceType === resourceTypeFilter);
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
// Filter by type if specified (e.g., Extension, Patient, Observation)
|
|
53
|
+
if (typeFilter) {
|
|
54
|
+
results = results.filter(entry => entry.type === typeFilter);
|
|
55
|
+
}
|
|
56
|
+
|
|
44
57
|
// Filter by URL pattern if provided
|
|
45
|
-
if (
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
58
|
+
if (searchTerms.length > 0) {
|
|
59
|
+
// Convert search terms to lowercase for case-insensitive matching
|
|
60
|
+
const terms = searchTerms.map(t => t.toLowerCase());
|
|
61
|
+
|
|
62
|
+
results = results.filter(entry => {
|
|
63
|
+
if (!entry.url) return false;
|
|
64
|
+
const urlLower = entry.url.toLowerCase();
|
|
65
|
+
|
|
66
|
+
// Check if all search terms match as prefixes in the URL
|
|
67
|
+
return terms.every(term => {
|
|
68
|
+
// Split the URL into parts (by /, -, _, .)
|
|
69
|
+
const urlParts = urlLower.split(/[\/\-_\.]+/);
|
|
70
|
+
// Check if any part starts with the search term
|
|
71
|
+
return urlParts.some(part => part.startsWith(term));
|
|
72
|
+
});
|
|
73
|
+
});
|
|
50
74
|
}
|
|
51
75
|
|
|
52
76
|
if (isJson) {
|
|
@@ -55,11 +79,17 @@ export async function searchCommand(args: string[]): Promise<void> {
|
|
|
55
79
|
if (results.length === 0) {
|
|
56
80
|
console.log("No resources found");
|
|
57
81
|
} else {
|
|
58
|
-
|
|
82
|
+
const searchInfo = searchTerms.length > 0 ? ` matching "${searchTerms.join(' ')}"` : '';
|
|
83
|
+
console.log(`Found ${results.length} resource${results.length === 1 ? '' : 's'}${searchInfo}:`);
|
|
59
84
|
|
|
60
85
|
results.forEach(resource => {
|
|
61
|
-
|
|
62
|
-
|
|
86
|
+
const info = {
|
|
87
|
+
resourceType: resource.resourceType,
|
|
88
|
+
kind: resource.kind,
|
|
89
|
+
type: resource.type,
|
|
90
|
+
package: resource.package?.name
|
|
91
|
+
};
|
|
92
|
+
console.log(`${resource.url}, ${JSON.stringify(info)}`);
|
|
63
93
|
});
|
|
64
94
|
}
|
|
65
95
|
}
|
package/src/compat.ts
ADDED
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Compatibility layer for shell commands
|
|
3
|
+
* This allows the library to work with both Bun.$ and Node.js child_process
|
|
4
|
+
*
|
|
5
|
+
* Usage:
|
|
6
|
+
* import { $ } from './compat';
|
|
7
|
+
* await $`npm install package-name`;
|
|
8
|
+
* await $`npm install package-name`.quiet();
|
|
9
|
+
*
|
|
10
|
+
* In Bun environment: Uses native Bun.$ for better performance
|
|
11
|
+
* In Node.js environment: Falls back to child_process.exec
|
|
12
|
+
*/
|
|
13
|
+
|
|
14
|
+
import { exec } from 'child_process';
|
|
15
|
+
import { promisify } from 'util';
|
|
16
|
+
|
|
17
|
+
const execAsync = promisify(exec);
|
|
18
|
+
|
|
19
|
+
// Shell error type matching Bun's ShellError
|
|
20
|
+
export class ShellError extends Error {
|
|
21
|
+
exitCode: number;
|
|
22
|
+
stdout: string;
|
|
23
|
+
stderr: string;
|
|
24
|
+
|
|
25
|
+
constructor(message: string, exitCode: number, stdout: string, stderr: string) {
|
|
26
|
+
super(message);
|
|
27
|
+
this.name = 'ShellError';
|
|
28
|
+
this.exitCode = exitCode;
|
|
29
|
+
this.stdout = stdout;
|
|
30
|
+
this.stderr = stderr;
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
interface ShellResult {
|
|
35
|
+
stdout: string;
|
|
36
|
+
stderr: string;
|
|
37
|
+
exitCode: number;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
interface ShellPromise extends Promise<ShellResult> {
|
|
41
|
+
quiet(): Promise<ShellResult>;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
/**
|
|
45
|
+
* Shell command execution that mimics Bun.$
|
|
46
|
+
* Works with both Bun and Node.js environments
|
|
47
|
+
*/
|
|
48
|
+
export function $(strings: TemplateStringsArray, ...values: any[]): ShellPromise {
|
|
49
|
+
const command = strings.reduce((acc, str, i) => {
|
|
50
|
+
return acc + str + (values[i] || '');
|
|
51
|
+
}, '');
|
|
52
|
+
|
|
53
|
+
// Create a chainable object that mimics Bun.$
|
|
54
|
+
const execute = async (options: { quiet?: boolean } = {}) => {
|
|
55
|
+
// If Bun.$ is available, use it
|
|
56
|
+
if (typeof Bun !== 'undefined' && (Bun as any).$) {
|
|
57
|
+
const bunShell = (Bun as any).$;
|
|
58
|
+
// Apply quiet option before executing if requested
|
|
59
|
+
if (options.quiet) {
|
|
60
|
+
const result = await bunShell(strings, ...values).quiet();
|
|
61
|
+
return {
|
|
62
|
+
stdout: result.stdout ? result.stdout.toString() : '',
|
|
63
|
+
stderr: result.stderr ? result.stderr.toString() : '',
|
|
64
|
+
exitCode: result.exitCode || 0
|
|
65
|
+
};
|
|
66
|
+
} else {
|
|
67
|
+
const result = await bunShell(strings, ...values);
|
|
68
|
+
return {
|
|
69
|
+
stdout: result.stdout ? result.stdout.toString() : '',
|
|
70
|
+
stderr: result.stderr ? result.stderr.toString() : '',
|
|
71
|
+
exitCode: result.exitCode || 0
|
|
72
|
+
};
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
// Node.js fallback
|
|
77
|
+
try {
|
|
78
|
+
const { stdout, stderr } = await execAsync(command);
|
|
79
|
+
return {
|
|
80
|
+
stdout: stdout || '',
|
|
81
|
+
stderr: stderr || '',
|
|
82
|
+
exitCode: 0
|
|
83
|
+
};
|
|
84
|
+
} catch (error: any) {
|
|
85
|
+
throw new ShellError(
|
|
86
|
+
`Failed with exit code ${error.code}`,
|
|
87
|
+
error.code || 1,
|
|
88
|
+
error.stdout || '',
|
|
89
|
+
error.stderr || ''
|
|
90
|
+
);
|
|
91
|
+
}
|
|
92
|
+
};
|
|
93
|
+
|
|
94
|
+
// Return chainable API
|
|
95
|
+
const promise = execute() as any;
|
|
96
|
+
promise.quiet = () => execute({ quiet: true });
|
|
97
|
+
return promise as ShellPromise;
|
|
98
|
+
}
|
package/src/index.ts
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
import * as path from 'path';
|
|
7
7
|
import * as fs from 'fs/promises';
|
|
8
8
|
import { createHash } from 'crypto';
|
|
9
|
-
import {
|
|
9
|
+
import { $, ShellError } from './compat.js';
|
|
10
10
|
|
|
11
11
|
// Types
|
|
12
12
|
export interface Reference {
|
|
@@ -129,6 +129,7 @@ interface CacheData {
|
|
|
129
129
|
entries: Record<string, IndexEntry[]>;
|
|
130
130
|
packages: Record<string, PackageInfo>;
|
|
131
131
|
references: Record<string, ReferenceMetadata>;
|
|
132
|
+
packageLockHash?: string; // Hash of package-lock.json to detect changes
|
|
132
133
|
}
|
|
133
134
|
|
|
134
135
|
// Reference management functions
|
|
@@ -266,12 +267,26 @@ const createCache = (): IndexCache & {
|
|
|
266
267
|
};
|
|
267
268
|
};
|
|
268
269
|
|
|
270
|
+
// Compute hash of package-lock.json for cache validation
|
|
271
|
+
const computePackageLockHash = async (workingDir: string): Promise<string | null> => {
|
|
272
|
+
try {
|
|
273
|
+
const packageLockPath = path.join(workingDir, 'package-lock.json');
|
|
274
|
+
const content = await fs.readFile(packageLockPath, 'utf-8');
|
|
275
|
+
return createHash('sha256').update(content).digest('hex');
|
|
276
|
+
} catch {
|
|
277
|
+
return null;
|
|
278
|
+
}
|
|
279
|
+
};
|
|
280
|
+
|
|
269
281
|
// Cache persistence functions
|
|
270
|
-
const saveCacheToDisk = async (cache: ReturnType<typeof createCache>, cacheDir: string): Promise<void> => {
|
|
282
|
+
const saveCacheToDisk = async (cache: ReturnType<typeof createCache>, cacheDir: string, workingDir: string): Promise<void> => {
|
|
283
|
+
const packageLockHash = await computePackageLockHash(workingDir);
|
|
284
|
+
|
|
271
285
|
const cacheData: CacheData = {
|
|
272
286
|
entries: cache.entries,
|
|
273
287
|
packages: cache.packages,
|
|
274
|
-
references: cache.referenceManager.getAllReferences()
|
|
288
|
+
references: cache.referenceManager.getAllReferences(),
|
|
289
|
+
packageLockHash: packageLockHash || undefined
|
|
275
290
|
};
|
|
276
291
|
|
|
277
292
|
const cachePath = path.join(cacheDir, 'index.json');
|
|
@@ -482,9 +497,18 @@ export const CanonicalManager = (config: Config): CanonicalManager => {
|
|
|
482
497
|
await ensureDir(workingDir);
|
|
483
498
|
await ensureDir(cacheDir);
|
|
484
499
|
|
|
500
|
+
// Get current package-lock.json hash
|
|
501
|
+
const currentPackageLockHash = await computePackageLockHash(workingDir);
|
|
502
|
+
|
|
485
503
|
// Try to load cache from disk
|
|
486
504
|
const cachedData = await loadCacheFromDisk(cacheDir);
|
|
487
|
-
|
|
505
|
+
|
|
506
|
+
// Check if cache is valid (exists and package-lock.json hasn't changed)
|
|
507
|
+
const cacheValid = cachedData &&
|
|
508
|
+
cachedData.packageLockHash === currentPackageLockHash &&
|
|
509
|
+
currentPackageLockHash !== null;
|
|
510
|
+
|
|
511
|
+
if (cacheValid) {
|
|
488
512
|
// Restore cache from disk
|
|
489
513
|
cache.entries = cachedData.entries;
|
|
490
514
|
cache.packages = cachedData.packages;
|
|
@@ -492,14 +516,22 @@ export const CanonicalManager = (config: Config): CanonicalManager => {
|
|
|
492
516
|
cache.referenceManager.set(id, metadata);
|
|
493
517
|
});
|
|
494
518
|
} else {
|
|
519
|
+
// Cache is invalid or doesn't exist - rebuild it
|
|
520
|
+
if (cachedData && cachedData.packageLockHash !== currentPackageLockHash) {
|
|
521
|
+
console.log('Package dependencies have changed, rebuilding index...');
|
|
522
|
+
}
|
|
523
|
+
|
|
495
524
|
// Install packages if needed
|
|
496
525
|
await installPackages(packages, workingDir, registry);
|
|
497
526
|
|
|
527
|
+
// Clear cache before scanning
|
|
528
|
+
cache = createCache();
|
|
529
|
+
|
|
498
530
|
// Scan installed packages
|
|
499
531
|
await scanDirectory(nodeModulesPath, cache);
|
|
500
532
|
|
|
501
|
-
// Save cache to disk
|
|
502
|
-
await saveCacheToDisk(cache, cacheDir);
|
|
533
|
+
// Save cache to disk with current package-lock hash
|
|
534
|
+
await saveCacheToDisk(cache, cacheDir, workingDir);
|
|
503
535
|
}
|
|
504
536
|
|
|
505
537
|
initialized = true;
|