@epilot/sdk 2.3.6 → 2.3.7-rc1

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.
Files changed (148) hide show
  1. package/definitions/blueprint-manifest-runtime.json +1 -1
  2. package/definitions/blueprint-manifest.json +239 -12
  3. package/definitions/configuration-hub-runtime.json +1 -0
  4. package/definitions/configuration-hub.json +399 -0
  5. package/definitions/customer-portal-runtime.json +1 -1
  6. package/definitions/customer-portal.json +373 -4
  7. package/definitions/entity-runtime.json +1 -1
  8. package/definitions/entity.json +354 -4
  9. package/dist/apis/access-token.cjs +6 -6
  10. package/dist/apis/access-token.js +1 -1
  11. package/dist/apis/address-suggestions.cjs +6 -6
  12. package/dist/apis/address-suggestions.js +1 -1
  13. package/dist/apis/address.cjs +6 -6
  14. package/dist/apis/address.js +1 -1
  15. package/dist/apis/ai-agents.cjs +6 -6
  16. package/dist/apis/ai-agents.js +1 -1
  17. package/dist/apis/app.cjs +6 -6
  18. package/dist/apis/app.js +1 -1
  19. package/dist/apis/audit-logs.cjs +6 -6
  20. package/dist/apis/audit-logs.js +1 -1
  21. package/dist/apis/automation.cjs +6 -6
  22. package/dist/apis/automation.js +1 -1
  23. package/dist/apis/billing.cjs +6 -6
  24. package/dist/apis/billing.js +1 -1
  25. package/dist/apis/blueprint-manifest.cjs +6 -6
  26. package/dist/apis/blueprint-manifest.js +1 -1
  27. package/dist/apis/configuration-hub.cjs +6 -6
  28. package/dist/apis/configuration-hub.js +1 -1
  29. package/dist/apis/consent.cjs +6 -6
  30. package/dist/apis/consent.js +1 -1
  31. package/dist/apis/customer-portal.cjs +8 -8
  32. package/dist/apis/customer-portal.d.cts +2 -2
  33. package/dist/apis/customer-portal.d.ts +2 -2
  34. package/dist/apis/customer-portal.js +2 -2
  35. package/dist/apis/dashboard.cjs +6 -6
  36. package/dist/apis/dashboard.js +1 -1
  37. package/dist/apis/data-governance.cjs +6 -6
  38. package/dist/apis/data-governance.js +1 -1
  39. package/dist/apis/deduplication.cjs +6 -6
  40. package/dist/apis/deduplication.js +1 -1
  41. package/dist/apis/design.cjs +6 -6
  42. package/dist/apis/design.js +1 -1
  43. package/dist/apis/document.cjs +6 -6
  44. package/dist/apis/document.js +1 -1
  45. package/dist/apis/email-settings.cjs +6 -6
  46. package/dist/apis/email-settings.js +1 -1
  47. package/dist/apis/email-template.cjs +6 -6
  48. package/dist/apis/email-template.js +1 -1
  49. package/dist/apis/entity-mapping.cjs +6 -6
  50. package/dist/apis/entity-mapping.js +1 -1
  51. package/dist/apis/entity.cjs +8 -8
  52. package/dist/apis/entity.js +2 -2
  53. package/dist/apis/environments.cjs +6 -6
  54. package/dist/apis/environments.js +1 -1
  55. package/dist/apis/event-catalog.cjs +6 -6
  56. package/dist/apis/event-catalog.js +1 -1
  57. package/dist/apis/file.cjs +6 -6
  58. package/dist/apis/file.js +1 -1
  59. package/dist/apis/iban.cjs +6 -6
  60. package/dist/apis/iban.js +1 -1
  61. package/dist/apis/integration-toolkit.cjs +6 -6
  62. package/dist/apis/integration-toolkit.js +1 -1
  63. package/dist/apis/journey.cjs +6 -6
  64. package/dist/apis/journey.js +1 -1
  65. package/dist/apis/kanban.cjs +6 -6
  66. package/dist/apis/kanban.js +1 -1
  67. package/dist/apis/message.cjs +6 -6
  68. package/dist/apis/message.js +1 -1
  69. package/dist/apis/metering.cjs +6 -6
  70. package/dist/apis/metering.js +1 -1
  71. package/dist/apis/notes.cjs +6 -6
  72. package/dist/apis/notes.js +1 -1
  73. package/dist/apis/notification.cjs +6 -6
  74. package/dist/apis/notification.js +1 -1
  75. package/dist/apis/organization.cjs +6 -6
  76. package/dist/apis/organization.js +1 -1
  77. package/dist/apis/partner-directory.cjs +6 -6
  78. package/dist/apis/partner-directory.js +1 -1
  79. package/dist/apis/permissions.cjs +6 -6
  80. package/dist/apis/permissions.js +1 -1
  81. package/dist/apis/pricing-tier.cjs +6 -6
  82. package/dist/apis/pricing-tier.js +1 -1
  83. package/dist/apis/pricing.cjs +6 -6
  84. package/dist/apis/pricing.js +1 -1
  85. package/dist/apis/purpose.cjs +6 -6
  86. package/dist/apis/purpose.js +1 -1
  87. package/dist/apis/query.cjs +6 -6
  88. package/dist/apis/query.js +1 -1
  89. package/dist/apis/sandbox.cjs +6 -6
  90. package/dist/apis/sandbox.js +1 -1
  91. package/dist/apis/sharing.cjs +6 -6
  92. package/dist/apis/sharing.js +1 -1
  93. package/dist/apis/submission.cjs +6 -6
  94. package/dist/apis/submission.js +1 -1
  95. package/dist/apis/target.cjs +6 -6
  96. package/dist/apis/target.js +1 -1
  97. package/dist/apis/targeting.cjs +6 -6
  98. package/dist/apis/targeting.js +1 -1
  99. package/dist/apis/template-variables.cjs +6 -6
  100. package/dist/apis/template-variables.js +1 -1
  101. package/dist/apis/user.cjs +6 -6
  102. package/dist/apis/user.js +1 -1
  103. package/dist/apis/validation-rules.cjs +6 -6
  104. package/dist/apis/validation-rules.js +1 -1
  105. package/dist/apis/webhooks.cjs +6 -6
  106. package/dist/apis/webhooks.js +1 -1
  107. package/dist/apis/workflow-definition.cjs +6 -6
  108. package/dist/apis/workflow-definition.js +1 -1
  109. package/dist/apis/workflow.cjs +6 -6
  110. package/dist/apis/workflow.js +1 -1
  111. package/dist/chunk-2MMSXUOL.cjs +14 -0
  112. package/dist/{chunk-XN43KCAN.cjs → chunk-FCT6W5UM.cjs} +4 -4
  113. package/dist/chunk-GVNT76UU.js +14 -0
  114. package/dist/chunk-M6Z6ES3I.js +14 -0
  115. package/dist/{chunk-YD2W64XJ.js → chunk-OU5NVIJW.js} +4 -4
  116. package/dist/chunk-UBQCDPW6.cjs +14 -0
  117. package/dist/customer-portal-5LMHNBMD.cjs +7 -0
  118. package/dist/customer-portal-RZACUF4N.js +7 -0
  119. package/dist/{customer-portal-runtime-3LTXCTKD.cjs → customer-portal-runtime-DULJLR7F.cjs} +2 -2
  120. package/dist/{customer-portal-runtime-374XJ6LB.js → customer-portal-runtime-PSM55KGU.js} +1 -1
  121. package/dist/{customer-portal.d-BJNWYMt9.d.cts → customer-portal.d-DyZ2n2dW.d.cts} +633 -5
  122. package/dist/{customer-portal.d-BJNWYMt9.d.ts → customer-portal.d-DyZ2n2dW.d.ts} +633 -5
  123. package/dist/entity-VDUN7SYC.cjs +7 -0
  124. package/dist/entity-WWM2Z7BU.js +7 -0
  125. package/dist/entity-runtime-3J5EDLXP.cjs +5 -0
  126. package/dist/{entity-runtime-D4DV5XRM.js → entity-runtime-LNAZILIN.js} +1 -1
  127. package/dist/index.cjs +12 -12
  128. package/dist/index.d.cts +1 -1
  129. package/dist/index.d.ts +1 -1
  130. package/dist/index.js +3 -3
  131. package/docs/customer-portal.md +602 -51
  132. package/docs/entity.md +965 -39
  133. package/package.json +1 -1
  134. package/definitions/data-management-runtime.json +0 -1
  135. package/definitions/data-management.json +0 -972
  136. package/definitions/erp-integration-runtime.json +0 -1
  137. package/definitions/erp-integration.json +0 -6780
  138. package/definitions/target-runtime.json +0 -1
  139. package/definitions/target.json +0 -609
  140. package/dist/chunk-F7W62NKV.js +0 -14
  141. package/dist/chunk-QA2OYK7N.cjs +0 -14
  142. package/dist/chunk-XT54462S.js +0 -14
  143. package/dist/chunk-YWDWPVIC.cjs +0 -14
  144. package/dist/customer-portal-AEFMNNYP.cjs +0 -7
  145. package/dist/customer-portal-Y3GLUVMW.js +0 -7
  146. package/dist/entity-CK76MXVN.js +0 -7
  147. package/dist/entity-TFMH5VTZ.cjs +0 -7
  148. package/dist/entity-runtime-DUJTRYLQ.cjs +0 -5
