@epilot/app-client 0.14.1 → 0.15.0

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.
@@ -1 +1 @@
1
- (()=>{"use strict";var e={330(e,r,t){var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(r,"__esModule",{value:!0});var o=n(t(466));r.default=o.default},466(e){e.exports=JSON.parse('{"openapi":"3.1.0","info":{"title":"","version":""},"servers":[{"url":"https://app.sls.epilot.io"}],"paths":{"/v1/public/app/{appId}/components/{componentId}":{"parameters":[{"name":"appId","in":"path","required":true,"description":"ID of the app configuration to install"},{"name":"componentId","in":"path","required":true,"description":"ID of the component to retrieve"}],"get":{"operationId":"getPublicFacingComponent","responses":{}}},"/v1/app-configurations":{"get":{"operationId":"listConfigurations","parameters":[{"name":"page","in":"query"},{"name":"pageSize","in":"query"}],"responses":{}},"post":{"operationId":"createConfiguration","requestBody":{"$ref":"#/components/requestBodies/CreateConfigRequest"},"responses":{}}},"/v1/app-configurations/public":{"get":{"operationId":"listPublicConfigurations","parameters":[{"name":"page","in":"query"},{"name":"pageSize","in":"query"}],"responses":{}}},"/v1/app-configurations/public/{appId}":{"parameters":[{"name":"appId","in":"path","required":true,"description":"ID of the app configuration to install"}],"get":{"operationId":"getPublicConfiguration","parameters":[{"name":"version","in":"query"}],"responses":{}}},"/v1/app-configurations/{appId}":{"parameters":[{"name":"appId","in":"path","required":true,"description":"ID of the app configuration"}],"get":{"operationId":"getConfiguration","parameters":[{"name":"version","in":"query"}],"responses":{}},"patch":{"operationId":"patchMetadata","requestBody":{"$ref":"#/components/requestBodies/PatchConfigMetadataRequest"},"responses":{}},"delete":{"operationId":"deleteConfiguration","responses":{}}},"/v1/app-configurations/{appId}/events":{"post":{"operationId":"queryEvents","parameters":[{"name":"appId","in":"path","required":true}],"requestBody":{"required":true,"content":{"application/json":{}}},"responses":{}}},"/v1/app-configurations/{appId}/bundle":{"post":{"operationId":"createBundleUploadUrl","parameters":[{"name":"appId","in":"path","required":true}],"requestBody":{"$ref":"#/components/requestBodies/CreateBundlePresignedRequest"},"responses":{}}},"/v1/app-configurations/{appId}/zip":{"post":{"operationId":"createZipUploadUrl","parameters":[{"name":"appId","in":"path","required":true}],"requestBody":{"content":{"application/json":{}}},"responses":{}}},"/v1/app-configurations/{appId}/logo":{"parameters":[{"name":"appId","in":"path","required":true,"description":"ID of the app configuration"}],"post":{"operationId":"createLogoUploadUrl","requestBody":{"$ref":"#/components/requestBodies/CreateLogoPresignedRequest"},"responses":{}},"delete":{"operationId":"deleteLogo","responses":{}}},"/v1/app-configurations/{appId}/versions":{"get":{"operationId":"listVersions","parameters":[{"name":"appId","in":"path","required":true},{"name":"page","in":"query"},{"name":"pageSize","in":"query"}],"responses":{}}},"/v1/app-configurations/{appId}/versions/{version}":{"get":{"operationId":"getVersion","parameters":[{"name":"appId","in":"path","required":true},{"name":"version","in":"path","required":true}],"responses":{}},"delete":{"operationId":"deleteVersion","parameters":[{"name":"appId","in":"path","required":true},{"name":"version","in":"path","required":true}],"responses":{}},"patch":{"operationId":"patchVersion","parameters":[{"name":"appId","in":"path","required":true},{"name":"version","in":"path","required":true}],"requestBody":{"$ref":"#/components/requestBodies/PatchVersionRequest"},"responses":{}}},"/v1/app-configurations/{appId}/versions/{version}/review":{"get":{"operationId":"getReview","parameters":[{"name":"appId","in":"path","required":true},{"name":"version","in":"path","required":true}],"responses":{}},"post":{"operationId":"createReview","parameters":[{"name":"appId","in":"path","required":true},{"name":"version","in":"path","required":true}],"requestBody":{"$ref":"#/components/requestBodies/CreateReviewRequest"},"responses":{}}},"/v1/app-configurations/{appId}/versions/{version}/components":{"post":{"operationId":"createComponent","parameters":[{"name":"appId","in":"path","required":true},{"name":"version","in":"path","required":true}],"requestBody":{"$ref":"#/components/requestBodies/UpsertComponentRequest"},"responses":{}}},"/v1/app-configurations/{appId}/versions/{version}/components/{componentId}":{"patch":{"operationId":"patchComponent","parameters":[{"name":"appId","in":"path","required":true},{"name":"version","in":"path","required":true},{"name":"componentId","in":"path","required":true}],"requestBody":{"$ref":"#/components/requestBodies/UpsertComponentRequest"},"responses":{}},"delete":{"operationId":"deleteComponent","parameters":[{"name":"appId","in":"path","required":true},{"name":"version","in":"path","required":true},{"name":"componentId","in":"path","required":true}],"responses":{}}},"/v1/app-configurations/{appId}/versions/{sourceVersion}/clone-to/{targetVersion}":{"post":{"operationId":"cloneVersion","parameters":[{"name":"appId","in":"path","required":true},{"name":"sourceVersion","in":"path","required":true},{"name":"targetVersion","in":"path","required":true}],"responses":{}}},"/v1/app":{"get":{"operationId":"listInstallations","parameters":[{"name":"componentType","in":"query"},{"name":"enabled","in":"query"},{"name":"page","in":"query"},{"name":"pageSize","in":"query"}],"responses":{}}},"/v1/app/{appId}":{"get":{"operationId":"getInstallation","parameters":[{"name":"appId","in":"path","required":true}],"responses":{}},"post":{"operationId":"install","parameters":[{"name":"appId","in":"path","required":true}],"requestBody":{"$ref":"#/components/requestBodies/InstallRequest"},"responses":{}},"patch":{"operationId":"patchInstallation","parameters":[{"name":"appId","in":"path","required":true}],"requestBody":{"$ref":"#/components/requestBodies/InstallRequest"},"responses":{}},"delete":{"operationId":"uninstall","parameters":[{"name":"appId","in":"path","required":true}],"responses":{}}},"/v1/app/{appId}/promote-to/{version}":{"post":{"operationId":"promoteVersion","parameters":[{"name":"appId","in":"path","required":true},{"name":"version","in":"path","required":true}],"responses":{}}},"/v1/app/{appId}/options/resolve":{"post":{"operationId":"resolveOptions","parameters":[{"name":"appId","in":"path","required":true}],"requestBody":{"content":{"application/json":{}}},"responses":{}}},"/v1/app-events":{"post":{"operationId":"ingestEvent","requestBody":{"required":true,"content":{"application/json":{}}},"responses":{}}},"/v1/public/app/{appId}/proxy/{proxyName}/{path}":{"parameters":[{"name":"appId","in":"path","required":true,"description":"ID of the installed app"},{"name":"proxyName","in":"path","required":true,"description":"Name of the proxy target as defined in the app manifest"},{"name":"path","in":"path","required":true,"description":"Path to forward to the proxy target"},{"name":"query","in":"query","required":false,"style":"form","explode":true,"description":"Free-form query parameters, forwarded unchanged to the proxy target"}],"get":{"operationId":"publicProxyGet","responses":{}},"post":{"operationId":"publicProxyPost","requestBody":{"content":{"application/json":{}}},"responses":{}},"put":{"operationId":"publicProxyPut","requestBody":{"content":{"application/json":{}}},"responses":{}},"patch":{"operationId":"publicProxyPatch","requestBody":{"content":{"application/json":{}}},"responses":{}},"delete":{"operationId":"publicProxyDelete","responses":{}}}},"components":{"requestBodies":{"CreateReviewRequest":{"required":true,"content":{"application/json":{}}},"CreateLogoPresignedRequest":{"required":true,"content":{"application/json":{}}},"CreateBundlePresignedRequest":{"required":true,"content":{"application/json":{}}},"PatchConfigMetadataRequest":{"required":true,"content":{"application/json":{}}},"PatchVersionRequest":{"required":true,"content":{"application/json":{}}},"UpsertComponentRequest":{"required":true,"content":{"application/json":{}}},"CreateConfigRequest":{"required":true,"content":{"application/json":{}}},"InstallRequest":{"content":{"application/json":{}}}}}}')}},r={},t=function t(n){var o=r[n];if(void 0!==o)return o.exports;var p=r[n]={exports:{}};return e[n].call(p.exports,p,p.exports,t),p.exports}(330),n=exports;for(var o in t)n[o]=t[o];t.__esModule&&Object.defineProperty(n,"__esModule",{value:!0})})();
1
+ (()=>{"use strict";var e={438(e,r,t){var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(r,"__esModule",{value:!0});var o=n(t(466));r.default=o.default},466(e){e.exports=JSON.parse('{"openapi":"3.1.0","info":{"title":"","version":""},"servers":[{"url":"https://app.sls.epilot.io"}],"paths":{"/v1/public/app/{appId}/components/{componentId}":{"parameters":[{"name":"appId","in":"path","required":true,"description":"ID of the app configuration to install"},{"name":"componentId","in":"path","required":true,"description":"ID of the component to retrieve"}],"get":{"operationId":"getPublicFacingComponent","responses":{}}},"/v1/app-configurations":{"get":{"operationId":"listConfigurations","parameters":[{"name":"page","in":"query"},{"name":"pageSize","in":"query"}],"responses":{}},"post":{"operationId":"createConfiguration","requestBody":{"$ref":"#/components/requestBodies/CreateConfigRequest"},"responses":{}}},"/v1/app-configurations/public":{"get":{"operationId":"listPublicConfigurations","parameters":[{"name":"page","in":"query"},{"name":"pageSize","in":"query"}],"responses":{}}},"/v1/app-configurations/public/{appId}":{"parameters":[{"name":"appId","in":"path","required":true,"description":"ID of the app configuration to install"}],"get":{"operationId":"getPublicConfiguration","parameters":[{"name":"version","in":"query"}],"responses":{}}},"/v1/app-configurations/{appId}":{"parameters":[{"name":"appId","in":"path","required":true,"description":"ID of the app configuration"}],"get":{"operationId":"getConfiguration","parameters":[{"name":"version","in":"query"}],"responses":{}},"patch":{"operationId":"patchMetadata","requestBody":{"$ref":"#/components/requestBodies/PatchConfigMetadataRequest"},"responses":{}},"delete":{"operationId":"deleteConfiguration","responses":{}}},"/v1/app-configurations/{appId}/events":{"post":{"operationId":"queryEvents","parameters":[{"name":"appId","in":"path","required":true}],"requestBody":{"required":true,"content":{"application/json":{}}},"responses":{}}},"/v1/app-configurations/{appId}/bundle":{"post":{"operationId":"createBundleUploadUrl","parameters":[{"name":"appId","in":"path","required":true}],"requestBody":{"$ref":"#/components/requestBodies/CreateBundlePresignedRequest"},"responses":{}}},"/v1/app-configurations/{appId}/zip":{"post":{"operationId":"createZipUploadUrl","parameters":[{"name":"appId","in":"path","required":true}],"requestBody":{"content":{"application/json":{}}},"responses":{}}},"/v1/app-configurations/{appId}/logo":{"parameters":[{"name":"appId","in":"path","required":true,"description":"ID of the app configuration"}],"post":{"operationId":"createLogoUploadUrl","requestBody":{"$ref":"#/components/requestBodies/CreateLogoPresignedRequest"},"responses":{}},"delete":{"operationId":"deleteLogo","responses":{}}},"/v1/app-configurations/{appId}/versions":{"get":{"operationId":"listVersions","parameters":[{"name":"appId","in":"path","required":true},{"name":"page","in":"query"},{"name":"pageSize","in":"query"}],"responses":{}}},"/v1/app-configurations/{appId}/versions/{version}":{"get":{"operationId":"getVersion","parameters":[{"name":"appId","in":"path","required":true},{"name":"version","in":"path","required":true}],"responses":{}},"delete":{"operationId":"deleteVersion","parameters":[{"name":"appId","in":"path","required":true},{"name":"version","in":"path","required":true}],"responses":{}},"patch":{"operationId":"patchVersion","parameters":[{"name":"appId","in":"path","required":true},{"name":"version","in":"path","required":true}],"requestBody":{"$ref":"#/components/requestBodies/PatchVersionRequest"},"responses":{}}},"/v1/app-configurations/{appId}/versions/{version}/review":{"get":{"operationId":"getReview","parameters":[{"name":"appId","in":"path","required":true},{"name":"version","in":"path","required":true}],"responses":{}},"post":{"operationId":"createReview","parameters":[{"name":"appId","in":"path","required":true},{"name":"version","in":"path","required":true}],"requestBody":{"$ref":"#/components/requestBodies/CreateReviewRequest"},"responses":{}}},"/v1/app-configurations/{appId}/versions/{version}/components":{"post":{"operationId":"createComponent","parameters":[{"name":"appId","in":"path","required":true},{"name":"version","in":"path","required":true}],"requestBody":{"$ref":"#/components/requestBodies/UpsertComponentRequest"},"responses":{}}},"/v1/app-configurations/{appId}/versions/{version}/components/{componentId}":{"patch":{"operationId":"patchComponent","parameters":[{"name":"appId","in":"path","required":true},{"name":"version","in":"path","required":true},{"name":"componentId","in":"path","required":true}],"requestBody":{"$ref":"#/components/requestBodies/UpsertComponentRequest"},"responses":{}},"delete":{"operationId":"deleteComponent","parameters":[{"name":"appId","in":"path","required":true},{"name":"version","in":"path","required":true},{"name":"componentId","in":"path","required":true}],"responses":{}}},"/v1/app-configurations/{appId}/versions/{sourceVersion}/clone-to/{targetVersion}":{"post":{"operationId":"cloneVersion","parameters":[{"name":"appId","in":"path","required":true},{"name":"sourceVersion","in":"path","required":true},{"name":"targetVersion","in":"path","required":true}],"requestBody":{"$ref":"#/components/requestBodies/CloneVersionRequest"},"responses":{}}},"/v1/app":{"get":{"operationId":"listInstallations","parameters":[{"name":"componentType","in":"query"},{"name":"enabled","in":"query"},{"name":"page","in":"query"},{"name":"pageSize","in":"query"}],"responses":{}}},"/v1/app/{appId}":{"get":{"operationId":"getInstallation","parameters":[{"name":"appId","in":"path","required":true}],"responses":{}},"post":{"operationId":"install","parameters":[{"name":"appId","in":"path","required":true}],"requestBody":{"$ref":"#/components/requestBodies/InstallRequest"},"responses":{}},"patch":{"operationId":"patchInstallation","parameters":[{"name":"appId","in":"path","required":true}],"requestBody":{"$ref":"#/components/requestBodies/InstallRequest"},"responses":{}},"delete":{"operationId":"uninstall","parameters":[{"name":"appId","in":"path","required":true}],"responses":{}}},"/v1/app/{appId}/promote-to/{version}":{"post":{"operationId":"promoteVersion","parameters":[{"name":"appId","in":"path","required":true},{"name":"version","in":"path","required":true}],"responses":{}}},"/v1/app/{appId}/options/resolve":{"post":{"operationId":"resolveOptions","parameters":[{"name":"appId","in":"path","required":true}],"requestBody":{"content":{"application/json":{}}},"responses":{}}},"/v1/app-events":{"post":{"operationId":"ingestEvent","requestBody":{"required":true,"content":{"application/json":{}}},"responses":{}}},"/v1/public/app/{appId}/proxy/{proxyName}/{path}":{"parameters":[{"name":"appId","in":"path","required":true,"description":"ID of the installed app"},{"name":"proxyName","in":"path","required":true,"description":"Name of the proxy target as defined in the app manifest"},{"name":"path","in":"path","required":true,"description":"Path to forward to the proxy target"},{"name":"query","in":"query","required":false,"style":"form","explode":true,"description":"Free-form query parameters, forwarded unchanged to the proxy target"}],"get":{"operationId":"publicProxyGet","responses":{}},"post":{"operationId":"publicProxyPost","requestBody":{"content":{"application/json":{}}},"responses":{}},"put":{"operationId":"publicProxyPut","requestBody":{"content":{"application/json":{}}},"responses":{}},"patch":{"operationId":"publicProxyPatch","requestBody":{"content":{"application/json":{}}},"responses":{}},"delete":{"operationId":"publicProxyDelete","responses":{}}}},"components":{"requestBodies":{"CreateReviewRequest":{"required":true,"content":{"application/json":{}}},"CreateLogoPresignedRequest":{"required":true,"content":{"application/json":{}}},"CreateBundlePresignedRequest":{"required":true,"content":{"application/json":{}}},"PatchConfigMetadataRequest":{"required":true,"content":{"application/json":{}}},"PatchVersionRequest":{"required":true,"content":{"application/json":{}}},"CloneVersionRequest":{"required":false,"content":{"application/json":{}}},"UpsertComponentRequest":{"required":true,"content":{"application/json":{}}},"CreateConfigRequest":{"required":true,"content":{"application/json":{}}},"InstallRequest":{"content":{"application/json":{}}}}}}')}},r={},t=function t(n){var o=r[n];if(void 0!==o)return o.exports;var p=r[n]={exports:{}};return e[n].call(p.exports,p,p.exports,t),p.exports}(438),n=exports;for(var o in t)n[o]=t[o];t.__esModule&&Object.defineProperty(n,"__esModule",{value:!0})})();
@@ -393,6 +393,9 @@
393
393
  "required": true
