@cliniq360/ondc-cli 2.0.1 → 2.0.3
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 +9 -1
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +66 -14
- package/dist/config.js.map +1 -1
- package/dist/main.js +4 -1
- package/dist/main.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -89,6 +89,13 @@ export ONDC_API_KEY=your_api_key_if_required
|
|
|
89
89
|
ondc config show
|
|
90
90
|
```
|
|
91
91
|
|
|
92
|
+
You can also place these values in a `.env` file in the directory where you run `ondc`:
|
|
93
|
+
|
|
94
|
+
```dotenv
|
|
95
|
+
ONDC_API_BASE_URL=http://localhost:7600
|
|
96
|
+
ONDC_API_KEY=your_api_key_if_required
|
|
97
|
+
```
|
|
98
|
+
|
|
92
99
|
---
|
|
93
100
|
|
|
94
101
|
## Command Groups
|
|
@@ -158,7 +165,8 @@ ondc config show
|
|
|
158
165
|
|
|
159
166
|
- `ondc-cli` calls the ONDC backend REST APIs directly.
|
|
160
167
|
- `ondc-cli` works without an API key by default, but can send `ONDC_API_KEY` when your deployment requires it.
|
|
161
|
-
- The published CLI defaults to `https://prod.cliniq360.com`.
|
|
168
|
+
- The published CLI defaults to `https://prod.cliniq360.com` and does **not** bundle secrets or a package-local `.env` file.
|
|
169
|
+
- Set `ONDC_API_KEY` in your shell or in the current working directory's `.env` file when the backend requires `api_key`.
|
|
162
170
|
- Use `ONDC_API_BASE_URL` only when you need a different API endpoint.
|
|
163
171
|
- `ondc workflow prompt` prints the strict `INSURANCE_WORKFLOW_TEMPLATE` guidance so an AI agent can follow the intended ONDC tool chain.
|
|
164
172
|
- The CLI prints parsed tool payloads by default. Use `--json` for clean automation output.
|
package/dist/config.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAQA,eAAO,MAAM,oBAAoB,+BAA+B,CAAC;AACjE,eAAO,MAAM,gBAAgB,sBAAsB,CAAC;AACpD,eAAO,MAAM,WAAW,iBAAiB,CAAC;AAC1C,eAAO,MAAM,kBAAkB,iBAAiB,CAAC;AACjD,eAAO,MAAM,cAAc,6BAA8B,CAAC;AAE1D,MAAM,MAAM,YAAY,GAAG,CAAC,OAAO,cAAc,CAAC,CAAC,MAAM,CAAC,CAAC;AAW3D,eAAO,MAAM,aAAa,QAA+B,CAAC;AAyF1D,wBAAgB,aAAa,IAAI,MAAM,CAEtC;AAED,wBAAgB,SAAS,IAAI,MAAM,GAAG,SAAS,CAE9C;AAED,wBAAgB,eAAe,IAAI,YAAY,CAE9C;AAED,wBAAgB,eAAe,CAAC,MAAM,EAAE,YAAY,GAAG,IAAI,CAE1D;AAED,wBAAgB,aAAa,IAAI,MAAM,CAEtC;AAED,wBAAgB,cAAc,IAAI,MAAM,CAIvC;AAED,wBAAgB,mBAAmB,IAAI,MAAM,CAG5C;AAED,wBAAgB,eAAe,IAAI,MAAM,CAExC;AAED,wBAAgB,aAAa,CAAC,IAAI,CAAC,EAAE,OAAO,GAAG,OAAO,CAErD"}
|
package/dist/config.js
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import { existsSync } from "node:fs";
|
|
2
|
+
import { homedir } from "node:os";
|
|
1
3
|
import { dirname, resolve } from "node:path";
|
|
2
4
|
import { fileURLToPath } from "node:url";
|
|
3
5
|
import Conf from "conf";
|
|
@@ -7,9 +9,64 @@ export const ENV_API_BASE_URL = "ONDC_API_BASE_URL";
|
|
|
7
9
|
export const ENV_API_KEY = "ONDC_API_KEY";
|
|
8
10
|
export const LEGACY_ENV_MCP_URL = "ONDC_MCP_URL";
|
|
9
11
|
export const OUTPUT_FORMATS = ["pretty", "json"];
|
|
12
|
+
const ENV_API_BASE_URL_KEYS = [ENV_API_BASE_URL, LEGACY_ENV_MCP_URL];
|
|
13
|
+
const ENV_API_KEY_KEYS = [ENV_API_KEY, "API_KEY", "api_key"];
|
|
10
14
|
const packageRoot = resolve(dirname(fileURLToPath(import.meta.url)), "..");
|
|
11
15
|
export const ENV_FILE_PATH = resolve(packageRoot, ".env");
|
|
12
|
-
|
|
16
|
+
function collectEnvFileCandidates() {
|
|
17
|
+
const candidates = new Set();
|
|
18
|
+
let currentDir = resolve(process.cwd());
|
|
19
|
+
while (true) {
|
|
20
|
+
candidates.add(resolve(currentDir, ".env"));
|
|
21
|
+
candidates.add(resolve(currentDir, "ondc-cli", ".env"));
|
|
22
|
+
const parentDir = resolve(currentDir, "..");
|
|
23
|
+
if (parentDir === currentDir) {
|
|
24
|
+
break;
|
|
25
|
+
}
|
|
26
|
+
currentDir = parentDir;
|
|
27
|
+
}
|
|
28
|
+
candidates.add(resolve(homedir(), ".ondc-cli", ".env"));
|
|
29
|
+
candidates.add(resolve(homedir(), ".config", "ondc-cli", ".env"));
|
|
30
|
+
candidates.add(ENV_FILE_PATH);
|
|
31
|
+
return [...candidates];
|
|
32
|
+
}
|
|
33
|
+
const envFileCandidates = collectEnvFileCandidates();
|
|
34
|
+
const loadedEnvFiles = [];
|
|
35
|
+
for (const candidate of envFileCandidates) {
|
|
36
|
+
if (!existsSync(candidate)) {
|
|
37
|
+
continue;
|
|
38
|
+
}
|
|
39
|
+
const result = loadEnv({ path: candidate, quiet: true, override: false });
|
|
40
|
+
if (result.parsed && Object.keys(result.parsed).length > 0) {
|
|
41
|
+
loadedEnvFiles.push({
|
|
42
|
+
path: candidate,
|
|
43
|
+
parsed: result.parsed,
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
function getEnvValue(keys) {
|
|
48
|
+
for (const key of keys) {
|
|
49
|
+
const value = process.env[key];
|
|
50
|
+
if (value && value.trim() !== "") {
|
|
51
|
+
return value;
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
return undefined;
|
|
55
|
+
}
|
|
56
|
+
function getEnvSource(keys) {
|
|
57
|
+
for (const key of keys) {
|
|
58
|
+
const value = process.env[key];
|
|
59
|
+
if (!value || value.trim() === "") {
|
|
60
|
+
continue;
|
|
61
|
+
}
|
|
62
|
+
const matchingFile = loadedEnvFiles.find(({ parsed }) => typeof parsed[key] === "string" && parsed[key].trim() !== "");
|
|
63
|
+
if (matchingFile) {
|
|
64
|
+
return `${matchingFile.path} (${key})`;
|
|
65
|
+
}
|
|
66
|
+
return `process environment (${key})`;
|
|
67
|
+
}
|
|
68
|
+
return "not set";
|
|
69
|
+
}
|
|
13
70
|
const config = new Conf({
|
|
14
71
|
projectName: "ondc-cli",
|
|
15
72
|
schema: {
|
|
@@ -21,12 +78,10 @@ const config = new Conf({
|
|
|
21
78
|
},
|
|
22
79
|
});
|
|
23
80
|
export function getApiBaseUrl() {
|
|
24
|
-
return (
|
|
25
|
-
process.env[LEGACY_ENV_MCP_URL] ||
|
|
26
|
-
DEFAULT_API_BASE_URL);
|
|
81
|
+
return getEnvValue(ENV_API_BASE_URL_KEYS) || DEFAULT_API_BASE_URL;
|
|
27
82
|
}
|
|
28
83
|
export function getApiKey() {
|
|
29
|
-
return
|
|
84
|
+
return getEnvValue(ENV_API_KEY_KEYS);
|
|
30
85
|
}
|
|
31
86
|
export function getOutputFormat() {
|
|
32
87
|
return config.get("output_format") || "pretty";
|
|
@@ -38,19 +93,16 @@ export function getConfigPath() {
|
|
|
38
93
|
return config.path;
|
|
39
94
|
}
|
|
40
95
|
export function getEnvFilePath() {
|
|
41
|
-
return
|
|
96
|
+
return loadedEnvFiles.length > 0
|
|
97
|
+
? loadedEnvFiles.map(({ path }) => path).join(", ")
|
|
98
|
+
: "not found";
|
|
42
99
|
}
|
|
43
100
|
export function getApiBaseUrlSource() {
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
}
|
|
47
|
-
if (envLoadResult.parsed?.[LEGACY_ENV_MCP_URL]) {
|
|
48
|
-
return `${ENV_FILE_PATH} (${LEGACY_ENV_MCP_URL})`;
|
|
49
|
-
}
|
|
50
|
-
return "hardcoded default";
|
|
101
|
+
const source = getEnvSource(ENV_API_BASE_URL_KEYS);
|
|
102
|
+
return source === "not set" ? "hardcoded default" : source;
|
|
51
103
|
}
|
|
52
104
|
export function getApiKeySource() {
|
|
53
|
-
return
|
|
105
|
+
return getEnvSource(ENV_API_KEY_KEYS);
|
|
54
106
|
}
|
|
55
107
|
export function shouldUseJson(flag) {
|
|
56
108
|
return flag === true || getOutputFormat() === "json";
|
package/dist/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,MAAM,IAAI,OAAO,EAAE,MAAM,QAAQ,CAAC;AAE3C,MAAM,CAAC,MAAM,oBAAoB,GAAG,4BAA4B,CAAC;AACjE,MAAM,CAAC,MAAM,gBAAgB,GAAG,mBAAmB,CAAC;AACpD,MAAM,CAAC,MAAM,WAAW,GAAG,cAAc,CAAC;AAC1C,MAAM,CAAC,MAAM,kBAAkB,GAAG,cAAc,CAAC;AACjD,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
|
package/dist/main.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import chalk from "chalk";
|
|
3
3
|
import { Command } from "commander";
|
|
4
|
+
import { createRequire } from "node:module";
|
|
4
5
|
import { registerConfig } from "./commands/config.js";
|
|
5
6
|
import { registerForms } from "./commands/forms.js";
|
|
6
7
|
import { registerJourney } from "./commands/journey.js";
|
|
@@ -36,11 +37,13 @@ const banner = [
|
|
|
36
37
|
panelLine(` ${panelTagline("powered by eigi")}`),
|
|
37
38
|
"",
|
|
38
39
|
].join("\n");
|
|
40
|
+
const require = createRequire(import.meta.url);
|
|
41
|
+
const { version } = require("../package.json");
|
|
39
42
|
const program = new Command();
|
|
40
43
|
program
|
|
41
44
|
.name("ondc")
|
|
42
45
|
.description("Official CLI for the ONDC insurance API workflow.")
|
|
43
|
-
.version(
|
|
46
|
+
.version(version);
|
|
44
47
|
program.addHelpText("beforeAll", `${banner}\n`);
|
|
45
48
|
program.addHelpText("after", "\nStrict instruction before executing tools:\n" +
|
|
46
49
|
" Read: ondc workflow prompt\n" +
|
package/dist/main.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"main.js","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":";AAEA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"main.js","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":"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"}
|