@@ -2,7 +2,7 @@
2
2
  "openapi": "3.0.2",
3
3
  "info": {
4
4
  "title": "Entity API",
5
- "version": "2.8.0",
5
+ "version": "2.9.0",
6
6
  "description": "Flexible data layer for epilot Entities.\n\nUse this API configure and access your business objects like Contacts, Opportunities and Products.\n\n[Feature Documentation](https://docs.epilot.io/docs/entities/flexible-entities)\n"
7
7
  },
8
8
  "tags": [
@@ -1428,6 +1428,9 @@
1428
1428
  "schema": {
1429
1429
  "$ref": "#/components/schemas/FieldsParam"
1430
1430
  }
1431
+ },
1432
+ {
1433
+ "$ref": "#/components/parameters/ApplyChangesetsQueryParam"
1431
1434
  }
1432
1435
  ],
1433
1436
  "responses": {
@@ -1619,6 +1622,9 @@
1619
1622
  },
1620
1623
  {
1621
1624
  "$ref": "#/components/parameters/ValidateEntityQueryParam"
1625
+ },
1626
+ {
1627
+ "$ref": "#/components/parameters/DirectQueryParam"
1622
1628
  }
1623
1629
  ],
1624
1630
  "requestBody": {
@@ -1682,6 +1688,9 @@
1682
1688
  },
