node-appwrite 23.0.0 → 24.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/dist/client.d.mts +11 -1
- package/dist/client.d.ts +11 -1
- package/dist/client.js +18 -9
- package/dist/client.js.map +1 -1
- package/dist/client.mjs +17 -8
- package/dist/client.mjs.map +1 -1
- package/dist/enums/adapter.js +1 -1
- package/dist/enums/adapter.js.map +1 -1
- package/dist/enums/adapter.mjs +1 -1
- package/dist/enums/adapter.mjs.map +1 -1
- package/dist/enums/attribute-status.js +1 -1
- package/dist/enums/attribute-status.js.map +1 -1
- package/dist/enums/attribute-status.mjs +1 -1
- package/dist/enums/attribute-status.mjs.map +1 -1
- package/dist/enums/authentication-factor.js +1 -1
- package/dist/enums/authentication-factor.js.map +1 -1
- package/dist/enums/authentication-factor.mjs +1 -1
- package/dist/enums/authentication-factor.mjs.map +1 -1
- package/dist/enums/authenticator-type.js +1 -1
- package/dist/enums/authenticator-type.js.map +1 -1
- package/dist/enums/authenticator-type.mjs +1 -1
- package/dist/enums/authenticator-type.mjs.map +1 -1
- package/dist/enums/backup-services.js +1 -1
- package/dist/enums/backup-services.js.map +1 -1
- package/dist/enums/backup-services.mjs +1 -1
- package/dist/enums/backup-services.mjs.map +1 -1
- package/dist/enums/browser-permission.js +1 -1
- package/dist/enums/browser-permission.js.map +1 -1
- package/dist/enums/browser-permission.mjs +1 -1
- package/dist/enums/browser-permission.mjs.map +1 -1
- package/dist/enums/browser.js +1 -1
- package/dist/enums/browser.js.map +1 -1
- package/dist/enums/browser.mjs +1 -1
- package/dist/enums/browser.mjs.map +1 -1
- package/dist/enums/build-runtime.d.mts +3 -1
- package/dist/enums/build-runtime.d.ts +3 -1
- package/dist/enums/build-runtime.js +3 -1
- package/dist/enums/build-runtime.js.map +1 -1
- package/dist/enums/build-runtime.mjs +3 -1
- package/dist/enums/build-runtime.mjs.map +1 -1
- package/dist/enums/column-status.js +1 -1
- package/dist/enums/column-status.js.map +1 -1
- package/dist/enums/column-status.mjs +1 -1
- package/dist/enums/column-status.mjs.map +1 -1
- package/dist/enums/compression.js +1 -1
- package/dist/enums/compression.js.map +1 -1
- package/dist/enums/compression.mjs +1 -1
- package/dist/enums/compression.mjs.map +1 -1
- package/dist/enums/credit-card.js +1 -1
- package/dist/enums/credit-card.js.map +1 -1
- package/dist/enums/credit-card.mjs +1 -1
- package/dist/enums/credit-card.mjs.map +1 -1
- package/dist/enums/database-type.js +1 -1
- package/dist/enums/database-type.js.map +1 -1
- package/dist/enums/database-type.mjs +1 -1
- package/dist/enums/database-type.mjs.map +1 -1
- package/dist/enums/databases-index-type.js +1 -1
- package/dist/enums/databases-index-type.js.map +1 -1
- package/dist/enums/databases-index-type.mjs +1 -1
- package/dist/enums/databases-index-type.mjs.map +1 -1
- package/dist/enums/deployment-download-type.js +1 -1
- package/dist/enums/deployment-download-type.js.map +1 -1
- package/dist/enums/deployment-download-type.mjs +1 -1
- package/dist/enums/deployment-download-type.mjs.map +1 -1
- package/dist/enums/deployment-status.js +1 -1
- package/dist/enums/deployment-status.js.map +1 -1
- package/dist/enums/deployment-status.mjs +1 -1
- package/dist/enums/deployment-status.mjs.map +1 -1
- package/dist/enums/execution-method.js +1 -1
- package/dist/enums/execution-method.js.map +1 -1
- package/dist/enums/execution-method.mjs +1 -1
- package/dist/enums/execution-method.mjs.map +1 -1
- package/dist/enums/execution-status.js +1 -1
- package/dist/enums/execution-status.js.map +1 -1
- package/dist/enums/execution-status.mjs +1 -1
- package/dist/enums/execution-status.mjs.map +1 -1
- package/dist/enums/execution-trigger.js +1 -1
- package/dist/enums/execution-trigger.js.map +1 -1
- package/dist/enums/execution-trigger.mjs +1 -1
- package/dist/enums/execution-trigger.mjs.map +1 -1
- package/dist/enums/flag.js +1 -1
- package/dist/enums/flag.js.map +1 -1
- package/dist/enums/flag.mjs +1 -1
- package/dist/enums/flag.mjs.map +1 -1
- package/dist/enums/framework.js +1 -1
- package/dist/enums/framework.js.map +1 -1
- package/dist/enums/framework.mjs +1 -1
- package/dist/enums/framework.mjs.map +1 -1
- package/dist/enums/health-antivirus-status.js +1 -1
- package/dist/enums/health-antivirus-status.js.map +1 -1
- package/dist/enums/health-antivirus-status.mjs +1 -1
- package/dist/enums/health-antivirus-status.mjs.map +1 -1
- package/dist/enums/health-check-status.js +1 -1
- package/dist/enums/health-check-status.js.map +1 -1
- package/dist/enums/health-check-status.mjs +1 -1
- package/dist/enums/health-check-status.mjs.map +1 -1
- package/dist/enums/image-format.js +1 -1
- package/dist/enums/image-format.js.map +1 -1
- package/dist/enums/image-format.mjs +1 -1
- package/dist/enums/image-format.mjs.map +1 -1
- package/dist/enums/image-gravity.js +1 -1
- package/dist/enums/image-gravity.js.map +1 -1
- package/dist/enums/image-gravity.mjs +1 -1
- package/dist/enums/image-gravity.mjs.map +1 -1
- package/dist/enums/index-status.js +1 -1
- package/dist/enums/index-status.js.map +1 -1
- package/dist/enums/index-status.mjs +1 -1
- package/dist/enums/index-status.mjs.map +1 -1
- package/dist/enums/message-priority.js +1 -1
- package/dist/enums/message-priority.js.map +1 -1
- package/dist/enums/message-priority.mjs +1 -1
- package/dist/enums/message-priority.mjs.map +1 -1
- package/dist/enums/message-status.js +1 -1
- package/dist/enums/message-status.js.map +1 -1
- package/dist/enums/message-status.mjs +1 -1
- package/dist/enums/message-status.mjs.map +1 -1
- package/dist/enums/messaging-provider-type.js +1 -1
- package/dist/enums/messaging-provider-type.js.map +1 -1
- package/dist/enums/messaging-provider-type.mjs +1 -1
- package/dist/enums/messaging-provider-type.mjs.map +1 -1
- package/dist/enums/name.js +1 -1
- package/dist/enums/name.js.map +1 -1
- package/dist/enums/name.mjs +1 -1
- package/dist/enums/name.mjs.map +1 -1
- package/dist/enums/o-auth-provider.d.mts +1 -0
- package/dist/enums/o-auth-provider.d.ts +1 -0
- package/dist/enums/o-auth-provider.js +2 -1
- package/dist/enums/o-auth-provider.js.map +1 -1
- package/dist/enums/o-auth-provider.mjs +2 -1
- package/dist/enums/o-auth-provider.mjs.map +1 -1
- package/dist/enums/order-by.js +1 -1
- package/dist/enums/order-by.js.map +1 -1
- package/dist/enums/order-by.mjs +1 -1
- package/dist/enums/order-by.mjs.map +1 -1
- package/dist/enums/password-hash.js +1 -1
- package/dist/enums/password-hash.js.map +1 -1
- package/dist/enums/password-hash.mjs +1 -1
- package/dist/enums/password-hash.mjs.map +1 -1
- package/dist/enums/platform-type.d.mts +9 -0
- package/dist/enums/platform-type.d.ts +9 -0
- package/dist/enums/platform-type.js +14 -0
- package/dist/enums/platform-type.js.map +1 -0
- package/dist/enums/platform-type.mjs +13 -0
- package/dist/enums/platform-type.mjs.map +1 -0
- package/dist/enums/protocol-id.d.mts +7 -0
- package/dist/enums/protocol-id.d.ts +7 -0
- package/dist/enums/protocol-id.js +12 -0
- package/dist/enums/protocol-id.js.map +1 -0
- package/dist/enums/protocol-id.mjs +11 -0
- package/dist/enums/protocol-id.mjs.map +1 -0
- package/dist/enums/relation-mutate.js +1 -1
- package/dist/enums/relation-mutate.js.map +1 -1
- package/dist/enums/relation-mutate.mjs +1 -1
- package/dist/enums/relation-mutate.mjs.map +1 -1
- package/dist/enums/relationship-type.js +1 -1
- package/dist/enums/relationship-type.js.map +1 -1
- package/dist/enums/relationship-type.mjs +1 -1
- package/dist/enums/relationship-type.mjs.map +1 -1
- package/dist/enums/runtime.d.mts +3 -1
- package/dist/enums/runtime.d.ts +3 -1
- package/dist/enums/runtime.js +3 -1
- package/dist/enums/runtime.js.map +1 -1
- package/dist/enums/runtime.mjs +3 -1
- package/dist/enums/runtime.mjs.map +1 -1
- package/dist/enums/scopes.d.mts +4 -0
- package/dist/enums/scopes.d.ts +4 -0
- package/dist/enums/scopes.js +5 -1
- package/dist/enums/scopes.js.map +1 -1
- package/dist/enums/scopes.mjs +5 -1
- package/dist/enums/scopes.mjs.map +1 -1
- package/dist/enums/service-id.d.mts +21 -0
- package/dist/enums/service-id.d.ts +21 -0
- package/dist/enums/service-id.js +26 -0
- package/dist/enums/service-id.js.map +1 -0
- package/dist/enums/service-id.mjs +25 -0
- package/dist/enums/service-id.mjs.map +1 -0
- package/dist/enums/smtp-encryption.js +1 -1
- package/dist/enums/smtp-encryption.js.map +1 -1
- package/dist/enums/smtp-encryption.mjs +1 -1
- package/dist/enums/smtp-encryption.mjs.map +1 -1
- package/dist/enums/tables-db-index-type.js +1 -1
- package/dist/enums/tables-db-index-type.js.map +1 -1
- package/dist/enums/tables-db-index-type.mjs +1 -1
- package/dist/enums/tables-db-index-type.mjs.map +1 -1
- package/dist/enums/template-reference-type.js +1 -1
- package/dist/enums/template-reference-type.js.map +1 -1
- package/dist/enums/template-reference-type.mjs +1 -1
- package/dist/enums/template-reference-type.mjs.map +1 -1
- package/dist/enums/theme.js +1 -1
- package/dist/enums/theme.js.map +1 -1
- package/dist/enums/theme.mjs +1 -1
- package/dist/enums/theme.mjs.map +1 -1
- package/dist/enums/timezone.js +1 -1
- package/dist/enums/timezone.js.map +1 -1
- package/dist/enums/timezone.mjs +1 -1
- package/dist/enums/timezone.mjs.map +1 -1
- package/dist/enums/vcs-reference-type.js +1 -1
- package/dist/enums/vcs-reference-type.js.map +1 -1
- package/dist/enums/vcs-reference-type.mjs +1 -1
- package/dist/enums/vcs-reference-type.mjs.map +1 -1
- package/dist/id.js +1 -1
- package/dist/id.js.map +1 -1
- package/dist/id.mjs +1 -1
- package/dist/id.mjs.map +1 -1
- package/dist/index.d.mts +3 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.js +84 -69
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +4 -1
- package/dist/index.mjs.map +1 -1
- package/dist/inputFile.js +1 -1
- package/dist/inputFile.js.map +1 -1
- package/dist/inputFile.mjs +1 -1
- package/dist/inputFile.mjs.map +1 -1
- package/dist/models.d.mts +678 -7
- package/dist/models.d.ts +678 -7
- package/dist/models.js +1 -1
- package/dist/models.js.map +1 -1
- package/dist/models.mjs +1 -1
- package/dist/models.mjs.map +1 -1
- package/dist/operator.d.mts +1 -1
- package/dist/operator.d.ts +1 -1
- package/dist/operator.js +1 -1
- package/dist/operator.js.map +1 -1
- package/dist/operator.mjs +1 -1
- package/dist/operator.mjs.map +1 -1
- package/dist/permission.js +1 -1
- package/dist/permission.js.map +1 -1
- package/dist/permission.mjs +1 -1
- package/dist/permission.mjs.map +1 -1
- package/dist/query.d.mts +1 -1
- package/dist/query.d.ts +1 -1
- package/dist/query.js +1 -1
- package/dist/query.js.map +1 -1
- package/dist/query.mjs +1 -1
- package/dist/query.mjs.map +1 -1
- package/dist/role.js +1 -1
- package/dist/role.js.map +1 -1
- package/dist/role.mjs +1 -1
- package/dist/role.mjs.map +1 -1
- package/dist/services/account.d.mts +3 -2
- package/dist/services/account.d.ts +3 -2
- package/dist/services/account.js +1 -1
- package/dist/services/account.js.map +1 -1
- package/dist/services/account.mjs +1 -1
- package/dist/services/account.mjs.map +1 -1
- package/dist/services/activities.d.mts +1 -0
- package/dist/services/activities.d.ts +1 -0
- package/dist/services/activities.js +1 -1
- package/dist/services/activities.js.map +1 -1
- package/dist/services/activities.mjs +1 -1
- package/dist/services/activities.mjs.map +1 -1
- package/dist/services/avatars.d.mts +1 -0
- package/dist/services/avatars.d.ts +1 -0
- package/dist/services/avatars.js +1 -1
- package/dist/services/avatars.js.map +1 -1
- package/dist/services/avatars.mjs +1 -1
- package/dist/services/avatars.mjs.map +1 -1
- package/dist/services/backups.d.mts +1 -0
- package/dist/services/backups.d.ts +1 -0
- package/dist/services/backups.js +1 -1
- package/dist/services/backups.js.map +1 -1
- package/dist/services/backups.mjs +1 -1
- package/dist/services/backups.mjs.map +1 -1
- package/dist/services/databases.d.mts +7 -3
- package/dist/services/databases.d.ts +7 -3
- package/dist/services/databases.js +7 -2
- package/dist/services/databases.js.map +1 -1
- package/dist/services/databases.mjs +7 -2
- package/dist/services/databases.mjs.map +1 -1
- package/dist/services/functions.d.mts +1 -0
- package/dist/services/functions.d.ts +1 -0
- package/dist/services/functions.js +1 -1
- package/dist/services/functions.js.map +1 -1
- package/dist/services/functions.mjs +1 -1
- package/dist/services/functions.mjs.map +1 -1
- package/dist/services/graphql.d.mts +1 -0
- package/dist/services/graphql.d.ts +1 -0
- package/dist/services/graphql.js +1 -1
- package/dist/services/graphql.js.map +1 -1
- package/dist/services/graphql.mjs +1 -1
- package/dist/services/graphql.mjs.map +1 -1
- package/dist/services/health.d.mts +3 -0
- package/dist/services/health.d.ts +3 -0
- package/dist/services/health.js +1 -1
- package/dist/services/health.js.map +1 -1
- package/dist/services/health.mjs +1 -1
- package/dist/services/health.mjs.map +1 -1
- package/dist/services/locale.d.mts +1 -0
- package/dist/services/locale.d.ts +1 -0
- package/dist/services/locale.js +1 -1
- package/dist/services/locale.js.map +1 -1
- package/dist/services/locale.mjs +1 -1
- package/dist/services/locale.mjs.map +1 -1
- package/dist/services/messaging.d.mts +1 -0
- package/dist/services/messaging.d.ts +1 -0
- package/dist/services/messaging.js +1 -1
- package/dist/services/messaging.js.map +1 -1
- package/dist/services/messaging.mjs +1 -1
- package/dist/services/messaging.mjs.map +1 -1
- package/dist/services/project.d.mts +493 -0
- package/dist/services/project.d.ts +493 -0
- package/dist/services/project.js +788 -1
- package/dist/services/project.js.map +1 -1
- package/dist/services/project.mjs +788 -1
- package/dist/services/project.mjs.map +1 -1
- package/dist/services/sites.d.mts +1 -0
- package/dist/services/sites.d.ts +1 -0
- package/dist/services/sites.js +1 -1
- package/dist/services/sites.js.map +1 -1
- package/dist/services/sites.mjs +1 -1
- package/dist/services/sites.mjs.map +1 -1
- package/dist/services/storage.d.mts +1 -0
- package/dist/services/storage.d.ts +1 -0
- package/dist/services/storage.js +1 -1
- package/dist/services/storage.js.map +1 -1
- package/dist/services/storage.mjs +1 -1
- package/dist/services/storage.mjs.map +1 -1
- package/dist/services/tables-db.d.mts +7 -3
- package/dist/services/tables-db.d.ts +7 -3
- package/dist/services/tables-db.js +7 -2
- package/dist/services/tables-db.js.map +1 -1
- package/dist/services/tables-db.mjs +7 -2
- package/dist/services/tables-db.mjs.map +1 -1
- package/dist/services/teams.d.mts +1 -0
- package/dist/services/teams.d.ts +1 -0
- package/dist/services/teams.js +1 -1
- package/dist/services/teams.js.map +1 -1
- package/dist/services/teams.mjs +1 -1
- package/dist/services/teams.mjs.map +1 -1
- package/dist/services/tokens.d.mts +1 -0
- package/dist/services/tokens.d.ts +1 -0
- package/dist/services/tokens.js +1 -1
- package/dist/services/tokens.js.map +1 -1
- package/dist/services/tokens.mjs +1 -1
- package/dist/services/tokens.mjs.map +1 -1
- package/dist/services/users.d.mts +1 -0
- package/dist/services/users.d.ts +1 -0
- package/dist/services/users.js +1 -1
- package/dist/services/users.js.map +1 -1
- package/dist/services/users.mjs +1 -1
- package/dist/services/users.mjs.map +1 -1
- package/dist/services/webhooks.d.mts +33 -26
- package/dist/services/webhooks.d.ts +33 -26
- package/dist/services/webhooks.js +38 -28
- package/dist/services/webhooks.js.map +1 -1
- package/dist/services/webhooks.mjs +38 -28
- package/dist/services/webhooks.mjs.map +1 -1
- package/package.json +2 -2
package/dist/models.js
CHANGED
package/dist/models.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":[],"names":[],"mappings":""}
|
|
1
|
+
{"version":3,"sources":[],"names":[],"mappings":"","file":"models.js"}
|
package/dist/models.mjs
CHANGED
package/dist/models.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":[],"names":[],"mappings":""}
|
|
1
|
+
{"version":3,"sources":[],"names":[],"mappings":"","file":"models.mjs"}
|
package/dist/operator.d.mts
CHANGED
package/dist/operator.d.ts
CHANGED
package/dist/operator.js
CHANGED
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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","file":"operator.js","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"]}
|
package/dist/operator.mjs
CHANGED
|
@@ -262,5 +262,5 @@ _Operator.dateSetNow = () => new _Operator("dateSetNow", []).toString();
|
|
|
262
262
|
var Operator = _Operator;
|
|
263
263
|
|
|
264
264
|
export { Condition, Operator };
|
|
265
|
-
//# sourceMappingURL=
|
|
265
|
+
//# sourceMappingURL=operator.mjs.map
|
|
266
266
|
//# sourceMappingURL=operator.mjs.map
|
package/dist/operator.mjs.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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","file":"operator.mjs","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"]}
|
package/dist/permission.js
CHANGED
package/dist/permission.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/permission.ts"],"names":[],"mappings":"AAGO,MAAM,
|
|
1
|
+
{"version":3,"sources":["../src/permission.ts"],"names":[],"mappings":";;AAGO,MAAM,UAAA,CAAW;AAqDxB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AArDa,UAAA,CAOF,IAAA,GAAO,CAAC,IAAA,KAAyB;AACpC,EAAA,OAAO,SAAS,IAAI,CAAA,EAAA,CAAA;AACxB,CAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AATS,UAAA,CAoBF,KAAA,GAAQ,CAAC,IAAA,KAAyB;AACrC,EAAA,OAAO,UAAU,IAAI,CAAA,EAAA,CAAA;AACzB,CAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAtBS,UAAA,CA8BF,MAAA,GAAS,CAAC,IAAA,KAAyB;AACtC,EAAA,OAAO,WAAW,IAAI,CAAA,EAAA,CAAA;AAC1B,CAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAhCS,UAAA,CAwCF,MAAA,GAAS,CAAC,IAAA,KAAyB;AACtC,EAAA,OAAO,WAAW,IAAI,CAAA,EAAA,CAAA;AAC1B,CAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AA1CS,UAAA,CAkDF,MAAA,GAAS,CAAC,IAAA,KAAyB;AACtC,EAAA,OAAO,WAAW,IAAI,CAAA,EAAA,CAAA;AAC1B,CAAA","file":"permission.js","sourcesContent":["/**\n * Helper class to generate permission strings for resources.\n */\nexport class Permission {\n /**\n * Generate read permission string for the provided role.\n *\n * @param {string} role\n * @returns {string}\n */\n static read = (role: string): string => {\n return `read(\"${role}\")`;\n }\n\n /**\n * Generate write permission string for the provided role.\n *\n * This is an alias of update, delete, and possibly create.\n * Don't use write in combination with update, delete, or create.\n *\n * @param {string} role\n * @returns {string}\n */\n static write = (role: string): string => {\n return `write(\"${role}\")`;\n }\n\n /**\n * Generate create permission string for the provided role.\n *\n * @param {string} role\n * @returns {string}\n */\n static create = (role: string): string => {\n return `create(\"${role}\")`;\n }\n\n /**\n * Generate update permission string for the provided role.\n *\n * @param {string} role\n * @returns {string}\n */\n static update = (role: string): string => {\n return `update(\"${role}\")`;\n }\n\n /**\n * Generate delete permission string for the provided role.\n *\n * @param {string} role\n * @returns {string}\n */\n static delete = (role: string): string => {\n return `delete(\"${role}\")`;\n }\n}\n"]}
|
package/dist/permission.mjs
CHANGED
package/dist/permission.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/permission.ts"],"names":[],"mappings":";AAGO,IAAM,aAAN,MAAiB;AAqDxB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AArDa,
|
|
1
|
+
{"version":3,"sources":["../src/permission.ts"],"names":[],"mappings":";AAGO,IAAM,aAAN,MAAiB;AAqDxB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AArDa,UAAA,CAOF,IAAA,GAAO,CAAC,IAAA,KAAyB;AACpC,EAAA,OAAO,SAAS,IAAI,CAAA,EAAA,CAAA;AACxB,CAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AATS,UAAA,CAoBF,KAAA,GAAQ,CAAC,IAAA,KAAyB;AACrC,EAAA,OAAO,UAAU,IAAI,CAAA,EAAA,CAAA;AACzB,CAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAtBS,UAAA,CA8BF,MAAA,GAAS,CAAC,IAAA,KAAyB;AACtC,EAAA,OAAO,WAAW,IAAI,CAAA,EAAA,CAAA;AAC1B,CAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAhCS,UAAA,CAwCF,MAAA,GAAS,CAAC,IAAA,KAAyB;AACtC,EAAA,OAAO,WAAW,IAAI,CAAA,EAAA,CAAA;AAC1B,CAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AA1CS,UAAA,CAkDF,MAAA,GAAS,CAAC,IAAA,KAAyB;AACtC,EAAA,OAAO,WAAW,IAAI,CAAA,EAAA,CAAA;AAC1B,CAAA","file":"permission.mjs","sourcesContent":["/**\n * Helper class to generate permission strings for resources.\n */\nexport class Permission {\n /**\n * Generate read permission string for the provided role.\n *\n * @param {string} role\n * @returns {string}\n */\n static read = (role: string): string => {\n return `read(\"${role}\")`;\n }\n\n /**\n * Generate write permission string for the provided role.\n *\n * This is an alias of update, delete, and possibly create.\n * Don't use write in combination with update, delete, or create.\n *\n * @param {string} role\n * @returns {string}\n */\n static write = (role: string): string => {\n return `write(\"${role}\")`;\n }\n\n /**\n * Generate create permission string for the provided role.\n *\n * @param {string} role\n * @returns {string}\n */\n static create = (role: string): string => {\n return `create(\"${role}\")`;\n }\n\n /**\n * Generate update permission string for the provided role.\n *\n * @param {string} role\n * @returns {string}\n */\n static update = (role: string): string => {\n return `update(\"${role}\")`;\n }\n\n /**\n * Generate delete permission string for the provided role.\n *\n * @param {string} role\n * @returns {string}\n */\n static delete = (role: string): string => {\n return `delete(\"${role}\")`;\n }\n}\n"]}
|
package/dist/query.d.mts
CHANGED
package/dist/query.d.ts
CHANGED
package/dist/query.js
CHANGED
package/dist/query.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/query.ts"],"names":[],"mappings":"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","sourcesContent":["import JSONbigModule from 'json-bigint';\nconst JSONbig = JSONbigModule({ useNativeBigInt: true });\n\ntype QueryTypesSingle = string | number | bigint | boolean;\nexport type QueryTypesList = string[] | number[] | bigint[] | boolean[] | Query[] | any[];\nexport type QueryTypes = QueryTypesSingle | QueryTypesList;\ntype AttributesTypes = string | string[];\n\n/**\n * Helper class to generate query strings.\n */\nexport class Query {\n method: string;\n attribute: AttributesTypes | undefined;\n values: QueryTypesList | undefined;\n\n /**\n * Constructor for Query class.\n *\n * @param {string} method\n * @param {AttributesTypes} attribute\n * @param {QueryTypes} values\n */\n constructor(\n method: string,\n attribute?: AttributesTypes,\n values?: QueryTypes\n ) {\n this.method = method;\n this.attribute = attribute;\n\n if (values !== undefined) {\n if (Array.isArray(values)) {\n this.values = values;\n } else {\n this.values = [values] as QueryTypesList;\n }\n }\n }\n\n /**\n * Convert the query object to a JSON string.\n *\n * @returns {string}\n */\n toString(): string {\n return JSONbig.stringify({\n method: this.method,\n attribute: this.attribute,\n values: this.values,\n });\n }\n\n /**\n * Filter resources where attribute is equal to value.\n *\n * @param {string} attribute\n * @param {QueryTypes} value\n * @returns {string}\n */\n static equal = (attribute: string, value: QueryTypes): string =>\n new Query(\"equal\", attribute, value).toString();\n\n /**\n * Filter resources where attribute is not equal to value.\n *\n * @param {string} attribute\n * @param {QueryTypes} value\n * @returns {string}\n */\n static notEqual = (attribute: string, value: QueryTypes): string =>\n new Query(\"notEqual\", attribute, value).toString();\n\n /**\n * Filter resources where attribute matches a regular expression pattern.\n *\n * @param {string} attribute The attribute to filter on.\n * @param {string} pattern The regular expression pattern to match.\n * @returns {string}\n */\n static regex = (attribute: string, pattern: string): string =>\n new Query(\"regex\", attribute, pattern).toString();\n\n /**\n * Filter resources where attribute is less than value.\n *\n * @param {string} attribute\n * @param {QueryTypes} value\n * @returns {string}\n */\n static lessThan = (attribute: string, value: QueryTypes): string =>\n new Query(\"lessThan\", attribute, value).toString();\n\n /**\n * Filter resources where attribute is less than or equal to value.\n *\n * @param {string} attribute\n * @param {QueryTypes} value\n * @returns {string}\n */\n static lessThanEqual = (attribute: string, value: QueryTypes): string =>\n new Query(\"lessThanEqual\", attribute, value).toString();\n\n /**\n * Filter resources where attribute is greater than value.\n *\n * @param {string} attribute\n * @param {QueryTypes} value\n * @returns {string}\n */\n static greaterThan = (attribute: string, value: QueryTypes): string =>\n new Query(\"greaterThan\", attribute, value).toString();\n\n /**\n * Filter resources where attribute is greater than or equal to value.\n *\n * @param {string} attribute\n * @param {QueryTypes} value\n * @returns {string}\n */\n static greaterThanEqual = (attribute: string, value: QueryTypes): string =>\n new Query(\"greaterThanEqual\", attribute, value).toString();\n\n /**\n * Filter resources where attribute is null.\n *\n * @param {string} attribute\n * @returns {string}\n */\n static isNull = (attribute: string): string =>\n new Query(\"isNull\", attribute).toString();\n\n /**\n * Filter resources where attribute is not null.\n *\n * @param {string} attribute\n * @returns {string}\n */\n static isNotNull = (attribute: string): string =>\n new Query(\"isNotNull\", attribute).toString();\n\n /**\n * Filter resources where the specified attributes exist.\n *\n * @param {string[]} attributes The list of attributes that must exist.\n * @returns {string}\n */\n static exists = (attributes: string[]): string =>\n new Query(\"exists\", undefined, attributes).toString();\n\n /**\n * Filter resources where the specified attributes do not exist.\n *\n * @param {string[]} attributes The list of attributes that must not exist.\n * @returns {string}\n */\n static notExists = (attributes: string[]): string =>\n new Query(\"notExists\", undefined, attributes).toString();\n\n /**\n * Filter resources where attribute is between start and end (inclusive).\n *\n * @param {string} attribute\n * @param {string | number | bigint} start\n * @param {string | number | bigint} end\n * @returns {string}\n */\n static between = (attribute: string, start: string | number | bigint, end: string | number | bigint): string =>\n new Query(\"between\", attribute, [start, end] as QueryTypesList).toString();\n\n /**\n * Filter resources where attribute starts with value.\n *\n * @param {string} attribute\n * @param {string} value\n * @returns {string}\n */\n static startsWith = (attribute: string, value: string): string =>\n new Query(\"startsWith\", attribute, value).toString();\n\n /**\n * Filter resources where attribute ends with value.\n *\n * @param {string} attribute\n * @param {string} value\n * @returns {string}\n */\n static endsWith = (attribute: string, value: string): string =>\n new Query(\"endsWith\", attribute, value).toString();\n\n /**\n * Specify which attributes should be returned by the API call.\n *\n * @param {string[]} attributes\n * @returns {string}\n */\n static select = (attributes: string[]): string =>\n new Query(\"select\", undefined, attributes).toString();\n\n /**\n * Filter resources by searching attribute for value.\n * A fulltext index on attribute is required for this query to work.\n *\n * @param {string} attribute\n * @param {string} value\n * @returns {string}\n */\n static search = (attribute: string, value: string): string =>\n new Query(\"search\", attribute, value).toString();\n\n /**\n * Sort results by attribute descending.\n *\n * @param {string} attribute\n * @returns {string}\n */\n static orderDesc = (attribute: string): string =>\n new Query(\"orderDesc\", attribute).toString();\n\n /**\n * Sort results by attribute ascending.\n *\n * @param {string} attribute\n * @returns {string}\n */\n static orderAsc = (attribute: string): string =>\n new Query(\"orderAsc\", attribute).toString();\n\n /**\n * Sort results randomly.\n *\n * @returns {string}\n */\n static orderRandom = (): string =>\n new Query(\"orderRandom\").toString();\n\n /**\n * Return results after documentId.\n *\n * @param {string} documentId\n * @returns {string}\n */\n static cursorAfter = (documentId: string): string =>\n new Query(\"cursorAfter\", undefined, documentId).toString();\n\n /**\n * Return results before documentId.\n *\n * @param {string} documentId\n * @returns {string}\n */\n static cursorBefore = (documentId: string): string =>\n new Query(\"cursorBefore\", undefined, documentId).toString();\n\n /**\n * Return only limit results.\n *\n * @param {number} limit\n * @returns {string}\n */\n static limit = (limit: number): string =>\n new Query(\"limit\", undefined, limit).toString();\n\n /**\n * Filter resources by skipping the first offset results.\n *\n * @param {number} offset\n * @returns {string}\n */\n static offset = (offset: number): string =>\n new Query(\"offset\", undefined, offset).toString();\n\n /**\n * Filter resources where attribute contains the specified value.\n * For string attributes, checks if the string contains the substring.\n *\n * Note: For array attributes, use {@link containsAny} or {@link containsAll} instead.\n * @param {string} attribute\n * @param {string | string[]} value\n * @returns {string}\n */\n static contains = (attribute: string, value: string | any[]): string =>\n new Query(\"contains\", attribute, value).toString();\n\n /**\n * Filter resources where attribute contains ANY of the specified values.\n * For array and relationship attributes, matches documents where the attribute\n * contains at least one of the given values.\n *\n * @param {string} attribute\n * @param {any[]} value\n * @returns {string}\n */\n static containsAny = (attribute: string, value: any[]): string =>\n new Query(\"containsAny\", attribute, value).toString();\n\n /**\n * Filter resources where attribute contains ALL of the specified values.\n * For array and relationship attributes, matches documents where the attribute\n * contains every one of the given values.\n *\n * @param {string} attribute\n * @param {any[]} value\n * @returns {string}\n */\n static containsAll = (attribute: string, value: any[]): string =>\n new Query(\"containsAll\", attribute, value).toString();\n\n /**\n * Filter resources where attribute does not contain the specified value.\n *\n * @param {string} attribute\n * @param {string | any[]} value\n * @returns {string}\n */\n static notContains = (attribute: string, value: string | any[]): string =>\n new Query(\"notContains\", attribute, value).toString();\n\n /**\n * Filter resources by searching attribute for value (inverse of search).\n * A fulltext index on attribute is required for this query to work.\n *\n * @param {string} attribute\n * @param {string} value\n * @returns {string}\n */\n static notSearch = (attribute: string, value: string): string =>\n new Query(\"notSearch\", attribute, value).toString();\n\n /**\n * Filter resources where attribute is not between start and end (exclusive).\n *\n * @param {string} attribute\n * @param {string | number | bigint} start\n * @param {string | number | bigint} end\n * @returns {string}\n */\n static notBetween = (attribute: string, start: string | number | bigint, end: string | number | bigint): string =>\n new Query(\"notBetween\", attribute, [start, end] as QueryTypesList).toString();\n\n /**\n * Filter resources where attribute does not start with value.\n *\n * @param {string} attribute\n * @param {string} value\n * @returns {string}\n */\n static notStartsWith = (attribute: string, value: string): string =>\n new Query(\"notStartsWith\", attribute, value).toString();\n\n /**\n * Filter resources where attribute does not end with value.\n *\n * @param {string} attribute\n * @param {string} value\n * @returns {string}\n */\n static notEndsWith = (attribute: string, value: string): string =>\n new Query(\"notEndsWith\", attribute, value).toString();\n\n /**\n * Filter resources where document was created before date.\n *\n * @param {string} value\n * @returns {string}\n */\n static createdBefore = (value: string): string =>\n Query.lessThan(\"$createdAt\", value);\n\n /**\n * Filter resources where document was created after date.\n *\n * @param {string} value\n * @returns {string}\n */\n static createdAfter = (value: string): string =>\n Query.greaterThan(\"$createdAt\", value);\n\n /**\n * Filter resources where document was created between dates.\n *\n * @param {string} start\n * @param {string} end\n * @returns {string}\n */\n static createdBetween = (start: string, end: string): string =>\n Query.between(\"$createdAt\", start, end);\n\n /**\n * Filter resources where document was updated before date.\n *\n * @param {string} value\n * @returns {string}\n */\n static updatedBefore = (value: string): string =>\n Query.lessThan(\"$updatedAt\", value);\n\n /**\n * Filter resources where document was updated after date.\n *\n * @param {string} value\n * @returns {string}\n */\n static updatedAfter = (value: string): string =>\n Query.greaterThan(\"$updatedAt\", value);\n\n /**\n * Filter resources where document was updated between dates.\n *\n * @param {string} start\n * @param {string} end\n * @returns {string}\n */\n static updatedBetween = (start: string, end: string): string =>\n Query.between(\"$updatedAt\", start, end);\n\n /**\n * Combine multiple queries using logical OR operator.\n *\n * @param {string[]} queries\n * @returns {string}\n */\n static or = (queries: string[]) =>\n new Query(\"or\", undefined, queries.map((query) => JSONbig.parse(query))).toString();\n\n /**\n * Combine multiple queries using logical AND operator.\n *\n * @param {string[]} queries\n * @returns {string}\n */\n static and = (queries: string[]) =>\n new Query(\"and\", undefined, queries.map((query) => JSONbig.parse(query))).toString();\n\n /**\n * Filter array elements where at least one element matches all the specified queries.\n *\n * @param {string} attribute The attribute containing the array to filter on.\n * @param {string[]} queries The list of query strings to match against array elements.\n * @returns {string}\n */\n static elemMatch = (attribute: string, queries: string[]): string =>\n new Query(\n \"elemMatch\",\n attribute,\n queries.map((query) => JSONbig.parse(query))\n ).toString();\n\n /**\n * Filter resources where attribute is at a specific distance from the given coordinates.\n *\n * @param {string} attribute\n * @param {any[]} values\n * @param {number} distance\n * @param {boolean} meters\n * @returns {string}\n */\n static distanceEqual = (attribute: string, values: any[], distance: number, meters: boolean = true): string =>\n new Query(\"distanceEqual\", attribute, [[values, distance, meters]] as QueryTypesList).toString();\n\n /**\n * Filter resources where attribute is not at a specific distance from the given coordinates.\n *\n * @param {string} attribute\n * @param {any[]} values\n * @param {number} distance\n * @param {boolean} meters\n * @returns {string}\n */\n static distanceNotEqual = (attribute: string, values: any[], distance: number, meters: boolean = true): string =>\n new Query(\"distanceNotEqual\", attribute, [[values, distance, meters]] as QueryTypesList).toString();\n\n /**\n * Filter resources where attribute is at a distance greater than the specified value from the given coordinates.\n *\n * @param {string} attribute\n * @param {any[]} values\n * @param {number} distance\n * @param {boolean} meters\n * @returns {string}\n */\n static distanceGreaterThan = (attribute: string, values: any[], distance: number, meters: boolean = true): string =>\n new Query(\"distanceGreaterThan\", attribute, [[values, distance, meters]] as QueryTypesList).toString();\n\n /**\n * Filter resources where attribute is at a distance less than the specified value from the given coordinates.\n *\n * @param {string} attribute\n * @param {any[]} values\n * @param {number} distance\n * @param {boolean} meters\n * @returns {string}\n */\n static distanceLessThan = (attribute: string, values: any[], distance: number, meters: boolean = true): string =>\n new Query(\"distanceLessThan\", attribute, [[values, distance, meters]] as QueryTypesList).toString();\n\n /**\n * Filter resources where attribute intersects with the given geometry.\n *\n * @param {string} attribute\n * @param {any[]} values\n * @returns {string}\n */\n static intersects = (attribute: string, values: any[]): string =>\n new Query(\"intersects\", attribute, [values]).toString();\n\n /**\n * Filter resources where attribute does not intersect with the given geometry.\n *\n * @param {string} attribute\n * @param {any[]} values\n * @returns {string}\n */\n static notIntersects = (attribute: string, values: any[]): string =>\n new Query(\"notIntersects\", attribute, [values]).toString();\n\n /**\n * Filter resources where attribute crosses the given geometry.\n *\n * @param {string} attribute\n * @param {any[]} values\n * @returns {string}\n */\n static crosses = (attribute: string, values: any[]): string =>\n new Query(\"crosses\", attribute, [values]).toString();\n\n /**\n * Filter resources where attribute does not cross the given geometry.\n *\n * @param {string} attribute\n * @param {any[]} values\n * @returns {string}\n */\n static notCrosses = (attribute: string, values: any[]): string =>\n new Query(\"notCrosses\", attribute, [values]).toString();\n\n /**\n * Filter resources where attribute overlaps with the given geometry.\n *\n * @param {string} attribute\n * @param {any[]} values\n * @returns {string}\n */\n static overlaps = (attribute: string, values: any[]): string =>\n new Query(\"overlaps\", attribute, [values]).toString();\n\n /**\n * Filter resources where attribute does not overlap with the given geometry.\n *\n * @param {string} attribute\n * @param {any[]} values\n * @returns {string}\n */\n static notOverlaps = (attribute: string, values: any[]): string =>\n new Query(\"notOverlaps\", attribute, [values]).toString();\n\n /**\n * Filter resources where attribute touches the given geometry.\n *\n * @param {string} attribute\n * @param {any[]} values\n * @returns {string}\n */\n static touches = (attribute: string, values: any[]): string =>\n new Query(\"touches\", attribute, [values]).toString();\n\n /**\n * Filter resources where attribute does not touch the given geometry.\n *\n * @param {string} attribute\n * @param {any[]} values\n * @returns {string}\n */\n static notTouches = (attribute: string, values: any[]): string =>\n new Query(\"notTouches\", attribute, [values]).toString();\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/query.ts"],"names":["JSONbigModule"],"mappings":"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","file":"query.js","sourcesContent":["import JSONbigModule from 'json-bigint';\nconst JSONbig = JSONbigModule({ useNativeBigInt: true });\n\ntype QueryTypesSingle = string | number | bigint | boolean;\nexport type QueryTypesList = string[] | number[] | bigint[] | boolean[] | Query[] | any[];\nexport type QueryTypes = QueryTypesSingle | QueryTypesList;\ntype AttributesTypes = string | string[];\n\n/**\n * Helper class to generate query strings.\n */\nexport class Query {\n method: string;\n attribute: AttributesTypes | undefined;\n values: QueryTypesList | undefined;\n\n /**\n * Constructor for Query class.\n *\n * @param {string} method\n * @param {AttributesTypes} attribute\n * @param {QueryTypes} values\n */\n constructor(\n method: string,\n attribute?: AttributesTypes,\n values?: QueryTypes\n ) {\n this.method = method;\n this.attribute = attribute;\n\n if (values !== undefined) {\n if (Array.isArray(values)) {\n this.values = values;\n } else {\n this.values = [values] as QueryTypesList;\n }\n }\n }\n\n /**\n * Convert the query object to a JSON string.\n *\n * @returns {string}\n */\n toString(): string {\n return JSONbig.stringify({\n method: this.method,\n attribute: this.attribute,\n values: this.values,\n });\n }\n\n /**\n * Filter resources where attribute is equal to value.\n *\n * @param {string} attribute\n * @param {QueryTypes} value\n * @returns {string}\n */\n static equal = (attribute: string, value: QueryTypes): string =>\n new Query(\"equal\", attribute, value).toString();\n\n /**\n * Filter resources where attribute is not equal to value.\n *\n * @param {string} attribute\n * @param {QueryTypes} value\n * @returns {string}\n */\n static notEqual = (attribute: string, value: QueryTypes): string =>\n new Query(\"notEqual\", attribute, value).toString();\n\n /**\n * Filter resources where attribute matches a regular expression pattern.\n *\n * @param {string} attribute The attribute to filter on.\n * @param {string} pattern The regular expression pattern to match.\n * @returns {string}\n */\n static regex = (attribute: string, pattern: string): string =>\n new Query(\"regex\", attribute, pattern).toString();\n\n /**\n * Filter resources where attribute is less than value.\n *\n * @param {string} attribute\n * @param {QueryTypes} value\n * @returns {string}\n */\n static lessThan = (attribute: string, value: QueryTypes): string =>\n new Query(\"lessThan\", attribute, value).toString();\n\n /**\n * Filter resources where attribute is less than or equal to value.\n *\n * @param {string} attribute\n * @param {QueryTypes} value\n * @returns {string}\n */\n static lessThanEqual = (attribute: string, value: QueryTypes): string =>\n new Query(\"lessThanEqual\", attribute, value).toString();\n\n /**\n * Filter resources where attribute is greater than value.\n *\n * @param {string} attribute\n * @param {QueryTypes} value\n * @returns {string}\n */\n static greaterThan = (attribute: string, value: QueryTypes): string =>\n new Query(\"greaterThan\", attribute, value).toString();\n\n /**\n * Filter resources where attribute is greater than or equal to value.\n *\n * @param {string} attribute\n * @param {QueryTypes} value\n * @returns {string}\n */\n static greaterThanEqual = (attribute: string, value: QueryTypes): string =>\n new Query(\"greaterThanEqual\", attribute, value).toString();\n\n /**\n * Filter resources where attribute is null.\n *\n * @param {string} attribute\n * @returns {string}\n */\n static isNull = (attribute: string): string =>\n new Query(\"isNull\", attribute).toString();\n\n /**\n * Filter resources where attribute is not null.\n *\n * @param {string} attribute\n * @returns {string}\n */\n static isNotNull = (attribute: string): string =>\n new Query(\"isNotNull\", attribute).toString();\n\n /**\n * Filter resources where the specified attributes exist.\n *\n * @param {string[]} attributes The list of attributes that must exist.\n * @returns {string}\n */\n static exists = (attributes: string[]): string =>\n new Query(\"exists\", undefined, attributes).toString();\n\n /**\n * Filter resources where the specified attributes do not exist.\n *\n * @param {string[]} attributes The list of attributes that must not exist.\n * @returns {string}\n */\n static notExists = (attributes: string[]): string =>\n new Query(\"notExists\", undefined, attributes).toString();\n\n /**\n * Filter resources where attribute is between start and end (inclusive).\n *\n * @param {string} attribute\n * @param {string | number | bigint} start\n * @param {string | number | bigint} end\n * @returns {string}\n */\n static between = (attribute: string, start: string | number | bigint, end: string | number | bigint): string =>\n new Query(\"between\", attribute, [start, end] as QueryTypesList).toString();\n\n /**\n * Filter resources where attribute starts with value.\n *\n * @param {string} attribute\n * @param {string} value\n * @returns {string}\n */\n static startsWith = (attribute: string, value: string): string =>\n new Query(\"startsWith\", attribute, value).toString();\n\n /**\n * Filter resources where attribute ends with value.\n *\n * @param {string} attribute\n * @param {string} value\n * @returns {string}\n */\n static endsWith = (attribute: string, value: string): string =>\n new Query(\"endsWith\", attribute, value).toString();\n\n /**\n * Specify which attributes should be returned by the API call.\n *\n * @param {string[]} attributes\n * @returns {string}\n */\n static select = (attributes: string[]): string =>\n new Query(\"select\", undefined, attributes).toString();\n\n /**\n * Filter resources by searching attribute for value.\n * A fulltext index on attribute is required for this query to work.\n *\n * @param {string} attribute\n * @param {string} value\n * @returns {string}\n */\n static search = (attribute: string, value: string): string =>\n new Query(\"search\", attribute, value).toString();\n\n /**\n * Sort results by attribute descending.\n *\n * @param {string} attribute\n * @returns {string}\n */\n static orderDesc = (attribute: string): string =>\n new Query(\"orderDesc\", attribute).toString();\n\n /**\n * Sort results by attribute ascending.\n *\n * @param {string} attribute\n * @returns {string}\n */\n static orderAsc = (attribute: string): string =>\n new Query(\"orderAsc\", attribute).toString();\n\n /**\n * Sort results randomly.\n *\n * @returns {string}\n */\n static orderRandom = (): string =>\n new Query(\"orderRandom\").toString();\n\n /**\n * Return results after documentId.\n *\n * @param {string} documentId\n * @returns {string}\n */\n static cursorAfter = (documentId: string): string =>\n new Query(\"cursorAfter\", undefined, documentId).toString();\n\n /**\n * Return results before documentId.\n *\n * @param {string} documentId\n * @returns {string}\n */\n static cursorBefore = (documentId: string): string =>\n new Query(\"cursorBefore\", undefined, documentId).toString();\n\n /**\n * Return only limit results.\n *\n * @param {number} limit\n * @returns {string}\n */\n static limit = (limit: number): string =>\n new Query(\"limit\", undefined, limit).toString();\n\n /**\n * Filter resources by skipping the first offset results.\n *\n * @param {number} offset\n * @returns {string}\n */\n static offset = (offset: number): string =>\n new Query(\"offset\", undefined, offset).toString();\n\n /**\n * Filter resources where attribute contains the specified value.\n * For string attributes, checks if the string contains the substring.\n *\n * Note: For array attributes, use {@link containsAny} or {@link containsAll} instead.\n * @param {string} attribute\n * @param {string | string[]} value\n * @returns {string}\n */\n static contains = (attribute: string, value: string | any[]): string =>\n new Query(\"contains\", attribute, value).toString();\n\n /**\n * Filter resources where attribute contains ANY of the specified values.\n * For array and relationship attributes, matches documents where the attribute\n * contains at least one of the given values.\n *\n * @param {string} attribute\n * @param {any[]} value\n * @returns {string}\n */\n static containsAny = (attribute: string, value: any[]): string =>\n new Query(\"containsAny\", attribute, value).toString();\n\n /**\n * Filter resources where attribute contains ALL of the specified values.\n * For array and relationship attributes, matches documents where the attribute\n * contains every one of the given values.\n *\n * @param {string} attribute\n * @param {any[]} value\n * @returns {string}\n */\n static containsAll = (attribute: string, value: any[]): string =>\n new Query(\"containsAll\", attribute, value).toString();\n\n /**\n * Filter resources where attribute does not contain the specified value.\n *\n * @param {string} attribute\n * @param {string | any[]} value\n * @returns {string}\n */\n static notContains = (attribute: string, value: string | any[]): string =>\n new Query(\"notContains\", attribute, value).toString();\n\n /**\n * Filter resources by searching attribute for value (inverse of search).\n * A fulltext index on attribute is required for this query to work.\n *\n * @param {string} attribute\n * @param {string} value\n * @returns {string}\n */\n static notSearch = (attribute: string, value: string): string =>\n new Query(\"notSearch\", attribute, value).toString();\n\n /**\n * Filter resources where attribute is not between start and end (exclusive).\n *\n * @param {string} attribute\n * @param {string | number | bigint} start\n * @param {string | number | bigint} end\n * @returns {string}\n */\n static notBetween = (attribute: string, start: string | number | bigint, end: string | number | bigint): string =>\n new Query(\"notBetween\", attribute, [start, end] as QueryTypesList).toString();\n\n /**\n * Filter resources where attribute does not start with value.\n *\n * @param {string} attribute\n * @param {string} value\n * @returns {string}\n */\n static notStartsWith = (attribute: string, value: string): string =>\n new Query(\"notStartsWith\", attribute, value).toString();\n\n /**\n * Filter resources where attribute does not end with value.\n *\n * @param {string} attribute\n * @param {string} value\n * @returns {string}\n */\n static notEndsWith = (attribute: string, value: string): string =>\n new Query(\"notEndsWith\", attribute, value).toString();\n\n /**\n * Filter resources where document was created before date.\n *\n * @param {string} value\n * @returns {string}\n */\n static createdBefore = (value: string): string =>\n Query.lessThan(\"$createdAt\", value);\n\n /**\n * Filter resources where document was created after date.\n *\n * @param {string} value\n * @returns {string}\n */\n static createdAfter = (value: string): string =>\n Query.greaterThan(\"$createdAt\", value);\n\n /**\n * Filter resources where document was created between dates.\n *\n * @param {string} start\n * @param {string} end\n * @returns {string}\n */\n static createdBetween = (start: string, end: string): string =>\n Query.between(\"$createdAt\", start, end);\n\n /**\n * Filter resources where document was updated before date.\n *\n * @param {string} value\n * @returns {string}\n */\n static updatedBefore = (value: string): string =>\n Query.lessThan(\"$updatedAt\", value);\n\n /**\n * Filter resources where document was updated after date.\n *\n * @param {string} value\n * @returns {string}\n */\n static updatedAfter = (value: string): string =>\n Query.greaterThan(\"$updatedAt\", value);\n\n /**\n * Filter resources where document was updated between dates.\n *\n * @param {string} start\n * @param {string} end\n * @returns {string}\n */\n static updatedBetween = (start: string, end: string): string =>\n Query.between(\"$updatedAt\", start, end);\n\n /**\n * Combine multiple queries using logical OR operator.\n *\n * @param {string[]} queries\n * @returns {string}\n */\n static or = (queries: string[]) =>\n new Query(\"or\", undefined, queries.map((query) => JSONbig.parse(query))).toString();\n\n /**\n * Combine multiple queries using logical AND operator.\n *\n * @param {string[]} queries\n * @returns {string}\n */\n static and = (queries: string[]) =>\n new Query(\"and\", undefined, queries.map((query) => JSONbig.parse(query))).toString();\n\n /**\n * Filter array elements where at least one element matches all the specified queries.\n *\n * @param {string} attribute The attribute containing the array to filter on.\n * @param {string[]} queries The list of query strings to match against array elements.\n * @returns {string}\n */\n static elemMatch = (attribute: string, queries: string[]): string =>\n new Query(\n \"elemMatch\",\n attribute,\n queries.map((query) => JSONbig.parse(query))\n ).toString();\n\n /**\n * Filter resources where attribute is at a specific distance from the given coordinates.\n *\n * @param {string} attribute\n * @param {any[]} values\n * @param {number} distance\n * @param {boolean} meters\n * @returns {string}\n */\n static distanceEqual = (attribute: string, values: any[], distance: number, meters: boolean = true): string =>\n new Query(\"distanceEqual\", attribute, [[values, distance, meters]] as QueryTypesList).toString();\n\n /**\n * Filter resources where attribute is not at a specific distance from the given coordinates.\n *\n * @param {string} attribute\n * @param {any[]} values\n * @param {number} distance\n * @param {boolean} meters\n * @returns {string}\n */\n static distanceNotEqual = (attribute: string, values: any[], distance: number, meters: boolean = true): string =>\n new Query(\"distanceNotEqual\", attribute, [[values, distance, meters]] as QueryTypesList).toString();\n\n /**\n * Filter resources where attribute is at a distance greater than the specified value from the given coordinates.\n *\n * @param {string} attribute\n * @param {any[]} values\n * @param {number} distance\n * @param {boolean} meters\n * @returns {string}\n */\n static distanceGreaterThan = (attribute: string, values: any[], distance: number, meters: boolean = true): string =>\n new Query(\"distanceGreaterThan\", attribute, [[values, distance, meters]] as QueryTypesList).toString();\n\n /**\n * Filter resources where attribute is at a distance less than the specified value from the given coordinates.\n *\n * @param {string} attribute\n * @param {any[]} values\n * @param {number} distance\n * @param {boolean} meters\n * @returns {string}\n */\n static distanceLessThan = (attribute: string, values: any[], distance: number, meters: boolean = true): string =>\n new Query(\"distanceLessThan\", attribute, [[values, distance, meters]] as QueryTypesList).toString();\n\n /**\n * Filter resources where attribute intersects with the given geometry.\n *\n * @param {string} attribute\n * @param {any[]} values\n * @returns {string}\n */\n static intersects = (attribute: string, values: any[]): string =>\n new Query(\"intersects\", attribute, [values]).toString();\n\n /**\n * Filter resources where attribute does not intersect with the given geometry.\n *\n * @param {string} attribute\n * @param {any[]} values\n * @returns {string}\n */\n static notIntersects = (attribute: string, values: any[]): string =>\n new Query(\"notIntersects\", attribute, [values]).toString();\n\n /**\n * Filter resources where attribute crosses the given geometry.\n *\n * @param {string} attribute\n * @param {any[]} values\n * @returns {string}\n */\n static crosses = (attribute: string, values: any[]): string =>\n new Query(\"crosses\", attribute, [values]).toString();\n\n /**\n * Filter resources where attribute does not cross the given geometry.\n *\n * @param {string} attribute\n * @param {any[]} values\n * @returns {string}\n */\n static notCrosses = (attribute: string, values: any[]): string =>\n new Query(\"notCrosses\", attribute, [values]).toString();\n\n /**\n * Filter resources where attribute overlaps with the given geometry.\n *\n * @param {string} attribute\n * @param {any[]} values\n * @returns {string}\n */\n static overlaps = (attribute: string, values: any[]): string =>\n new Query(\"overlaps\", attribute, [values]).toString();\n\n /**\n * Filter resources where attribute does not overlap with the given geometry.\n *\n * @param {string} attribute\n * @param {any[]} values\n * @returns {string}\n */\n static notOverlaps = (attribute: string, values: any[]): string =>\n new Query(\"notOverlaps\", attribute, [values]).toString();\n\n /**\n * Filter resources where attribute touches the given geometry.\n *\n * @param {string} attribute\n * @param {any[]} values\n * @returns {string}\n */\n static touches = (attribute: string, values: any[]): string =>\n new Query(\"touches\", attribute, [values]).toString();\n\n /**\n * Filter resources where attribute does not touch the given geometry.\n *\n * @param {string} attribute\n * @param {any[]} values\n * @returns {string}\n */\n static notTouches = (attribute: string, values: any[]): string =>\n new Query(\"notTouches\", attribute, [values]).toString();\n}\n"]}
|
package/dist/query.mjs
CHANGED
package/dist/query.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/query.ts"],"names":[],"mappings":"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","sourcesContent":["import JSONbigModule from 'json-bigint';\nconst JSONbig = JSONbigModule({ useNativeBigInt: true });\n\ntype QueryTypesSingle = string | number | bigint | boolean;\nexport type QueryTypesList = string[] | number[] | bigint[] | boolean[] | Query[] | any[];\nexport type QueryTypes = QueryTypesSingle | QueryTypesList;\ntype AttributesTypes = string | string[];\n\n/**\n * Helper class to generate query strings.\n */\nexport class Query {\n method: string;\n attribute: AttributesTypes | undefined;\n values: QueryTypesList | undefined;\n\n /**\n * Constructor for Query class.\n *\n * @param {string} method\n * @param {AttributesTypes} attribute\n * @param {QueryTypes} values\n */\n constructor(\n method: string,\n attribute?: AttributesTypes,\n values?: QueryTypes\n ) {\n this.method = method;\n this.attribute = attribute;\n\n if (values !== undefined) {\n if (Array.isArray(values)) {\n this.values = values;\n } else {\n this.values = [values] as QueryTypesList;\n }\n }\n }\n\n /**\n * Convert the query object to a JSON string.\n *\n * @returns {string}\n */\n toString(): string {\n return JSONbig.stringify({\n method: this.method,\n attribute: this.attribute,\n values: this.values,\n });\n }\n\n /**\n * Filter resources where attribute is equal to value.\n *\n * @param {string} attribute\n * @param {QueryTypes} value\n * @returns {string}\n */\n static equal = (attribute: string, value: QueryTypes): string =>\n new Query(\"equal\", attribute, value).toString();\n\n /**\n * Filter resources where attribute is not equal to value.\n *\n * @param {string} attribute\n * @param {QueryTypes} value\n * @returns {string}\n */\n static notEqual = (attribute: string, value: QueryTypes): string =>\n new Query(\"notEqual\", attribute, value).toString();\n\n /**\n * Filter resources where attribute matches a regular expression pattern.\n *\n * @param {string} attribute The attribute to filter on.\n * @param {string} pattern The regular expression pattern to match.\n * @returns {string}\n */\n static regex = (attribute: string, pattern: string): string =>\n new Query(\"regex\", attribute, pattern).toString();\n\n /**\n * Filter resources where attribute is less than value.\n *\n * @param {string} attribute\n * @param {QueryTypes} value\n * @returns {string}\n */\n static lessThan = (attribute: string, value: QueryTypes): string =>\n new Query(\"lessThan\", attribute, value).toString();\n\n /**\n * Filter resources where attribute is less than or equal to value.\n *\n * @param {string} attribute\n * @param {QueryTypes} value\n * @returns {string}\n */\n static lessThanEqual = (attribute: string, value: QueryTypes): string =>\n new Query(\"lessThanEqual\", attribute, value).toString();\n\n /**\n * Filter resources where attribute is greater than value.\n *\n * @param {string} attribute\n * @param {QueryTypes} value\n * @returns {string}\n */\n static greaterThan = (attribute: string, value: QueryTypes): string =>\n new Query(\"greaterThan\", attribute, value).toString();\n\n /**\n * Filter resources where attribute is greater than or equal to value.\n *\n * @param {string} attribute\n * @param {QueryTypes} value\n * @returns {string}\n */\n static greaterThanEqual = (attribute: string, value: QueryTypes): string =>\n new Query(\"greaterThanEqual\", attribute, value).toString();\n\n /**\n * Filter resources where attribute is null.\n *\n * @param {string} attribute\n * @returns {string}\n */\n static isNull = (attribute: string): string =>\n new Query(\"isNull\", attribute).toString();\n\n /**\n * Filter resources where attribute is not null.\n *\n * @param {string} attribute\n * @returns {string}\n */\n static isNotNull = (attribute: string): string =>\n new Query(\"isNotNull\", attribute).toString();\n\n /**\n * Filter resources where the specified attributes exist.\n *\n * @param {string[]} attributes The list of attributes that must exist.\n * @returns {string}\n */\n static exists = (attributes: string[]): string =>\n new Query(\"exists\", undefined, attributes).toString();\n\n /**\n * Filter resources where the specified attributes do not exist.\n *\n * @param {string[]} attributes The list of attributes that must not exist.\n * @returns {string}\n */\n static notExists = (attributes: string[]): string =>\n new Query(\"notExists\", undefined, attributes).toString();\n\n /**\n * Filter resources where attribute is between start and end (inclusive).\n *\n * @param {string} attribute\n * @param {string | number | bigint} start\n * @param {string | number | bigint} end\n * @returns {string}\n */\n static between = (attribute: string, start: string | number | bigint, end: string | number | bigint): string =>\n new Query(\"between\", attribute, [start, end] as QueryTypesList).toString();\n\n /**\n * Filter resources where attribute starts with value.\n *\n * @param {string} attribute\n * @param {string} value\n * @returns {string}\n */\n static startsWith = (attribute: string, value: string): string =>\n new Query(\"startsWith\", attribute, value).toString();\n\n /**\n * Filter resources where attribute ends with value.\n *\n * @param {string} attribute\n * @param {string} value\n * @returns {string}\n */\n static endsWith = (attribute: string, value: string): string =>\n new Query(\"endsWith\", attribute, value).toString();\n\n /**\n * Specify which attributes should be returned by the API call.\n *\n * @param {string[]} attributes\n * @returns {string}\n */\n static select = (attributes: string[]): string =>\n new Query(\"select\", undefined, attributes).toString();\n\n /**\n * Filter resources by searching attribute for value.\n * A fulltext index on attribute is required for this query to work.\n *\n * @param {string} attribute\n * @param {string} value\n * @returns {string}\n */\n static search = (attribute: string, value: string): string =>\n new Query(\"search\", attribute, value).toString();\n\n /**\n * Sort results by attribute descending.\n *\n * @param {string} attribute\n * @returns {string}\n */\n static orderDesc = (attribute: string): string =>\n new Query(\"orderDesc\", attribute).toString();\n\n /**\n * Sort results by attribute ascending.\n *\n * @param {string} attribute\n * @returns {string}\n */\n static orderAsc = (attribute: string): string =>\n new Query(\"orderAsc\", attribute).toString();\n\n /**\n * Sort results randomly.\n *\n * @returns {string}\n */\n static orderRandom = (): string =>\n new Query(\"orderRandom\").toString();\n\n /**\n * Return results after documentId.\n *\n * @param {string} documentId\n * @returns {string}\n */\n static cursorAfter = (documentId: string): string =>\n new Query(\"cursorAfter\", undefined, documentId).toString();\n\n /**\n * Return results before documentId.\n *\n * @param {string} documentId\n * @returns {string}\n */\n static cursorBefore = (documentId: string): string =>\n new Query(\"cursorBefore\", undefined, documentId).toString();\n\n /**\n * Return only limit results.\n *\n * @param {number} limit\n * @returns {string}\n */\n static limit = (limit: number): string =>\n new Query(\"limit\", undefined, limit).toString();\n\n /**\n * Filter resources by skipping the first offset results.\n *\n * @param {number} offset\n * @returns {string}\n */\n static offset = (offset: number): string =>\n new Query(\"offset\", undefined, offset).toString();\n\n /**\n * Filter resources where attribute contains the specified value.\n * For string attributes, checks if the string contains the substring.\n *\n * Note: For array attributes, use {@link containsAny} or {@link containsAll} instead.\n * @param {string} attribute\n * @param {string | string[]} value\n * @returns {string}\n */\n static contains = (attribute: string, value: string | any[]): string =>\n new Query(\"contains\", attribute, value).toString();\n\n /**\n * Filter resources where attribute contains ANY of the specified values.\n * For array and relationship attributes, matches documents where the attribute\n * contains at least one of the given values.\n *\n * @param {string} attribute\n * @param {any[]} value\n * @returns {string}\n */\n static containsAny = (attribute: string, value: any[]): string =>\n new Query(\"containsAny\", attribute, value).toString();\n\n /**\n * Filter resources where attribute contains ALL of the specified values.\n * For array and relationship attributes, matches documents where the attribute\n * contains every one of the given values.\n *\n * @param {string} attribute\n * @param {any[]} value\n * @returns {string}\n */\n static containsAll = (attribute: string, value: any[]): string =>\n new Query(\"containsAll\", attribute, value).toString();\n\n /**\n * Filter resources where attribute does not contain the specified value.\n *\n * @param {string} attribute\n * @param {string | any[]} value\n * @returns {string}\n */\n static notContains = (attribute: string, value: string | any[]): string =>\n new Query(\"notContains\", attribute, value).toString();\n\n /**\n * Filter resources by searching attribute for value (inverse of search).\n * A fulltext index on attribute is required for this query to work.\n *\n * @param {string} attribute\n * @param {string} value\n * @returns {string}\n */\n static notSearch = (attribute: string, value: string): string =>\n new Query(\"notSearch\", attribute, value).toString();\n\n /**\n * Filter resources where attribute is not between start and end (exclusive).\n *\n * @param {string} attribute\n * @param {string | number | bigint} start\n * @param {string | number | bigint} end\n * @returns {string}\n */\n static notBetween = (attribute: string, start: string | number | bigint, end: string | number | bigint): string =>\n new Query(\"notBetween\", attribute, [start, end] as QueryTypesList).toString();\n\n /**\n * Filter resources where attribute does not start with value.\n *\n * @param {string} attribute\n * @param {string} value\n * @returns {string}\n */\n static notStartsWith = (attribute: string, value: string): string =>\n new Query(\"notStartsWith\", attribute, value).toString();\n\n /**\n * Filter resources where attribute does not end with value.\n *\n * @param {string} attribute\n * @param {string} value\n * @returns {string}\n */\n static notEndsWith = (attribute: string, value: string): string =>\n new Query(\"notEndsWith\", attribute, value).toString();\n\n /**\n * Filter resources where document was created before date.\n *\n * @param {string} value\n * @returns {string}\n */\n static createdBefore = (value: string): string =>\n Query.lessThan(\"$createdAt\", value);\n\n /**\n * Filter resources where document was created after date.\n *\n * @param {string} value\n * @returns {string}\n */\n static createdAfter = (value: string): string =>\n Query.greaterThan(\"$createdAt\", value);\n\n /**\n * Filter resources where document was created between dates.\n *\n * @param {string} start\n * @param {string} end\n * @returns {string}\n */\n static createdBetween = (start: string, end: string): string =>\n Query.between(\"$createdAt\", start, end);\n\n /**\n * Filter resources where document was updated before date.\n *\n * @param {string} value\n * @returns {string}\n */\n static updatedBefore = (value: string): string =>\n Query.lessThan(\"$updatedAt\", value);\n\n /**\n * Filter resources where document was updated after date.\n *\n * @param {string} value\n * @returns {string}\n */\n static updatedAfter = (value: string): string =>\n Query.greaterThan(\"$updatedAt\", value);\n\n /**\n * Filter resources where document was updated between dates.\n *\n * @param {string} start\n * @param {string} end\n * @returns {string}\n */\n static updatedBetween = (start: string, end: string): string =>\n Query.between(\"$updatedAt\", start, end);\n\n /**\n * Combine multiple queries using logical OR operator.\n *\n * @param {string[]} queries\n * @returns {string}\n */\n static or = (queries: string[]) =>\n new Query(\"or\", undefined, queries.map((query) => JSONbig.parse(query))).toString();\n\n /**\n * Combine multiple queries using logical AND operator.\n *\n * @param {string[]} queries\n * @returns {string}\n */\n static and = (queries: string[]) =>\n new Query(\"and\", undefined, queries.map((query) => JSONbig.parse(query))).toString();\n\n /**\n * Filter array elements where at least one element matches all the specified queries.\n *\n * @param {string} attribute The attribute containing the array to filter on.\n * @param {string[]} queries The list of query strings to match against array elements.\n * @returns {string}\n */\n static elemMatch = (attribute: string, queries: string[]): string =>\n new Query(\n \"elemMatch\",\n attribute,\n queries.map((query) => JSONbig.parse(query))\n ).toString();\n\n /**\n * Filter resources where attribute is at a specific distance from the given coordinates.\n *\n * @param {string} attribute\n * @param {any[]} values\n * @param {number} distance\n * @param {boolean} meters\n * @returns {string}\n */\n static distanceEqual = (attribute: string, values: any[], distance: number, meters: boolean = true): string =>\n new Query(\"distanceEqual\", attribute, [[values, distance, meters]] as QueryTypesList).toString();\n\n /**\n * Filter resources where attribute is not at a specific distance from the given coordinates.\n *\n * @param {string} attribute\n * @param {any[]} values\n * @param {number} distance\n * @param {boolean} meters\n * @returns {string}\n */\n static distanceNotEqual = (attribute: string, values: any[], distance: number, meters: boolean = true): string =>\n new Query(\"distanceNotEqual\", attribute, [[values, distance, meters]] as QueryTypesList).toString();\n\n /**\n * Filter resources where attribute is at a distance greater than the specified value from the given coordinates.\n *\n * @param {string} attribute\n * @param {any[]} values\n * @param {number} distance\n * @param {boolean} meters\n * @returns {string}\n */\n static distanceGreaterThan = (attribute: string, values: any[], distance: number, meters: boolean = true): string =>\n new Query(\"distanceGreaterThan\", attribute, [[values, distance, meters]] as QueryTypesList).toString();\n\n /**\n * Filter resources where attribute is at a distance less than the specified value from the given coordinates.\n *\n * @param {string} attribute\n * @param {any[]} values\n * @param {number} distance\n * @param {boolean} meters\n * @returns {string}\n */\n static distanceLessThan = (attribute: string, values: any[], distance: number, meters: boolean = true): string =>\n new Query(\"distanceLessThan\", attribute, [[values, distance, meters]] as QueryTypesList).toString();\n\n /**\n * Filter resources where attribute intersects with the given geometry.\n *\n * @param {string} attribute\n * @param {any[]} values\n * @returns {string}\n */\n static intersects = (attribute: string, values: any[]): string =>\n new Query(\"intersects\", attribute, [values]).toString();\n\n /**\n * Filter resources where attribute does not intersect with the given geometry.\n *\n * @param {string} attribute\n * @param {any[]} values\n * @returns {string}\n */\n static notIntersects = (attribute: string, values: any[]): string =>\n new Query(\"notIntersects\", attribute, [values]).toString();\n\n /**\n * Filter resources where attribute crosses the given geometry.\n *\n * @param {string} attribute\n * @param {any[]} values\n * @returns {string}\n */\n static crosses = (attribute: string, values: any[]): string =>\n new Query(\"crosses\", attribute, [values]).toString();\n\n /**\n * Filter resources where attribute does not cross the given geometry.\n *\n * @param {string} attribute\n * @param {any[]} values\n * @returns {string}\n */\n static notCrosses = (attribute: string, values: any[]): string =>\n new Query(\"notCrosses\", attribute, [values]).toString();\n\n /**\n * Filter resources where attribute overlaps with the given geometry.\n *\n * @param {string} attribute\n * @param {any[]} values\n * @returns {string}\n */\n static overlaps = (attribute: string, values: any[]): string =>\n new Query(\"overlaps\", attribute, [values]).toString();\n\n /**\n * Filter resources where attribute does not overlap with the given geometry.\n *\n * @param {string} attribute\n * @param {any[]} values\n * @returns {string}\n */\n static notOverlaps = (attribute: string, values: any[]): string =>\n new Query(\"notOverlaps\", attribute, [values]).toString();\n\n /**\n * Filter resources where attribute touches the given geometry.\n *\n * @param {string} attribute\n * @param {any[]} values\n * @returns {string}\n */\n static touches = (attribute: string, values: any[]): string =>\n new Query(\"touches\", attribute, [values]).toString();\n\n /**\n * Filter resources where attribute does not touch the given geometry.\n *\n * @param {string} attribute\n * @param {any[]} values\n * @returns {string}\n */\n static notTouches = (attribute: string, values: any[]): string =>\n new Query(\"notTouches\", attribute, [values]).toString();\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/query.ts"],"names":[],"mappings":"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","file":"query.mjs","sourcesContent":["import JSONbigModule from 'json-bigint';\nconst JSONbig = JSONbigModule({ useNativeBigInt: true });\n\ntype QueryTypesSingle = string | number | bigint | boolean;\nexport type QueryTypesList = string[] | number[] | bigint[] | boolean[] | Query[] | any[];\nexport type QueryTypes = QueryTypesSingle | QueryTypesList;\ntype AttributesTypes = string | string[];\n\n/**\n * Helper class to generate query strings.\n */\nexport class Query {\n method: string;\n attribute: AttributesTypes | undefined;\n values: QueryTypesList | undefined;\n\n /**\n * Constructor for Query class.\n *\n * @param {string} method\n * @param {AttributesTypes} attribute\n * @param {QueryTypes} values\n */\n constructor(\n method: string,\n attribute?: AttributesTypes,\n values?: QueryTypes\n ) {\n this.method = method;\n this.attribute = attribute;\n\n if (values !== undefined) {\n if (Array.isArray(values)) {\n this.values = values;\n } else {\n this.values = [values] as QueryTypesList;\n }\n }\n }\n\n /**\n * Convert the query object to a JSON string.\n *\n * @returns {string}\n */\n toString(): string {\n return JSONbig.stringify({\n method: this.method,\n attribute: this.attribute,\n values: this.values,\n });\n }\n\n /**\n * Filter resources where attribute is equal to value.\n *\n * @param {string} attribute\n * @param {QueryTypes} value\n * @returns {string}\n */\n static equal = (attribute: string, value: QueryTypes): string =>\n new Query(\"equal\", attribute, value).toString();\n\n /**\n * Filter resources where attribute is not equal to value.\n *\n * @param {string} attribute\n * @param {QueryTypes} value\n * @returns {string}\n */\n static notEqual = (attribute: string, value: QueryTypes): string =>\n new Query(\"notEqual\", attribute, value).toString();\n\n /**\n * Filter resources where attribute matches a regular expression pattern.\n *\n * @param {string} attribute The attribute to filter on.\n * @param {string} pattern The regular expression pattern to match.\n * @returns {string}\n */\n static regex = (attribute: string, pattern: string): string =>\n new Query(\"regex\", attribute, pattern).toString();\n\n /**\n * Filter resources where attribute is less than value.\n *\n * @param {string} attribute\n * @param {QueryTypes} value\n * @returns {string}\n */\n static lessThan = (attribute: string, value: QueryTypes): string =>\n new Query(\"lessThan\", attribute, value).toString();\n\n /**\n * Filter resources where attribute is less than or equal to value.\n *\n * @param {string} attribute\n * @param {QueryTypes} value\n * @returns {string}\n */\n static lessThanEqual = (attribute: string, value: QueryTypes): string =>\n new Query(\"lessThanEqual\", attribute, value).toString();\n\n /**\n * Filter resources where attribute is greater than value.\n *\n * @param {string} attribute\n * @param {QueryTypes} value\n * @returns {string}\n */\n static greaterThan = (attribute: string, value: QueryTypes): string =>\n new Query(\"greaterThan\", attribute, value).toString();\n\n /**\n * Filter resources where attribute is greater than or equal to value.\n *\n * @param {string} attribute\n * @param {QueryTypes} value\n * @returns {string}\n */\n static greaterThanEqual = (attribute: string, value: QueryTypes): string =>\n new Query(\"greaterThanEqual\", attribute, value).toString();\n\n /**\n * Filter resources where attribute is null.\n *\n * @param {string} attribute\n * @returns {string}\n */\n static isNull = (attribute: string): string =>\n new Query(\"isNull\", attribute).toString();\n\n /**\n * Filter resources where attribute is not null.\n *\n * @param {string} attribute\n * @returns {string}\n */\n static isNotNull = (attribute: string): string =>\n new Query(\"isNotNull\", attribute).toString();\n\n /**\n * Filter resources where the specified attributes exist.\n *\n * @param {string[]} attributes The list of attributes that must exist.\n * @returns {string}\n */\n static exists = (attributes: string[]): string =>\n new Query(\"exists\", undefined, attributes).toString();\n\n /**\n * Filter resources where the specified attributes do not exist.\n *\n * @param {string[]} attributes The list of attributes that must not exist.\n * @returns {string}\n */\n static notExists = (attributes: string[]): string =>\n new Query(\"notExists\", undefined, attributes).toString();\n\n /**\n * Filter resources where attribute is between start and end (inclusive).\n *\n * @param {string} attribute\n * @param {string | number | bigint} start\n * @param {string | number | bigint} end\n * @returns {string}\n */\n static between = (attribute: string, start: string | number | bigint, end: string | number | bigint): string =>\n new Query(\"between\", attribute, [start, end] as QueryTypesList).toString();\n\n /**\n * Filter resources where attribute starts with value.\n *\n * @param {string} attribute\n * @param {string} value\n * @returns {string}\n */\n static startsWith = (attribute: string, value: string): string =>\n new Query(\"startsWith\", attribute, value).toString();\n\n /**\n * Filter resources where attribute ends with value.\n *\n * @param {string} attribute\n * @param {string} value\n * @returns {string}\n */\n static endsWith = (attribute: string, value: string): string =>\n new Query(\"endsWith\", attribute, value).toString();\n\n /**\n * Specify which attributes should be returned by the API call.\n *\n * @param {string[]} attributes\n * @returns {string}\n */\n static select = (attributes: string[]): string =>\n new Query(\"select\", undefined, attributes).toString();\n\n /**\n * Filter resources by searching attribute for value.\n * A fulltext index on attribute is required for this query to work.\n *\n * @param {string} attribute\n * @param {string} value\n * @returns {string}\n */\n static search = (attribute: string, value: string): string =>\n new Query(\"search\", attribute, value).toString();\n\n /**\n * Sort results by attribute descending.\n *\n * @param {string} attribute\n * @returns {string}\n */\n static orderDesc = (attribute: string): string =>\n new Query(\"orderDesc\", attribute).toString();\n\n /**\n * Sort results by attribute ascending.\n *\n * @param {string} attribute\n * @returns {string}\n */\n static orderAsc = (attribute: string): string =>\n new Query(\"orderAsc\", attribute).toString();\n\n /**\n * Sort results randomly.\n *\n * @returns {string}\n */\n static orderRandom = (): string =>\n new Query(\"orderRandom\").toString();\n\n /**\n * Return results after documentId.\n *\n * @param {string} documentId\n * @returns {string}\n */\n static cursorAfter = (documentId: string): string =>\n new Query(\"cursorAfter\", undefined, documentId).toString();\n\n /**\n * Return results before documentId.\n *\n * @param {string} documentId\n * @returns {string}\n */\n static cursorBefore = (documentId: string): string =>\n new Query(\"cursorBefore\", undefined, documentId).toString();\n\n /**\n * Return only limit results.\n *\n * @param {number} limit\n * @returns {string}\n */\n static limit = (limit: number): string =>\n new Query(\"limit\", undefined, limit).toString();\n\n /**\n * Filter resources by skipping the first offset results.\n *\n * @param {number} offset\n * @returns {string}\n */\n static offset = (offset: number): string =>\n new Query(\"offset\", undefined, offset).toString();\n\n /**\n * Filter resources where attribute contains the specified value.\n * For string attributes, checks if the string contains the substring.\n *\n * Note: For array attributes, use {@link containsAny} or {@link containsAll} instead.\n * @param {string} attribute\n * @param {string | string[]} value\n * @returns {string}\n */\n static contains = (attribute: string, value: string | any[]): string =>\n new Query(\"contains\", attribute, value).toString();\n\n /**\n * Filter resources where attribute contains ANY of the specified values.\n * For array and relationship attributes, matches documents where the attribute\n * contains at least one of the given values.\n *\n * @param {string} attribute\n * @param {any[]} value\n * @returns {string}\n */\n static containsAny = (attribute: string, value: any[]): string =>\n new Query(\"containsAny\", attribute, value).toString();\n\n /**\n * Filter resources where attribute contains ALL of the specified values.\n * For array and relationship attributes, matches documents where the attribute\n * contains every one of the given values.\n *\n * @param {string} attribute\n * @param {any[]} value\n * @returns {string}\n */\n static containsAll = (attribute: string, value: any[]): string =>\n new Query(\"containsAll\", attribute, value).toString();\n\n /**\n * Filter resources where attribute does not contain the specified value.\n *\n * @param {string} attribute\n * @param {string | any[]} value\n * @returns {string}\n */\n static notContains = (attribute: string, value: string | any[]): string =>\n new Query(\"notContains\", attribute, value).toString();\n\n /**\n * Filter resources by searching attribute for value (inverse of search).\n * A fulltext index on attribute is required for this query to work.\n *\n * @param {string} attribute\n * @param {string} value\n * @returns {string}\n */\n static notSearch = (attribute: string, value: string): string =>\n new Query(\"notSearch\", attribute, value).toString();\n\n /**\n * Filter resources where attribute is not between start and end (exclusive).\n *\n * @param {string} attribute\n * @param {string | number | bigint} start\n * @param {string | number | bigint} end\n * @returns {string}\n */\n static notBetween = (attribute: string, start: string | number | bigint, end: string | number | bigint): string =>\n new Query(\"notBetween\", attribute, [start, end] as QueryTypesList).toString();\n\n /**\n * Filter resources where attribute does not start with value.\n *\n * @param {string} attribute\n * @param {string} value\n * @returns {string}\n */\n static notStartsWith = (attribute: string, value: string): string =>\n new Query(\"notStartsWith\", attribute, value).toString();\n\n /**\n * Filter resources where attribute does not end with value.\n *\n * @param {string} attribute\n * @param {string} value\n * @returns {string}\n */\n static notEndsWith = (attribute: string, value: string): string =>\n new Query(\"notEndsWith\", attribute, value).toString();\n\n /**\n * Filter resources where document was created before date.\n *\n * @param {string} value\n * @returns {string}\n */\n static createdBefore = (value: string): string =>\n Query.lessThan(\"$createdAt\", value);\n\n /**\n * Filter resources where document was created after date.\n *\n * @param {string} value\n * @returns {string}\n */\n static createdAfter = (value: string): string =>\n Query.greaterThan(\"$createdAt\", value);\n\n /**\n * Filter resources where document was created between dates.\n *\n * @param {string} start\n * @param {string} end\n * @returns {string}\n */\n static createdBetween = (start: string, end: string): string =>\n Query.between(\"$createdAt\", start, end);\n\n /**\n * Filter resources where document was updated before date.\n *\n * @param {string} value\n * @returns {string}\n */\n static updatedBefore = (value: string): string =>\n Query.lessThan(\"$updatedAt\", value);\n\n /**\n * Filter resources where document was updated after date.\n *\n * @param {string} value\n * @returns {string}\n */\n static updatedAfter = (value: string): string =>\n Query.greaterThan(\"$updatedAt\", value);\n\n /**\n * Filter resources where document was updated between dates.\n *\n * @param {string} start\n * @param {string} end\n * @returns {string}\n */\n static updatedBetween = (start: string, end: string): string =>\n Query.between(\"$updatedAt\", start, end);\n\n /**\n * Combine multiple queries using logical OR operator.\n *\n * @param {string[]} queries\n * @returns {string}\n */\n static or = (queries: string[]) =>\n new Query(\"or\", undefined, queries.map((query) => JSONbig.parse(query))).toString();\n\n /**\n * Combine multiple queries using logical AND operator.\n *\n * @param {string[]} queries\n * @returns {string}\n */\n static and = (queries: string[]) =>\n new Query(\"and\", undefined, queries.map((query) => JSONbig.parse(query))).toString();\n\n /**\n * Filter array elements where at least one element matches all the specified queries.\n *\n * @param {string} attribute The attribute containing the array to filter on.\n * @param {string[]} queries The list of query strings to match against array elements.\n * @returns {string}\n */\n static elemMatch = (attribute: string, queries: string[]): string =>\n new Query(\n \"elemMatch\",\n attribute,\n queries.map((query) => JSONbig.parse(query))\n ).toString();\n\n /**\n * Filter resources where attribute is at a specific distance from the given coordinates.\n *\n * @param {string} attribute\n * @param {any[]} values\n * @param {number} distance\n * @param {boolean} meters\n * @returns {string}\n */\n static distanceEqual = (attribute: string, values: any[], distance: number, meters: boolean = true): string =>\n new Query(\"distanceEqual\", attribute, [[values, distance, meters]] as QueryTypesList).toString();\n\n /**\n * Filter resources where attribute is not at a specific distance from the given coordinates.\n *\n * @param {string} attribute\n * @param {any[]} values\n * @param {number} distance\n * @param {boolean} meters\n * @returns {string}\n */\n static distanceNotEqual = (attribute: string, values: any[], distance: number, meters: boolean = true): string =>\n new Query(\"distanceNotEqual\", attribute, [[values, distance, meters]] as QueryTypesList).toString();\n\n /**\n * Filter resources where attribute is at a distance greater than the specified value from the given coordinates.\n *\n * @param {string} attribute\n * @param {any[]} values\n * @param {number} distance\n * @param {boolean} meters\n * @returns {string}\n */\n static distanceGreaterThan = (attribute: string, values: any[], distance: number, meters: boolean = true): string =>\n new Query(\"distanceGreaterThan\", attribute, [[values, distance, meters]] as QueryTypesList).toString();\n\n /**\n * Filter resources where attribute is at a distance less than the specified value from the given coordinates.\n *\n * @param {string} attribute\n * @param {any[]} values\n * @param {number} distance\n * @param {boolean} meters\n * @returns {string}\n */\n static distanceLessThan = (attribute: string, values: any[], distance: number, meters: boolean = true): string =>\n new Query(\"distanceLessThan\", attribute, [[values, distance, meters]] as QueryTypesList).toString();\n\n /**\n * Filter resources where attribute intersects with the given geometry.\n *\n * @param {string} attribute\n * @param {any[]} values\n * @returns {string}\n */\n static intersects = (attribute: string, values: any[]): string =>\n new Query(\"intersects\", attribute, [values]).toString();\n\n /**\n * Filter resources where attribute does not intersect with the given geometry.\n *\n * @param {string} attribute\n * @param {any[]} values\n * @returns {string}\n */\n static notIntersects = (attribute: string, values: any[]): string =>\n new Query(\"notIntersects\", attribute, [values]).toString();\n\n /**\n * Filter resources where attribute crosses the given geometry.\n *\n * @param {string} attribute\n * @param {any[]} values\n * @returns {string}\n */\n static crosses = (attribute: string, values: any[]): string =>\n new Query(\"crosses\", attribute, [values]).toString();\n\n /**\n * Filter resources where attribute does not cross the given geometry.\n *\n * @param {string} attribute\n * @param {any[]} values\n * @returns {string}\n */\n static notCrosses = (attribute: string, values: any[]): string =>\n new Query(\"notCrosses\", attribute, [values]).toString();\n\n /**\n * Filter resources where attribute overlaps with the given geometry.\n *\n * @param {string} attribute\n * @param {any[]} values\n * @returns {string}\n */\n static overlaps = (attribute: string, values: any[]): string =>\n new Query(\"overlaps\", attribute, [values]).toString();\n\n /**\n * Filter resources where attribute does not overlap with the given geometry.\n *\n * @param {string} attribute\n * @param {any[]} values\n * @returns {string}\n */\n static notOverlaps = (attribute: string, values: any[]): string =>\n new Query(\"notOverlaps\", attribute, [values]).toString();\n\n /**\n * Filter resources where attribute touches the given geometry.\n *\n * @param {string} attribute\n * @param {any[]} values\n * @returns {string}\n */\n static touches = (attribute: string, values: any[]): string =>\n new Query(\"touches\", attribute, [values]).toString();\n\n /**\n * Filter resources where attribute does not touch the given geometry.\n *\n * @param {string} attribute\n * @param {any[]} values\n * @returns {string}\n */\n static notTouches = (attribute: string, values: any[]): string =>\n new Query(\"notTouches\", attribute, [values]).toString();\n}\n"]}
|
package/dist/role.js
CHANGED
package/dist/role.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/role.ts"],"names":[],"mappings":"AAGO,MAAM,
|
|
1
|
+
{"version":3,"sources":["../src/role.ts"],"names":[],"mappings":";;AAGO,MAAM,IAAA,CAAK;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASd,OAAc,GAAA,GAAc;AACxB,IAAA,OAAO,KAAA;AAAA,EACX;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYA,OAAc,IAAA,CAAK,EAAA,EAAY,MAAA,GAAiB,EAAA,EAAY;AACxD,IAAA,IAAI,WAAW,EAAA,EAAI;AACf,MAAA,OAAO,QAAQ,EAAE,CAAA,CAAA;AAAA,IACrB;AACA,IAAA,OAAO,CAAA,KAAA,EAAQ,EAAE,CAAA,CAAA,EAAI,MAAM,CAAA,CAAA;AAAA,EAC/B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAWA,OAAc,KAAA,CAAM,MAAA,GAAiB,EAAA,EAAY;AAC7C,IAAA,IAAI,WAAW,EAAA,EAAI;AACf,MAAA,OAAO,OAAA;AAAA,IACX;AACA,IAAA,OAAO,SAAS,MAAM,CAAA,CAAA;AAAA,EAC1B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASA,OAAc,MAAA,GAAiB;AAC3B,IAAA,OAAO,QAAA;AAAA,EACX;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYA,OAAc,IAAA,CAAK,EAAA,EAAY,IAAA,GAAe,EAAA,EAAY;AACtD,IAAA,IAAI,SAAS,EAAA,EAAI;AACb,MAAA,OAAO,QAAQ,EAAE,CAAA,CAAA;AAAA,IACrB;AACA,IAAA,OAAO,CAAA,KAAA,EAAQ,EAAE,CAAA,CAAA,EAAI,IAAI,CAAA,CAAA;AAAA,EAC7B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAWA,OAAc,OAAO,EAAA,EAAoB;AACrC,IAAA,OAAO,UAAU,EAAE,CAAA,CAAA;AAAA,EACvB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA,OAAc,MAAM,IAAA,EAAsB;AACtC,IAAA,OAAO,SAAS,IAAI,CAAA,CAAA;AAAA,EACxB;AACJ","file":"role.js","sourcesContent":["/**\n * Helper class to generate role strings for `Permission`.\n */\nexport class Role {\n\n /**\n * Grants access to anyone.\n * \n * This includes authenticated and unauthenticated users.\n * \n * @returns {string}\n */\n public static any(): string {\n return 'any'\n }\n\n /**\n * Grants access to a specific user by user ID.\n * \n * You can optionally pass verified or unverified for\n * `status` to target specific types of users.\n *\n * @param {string} id \n * @param {string} status \n * @returns {string}\n */\n public static user(id: string, status: string = ''): string {\n if (status === '') {\n return `user:${id}`\n }\n return `user:${id}/${status}`\n }\n\n /**\n * Grants access to any authenticated or anonymous user.\n * \n * You can optionally pass verified or unverified for\n * `status` to target specific types of users.\n * \n * @param {string} status \n * @returns {string}\n */\n public static users(status: string = ''): string {\n if (status === '') {\n return 'users'\n }\n return `users/${status}`\n }\n\n /**\n * Grants access to any guest user without a session.\n * \n * Authenticated users don't have access to this role.\n * \n * @returns {string}\n */\n public static guests(): string {\n return 'guests'\n }\n\n /**\n * Grants access to a team by team ID.\n * \n * You can optionally pass a role for `role` to target\n * team members with the specified role.\n * \n * @param {string} id \n * @param {string} role \n * @returns {string}\n */\n public static team(id: string, role: string = ''): string {\n if (role === '') {\n return `team:${id}`\n }\n return `team:${id}/${role}`\n }\n\n /**\n * Grants access to a specific member of a team.\n * \n * When the member is removed from the team, they will\n * no longer have access.\n * \n * @param {string} id \n * @returns {string}\n */\n public static member(id: string): string {\n return `member:${id}`\n }\n\n /**\n * Grants access to a user with the specified label.\n * \n * @param {string} name \n * @returns {string}\n */\n public static label(name: string): string {\n return `label:${name}`\n }\n}"]}
|
package/dist/role.mjs
CHANGED
package/dist/role.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/role.ts"],"names":[],"mappings":";AAGO,IAAM,OAAN,MAAW;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASd,OAAc,
|
|
1
|
+
{"version":3,"sources":["../src/role.ts"],"names":[],"mappings":";AAGO,IAAM,OAAN,MAAW;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASd,OAAc,GAAA,GAAc;AACxB,IAAA,OAAO,KAAA;AAAA,EACX;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYA,OAAc,IAAA,CAAK,EAAA,EAAY,MAAA,GAAiB,EAAA,EAAY;AACxD,IAAA,IAAI,WAAW,EAAA,EAAI;AACf,MAAA,OAAO,QAAQ,EAAE,CAAA,CAAA;AAAA,IACrB;AACA,IAAA,OAAO,CAAA,KAAA,EAAQ,EAAE,CAAA,CAAA,EAAI,MAAM,CAAA,CAAA;AAAA,EAC/B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAWA,OAAc,KAAA,CAAM,MAAA,GAAiB,EAAA,EAAY;AAC7C,IAAA,IAAI,WAAW,EAAA,EAAI;AACf,MAAA,OAAO,OAAA;AAAA,IACX;AACA,IAAA,OAAO,SAAS,MAAM,CAAA,CAAA;AAAA,EAC1B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASA,OAAc,MAAA,GAAiB;AAC3B,IAAA,OAAO,QAAA;AAAA,EACX;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYA,OAAc,IAAA,CAAK,EAAA,EAAY,IAAA,GAAe,EAAA,EAAY;AACtD,IAAA,IAAI,SAAS,EAAA,EAAI;AACb,MAAA,OAAO,QAAQ,EAAE,CAAA,CAAA;AAAA,IACrB;AACA,IAAA,OAAO,CAAA,KAAA,EAAQ,EAAE,CAAA,CAAA,EAAI,IAAI,CAAA,CAAA;AAAA,EAC7B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAWA,OAAc,OAAO,EAAA,EAAoB;AACrC,IAAA,OAAO,UAAU,EAAE,CAAA,CAAA;AAAA,EACvB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA,OAAc,MAAM,IAAA,EAAsB;AACtC,IAAA,OAAO,SAAS,IAAI,CAAA,CAAA;AAAA,EACxB;AACJ","file":"role.mjs","sourcesContent":["/**\n * Helper class to generate role strings for `Permission`.\n */\nexport class Role {\n\n /**\n * Grants access to anyone.\n * \n * This includes authenticated and unauthenticated users.\n * \n * @returns {string}\n */\n public static any(): string {\n return 'any'\n }\n\n /**\n * Grants access to a specific user by user ID.\n * \n * You can optionally pass verified or unverified for\n * `status` to target specific types of users.\n *\n * @param {string} id \n * @param {string} status \n * @returns {string}\n */\n public static user(id: string, status: string = ''): string {\n if (status === '') {\n return `user:${id}`\n }\n return `user:${id}/${status}`\n }\n\n /**\n * Grants access to any authenticated or anonymous user.\n * \n * You can optionally pass verified or unverified for\n * `status` to target specific types of users.\n * \n * @param {string} status \n * @returns {string}\n */\n public static users(status: string = ''): string {\n if (status === '') {\n return 'users'\n }\n return `users/${status}`\n }\n\n /**\n * Grants access to any guest user without a session.\n * \n * Authenticated users don't have access to this role.\n * \n * @returns {string}\n */\n public static guests(): string {\n return 'guests'\n }\n\n /**\n * Grants access to a team by team ID.\n * \n * You can optionally pass a role for `role` to target\n * team members with the specified role.\n * \n * @param {string} id \n * @param {string} role \n * @returns {string}\n */\n public static team(id: string, role: string = ''): string {\n if (role === '') {\n return `team:${id}`\n }\n return `team:${id}/${role}`\n }\n\n /**\n * Grants access to a specific member of a team.\n * \n * When the member is removed from the team, they will\n * no longer have access.\n * \n * @param {string} id \n * @returns {string}\n */\n public static member(id: string): string {\n return `member:${id}`\n }\n\n /**\n * Grants access to a user with the specified label.\n * \n * @param {string} name \n * @returns {string}\n */\n public static label(name: string): string {\n return `label:${name}`\n }\n}"]}
|