intu-dev 0.1.2
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 +87 -0
- package/bin/intu.js +33 -0
- package/package.json +31 -0
- package/platform/darwin-arm64/intu +0 -0
- package/platform/darwin-x64/intu +0 -0
- package/platform/linux-arm64/intu +0 -0
- package/platform/linux-x64/intu +0 -0
- package/platform/win32-arm64/intu.exe +0 -0
- package/platform/win32-x64/intu.exe +0 -0
package/README.md
ADDED
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
# intu
|
|
2
|
+
|
|
3
|
+
intu is a Git-native, AI-friendly healthcare interoperability framework that lets teams build, version, and deploy integration pipelines using YAML configuration and TypeScript transformers.
|
|
4
|
+
|
|
5
|
+
## Install
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
npm i -g intu-dev
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
## Commands
|
|
12
|
+
|
|
13
|
+
| Command | Description |
|
|
14
|
+
|---------|-------------|
|
|
15
|
+
| `intu init <project-name> [--dir]` | Bootstrap a new project |
|
|
16
|
+
| `intu c <channel-name> [--dir]` | Add a new channel |
|
|
17
|
+
| `intu channel add <channel-name> [--dir]` | Same as `intu c` |
|
|
18
|
+
| `intu channel list [--dir]` | List channels |
|
|
19
|
+
| `intu channel describe <id> [--dir]` | Show channel config |
|
|
20
|
+
| `intu validate [--dir]` | Validate project and channels |
|
|
21
|
+
| `intu build [--dir]` | Compile TypeScript channels |
|
|
22
|
+
|
|
23
|
+
## Quick Start
|
|
24
|
+
|
|
25
|
+
```bash
|
|
26
|
+
intu init my-project --dir .
|
|
27
|
+
cd my-project
|
|
28
|
+
npm install
|
|
29
|
+
intu build --dir .
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
Add a channel:
|
|
33
|
+
|
|
34
|
+
```bash
|
|
35
|
+
intu c my-channel --dir my-project
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
## Project Structure (after `intu init`)
|
|
39
|
+
|
|
40
|
+
```
|
|
41
|
+
my-project/
|
|
42
|
+
├── intu.yaml # Root config + named destinations
|
|
43
|
+
├── intu.dev.yaml # Dev profile overrides
|
|
44
|
+
├── intu.prod.yaml # Prod profile overrides
|
|
45
|
+
├── .env
|
|
46
|
+
├── channels/
|
|
47
|
+
│ └── sample-channel/
|
|
48
|
+
│ ├── channel.yaml
|
|
49
|
+
│ ├── transformer.ts
|
|
50
|
+
│ └── validator.ts
|
|
51
|
+
├── package.json
|
|
52
|
+
├── tsconfig.json
|
|
53
|
+
└── README.md
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
## Channel Structure (after `intu c my-channel`)
|
|
57
|
+
|
|
58
|
+
```
|
|
59
|
+
channels/my-channel/
|
|
60
|
+
├── channel.yaml # Listener, validator, transformer, destinations
|
|
61
|
+
├── transformer.ts # Pure function: JSON in → JSON out
|
|
62
|
+
└── validator.ts # Validates input, throws on invalid
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
## Destinations
|
|
66
|
+
|
|
67
|
+
Define named destinations in `intu.yaml`, reference in channels:
|
|
68
|
+
|
|
69
|
+
```yaml
|
|
70
|
+
destinations:
|
|
71
|
+
kafka-output:
|
|
72
|
+
type: kafka
|
|
73
|
+
kafka:
|
|
74
|
+
brokers: [${INTU_KAFKA_BROKER}]
|
|
75
|
+
topic: output-topic
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
Channels support multi-destination:
|
|
79
|
+
|
|
80
|
+
```yaml
|
|
81
|
+
destinations:
|
|
82
|
+
- kafka-output
|
|
83
|
+
- name: audit-http
|
|
84
|
+
type: http
|
|
85
|
+
http:
|
|
86
|
+
url: https://audit.example.com/events
|
|
87
|
+
```
|
package/bin/intu.js
ADDED
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
|
|
3
|
+
const { spawn } = require("child_process");
|
|
4
|
+
const path = require("path");
|
|
5
|
+
const os = require("os");
|
|
6
|
+
|
|
7
|
+
const platform = os.platform();
|
|
8
|
+
const arch = os.arch();
|
|
9
|
+
|
|
10
|
+
// Map Node's process.platform/arch to our binary dirs
|
|
11
|
+
const platformMap = {
|
|
12
|
+
darwin: { arm64: "darwin-arm64", x64: "darwin-x64" },
|
|
13
|
+
linux: { arm64: "linux-arm64", x64: "linux-x64" },
|
|
14
|
+
win32: { arm64: "win32-arm64", x64: "win32-x64" },
|
|
15
|
+
};
|
|
16
|
+
|
|
17
|
+
const dir = platformMap[platform]?.[arch];
|
|
18
|
+
if (!dir) {
|
|
19
|
+
console.error(`intu: unsupported platform ${platform}-${arch}`);
|
|
20
|
+
process.exit(1);
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
const ext = platform === "win32" ? ".exe" : "";
|
|
24
|
+
const binPath = path.join(__dirname, "..", "platform", dir, `intu${ext}`);
|
|
25
|
+
|
|
26
|
+
const child = spawn(binPath, process.argv.slice(2), {
|
|
27
|
+
stdio: "inherit",
|
|
28
|
+
windowsHide: true,
|
|
29
|
+
});
|
|
30
|
+
|
|
31
|
+
child.on("exit", (code) => {
|
|
32
|
+
process.exit(code ?? 0);
|
|
33
|
+
});
|
package/package.json
ADDED
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "intu-dev",
|
|
3
|
+
"version": "0.1.2",
|
|
4
|
+
"description": "Git-native, AI-friendly healthcare interoperability framework. Build, version, and deploy integration pipelines with YAML config and TypeScript transformers.",
|
|
5
|
+
"bin": {
|
|
6
|
+
"intu": "./bin/intu.js"
|
|
7
|
+
},
|
|
8
|
+
"files": [
|
|
9
|
+
"bin",
|
|
10
|
+
"platform"
|
|
11
|
+
],
|
|
12
|
+
"scripts": {
|
|
13
|
+
"build": "node build.js",
|
|
14
|
+
"prepublishOnly": "npm run build"
|
|
15
|
+
},
|
|
16
|
+
"keywords": [
|
|
17
|
+
"healthcare",
|
|
18
|
+
"interoperability",
|
|
19
|
+
"hl7",
|
|
20
|
+
"fhir",
|
|
21
|
+
"integration"
|
|
22
|
+
],
|
|
23
|
+
"license": "MIT",
|
|
24
|
+
"repository": {
|
|
25
|
+
"type": "git",
|
|
26
|
+
"url": "https://github.com/intuware/intu-dev"
|
|
27
|
+
},
|
|
28
|
+
"engines": {
|
|
29
|
+
"node": ">=18"
|
|
30
|
+
}
|
|
31
|
+
}
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|