1683
1689
  {
1684
1690
  "$ref": "#/components/parameters/ValidateEntityQueryParam"
1691
+ },
1692
+ {
1693
+ "$ref": "#/components/parameters/DirectQueryParam"
1685
1694
  }
1686
1695
  ],
1687
1696
  "requestBody": {
@@ -2023,6 +2032,138 @@
2023
2032
  }
2024
2033
  }
2025
2034
  },
2035
+ "/v1/entity/{slug}/{id}/changesets/{attribute}:apply": {
2036
+ "post": {
2037
+ "operationId": "applyChangeset",
2038
+ "summary": "applyChangeset",
2039
+ "description": "Applies the proposed value from a pending changeset to the entity attribute\nand removes the changeset. Used for human approval of pending changes.\n",
2040
+ "tags": [
2041
+ "Entities"
2042
+ ],
2043
+ "parameters": [
2044
+ {
2045
+ "$ref": "#/components/parameters/EntitySlugPathParam"
2046
+ },
2047
+ {
2048
+ "$ref": "#/components/parameters/EntityIdPathParam"
2049
+ },
2050
+ {
2051
+ "in": "path",
2052
+ "name": "attribute",
2053
+ "required": true,
2054
+ "description": "Attribute name of the changeset to apply",
2055
+ "schema": {
2056
+ "type": "string"
2057
+ }
2058
+ }
2059
+ ],
2060
+ "responses": {
2061
+ "200": {
2062
+ "description": "Changeset applied successfully — returns updated entity",
2063
+ "content": {
2064
+ "application/json": {
2065
+ "schema": {
2066
+ "$ref": "#/components/schemas/EntityItem"
2067
+ }
2068
+ }
2069
+ }
2070
+ },
2071
+ "404": {
2072
+ "$ref": "#/components/responses/NotFoundError"
2073
+ }
2074
+ }
2075
+ }
2076
+ },
2077
+ "/v1/entity/{slug}/{id}/changesets/{attribute}:dismiss": {
2078
+ "post": {
2079
+ "operationId": "dismissChangeset",
2080
+ "summary": "dismissChangeset",
2081
+ "description": "Removes a pending changeset without applying it. The attribute value remains unchanged.\n",
2082
+ "tags": [
2083
+ "Entities"
2084
+ ],
2085
+ "parameters": [
2086
+ {
2087
+ "$ref": "#/components/parameters/EntitySlugPathParam"
2088
+ },
2089
+ {
2090
+ "$ref": "#/components/parameters/EntityIdPathParam"
2091
+ },
2092
+ {
2093
+ "in": "path",
2094
+ "name": "attribute",
2095
+ "required": true,
2096
+ "description": "Attribute name of the changeset to dismiss",
2097
+ "schema": {
2098
+ "type": "string"
2099
+ }
2100
+ }
2101
+ ],
2102
+ "requestBody": {
2103
+ "content": {
2104
+ "application/json": {
2105
+ "schema": {
2106
+ "type": "object",
2107
+ "properties": {
2108
+ "reason": {
2109
+ "type": "string",
2110
+ "description": "Optional reason for dismissing the changeset"
2111
+ }
2112
+ }
2113
+ }
2114
+ }
2115
+ }
2116
+ },
2117
+ "responses": {
2118
+ "200": {
2119
+ "description": "Changeset dismissed successfully — returns updated entity",
2120
+ "content": {
2121
+ "application/json": {
2122
+ "schema": {
2123
+ "$ref": "#/components/schemas/EntityItem"
2124
+ }
2125
+ }
2126
+ }
2127
+ },
2128
+ "404": {
2129
+ "$ref": "#/components/responses/NotFoundError"
2130
+ }
2131
+ }
2132
+ }
2133
+ },
2134
+ "/v1/entity/{slug}/{id}/changesets": {
2135
+ "get": {
2136
+ "operationId": "listChangesets",
2137
+ "summary": "listChangesets",
2138
+ "description": "Returns all pending changesets for an entity.",
2139
+ "tags": [
2140
+ "Entities"
2141
+ ],
2142
+ "parameters": [
2143
+ {
2144
+ "$ref": "#/components/parameters/EntitySlugPathParam"
2145
+ },
2146
+ {
2147
+ "$ref": "#/components/parameters/EntityIdPathParam"
2148
+ }
2149
+ ],
2150
+ "responses": {
2151
+ "200": {
2152
+ "description": "Pending changesets for the entity",
2153
+ "content": {
2154
+ "application/json": {
2155
+ "schema": {
2156
+ "$ref": "#/components/schemas/ChangesetMap"
2157
+ }
2158
+ }
2159
+ }
2160
+ },
2161
+ "404": {
2162
+ "$ref": "#/components/responses/NotFoundError"
2163
+ }
2164
+ }
2165
+ }
2166
+ },
2026
2167
  "/v1/entity/{slug}/{id}/activity": {
2027
2168
  "get": {
2028
2169
  "operationId": "getEntityActivityFeed",
@@ -3704,7 +3845,7 @@
3704
3845
  "description": "ISO 8601 timestamp to filter jobs created after this time (e.g., 2023-01-01T00:00:00Z).",
3705
3846
  "type": "string",
3706
3847
  "format": "date-time",
3707
- "example": "2023-01-01T00:00:00.000Z"
3848
+ "example": "2023-01-01T00:00:00Z"
3708
3849
  }
3709
3850
  },