394
394
  }
395
395
  ],
396
+ "requestBody": {
397
+ "$ref": "#/components/requestBodies/CloneVersionRequest"
398
+ },
396
399
  "responses": {}
397
400
  }
398
401
  },
@@ -618,6 +621,12 @@
618
621
  "application/json": {}
619
622
  }
620
623
  },
624
+ "CloneVersionRequest": {
625
+ "required": false,
626
+ "content": {
627
+ "application/json": {}
628
+ }
629
+ },
621
630
  "UpsertComponentRequest": {
622
631
  "required": true,
623
632
  "content": {
package/dist/openapi.d.ts CHANGED
@@ -8,6 +8,12 @@ import type {
8
8
 
9
9
  declare namespace Components {
10
10
  namespace RequestBodies {
11
+ export interface CloneVersionRequest {
12
+ /**
13
+ * Short description of what the new version will change
14
+ */
15
+ changelog?: string;
16
+ }
11
17
  export interface CreateBundlePresignedRequest {
12
18
  /**
13
19
  * Version of the app
@@ -119,7 +125,11 @@ declare namespace Components {
119
125
  * sensitive and must not declare `sensitive: false`.
120
126
  *
121
127
  */
122
- options?: /* Options for the component configuration */ Schemas.Options[];
128
+ options?: /* An option declaration — a setting the installing org fills in. Declared at app level. */ Schemas.Options[];
129
+ /**
130
+ * Short description of what changed in this version
131
+ */
132
+ changelog?: string;
123
133
  }
124
134
  export type UpsertComponentRequest = Schemas.BaseComponent;
125
135
  }
@@ -291,7 +301,7 @@ declare namespace Components {
291
301
  /**
292
302
  * List of options for the app component
293
303
  */
294
- options?: /* Options for the component configuration */ Options[];
304
+ options?: /* An option declaration — a setting the installing org fills in. Declared at app level. */ Options[];
295
305
  /**
296
306
  * Keys of app-level options this component uses. Narrows which options are
297
307
  * folded back into `options` for legacy consumers (e.g. which values a journey
@@ -339,7 +349,7 @@ declare namespace Components {
339
349
  /**
340
350
  * List of options for the app component
341
351
  */
342
- options?: /* Options for the component configuration */ Options[];
352
+ options?: /* An option declaration — a setting the installing org fills in. Declared at app level. */ Options[];
343
353
  /**
344
354
  * Keys of app-level options this component uses. Narrows which options are
345
355
  * folded back into `options` for legacy consumers (e.g. which values a journey
@@ -656,7 +666,7 @@ declare namespace Components {
656
666
  /**
657
667
  * App-level option declarations (with sensitivity) of this version
658
668
  */
659
- options?: /* Options for the component configuration */ Options[];
669
+ options?: /* An option declaration — a setting the installing org fills in. Declared at app level. */ Options[];
660
670
  /**
661
671
  * Visibility of the app version
662
672
  */
@@ -846,7 +856,7 @@ declare namespace Components {
846
856
  /**
847
857
  * App-level option declarations (with sensitivity) of this version
848
858
  */
849
- options?: /* Options for the component configuration */ Options[];
859
+ options?: /* An option declaration — a setting the installing org fills in. Declared at app level. */ Options[];
850
860
  /**
851
861
  * Visibility of the app version
852
862
  */
@@ -1405,7 +1415,7 @@ declare namespace Components {
1405
1415
  * `configured` and `value_updated_at` instead.
1406
1416
  *
1407
1417
  */
1408
- options?: /* Options for the component configuration */ Options[];
1418
+ options?: /* An option declaration — a setting the installing org fills in. Declared at app level. */ Options[];
1409
1419
  /**
1410
1420
  * Version of the app that is installed
1411
1421
  */
@@ -1618,7 +1628,7 @@ declare namespace Components {
1618
1628
  value: any;
1619
1629
  }
1620
1630
  /**
1621
- * Options for the component configuration
1631
+ * An option declaration — a setting the installing org fills in. Declared at app level.
1622
1632
  */
1623
1633
  export interface Options {
1624
1634
  /**
@@ -1677,7 +1687,7 @@ declare namespace Components {
1677
1687
  * Write-only, server-side only value — like a sensitive environment variable
1678
1688
  * (app-level options only). Sensitive values are never serialized in any response;
1679
1689
  * they are resolvable only via server-side channels (API proxy injection, function
1680
- * `secrets` allowlist, the internal options/resolve endpoint). Non-sensitive values
1690
+ * runs, the internal options/resolve endpoint). Non-sensitive values
1681
1691
  * are readable wherever the app runs, including the end-customer browser (journey and
1682
1692
  * portal runtime). Forced to true for `secret`-touching options. Default: false.
1683
1693
  *
@@ -1855,7 +1865,7 @@ declare namespace Components {
1855
1865
  * { "id": "ht", "label": { "en": "High tariff" }, "aggregation_group": "consumption", "statistical_method": "sum", "unit": "kWh", "color": "primary", "precision": 2 },
1856
1866
  * ...
1857
1867
  * ],
1858
- * "intervals": ["PT15M", "PT1H", "P1D", "P1M"],
1868
+ * "intervals": ["PT15M", "PT1H", "P1D", "P1M", "P1Y"],
1859
1869
  * "data_range": { "from": "2024-01-01T00:00:00Z", "to": "2026-05-01T00:00:00Z" }
1860
1870
  * }
1861
1871
  * Each type option carries its own `statistical_method`, which describes the method already applied to that type's data and dictates the chart shape: `sum` is rendered as a bar chart; `min`, `average`, and `max` are rendered as a line chart. A single visualization can therefore mix bar-shaped types with line-shaped types. Defaults to `sum` when omitted.
@@ -2098,7 +2108,7 @@ declare namespace Components {
2098
2108
  * Intervals supported by the API. If omitted, it is assumed that all intervals are supported.
2099
2109
  *
2100
2110
  */
2101
- intervals?: ("PT15M" | "PT1H" | "P1D" | "P1M")[];
2111
+ intervals?: ("PT15M" | "PT1H" | "P1D" | "P1M" | "P1Y")[];
2102
2112
  auth?: PortalExtensionAuthBlock;
2103
2113
  call: {
2104
2114
  /**
@@ -2269,7 +2279,7 @@ declare namespace Components {
2269
2279
  * Intervals supported by the API. If omitted, it is assumed that all intervals are supported.
2270
2280
  *
2271
2281
  */
2272
- intervals?: ("PT15M" | "PT1H" | "P1D" | "P1M")[];
2282
+ intervals?: ("PT15M" | "PT1H" | "P1D" | "P1M" | "P1Y")[];
2273
2283
  auth?: PortalExtensionAuthBlock;
2274
2284
  call: {
2275
2285
  /**
@@ -2600,7 +2610,7 @@ declare namespace Components {
2600
2610
  * Intervals supported by the API. If omitted, it is assumed that all intervals are supported.
2601
2611
  *
2602
2612
  */
2603
- intervals?: ("PT15M" | "PT1H" | "P1D" | "P1M")[];
2613
+ intervals?: ("PT15M" | "PT1H" | "P1D" | "P1M" | "P1Y")[];
2604
2614
  auth?: PortalExtensionAuthBlock;
2605
2615
  call: {
2606
2616
  /**
@@ -2732,7 +2742,7 @@ declare namespace Components {
2732
2742
  * { "id": "ht", "label": { "en": "High tariff" }, "aggregation_group": "consumption", "statistical_method": "sum", "unit": "kWh", "color": "primary", "precision": 2 },
2733
2743
  * ...
2734
2744
  * ],
2735
- * "intervals": ["PT15M", "PT1H", "P1D", "P1M"],
2745
+ * "intervals": ["PT15M", "PT1H", "P1D", "P1M", "P1Y"],
2736
2746
  * "data_range": { "from": "2024-01-01T00:00:00Z", "to": "2026-05-01T00:00:00Z" }
2737
2747
  * }
2738
2748
  * Each type option carries its own `statistical_method`, which describes the method already applied to that type's data and dictates the chart shape: `sum` is rendered as a bar chart; `min`, `average`, and `max` are rendered as a line chart. A single visualization can therefore mix bar-shaped types with line-shaped types. Defaults to `sum` when omitted.
@@ -2920,7 +2930,7 @@ declare namespace Components {
2920
2930
  /**
2921
2931
  * App-level option declarations (with sensitivity) of this version
2922
2932
  */
2923
- options?: /* Options for the component configuration */ Options[];
2933
+ options?: /* An option declaration — a setting the installing org fills in. Declared at app level. */ Options[];
2924
2934
  /**
2925
2935
  * Flag to indicate if the app is in beta.
2926
2936
  */
@@ -3030,6 +3040,7 @@ declare namespace Paths {
3030
3040
  sourceVersion: Parameters.SourceVersion;
3031
3041
  targetVersion: Parameters.TargetVersion;
3032
3042
  }
3043
+ export type RequestBody = Components.RequestBodies.CloneVersionRequest;
3033
3044
  namespace Responses {
3034
3045
  export interface $201 {
3035
3046
  app_id?: string;
@@ -3613,7 +3624,7 @@ declare namespace Paths {
3613
3624
  }
3614
3625
  namespace Responses {
3615
3626
  export interface $200 {
3616
- options?: /* Options for the component configuration */ Components.Schemas.Options[];
3627
+ options?: /* An option declaration — a setting the installing org fills in. Declared at app level. */ Components.Schemas.Options[];
3617
3628
  }
3618
3629
  export interface $403 {
3619
3630
  }
@@ -3919,7 +3930,7 @@ export interface OperationMethods {
3919
3930
  */
3920
3931
  'cloneVersion'(
3921
3932
  parameters?: Parameters<Paths.CloneVersion.PathParameters> | null,
3922
- data?: any,
3933
+ data?: Paths.CloneVersion.RequestBody,
3923
3934
  config?: AxiosRequestConfig
3924
3935
  ): OperationResponse<Paths.CloneVersion.Responses.$201>
3925
3936
  /**
@@ -4312,7 +4323,7 @@ export interface PathsDictionary {
4312
4323
  */
4313
4324
  'post'(
4314
4325
  parameters?: Parameters<Paths.CloneVersion.PathParameters> | null,
4315
- data?: any,
4326
+ data?: Paths.CloneVersion.RequestBody,
4316
4327
  config?: AxiosRequestConfig
4317
4328
  ): OperationResponse<Paths.CloneVersion.Responses.$201>
4318
4329
  }
package/dist/openapi.json CHANGED
@@ -1150,6 +1150,9 @@
1150
1150
  "description": "Target version to create"
1151
1151
  }
1152
1152
  ],
1153
+ "requestBody": {
1154
+ "$ref": "#/components/requestBodies/CloneVersionRequest"
1155
+ },
1153
1156
  "responses": {
1154
1157
  "201": {
1155
1158
  "description": "New version created successfully",
@@ -1902,6 +1905,28 @@
1902
1905
  "$ref": "#/components/schemas/Options"
1903
1906
  },
1904
1907
  "description": "Replaces the full set of app-level option declarations for this version.\nOption keys must be unique app-wide; `secret`-touching options are always\nsensitive and must not declare `sensitive: false`.\n"
1908
+ },
1909
+ "changelog": {
1910
+ "type": "string",
1911
+ "maxLength": 250,
1912
+ "description": "Short description of what changed in this version"
1913
+ }
1914
+ }
1915
+ }
1916
+ }
1917
+ }
1918
+ },
1919
+ "CloneVersionRequest": {
1920
+ "required": false,
1921
+ "content": {
1922
+ "application/json": {
1923
+ "schema": {
1924
+ "type": "object",
1925
+ "properties": {
1926
+ "changelog": {
1927
+ "type": "string",
1928
+ "maxLength": 250,
1929
+ "description": "Short description of what the new version will change"
1905
1930
  }
1906
1931
  }
1907
1932
  }
@@ -2009,7 +2034,7 @@
2009
2034
  },
2010
2035
  "Options": {
2011
2036
  "type": "object",
2012
- "description": "Options for the component configuration",
2037
+ "description": "An option declaration — a setting the installing org fills in. Declared at app level.",
2013
2038
  "required": [
2014
2039
  "key",
2015
2040
  "type"
@@ -2058,7 +2083,7 @@
2058
2083
  },
2059
2084
  "sensitive": {
2060
2085
  "type": "boolean",
2061
- "description": "Write-only, server-side only value — like a sensitive environment variable\n(app-level options only). Sensitive values are never serialized in any response;\nthey are resolvable only via server-side channels (API proxy injection, function\n`secrets` allowlist, the internal options/resolve endpoint). Non-sensitive values\nare readable wherever the app runs, including the end-customer browser (journey and\nportal runtime). Forced to true for `secret`-touching options. Default: false.\n"
2086
+ "description": "Write-only, server-side only value — like a sensitive environment variable\n(app-level options only). Sensitive values are never serialized in any response;\nthey are resolvable only via server-side channels (API proxy injection, function\nruns, the internal options/resolve endpoint). Non-sensitive values\nare readable wherever the app runs, including the end-customer browser (journey and\nportal runtime). Forced to true for `secret`-touching options. Default: false.\n"
2062
2087
  },
2063
2088
  "configured": {
2064
2089
  "type": "boolean",
@@ -3375,7 +3400,8 @@
3375
3400
  "PT15M",
3376
3401
  "PT1H",
3377
3402
  "P1D",
3378
- "P1M"
3403
+ "P1M",
3404
+ "P1Y"
3379
3405
  ]
3380
3406
  }
3381
3407
  },
@@ -3486,7 +3512,8 @@
3486
3512
  "PT15M",
3487
3513
  "PT1H",
3488
3514
  "P1D",
3489
- "P1M"
3515
+ "P1M",
3516
+ "P1Y"
3490
3517
  ]
3491
3518
  }
3492
3519
  },
@@ -3665,7 +3692,7 @@
3665
3692
  "additionalProperties": false
3666
3693
  },
3667
3694
  "PortalExtensionHookVisualizationMetadata": {
3668
- "description": "Hook that returns runtime metadata describing how a visualization (consumption / price / cost chart) should be rendered for a given portal context (meter, contract, etc). It is invoked by the portal before fetching data, with the same context the data hook would receive, so that the discovery shape can vary per meter/contract. The expected response to the call is:\n - 200 with a JSON body of shape:\n {\n \"type_options\": [\n { \"id\": \"ht\", \"label\": { \"en\": \"High tariff\" }, \"aggregation_group\": \"consumption\", \"statistical_method\": \"sum\", \"unit\": \"kWh\", \"color\": \"primary\", \"precision\": 2 },\n ...\n ],\n \"intervals\": [\"PT15M\", \"PT1H\", \"P1D\", \"P1M\"],\n \"data_range\": { \"from\": \"2024-01-01T00:00:00Z\", \"to\": \"2026-05-01T00:00:00Z\" }\n }\n Each type option carries its own `statistical_method`, which describes the method already applied to that type's data and dictates the chart shape: `sum` is rendered as a bar chart; `min`, `average`, and `max` are rendered as a line chart. A single visualization can therefore mix bar-shaped types with line-shaped types. Defaults to `sum` when omitted.\n Each type option may also customize its rendering: `color` picks a Spark palette color (`primary`, `slate`, `mauve`, `orange`, `red`, `tomato`, `amber`, `green`, `blue`) used to draw the type's series; `precision` sets the number of decimal places to show for that type's values (axis labels, tooltips, summaries). Both are optional — the consumer falls back to its own defaults when they are omitted.\n `aggregation_group` controls how types within a group are visually combined (depends on the per-type `statistical_method`):\n - bar chart (`sum`): same-group types are stacked into a single bar (e.g. ht/nt summed into total consumption); different-group types render side-by-side.\n - line chart (`min` / `average` / `max`): same-group types are rendered as an area chart; different-group types render as separate lines.\n All fields are optional; the consumer falls back to its defaults for whatever the hook does not return.\nThe portal looks up this hook implicitly per extension (one `visualizationMetadata` hook per extension) — there is no need for a data-retrieval hook to reference it explicitly.\n",
3695
+ "description": "Hook that returns runtime metadata describing how a visualization (consumption / price / cost chart) should be rendered for a given portal context (meter, contract, etc). It is invoked by the portal before fetching data, with the same context the data hook would receive, so that the discovery shape can vary per meter/contract. The expected response to the call is:\n - 200 with a JSON body of shape:\n {\n \"type_options\": [\n { \"id\": \"ht\", \"label\": { \"en\": \"High tariff\" }, \"aggregation_group\": \"consumption\", \"statistical_method\": \"sum\", \"unit\": \"kWh\", \"color\": \"primary\", \"precision\": 2 },\n ...\n ],\n \"intervals\": [\"PT15M\", \"PT1H\", \"P1D\", \"P1M\", \"P1Y\"],\n \"data_range\": { \"from\": \"2024-01-01T00:00:00Z\", \"to\": \"2026-05-01T00:00:00Z\" }\n }\n Each type option carries its own `statistical_method`, which describes the method already applied to that type's data and dictates the chart shape: `sum` is rendered as a bar chart; `min`, `average`, and `max` are rendered as a line chart. A single visualization can therefore mix bar-shaped types with line-shaped types. Defaults to `sum` when omitted.\n Each type option may also customize its rendering: `color` picks a Spark palette color (`primary`, `slate`, `mauve`, `orange`, `red`, `tomato`, `amber`, `green`, `blue`) used to draw the type's series; `precision` sets the number of decimal places to show for that type's values (axis labels, tooltips, summaries). Both are optional — the consumer falls back to its own defaults when they are omitted.\n `aggregation_group` controls how types within a group are visually combined (depends on the per-type `statistical_method`):\n - bar chart (`sum`): same-group types are stacked into a single bar (e.g. ht/nt summed into total consumption); different-group types render side-by-side.\n - line chart (`min` / `average` / `max`): same-group types are rendered as an area chart; different-group types render as separate lines.\n All fields are optional; the consumer falls back to its defaults for whatever the hook does not return.\nThe portal looks up this hook implicitly per extension (one `visualizationMetadata` hook per extension) — there is no need for a data-retrieval hook to reference it explicitly.\n",
3669
3696
  "type": "object",
3670
3697
  "properties": {
3671
3698
  "id": {
@@ -3789,7 +3816,8 @@
3789
3816
  "PT15M",
3790
3817
  "PT1H",
3791
3818
  "P1D",
3792
- "P1M"
3819
+ "P1M",
3820
+ "P1Y"
3793
3821
  ]
3794
3822
  }
3795
3823
  },
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@epilot/app-client",
3
- "version": "0.14.1",
3
+ "version": "0.15.0",
4
4
  "description": "JavaScript client library for the epilot App API",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",