@revenexx/node 0.1.0 → 0.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +3 -0
- package/dist/client.d.mts +25 -0
- package/dist/client.d.ts +25 -0
- package/dist/client.js +39 -18
- package/dist/client.js.map +1 -1
- package/dist/client.mjs +35 -14
- package/dist/client.mjs.map +1 -1
- package/dist/enums/approval-rule-approver-type.d.mts +7 -0
- package/dist/enums/approval-rule-approver-type.d.ts +7 -0
- package/dist/enums/approval-rule-approver-type.js +12 -0
- package/dist/enums/approval-rule-approver-type.js.map +1 -0
- package/dist/enums/approval-rule-approver-type.mjs +11 -0
- package/dist/enums/approval-rule-approver-type.mjs.map +1 -0
- package/dist/enums/approval-rule-condition.d.mts +10 -0
- package/dist/enums/approval-rule-condition.d.ts +10 -0
- package/dist/enums/approval-rule-condition.js +15 -0
- package/dist/enums/approval-rule-condition.js.map +1 -0
- package/dist/enums/approval-rule-condition.mjs +14 -0
- package/dist/enums/approval-rule-condition.mjs.map +1 -0
- package/dist/enums/approval-rule-create-request-approver-type.d.mts +7 -0
- package/dist/enums/approval-rule-create-request-approver-type.d.ts +7 -0
- package/dist/enums/approval-rule-create-request-approver-type.js +12 -0
- package/dist/enums/approval-rule-create-request-approver-type.js.map +1 -0
- package/dist/enums/approval-rule-create-request-approver-type.mjs +11 -0
- package/dist/enums/approval-rule-create-request-approver-type.mjs.map +1 -0
- package/dist/enums/approval-rule-create-request-condition.d.mts +10 -0
- package/dist/enums/approval-rule-create-request-condition.d.ts +10 -0
- package/dist/enums/approval-rule-create-request-condition.js +15 -0
- package/dist/enums/approval-rule-create-request-condition.js.map +1 -0
- package/dist/enums/approval-rule-create-request-condition.mjs +14 -0
- package/dist/enums/approval-rule-create-request-condition.mjs.map +1 -0
- package/dist/enums/approval-rule-create-request-effect.d.mts +7 -0
- package/dist/enums/approval-rule-create-request-effect.d.ts +7 -0
- package/dist/enums/approval-rule-create-request-effect.js +12 -0
- package/dist/enums/approval-rule-create-request-effect.js.map +1 -0
- package/dist/enums/approval-rule-create-request-effect.mjs +11 -0
- package/dist/enums/approval-rule-create-request-effect.mjs.map +1 -0
- package/dist/enums/approval-rule-effect.d.mts +7 -0
- package/dist/enums/approval-rule-effect.d.ts +7 -0
- package/dist/enums/approval-rule-effect.js +12 -0
- package/dist/enums/approval-rule-effect.js.map +1 -0
- package/dist/enums/approval-rule-effect.mjs +11 -0
- package/dist/enums/approval-rule-effect.mjs.map +1 -0
- package/dist/enums/approval-rule-update-request-approver-type.d.mts +7 -0
- package/dist/enums/approval-rule-update-request-approver-type.d.ts +7 -0
- package/dist/enums/approval-rule-update-request-approver-type.js +12 -0
- package/dist/enums/approval-rule-update-request-approver-type.js.map +1 -0
- package/dist/enums/approval-rule-update-request-approver-type.mjs +11 -0
- package/dist/enums/approval-rule-update-request-approver-type.mjs.map +1 -0
- package/dist/enums/approval-rule-update-request-condition.d.mts +10 -0
- package/dist/enums/approval-rule-update-request-condition.d.ts +10 -0
- package/dist/enums/approval-rule-update-request-condition.js +15 -0
- package/dist/enums/approval-rule-update-request-condition.js.map +1 -0
- package/dist/enums/approval-rule-update-request-condition.mjs +14 -0
- package/dist/enums/approval-rule-update-request-condition.mjs.map +1 -0
- package/dist/enums/approval-rule-update-request-effect.d.mts +7 -0
- package/dist/enums/approval-rule-update-request-effect.d.ts +7 -0
- package/dist/enums/approval-rule-update-request-effect.js +12 -0
- package/dist/enums/approval-rule-update-request-effect.js.map +1 -0
- package/dist/enums/approval-rule-update-request-effect.mjs +11 -0
- package/dist/enums/approval-rule-update-request-effect.mjs.map +1 -0
- package/dist/enums/approver-type.d.mts +7 -0
- package/dist/enums/approver-type.d.ts +7 -0
- package/dist/enums/approver-type.js +12 -0
- package/dist/enums/approver-type.js.map +1 -0
- package/dist/enums/approver-type.mjs +11 -0
- package/dist/enums/approver-type.mjs.map +1 -0
- package/dist/enums/condition.d.mts +10 -0
- package/dist/enums/condition.d.ts +10 -0
- package/dist/enums/condition.js +15 -0
- package/dist/enums/condition.js.map +1 -0
- package/dist/enums/condition.mjs +14 -0
- package/dist/enums/condition.mjs.map +1 -0
- package/dist/enums/effect.d.mts +7 -0
- package/dist/enums/effect.d.ts +7 -0
- package/dist/enums/effect.js +12 -0
- package/dist/enums/effect.js.map +1 -0
- package/dist/enums/effect.mjs +11 -0
- package/dist/enums/effect.mjs.map +1 -0
- package/dist/enums/pending-approval-approver-type.d.mts +7 -0
- package/dist/enums/pending-approval-approver-type.d.ts +7 -0
- package/dist/enums/pending-approval-approver-type.js +12 -0
- package/dist/enums/pending-approval-approver-type.js.map +1 -0
- package/dist/enums/pending-approval-approver-type.mjs +11 -0
- package/dist/enums/pending-approval-approver-type.mjs.map +1 -0
- package/dist/enums/pending-approval-status.d.mts +7 -0
- package/dist/enums/pending-approval-status.d.ts +7 -0
- package/dist/enums/pending-approval-status.js +12 -0
- package/dist/enums/pending-approval-status.js.map +1 -0
- package/dist/enums/pending-approval-status.mjs +11 -0
- package/dist/enums/pending-approval-status.mjs.map +1 -0
- package/dist/enums/procurement-purchase-request-items-create-type.d.mts +7 -0
- package/dist/enums/procurement-purchase-request-items-create-type.d.ts +7 -0
- package/dist/enums/procurement-purchase-request-items-create-type.js +12 -0
- package/dist/enums/procurement-purchase-request-items-create-type.js.map +1 -0
- package/dist/enums/procurement-purchase-request-items-create-type.mjs +11 -0
- package/dist/enums/procurement-purchase-request-items-create-type.mjs.map +1 -0
- package/dist/enums/purchase-request-event-name.d.mts +12 -0
- package/dist/enums/purchase-request-event-name.d.ts +12 -0
- package/dist/enums/purchase-request-event-name.js +17 -0
- package/dist/enums/purchase-request-event-name.js.map +1 -0
- package/dist/enums/purchase-request-event-name.mjs +16 -0
- package/dist/enums/purchase-request-event-name.mjs.map +1 -0
- package/dist/enums/purchase-request-item-create-request-type.d.mts +7 -0
- package/dist/enums/purchase-request-item-create-request-type.d.ts +7 -0
- package/dist/enums/purchase-request-item-create-request-type.js +12 -0
- package/dist/enums/purchase-request-item-create-request-type.js.map +1 -0
- package/dist/enums/purchase-request-item-create-request-type.mjs +11 -0
- package/dist/enums/purchase-request-item-create-request-type.mjs.map +1 -0
- package/dist/enums/purchase-request-item-type.d.mts +7 -0
- package/dist/enums/purchase-request-item-type.d.ts +7 -0
- package/dist/enums/purchase-request-item-type.js +12 -0
- package/dist/enums/purchase-request-item-type.js.map +1 -0
- package/dist/enums/purchase-request-item-type.mjs +11 -0
- package/dist/enums/purchase-request-item-type.mjs.map +1 -0
- package/dist/enums/purchase-request-item-update-request-type.d.mts +7 -0
- package/dist/enums/purchase-request-item-update-request-type.d.ts +7 -0
- package/dist/enums/purchase-request-item-update-request-type.js +12 -0
- package/dist/enums/purchase-request-item-update-request-type.js.map +1 -0
- package/dist/enums/purchase-request-item-update-request-type.mjs +11 -0
- package/dist/enums/purchase-request-item-update-request-type.mjs.map +1 -0
- package/dist/enums/purchase-request-status.d.mts +9 -0
- package/dist/enums/purchase-request-status.d.ts +9 -0
- package/dist/enums/purchase-request-status.js +14 -0
- package/dist/enums/purchase-request-status.js.map +1 -0
- package/dist/enums/purchase-request-status.mjs +13 -0
- package/dist/enums/purchase-request-status.mjs.map +1 -0
- package/dist/enums/submit-item-type.d.mts +7 -0
- package/dist/enums/submit-item-type.d.ts +7 -0
- package/dist/enums/submit-item-type.js +12 -0
- package/dist/enums/submit-item-type.js.map +1 -0
- package/dist/enums/submit-item-type.mjs +11 -0
- package/dist/enums/submit-item-type.mjs.map +1 -0
- package/dist/enums/submit-result-outcome.d.mts +9 -0
- package/dist/enums/submit-result-outcome.d.ts +9 -0
- package/dist/enums/submit-result-outcome.js +14 -0
- package/dist/enums/submit-result-outcome.js.map +1 -0
- package/dist/enums/submit-result-outcome.mjs +13 -0
- package/dist/enums/submit-result-outcome.mjs.map +1 -0
- package/dist/index.d.mts +23 -0
- package/dist/index.d.ts +23 -0
- package/dist/index.js +115 -0
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +23 -0
- package/dist/index.mjs.map +1 -1
- package/dist/inputFile.js +1 -2
- package/dist/inputFile.js.map +1 -1
- package/dist/inputFile.mjs +0 -1
- package/dist/inputFile.mjs.map +1 -1
- package/dist/models.d.mts +1027 -36
- package/dist/models.d.ts +1027 -36
- package/dist/operator.js +243 -204
- package/dist/operator.js.map +1 -1
- package/dist/operator.mjs +242 -203
- package/dist/operator.mjs.map +1 -1
- package/dist/permission.js +58 -48
- package/dist/permission.js.map +1 -1
- package/dist/permission.mjs +58 -48
- package/dist/permission.mjs.map +1 -1
- package/dist/query.js +525 -422
- package/dist/query.js.map +1 -1
- package/dist/query.mjs +524 -421
- package/dist/query.mjs.map +1 -1
- package/dist/services/apps.d.mts +18 -0
- package/dist/services/apps.d.ts +18 -0
- package/dist/services/avatars.d.mts +18 -0
- package/dist/services/avatars.d.ts +18 -0
- package/dist/services/carts-io.d.mts +46 -28
- package/dist/services/carts-io.d.ts +46 -28
- package/dist/services/carts-io.js.map +1 -1
- package/dist/services/carts-io.mjs.map +1 -1
- package/dist/services/carts-items.d.mts +42 -24
- package/dist/services/carts-items.d.ts +42 -24
- package/dist/services/carts-items.js.map +1 -1
- package/dist/services/carts-items.mjs.map +1 -1
- package/dist/services/carts.d.mts +70 -52
- package/dist/services/carts.d.ts +70 -52
- package/dist/services/carts.js.map +1 -1
- package/dist/services/carts.mjs.map +1 -1
- package/dist/services/channels.d.mts +64 -46
- package/dist/services/channels.d.ts +64 -46
- package/dist/services/channels.js +1 -1
- package/dist/services/channels.js.map +1 -1
- package/dist/services/channels.mjs +1 -1
- package/dist/services/channels.mjs.map +1 -1
- package/dist/services/cost-centers.d.mts +18 -0
- package/dist/services/cost-centers.d.ts +18 -0
- package/dist/services/customers-contacts.d.mts +62 -44
- package/dist/services/customers-contacts.d.ts +62 -44
- package/dist/services/customers-contacts.js.map +1 -1
- package/dist/services/customers-contacts.mjs.map +1 -1
- package/dist/services/customers-organizations.d.mts +58 -40
- package/dist/services/customers-organizations.d.ts +58 -40
- package/dist/services/customers-organizations.js.map +1 -1
- package/dist/services/customers-organizations.mjs.map +1 -1
- package/dist/services/customers-roles.d.mts +26 -8
- package/dist/services/customers-roles.d.ts +26 -8
- package/dist/services/customers-roles.js.map +1 -1
- package/dist/services/customers-roles.mjs.map +1 -1
- package/dist/services/customers-segments.d.mts +62 -44
- package/dist/services/customers-segments.d.ts +62 -44
- package/dist/services/customers-segments.js.map +1 -1
- package/dist/services/customers-segments.mjs.map +1 -1
- package/dist/services/customers-value-lists.d.mts +90 -72
- package/dist/services/customers-value-lists.d.ts +90 -72
- package/dist/services/customers-value-lists.js.map +1 -1
- package/dist/services/customers-value-lists.mjs.map +1 -1
- package/dist/services/customers.d.mts +78 -60
- package/dist/services/customers.d.ts +78 -60
- package/dist/services/customers.js.map +1 -1
- package/dist/services/customers.mjs.map +1 -1
- package/dist/services/events.d.mts +18 -0
- package/dist/services/events.d.ts +18 -0
- package/dist/services/forms.d.mts +66 -48
- package/dist/services/forms.d.ts +66 -48
- package/dist/services/forms.js.map +1 -1
- package/dist/services/forms.mjs.map +1 -1
- package/dist/services/health.d.mts +18 -0
- package/dist/services/health.d.ts +18 -0
- package/dist/services/inventories-locations.d.mts +38 -20
- package/dist/services/inventories-locations.d.ts +38 -20
- package/dist/services/inventories-locations.js.map +1 -1
- package/dist/services/inventories-locations.mjs.map +1 -1
- package/dist/services/inventories-reservations.d.mts +38 -20
- package/dist/services/inventories-reservations.d.ts +38 -20
- package/dist/services/inventories-reservations.js.map +1 -1
- package/dist/services/inventories-reservations.mjs.map +1 -1
- package/dist/services/inventories-stock.d.mts +70 -52
- package/dist/services/inventories-stock.d.ts +70 -52
- package/dist/services/inventories-stock.js.map +1 -1
- package/dist/services/inventories-stock.mjs.map +1 -1
- package/dist/services/io.d.mts +66 -48
- package/dist/services/io.d.ts +66 -48
- package/dist/services/io.js +2 -2
- package/dist/services/io.js.map +1 -1
- package/dist/services/io.mjs +2 -2
- package/dist/services/io.mjs.map +1 -1
- package/dist/services/locale.d.mts +18 -0
- package/dist/services/locale.d.ts +18 -0
- package/dist/services/markets.d.mts +122 -104
- package/dist/services/markets.d.ts +122 -104
- package/dist/services/markets.js.map +1 -1
- package/dist/services/markets.mjs.map +1 -1
- package/dist/services/messaging.d.mts +194 -176
- package/dist/services/messaging.d.ts +194 -176
- package/dist/services/messaging.js +3 -3
- package/dist/services/messaging.js.map +1 -1
- package/dist/services/messaging.mjs +3 -3
- package/dist/services/messaging.mjs.map +1 -1
- package/dist/services/orderlists.d.mts +96 -78
- package/dist/services/orderlists.d.ts +96 -78
- package/dist/services/orderlists.js +1 -1
- package/dist/services/orderlists.js.map +1 -1
- package/dist/services/orderlists.mjs +1 -1
- package/dist/services/orderlists.mjs.map +1 -1
- package/dist/services/orders.d.mts +114 -96
- package/dist/services/orders.d.ts +114 -96
- package/dist/services/orders.js.map +1 -1
- package/dist/services/orders.mjs.map +1 -1
- package/dist/services/pages-collaboration.d.mts +34 -16
- package/dist/services/pages-collaboration.d.ts +34 -16
- package/dist/services/pages-collaboration.js.map +1 -1
- package/dist/services/pages-collaboration.mjs.map +1 -1
- package/dist/services/pages-delivery.d.mts +26 -8
- package/dist/services/pages-delivery.d.ts +26 -8
- package/dist/services/pages-delivery.js.map +1 -1
- package/dist/services/pages-delivery.mjs.map +1 -1
- package/dist/services/pages-editor.d.mts +34 -16
- package/dist/services/pages-editor.d.ts +34 -16
- package/dist/services/pages-editor.js.map +1 -1
- package/dist/services/pages-editor.mjs.map +1 -1
- package/dist/services/pages.d.mts +82 -64
- package/dist/services/pages.d.ts +82 -64
- package/dist/services/pages.js.map +1 -1
- package/dist/services/pages.mjs.map +1 -1
- package/dist/services/payments-ledger.d.mts +54 -36
- package/dist/services/payments-ledger.d.ts +54 -36
- package/dist/services/payments-ledger.js.map +1 -1
- package/dist/services/payments-ledger.mjs.map +1 -1
- package/dist/services/payments-methods.d.mts +34 -16
- package/dist/services/payments-methods.d.ts +34 -16
- package/dist/services/payments-methods.js.map +1 -1
- package/dist/services/payments-methods.mjs.map +1 -1
- package/dist/services/payments-providers.d.mts +38 -20
- package/dist/services/payments-providers.d.ts +38 -20
- package/dist/services/payments-providers.js.map +1 -1
- package/dist/services/payments-providers.mjs.map +1 -1
- package/dist/services/prices.d.mts +86 -68
- package/dist/services/prices.d.ts +86 -68
- package/dist/services/prices.js.map +1 -1
- package/dist/services/prices.mjs.map +1 -1
- package/dist/services/procurement.d.mts +991 -0
- package/dist/services/procurement.d.ts +991 -0
- package/dist/services/procurement.js +1185 -0
- package/dist/services/procurement.js.map +1 -0
- package/dist/services/procurement.mjs +1184 -0
- package/dist/services/procurement.mjs.map +1 -0
- package/dist/services/products-assets.d.mts +34 -16
- package/dist/services/products-assets.d.ts +34 -16
- package/dist/services/products-assets.js.map +1 -1
- package/dist/services/products-assets.mjs.map +1 -1
- package/dist/services/products-categories.d.mts +66 -48
- package/dist/services/products-categories.d.ts +66 -48
- package/dist/services/products-categories.js.map +1 -1
- package/dist/services/products-categories.mjs.map +1 -1
- package/dist/services/products-data-model.d.mts +166 -148
- package/dist/services/products-data-model.d.ts +166 -148
- package/dist/services/products-data-model.js.map +1 -1
- package/dist/services/products-data-model.mjs.map +1 -1
- package/dist/services/products-references.d.mts +50 -32
- package/dist/services/products-references.d.ts +50 -32
- package/dist/services/products-references.js.map +1 -1
- package/dist/services/products-references.mjs.map +1 -1
- package/dist/services/products.d.mts +70 -52
- package/dist/services/products.d.ts +70 -52
- package/dist/services/products.js.map +1 -1
- package/dist/services/products.mjs.map +1 -1
- package/dist/services/search.d.mts +40 -22
- package/dist/services/search.d.ts +40 -22
- package/dist/services/search.js +1 -1
- package/dist/services/search.js.map +1 -1
- package/dist/services/search.mjs +1 -1
- package/dist/services/search.mjs.map +1 -1
- package/dist/services/settings.d.mts +18 -0
- package/dist/services/settings.d.ts +18 -0
- package/dist/services/shipping-carriers.d.mts +42 -24
- package/dist/services/shipping-carriers.d.ts +42 -24
- package/dist/services/shipping-carriers.js.map +1 -1
- package/dist/services/shipping-carriers.mjs.map +1 -1
- package/dist/services/shipping-methods.d.mts +70 -52
- package/dist/services/shipping-methods.d.ts +70 -52
- package/dist/services/shipping-methods.js.map +1 -1
- package/dist/services/shipping-methods.mjs.map +1 -1
- package/dist/services/shipping-value-lists.d.mts +62 -44
- package/dist/services/shipping-value-lists.d.ts +62 -44
- package/dist/services/shipping-value-lists.js.map +1 -1
- package/dist/services/shipping-value-lists.mjs.map +1 -1
- package/dist/services/sites.d.mts +18 -0
- package/dist/services/sites.d.ts +18 -0
- package/dist/services/storage.d.mts +18 -0
- package/dist/services/storage.d.ts +18 -0
- package/package.json +6 -3
package/README.md
CHANGED
|
@@ -13,6 +13,9 @@ Revenexx Node.js SDK for server-side applications.
|
|
|
13
13
|
|
|
14
14
|
## Installation
|
|
15
15
|
|
|
16
|
+
Requires **Node.js 20.18.1 or newer** — the client uses the runtime's built-in
|
|
17
|
+
`fetch`, `FormData` and `File`.
|
|
18
|
+
|
|
16
19
|
To install via [NPM](https://www.npmjs.com/):
|
|
17
20
|
|
|
18
21
|
```bash
|
package/dist/client.d.mts
CHANGED
|
@@ -3,6 +3,15 @@ export { Query, QueryTypes, QueryTypesList } from './query.mjs';
|
|
|
3
3
|
import './enums/address-type-row-tone.mjs';
|
|
4
4
|
import './enums/address-type-row-create-request-tone.mjs';
|
|
5
5
|
import './enums/address-type-row-update-request-tone.mjs';
|
|
6
|
+
import './enums/approval-rule-approver-type.mjs';
|
|
7
|
+
import './enums/approval-rule-condition.mjs';
|
|
8
|
+
import './enums/approval-rule-effect.mjs';
|
|
9
|
+
import './enums/approval-rule-create-request-approver-type.mjs';
|
|
10
|
+
import './enums/approval-rule-create-request-condition.mjs';
|
|
11
|
+
import './enums/approval-rule-create-request-effect.mjs';
|
|
12
|
+
import './enums/approval-rule-update-request-approver-type.mjs';
|
|
13
|
+
import './enums/approval-rule-update-request-condition.mjs';
|
|
14
|
+
import './enums/approval-rule-update-request-effect.mjs';
|
|
6
15
|
import './enums/assets-source.mjs';
|
|
7
16
|
import './enums/attribute-value-bucket.mjs';
|
|
8
17
|
import './enums/auth-mail-source.mjs';
|
|
@@ -116,6 +125,8 @@ import './enums/payment-term-tone.mjs';
|
|
|
116
125
|
import './enums/payment-term-create-request-tone.mjs';
|
|
117
126
|
import './enums/payment-term-update-request-tone.mjs';
|
|
118
127
|
import './enums/payment-vocabulary-tone.mjs';
|
|
128
|
+
import './enums/pending-approval-approver-type.mjs';
|
|
129
|
+
import './enums/pending-approval-status.mjs';
|
|
119
130
|
import './enums/price-ending-rule.mjs';
|
|
120
131
|
import './enums/price-entries-adjust-response-rounding.mjs';
|
|
121
132
|
import './enums/price-entries-adjust-response-rounding-mode.mjs';
|
|
@@ -138,6 +149,11 @@ import './enums/product-grid-column-source.mjs';
|
|
|
138
149
|
import './enums/product-label-source.mjs';
|
|
139
150
|
import './enums/product-label-attribute-source.mjs';
|
|
140
151
|
import './enums/products-kind.mjs';
|
|
152
|
+
import './enums/purchase-request-status.mjs';
|
|
153
|
+
import './enums/purchase-request-event-name.mjs';
|
|
154
|
+
import './enums/purchase-request-item-type.mjs';
|
|
155
|
+
import './enums/purchase-request-item-create-request-type.mjs';
|
|
156
|
+
import './enums/purchase-request-item-update-request-type.mjs';
|
|
141
157
|
import './enums/reorder-point-source.mjs';
|
|
142
158
|
import './enums/reservation-status.mjs';
|
|
143
159
|
import './enums/price-on-request-reason.mjs';
|
|
@@ -175,6 +191,8 @@ import './enums/shipping-weight-unit-row-tone.mjs';
|
|
|
175
191
|
import './enums/shipping-weight-unit-update-request-tone.mjs';
|
|
176
192
|
import './enums/stock-movement-type.mjs';
|
|
177
193
|
import './enums/store-asset-request-visibility.mjs';
|
|
194
|
+
import './enums/submit-item-type.mjs';
|
|
195
|
+
import './enums/submit-result-outcome.mjs';
|
|
178
196
|
import './enums/validation-failed-response-status.mjs';
|
|
179
197
|
import './enums/vocabulary-default-tone.mjs';
|
|
180
198
|
import './enums/vocabulary-source.mjs';
|
|
@@ -318,6 +336,13 @@ declare class Client {
|
|
|
318
336
|
* @return {this}
|
|
319
337
|
*/
|
|
320
338
|
setMarket(value: string): this;
|
|
339
|
+
/**
|
|
340
|
+
* Extra `fetch` options for this client's TLS settings.
|
|
341
|
+
*
|
|
342
|
+
* Empty unless `setSelfSigned(true)` was called, so the default path stays
|
|
343
|
+
* on the platform `fetch` with certificate verification intact.
|
|
344
|
+
*/
|
|
345
|
+
private dispatcherOptions;
|
|
321
346
|
prepareRequest(method: string, url: URL, headers?: Headers, params?: Payload): {
|
|
322
347
|
uri: string;
|
|
323
348
|
options: RequestInit;
|
package/dist/client.d.ts
CHANGED
|
@@ -3,6 +3,15 @@ export { Query, QueryTypes, QueryTypesList } from './query.js';
|
|
|
3
3
|
import './enums/address-type-row-tone.js';
|
|
4
4
|
import './enums/address-type-row-create-request-tone.js';
|
|
5
5
|
import './enums/address-type-row-update-request-tone.js';
|
|
6
|
+
import './enums/approval-rule-approver-type.js';
|
|
7
|
+
import './enums/approval-rule-condition.js';
|
|
8
|
+
import './enums/approval-rule-effect.js';
|
|
9
|
+
import './enums/approval-rule-create-request-approver-type.js';
|
|
10
|
+
import './enums/approval-rule-create-request-condition.js';
|
|
11
|
+
import './enums/approval-rule-create-request-effect.js';
|
|
12
|
+
import './enums/approval-rule-update-request-approver-type.js';
|
|
13
|
+
import './enums/approval-rule-update-request-condition.js';
|
|
14
|
+
import './enums/approval-rule-update-request-effect.js';
|
|
6
15
|
import './enums/assets-source.js';
|
|
7
16
|
import './enums/attribute-value-bucket.js';
|
|
8
17
|
import './enums/auth-mail-source.js';
|
|
@@ -116,6 +125,8 @@ import './enums/payment-term-tone.js';
|
|
|
116
125
|
import './enums/payment-term-create-request-tone.js';
|
|
117
126
|
import './enums/payment-term-update-request-tone.js';
|
|
118
127
|
import './enums/payment-vocabulary-tone.js';
|
|
128
|
+
import './enums/pending-approval-approver-type.js';
|
|
129
|
+
import './enums/pending-approval-status.js';
|
|
119
130
|
import './enums/price-ending-rule.js';
|
|
120
131
|
import './enums/price-entries-adjust-response-rounding.js';
|
|
121
132
|
import './enums/price-entries-adjust-response-rounding-mode.js';
|
|
@@ -138,6 +149,11 @@ import './enums/product-grid-column-source.js';
|
|
|
138
149
|
import './enums/product-label-source.js';
|
|
139
150
|
import './enums/product-label-attribute-source.js';
|
|
140
151
|
import './enums/products-kind.js';
|
|
152
|
+
import './enums/purchase-request-status.js';
|
|
153
|
+
import './enums/purchase-request-event-name.js';
|
|
154
|
+
import './enums/purchase-request-item-type.js';
|
|
155
|
+
import './enums/purchase-request-item-create-request-type.js';
|
|
156
|
+
import './enums/purchase-request-item-update-request-type.js';
|
|
141
157
|
import './enums/reorder-point-source.js';
|
|
142
158
|
import './enums/reservation-status.js';
|
|
143
159
|
import './enums/price-on-request-reason.js';
|
|
@@ -175,6 +191,8 @@ import './enums/shipping-weight-unit-row-tone.js';
|
|
|
175
191
|
import './enums/shipping-weight-unit-update-request-tone.js';
|
|
176
192
|
import './enums/stock-movement-type.js';
|
|
177
193
|
import './enums/store-asset-request-visibility.js';
|
|
194
|
+
import './enums/submit-item-type.js';
|
|
195
|
+
import './enums/submit-result-outcome.js';
|
|
178
196
|
import './enums/validation-failed-response-status.js';
|
|
179
197
|
import './enums/vocabulary-default-tone.js';
|
|
180
198
|
import './enums/vocabulary-source.js';
|
|
@@ -318,6 +336,13 @@ declare class Client {
|
|
|
318
336
|
* @return {this}
|
|
319
337
|
*/
|
|
320
338
|
setMarket(value: string): this;
|
|
339
|
+
/**
|
|
340
|
+
* Extra `fetch` options for this client's TLS settings.
|
|
341
|
+
*
|
|
342
|
+
* Empty unless `setSelfSigned(true)` was called, so the default path stays
|
|
343
|
+
* on the platform `fetch` with certificate verification intact.
|
|
344
|
+
*/
|
|
345
|
+
private dispatcherOptions;
|
|
321
346
|
prepareRequest(method: string, url: URL, headers?: Headers, params?: Payload): {
|
|
322
347
|
uri: string;
|
|
323
348
|
options: RequestInit;
|
package/dist/client.js
CHANGED
|
@@ -1,7 +1,5 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var nodeFetchNativeWithAgent = require('node-fetch-native-with-agent');
|
|
4
|
-
var agent = require('node-fetch-native-with-agent/agent');
|
|
5
3
|
var JSONbigModule = require('json-bigint');
|
|
6
4
|
var query = require('./query');
|
|
7
5
|
|
|
@@ -49,8 +47,17 @@ class RevenexxException extends Error {
|
|
|
49
47
|
this.response = response;
|
|
50
48
|
}
|
|
51
49
|
}
|
|
50
|
+
let selfSignedDispatcher = null;
|
|
51
|
+
function getSelfSignedDispatcher() {
|
|
52
|
+
if (selfSignedDispatcher === null) {
|
|
53
|
+
selfSignedDispatcher = import('undici').then(
|
|
54
|
+
({ Agent }) => new Agent({ connect: { rejectUnauthorized: false } })
|
|
55
|
+
);
|
|
56
|
+
}
|
|
57
|
+
return selfSignedDispatcher;
|
|
58
|
+
}
|
|
52
59
|
function getUserAgent() {
|
|
53
|
-
let ua = "RevenexxNodeJSSDK/0.1.
|
|
60
|
+
let ua = "RevenexxNodeJSSDK/0.1.1";
|
|
54
61
|
const platform = [];
|
|
55
62
|
if (typeof process !== "undefined") {
|
|
56
63
|
if (typeof process.platform === "string")
|
|
@@ -82,7 +89,7 @@ class Client {
|
|
|
82
89
|
"x-sdk-name": "Revenexx Node",
|
|
83
90
|
"x-sdk-platform": "",
|
|
84
91
|
"x-sdk-language": "nodejs",
|
|
85
|
-
"x-sdk-version": "0.1.
|
|
92
|
+
"x-sdk-version": "0.1.1",
|
|
86
93
|
"user-agent": getUserAgent()
|
|
87
94
|
};
|
|
88
95
|
}
|
|
@@ -187,13 +194,24 @@ class Client {
|
|
|
187
194
|
this.headers["X-Revenexx-Market"] = value;
|
|
188
195
|
return this;
|
|
189
196
|
}
|
|
197
|
+
/**
|
|
198
|
+
* Extra `fetch` options for this client's TLS settings.
|
|
199
|
+
*
|
|
200
|
+
* Empty unless `setSelfSigned(true)` was called, so the default path stays
|
|
201
|
+
* on the platform `fetch` with certificate verification intact.
|
|
202
|
+
*/
|
|
203
|
+
async dispatcherOptions() {
|
|
204
|
+
if (!this.config.selfSigned) {
|
|
205
|
+
return {};
|
|
206
|
+
}
|
|
207
|
+
return { dispatcher: await getSelfSignedDispatcher() };
|
|
208
|
+
}
|
|
190
209
|
prepareRequest(method, url, headers = {}, params = {}) {
|
|
191
210
|
method = method.toUpperCase();
|
|
192
211
|
headers = Object.assign({}, this.headers, headers);
|
|
193
212
|
let options = {
|
|
194
213
|
method,
|
|
195
|
-
headers
|
|
196
|
-
...agent.createAgent(this.config.endpoint, { rejectUnauthorized: !this.config.selfSigned })
|
|
214
|
+
headers
|
|
197
215
|
};
|
|
198
216
|
if (method === "GET") {
|
|
199
217
|
for (const [key, value] of Object.entries(Client.flatten(params))) {
|
|
@@ -205,9 +223,9 @@ class Client {
|
|
|
205
223
|
options.body = JSONbig.stringify(params);
|
|
206
224
|
break;
|
|
207
225
|
case "multipart/form-data":
|
|
208
|
-
const formData = new
|
|
226
|
+
const formData = new FormData();
|
|
209
227
|
for (const [key, value] of Object.entries(params)) {
|
|
210
|
-
if (value instanceof
|
|
228
|
+
if (value instanceof File) {
|
|
211
229
|
formData.append(key, value, value.name);
|
|
212
230
|
} else if (Array.isArray(value)) {
|
|
213
231
|
for (const nestedValue of value) {
|
|
@@ -225,14 +243,14 @@ class Client {
|
|
|
225
243
|
return { uri: url.toString(), options };
|
|
226
244
|
}
|
|
227
245
|
async chunkedUpload(method, url, headers = {}, originalPayload = {}, onProgress) {
|
|
228
|
-
const [fileParam, file] = Object.entries(originalPayload).find(([_, value]) => value instanceof
|
|
246
|
+
const [fileParam, file] = Object.entries(originalPayload).find(([_, value]) => value instanceof File) ?? [];
|
|
229
247
|
if (!file || !fileParam) {
|
|
230
248
|
throw new Error("File not found in payload");
|
|
231
249
|
}
|
|
232
250
|
const response = await this.call(method, url, headers, originalPayload);
|
|
233
251
|
if (onProgress && typeof onProgress === "function") {
|
|
234
252
|
onProgress({
|
|
235
|
-
$id: response
|
|
253
|
+
$id: response?.$id,
|
|
236
254
|
progress: 100,
|
|
237
255
|
sizeUploaded: file.size,
|
|
238
256
|
chunksTotal: 1,
|
|
@@ -246,8 +264,9 @@ class Client {
|
|
|
246
264
|
}
|
|
247
265
|
async redirect(method, url, headers = {}, params = {}) {
|
|
248
266
|
const { uri, options } = this.prepareRequest(method, url, headers, params);
|
|
249
|
-
const response = await
|
|
267
|
+
const response = await fetch(uri, {
|
|
250
268
|
...options,
|
|
269
|
+
...await this.dispatcherOptions(),
|
|
251
270
|
redirect: "manual"
|
|
252
271
|
});
|
|
253
272
|
if (response.status !== 301 && response.status !== 302) {
|
|
@@ -256,15 +275,17 @@ class Client {
|
|
|
256
275
|
return response.headers.get("location") || "";
|
|
257
276
|
}
|
|
258
277
|
async call(method, url, headers = {}, params = {}, responseType = "json") {
|
|
259
|
-
var _a, _b;
|
|
260
278
|
const { uri, options } = this.prepareRequest(method, url, headers, params);
|
|
261
279
|
let data = null;
|
|
262
|
-
const response = await
|
|
280
|
+
const response = await fetch(uri, {
|
|
281
|
+
...options,
|
|
282
|
+
...await this.dispatcherOptions()
|
|
283
|
+
});
|
|
263
284
|
const warnings = response.headers.get("x-revenexx-warning");
|
|
264
285
|
if (warnings) {
|
|
265
286
|
warnings.split(";").forEach((warning) => console.warn("Warning: " + warning));
|
|
266
287
|
}
|
|
267
|
-
if (
|
|
288
|
+
if (response.headers.get("content-type")?.includes("application/json")) {
|
|
268
289
|
data = JSONbig.parse(await response.text());
|
|
269
290
|
} else if (responseType === "arrayBuffer") {
|
|
270
291
|
data = await response.arrayBuffer();
|
|
@@ -275,12 +296,12 @@ class Client {
|
|
|
275
296
|
}
|
|
276
297
|
if (400 <= response.status) {
|
|
277
298
|
let responseText = "";
|
|
278
|
-
if (
|
|
299
|
+
if (response.headers.get("content-type")?.includes("application/json") || responseType === "arrayBuffer") {
|
|
279
300
|
responseText = JSONbig.stringify(data);
|
|
280
301
|
} else {
|
|
281
|
-
responseText = data
|
|
302
|
+
responseText = data?.message;
|
|
282
303
|
}
|
|
283
|
-
throw new RevenexxException(data
|
|
304
|
+
throw new RevenexxException(data?.message, response.status, data?.type, responseText);
|
|
284
305
|
}
|
|
285
306
|
if (data && typeof data === "object") {
|
|
286
307
|
data.toString = () => JSONbig.stringify(data);
|
|
@@ -307,7 +328,7 @@ class Client {
|
|
|
307
328
|
getAbout() {
|
|
308
329
|
return {
|
|
309
330
|
name: "Revenexx Node",
|
|
310
|
-
version: "0.1.
|
|
331
|
+
version: "0.1.1",
|
|
311
332
|
language: "nodejs",
|
|
312
333
|
generator: "revenexx/sdk-generator",
|
|
313
334
|
generatorUrl: "https://github.com/revenexx/sdk-generator"
|
package/dist/client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/client.ts"],"names":[],"mappings":"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","sourcesContent":["import { fetch, FormData, File } from 'node-fetch-native-with-agent';\nimport { createAgent } from 'node-fetch-native-with-agent/agent';\nimport { Models } from './models';\nimport JSONbigModule from 'json-bigint';\nconst JSONbigParser = JSONbigModule({ storeAsString: false });\nconst JSONbigSerializer = JSONbigModule({ useNativeBigInt: true });\n\nconst MAX_SAFE = BigInt(Number.MAX_SAFE_INTEGER);\nconst MIN_SAFE = BigInt(Number.MIN_SAFE_INTEGER);\nconst MAX_INT64 = BigInt('9223372036854775807');\nconst MIN_INT64 = BigInt('-9223372036854775808');\n\nfunction isBigNumber(value: any): boolean {\n return value !== null\n && typeof value === 'object'\n && value._isBigNumber === true\n && typeof value.isInteger === 'function'\n && typeof value.toFixed === 'function'\n && typeof value.toNumber === 'function';\n}\n\nfunction reviver(_key: string, value: any): any {\n if (isBigNumber(value)) {\n if (value.isInteger()) {\n const str = value.toFixed();\n const bi = BigInt(str);\n if (bi >= MIN_SAFE && bi <= MAX_SAFE) {\n return Number(str);\n }\n if (bi >= MIN_INT64 && bi <= MAX_INT64) {\n return bi;\n }\n return value.toNumber();\n }\n return value.toNumber();\n }\n return value;\n}\n\nconst JSONbig = {\n parse: (text: string) => JSONbigParser.parse(text, reviver),\n stringify: JSONbigSerializer.stringify\n};\n\ntype Payload = {\n [key: string]: any;\n}\n\ntype UploadProgress = {\n $id: string;\n progress: number;\n sizeUploaded: number;\n chunksTotal: number;\n chunksUploaded: number;\n}\n\ntype Headers = {\n [key: string]: string;\n}\n\nclass RevenexxException extends Error {\n code: number;\n response: string;\n type: string;\n constructor(message: string, code: number = 0, type: string = '', response: string = '') {\n super(message);\n this.name = 'RevenexxException';\n this.message = message;\n this.code = code;\n this.type = type;\n this.response = response;\n }\n}\n\nfunction getUserAgent() {\n let ua = 'RevenexxNodeJSSDK/0.1.0';\n\n // `process` is a global in Node.js, but not fully available in all runtimes.\n const platform: string[] = [];\n if (typeof process !== 'undefined') {\n if (typeof process.platform === 'string') platform.push(process.platform);\n if (typeof process.arch === 'string') platform.push(process.arch);\n } \n if (platform.length > 0) {\n ua += ` (${platform.join('; ')})`;\n }\n\n // `navigator.userAgent` is available in Node.js 21 and later.\n // It's also part of the WinterCG spec, so many edge runtimes provide it.\n // https://common-min-api.proposal.wintercg.org/#requirements-for-navigatoruseragent\n // @ts-ignore\n if (typeof navigator !== 'undefined' && typeof navigator.userAgent === 'string') {\n // @ts-ignore\n ua += ` ${navigator.userAgent}`;\n\n // @ts-ignore\n } else if (typeof globalThis.EdgeRuntime === 'string') {\n ua += ` EdgeRuntime`;\n\n // Older Node.js versions don't have `navigator.userAgent`, so we have to use `process.version`.\n } else if (typeof process !== 'undefined' && typeof process.version === 'string') {\n ua += ` Node.js/${process.version}`;\n }\n\n return ua;\n}\n\nclass Client {\n\n config = {\n endpoint: 'https://api.revenexx.com',\n selfSigned: false,\n apikeyauth: '',\n bearerauth: '',\n };\n headers: Headers = {\n 'x-sdk-name': 'Revenexx Node',\n 'x-sdk-platform': '',\n 'x-sdk-language': 'nodejs',\n 'x-sdk-version': '0.1.0',\n 'user-agent' : getUserAgent(),\n };\n\n /**\n * Set Endpoint\n *\n * Your project endpoint\n *\n * @param {string} endpoint\n *\n * @returns {this}\n */\n setEndpoint(endpoint: string): this {\n if (!endpoint || typeof endpoint !== 'string') {\n throw new RevenexxException('Endpoint must be a valid string');\n }\n\n if (!endpoint.startsWith('http://') && !endpoint.startsWith('https://')) {\n throw new RevenexxException('Invalid endpoint URL: ' + endpoint);\n }\n\n this.config.endpoint = endpoint;\n return this;\n }\n\n /**\n * Set self-signed\n *\n * @param {boolean} selfSigned\n *\n * @returns {this}\n */\n setSelfSigned(selfSigned: boolean): this {\n // @ts-ignore\n if (typeof globalThis.EdgeRuntime !== 'undefined') {\n console.warn('setSelfSigned is not supported in edge runtimes.');\n }\n\n this.config.selfSigned = selfSigned;\n\n return this;\n }\n\n /**\n * Add header\n *\n * @param {string} header\n * @param {string} value\n *\n * @returns {this}\n */\n addHeader(header: string, value: string): this {\n this.headers[header.toLowerCase()] = value;\n\n return this;\n }\n\n /**\n * Set ApiKeyAuth\n *\n * A gateway-managed scoped API key (rvxk_…).\n *\n * @param value string\n *\n * @return {this}\n */\n setApiKeyAuth(value: string): this {\n this.headers['X-Revenexx-Api-Key'] = value;\n this.config.apikeyauth = value;\n return this;\n }\n /**\n * Set BearerAuth\n *\n * A Zitadel-issued JWT (Cockpit / interactive callers).\n *\n * @param value string\n *\n * @return {this}\n */\n setBearerAuth(value: string): this {\n this.headers['Authorization'] = value.toLowerCase().startsWith('bearer ') ? value : `Bearer ${value}`;\n this.config.bearerauth = value;\n return this;\n }\n\n /**\n * Set Tenant\n *\n * The tenant slug your requests are scoped to, sent as the\n * X-Revenexx-Tenant header on every request.\n *\n * @param value string\n *\n * @return {this}\n */\n setTenant(value: string): this {\n this.headers['X-Revenexx-Tenant'] = value;\n return this;\n }\n\n /**\n * Set Market\n *\n * The market slug to scope requests to, sent as the X-Revenexx-Market\n * header. Optional — omit it to see only global rows.\n *\n * @param value string\n *\n * @return {this}\n */\n setMarket(value: string): this {\n this.headers['X-Revenexx-Market'] = value;\n return this;\n }\n\n prepareRequest(method: string, url: URL, headers: Headers = {}, params: Payload = {}): { uri: string, options: RequestInit } {\n method = method.toUpperCase();\n\n headers = Object.assign({}, this.headers, headers);\n\n let options: RequestInit = {\n method,\n headers,\n ...createAgent(this.config.endpoint, { rejectUnauthorized: !this.config.selfSigned }),\n };\n\n if (method === 'GET') {\n for (const [key, value] of Object.entries(Client.flatten(params))) {\n url.searchParams.append(key, value);\n }\n } else {\n switch (headers['content-type']) {\n case 'application/json':\n options.body = JSONbig.stringify(params);\n break;\n\n case 'multipart/form-data':\n const formData = new FormData();\n\n for (const [key, value] of Object.entries(params)) {\n if (value instanceof File) {\n formData.append(key, value, value.name);\n } else if (Array.isArray(value)) {\n for (const nestedValue of value) {\n formData.append(`${key}[]`, nestedValue);\n }\n } else {\n formData.append(key, value);\n }\n }\n\n options.body = formData;\n delete headers['content-type'];\n break;\n }\n }\n\n return { uri: url.toString(), options };\n }\n\n async chunkedUpload(method: string, url: URL, headers: Headers = {}, originalPayload: Payload = {}, onProgress: (progress: UploadProgress) => void) {\n const [fileParam, file] = Object.entries(originalPayload).find(([_, value]) => value instanceof File) ?? [];\n\n if (!file || !fileParam) {\n throw new Error('File not found in payload');\n }\n\n // The API takes one multipart body per upload. It has no chunked or\n // resumable protocol — no content-range, no upload id, no per-chunk\n // endpoint — so the whole file always goes in a single request.\n const response = await this.call(method, url, headers, originalPayload);\n\n if (onProgress && typeof onProgress === 'function') {\n onProgress({\n $id: response?.$id,\n progress: 100,\n sizeUploaded: file.size,\n chunksTotal: 1,\n chunksUploaded: 1\n });\n }\n\n return response;\n }\n\n async ping(): Promise<string> {\n return this.call('GET', new URL(this.config.endpoint + '/ping'));\n }\n\n async redirect(method: string, url: URL, headers: Headers = {}, params: Payload = {}): Promise<string> {\n const { uri, options } = this.prepareRequest(method, url, headers, params);\n \n const response = await fetch(uri, {\n ...options,\n redirect: 'manual'\n });\n\n if (response.status !== 301 && response.status !== 302) {\n throw new RevenexxException('Invalid redirect', response.status);\n }\n\n return response.headers.get('location') || '';\n }\n\n async call(method: string, url: URL, headers: Headers = {}, params: Payload = {}, responseType = 'json'): Promise<any> {\n const { uri, options } = this.prepareRequest(method, url, headers, params);\n\n let data: any = null;\n\n const response = await fetch(uri, options);\n\n const warnings = response.headers.get('x-revenexx-warning');\n if (warnings) {\n warnings.split(';').forEach((warning: string) => console.warn('Warning: ' + warning));\n }\n\n if (response.headers.get('content-type')?.includes('application/json')) {\n data = JSONbig.parse(await response.text());\n } else if (responseType === 'arrayBuffer') {\n data = await response.arrayBuffer();\n } else {\n data = {\n message: await response.text()\n };\n }\n\n if (400 <= response.status) {\n let responseText = '';\n if (response.headers.get('content-type')?.includes('application/json') || responseType === 'arrayBuffer') {\n responseText = JSONbig.stringify(data);\n } else {\n responseText = data?.message;\n }\n throw new RevenexxException(data?.message, response.status, data?.type, responseText);\n }\n\n if (data && typeof data === 'object') {\n data.toString = () => JSONbig.stringify(data);\n }\n\n return data;\n }\n\n static flatten(data: Payload, prefix = ''): Payload {\n let output: Payload = {};\n\n for (const [key, value] of Object.entries(data)) {\n let finalKey = prefix ? prefix + '[' + key +']' : key;\n if (Array.isArray(value)) {\n output = { ...output, ...Client.flatten(value, finalKey) };\n } else {\n output[finalKey] = value;\n }\n }\n\n return output;\n }\n\n /**\n * Get information about this SDK and the generator that produced it.\n *\n * Contributed by the 'about' plugin.\n */\n getAbout(): Record<string, string> {\n return {\n name: 'Revenexx Node',\n version: '0.1.0',\n language: 'nodejs',\n generator: 'revenexx/sdk-generator',\n generatorUrl: 'https://github.com/revenexx/sdk-generator',\n };\n }\n}\n\nexport { Client, RevenexxException };\nexport { Query } from './query';\nexport type { Models, Payload, UploadProgress };\nexport type { QueryTypes, QueryTypesList } from './query';\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/client.ts"],"names":[],"mappings":"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","sourcesContent":["import { Models } from './models';\nimport JSONbigModule from 'json-bigint';\nconst JSONbigParser = JSONbigModule({ storeAsString: false });\nconst JSONbigSerializer = JSONbigModule({ useNativeBigInt: true });\n\nconst MAX_SAFE = BigInt(Number.MAX_SAFE_INTEGER);\nconst MIN_SAFE = BigInt(Number.MIN_SAFE_INTEGER);\nconst MAX_INT64 = BigInt('9223372036854775807');\nconst MIN_INT64 = BigInt('-9223372036854775808');\n\nfunction isBigNumber(value: any): boolean {\n return value !== null\n && typeof value === 'object'\n && value._isBigNumber === true\n && typeof value.isInteger === 'function'\n && typeof value.toFixed === 'function'\n && typeof value.toNumber === 'function';\n}\n\nfunction reviver(_key: string, value: any): any {\n if (isBigNumber(value)) {\n if (value.isInteger()) {\n const str = value.toFixed();\n const bi = BigInt(str);\n if (bi >= MIN_SAFE && bi <= MAX_SAFE) {\n return Number(str);\n }\n if (bi >= MIN_INT64 && bi <= MAX_INT64) {\n return bi;\n }\n return value.toNumber();\n }\n return value.toNumber();\n }\n return value;\n}\n\nconst JSONbig = {\n parse: (text: string) => JSONbigParser.parse(text, reviver),\n stringify: JSONbigSerializer.stringify\n};\n\ntype Payload = {\n [key: string]: any;\n}\n\ntype UploadProgress = {\n $id: string;\n progress: number;\n sizeUploaded: number;\n chunksTotal: number;\n chunksUploaded: number;\n}\n\ntype Headers = {\n [key: string]: string;\n}\n\nclass RevenexxException extends Error {\n code: number;\n response: string;\n type: string;\n constructor(message: string, code: number = 0, type: string = '', response: string = '') {\n super(message);\n this.name = 'RevenexxException';\n this.message = message;\n this.code = code;\n this.type = type;\n this.response = response;\n }\n}\n\nlet selfSignedDispatcher: Promise<any> | null = null;\n\n/**\n * Build a dispatcher that skips TLS verification, for `setSelfSigned(true)`.\n *\n * The platform `fetch` has no `rejectUnauthorized` switch of its own, so the\n * only way to reach an endpoint with a self-signed certificate is to hand it\n * an undici dispatcher. `undici` is loaded lazily and cached: a client that\n * never calls `setSelfSigned(true)` never pays for it, and runtimes without\n * Node's networking internals keep working as long as they stay off this path.\n */\nfunction getSelfSignedDispatcher(): Promise<any> {\n if (selfSignedDispatcher === null) {\n selfSignedDispatcher = import('undici').then(\n ({ Agent }) => new Agent({ connect: { rejectUnauthorized: false } })\n );\n }\n\n return selfSignedDispatcher;\n}\n\nfunction getUserAgent() {\n let ua = 'RevenexxNodeJSSDK/0.1.1';\n\n // `process` is a global in Node.js, but not fully available in all runtimes.\n const platform: string[] = [];\n if (typeof process !== 'undefined') {\n if (typeof process.platform === 'string') platform.push(process.platform);\n if (typeof process.arch === 'string') platform.push(process.arch);\n } \n if (platform.length > 0) {\n ua += ` (${platform.join('; ')})`;\n }\n\n // `navigator.userAgent` is available in Node.js 21 and later.\n // It's also part of the WinterCG spec, so many edge runtimes provide it.\n // https://common-min-api.proposal.wintercg.org/#requirements-for-navigatoruseragent\n // @ts-ignore\n if (typeof navigator !== 'undefined' && typeof navigator.userAgent === 'string') {\n // @ts-ignore\n ua += ` ${navigator.userAgent}`;\n\n // @ts-ignore\n } else if (typeof globalThis.EdgeRuntime === 'string') {\n ua += ` EdgeRuntime`;\n\n // Older Node.js versions don't have `navigator.userAgent`, so we have to use `process.version`.\n } else if (typeof process !== 'undefined' && typeof process.version === 'string') {\n ua += ` Node.js/${process.version}`;\n }\n\n return ua;\n}\n\nclass Client {\n\n config = {\n endpoint: 'https://api.revenexx.com',\n selfSigned: false,\n apikeyauth: '',\n bearerauth: '',\n };\n headers: Headers = {\n 'x-sdk-name': 'Revenexx Node',\n 'x-sdk-platform': '',\n 'x-sdk-language': 'nodejs',\n 'x-sdk-version': '0.1.1',\n 'user-agent' : getUserAgent(),\n };\n\n /**\n * Set Endpoint\n *\n * Your project endpoint\n *\n * @param {string} endpoint\n *\n * @returns {this}\n */\n setEndpoint(endpoint: string): this {\n if (!endpoint || typeof endpoint !== 'string') {\n throw new RevenexxException('Endpoint must be a valid string');\n }\n\n if (!endpoint.startsWith('http://') && !endpoint.startsWith('https://')) {\n throw new RevenexxException('Invalid endpoint URL: ' + endpoint);\n }\n\n this.config.endpoint = endpoint;\n return this;\n }\n\n /**\n * Set self-signed\n *\n * @param {boolean} selfSigned\n *\n * @returns {this}\n */\n setSelfSigned(selfSigned: boolean): this {\n // @ts-ignore\n if (typeof globalThis.EdgeRuntime !== 'undefined') {\n console.warn('setSelfSigned is not supported in edge runtimes.');\n }\n\n this.config.selfSigned = selfSigned;\n\n return this;\n }\n\n /**\n * Add header\n *\n * @param {string} header\n * @param {string} value\n *\n * @returns {this}\n */\n addHeader(header: string, value: string): this {\n this.headers[header.toLowerCase()] = value;\n\n return this;\n }\n\n /**\n * Set ApiKeyAuth\n *\n * A gateway-managed scoped API key (rvxk_…).\n *\n * @param value string\n *\n * @return {this}\n */\n setApiKeyAuth(value: string): this {\n this.headers['X-Revenexx-Api-Key'] = value;\n this.config.apikeyauth = value;\n return this;\n }\n /**\n * Set BearerAuth\n *\n * A Zitadel-issued JWT (Cockpit / interactive callers).\n *\n * @param value string\n *\n * @return {this}\n */\n setBearerAuth(value: string): this {\n this.headers['Authorization'] = value.toLowerCase().startsWith('bearer ') ? value : `Bearer ${value}`;\n this.config.bearerauth = value;\n return this;\n }\n\n /**\n * Set Tenant\n *\n * The tenant slug your requests are scoped to, sent as the\n * X-Revenexx-Tenant header on every request.\n *\n * @param value string\n *\n * @return {this}\n */\n setTenant(value: string): this {\n this.headers['X-Revenexx-Tenant'] = value;\n return this;\n }\n\n /**\n * Set Market\n *\n * The market slug to scope requests to, sent as the X-Revenexx-Market\n * header. Optional — omit it to see only global rows.\n *\n * @param value string\n *\n * @return {this}\n */\n setMarket(value: string): this {\n this.headers['X-Revenexx-Market'] = value;\n return this;\n }\n\n /**\n * Extra `fetch` options for this client's TLS settings.\n *\n * Empty unless `setSelfSigned(true)` was called, so the default path stays\n * on the platform `fetch` with certificate verification intact.\n */\n private async dispatcherOptions(): Promise<RequestInit> {\n if (!this.config.selfSigned) {\n return {};\n }\n\n return { dispatcher: await getSelfSignedDispatcher() } as RequestInit;\n }\n\n prepareRequest(method: string, url: URL, headers: Headers = {}, params: Payload = {}): { uri: string, options: RequestInit } {\n method = method.toUpperCase();\n\n headers = Object.assign({}, this.headers, headers);\n\n let options: RequestInit = {\n method,\n headers,\n };\n\n if (method === 'GET') {\n for (const [key, value] of Object.entries(Client.flatten(params))) {\n url.searchParams.append(key, value);\n }\n } else {\n switch (headers['content-type']) {\n case 'application/json':\n options.body = JSONbig.stringify(params);\n break;\n\n case 'multipart/form-data':\n const formData = new FormData();\n\n for (const [key, value] of Object.entries(params)) {\n if (value instanceof File) {\n formData.append(key, value, value.name);\n } else if (Array.isArray(value)) {\n for (const nestedValue of value) {\n formData.append(`${key}[]`, nestedValue);\n }\n } else {\n formData.append(key, value);\n }\n }\n\n options.body = formData;\n delete headers['content-type'];\n break;\n }\n }\n\n return { uri: url.toString(), options };\n }\n\n async chunkedUpload(method: string, url: URL, headers: Headers = {}, originalPayload: Payload = {}, onProgress: (progress: UploadProgress) => void) {\n const [fileParam, file] = Object.entries(originalPayload).find(([_, value]) => value instanceof File) ?? [];\n\n if (!file || !fileParam) {\n throw new Error('File not found in payload');\n }\n\n // The API takes one multipart body per upload. It has no chunked or\n // resumable protocol — no content-range, no upload id, no per-chunk\n // endpoint — so the whole file always goes in a single request.\n const response = await this.call(method, url, headers, originalPayload);\n\n if (onProgress && typeof onProgress === 'function') {\n onProgress({\n $id: response?.$id,\n progress: 100,\n sizeUploaded: file.size,\n chunksTotal: 1,\n chunksUploaded: 1\n });\n }\n\n return response;\n }\n\n async ping(): Promise<string> {\n return this.call('GET', new URL(this.config.endpoint + '/ping'));\n }\n\n async redirect(method: string, url: URL, headers: Headers = {}, params: Payload = {}): Promise<string> {\n const { uri, options } = this.prepareRequest(method, url, headers, params);\n\n const response = await fetch(uri, {\n ...options,\n ...(await this.dispatcherOptions()),\n redirect: 'manual'\n });\n\n if (response.status !== 301 && response.status !== 302) {\n throw new RevenexxException('Invalid redirect', response.status);\n }\n\n return response.headers.get('location') || '';\n }\n\n async call(method: string, url: URL, headers: Headers = {}, params: Payload = {}, responseType = 'json'): Promise<any> {\n const { uri, options } = this.prepareRequest(method, url, headers, params);\n\n let data: any = null;\n\n const response = await fetch(uri, {\n ...options,\n ...(await this.dispatcherOptions())\n });\n\n const warnings = response.headers.get('x-revenexx-warning');\n if (warnings) {\n warnings.split(';').forEach((warning: string) => console.warn('Warning: ' + warning));\n }\n\n if (response.headers.get('content-type')?.includes('application/json')) {\n data = JSONbig.parse(await response.text());\n } else if (responseType === 'arrayBuffer') {\n data = await response.arrayBuffer();\n } else {\n data = {\n message: await response.text()\n };\n }\n\n if (400 <= response.status) {\n let responseText = '';\n if (response.headers.get('content-type')?.includes('application/json') || responseType === 'arrayBuffer') {\n responseText = JSONbig.stringify(data);\n } else {\n responseText = data?.message;\n }\n throw new RevenexxException(data?.message, response.status, data?.type, responseText);\n }\n\n if (data && typeof data === 'object') {\n data.toString = () => JSONbig.stringify(data);\n }\n\n return data;\n }\n\n static flatten(data: Payload, prefix = ''): Payload {\n let output: Payload = {};\n\n for (const [key, value] of Object.entries(data)) {\n let finalKey = prefix ? prefix + '[' + key +']' : key;\n if (Array.isArray(value)) {\n output = { ...output, ...Client.flatten(value, finalKey) };\n } else {\n output[finalKey] = value;\n }\n }\n\n return output;\n }\n\n /**\n * Get information about this SDK and the generator that produced it.\n *\n * Contributed by the 'about' plugin.\n */\n getAbout(): Record<string, string> {\n return {\n name: 'Revenexx Node',\n version: '0.1.1',\n language: 'nodejs',\n generator: 'revenexx/sdk-generator',\n generatorUrl: 'https://github.com/revenexx/sdk-generator',\n };\n }\n}\n\nexport { Client, RevenexxException };\nexport { Query } from './query';\nexport type { Models, Payload, UploadProgress };\nexport type { QueryTypes, QueryTypesList } from './query';\n"]}
|
package/dist/client.mjs
CHANGED
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
import { FormData, File, fetch } from 'node-fetch-native-with-agent';
|
|
2
|
-
import { createAgent } from 'node-fetch-native-with-agent/agent';
|
|
3
1
|
import JSONbigModule from 'json-bigint';
|
|
4
2
|
export { Query } from './query.mjs';
|
|
5
3
|
|
|
@@ -44,8 +42,17 @@ var RevenexxException = class extends Error {
|
|
|
44
42
|
this.response = response;
|
|
45
43
|
}
|
|
46
44
|
};
|
|
45
|
+
var selfSignedDispatcher = null;
|
|
46
|
+
function getSelfSignedDispatcher() {
|
|
47
|
+
if (selfSignedDispatcher === null) {
|
|
48
|
+
selfSignedDispatcher = import('undici').then(
|
|
49
|
+
({ Agent }) => new Agent({ connect: { rejectUnauthorized: false } })
|
|
50
|
+
);
|
|
51
|
+
}
|
|
52
|
+
return selfSignedDispatcher;
|
|
53
|
+
}
|
|
47
54
|
function getUserAgent() {
|
|
48
|
-
let ua = "RevenexxNodeJSSDK/0.1.
|
|
55
|
+
let ua = "RevenexxNodeJSSDK/0.1.1";
|
|
49
56
|
const platform = [];
|
|
50
57
|
if (typeof process !== "undefined") {
|
|
51
58
|
if (typeof process.platform === "string")
|
|
@@ -77,7 +84,7 @@ var Client = class _Client {
|
|
|
77
84
|
"x-sdk-name": "Revenexx Node",
|
|
78
85
|
"x-sdk-platform": "",
|
|
79
86
|
"x-sdk-language": "nodejs",
|
|
80
|
-
"x-sdk-version": "0.1.
|
|
87
|
+
"x-sdk-version": "0.1.1",
|
|
81
88
|
"user-agent": getUserAgent()
|
|
82
89
|
};
|
|
83
90
|
}
|
|
@@ -182,13 +189,24 @@ var Client = class _Client {
|
|
|
182
189
|
this.headers["X-Revenexx-Market"] = value;
|
|
183
190
|
return this;
|
|
184
191
|
}
|
|
192
|
+
/**
|
|
193
|
+
* Extra `fetch` options for this client's TLS settings.
|
|
194
|
+
*
|
|
195
|
+
* Empty unless `setSelfSigned(true)` was called, so the default path stays
|
|
196
|
+
* on the platform `fetch` with certificate verification intact.
|
|
197
|
+
*/
|
|
198
|
+
async dispatcherOptions() {
|
|
199
|
+
if (!this.config.selfSigned) {
|
|
200
|
+
return {};
|
|
201
|
+
}
|
|
202
|
+
return { dispatcher: await getSelfSignedDispatcher() };
|
|
203
|
+
}
|
|
185
204
|
prepareRequest(method, url, headers = {}, params = {}) {
|
|
186
205
|
method = method.toUpperCase();
|
|
187
206
|
headers = Object.assign({}, this.headers, headers);
|
|
188
207
|
let options = {
|
|
189
208
|
method,
|
|
190
|
-
headers
|
|
191
|
-
...createAgent(this.config.endpoint, { rejectUnauthorized: !this.config.selfSigned })
|
|
209
|
+
headers
|
|
192
210
|
};
|
|
193
211
|
if (method === "GET") {
|
|
194
212
|
for (const [key, value] of Object.entries(_Client.flatten(params))) {
|
|
@@ -227,7 +245,7 @@ var Client = class _Client {
|
|
|
227
245
|
const response = await this.call(method, url, headers, originalPayload);
|
|
228
246
|
if (onProgress && typeof onProgress === "function") {
|
|
229
247
|
onProgress({
|
|
230
|
-
$id: response
|
|
248
|
+
$id: response?.$id,
|
|
231
249
|
progress: 100,
|
|
232
250
|
sizeUploaded: file.size,
|
|
233
251
|
chunksTotal: 1,
|
|
@@ -243,6 +261,7 @@ var Client = class _Client {
|
|
|
243
261
|
const { uri, options } = this.prepareRequest(method, url, headers, params);
|
|
244
262
|
const response = await fetch(uri, {
|
|
245
263
|
...options,
|
|
264
|
+
...await this.dispatcherOptions(),
|
|
246
265
|
redirect: "manual"
|
|
247
266
|
});
|
|
248
267
|
if (response.status !== 301 && response.status !== 302) {
|
|
@@ -251,15 +270,17 @@ var Client = class _Client {
|
|
|
251
270
|
return response.headers.get("location") || "";
|
|
252
271
|
}
|
|
253
272
|
async call(method, url, headers = {}, params = {}, responseType = "json") {
|
|
254
|
-
var _a, _b;
|
|
255
273
|
const { uri, options } = this.prepareRequest(method, url, headers, params);
|
|
256
274
|
let data = null;
|
|
257
|
-
const response = await fetch(uri,
|
|
275
|
+
const response = await fetch(uri, {
|
|
276
|
+
...options,
|
|
277
|
+
...await this.dispatcherOptions()
|
|
278
|
+
});
|
|
258
279
|
const warnings = response.headers.get("x-revenexx-warning");
|
|
259
280
|
if (warnings) {
|
|
260
281
|
warnings.split(";").forEach((warning) => console.warn("Warning: " + warning));
|
|
261
282
|
}
|
|
262
|
-
if (
|
|
283
|
+
if (response.headers.get("content-type")?.includes("application/json")) {
|
|
263
284
|
data = JSONbig.parse(await response.text());
|
|
264
285
|
} else if (responseType === "arrayBuffer") {
|
|
265
286
|
data = await response.arrayBuffer();
|
|
@@ -270,12 +291,12 @@ var Client = class _Client {
|
|
|
270
291
|
}
|
|
271
292
|
if (400 <= response.status) {
|
|
272
293
|
let responseText = "";
|
|
273
|
-
if (
|
|
294
|
+
if (response.headers.get("content-type")?.includes("application/json") || responseType === "arrayBuffer") {
|
|
274
295
|
responseText = JSONbig.stringify(data);
|
|
275
296
|
} else {
|
|
276
|
-
responseText = data
|
|
297
|
+
responseText = data?.message;
|
|
277
298
|
}
|
|
278
|
-
throw new RevenexxException(data
|
|
299
|
+
throw new RevenexxException(data?.message, response.status, data?.type, responseText);
|
|
279
300
|
}
|
|
280
301
|
if (data && typeof data === "object") {
|
|
281
302
|
data.toString = () => JSONbig.stringify(data);
|
|
@@ -302,7 +323,7 @@ var Client = class _Client {
|
|
|
302
323
|
getAbout() {
|
|
303
324
|
return {
|
|
304
325
|
name: "Revenexx Node",
|
|
305
|
-
version: "0.1.
|
|
326
|
+
version: "0.1.1",
|
|
306
327
|
language: "nodejs",
|
|
307
328
|
generator: "revenexx/sdk-generator",
|
|
308
329
|
generatorUrl: "https://github.com/revenexx/sdk-generator"
|
package/dist/client.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/client.ts"],"names":[],"mappings":"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","sourcesContent":["import { fetch, FormData, File } from 'node-fetch-native-with-agent';\nimport { createAgent } from 'node-fetch-native-with-agent/agent';\nimport { Models } from './models';\nimport JSONbigModule from 'json-bigint';\nconst JSONbigParser = JSONbigModule({ storeAsString: false });\nconst JSONbigSerializer = JSONbigModule({ useNativeBigInt: true });\n\nconst MAX_SAFE = BigInt(Number.MAX_SAFE_INTEGER);\nconst MIN_SAFE = BigInt(Number.MIN_SAFE_INTEGER);\nconst MAX_INT64 = BigInt('9223372036854775807');\nconst MIN_INT64 = BigInt('-9223372036854775808');\n\nfunction isBigNumber(value: any): boolean {\n return value !== null\n && typeof value === 'object'\n && value._isBigNumber === true\n && typeof value.isInteger === 'function'\n && typeof value.toFixed === 'function'\n && typeof value.toNumber === 'function';\n}\n\nfunction reviver(_key: string, value: any): any {\n if (isBigNumber(value)) {\n if (value.isInteger()) {\n const str = value.toFixed();\n const bi = BigInt(str);\n if (bi >= MIN_SAFE && bi <= MAX_SAFE) {\n return Number(str);\n }\n if (bi >= MIN_INT64 && bi <= MAX_INT64) {\n return bi;\n }\n return value.toNumber();\n }\n return value.toNumber();\n }\n return value;\n}\n\nconst JSONbig = {\n parse: (text: string) => JSONbigParser.parse(text, reviver),\n stringify: JSONbigSerializer.stringify\n};\n\ntype Payload = {\n [key: string]: any;\n}\n\ntype UploadProgress = {\n $id: string;\n progress: number;\n sizeUploaded: number;\n chunksTotal: number;\n chunksUploaded: number;\n}\n\ntype Headers = {\n [key: string]: string;\n}\n\nclass RevenexxException extends Error {\n code: number;\n response: string;\n type: string;\n constructor(message: string, code: number = 0, type: string = '', response: string = '') {\n super(message);\n this.name = 'RevenexxException';\n this.message = message;\n this.code = code;\n this.type = type;\n this.response = response;\n }\n}\n\nfunction getUserAgent() {\n let ua = 'RevenexxNodeJSSDK/0.1.0';\n\n // `process` is a global in Node.js, but not fully available in all runtimes.\n const platform: string[] = [];\n if (typeof process !== 'undefined') {\n if (typeof process.platform === 'string') platform.push(process.platform);\n if (typeof process.arch === 'string') platform.push(process.arch);\n } \n if (platform.length > 0) {\n ua += ` (${platform.join('; ')})`;\n }\n\n // `navigator.userAgent` is available in Node.js 21 and later.\n // It's also part of the WinterCG spec, so many edge runtimes provide it.\n // https://common-min-api.proposal.wintercg.org/#requirements-for-navigatoruseragent\n // @ts-ignore\n if (typeof navigator !== 'undefined' && typeof navigator.userAgent === 'string') {\n // @ts-ignore\n ua += ` ${navigator.userAgent}`;\n\n // @ts-ignore\n } else if (typeof globalThis.EdgeRuntime === 'string') {\n ua += ` EdgeRuntime`;\n\n // Older Node.js versions don't have `navigator.userAgent`, so we have to use `process.version`.\n } else if (typeof process !== 'undefined' && typeof process.version === 'string') {\n ua += ` Node.js/${process.version}`;\n }\n\n return ua;\n}\n\nclass Client {\n\n config = {\n endpoint: 'https://api.revenexx.com',\n selfSigned: false,\n apikeyauth: '',\n bearerauth: '',\n };\n headers: Headers = {\n 'x-sdk-name': 'Revenexx Node',\n 'x-sdk-platform': '',\n 'x-sdk-language': 'nodejs',\n 'x-sdk-version': '0.1.0',\n 'user-agent' : getUserAgent(),\n };\n\n /**\n * Set Endpoint\n *\n * Your project endpoint\n *\n * @param {string} endpoint\n *\n * @returns {this}\n */\n setEndpoint(endpoint: string): this {\n if (!endpoint || typeof endpoint !== 'string') {\n throw new RevenexxException('Endpoint must be a valid string');\n }\n\n if (!endpoint.startsWith('http://') && !endpoint.startsWith('https://')) {\n throw new RevenexxException('Invalid endpoint URL: ' + endpoint);\n }\n\n this.config.endpoint = endpoint;\n return this;\n }\n\n /**\n * Set self-signed\n *\n * @param {boolean} selfSigned\n *\n * @returns {this}\n */\n setSelfSigned(selfSigned: boolean): this {\n // @ts-ignore\n if (typeof globalThis.EdgeRuntime !== 'undefined') {\n console.warn('setSelfSigned is not supported in edge runtimes.');\n }\n\n this.config.selfSigned = selfSigned;\n\n return this;\n }\n\n /**\n * Add header\n *\n * @param {string} header\n * @param {string} value\n *\n * @returns {this}\n */\n addHeader(header: string, value: string): this {\n this.headers[header.toLowerCase()] = value;\n\n return this;\n }\n\n /**\n * Set ApiKeyAuth\n *\n * A gateway-managed scoped API key (rvxk_…).\n *\n * @param value string\n *\n * @return {this}\n */\n setApiKeyAuth(value: string): this {\n this.headers['X-Revenexx-Api-Key'] = value;\n this.config.apikeyauth = value;\n return this;\n }\n /**\n * Set BearerAuth\n *\n * A Zitadel-issued JWT (Cockpit / interactive callers).\n *\n * @param value string\n *\n * @return {this}\n */\n setBearerAuth(value: string): this {\n this.headers['Authorization'] = value.toLowerCase().startsWith('bearer ') ? value : `Bearer ${value}`;\n this.config.bearerauth = value;\n return this;\n }\n\n /**\n * Set Tenant\n *\n * The tenant slug your requests are scoped to, sent as the\n * X-Revenexx-Tenant header on every request.\n *\n * @param value string\n *\n * @return {this}\n */\n setTenant(value: string): this {\n this.headers['X-Revenexx-Tenant'] = value;\n return this;\n }\n\n /**\n * Set Market\n *\n * The market slug to scope requests to, sent as the X-Revenexx-Market\n * header. Optional — omit it to see only global rows.\n *\n * @param value string\n *\n * @return {this}\n */\n setMarket(value: string): this {\n this.headers['X-Revenexx-Market'] = value;\n return this;\n }\n\n prepareRequest(method: string, url: URL, headers: Headers = {}, params: Payload = {}): { uri: string, options: RequestInit } {\n method = method.toUpperCase();\n\n headers = Object.assign({}, this.headers, headers);\n\n let options: RequestInit = {\n method,\n headers,\n ...createAgent(this.config.endpoint, { rejectUnauthorized: !this.config.selfSigned }),\n };\n\n if (method === 'GET') {\n for (const [key, value] of Object.entries(Client.flatten(params))) {\n url.searchParams.append(key, value);\n }\n } else {\n switch (headers['content-type']) {\n case 'application/json':\n options.body = JSONbig.stringify(params);\n break;\n\n case 'multipart/form-data':\n const formData = new FormData();\n\n for (const [key, value] of Object.entries(params)) {\n if (value instanceof File) {\n formData.append(key, value, value.name);\n } else if (Array.isArray(value)) {\n for (const nestedValue of value) {\n formData.append(`${key}[]`, nestedValue);\n }\n } else {\n formData.append(key, value);\n }\n }\n\n options.body = formData;\n delete headers['content-type'];\n break;\n }\n }\n\n return { uri: url.toString(), options };\n }\n\n async chunkedUpload(method: string, url: URL, headers: Headers = {}, originalPayload: Payload = {}, onProgress: (progress: UploadProgress) => void) {\n const [fileParam, file] = Object.entries(originalPayload).find(([_, value]) => value instanceof File) ?? [];\n\n if (!file || !fileParam) {\n throw new Error('File not found in payload');\n }\n\n // The API takes one multipart body per upload. It has no chunked or\n // resumable protocol — no content-range, no upload id, no per-chunk\n // endpoint — so the whole file always goes in a single request.\n const response = await this.call(method, url, headers, originalPayload);\n\n if (onProgress && typeof onProgress === 'function') {\n onProgress({\n $id: response?.$id,\n progress: 100,\n sizeUploaded: file.size,\n chunksTotal: 1,\n chunksUploaded: 1\n });\n }\n\n return response;\n }\n\n async ping(): Promise<string> {\n return this.call('GET', new URL(this.config.endpoint + '/ping'));\n }\n\n async redirect(method: string, url: URL, headers: Headers = {}, params: Payload = {}): Promise<string> {\n const { uri, options } = this.prepareRequest(method, url, headers, params);\n \n const response = await fetch(uri, {\n ...options,\n redirect: 'manual'\n });\n\n if (response.status !== 301 && response.status !== 302) {\n throw new RevenexxException('Invalid redirect', response.status);\n }\n\n return response.headers.get('location') || '';\n }\n\n async call(method: string, url: URL, headers: Headers = {}, params: Payload = {}, responseType = 'json'): Promise<any> {\n const { uri, options } = this.prepareRequest(method, url, headers, params);\n\n let data: any = null;\n\n const response = await fetch(uri, options);\n\n const warnings = response.headers.get('x-revenexx-warning');\n if (warnings) {\n warnings.split(';').forEach((warning: string) => console.warn('Warning: ' + warning));\n }\n\n if (response.headers.get('content-type')?.includes('application/json')) {\n data = JSONbig.parse(await response.text());\n } else if (responseType === 'arrayBuffer') {\n data = await response.arrayBuffer();\n } else {\n data = {\n message: await response.text()\n };\n }\n\n if (400 <= response.status) {\n let responseText = '';\n if (response.headers.get('content-type')?.includes('application/json') || responseType === 'arrayBuffer') {\n responseText = JSONbig.stringify(data);\n } else {\n responseText = data?.message;\n }\n throw new RevenexxException(data?.message, response.status, data?.type, responseText);\n }\n\n if (data && typeof data === 'object') {\n data.toString = () => JSONbig.stringify(data);\n }\n\n return data;\n }\n\n static flatten(data: Payload, prefix = ''): Payload {\n let output: Payload = {};\n\n for (const [key, value] of Object.entries(data)) {\n let finalKey = prefix ? prefix + '[' + key +']' : key;\n if (Array.isArray(value)) {\n output = { ...output, ...Client.flatten(value, finalKey) };\n } else {\n output[finalKey] = value;\n }\n }\n\n return output;\n }\n\n /**\n * Get information about this SDK and the generator that produced it.\n *\n * Contributed by the 'about' plugin.\n */\n getAbout(): Record<string, string> {\n return {\n name: 'Revenexx Node',\n version: '0.1.0',\n language: 'nodejs',\n generator: 'revenexx/sdk-generator',\n generatorUrl: 'https://github.com/revenexx/sdk-generator',\n };\n }\n}\n\nexport { Client, RevenexxException };\nexport { Query } from './query';\nexport type { Models, Payload, UploadProgress };\nexport type { QueryTypes, QueryTypesList } from './query';\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/client.ts"],"names":[],"mappings":"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","sourcesContent":["import { Models } from './models';\nimport JSONbigModule from 'json-bigint';\nconst JSONbigParser = JSONbigModule({ storeAsString: false });\nconst JSONbigSerializer = JSONbigModule({ useNativeBigInt: true });\n\nconst MAX_SAFE = BigInt(Number.MAX_SAFE_INTEGER);\nconst MIN_SAFE = BigInt(Number.MIN_SAFE_INTEGER);\nconst MAX_INT64 = BigInt('9223372036854775807');\nconst MIN_INT64 = BigInt('-9223372036854775808');\n\nfunction isBigNumber(value: any): boolean {\n return value !== null\n && typeof value === 'object'\n && value._isBigNumber === true\n && typeof value.isInteger === 'function'\n && typeof value.toFixed === 'function'\n && typeof value.toNumber === 'function';\n}\n\nfunction reviver(_key: string, value: any): any {\n if (isBigNumber(value)) {\n if (value.isInteger()) {\n const str = value.toFixed();\n const bi = BigInt(str);\n if (bi >= MIN_SAFE && bi <= MAX_SAFE) {\n return Number(str);\n }\n if (bi >= MIN_INT64 && bi <= MAX_INT64) {\n return bi;\n }\n return value.toNumber();\n }\n return value.toNumber();\n }\n return value;\n}\n\nconst JSONbig = {\n parse: (text: string) => JSONbigParser.parse(text, reviver),\n stringify: JSONbigSerializer.stringify\n};\n\ntype Payload = {\n [key: string]: any;\n}\n\ntype UploadProgress = {\n $id: string;\n progress: number;\n sizeUploaded: number;\n chunksTotal: number;\n chunksUploaded: number;\n}\n\ntype Headers = {\n [key: string]: string;\n}\n\nclass RevenexxException extends Error {\n code: number;\n response: string;\n type: string;\n constructor(message: string, code: number = 0, type: string = '', response: string = '') {\n super(message);\n this.name = 'RevenexxException';\n this.message = message;\n this.code = code;\n this.type = type;\n this.response = response;\n }\n}\n\nlet selfSignedDispatcher: Promise<any> | null = null;\n\n/**\n * Build a dispatcher that skips TLS verification, for `setSelfSigned(true)`.\n *\n * The platform `fetch` has no `rejectUnauthorized` switch of its own, so the\n * only way to reach an endpoint with a self-signed certificate is to hand it\n * an undici dispatcher. `undici` is loaded lazily and cached: a client that\n * never calls `setSelfSigned(true)` never pays for it, and runtimes without\n * Node's networking internals keep working as long as they stay off this path.\n */\nfunction getSelfSignedDispatcher(): Promise<any> {\n if (selfSignedDispatcher === null) {\n selfSignedDispatcher = import('undici').then(\n ({ Agent }) => new Agent({ connect: { rejectUnauthorized: false } })\n );\n }\n\n return selfSignedDispatcher;\n}\n\nfunction getUserAgent() {\n let ua = 'RevenexxNodeJSSDK/0.1.1';\n\n // `process` is a global in Node.js, but not fully available in all runtimes.\n const platform: string[] = [];\n if (typeof process !== 'undefined') {\n if (typeof process.platform === 'string') platform.push(process.platform);\n if (typeof process.arch === 'string') platform.push(process.arch);\n } \n if (platform.length > 0) {\n ua += ` (${platform.join('; ')})`;\n }\n\n // `navigator.userAgent` is available in Node.js 21 and later.\n // It's also part of the WinterCG spec, so many edge runtimes provide it.\n // https://common-min-api.proposal.wintercg.org/#requirements-for-navigatoruseragent\n // @ts-ignore\n if (typeof navigator !== 'undefined' && typeof navigator.userAgent === 'string') {\n // @ts-ignore\n ua += ` ${navigator.userAgent}`;\n\n // @ts-ignore\n } else if (typeof globalThis.EdgeRuntime === 'string') {\n ua += ` EdgeRuntime`;\n\n // Older Node.js versions don't have `navigator.userAgent`, so we have to use `process.version`.\n } else if (typeof process !== 'undefined' && typeof process.version === 'string') {\n ua += ` Node.js/${process.version}`;\n }\n\n return ua;\n}\n\nclass Client {\n\n config = {\n endpoint: 'https://api.revenexx.com',\n selfSigned: false,\n apikeyauth: '',\n bearerauth: '',\n };\n headers: Headers = {\n 'x-sdk-name': 'Revenexx Node',\n 'x-sdk-platform': '',\n 'x-sdk-language': 'nodejs',\n 'x-sdk-version': '0.1.1',\n 'user-agent' : getUserAgent(),\n };\n\n /**\n * Set Endpoint\n *\n * Your project endpoint\n *\n * @param {string} endpoint\n *\n * @returns {this}\n */\n setEndpoint(endpoint: string): this {\n if (!endpoint || typeof endpoint !== 'string') {\n throw new RevenexxException('Endpoint must be a valid string');\n }\n\n if (!endpoint.startsWith('http://') && !endpoint.startsWith('https://')) {\n throw new RevenexxException('Invalid endpoint URL: ' + endpoint);\n }\n\n this.config.endpoint = endpoint;\n return this;\n }\n\n /**\n * Set self-signed\n *\n * @param {boolean} selfSigned\n *\n * @returns {this}\n */\n setSelfSigned(selfSigned: boolean): this {\n // @ts-ignore\n if (typeof globalThis.EdgeRuntime !== 'undefined') {\n console.warn('setSelfSigned is not supported in edge runtimes.');\n }\n\n this.config.selfSigned = selfSigned;\n\n return this;\n }\n\n /**\n * Add header\n *\n * @param {string} header\n * @param {string} value\n *\n * @returns {this}\n */\n addHeader(header: string, value: string): this {\n this.headers[header.toLowerCase()] = value;\n\n return this;\n }\n\n /**\n * Set ApiKeyAuth\n *\n * A gateway-managed scoped API key (rvxk_…).\n *\n * @param value string\n *\n * @return {this}\n */\n setApiKeyAuth(value: string): this {\n this.headers['X-Revenexx-Api-Key'] = value;\n this.config.apikeyauth = value;\n return this;\n }\n /**\n * Set BearerAuth\n *\n * A Zitadel-issued JWT (Cockpit / interactive callers).\n *\n * @param value string\n *\n * @return {this}\n */\n setBearerAuth(value: string): this {\n this.headers['Authorization'] = value.toLowerCase().startsWith('bearer ') ? value : `Bearer ${value}`;\n this.config.bearerauth = value;\n return this;\n }\n\n /**\n * Set Tenant\n *\n * The tenant slug your requests are scoped to, sent as the\n * X-Revenexx-Tenant header on every request.\n *\n * @param value string\n *\n * @return {this}\n */\n setTenant(value: string): this {\n this.headers['X-Revenexx-Tenant'] = value;\n return this;\n }\n\n /**\n * Set Market\n *\n * The market slug to scope requests to, sent as the X-Revenexx-Market\n * header. Optional — omit it to see only global rows.\n *\n * @param value string\n *\n * @return {this}\n */\n setMarket(value: string): this {\n this.headers['X-Revenexx-Market'] = value;\n return this;\n }\n\n /**\n * Extra `fetch` options for this client's TLS settings.\n *\n * Empty unless `setSelfSigned(true)` was called, so the default path stays\n * on the platform `fetch` with certificate verification intact.\n */\n private async dispatcherOptions(): Promise<RequestInit> {\n if (!this.config.selfSigned) {\n return {};\n }\n\n return { dispatcher: await getSelfSignedDispatcher() } as RequestInit;\n }\n\n prepareRequest(method: string, url: URL, headers: Headers = {}, params: Payload = {}): { uri: string, options: RequestInit } {\n method = method.toUpperCase();\n\n headers = Object.assign({}, this.headers, headers);\n\n let options: RequestInit = {\n method,\n headers,\n };\n\n if (method === 'GET') {\n for (const [key, value] of Object.entries(Client.flatten(params))) {\n url.searchParams.append(key, value);\n }\n } else {\n switch (headers['content-type']) {\n case 'application/json':\n options.body = JSONbig.stringify(params);\n break;\n\n case 'multipart/form-data':\n const formData = new FormData();\n\n for (const [key, value] of Object.entries(params)) {\n if (value instanceof File) {\n formData.append(key, value, value.name);\n } else if (Array.isArray(value)) {\n for (const nestedValue of value) {\n formData.append(`${key}[]`, nestedValue);\n }\n } else {\n formData.append(key, value);\n }\n }\n\n options.body = formData;\n delete headers['content-type'];\n break;\n }\n }\n\n return { uri: url.toString(), options };\n }\n\n async chunkedUpload(method: string, url: URL, headers: Headers = {}, originalPayload: Payload = {}, onProgress: (progress: UploadProgress) => void) {\n const [fileParam, file] = Object.entries(originalPayload).find(([_, value]) => value instanceof File) ?? [];\n\n if (!file || !fileParam) {\n throw new Error('File not found in payload');\n }\n\n // The API takes one multipart body per upload. It has no chunked or\n // resumable protocol — no content-range, no upload id, no per-chunk\n // endpoint — so the whole file always goes in a single request.\n const response = await this.call(method, url, headers, originalPayload);\n\n if (onProgress && typeof onProgress === 'function') {\n onProgress({\n $id: response?.$id,\n progress: 100,\n sizeUploaded: file.size,\n chunksTotal: 1,\n chunksUploaded: 1\n });\n }\n\n return response;\n }\n\n async ping(): Promise<string> {\n return this.call('GET', new URL(this.config.endpoint + '/ping'));\n }\n\n async redirect(method: string, url: URL, headers: Headers = {}, params: Payload = {}): Promise<string> {\n const { uri, options } = this.prepareRequest(method, url, headers, params);\n\n const response = await fetch(uri, {\n ...options,\n ...(await this.dispatcherOptions()),\n redirect: 'manual'\n });\n\n if (response.status !== 301 && response.status !== 302) {\n throw new RevenexxException('Invalid redirect', response.status);\n }\n\n return response.headers.get('location') || '';\n }\n\n async call(method: string, url: URL, headers: Headers = {}, params: Payload = {}, responseType = 'json'): Promise<any> {\n const { uri, options } = this.prepareRequest(method, url, headers, params);\n\n let data: any = null;\n\n const response = await fetch(uri, {\n ...options,\n ...(await this.dispatcherOptions())\n });\n\n const warnings = response.headers.get('x-revenexx-warning');\n if (warnings) {\n warnings.split(';').forEach((warning: string) => console.warn('Warning: ' + warning));\n }\n\n if (response.headers.get('content-type')?.includes('application/json')) {\n data = JSONbig.parse(await response.text());\n } else if (responseType === 'arrayBuffer') {\n data = await response.arrayBuffer();\n } else {\n data = {\n message: await response.text()\n };\n }\n\n if (400 <= response.status) {\n let responseText = '';\n if (response.headers.get('content-type')?.includes('application/json') || responseType === 'arrayBuffer') {\n responseText = JSONbig.stringify(data);\n } else {\n responseText = data?.message;\n }\n throw new RevenexxException(data?.message, response.status, data?.type, responseText);\n }\n\n if (data && typeof data === 'object') {\n data.toString = () => JSONbig.stringify(data);\n }\n\n return data;\n }\n\n static flatten(data: Payload, prefix = ''): Payload {\n let output: Payload = {};\n\n for (const [key, value] of Object.entries(data)) {\n let finalKey = prefix ? prefix + '[' + key +']' : key;\n if (Array.isArray(value)) {\n output = { ...output, ...Client.flatten(value, finalKey) };\n } else {\n output[finalKey] = value;\n }\n }\n\n return output;\n }\n\n /**\n * Get information about this SDK and the generator that produced it.\n *\n * Contributed by the 'about' plugin.\n */\n getAbout(): Record<string, string> {\n return {\n name: 'Revenexx Node',\n version: '0.1.1',\n language: 'nodejs',\n generator: 'revenexx/sdk-generator',\n generatorUrl: 'https://github.com/revenexx/sdk-generator',\n };\n }\n}\n\nexport { Client, RevenexxException };\nexport { Query } from './query';\nexport type { Models, Payload, UploadProgress };\nexport type { QueryTypes, QueryTypesList } from './query';\n"]}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var ApprovalRuleApproverType = /* @__PURE__ */ ((ApprovalRuleApproverType2) => {
|
|
4
|
+
ApprovalRuleApproverType2["Contact"] = "contact";
|
|
5
|
+
ApprovalRuleApproverType2["Role"] = "role";
|
|
6
|
+
ApprovalRuleApproverType2["Default"] = "default";
|
|
7
|
+
return ApprovalRuleApproverType2;
|
|
8
|
+
})(ApprovalRuleApproverType || {});
|
|
9
|
+
|
|
10
|
+
exports.ApprovalRuleApproverType = ApprovalRuleApproverType;
|
|
11
|
+
//# sourceMappingURL=out.js.map
|
|
12
|
+
//# sourceMappingURL=approval-rule-approver-type.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/enums/approval-rule-approver-type.ts"],"names":["ApprovalRuleApproverType"],"mappings":"AAAO,IAAK,2BAAL,kBAAKA,8BAAL;AACH,EAAAA,0BAAA,aAAU;AACV,EAAAA,0BAAA,UAAO;AACP,EAAAA,0BAAA,aAAU;AAHF,SAAAA;AAAA,GAAA","sourcesContent":["export enum ApprovalRuleApproverType {\n Contact = 'contact',\n Role = 'role',\n Default = 'default',\n}"]}
|