3710
3851
  {
@@ -5497,6 +5638,24 @@
5497
5638
  },
5498
5639
  "has_primary": {
5499
5640
  "type": "boolean"
5641
+ },
5642
+ "edit_mode": {
5643
+ "type": "string",
5644
+ "description": "Controls how updates to this attribute are handled.\n- `direct` (default): update is applied immediately. No changeset created.\n- `external`: update creates a changeset, auto-cleared on matching external update (e.g. ERP inbound sync via ?direct=true).\n- `approval`: update creates a changeset, requires explicit human approval.\n",
5645
+ "enum": [
5646
+ "direct",
5647
+ "external",
5648
+ "approval"
5649
+ ],
5650
+ "default": "direct"
5651
+ },
5652
+ "edit_mode_config": {
5653
+ "description": "Configuration for non-direct edit modes. Required when edit_mode is external or approval with fuzzy match strategy.",
5654
+ "allOf": [
5655
+ {
5656
+ "$ref": "#/components/schemas/EditModeConfig"
5657
+ }
5658
+ ]
5500
5659
  }
5501
5660
  },
5502
5661
  "required": [
@@ -7417,6 +7576,15 @@
7417
7576
  "example": "123e4567-e89b-12d3-a456-426614174000"
7418
7577
  },
7419
7578
  "nullable": true
7579
+ },
7580
+ "_changesets": {
7581
+ "readOnly": true,
7582
+ "type": "object",
7583
+ "nullable": true,
7584
+ "description": "Pending attribute changesets for attributes configured with external or approval edit mode.\nRead-only via normal entity PATCH/PUT operations — cannot be set directly.\nUse the changeset management endpoints to apply or dismiss changesets.\n",
7585
+ "additionalProperties": {
7586
+ "$ref": "#/components/schemas/Changeset"
7587
+ }
7420
7588
  }
7421
7589
  },
7422
7590
  "example": {
@@ -8350,6 +8518,11 @@
8350
8518
  "type": "boolean",
8351
8519
  "description": "If true, return full entity objects in entityNodes instead of just entity IDs in nodes",
8352
8520
  "default": false
8521
+ },
8522
+ "apply_changesets": {
8523
+ "type": "boolean",
8524
+ "description": "When true and hydrate is also true, entity objects in entityNodes have pending changeset proposed values applied in-place. The _changesets field is still included in the response.",
8525
+ "default": false
8353
8526
  }
8354
8527
  }
8355
8528
  },
@@ -8646,11 +8819,16 @@
8646
8819
  "float",
8647
8820
  "date",
8648
8821
  "flattened",
8649
- "nested"
8822
+ "nested",
8823
+ "object"
8650
8824
  ]
8651
8825
  },
8652
8826
  "fields": {
8653
8827
  "additionalProperties": true
8828
+ },
8829
+ "dynamic": {
8830
+ "type": "boolean",
8831
+ "description": "When false, prevents ES from inferring types for nested fields. Used for _changesets where values can be any type."
8654
8832
  }
8655
8833
  }
8656
8834
  }
@@ -8717,7 +8895,7 @@
8717
8895
  },
8718
8896
  "ActivityType": {
8719
8897
  "type": "string",
8720
- "description": "A type for the activity. Used to categorize activities in the activity feed and for event subscriptions.\n\nBuilt-in entity activity types (custom activities can be defined as well):\n- EntityCreated\n- EntityUpdated\n- EntityDeleted\n- EntitySoftDeleted\n- EntityRestored\n- RelationsAdded\n- RelationsRemoved\n- RelationsSoftDeleted\n- RelationsRestored\n- RelationsDeleted\n"
8898
+ "description": "A type for the activity. Used to categorize activities in the activity feed and for event subscriptions.\n\nBuilt-in entity activity types (custom activities can be defined as well):\n- EntityCreated\n- EntityUpdated\n- EntityDeleted\n- EntitySoftDeleted\n- EntityRestored\n- RelationsAdded\n- RelationsRemoved\n- RelationsSoftDeleted\n- RelationsRestored\n- RelationsDeleted\n- ChangesetCreated\n- ChangesetAutoCleared\n- ChangesetApplied\n- ChangesetDismissed\n"
8721
8899
  },
8722
8900
  "Activity": {
8723
8901
  "type": "object",
@@ -9505,6 +9683,158 @@
9505
9683
  "example": "Bad Request"
9506
9684
  }
9507
9685
  }
