@epilot/app-client 0.10.4 → 0.11.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:function(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/{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-events":{"post":{"operationId":"ingestEvent","requestBody":{"required":true,"content":{"application/json":{}}},"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={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-events":{"post":{"operationId":"ingestEvent","requestBody":{"required":true,"content":{"application/json":{}}},"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})})();
@@ -53,6 +53,22 @@
53
53
  "responses": {}
54
54
  }
55
55
  },
56
+ "/v1/app-configurations/public": {
57
+ "get": {
58
+ "operationId": "listPublicConfigurations",
59
+ "parameters": [
60
+ {
61
+ "name": "page",
62
+ "in": "query"
63
+ },
64
+ {
65
+ "name": "pageSize",
66
+ "in": "query"
67
+ }
68
+ ],
69
+ "responses": {}
70
+ }
71
+ },
56
72
  "/v1/app-configurations/public/{appId}": {
57
73
  "parameters": [
58
74
  {
package/dist/openapi.d.ts CHANGED
@@ -247,7 +247,7 @@ declare namespace Components {
247
247
  surfaces?: {
248
248
  [key: string]: any;
249
249
  };
250
- } & (JourneyBlockComponent | PortalExtensionComponent | CustomFlowActionComponent | ErpInformToolkitComponent | CustomCapabilityComponent | ExternalProductCatalogComponent);
250
+ } & (JourneyBlockComponent | PortalBlockComponent | PortalExtensionComponent | CustomFlowActionComponent | ErpInformToolkitComponent | CustomCapabilityComponent | ExternalProductCatalogComponent);
251
251
  export interface BaseComponentCommon {
252
252
  /**
253
253
  * Unique identifier for the component
@@ -451,7 +451,7 @@ declare namespace Components {
451
451
  /**
452
452
  * Type of app component
453
453
  */
454
- export type ComponentType = "CUSTOM_JOURNEY_BLOCK" | "PORTAL_EXTENSION" | "CUSTOM_FLOW_ACTION" | "ERP_INFORM_TOOLKIT" | "CUSTOM_CAPABILITY" | "EXTERNAL_PRODUCT_CATALOG";
454
+ export type ComponentType = "CUSTOM_JOURNEY_BLOCK" | "CUSTOM_PORTAL_BLOCK" | "PORTAL_EXTENSION" | "CUSTOM_FLOW_ACTION" | "ERP_INFORM_TOOLKIT" | "CUSTOM_CAPABILITY" | "EXTERNAL_PRODUCT_CATALOG";
455
455
  /**
456
456
  * Configuration of the published app
457
457
  */
@@ -992,7 +992,7 @@ declare namespace Components {
992
992
  * JSON body to use for authentication. Supports variable interpolation. Content format is determined by Content-Type header.
993
993
  */
994
994
  body?: {
995
- [name: string]: string;
995
+ [name: string]: any;
996
996
  };
997
997
  }
998
998
  export interface ExternalProductCatalogComponent {
@@ -1008,19 +1008,19 @@ declare namespace Components {
1008
1008
  * Hook for getting product recommendations from an external catalog. This hook makes a call to retrieve product recommendations from an external source. Check the docs or the response API call contract https://docs.api.epilot.io/pricing-api-external-catalog for more details.
1009
1009
  *
1010
1010
  */
1011
- ExternalProductCatalogHookProductsRecommendation)[];
1011
+ ExternalProductCatalogHookProductRecommendations)[];
1012
1012
  }
1013
1013
  /**
1014
- * Hook for getting products from an external catalog. This hook makes a call to retrieve product data from an external source. Check the docs or the response API call contract https://docs.api.epilot.io/pricing-api-external-catalog for more details.
1014
+ * Hook for getting product recommendations from an external catalog. This hook makes a call to retrieve product recommendations from an external source. Check the docs or the response API call contract https://docs.api.epilot.io/pricing-api-external-catalog for more details.
1015
1015
  *
1016
1016
  */
1017
- export interface ExternalProductCatalogHookProducts {
1017
+ export interface ExternalProductCatalogHookProductRecommendations {
1018
1018
  /**
1019
1019
  * Identifier of the hook. Should not change between updates.
1020
1020
  */
1021
1021
  id: string; // ^[a-zA-Z0-9_-]+$
1022
1022
  name?: TranslatedString;
1023
- type: "products";
1023
+ type: "product-recommendations";
1024
1024
  auth?: ExternalProductCatalogAuthBlock;
1025
1025
  call: {
1026
1026
  /**
@@ -1047,21 +1047,21 @@ declare namespace Components {
1047
1047
  * JSON body to use for the call. Supports variable interpolation. If empty / not provided, the default request context will be used based on the consumer (e.g. Journey).
1048
1048
  */
1049
1049
  body?: {
1050
- [name: string]: string;
1050
+ [name: string]: any;
1051
1051
  };
1052
1052
  };
1053
1053
  }
1054
1054
  /**
1055
- * Hook for getting product recommendations from an external catalog. This hook makes a call to retrieve product recommendations from an external source. Check the docs or the response API call contract https://docs.api.epilot.io/pricing-api-external-catalog for more details.
1055
+ * Hook for getting products from an external catalog. This hook makes a call to retrieve product data from an external source. Check the docs or the response API call contract https://docs.api.epilot.io/pricing-api-external-catalog for more details.
1056
1056
  *
1057
1057
  */
1058
- export interface ExternalProductCatalogHookProductsRecommendation {
1058
+ export interface ExternalProductCatalogHookProducts {
1059
1059
  /**
1060
1060
  * Identifier of the hook. Should not change between updates.
1061
1061
  */
1062
1062
  id: string; // ^[a-zA-Z0-9_-]+$
1063
1063
  name?: TranslatedString;
1064
- type: "products-recommendation";
1064
+ type: "products";
1065
1065
  auth?: ExternalProductCatalogAuthBlock;
1066
1066
  call: {
1067
1067
  /**
@@ -1088,7 +1088,7 @@ declare namespace Components {
1088
1088
  * JSON body to use for the call. Supports variable interpolation. If empty / not provided, the default request context will be used based on the consumer (e.g. Journey).
1089
1089
  */
1090
1090
  body?: {
1091
- [name: string]: string;
1091
+ [name: string]: any;
1092
1092
  };
1093
1093
  };
1094
1094
  }
@@ -1307,6 +1307,33 @@ declare namespace Components {
1307
1307
  */
1308
1308
  override_url?: string;
1309
1309
  }
1310
+ export interface PortalBlockComponent {
1311
+ component_type: "CUSTOM_PORTAL_BLOCK";
1312
+ configuration: PortalBlockConfig;
1313
+ surfaces?: {
1314
+ portal_block?: PortalBlockSurfaceConfig;
1315
+ };
1316
+ }
1317
+ export interface PortalBlockConfig {
1318
+ }
1319
+ export interface PortalBlockSurfaceConfig {
1320
+ /**
1321
+ * URL of the uploaded App Bridge App. This is the entrypoint for the app
1322
+ */
1323
+ app_url?: string;
1324
+ /**
1325
+ * URL of the uploaded zip file containing the app
1326
+ */
1327
+ zip_url?: string;
1328
+ /**
1329
+ * URL of the app in dev mode
1330
+ */
1331
+ override_url?: string;
1332
+ /**
1333
+ * Define which section of the portal this block can be placed in
1334
+ */
1335
+ section?: "main" | "footer";
1336
+ }
1310
1337
  export interface PortalExtensionAuthBlock {
1311
1338
  /**
1312
1339
  * HTTP method to use for authentication
@@ -1332,7 +1359,7 @@ declare namespace Components {
1332
1359
  * JSON body to use for authentication. Supports variable interpolation. Content format is determined by Content-Type header.
1333
1360
  */
1334
1361
  body?: {
1335
- [name: string]: string;
1362
+ [name: string]: any;
1336
1363
  };
1337
1364
  cache?: {
1338
1365
  /**
@@ -1470,7 +1497,7 @@ declare namespace Components {
1470
1497
  * Request body to send. Supports variable interpolation. Content format is determined by Content-Type header.
1471
1498
  */
1472
1499
  body?: {
1473
- [name: string]: string;
1500
+ [name: string]: any;
1474
1501
  };
1475
1502
  };
1476
1503
  resolved?: {
@@ -1534,7 +1561,7 @@ declare namespace Components {
1534
1561
  [key: string]: any;
1535
1562
  };
1536
1563
  /**
1537
- * Contract or Contact ID usually retrieved from the response body, e.g. `{{CallResponse.data.contact_id}}`. Supports variable interpolation.
1564
+ * Contract or Contact ID usually retrieved from the response body, e.g. `{{CallResponse.data.contact_id}}`. If no result is passed and the request suceeds, we attempt to resolve the Contact ID automatically. Supports variable interpolation.
1538
1565
  */
1539
1566
  result?: string;
1540
1567
  };
@@ -1607,7 +1634,7 @@ declare namespace Components {
1607
1634
  * Request body to send. Supports variable interpolation. Content format is determined by Content-Type header.
1608
1635
  */
1609
1636
  body?: {
1610
- [name: string]: string;
1637
+ [name: string]: any;
1611
1638
  };
1612
1639
  };
1613
1640
  resolved?: {
@@ -1637,6 +1664,13 @@ declare namespace Components {
1637
1664
  id: string; // ^[a-zA-Z0-9_-]+$
1638
1665
  name?: TranslatedString;
1639
1666
  type: "meterReadingPlausibilityCheck";
1667
+ /**
1668
+ * Mode for plausibility check:
1669
+ * - "check": Validates meter reading and returns valid: boolean (used during submission)
1670
+ * - "range": Returns min/max allowed values for each counter for validation before submission
1671
+ *
1672
+ */
1673
+ plausibility_mode?: "check" | "range";
1640
1674
  auth?: PortalExtensionAuthBlock;
1641
1675
  call: {
1642
1676
  /**
@@ -1647,7 +1681,7 @@ declare namespace Components {
1647
1681
  * JSON body to use for the call. Supports variable interpolation.
1648
1682
  */
1649
1683
  body: {
1650
- [name: string]: string;
1684
+ [name: string]: any;
1651
1685
  };
1652
1686
  /**
1653
1687
  * Headers to use. Supports variable interpolation.
@@ -1661,7 +1695,30 @@ declare namespace Components {
1661
1695
  */
1662
1696
  resolved: {
1663
1697
  /**
1664
- * Indicate whether the meter reading is plausible
1698
+ * Optional path to an array in the response. If specified and the path points to an array,
1699
+ * the hook will map over each item using 'Item' variable for interpolation.
1700
+ * Relevant only if plausibility_mode is "range".
1701
+ *
1702
+ * example:
1703
+ * data.results
1704
+ */
1705
+ dataPath?: string;
1706
+ /**
1707
+ * Counter identifier(s) used to match against the meter's counters.
1708
+ * Can be a string (counter ID) or an object with counter properties.
1709
+ * The backend resolves this to meter_counter_id in the final response.
1710
+ * Relevant only if plausibility_mode is "range".
1711
+ *
1712
+ * example:
1713
+ * {
1714
+ * "obis_code": "{{Item.obis}}"
1715
+ * }
1716
+ */
1717
+ counter_identifiers?: {
1718
+ [name: string]: string;
1719
+ };
1720
+ /**
1721
+ * Indicate whether the meter reading is plausible. Relevant only if plausibility_mode is "check".
1665
1722
  * example:
1666
1723
  * {{CallResponse.data.valid}}
1667
1724
  */
@@ -1726,7 +1783,7 @@ declare namespace Components {
1726
1783
  * Request body to send. Supports variable interpolation. Content format is determined by Content-Type header.
1727
1784
  */
1728
1785
  body?: {
1729
- [name: string]: string;
1786
+ [name: string]: any;
1730
1787
  };
1731
1788
  };
1732
1789
  resolved?: {
@@ -1782,7 +1839,7 @@ declare namespace Components {
1782
1839
  [key: string]: any;
1783
1840
  };
1784
1841
  /**
1785
- * Contact ID usually retrieved from the response body, e.g. `{{CallResponse.data.contact_id}}`. Supports variable interpolation.
1842
+ * Contact ID usually retrieved from the response body, e.g. `{{CallResponse.data.contact_id}}`. If no result is passed and the request suceeds, we attempt to resolve the Contact ID automatically. Supports variable interpolation.
1786
1843
  */
1787
1844
  result: string;
1788
1845
  };
@@ -2371,6 +2428,26 @@ declare namespace Paths {
2371
2428
  }
2372
2429
  }
2373
2430
  }
2431
+ namespace ListPublicConfigurations {
2432
+ namespace Parameters {
2433
+ export type Page = number;
2434
+ export type PageSize = number;
2435
+ }
2436
+ export interface QueryParameters {
2437
+ page?: Parameters.Page;
2438
+ pageSize?: Parameters.PageSize;
2439
+ }
2440
+ namespace Responses {
2441
+ export interface $200 {
2442
+ configurations?: /* Basic metadata about your app configuration which does not get versioned */ Components.Schemas.ConfigurationMetadata[];
2443
+ pagination?: {
2444
+ total?: number;
2445
+ page?: number;
2446
+ pageSize?: number;
2447
+ };
2448
+ }
2449
+ }
2450
+ }
2374
2451
  namespace ListVersions {
2375
2452
  namespace Parameters {
2376
2453
  export type AppId = string;
@@ -2576,6 +2653,16 @@ export interface OperationMethods {
2576
2653
  data?: Paths.CreateConfiguration.RequestBody,
2577
2654
  config?: AxiosRequestConfig
2578
2655
  ): OperationResponse<Paths.CreateConfiguration.Responses.$201>
2656
+ /**
2657
+ * listPublicConfigurations - listPublicConfigurations
2658
+ *
2659
+ * List all publicly available app configurations that can be installed. This endpoint returns apps that have at least one public version.
2660
+ */
2661
+ 'listPublicConfigurations'(
2662
+ parameters?: Parameters<Paths.ListPublicConfigurations.QueryParameters> | null,
2663
+ data?: any,
2664
+ config?: AxiosRequestConfig
2665
+ ): OperationResponse<Paths.ListPublicConfigurations.Responses.$200>
2579
2666
  /**
2580
2667
  * getPublicConfiguration - getPublicConfiguration
2581
2668
  *
@@ -2874,6 +2961,18 @@ export interface PathsDictionary {
2874
2961
  config?: AxiosRequestConfig
2875
2962
  ): OperationResponse<Paths.CreateConfiguration.Responses.$201>
2876
2963
  }
2964
+ ['/v1/app-configurations/public']: {
2965
+ /**
2966
+ * listPublicConfigurations - listPublicConfigurations
2967
+ *
2968
+ * List all publicly available app configurations that can be installed. This endpoint returns apps that have at least one public version.
2969
+ */
2970
+ 'get'(
2971
+ parameters?: Parameters<Paths.ListPublicConfigurations.QueryParameters> | null,
2972
+ data?: any,
2973
+ config?: AxiosRequestConfig
2974
+ ): OperationResponse<Paths.ListPublicConfigurations.Responses.$200>
2975
+ }
2877
2976
  ['/v1/app-configurations/public/{appId}']: {
2878
2977
  /**
2879
2978
  * getPublicConfiguration - getPublicConfiguration
@@ -3201,8 +3300,8 @@ export type ExternalIntegrationCustomActionConfig = Components.Schemas.ExternalI
3201
3300
  export type ExternalProductCatalogAuthBlock = Components.Schemas.ExternalProductCatalogAuthBlock;
3202
3301
  export type ExternalProductCatalogComponent = Components.Schemas.ExternalProductCatalogComponent;
3203
3302
  export type ExternalProductCatalogConfig = Components.Schemas.ExternalProductCatalogConfig;
3303
+ export type ExternalProductCatalogHookProductRecommendations = Components.Schemas.ExternalProductCatalogHookProductRecommendations;
3204
3304
  export type ExternalProductCatalogHookProducts = Components.Schemas.ExternalProductCatalogHookProducts;
3205
- export type ExternalProductCatalogHookProductsRecommendation = Components.Schemas.ExternalProductCatalogHookProductsRecommendation;
3206
3305
  export type Grants = Components.Schemas.Grants;
3207
3306
  export type Installation = Components.Schemas.Installation;
3208
3307
  export type JourneyBlockComponent = Components.Schemas.JourneyBlockComponent;
@@ -3214,6 +3313,9 @@ export type Option = Components.Schemas.Option;
3214
3313
  export type Options = Components.Schemas.Options;
3215
3314
  export type OptionsRef = Components.Schemas.OptionsRef;
3216
3315
  export type OverrideDevMode = Components.Schemas.OverrideDevMode;
3316
+ export type PortalBlockComponent = Components.Schemas.PortalBlockComponent;
3317
+ export type PortalBlockConfig = Components.Schemas.PortalBlockConfig;
3318
+ export type PortalBlockSurfaceConfig = Components.Schemas.PortalBlockSurfaceConfig;
3217
3319
  export type PortalExtensionAuthBlock = Components.Schemas.PortalExtensionAuthBlock;
3218
3320
  export type PortalExtensionComponent = Components.Schemas.PortalExtensionComponent;
3219
3321
  export type PortalExtensionConfig = Components.Schemas.PortalExtensionConfig;
package/dist/openapi.json CHANGED
@@ -183,6 +183,70 @@
183
183
  }
184
184
  }
185
185
  },
186
+ "/v1/app-configurations/public": {
187
+ "get": {
188
+ "summary": "listPublicConfigurations",
189
+ "description": "List all publicly available app configurations that can be installed. This endpoint returns apps that have at least one public version.",
190
+ "operationId": "listPublicConfigurations",
191
+ "tags": [
192
+ "App Configuration"
193
+ ],
194
+ "parameters": [
195
+ {
196
+ "name": "page",
197
+ "in": "query",
198
+ "schema": {
199
+ "type": "integer",
200
+ "default": 1
201
+ },
202
+ "description": "Page number for pagination"
203
+ },
204
+ {
205
+ "name": "pageSize",
206
+ "in": "query",
207
+ "schema": {
208
+ "type": "integer",
209
+ "default": 20
210
+ },
211
+ "description": "Number of items per page"
212
+ }
213
+ ],
214
+ "responses": {
215
+ "200": {
216
+ "description": "List of public app configurations",
217
+ "content": {
218
+ "application/json": {
219
+ "schema": {
220
+ "type": "object",
221
+ "properties": {
222
+ "configurations": {
223
+ "type": "array",
224
+ "items": {
225
+ "$ref": "#/components/schemas/ConfigurationMetadata"
226
+ }
227
+ },
228
+ "pagination": {
229
+ "type": "object",
230
+ "properties": {
231
+ "total": {
232
+ "type": "integer"
233
+ },
234
+ "page": {
235
+ "type": "integer"
236
+ },
237
+ "pageSize": {
238
+ "type": "integer"
239
+ }
240
+ }
241
+ }
242
+ }
243
+ }
244
+ }
245
+ }
246
+ }
247
+ }
248
+ }
249
+ },
186
250
  "/v1/app-configurations/public/{appId}": {
187
251
  "parameters": [
188
252
  {
@@ -1762,6 +1826,7 @@
1762
1826
  "type": "string",
1763
1827
  "enum": [
1764
1828
  "CUSTOM_JOURNEY_BLOCK",
1829
+ "CUSTOM_PORTAL_BLOCK",
1765
1830
  "PORTAL_EXTENSION",
1766
1831
  "CUSTOM_FLOW_ACTION",
1767
1832
  "ERP_INFORM_TOOLKIT",
@@ -1872,6 +1937,7 @@
1872
1937
  "propertyName": "component_type",
1873
1938
  "mapping": {
1874
1939
  "CUSTOM_JOURNEY_BLOCK": "#/components/schemas/JourneyBlockComponent",
1940
+ "CUSTOM_PORTAL_BLOCK": "#/components/schemas/PortalBlockComponent",
1875
1941
  "PORTAL_EXTENSION": "#/components/schemas/PortalExtensionComponent",
1876
1942
  "CUSTOM_FLOW_ACTION": "#/components/schemas/CustomFlowActionComponent",
1877
1943
  "ERP_INFORM_TOOLKIT": "#/components/schemas/ErpInformToolkitComponent",
@@ -1883,6 +1949,9 @@
1883
1949
  {
1884
1950
  "$ref": "#/components/schemas/JourneyBlockComponent"
1885
1951
  },
1952
+ {
1953
+ "$ref": "#/components/schemas/PortalBlockComponent"
1954
+ },
1886
1955
  {
1887
1956
  "$ref": "#/components/schemas/PortalExtensionComponent"
1888
1957
  },
@@ -1965,6 +2034,32 @@
1965
2034
  }
1966
2035
  }
1967
2036
  },
2037
+ "PortalBlockComponent": {
2038
+ "type": "object",
2039
+ "required": [
2040
+ "component_type",
2041
+ "configuration"
2042
+ ],
2043
+ "properties": {
2044
+ "component_type": {
2045
+ "type": "string",
2046
+ "enum": [
2047
+ "CUSTOM_PORTAL_BLOCK"
2048
+ ]
2049
+ },
2050
+ "configuration": {
2051
+ "$ref": "#/components/schemas/PortalBlockConfig"
2052
+ },
2053
+ "surfaces": {
2054
+ "type": "object",
2055
+ "properties": {
2056
+ "portal_block": {
2057
+ "$ref": "#/components/schemas/PortalBlockSurfaceConfig"
2058
+ }
2059
+ }
2060
+ }
2061
+ }
2062
+ },
1968
2063
  "ErpInformToolkitComponent": {
1969
2064
  "type": "object",
1970
2065
  "required": [
@@ -2150,7 +2245,7 @@
2150
2245
  "propertyName": "type",
2151
2246
  "mapping": {
2152
2247
  "products": "#/components/schemas/ExternalProductCatalogHookProducts",
2153
- "products-recommendation": "#/components/schemas/ExternalProductCatalogHookProductsRecommendation"
2248
+ "product-recommendations": "#/components/schemas/ExternalProductCatalogHookProductRecommendations"
2154
2249
  }
2155
2250
  },
2156
2251
  "oneOf": [
@@ -2158,7 +2253,7 @@
2158
2253
  "$ref": "#/components/schemas/ExternalProductCatalogHookProducts"
2159
2254
  },
2160
2255
  {
2161
- "$ref": "#/components/schemas/ExternalProductCatalogHookProductsRecommendation"
2256
+ "$ref": "#/components/schemas/ExternalProductCatalogHookProductRecommendations"
2162
2257
  }
2163
2258
  ]
2164
2259
  }
@@ -2218,10 +2313,7 @@
2218
2313
  "body": {
2219
2314
  "type": "object",
2220
2315
  "description": "JSON body to use for the call. Supports variable interpolation. If empty / not provided, the default request context will be used based on the consumer (e.g. Journey).",
2221
- "additionalProperties": {
2222
- "type": "string"
2223
- },
2224
- "default": {}
2316
+ "additionalProperties": true
2225
2317
  }
2226
2318
  },
2227
2319
  "required": [
@@ -2237,7 +2329,7 @@
2237
2329
  ],
2238
2330
  "additionalProperties": false
2239
2331
  },
2240
- "ExternalProductCatalogHookProductsRecommendation": {
2332
+ "ExternalProductCatalogHookProductRecommendations": {
2241
2333
  "description": "Hook for getting product recommendations from an external catalog. This hook makes a call to retrieve product recommendations from an external source. Check the docs or the response API call contract https://docs.api.epilot.io/pricing-api-external-catalog for more details.\n",
2242
2334
  "type": "object",
2243
2335
  "properties": {
@@ -2252,7 +2344,7 @@
2252
2344
  "type": {
2253
2345
  "type": "string",
2254
2346
  "enum": [
2255
- "products-recommendation"
2347
+ "product-recommendations"
2256
2348
  ]
2257
2349
  },
2258
2350
  "auth": {
@@ -2289,10 +2381,7 @@
2289
2381
  "body": {
2290
2382
  "type": "object",
2291
2383
  "description": "JSON body to use for the call. Supports variable interpolation. If empty / not provided, the default request context will be used based on the consumer (e.g. Journey).",
2292
- "additionalProperties": {
2293
- "type": "string"
2294
- },
2295
- "default": {}
2384
+ "additionalProperties": true
2296
2385
  }
2297
2386
  },
2298
2387
  "required": [
@@ -2434,7 +2523,7 @@
2434
2523
  },
2435
2524
  "result": {
2436
2525
  "type": "string",
2437
- "description": "Contact ID usually retrieved from the response body, e.g. `{{CallResponse.data.contact_id}}`. Supports variable interpolation."
2526
+ "description": "Contact ID usually retrieved from the response body, e.g. `{{CallResponse.data.contact_id}}`. If no result is passed and the request suceeds, we attempt to resolve the Contact ID automatically. Supports variable interpolation."
2438
2527
  }
2439
2528
  },
2440
2529
  "required": [
@@ -2512,7 +2601,7 @@
2512
2601
  },
2513
2602
  "result": {
2514
2603
  "type": "string",
2515
- "description": "Contract or Contact ID usually retrieved from the response body, e.g. `{{CallResponse.data.contact_id}}`. Supports variable interpolation."
2604
+ "description": "Contract or Contact ID usually retrieved from the response body, e.g. `{{CallResponse.data.contact_id}}`. If no result is passed and the request suceeds, we attempt to resolve the Contact ID automatically. Supports variable interpolation."
2516
2605
  }
2517
2606
  },
2518
2607
  "required": [
@@ -2585,6 +2674,15 @@
2585
2674
  "meterReadingPlausibilityCheck"
2586
2675
  ]
2587
2676
  },
2677
+ "plausibility_mode": {
2678
+ "type": "string",
2679
+ "enum": [
2680
+ "check",
2681
+ "range"
2682
+ ],
2683
+ "default": "check",
2684
+ "description": "Mode for plausibility check:\n- \"check\": Validates meter reading and returns valid: boolean (used during submission)\n- \"range\": Returns min/max allowed values for each counter for validation before submission\n"
2685
+ },
2588
2686
  "auth": {
2589
2687
  "$ref": "#/components/schemas/PortalExtensionAuthBlock"
2590
2688
  },
@@ -2598,10 +2696,7 @@
2598
2696
  "body": {
2599
2697
  "type": "object",
2600
2698
  "description": "JSON body to use for the call. Supports variable interpolation.",
2601
- "additionalProperties": {
2602
- "type": "string"
2603
- },
2604
- "default": {}
2699
+ "additionalProperties": true
2605
2700
  },
2606
2701
  "headers": {
2607
2702
  "type": "object",
@@ -2623,9 +2718,24 @@
2623
2718
  "type": "object",
2624
2719
  "description": "Response to the call",
2625
2720
  "properties": {
2721
+ "dataPath": {
2722
+ "type": "string",
2723
+ "description": "Optional path to an array in the response. If specified and the path points to an array,\nthe hook will map over each item using 'Item' variable for interpolation.\nRelevant only if plausibility_mode is \"range\".\n",
2724
+ "example": "data.results"
2725
+ },
2726
+ "counter_identifiers": {
2727
+ "description": "Counter identifier(s) used to match against the meter's counters.\nCan be a string (counter ID) or an object with counter properties.\nThe backend resolves this to meter_counter_id in the final response.\nRelevant only if plausibility_mode is \"range\".\n",
2728
+ "type": "object",
2729
+ "additionalProperties": {
2730
+ "type": "string"
2731
+ },
2732
+ "example": {
2733
+ "obis_code": "{{Item.obis}}"
2734
+ }
2735
+ },
2626
2736
  "valid": {
2627
2737
  "type": "string",
2628
- "description": "Indicate whether the meter reading is plausible",
2738
+ "description": "Indicate whether the meter reading is plausible. Relevant only if plausibility_mode is \"check\".",
2629
2739
  "example": "{{CallResponse.data.valid}}"
2630
2740
  },
2631
2741
  "upper_limit": {
@@ -2720,10 +2830,7 @@
2720
2830
  "body": {
2721
2831
  "type": "object",
2722
2832
  "description": "Request body to send. Supports variable interpolation. Content format is determined by Content-Type header.",
2723
- "additionalProperties": {
2724
- "type": "string"
2725
- },
2726
- "default": {}
2833
+ "additionalProperties": true
2727
2834
  }
2728
2835
  },
2729
2836
  "required": [
@@ -2819,10 +2926,7 @@
2819
2926
  "body": {
2820
2927
  "type": "object",
2821
2928
  "description": "Request body to send. Supports variable interpolation. Content format is determined by Content-Type header.",
2822
- "additionalProperties": {
2823
- "type": "string"
2824
- },
2825
- "default": {}
2929
+ "additionalProperties": true
2826
2930
  }
2827
2931
  },
2828
2932
  "required": [
@@ -2918,10 +3022,7 @@
2918
3022
  "body": {
2919
3023
  "type": "object",
2920
3024
  "description": "Request body to send. Supports variable interpolation. Content format is determined by Content-Type header.",
2921
- "additionalProperties": {
2922
- "type": "string"
2923
- },
2924
- "default": {}
3025
+ "additionalProperties": true
2925
3026
  }
2926
3027
  },
2927
3028
  "required": [
@@ -3038,10 +3139,7 @@
3038
3139
  "body": {
3039
3140
  "type": "object",
3040
3141
  "description": "JSON body to use for authentication. Supports variable interpolation. Content format is determined by Content-Type header.",
3041
- "additionalProperties": {
3042
- "type": "string"
3043
- },
3044
- "default": {}
3142
+ "additionalProperties": true
3045
3143
  },
3046
3144
  "cache": {
3047
3145
  "type": "object",
@@ -3100,10 +3198,7 @@
3100
3198
  "body": {
3101
3199
  "type": "object",
3102
3200
  "description": "JSON body to use for authentication. Supports variable interpolation. Content format is determined by Content-Type header.",
3103
- "additionalProperties": {
3104
- "type": "string"
3105
- },
3106
- "default": {}
3201
+ "additionalProperties": true
3107
3202
  }
3108
3203
  },
3109
3204
  "required": [
@@ -3171,6 +3266,9 @@
3171
3266
  }
3172
3267
  }
3173
3268
  },
3269
+ "PortalBlockConfig": {
3270
+ "type": "object"
3271
+ },
3174
3272
  "AppBridgeSurfaceConfig": {
3175
3273
  "type": "object",
3176
3274
  "properties": {
@@ -3188,6 +3286,26 @@
3188
3286
  }
3189
3287
  }
3190
3288
  },
3289
+ "PortalBlockSurfaceConfig": {
3290
+ "allOf": [
3291
+ {
3292
+ "$ref": "#/components/schemas/AppBridgeSurfaceConfig"
3293
+ },
3294
+ {
3295
+ "type": "object",
3296
+ "properties": {
3297
+ "section": {
3298
+ "description": "Define which section of the portal this block can be placed in",
3299
+ "type": "string",
3300
+ "enum": [
3301
+ "main",
3302
+ "footer"
3303
+ ]
3304
+ }
3305
+ }
3306
+ }
3307
+ ]
3308
+ },
3191
3309
  "JourneyBlockComponentArgs": {
3192
3310
  "allOf": [
3193
3311
  {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@epilot/app-client",
3
- "version": "0.10.4",
3
+ "version": "0.11.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",