@epilot/cli 0.1.115 → 0.1.117

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 CHANGED
@@ -29,7 +29,7 @@ npm install -g @epilot/cli
29
29
 
30
30
  <!-- usage-help -->
31
31
  ```
32
- epilot v0.1.115 — CLI for epilot APIs
32
+ epilot v0.1.117 — CLI for epilot APIs
33
33
 
34
34
  USAGE
35
35
  epilot <api> <operationId> [params...] [flags]
@@ -660,6 +660,12 @@
660
660
  "schema": {
661
661
  "type": "string"
662
662
  }
663
+ },
664
+ {
665
+ "$ref": "#/components/parameters/HistoryChangeTypes"
666
+ },
667
+ {
668
+ "$ref": "#/components/parameters/IncludeHistory"
663
669
  }
664
670
  ],
665
671
  "responses": {
@@ -693,6 +699,12 @@
693
699
  "schema": {
694
700
  "type": "string"
695
701
  }
702
+ },
703
+ {
704
+ "$ref": "#/components/parameters/HistoryChangeTypes"
705
+ },
706
+ {
707
+ "$ref": "#/components/parameters/IncludeHistory"
696
708
  }
697
709
  ],
698
710
  "responses": {
@@ -730,6 +742,9 @@
730
742
  {
731
743
  "$ref": "#/components/parameters/ConfigurationHistoryChangeType"
732
744
  },
745
+ {
746
+ "$ref": "#/components/parameters/HistoryChangeTypes"
747
+ },
733
748
  {
734
749
  "$ref": "#/components/parameters/From"
735
750
  },
@@ -772,6 +787,9 @@
772
787
  {
773
788
  "$ref": "#/components/parameters/ConfigurationHistoryChangeType"
774
789
  },
790
+ {
791
+ "$ref": "#/components/parameters/HistoryChangeTypes"
792
+ },
775
793
  {
776
794
  "$ref": "#/components/parameters/From"
777
795
  },
@@ -877,11 +895,33 @@
877
895
  "schema": {
878
896
  "type": "string",
879
897
  "enum": [
880
- "installment_amount_changed"
898
+ "installment_amount_changed",
899
+ "contract_pricing_changed"
881
900
  ],
882
901
  "default": "installment_amount_changed"
883
902
  },
884
903
  "description": "Billing configuration change type to return."
904
+ },
905
+ "HistoryChangeTypes": {
906
+ "name": "history_change_types",
907
+ "in": "query",
908
+ "required": false,
909
+ "schema": {
910
+ "type": "string",
911
+ "pattern": "^(installment_amount_changed|contract_pricing_changed)(,(installment_amount_changed|contract_pricing_changed))*$",
912
+ "example": "installment_amount_changed,contract_pricing_changed"
913
+ },
914
+ "description": "Comma-separated billing configuration change types to return. When omitted, installment history is returned by default."
915
+ },
916
+ "IncludeHistory": {
917
+ "name": "include_history",
918
+ "in": "query",
919
+ "required": false,
920
+ "schema": {
921
+ "type": "boolean",
922
+ "default": true
923
+ },
924
+ "description": "Include recent configuration history in the pricing information response. Set to false when using the dedicated configuration history endpoint."
885
925
  }
886
926
  },
887
927
  "securitySchemes": {
@@ -1856,6 +1896,10 @@
1856
1896
  "price_title": {
1857
1897
  "type": "string"
1858
1898
  },
1899
+ "tariff_type": {
1900
+ "type": "string",
1901
+ "description": "Semantic tariff register for the price component, such as HT or NT."
1902
+ },
1859
1903
  "pricing_model": {
1860
1904
  "type": "string"
1861
1905
  },
@@ -1941,12 +1985,59 @@
1941
1985
  "base_price": {
1942
1986
  "$ref": "#/components/schemas/PriceContext"
1943
1987
  },
1988
+ "base_prices": {
1989
+ "type": "array",
1990
+ "description": "Canonically ordered base-price components. The singular base_price remains for compatibility.",
1991
+ "items": {
1992
+ "$ref": "#/components/schemas/PriceContext"
1993
+ }
1994
+ },
1944
1995
  "working_price": {
1945
1996
  "$ref": "#/components/schemas/PriceContext"
1997
+ },
1998
+ "working_prices": {
1999
+ "type": "array",
2000
+ "description": "Canonically ordered working-price components, including separate HT and NT prices when present. The singular working_price remains for compatibility.",
2001
+ "items": {
2002
+ "$ref": "#/components/schemas/PriceContext"
2003
+ }
1946
2004
  }
1947
2005
  }
1948
2006
  },
1949
- "ConfigurationHistoryRow": {
2007
+ "ContractTariffContext": {
2008
+ "type": "object",
2009
+ "properties": {
2010
+ "product_id": {
2011
+ "type": "string"
2012
+ },
2013
+ "product_title": {
2014
+ "type": "string"
2015
+ }
2016
+ }
2017
+ },
2018
+ "ContractPricingContext": {
2019
+ "allOf": [
2020
+ {
2021
+ "$ref": "#/components/schemas/ConfigurationHistoryContext"
2022
+ },
2023
+ {
2024
+ "type": "object",
2025
+ "properties": {
2026
+ "tariff": {
2027
+ "$ref": "#/components/schemas/ContractTariffContext"
2028
+ },
2029
+ "tariffs": {
2030
+ "type": "array",
2031
+ "description": "Canonically ordered tariff products for composite Contracts. The singular tariff is populated when exactly one tariff product exists.",
2032
+ "items": {
2033
+ "$ref": "#/components/schemas/ContractTariffContext"
2034
+ }
2035
+ }
2036
+ }
2037
+ }
2038
+ ]
2039
+ },
2040
+ "ConfigurationHistoryRowBase": {
1950
2041
  "type": "object",
1951
2042
  "required": [
1952
2043
  "event_id",
@@ -1957,8 +2048,7 @@
1957
2048
  "schema_version",
1958
2049
  "changed_at",
1959
2050
  "created_at",
1960
- "source",
1961
- "new_value"
2051
+ "source"
1962
2052
  ],
1963
2053
  "properties": {
1964
2054
  "event_id": {
@@ -1977,12 +2067,6 @@
1977
2067
  "entity_id": {
1978
2068
  "type": "string"
1979
2069
  },
1980
- "change_type": {
1981
- "type": "string",
1982
- "enum": [
1983
- "installment_amount_changed"
1984
- ]
1985
- },
1986
2070
  "schema_version": {
1987
2071
  "type": "integer",
1988
2072
  "example": 1
@@ -2021,20 +2105,112 @@
2021
2105
  },
2022
2106
  "source_reference": {
2023
2107
  "type": "string"
2108
+ }
2109
+ }
2110
+ },
2111
+ "InstallmentAmountChangedHistoryRow": {
2112
+ "allOf": [
2113
+ {
2114
+ "$ref": "#/components/schemas/ConfigurationHistoryRowBase"
2024
2115
  },
2025
- "previous_value": {
2026
- "nullable": true,
2027
- "allOf": [
2028
- {
2116
+ {
2117
+ "type": "object",
2118
+ "required": [
2119
+ "change_type",
2120
+ "new_value"
2121
+ ],
2122
+ "properties": {
2123
+ "change_type": {
2124
+ "type": "string",
2125
+ "enum": [
2126
+ "installment_amount_changed"
2127
+ ]
2128
+ },
2129
+ "previous_value": {
2130
+ "nullable": true,
2131
+ "allOf": [
2132
+ {
2133
+ "$ref": "#/components/schemas/InstallmentAmountValue"
2134
+ }
2135
+ ]
2136
+ },
2137
+ "new_value": {
2029
2138
  "$ref": "#/components/schemas/InstallmentAmountValue"
2139
+ },
2140
+ "context": {
2141
+ "$ref": "#/components/schemas/ConfigurationHistoryContext"
2030
2142
  }
2031
- ]
2143
+ }
2144
+ }
2145
+ ]
2146
+ },
2147
+ "ContractPricingChangedHistoryRow": {
2148
+ "allOf": [
2149
+ {
2150
+ "$ref": "#/components/schemas/ConfigurationHistoryRowBase"
2032
2151
  },
2033
- "new_value": {
2034
- "$ref": "#/components/schemas/InstallmentAmountValue"
2152
+ {
2153
+ "type": "object",
2154
+ "required": [
2155
+ "change_type",
2156
+ "previous_context",
2157
+ "new_context",
2158
+ "changed_fields"
2159
+ ],
2160
+ "properties": {
2161
+ "change_type": {
2162
+ "type": "string",
2163
+ "enum": [
2164
+ "contract_pricing_changed"
2165
+ ]
2166
+ },
2167
+ "previous_context": {
2168
+ "nullable": true,
2169
+ "allOf": [
2170
+ {
2171
+ "$ref": "#/components/schemas/ContractPricingContext"
2172
+ }
2173
+ ]
2174
+ },
2175
+ "new_context": {
2176
+ "nullable": true,
2177
+ "allOf": [
2178
+ {
2179
+ "$ref": "#/components/schemas/ContractPricingContext"
2180
+ }
2181
+ ]
2182
+ },
2183
+ "changed_fields": {
2184
+ "type": "array",
2185
+ "items": {
2186
+ "type": "string",
2187
+ "enum": [
2188
+ "tariff",
2189
+ "base_price",
2190
+ "working_price",
2191
+ "discount",
2192
+ "dynamic_tariff_configuration"
2193
+ ]
2194
+ }
2195
+ }
2196
+ }
2197
+ }
2198
+ ]
2199
+ },
2200
+ "ConfigurationHistoryRow": {
2201
+ "oneOf": [
2202
+ {
2203
+ "$ref": "#/components/schemas/InstallmentAmountChangedHistoryRow"
2035
2204
  },
2036
- "context": {
2037
- "$ref": "#/components/schemas/ConfigurationHistoryContext"
2205
+ {
2206
+ "$ref": "#/components/schemas/ContractPricingChangedHistoryRow"
2207
+ }
2208
+ ],
2209
+ "discriminator": {
2210
+ "propertyName": "change_type",
2211
+ "mapping": {
2212
+ "installment_amount_changed": "#/components/schemas/InstallmentAmountChangedHistoryRow",
2213
+ "contract_pricing_changed": "#/components/schemas/ContractPricingChangedHistoryRow"
2038
2214
  }
2039
2215
  }
2040
2216
  },
@@ -2,7 +2,7 @@
2
2
  "openapi": "3.0.3",
3
3
  "info": {
4
4
  "title": "Integration Toolkit API",
5
- "version": "1.17.0",
5
+ "version": "1.18.0",
6
6
  "description": "API for integrating with external systems in a standardised way."
7
7
  },
8
8
  "tags": [
@@ -3977,7 +3977,7 @@
3977
3977
  "post": {
3978
3978
  "operationId": "createErpImport",
3979
3979
  "summary": "createErpImport",
3980
- "description": "Register an already-uploaded file (S3 ref) as a pricing-file import job. Returns the job and a file preview. Nothing runs yet: no use case is chosen and no validation starts here. Optionally rank candidates with POST /v2/erp/imports/{importId}:suggest-use-cases, then start validation with POST /v2/erp/imports/{importId}:validate.",
3980
+ "description": "Register an already-uploaded file (S3 ref) as a pricing-file import job. Returns the job and a file preview. Nothing runs yet: no use case is chosen and no validation starts here. Optionally rank candidates with POST /v2/erp/imports/{importId}:suggest-use-cases, then start validation with POST /v2/erp/imports/{importId}:validate.\nPass `import_id` to repoint an existing PENDING import at a different file instead, keeping its id and its place in the history.",
3981
3981
  "tags": [
3982
3982
  "erp-imports"
3983
3983
  ],
@@ -3992,8 +3992,18 @@
3992
3992
  }
3993
3993
  },
3994
3994
  "responses": {
3995
+ "200": {
3996
+ "description": "The named import now points at this file. Returned only when `import_id` was supplied — no `Location`, because nothing was created.",
3997
+ "content": {
3998
+ "application/json": {
3999
+ "schema": {
4000
+ "$ref": "#/components/schemas/CreateErpImportResponse"
4001
+ }
4002
+ }
4003
+ }
4004
+ },
3995
4005
  "201": {
3996
- "description": "Import job created",
4006
+ "description": "Import job created. Returned only when `import_id` was omitted.",
3997
4007
  "headers": {
3998
4008
  "Location": {
3999
4009
  "description": "URL of the created job (`/v2/erp/imports/{importId}`).",
@@ -4016,6 +4026,12 @@
4016
4026
  "403": {
4017
4027
  "$ref": "#/components/responses/Forbidden"
4018
4028
  },
4029
+ "404": {
4030
+ "$ref": "#/components/responses/NotFound"
4031
+ },
4032
+ "409": {
4033
+ "$ref": "#/components/responses/Conflict"
4034
+ },
4019
4035
  "500": {
4020
4036
  "$ref": "#/components/responses/InternalServerError"
4021
4037
  }
@@ -4403,6 +4419,10 @@
4403
4419
  "type": "boolean",
4404
4420
  "default": false,
4405
4421
  "description": "Return a sample of the file's first rows in `preview`. Only controls whether the sample comes BACK — the head is read either way, because that read is how an unreadable file gets refused."
4422
+ },
4423
+ "import_id": {
4424
+ "type": "string",
4425
+ "description": "Repoint an EXISTING import at this file instead of registering a new one — same row, same id, so iterating on which file to import leaves one entry in the history rather than one per attempt.\nOnly a PENDING import may be repointed; any other status returns 409 with code `IMPORT_NOT_REPLACEABLE`. Past the first check the previous verdict is what tells the user what to fix, and a job that reached the execute phase may already have published rows under `correlation_id`.\nAn id that names nothing returns 404. It never falls back to registering a new import: a stale id must fail loudly rather than quietly produce a second one."
4406
4426
  }
4407
4427
  }
4408
4428
  },
@@ -8473,7 +8493,7 @@
8473
8493
  },
8474
8494
  "FileProxyUploadConfig": {
8475
8495
  "type": "object",
8476
- "description": "Upload-side settings for a file_proxy use case with `direction: upload`.\nEverything about WHAT is sent lives on the outbound mapping\n(see `FileProxyDeliveryConfig`); this object only governs HOW the transfer is bounded\nand judged.\n",
8496
+ "description": "Upload-side settings for a file_proxy use case with `direction: upload`.\nThe surrounding file_proxy configuration owns WHAT and HOW to send: `fan_out`,\n`file_source`, `params_mapping`, lookups, constants, auth, and steps. This nested object\ngoverns upload-specific limits and how the final external response is judged. The\noutbound mapping remains a pure pointer to the recipe (see `FileProxyDeliveryConfig`).\n",
8477
8497
  "properties": {
8478
8498
  "max_file_bytes": {
8479
8499
  "type": "integer",
@@ -8486,7 +8506,7 @@
8486
8506
  "minimum": 1,
8487
8507
  "maximum": 100,
8488
8508
  "default": 8,
8489
- "description": "Maximum delivery attempts per item before the delivery is marked failed and the\nmessage is dead-lettered. Attempts are spaced by an exponential, jittered backoff\nspanning roughly 16 hours over the default 8 attempts, so an ERP maintenance window\ndoes not exhaust them.\n\nLives here rather than on the outbound delivery because how hard to retry is a\nproperty of the transport — the same judgement as `max_file_bytes` — and the outbound\ndelivery is a pure pointer.\n"
8509
+ "description": "Maximum delivery attempts per item before the delivery is marked failed. Attempts\nare spaced by an exponential, jittered backoff. The default 8 attempts schedule at\nmost 7 delays, totaling about 7 hours 40 minutes before jitter, so a normal ERP\nmaintenance window does not immediately exhaust them.\n\nLives here rather than on the outbound delivery because how hard to retry is a\nproperty of the transport — the same judgement as `max_file_bytes` — and the outbound\ndelivery is a pure pointer.\n"
8490
8510
  },
8491
8511
  "success_when": {
8492
8512
  "type": "string",
@@ -9025,7 +9045,7 @@
9025
9045
  "id": {
9026
9046
  "type": "string",
9027
9047
  "format": "uuid",
9028
- "description": "Unique identifier for this mapping"
9048
+ "description": "Unique identifier for this mapping; generated by the API when omitted"
9029
9049
  },
9030
9050
  "name": {
9031
9051
  "type": "string",
@@ -11,7 +11,7 @@ import { defineCommand } from "citty";
11
11
  var main = defineCommand({
12
12
  meta: {
13
13
  name: "epilot",
14
- version: "0.1.115",
14
+ version: "0.1.117",
15
15
  description: "CLI for epilot APIs"
16
16
  },
17
17
  args: {
@@ -31,7 +31,7 @@ var main = defineCommand({
31
31
  profile: () => import("../profile-OZJL5ZPT.js").then((m) => m.default),
32
32
  config: () => import("../config-DGZIMLZK.js").then((m) => m.default),
33
33
  completion: () => import("../completion-YY2UW6SA.js").then((m) => m.default),
34
- upgrade: () => import("../upgrade-J67DJOAP.js").then((m) => m.default),
34
+ upgrade: () => import("../upgrade-YQ6STVES.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,7 +134,7 @@ 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.115" : (await null).default.version;
137
+ var VERSION = true ? "0.1.117" : (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);
@@ -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.115";
75
+ if (true) return "0.1.117";
76
76
  try {
77
77
  const output = execSync("npm ls -g @epilot/cli --depth=0 --json 2>/dev/null", {
78
78
  encoding: "utf-8",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@epilot/cli",
3
- "version": "0.1.115",
3
+ "version": "0.1.117",
4
4
  "description": "CLI for epilot APIs",
5
5
  "type": "module",
6
6
  "bin": {