@epilot/cli 0.1.128 → 0.1.130
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 +1 -1
- package/definitions/integration-toolkit.json +29 -11
- package/definitions/validation-rules.json +9 -3
- package/dist/bin/epilot.js +6 -6
- package/dist/{chunk-DVATEMSL.js → chunk-4J5ZADZC.js} +1 -1
- package/dist/{completion-QZPBFCMA.js → completion-GFINH6YJ.js} +1 -1
- package/dist/{upgrade-XUKKPWDE.js → upgrade-QPOYGFSB.js} +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"openapi": "3.0.3",
|
|
3
3
|
"info": {
|
|
4
4
|
"title": "Integration Toolkit API",
|
|
5
|
-
"version": "1.
|
|
5
|
+
"version": "1.22.0",
|
|
6
6
|
"description": "API for integrating with external systems in a standardised way."
|
|
7
7
|
},
|
|
8
8
|
"tags": [
|
|
@@ -5500,6 +5500,13 @@
|
|
|
5500
5500
|
"description": "Optional per-event ordering group. Overrides the request-level `group_id` for THIS event; when absent, the event inherits the request-level `group_id` (or the default strict per-integration ordering). Use it when a single batch carries events for unrelated business objects that may be processed in parallel. See the request-level `group_id` for semantics.\n",
|
|
5501
5501
|
"maxLength": 128,
|
|
5502
5502
|
"example": "customer-42"
|
|
5503
|
+
},
|
|
5504
|
+
"correlation_id": {
|
|
5505
|
+
"type": "string",
|
|
5506
|
+
"minLength": 1,
|
|
5507
|
+
"maxLength": 255,
|
|
5508
|
+
"description": "Optional per-event trace id. Overrides the request-level `correlation_id` for THIS event, so a batch carrying several distinct business operations keeps its traces segregated in monitoring instead of merged under one request-level id. When absent, the event inherits the request-level `correlation_id`.\n",
|
|
5509
|
+
"example": "customer-42-sync-2026-08-26"
|
|
5503
5510
|
}
|
|
5504
5511
|
}
|
|
5505
5512
|
},
|
|
@@ -8888,16 +8895,11 @@
|
|
|
8888
8895
|
"properties": {
|
|
8889
8896
|
"version": {
|
|
8890
8897
|
"type": "string",
|
|
8891
|
-
"
|
|
8892
|
-
"1"
|
|
8893
|
-
],
|
|
8894
|
-
"description": "Version of the direct payload contract. Currently only `\"1\"` is supported; an\nunsupported version is rejected with `DIRECT_VERSION_UNSUPPORTED`.\n"
|
|
8898
|
+
"description": "Version of the direct payload contract. Currently only `\"1\"` is supported; an\nunsupported version is rejected with `DIRECT_VERSION_UNSUPPORTED`. Deliberately not\nan enum: the constraint is enforced by the handler so the dry-run endpoint returns\na structured `valid: false` verdict instead of a schema-level 400.\n"
|
|
8895
8899
|
},
|
|
8896
8900
|
"operations": {
|
|
8897
8901
|
"type": "array",
|
|
8898
|
-
"
|
|
8899
|
-
"maxItems": 100,
|
|
8900
|
-
"description": "The operations to apply, in order. At most 100 operations per event. Each item is\neither an entity operation (`type` omitted or `\"entity\"`) or a meter reading\noperation (`type: \"meter_reading\"`).\n",
|
|
8902
|
+
"description": "The operations to apply, in order. At most 100 operations per event (enforced by\nthe handler, with a structured error naming the limit). Each item is either an\nentity operation (`type` omitted or `\"entity\"`) or a meter reading operation\n(`type: \"meter_reading\"`).\n",
|
|
8901
8903
|
"items": {
|
|
8902
8904
|
"anyOf": [
|
|
8903
8905
|
{
|
|
@@ -9996,12 +9998,11 @@
|
|
|
9996
9998
|
},
|
|
9997
9999
|
"EntitySyncState": {
|
|
9998
10000
|
"type": "object",
|
|
10001
|
+
"description": "Inbound sync state of one entity for one integration. Carries two\nindependent groups: the entity-level fields (`last_synced_at`, …) and,\non meter/meter_counter entities, the readings-level fields\n(`readings_last_synced_at`, …). Either group can be present alone — a\nmeter whose readings sync via the ERP but whose entity was never\nitself inbound-mapped carries only the readings group.\n",
|
|
9999
10002
|
"required": [
|
|
10000
10003
|
"entity_id",
|
|
10001
10004
|
"integration_id",
|
|
10002
|
-
"entity_slug"
|
|
10003
|
-
"last_synced_at",
|
|
10004
|
-
"last_operation"
|
|
10005
|
+
"entity_slug"
|
|
10005
10006
|
],
|
|
10006
10007
|
"properties": {
|
|
10007
10008
|
"entity_id": {
|
|
@@ -10046,6 +10047,23 @@
|
|
|
10046
10047
|
"last_event_id": {
|
|
10047
10048
|
"type": "string",
|
|
10048
10049
|
"description": "The event ID of the most recent inbound sync check"
|
|
10050
|
+
},
|
|
10051
|
+
"readings_last_synced_at": {
|
|
10052
|
+
"type": "string",
|
|
10053
|
+
"format": "date-time",
|
|
10054
|
+
"description": "Last time meter readings for this meter/meter_counter entity were\nreceived and processed from the ERP. Only present on meter and\nmeter_counter entities. The metering path cannot detect no-ops,\nso there is no separate readings changed-at.\n"
|
|
10055
|
+
},
|
|
10056
|
+
"readings_last_operation": {
|
|
10057
|
+
"type": "string",
|
|
10058
|
+
"enum": [
|
|
10059
|
+
"upsert",
|
|
10060
|
+
"delete"
|
|
10061
|
+
],
|
|
10062
|
+
"description": "Outcome of the most recent inbound readings sync"
|
|
10063
|
+
},
|
|
10064
|
+
"readings_last_event_id": {
|
|
10065
|
+
"type": "string",
|
|
10066
|
+
"description": "The event ID of the most recent inbound readings sync"
|
|
10049
10067
|
}
|
|
10050
10068
|
}
|
|
10051
10069
|
},
|
|
@@ -2050,7 +2050,7 @@
|
|
|
2050
2050
|
},
|
|
2051
2051
|
"Operator": {
|
|
2052
2052
|
"type": "string",
|
|
2053
|
-
"description": "Predefined comparison operator. Compatibility (enforced at write time):\n- number: equal, notEqual, greaterThan, greaterThanInclusive, lessThan, lessThanInclusive, between, regexMatch\n- date: dateBefore, dateOnOrBefore, dateAfter, dateOnOrAfter, dateBetween, notInFuture, notInPast, regexMatch\n- text: equal, notEqual, contains, doesNotContain, startsWith, endsWith, regexMatch, lengthBetween,\n greaterThan, greaterThanInclusive, lessThan, lessThanInclusive, between\nRange operators (between, dateBetween, lengthBetween) require a `range` value;\nunary operators (notInFuture, notInPast) require a `none` value; all others require a scalar value.\nregexMatch validates the raw input string's format and always takes a static string pattern.\nNumeric comparison operators on text rules parse the input as a number at evaluation time\n(free-text fields often hold numbers); unparsable input fails the condition.\n",
|
|
2053
|
+
"description": "Predefined comparison operator. Compatibility (enforced at write time):\n- number: equal, notEqual, greaterThan, greaterThanInclusive, lessThan, lessThanInclusive, between, regexMatch,\n maxDigits, maxDecimals\n- date: dateBefore, dateOnOrBefore, dateAfter, dateOnOrAfter, dateBetween, notInFuture, notInPast, regexMatch\n- text: equal, notEqual, contains, doesNotContain, startsWith, endsWith, regexMatch, lengthBetween,\n greaterThan, greaterThanInclusive, lessThan, lessThanInclusive, between, maxDigits, maxDecimals\nRange operators (between, dateBetween, lengthBetween) require a `range` value;\nunary operators (notInFuture, notInPast) require a `none` value; all others require a scalar value.\nregexMatch validates the raw input string's format and always takes a static string pattern.\nNumeric comparison operators on text rules parse the input as a number at evaluation time\n(free-text fields often hold numbers); unparsable input fails the condition.\nmaxDigits limits how many digits the written input may contain in total (grouping\nseparators, sign and the decimal separator are not counted); maxDecimals limits how many\ndigits may follow the decimal separator. Both take a non-negative integer comparison value\nand, like the other numeric operators, are also allowed on text rules.\n",
|
|
2054
2054
|
"enum": [
|
|
2055
2055
|
"equal",
|
|
2056
2056
|
"notEqual",
|
|
@@ -2071,7 +2071,9 @@
|
|
|
2071
2071
|
"startsWith",
|
|
2072
2072
|
"endsWith",
|
|
2073
2073
|
"regexMatch",
|
|
2074
|
-
"lengthBetween"
|
|
2074
|
+
"lengthBetween",
|
|
2075
|
+
"maxDigits",
|
|
2076
|
+
"maxDecimals"
|
|
2075
2077
|
]
|
|
2076
2078
|
},
|
|
2077
2079
|
"ConditionValue": {
|
|
@@ -2355,5 +2357,9 @@
|
|
|
2355
2357
|
}
|
|
2356
2358
|
}
|
|
2357
2359
|
},
|
|
2358
|
-
"servers": [
|
|
2360
|
+
"servers": [
|
|
2361
|
+
{
|
|
2362
|
+
"url": "https://validation-rules.sls.epilot.io"
|
|
2363
|
+
}
|
|
2364
|
+
]
|
|
2359
2365
|
}
|
package/dist/bin/epilot.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import {
|
|
3
3
|
API_LIST
|
|
4
|
-
} from "../chunk-
|
|
4
|
+
} from "../chunk-4J5ZADZC.js";
|
|
5
5
|
|
|
6
6
|
// bin/epilot.ts
|
|
7
7
|
import { runMain } from "citty";
|
|
@@ -11,7 +11,7 @@ import { defineCommand } from "citty";
|
|
|
11
11
|
var main = defineCommand({
|
|
12
12
|
meta: {
|
|
13
13
|
name: "epilot",
|
|
14
|
-
version: "0.1.
|
|
14
|
+
version: "0.1.130",
|
|
15
15
|
description: "CLI for epilot APIs"
|
|
16
16
|
},
|
|
17
17
|
args: {
|
|
@@ -30,8 +30,8 @@ var main = defineCommand({
|
|
|
30
30
|
auth: () => import("../auth-WMXFMPWE.js").then((m) => m.default),
|
|
31
31
|
profile: () => import("../profile-OZJL5ZPT.js").then((m) => m.default),
|
|
32
32
|
config: () => import("../config-DGZIMLZK.js").then((m) => m.default),
|
|
33
|
-
completion: () => import("../completion-
|
|
34
|
-
upgrade: () => import("../upgrade-
|
|
33
|
+
completion: () => import("../completion-GFINH6YJ.js").then((m) => m.default),
|
|
34
|
+
upgrade: () => import("../upgrade-QPOYGFSB.js").then((m) => m.default),
|
|
35
35
|
"access-token": () => import("../access-token-WWE6BDJH.js").then((m) => m.default),
|
|
36
36
|
address: () => import("../address-EH3C4CVB.js").then((m) => m.default),
|
|
37
37
|
"address-suggestions": () => import("../address-suggestions-RRSLOBFW.js").then((m) => m.default),
|
|
@@ -134,13 +134,13 @@ process.stderr.on("error", (err) => {
|
|
|
134
134
|
if (err.code === "EPIPE") process.exit(0);
|
|
135
135
|
throw err;
|
|
136
136
|
});
|
|
137
|
-
var VERSION = true ? "0.1.
|
|
137
|
+
var VERSION = true ? "0.1.130" : (await null).default.version;
|
|
138
138
|
var reorderedArgv = hoistFlagsAfterSubcommand(process.argv.slice(2));
|
|
139
139
|
process.argv = [process.argv[0], process.argv[1], ...reorderedArgv];
|
|
140
140
|
var args = process.argv.slice(2);
|
|
141
141
|
var completionsIdx = args.indexOf("--_completions");
|
|
142
142
|
if (completionsIdx >= 0) {
|
|
143
|
-
const { handleCompletions } = await import("../completion-
|
|
143
|
+
const { handleCompletions } = await import("../completion-GFINH6YJ.js");
|
|
144
144
|
handleCompletions(args[completionsIdx + 1], args[completionsIdx + 2]);
|
|
145
145
|
process.exit(0);
|
|
146
146
|
}
|
|
@@ -1464,7 +1464,7 @@ var API_LIST = [
|
|
|
1464
1464
|
apiName: "validationRules",
|
|
1465
1465
|
kebabName: "validation-rules",
|
|
1466
1466
|
title: "Validation Rules API",
|
|
1467
|
-
serverUrl: "",
|
|
1467
|
+
serverUrl: "https://validation-rules.sls.epilot.io",
|
|
1468
1468
|
operationCount: 7,
|
|
1469
1469
|
operationIds: [
|
|
1470
1470
|
"getValidationRules",
|
|
@@ -72,7 +72,7 @@ ${GREEN}${BOLD}Upgraded to @epilot/cli@${latest}${RESET}
|
|
|
72
72
|
}
|
|
73
73
|
});
|
|
74
74
|
var getCurrentVersion = () => {
|
|
75
|
-
if (true) return "0.1.
|
|
75
|
+
if (true) return "0.1.130";
|
|
76
76
|
try {
|
|
77
77
|
const output = execSync("npm ls -g @epilot/cli --depth=0 --json 2>/dev/null", {
|
|
78
78
|
encoding: "utf-8",
|