@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/dist/operator.js
CHANGED
|
@@ -12,7 +12,7 @@ var Condition = /* @__PURE__ */ ((Condition2) => {
|
|
|
12
12
|
Condition2["IsNotNull"] = "isNotNull";
|
|
13
13
|
return Condition2;
|
|
14
14
|
})(Condition || {});
|
|
15
|
-
|
|
15
|
+
class Operator {
|
|
16
16
|
/**
|
|
17
17
|
* Constructor for Operator class.
|
|
18
18
|
*
|
|
@@ -40,227 +40,266 @@ const _Operator = class _Operator {
|
|
|
40
40
|
values: this.values
|
|
41
41
|
});
|
|
42
42
|
}
|
|
43
|
-
|
|
44
|
-
/**
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
43
|
+
static {
|
|
44
|
+
/**
|
|
45
|
+
* Increment a numeric attribute by a specified value.
|
|
46
|
+
*
|
|
47
|
+
* @param {number} value
|
|
48
|
+
* @param {number} max
|
|
49
|
+
* @returns {string}
|
|
50
|
+
*/
|
|
51
|
+
this.increment = (value = 1, max) => {
|
|
52
|
+
if (isNaN(value) || !isFinite(value)) {
|
|
53
|
+
throw new Error("Value cannot be NaN or Infinity");
|
|
54
|
+
}
|
|
55
|
+
if (max !== void 0 && (isNaN(max) || !isFinite(max))) {
|
|
56
|
+
throw new Error("Max cannot be NaN or Infinity");
|
|
57
|
+
}
|
|
58
|
+
const values = [value];
|
|
59
|
+
if (max !== void 0) {
|
|
60
|
+
values.push(max);
|
|
61
|
+
}
|
|
62
|
+
return new Operator("increment", values).toString();
|
|
63
|
+
};
|
|
64
|
+
}
|
|
65
|
+
static {
|
|
66
|
+
/**
|
|
67
|
+
* Decrement a numeric attribute by a specified value.
|
|
68
|
+
*
|
|
69
|
+
* @param {number} value
|
|
70
|
+
* @param {number} min
|
|
71
|
+
* @returns {string}
|
|
72
|
+
*/
|
|
73
|
+
this.decrement = (value = 1, min) => {
|
|
74
|
+
if (isNaN(value) || !isFinite(value)) {
|
|
75
|
+
throw new Error("Value cannot be NaN or Infinity");
|
|
76
|
+
}
|
|
77
|
+
if (min !== void 0 && (isNaN(min) || !isFinite(min))) {
|
|
78
|
+
throw new Error("Min cannot be NaN or Infinity");
|
|
79
|
+
}
|
|
80
|
+
const values = [value];
|
|
81
|
+
if (min !== void 0) {
|
|
82
|
+
values.push(min);
|
|
83
|
+
}
|
|
84
|
+
return new Operator("decrement", values).toString();
|
|
85
|
+
};
|
|
86
|
+
}
|
|
87
|
+
static {
|
|
88
|
+
/**
|
|
89
|
+
* Multiply a numeric attribute by a specified factor.
|
|
90
|
+
*
|
|
91
|
+
* @param {number} factor
|
|
92
|
+
* @param {number} max
|
|
93
|
+
* @returns {string}
|
|
94
|
+
*/
|
|
95
|
+
this.multiply = (factor, max) => {
|
|
96
|
+
if (isNaN(factor) || !isFinite(factor)) {
|
|
97
|
+
throw new Error("Factor cannot be NaN or Infinity");
|
|
98
|
+
}
|
|
99
|
+
if (max !== void 0 && (isNaN(max) || !isFinite(max))) {
|
|
100
|
+
throw new Error("Max cannot be NaN or Infinity");
|
|
101
|
+
}
|
|
102
|
+
const values = [factor];
|
|
103
|
+
if (max !== void 0) {
|
|
104
|
+
values.push(max);
|
|
105
|
+
}
|
|
106
|
+
return new Operator("multiply", values).toString();
|
|
107
|
+
};
|
|
54
108
|
}
|
|
55
|
-
|
|
56
|
-
|
|
109
|
+
static {
|
|
110
|
+
/**
|
|
111
|
+
* Divide a numeric attribute by a specified divisor.
|
|
112
|
+
*
|
|
113
|
+
* @param {number} divisor
|
|
114
|
+
* @param {number} min
|
|
115
|
+
* @returns {string}
|
|
116
|
+
*/
|
|
117
|
+
this.divide = (divisor, min) => {
|
|
118
|
+
if (isNaN(divisor) || !isFinite(divisor)) {
|
|
119
|
+
throw new Error("Divisor cannot be NaN or Infinity");
|
|
120
|
+
}
|
|
121
|
+
if (min !== void 0 && (isNaN(min) || !isFinite(min))) {
|
|
122
|
+
throw new Error("Min cannot be NaN or Infinity");
|
|
123
|
+
}
|
|
124
|
+
if (divisor === 0) {
|
|
125
|
+
throw new Error("Divisor cannot be zero");
|
|
126
|
+
}
|
|
127
|
+
const values = [divisor];
|
|
128
|
+
if (min !== void 0) {
|
|
129
|
+
values.push(min);
|
|
130
|
+
}
|
|
131
|
+
return new Operator("divide", values).toString();
|
|
132
|
+
};
|
|
57
133
|
}
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
134
|
+
static {
|
|
135
|
+
/**
|
|
136
|
+
* Apply modulo operation on a numeric attribute.
|
|
137
|
+
*
|
|
138
|
+
* @param {number} divisor
|
|
139
|
+
* @returns {string}
|
|
140
|
+
*/
|
|
141
|
+
this.modulo = (divisor) => {
|
|
142
|
+
if (isNaN(divisor) || !isFinite(divisor)) {
|
|
143
|
+
throw new Error("Divisor cannot be NaN or Infinity");
|
|
144
|
+
}
|
|
145
|
+
if (divisor === 0) {
|
|
146
|
+
throw new Error("Divisor cannot be zero");
|
|
147
|
+
}
|
|
148
|
+
return new Operator("modulo", [divisor]).toString();
|
|
149
|
+
};
|
|
61
150
|
}
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
151
|
+
static {
|
|
152
|
+
/**
|
|
153
|
+
* Raise a numeric attribute to a specified power.
|
|
154
|
+
*
|
|
155
|
+
* @param {number} exponent
|
|
156
|
+
* @param {number} max
|
|
157
|
+
* @returns {string}
|
|
158
|
+
*/
|
|
159
|
+
this.power = (exponent, max) => {
|
|
160
|
+
if (isNaN(exponent) || !isFinite(exponent)) {
|
|
161
|
+
throw new Error("Exponent cannot be NaN or Infinity");
|
|
162
|
+
}
|
|
163
|
+
if (max !== void 0 && (isNaN(max) || !isFinite(max))) {
|
|
164
|
+
throw new Error("Max cannot be NaN or Infinity");
|
|
165
|
+
}
|
|
166
|
+
const values = [exponent];
|
|
167
|
+
if (max !== void 0) {
|
|
168
|
+
values.push(max);
|
|
169
|
+
}
|
|
170
|
+
return new Operator("power", values).toString();
|
|
171
|
+
};
|
|
74
172
|
}
|
|
75
|
-
|
|
76
|
-
|
|
173
|
+
static {
|
|
174
|
+
/**
|
|
175
|
+
* Append values to an array attribute.
|
|
176
|
+
*
|
|
177
|
+
* @param {any[]} values
|
|
178
|
+
* @returns {string}
|
|
179
|
+
*/
|
|
180
|
+
this.arrayAppend = (values) => new Operator("arrayAppend", values).toString();
|
|
77
181
|
}
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
182
|
+
static {
|
|
183
|
+
/**
|
|
184
|
+
* Prepend values to an array attribute.
|
|
185
|
+
*
|
|
186
|
+
* @param {any[]} values
|
|
187
|
+
* @returns {string}
|
|
188
|
+
*/
|
|
189
|
+
this.arrayPrepend = (values) => new Operator("arrayPrepend", values).toString();
|
|
81
190
|
}
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
_Operator.multiply = (factor, max) => {
|
|
92
|
-
if (isNaN(factor) || !isFinite(factor)) {
|
|
93
|
-
throw new Error("Factor cannot be NaN or Infinity");
|
|
191
|
+
static {
|
|
192
|
+
/**
|
|
193
|
+
* Insert a value at a specific index in an array attribute.
|
|
194
|
+
*
|
|
195
|
+
* @param {number} index
|
|
196
|
+
* @param {any} value
|
|
197
|
+
* @returns {string}
|
|
198
|
+
*/
|
|
199
|
+
this.arrayInsert = (index, value) => new Operator("arrayInsert", [index, value]).toString();
|
|
94
200
|
}
|
|
95
|
-
|
|
96
|
-
|
|
201
|
+
static {
|
|
202
|
+
/**
|
|
203
|
+
* Remove a value from an array attribute.
|
|
204
|
+
*
|
|
205
|
+
* @param {any} value
|
|
206
|
+
* @returns {string}
|
|
207
|
+
*/
|
|
208
|
+
this.arrayRemove = (value) => new Operator("arrayRemove", [value]).toString();
|
|
97
209
|
}
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
210
|
+
static {
|
|
211
|
+
/**
|
|
212
|
+
* Remove duplicate values from an array attribute.
|
|
213
|
+
*
|
|
214
|
+
* @returns {string}
|
|
215
|
+
*/
|
|
216
|
+
this.arrayUnique = () => new Operator("arrayUnique", []).toString();
|
|
101
217
|
}
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
*/
|
|
111
|
-
_Operator.divide = (divisor, min) => {
|
|
112
|
-
if (isNaN(divisor) || !isFinite(divisor)) {
|
|
113
|
-
throw new Error("Divisor cannot be NaN or Infinity");
|
|
218
|
+
static {
|
|
219
|
+
/**
|
|
220
|
+
* Keep only values that exist in both the current array and the provided array.
|
|
221
|
+
*
|
|
222
|
+
* @param {any[]} values
|
|
223
|
+
* @returns {string}
|
|
224
|
+
*/
|
|
225
|
+
this.arrayIntersect = (values) => new Operator("arrayIntersect", values).toString();
|
|
114
226
|
}
|
|
115
|
-
|
|
116
|
-
|
|
227
|
+
static {
|
|
228
|
+
/**
|
|
229
|
+
* Remove values from the array that exist in the provided array.
|
|
230
|
+
*
|
|
231
|
+
* @param {any[]} values
|
|
232
|
+
* @returns {string}
|
|
233
|
+
*/
|
|
234
|
+
this.arrayDiff = (values) => new Operator("arrayDiff", values).toString();
|
|
117
235
|
}
|
|
118
|
-
|
|
119
|
-
|
|
236
|
+
static {
|
|
237
|
+
/**
|
|
238
|
+
* Filter array values based on a condition.
|
|
239
|
+
*
|
|
240
|
+
* @param {Condition} condition
|
|
241
|
+
* @param {any} value
|
|
242
|
+
* @returns {string}
|
|
243
|
+
*/
|
|
244
|
+
this.arrayFilter = (condition, value) => {
|
|
245
|
+
const values = [condition, value === void 0 ? null : value];
|
|
246
|
+
return new Operator("arrayFilter", values).toString();
|
|
247
|
+
};
|
|
120
248
|
}
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
249
|
+
static {
|
|
250
|
+
/**
|
|
251
|
+
* Concatenate a value to a string or array attribute.
|
|
252
|
+
*
|
|
253
|
+
* @param {any} value
|
|
254
|
+
* @returns {string}
|
|
255
|
+
*/
|
|
256
|
+
this.stringConcat = (value) => new Operator("stringConcat", [value]).toString();
|
|
124
257
|
}
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
if (isNaN(divisor) || !isFinite(divisor)) {
|
|
135
|
-
throw new Error("Divisor cannot be NaN or Infinity");
|
|
258
|
+
static {
|
|
259
|
+
/**
|
|
260
|
+
* Replace occurrences of a search string with a replacement string.
|
|
261
|
+
*
|
|
262
|
+
* @param {string} search
|
|
263
|
+
* @param {string} replace
|
|
264
|
+
* @returns {string}
|
|
265
|
+
*/
|
|
266
|
+
this.stringReplace = (search, replace) => new Operator("stringReplace", [search, replace]).toString();
|
|
136
267
|
}
|
|
137
|
-
|
|
138
|
-
|
|
268
|
+
static {
|
|
269
|
+
/**
|
|
270
|
+
* Toggle a boolean attribute.
|
|
271
|
+
*
|
|
272
|
+
* @returns {string}
|
|
273
|
+
*/
|
|
274
|
+
this.toggle = () => new Operator("toggle", []).toString();
|
|
139
275
|
}
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
*/
|
|
149
|
-
_Operator.power = (exponent, max) => {
|
|
150
|
-
if (isNaN(exponent) || !isFinite(exponent)) {
|
|
151
|
-
throw new Error("Exponent cannot be NaN or Infinity");
|
|
276
|
+
static {
|
|
277
|
+
/**
|
|
278
|
+
* Add days to a date attribute.
|
|
279
|
+
*
|
|
280
|
+
* @param {number} days
|
|
281
|
+
* @returns {string}
|
|
282
|
+
*/
|
|
283
|
+
this.dateAddDays = (days) => new Operator("dateAddDays", [days]).toString();
|
|
152
284
|
}
|
|
153
|
-
|
|
154
|
-
|
|
285
|
+
static {
|
|
286
|
+
/**
|
|
287
|
+
* Subtract days from a date attribute.
|
|
288
|
+
*
|
|
289
|
+
* @param {number} days
|
|
290
|
+
* @returns {string}
|
|
291
|
+
*/
|
|
292
|
+
this.dateSubDays = (days) => new Operator("dateSubDays", [days]).toString();
|
|
155
293
|
}
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
294
|
+
static {
|
|
295
|
+
/**
|
|
296
|
+
* Set a date attribute to the current date and time.
|
|
297
|
+
*
|
|
298
|
+
* @returns {string}
|
|
299
|
+
*/
|
|
300
|
+
this.dateSetNow = () => new Operator("dateSetNow", []).toString();
|
|
159
301
|
}
|
|
160
|
-
|
|
161
|
-
};
|
|
162
|
-
/**
|
|
163
|
-
* Append values to an array attribute.
|
|
164
|
-
*
|
|
165
|
-
* @param {any[]} values
|
|
166
|
-
* @returns {string}
|
|
167
|
-
*/
|
|
168
|
-
_Operator.arrayAppend = (values) => new _Operator("arrayAppend", values).toString();
|
|
169
|
-
/**
|
|
170
|
-
* Prepend values to an array attribute.
|
|
171
|
-
*
|
|
172
|
-
* @param {any[]} values
|
|
173
|
-
* @returns {string}
|
|
174
|
-
*/
|
|
175
|
-
_Operator.arrayPrepend = (values) => new _Operator("arrayPrepend", values).toString();
|
|
176
|
-
/**
|
|
177
|
-
* Insert a value at a specific index in an array attribute.
|
|
178
|
-
*
|
|
179
|
-
* @param {number} index
|
|
180
|
-
* @param {any} value
|
|
181
|
-
* @returns {string}
|
|
182
|
-
*/
|
|
183
|
-
_Operator.arrayInsert = (index, value) => new _Operator("arrayInsert", [index, value]).toString();
|
|
184
|
-
/**
|
|
185
|
-
* Remove a value from an array attribute.
|
|
186
|
-
*
|
|
187
|
-
* @param {any} value
|
|
188
|
-
* @returns {string}
|
|
189
|
-
*/
|
|
190
|
-
_Operator.arrayRemove = (value) => new _Operator("arrayRemove", [value]).toString();
|
|
191
|
-
/**
|
|
192
|
-
* Remove duplicate values from an array attribute.
|
|
193
|
-
*
|
|
194
|
-
* @returns {string}
|
|
195
|
-
*/
|
|
196
|
-
_Operator.arrayUnique = () => new _Operator("arrayUnique", []).toString();
|
|
197
|
-
/**
|
|
198
|
-
* Keep only values that exist in both the current array and the provided array.
|
|
199
|
-
*
|
|
200
|
-
* @param {any[]} values
|
|
201
|
-
* @returns {string}
|
|
202
|
-
*/
|
|
203
|
-
_Operator.arrayIntersect = (values) => new _Operator("arrayIntersect", values).toString();
|
|
204
|
-
/**
|
|
205
|
-
* Remove values from the array that exist in the provided array.
|
|
206
|
-
*
|
|
207
|
-
* @param {any[]} values
|
|
208
|
-
* @returns {string}
|
|
209
|
-
*/
|
|
210
|
-
_Operator.arrayDiff = (values) => new _Operator("arrayDiff", values).toString();
|
|
211
|
-
/**
|
|
212
|
-
* Filter array values based on a condition.
|
|
213
|
-
*
|
|
214
|
-
* @param {Condition} condition
|
|
215
|
-
* @param {any} value
|
|
216
|
-
* @returns {string}
|
|
217
|
-
*/
|
|
218
|
-
_Operator.arrayFilter = (condition, value) => {
|
|
219
|
-
const values = [condition, value === void 0 ? null : value];
|
|
220
|
-
return new _Operator("arrayFilter", values).toString();
|
|
221
|
-
};
|
|
222
|
-
/**
|
|
223
|
-
* Concatenate a value to a string or array attribute.
|
|
224
|
-
*
|
|
225
|
-
* @param {any} value
|
|
226
|
-
* @returns {string}
|
|
227
|
-
*/
|
|
228
|
-
_Operator.stringConcat = (value) => new _Operator("stringConcat", [value]).toString();
|
|
229
|
-
/**
|
|
230
|
-
* Replace occurrences of a search string with a replacement string.
|
|
231
|
-
*
|
|
232
|
-
* @param {string} search
|
|
233
|
-
* @param {string} replace
|
|
234
|
-
* @returns {string}
|
|
235
|
-
*/
|
|
236
|
-
_Operator.stringReplace = (search, replace) => new _Operator("stringReplace", [search, replace]).toString();
|
|
237
|
-
/**
|
|
238
|
-
* Toggle a boolean attribute.
|
|
239
|
-
*
|
|
240
|
-
* @returns {string}
|
|
241
|
-
*/
|
|
242
|
-
_Operator.toggle = () => new _Operator("toggle", []).toString();
|
|
243
|
-
/**
|
|
244
|
-
* Add days to a date attribute.
|
|
245
|
-
*
|
|
246
|
-
* @param {number} days
|
|
247
|
-
* @returns {string}
|
|
248
|
-
*/
|
|
249
|
-
_Operator.dateAddDays = (days) => new _Operator("dateAddDays", [days]).toString();
|
|
250
|
-
/**
|
|
251
|
-
* Subtract days from a date attribute.
|
|
252
|
-
*
|
|
253
|
-
* @param {number} days
|
|
254
|
-
* @returns {string}
|
|
255
|
-
*/
|
|
256
|
-
_Operator.dateSubDays = (days) => new _Operator("dateSubDays", [days]).toString();
|
|
257
|
-
/**
|
|
258
|
-
* Set a date attribute to the current date and time.
|
|
259
|
-
*
|
|
260
|
-
* @returns {string}
|
|
261
|
-
*/
|
|
262
|
-
_Operator.dateSetNow = () => new _Operator("dateSetNow", []).toString();
|
|
263
|
-
let Operator = _Operator;
|
|
302
|
+
}
|
|
264
303
|
|
|
265
304
|
exports.Condition = Condition;
|
|
266
305
|
exports.Operator = Operator;
|
package/dist/operator.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/operator.ts"],"names":["Condition"],"mappings":"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","sourcesContent":["type OperatorValuesSingle = string | number | boolean;\nexport type OperatorValuesList = string[] | number[] | boolean[] | any[];\nexport type OperatorValues = OperatorValuesSingle | OperatorValuesList;\n\nexport enum Condition {\n Equal = \"equal\",\n NotEqual = \"notEqual\",\n GreaterThan = \"greaterThan\",\n GreaterThanEqual = \"greaterThanEqual\",\n LessThan = \"lessThan\",\n LessThanEqual = \"lessThanEqual\",\n Contains = \"contains\",\n IsNull = \"isNull\",\n IsNotNull = \"isNotNull\",\n}\n\n/**\n * Helper class to generate operator strings for atomic operations.\n */\nexport class Operator {\n method: string;\n values: OperatorValuesList | undefined;\n\n /**\n * Constructor for Operator class.\n *\n * @param {string} method\n * @param {OperatorValues} values\n */\n constructor(\n method: string,\n values?: OperatorValues\n ) {\n this.method = method;\n\n if (values !== undefined) {\n if (Array.isArray(values)) {\n this.values = values;\n } else {\n this.values = [values] as OperatorValuesList;\n }\n }\n }\n\n /**\n * Convert the operator object to a JSON string.\n *\n * @returns {string}\n */\n toString(): string {\n return JSON.stringify({\n method: this.method,\n values: this.values,\n });\n }\n\n /**\n * Increment a numeric attribute by a specified value.\n *\n * @param {number} value\n * @param {number} max\n * @returns {string}\n */\n static increment = (value: number = 1, max?: number): string => {\n if (isNaN(value) || !isFinite(value)) {\n throw new Error(\"Value cannot be NaN or Infinity\");\n }\n if (max !== undefined && (isNaN(max) || !isFinite(max))) {\n throw new Error(\"Max cannot be NaN or Infinity\");\n }\n const values: any[] = [value];\n if (max !== undefined) {\n values.push(max);\n }\n return new Operator(\"increment\", values).toString();\n };\n\n /**\n * Decrement a numeric attribute by a specified value.\n *\n * @param {number} value\n * @param {number} min\n * @returns {string}\n */\n static decrement = (value: number = 1, min?: number): string => {\n if (isNaN(value) || !isFinite(value)) {\n throw new Error(\"Value cannot be NaN or Infinity\");\n }\n if (min !== undefined && (isNaN(min) || !isFinite(min))) {\n throw new Error(\"Min cannot be NaN or Infinity\");\n }\n const values: any[] = [value];\n if (min !== undefined) {\n values.push(min);\n }\n return new Operator(\"decrement\", values).toString();\n };\n\n /**\n * Multiply a numeric attribute by a specified factor.\n *\n * @param {number} factor\n * @param {number} max\n * @returns {string}\n */\n static multiply = (factor: number, max?: number): string => {\n if (isNaN(factor) || !isFinite(factor)) {\n throw new Error(\"Factor cannot be NaN or Infinity\");\n }\n if (max !== undefined && (isNaN(max) || !isFinite(max))) {\n throw new Error(\"Max cannot be NaN or Infinity\");\n }\n const values: any[] = [factor];\n if (max !== undefined) {\n values.push(max);\n }\n return new Operator(\"multiply\", values).toString();\n };\n\n /**\n * Divide a numeric attribute by a specified divisor.\n *\n * @param {number} divisor\n * @param {number} min\n * @returns {string}\n */\n static divide = (divisor: number, min?: number): string => {\n if (isNaN(divisor) || !isFinite(divisor)) {\n throw new Error(\"Divisor cannot be NaN or Infinity\");\n }\n if (min !== undefined && (isNaN(min) || !isFinite(min))) {\n throw new Error(\"Min cannot be NaN or Infinity\");\n }\n if (divisor === 0) {\n throw new Error(\"Divisor cannot be zero\");\n }\n const values: any[] = [divisor];\n if (min !== undefined) {\n values.push(min);\n }\n return new Operator(\"divide\", values).toString();\n };\n\n /**\n * Apply modulo operation on a numeric attribute.\n *\n * @param {number} divisor\n * @returns {string}\n */\n static modulo = (divisor: number): string => {\n if (isNaN(divisor) || !isFinite(divisor)) {\n throw new Error(\"Divisor cannot be NaN or Infinity\");\n }\n if (divisor === 0) {\n throw new Error(\"Divisor cannot be zero\");\n }\n return new Operator(\"modulo\", [divisor]).toString();\n };\n\n /**\n * Raise a numeric attribute to a specified power.\n *\n * @param {number} exponent\n * @param {number} max\n * @returns {string}\n */\n static power = (exponent: number, max?: number): string => {\n if (isNaN(exponent) || !isFinite(exponent)) {\n throw new Error(\"Exponent cannot be NaN or Infinity\");\n }\n if (max !== undefined && (isNaN(max) || !isFinite(max))) {\n throw new Error(\"Max cannot be NaN or Infinity\");\n }\n const values: any[] = [exponent];\n if (max !== undefined) {\n values.push(max);\n }\n return new Operator(\"power\", values).toString();\n };\n\n /**\n * Append values to an array attribute.\n *\n * @param {any[]} values\n * @returns {string}\n */\n static arrayAppend = (values: any[]): string =>\n new Operator(\"arrayAppend\", values).toString();\n\n /**\n * Prepend values to an array attribute.\n *\n * @param {any[]} values\n * @returns {string}\n */\n static arrayPrepend = (values: any[]): string =>\n new Operator(\"arrayPrepend\", values).toString();\n\n /**\n * Insert a value at a specific index in an array attribute.\n *\n * @param {number} index\n * @param {any} value\n * @returns {string}\n */\n static arrayInsert = (index: number, value: any): string =>\n new Operator(\"arrayInsert\", [index, value]).toString();\n\n /**\n * Remove a value from an array attribute.\n *\n * @param {any} value\n * @returns {string}\n */\n static arrayRemove = (value: any): string =>\n new Operator(\"arrayRemove\", [value]).toString();\n\n /**\n * Remove duplicate values from an array attribute.\n *\n * @returns {string}\n */\n static arrayUnique = (): string =>\n new Operator(\"arrayUnique\", []).toString();\n\n /**\n * Keep only values that exist in both the current array and the provided array.\n *\n * @param {any[]} values\n * @returns {string}\n */\n static arrayIntersect = (values: any[]): string =>\n new Operator(\"arrayIntersect\", values).toString();\n\n /**\n * Remove values from the array that exist in the provided array.\n *\n * @param {any[]} values\n * @returns {string}\n */\n static arrayDiff = (values: any[]): string =>\n new Operator(\"arrayDiff\", values).toString();\n\n /**\n * Filter array values based on a condition.\n *\n * @param {Condition} condition\n * @param {any} value\n * @returns {string}\n */\n static arrayFilter = (condition: Condition, value?: any): string => {\n const values: any[] = [condition as string, value === undefined ? null : value];\n return new Operator(\"arrayFilter\", values).toString();\n };\n\n /**\n * Concatenate a value to a string or array attribute.\n *\n * @param {any} value\n * @returns {string}\n */\n static stringConcat = (value: any): string =>\n new Operator(\"stringConcat\", [value]).toString();\n\n /**\n * Replace occurrences of a search string with a replacement string.\n *\n * @param {string} search\n * @param {string} replace\n * @returns {string}\n */\n static stringReplace = (search: string, replace: string): string =>\n new Operator(\"stringReplace\", [search, replace]).toString();\n\n /**\n * Toggle a boolean attribute.\n *\n * @returns {string}\n */\n static toggle = (): string =>\n new Operator(\"toggle\", []).toString();\n\n /**\n * Add days to a date attribute.\n *\n * @param {number} days\n * @returns {string}\n */\n static dateAddDays = (days: number): string =>\n new Operator(\"dateAddDays\", [days]).toString();\n\n /**\n * Subtract days from a date attribute.\n *\n * @param {number} days\n * @returns {string}\n */\n static dateSubDays = (days: number): string =>\n new Operator(\"dateSubDays\", [days]).toString();\n\n /**\n * Set a date attribute to the current date and time.\n *\n * @returns {string}\n */\n static dateSetNow = (): string =>\n new Operator(\"dateSetNow\", []).toString();\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/operator.ts"],"names":["Condition"],"mappings":"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","sourcesContent":["type OperatorValuesSingle = string | number | boolean;\nexport type OperatorValuesList = string[] | number[] | boolean[] | any[];\nexport type OperatorValues = OperatorValuesSingle | OperatorValuesList;\n\nexport enum Condition {\n Equal = \"equal\",\n NotEqual = \"notEqual\",\n GreaterThan = \"greaterThan\",\n GreaterThanEqual = \"greaterThanEqual\",\n LessThan = \"lessThan\",\n LessThanEqual = \"lessThanEqual\",\n Contains = \"contains\",\n IsNull = \"isNull\",\n IsNotNull = \"isNotNull\",\n}\n\n/**\n * Helper class to generate operator strings for atomic operations.\n */\nexport class Operator {\n method: string;\n values: OperatorValuesList | undefined;\n\n /**\n * Constructor for Operator class.\n *\n * @param {string} method\n * @param {OperatorValues} values\n */\n constructor(\n method: string,\n values?: OperatorValues\n ) {\n this.method = method;\n\n if (values !== undefined) {\n if (Array.isArray(values)) {\n this.values = values;\n } else {\n this.values = [values] as OperatorValuesList;\n }\n }\n }\n\n /**\n * Convert the operator object to a JSON string.\n *\n * @returns {string}\n */\n toString(): string {\n return JSON.stringify({\n method: this.method,\n values: this.values,\n });\n }\n\n /**\n * Increment a numeric attribute by a specified value.\n *\n * @param {number} value\n * @param {number} max\n * @returns {string}\n */\n static increment = (value: number = 1, max?: number): string => {\n if (isNaN(value) || !isFinite(value)) {\n throw new Error(\"Value cannot be NaN or Infinity\");\n }\n if (max !== undefined && (isNaN(max) || !isFinite(max))) {\n throw new Error(\"Max cannot be NaN or Infinity\");\n }\n const values: any[] = [value];\n if (max !== undefined) {\n values.push(max);\n }\n return new Operator(\"increment\", values).toString();\n };\n\n /**\n * Decrement a numeric attribute by a specified value.\n *\n * @param {number} value\n * @param {number} min\n * @returns {string}\n */\n static decrement = (value: number = 1, min?: number): string => {\n if (isNaN(value) || !isFinite(value)) {\n throw new Error(\"Value cannot be NaN or Infinity\");\n }\n if (min !== undefined && (isNaN(min) || !isFinite(min))) {\n throw new Error(\"Min cannot be NaN or Infinity\");\n }\n const values: any[] = [value];\n if (min !== undefined) {\n values.push(min);\n }\n return new Operator(\"decrement\", values).toString();\n };\n\n /**\n * Multiply a numeric attribute by a specified factor.\n *\n * @param {number} factor\n * @param {number} max\n * @returns {string}\n */\n static multiply = (factor: number, max?: number): string => {\n if (isNaN(factor) || !isFinite(factor)) {\n throw new Error(\"Factor cannot be NaN or Infinity\");\n }\n if (max !== undefined && (isNaN(max) || !isFinite(max))) {\n throw new Error(\"Max cannot be NaN or Infinity\");\n }\n const values: any[] = [factor];\n if (max !== undefined) {\n values.push(max);\n }\n return new Operator(\"multiply\", values).toString();\n };\n\n /**\n * Divide a numeric attribute by a specified divisor.\n *\n * @param {number} divisor\n * @param {number} min\n * @returns {string}\n */\n static divide = (divisor: number, min?: number): string => {\n if (isNaN(divisor) || !isFinite(divisor)) {\n throw new Error(\"Divisor cannot be NaN or Infinity\");\n }\n if (min !== undefined && (isNaN(min) || !isFinite(min))) {\n throw new Error(\"Min cannot be NaN or Infinity\");\n }\n if (divisor === 0) {\n throw new Error(\"Divisor cannot be zero\");\n }\n const values: any[] = [divisor];\n if (min !== undefined) {\n values.push(min);\n }\n return new Operator(\"divide\", values).toString();\n };\n\n /**\n * Apply modulo operation on a numeric attribute.\n *\n * @param {number} divisor\n * @returns {string}\n */\n static modulo = (divisor: number): string => {\n if (isNaN(divisor) || !isFinite(divisor)) {\n throw new Error(\"Divisor cannot be NaN or Infinity\");\n }\n if (divisor === 0) {\n throw new Error(\"Divisor cannot be zero\");\n }\n return new Operator(\"modulo\", [divisor]).toString();\n };\n\n /**\n * Raise a numeric attribute to a specified power.\n *\n * @param {number} exponent\n * @param {number} max\n * @returns {string}\n */\n static power = (exponent: number, max?: number): string => {\n if (isNaN(exponent) || !isFinite(exponent)) {\n throw new Error(\"Exponent cannot be NaN or Infinity\");\n }\n if (max !== undefined && (isNaN(max) || !isFinite(max))) {\n throw new Error(\"Max cannot be NaN or Infinity\");\n }\n const values: any[] = [exponent];\n if (max !== undefined) {\n values.push(max);\n }\n return new Operator(\"power\", values).toString();\n };\n\n /**\n * Append values to an array attribute.\n *\n * @param {any[]} values\n * @returns {string}\n */\n static arrayAppend = (values: any[]): string =>\n new Operator(\"arrayAppend\", values).toString();\n\n /**\n * Prepend values to an array attribute.\n *\n * @param {any[]} values\n * @returns {string}\n */\n static arrayPrepend = (values: any[]): string =>\n new Operator(\"arrayPrepend\", values).toString();\n\n /**\n * Insert a value at a specific index in an array attribute.\n *\n * @param {number} index\n * @param {any} value\n * @returns {string}\n */\n static arrayInsert = (index: number, value: any): string =>\n new Operator(\"arrayInsert\", [index, value]).toString();\n\n /**\n * Remove a value from an array attribute.\n *\n * @param {any} value\n * @returns {string}\n */\n static arrayRemove = (value: any): string =>\n new Operator(\"arrayRemove\", [value]).toString();\n\n /**\n * Remove duplicate values from an array attribute.\n *\n * @returns {string}\n */\n static arrayUnique = (): string =>\n new Operator(\"arrayUnique\", []).toString();\n\n /**\n * Keep only values that exist in both the current array and the provided array.\n *\n * @param {any[]} values\n * @returns {string}\n */\n static arrayIntersect = (values: any[]): string =>\n new Operator(\"arrayIntersect\", values).toString();\n\n /**\n * Remove values from the array that exist in the provided array.\n *\n * @param {any[]} values\n * @returns {string}\n */\n static arrayDiff = (values: any[]): string =>\n new Operator(\"arrayDiff\", values).toString();\n\n /**\n * Filter array values based on a condition.\n *\n * @param {Condition} condition\n * @param {any} value\n * @returns {string}\n */\n static arrayFilter = (condition: Condition, value?: any): string => {\n const values: any[] = [condition as string, value === undefined ? null : value];\n return new Operator(\"arrayFilter\", values).toString();\n };\n\n /**\n * Concatenate a value to a string or array attribute.\n *\n * @param {any} value\n * @returns {string}\n */\n static stringConcat = (value: any): string =>\n new Operator(\"stringConcat\", [value]).toString();\n\n /**\n * Replace occurrences of a search string with a replacement string.\n *\n * @param {string} search\n * @param {string} replace\n * @returns {string}\n */\n static stringReplace = (search: string, replace: string): string =>\n new Operator(\"stringReplace\", [search, replace]).toString();\n\n /**\n * Toggle a boolean attribute.\n *\n * @returns {string}\n */\n static toggle = (): string =>\n new Operator(\"toggle\", []).toString();\n\n /**\n * Add days to a date attribute.\n *\n * @param {number} days\n * @returns {string}\n */\n static dateAddDays = (days: number): string =>\n new Operator(\"dateAddDays\", [days]).toString();\n\n /**\n * Subtract days from a date attribute.\n *\n * @param {number} days\n * @returns {string}\n */\n static dateSubDays = (days: number): string =>\n new Operator(\"dateSubDays\", [days]).toString();\n\n /**\n * Set a date attribute to the current date and time.\n *\n * @returns {string}\n */\n static dateSetNow = (): string =>\n new Operator(\"dateSetNow\", []).toString();\n}\n"]}
|