9686
+ },
9687
+ "ChangesetCreator": {
9688
+ "type": "object",
9689
+ "description": "Identifies the actor that created the changeset.",
9690
+ "properties": {
9691
+ "type": {
9692
+ "type": "string",
9693
+ "description": "Type of actor that created the changeset",
9694
+ "enum": [
9695
+ "user",
9696
+ "portal_user",
9697
+ "api_client",
9698
+ "automation"
9699
+ ]
9700
+ },
9701
+ "id": {
9702
+ "type": "string",
9703
+ "description": "ID of the actor (user ID, portal user ID, API client ID, etc.)"
9704
+ }
9705
+ }
9706
+ },
9707
+ "Changeset": {
9708
+ "type": "object",
9709
+ "description": "A pending proposed change for a single entity attribute, awaiting external confirmation or human approval.",
9710
+ "required": [
9711
+ "proposed_value",
9712
+ "created_at",
9713
+ "edit_mode"
9714
+ ],
9715
+ "properties": {
9716
+ "proposed_value": {
9717
+ "description": "The proposed new value for the attribute. Type matches the attribute type."
9718
+ },
9719
+ "previous_value": {
9720
+ "description": "The attribute value at the time the changeset was created. Stored for reference."
9721
+ },
9722
+ "created_at": {
9723
+ "type": "string",
9724
+ "format": "date-time",
9725
+ "description": "Timestamp when the changeset was created"
9726
+ },
9727
+ "created_by": {
9728
+ "$ref": "#/components/schemas/ChangesetCreator"
9729
+ },
9730
+ "edit_mode": {
9731
+ "type": "string",
9732
+ "description": "The edit mode that triggered this changeset",
9733
+ "enum": [
9734
+ "external",
9735
+ "approval"
9736
+ ]
9737
+ },
9738
+ "match_strategy": {
9739
+ "$ref": "#/components/schemas/MatchStrategy"
9740
+ },
9741
+ "source": {
9742
+ "type": "string",
9743
+ "description": "Optional label indicating where the change originated (e.g. end_customer_portal, installer_portal, journey, automation)"
9744
+ },
9745
+ "related_values": {
9746
+ "type": "object",
9747
+ "description": "Proposed and previous values for related fields in a multi-field attribute group (e.g. currency _decimal/_currency suffixes). Keyed by full field name.",
9748
+ "additionalProperties": {
9749
+ "type": "object",
9750
+ "properties": {
9751
+ "proposed_value": {
9752
+ "description": "The proposed new value for the related field."
9753
+ },
9754
+ "previous_value": {
9755
+ "description": "The value of the related field when the changeset was created."
9756
+ }
9757
+ }
9758
+ }
9759
+ }
9760
+ }
9761
+ },
9762
+ "ChangesetMap": {
9763
+ "type": "object",
9764
+ "description": "Map of attribute name to pending changeset. At most one changeset per attribute.",
9765
+ "additionalProperties": {
9766
+ "$ref": "#/components/schemas/Changeset"
9767
+ }
9768
+ },
9769
+ "EditModeConfig": {
9770
+ "type": "object",
9771
+ "description": "Configuration for non-direct edit modes on an entity attribute.",
9772
+ "properties": {
9773
+ "match_strategy": {
9774
+ "$ref": "#/components/schemas/MatchStrategy"
9775
+ },
9776
+ "fuzzy_config": {
9777
+ "$ref": "#/components/schemas/FuzzyConfig"
9778
+ }
9779
+ }
9780
+ },
9781
+ "FuzzyConfig": {
9782
+ "type": "object",
9783
+ "description": "Configuration for fuzzy match strategies on changeset auto-clearing.",
9784
+ "required": [
9785
+ "type"
9786
+ ],
9787
+ "properties": {
9788
+ "type": {
9789
+ "type": "string",
9790
+ "description": "Which fuzzy algorithm to apply.",
9791
+ "enum": [
9792
+ "suffix",
9793
+ "digits_only",
9794
+ "normalize_phone",
9795
+ "ignore_fields",
9796
+ "contains_entry",
9797
+ "regex"
9798
+ ]
9799
+ },
9800
+ "suffix_length": {
9801
+ "type": "integer",
9802
+ "description": "For type=suffix: number of characters to compare from end of string."
9803
+ },
9804
+ "fields_to_ignore": {
9805
+ "type": "array",
9806
+ "items": {
9807
+ "type": "string"
9808
+ },
9809
+ "description": "For type=ignore_fields: field names to exclude when comparing array entries."
9810
+ },
9811
+ "regex_flags": {
9812
+ "type": "string",
9813
+ "description": "For type=regex: flags to apply to the regex (e.g. 'i' for case-insensitive)."
9814
+ },
9815
+ "country_code": {
9816
+ "type": "string",
9817
+ "description": "For type=normalize_phone: country dialing code digits to strip (e.g. '49' for Germany). No '+' prefix."
9818
+ },
9819
+ "match_on": {
9820
+ "type": "string",
9821
+ "description": "For type=normalize_phone and type=contains_entry: attribute key(s) within array entries to compare on."
9822
+ },
9823
+ "pattern": {
9824
+ "type": "string",
9825
+ "description": "For type=regex: regular expression pattern to test the incoming value against."
9826
+ }
9827
+ }
9828
+ },
9829
+ "MatchStrategy": {
9830
+ "type": "string",
9831
+ "description": "Strategy for auto-clearing the changeset when an external update is received.\n- `exact`: The inbound value must exactly match the proposed value (deep equality).\n- `fuzzy`: The inbound value is compared using the configured fuzzy algorithm.\n- `any`: Any update to the attribute clears the changeset, regardless of value.\n",
9832
+ "enum": [
9833
+ "exact",
9834
+ "fuzzy",
9835
+ "any"
9836
+ ],
9837
+ "default": "exact"
9508
9838
  }
9509
9839
  },
9510
9840
  "parameters": {
@@ -9741,6 +10071,26 @@
9741
10071
  "default": false,
9742
10072
  "type": "boolean"
9743
10073
  }
10074
+ },
10075
+ "DirectQueryParam": {
10076
+ "name": "direct",
10077
+ "description": "When true, bypasses changeset interception and applies attribute updates directly.\nUsed by trusted integrations (e.g. ERP inbound sync) to confirm changes and auto-clear matching pending changesets.\nDefaults to false — no breaking change for existing callers.\n",
10078
+ "in": "query",
10079
+ "required": false,
10080
+ "schema": {
10081
+ "type": "boolean",
10082
+ "default": false
10083
+ }
10084
+ },
10085
+ "ApplyChangesetsQueryParam": {
10086
+ "name": "apply_changesets",
10087
+ "description": "When true, applies pending changeset proposed values in-place on the response entity.\nThe response includes both the hydrated values and the raw _changesets field.\nDoes not mutate stored data — pure read-time transform.\n",
10088
+ "in": "query",
10089
+ "required": false,
10090
+ "schema": {
10091
+ "type": "boolean",
10092
+ "default": false
10093
+ }
9744
10094
  }
9745
10095
  },
9746
10096
  "examples": {
@@ -6,25 +6,25 @@ var _chunkOXJOO2YFcjs = require('../chunk-OXJOO2YF.cjs');
6
6
 
7
7
 
8
8
 
9
- var _chunkXN43KCANcjs = require('../chunk-XN43KCAN.cjs');
9
+ var _chunkFCT6W5UMcjs = require('../chunk-FCT6W5UM.cjs');
10
10
  require('../chunk-NJK5F5TF.cjs');
11
11
 
12
12
  // src/apis/access-token.ts
13
13
  var loadDefinition = () => {
14
14
  const mod = _chunkOXJOO2YFcjs.require_access_token_runtime.call(void 0, );
15
- return _chunkXN43KCANcjs.expand.call(void 0, _nullishCoalesce(mod.default, () => ( mod)));
15
+ return _chunkFCT6W5UMcjs.expand.call(void 0, _nullishCoalesce(mod.default, () => ( mod)));
16
16
  };
17
17
  var _instance = null;
18
18
  var resolve = () => {
19
19
  if (!_instance) {
20
20
  const def = loadDefinition();
21
- _instance = _chunkXN43KCANcjs.createApiClient.call(void 0, { definition: def, apiName: "accessToken" });
21
+ _instance = _chunkFCT6W5UMcjs.createApiClient.call(void 0, { definition: def, apiName: "accessToken" });
22
22
  }
23
23
  return _instance;
24
24
  };
25
- var _handle = _chunkXN43KCANcjs.createApiHandle.call(void 0, {
25
+ var _handle = _chunkFCT6W5UMcjs.createApiHandle.call(void 0, {
26
26
  resolveClient: resolve,
27
- createClient: () => _chunkXN43KCANcjs.createApiClient.call(void 0, { definition: loadDefinition(), apiName: "accessToken" }),
27
+ createClient: () => _chunkFCT6W5UMcjs.createApiClient.call(void 0, { definition: loadDefinition(), apiName: "accessToken" }),
28
28
  apiName: "accessToken"
29
29
  });
30
30
  var getClient = _handle.getClient;
@@ -35,4 +35,4 @@ var accessToken = _handle;
35
35
 
36
36
 
37
37
 
38
- exports.accessToken = accessToken; exports.authorize = _chunkXN43KCANcjs.authorize; exports.createClient = createClient; exports.getClient = getClient;
38
+ exports.accessToken = accessToken; exports.authorize = _chunkFCT6W5UMcjs.authorize; exports.createClient = createClient; exports.getClient = getClient;
@@ -6,7 +6,7 @@ import {
6
6
  createApiClient,
7
7
  createApiHandle,
8
8
  expand
9
- } from "../chunk-YD2W64XJ.js";
9
+ } from "../chunk-OU5NVIJW.js";
10
10
  import "../chunk-YPSWSI3M.js";
11
11
 
12
12
  // src/apis/access-token.ts
@@ -6,25 +6,25 @@ var _chunkLKRBFBFNcjs = require('../chunk-LKRBFBFN.cjs');
6
6
 
7
7
 
8
8
 
9
- var _chunkXN43KCANcjs = require('../chunk-XN43KCAN.cjs');
9
+ var _chunkFCT6W5UMcjs = require('../chunk-FCT6W5UM.cjs');
10
10
  require('../chunk-NJK5F5TF.cjs');
11
11
 
12
12
  // src/apis/address-suggestions.ts
13
13
  var loadDefinition = () => {
14
14
  const mod = _chunkLKRBFBFNcjs.require_address_suggestions_runtime.call(void 0, );
15
- return _chunkXN43KCANcjs.expand.call(void 0, _nullishCoalesce(mod.default, () => ( mod)));
15
+ return _chunkFCT6W5UMcjs.expand.call(void 0, _nullishCoalesce(mod.default, () => ( mod)));
16
16
  };
17
17
  var _instance = null;
18
18
  var resolve = () => {
19
19
  if (!_instance) {
20
20
  const def = loadDefinition();
21
- _instance = _chunkXN43KCANcjs.createApiClient.call(void 0, { definition: def, apiName: "addressSuggestions" });
21
+ _instance = _chunkFCT6W5UMcjs.createApiClient.call(void 0, { definition: def, apiName: "addressSuggestions" });
22
22
  }
23
23
  return _instance;
24
24
  };
25
- var _handle = _chunkXN43KCANcjs.createApiHandle.call(void 0, {
25
+ var _handle = _chunkFCT6W5UMcjs.createApiHandle.call(void 0, {
26
26
  resolveClient: resolve,
27
- createClient: () => _chunkXN43KCANcjs.createApiClient.call(void 0, { definition: loadDefinition(), apiName: "addressSuggestions" }),
27
+ createClient: () => _chunkFCT6W5UMcjs.createApiClient.call(void 0, { definition: loadDefinition(), apiName: "addressSuggestions" }),
28
28
  apiName: "addressSuggestions"
29
29
  });
30
30
  var getClient = _handle.getClient;
@@ -35,4 +35,4 @@ var addressSuggestions = _handle;
35
35
 
36
36
 
37
37
 
38
- exports.addressSuggestions = addressSuggestions; exports.authorize = _chunkXN43KCANcjs.authorize; exports.createClient = createClient; exports.getClient = getClient;
38
+ exports.addressSuggestions = addressSuggestions; exports.authorize = _chunkFCT6W5UMcjs.authorize; exports.createClient = createClient; exports.getClient = getClient;
@@ -6,7 +6,7 @@ import {
6
6
  createApiClient,
7
7
  createApiHandle,
8
8
  expand
9
- } from "../chunk-YD2W64XJ.js";
9
+ } from "../chunk-OU5NVIJW.js";
10
10
  import "../chunk-YPSWSI3M.js";
11
11
 
12
12
  // src/apis/address-suggestions.ts
@@ -6,25 +6,25 @@ var _chunkT67ZXTVGcjs = require('../chunk-T67ZXTVG.cjs');
6
6
 
7
7
 
8
8
 
9
- var _chunkXN43KCANcjs = require('../chunk-XN43KCAN.cjs');
9
+ var _chunkFCT6W5UMcjs = require('../chunk-FCT6W5UM.cjs');
10
10
  require('../chunk-NJK5F5TF.cjs');
11
11
 
12
12
  // src/apis/address.ts
13
13
  var loadDefinition = () => {
14
14
  const mod = _chunkT67ZXTVGcjs.require_address_runtime.call(void 0, );
15
- return _chunkXN43KCANcjs.expand.call(void 0, _nullishCoalesce(mod.default, () => ( mod)));
15
+ return _chunkFCT6W5UMcjs.expand.call(void 0, _nullishCoalesce(mod.default, () => ( mod)));
16
16
  };
17
17
  var _instance = null;
18
18
  var resolve = () => {
19
19
  if (!_instance) {
20
20
  const def = loadDefinition();
21
- _instance = _chunkXN43KCANcjs.createApiClient.call(void 0, { definition: def, apiName: "address" });
21
+ _instance = _chunkFCT6W5UMcjs.createApiClient.call(void 0, { definition: def, apiName: "address" });
22
22
  }
23
23
  return _instance;
24
24
  };
25
- var _handle = _chunkXN43KCANcjs.createApiHandle.call(void 0, {
25
+ var _handle = _chunkFCT6W5UMcjs.createApiHandle.call(void 0, {
26
26
  resolveClient: resolve,
27
- createClient: () => _chunkXN43KCANcjs.createApiClient.call(void 0, { definition: loadDefinition(), apiName: "address" }),
27
+ createClient: () => _chunkFCT6W5UMcjs.createApiClient.call(void 0, { definition: loadDefinition(), apiName: "address" }),
28
28
  apiName: "address"
29
29
  });
30
30
  var getClient = _handle.getClient;
@@ -35,4 +35,4 @@ var address = _handle;
35
35
 
36
36
 
37
37
 
38
- exports.address = address; exports.authorize = _chunkXN43KCANcjs.authorize; exports.createClient = createClient; exports.getClient = getClient;
38
+ exports.address = address; exports.authorize = _chunkFCT6W5UMcjs.authorize; exports.createClient = createClient; exports.getClient = getClient;
@@ -6,7 +6,7 @@ import {
6
6
  createApiClient,
7
7
  createApiHandle,
8
8
  expand
9
- } from "../chunk-YD2W64XJ.js";
9
+ } from "../chunk-OU5NVIJW.js";
10
10
  import "../chunk-YPSWSI3M.js";
11
11
 
12
12
  // src/apis/address.ts
@@ -6,25 +6,25 @@ var _chunkFARDEGPHcjs = require('../chunk-FARDEGPH.cjs');
6
6
 
7
7
 
8
8
 
9
- var _chunkXN43KCANcjs = require('../chunk-XN43KCAN.cjs');
9
+ var _chunkFCT6W5UMcjs = require('../chunk-FCT6W5UM.cjs');
10
10
  require('../chunk-NJK5F5TF.cjs');
11
11
 
12
12
  // src/apis/ai-agents.ts
13
13
  var loadDefinition = () => {
14
14
  const mod = _chunkFARDEGPHcjs.require_ai_agents_runtime.call(void 0, );
15
- return _chunkXN43KCANcjs.expand.call(void 0, _nullishCoalesce(mod.default, () => ( mod)));
15
+ return _chunkFCT6W5UMcjs.expand.call(void 0, _nullishCoalesce(mod.default, () => ( mod)));
16
16
  };
17
17
  var _instance = null;
18
18
  var resolve = () => {
19
19
  if (!_instance) {
20
20
  const def = loadDefinition();
21
- _instance = _chunkXN43KCANcjs.createApiClient.call(void 0, { definition: def, apiName: "aiAgents" });
21
+ _instance = _chunkFCT6W5UMcjs.createApiClient.call(void 0, { definition: def, apiName: "aiAgents" });
22
22
  }
23
23
  return _instance;
24
24
  };
25
- var _handle = _chunkXN43KCANcjs.createApiHandle.call(void 0, {
25
+ var _handle = _chunkFCT6W5UMcjs.createApiHandle.call(void 0, {
26
26
  resolveClient: resolve,
27
- createClient: () => _chunkXN43KCANcjs.createApiClient.call(void 0, { definition: loadDefinition(), apiName: "aiAgents" }),
27
+ createClient: () => _chunkFCT6W5UMcjs.createApiClient.call(void 0, { definition: loadDefinition(), apiName: "aiAgents" }),
28
28
  apiName: "aiAgents"
29
29
  });
30
30
  var getClient = _handle.getClient;
@@ -35,4 +35,4 @@ var aiAgents = _handle;
35
35
 
36
36
 
37
37
 
38
- exports.aiAgents = aiAgents; exports.authorize = _chunkXN43KCANcjs.authorize; exports.createClient = createClient; exports.getClient = getClient;
38
+ exports.aiAgents = aiAgents; exports.authorize = _chunkFCT6W5UMcjs.authorize; exports.createClient = createClient; exports.getClient = getClient;
@@ -6,7 +6,7 @@ import {
6
6
  createApiClient,
7
7
  createApiHandle,
8
8
  expand
9
- } from "../chunk-YD2W64XJ.js";
9
+ } from "../chunk-OU5NVIJW.js";
10
10
  import "../chunk-YPSWSI3M.js";
11
11
 
12
12
  // src/apis/ai-agents.ts
package/dist/apis/app.cjs CHANGED
@@ -6,25 +6,25 @@ var _chunkL66IX6GXcjs = require('../chunk-L66IX6GX.cjs');
6
6
 
7
7
 
8
8
 
9
- var _chunkXN43KCANcjs = require('../chunk-XN43KCAN.cjs');
9
+ var _chunkFCT6W5UMcjs = require('../chunk-FCT6W5UM.cjs');
10
10
  require('../chunk-NJK5F5TF.cjs');
11
11
 
12
12
  // src/apis/app.ts
13
13
  var loadDefinition = () => {
14
14
  const mod = _chunkL66IX6GXcjs.require_app_runtime.call(void 0, );
15
- return _chunkXN43KCANcjs.expand.call(void 0, _nullishCoalesce(mod.default, () => ( mod)));
15
+ return _chunkFCT6W5UMcjs.expand.call(void 0, _nullishCoalesce(mod.default, () => ( mod)));
16
16
  };
17
17
  var _instance = null;
18
18
  var resolve = () => {
19
19
  if (!_instance) {
20
20
  const def = loadDefinition();
21
- _instance = _chunkXN43KCANcjs.createApiClient.call(void 0, { definition: def, apiName: "app" });
21
+ _instance = _chunkFCT6W5UMcjs.createApiClient.call(void 0, { definition: def, apiName: "app" });
22
22
  }
23
23
  return _instance;
24
24
  };
25
- var _handle = _chunkXN43KCANcjs.createApiHandle.call(void 0, {
25
+ var _handle = _chunkFCT6W5UMcjs.createApiHandle.call(void 0, {
26
26
  resolveClient: resolve,
27
- createClient: () => _chunkXN43KCANcjs.createApiClient.call(void 0, { definition: loadDefinition(), apiName: "app" }),
27
+ createClient: () => _chunkFCT6W5UMcjs.createApiClient.call(void 0, { definition: loadDefinition(), apiName: "app" }),
28
28
  apiName: "app"
29
29
  });
30
30
  var getClient = _handle.getClient;
@@ -35,4 +35,4 @@ var app = _handle;
35
35
 
36
36
 
37
37
 
38
- exports.app = app; exports.authorize = _chunkXN43KCANcjs.authorize; exports.createClient = createClient; exports.getClient = getClient;
38
+ exports.app = app; exports.authorize = _chunkFCT6W5UMcjs.authorize; exports.createClient = createClient; exports.getClient = getClient;