node-appwrite 12.0.1 → 13.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 +131 -0
- package/dist/client.d.ts +131 -0
- package/dist/client.js +302 -0
- package/dist/client.js.map +1 -0
- package/dist/client.mjs +296 -0
- package/dist/client.mjs.map +1 -0
- package/dist/enums/authentication-factor.d.mts +8 -0
- package/dist/enums/authentication-factor.d.ts +8 -0
- package/dist/enums/authentication-factor.js +13 -0
- package/dist/enums/authentication-factor.js.map +1 -0
- package/dist/enums/authentication-factor.mjs +12 -0
- package/dist/enums/authentication-factor.mjs.map +1 -0
- package/dist/enums/authenticator-type.d.mts +5 -0
- package/dist/enums/authenticator-type.d.ts +5 -0
- package/dist/enums/authenticator-type.js +10 -0
- package/dist/enums/authenticator-type.js.map +1 -0
- package/dist/enums/authenticator-type.mjs +9 -0
- package/dist/enums/authenticator-type.mjs.map +1 -0
- package/dist/enums/browser.d.mts +18 -0
- package/dist/enums/browser.d.ts +18 -0
- package/dist/enums/browser.js +23 -0
- package/dist/enums/browser.js.map +1 -0
- package/dist/enums/browser.mjs +22 -0
- package/dist/enums/browser.mjs.map +1 -0
- package/dist/enums/compression.d.mts +7 -0
- package/dist/enums/compression.d.ts +7 -0
- package/dist/enums/compression.js +12 -0
- package/dist/enums/compression.js.map +1 -0
- package/dist/enums/compression.mjs +11 -0
- package/dist/enums/compression.mjs.map +1 -0
- package/dist/enums/credit-card.d.mts +20 -0
- package/dist/enums/credit-card.d.ts +20 -0
- package/dist/enums/credit-card.js +25 -0
- package/dist/enums/credit-card.js.map +1 -0
- package/dist/enums/credit-card.mjs +24 -0
- package/dist/enums/credit-card.mjs.map +1 -0
- package/dist/enums/execution-method.d.mts +10 -0
- package/dist/enums/execution-method.d.ts +10 -0
- package/dist/enums/execution-method.js +15 -0
- package/dist/enums/execution-method.js.map +1 -0
- package/dist/enums/execution-method.mjs +14 -0
- package/dist/enums/execution-method.mjs.map +1 -0
- package/dist/enums/flag.d.mts +199 -0
- package/dist/enums/flag.d.ts +199 -0
- package/dist/enums/flag.js +204 -0
- package/dist/enums/flag.js.map +1 -0
- package/dist/enums/flag.mjs +203 -0
- package/dist/enums/flag.mjs.map +1 -0
- package/dist/enums/image-format.d.mts +9 -0
- package/dist/enums/image-format.d.ts +9 -0
- package/dist/enums/image-format.js +14 -0
- package/dist/enums/image-format.js.map +1 -0
- package/dist/enums/image-format.mjs +13 -0
- package/dist/enums/image-format.mjs.map +1 -0
- package/dist/enums/image-gravity.d.mts +13 -0
- package/dist/enums/image-gravity.d.ts +13 -0
- package/dist/enums/image-gravity.js +18 -0
- package/dist/enums/image-gravity.js.map +1 -0
- package/dist/enums/image-gravity.mjs +17 -0
- package/dist/enums/image-gravity.mjs.map +1 -0
- package/dist/enums/index-type.d.mts +7 -0
- package/dist/enums/index-type.d.ts +7 -0
- package/dist/enums/index-type.js +12 -0
- package/dist/enums/index-type.js.map +1 -0
- package/dist/enums/index-type.mjs +11 -0
- package/dist/enums/index-type.mjs.map +1 -0
- package/dist/enums/messaging-provider-type.d.mts +7 -0
- package/dist/enums/messaging-provider-type.d.ts +7 -0
- package/dist/enums/messaging-provider-type.js +12 -0
- package/dist/enums/messaging-provider-type.js.map +1 -0
- package/dist/enums/messaging-provider-type.mjs +11 -0
- package/dist/enums/messaging-provider-type.mjs.map +1 -0
- package/dist/enums/name.d.mts +16 -0
- package/dist/enums/name.d.ts +16 -0
- package/dist/enums/name.js +21 -0
- package/dist/enums/name.js.map +1 -0
- package/dist/enums/name.mjs +20 -0
- package/dist/enums/name.mjs.map +1 -0
- package/dist/enums/o-auth-provider.d.mts +43 -0
- package/dist/enums/o-auth-provider.d.ts +43 -0
- package/dist/enums/o-auth-provider.js +48 -0
- package/dist/enums/o-auth-provider.js.map +1 -0
- package/dist/enums/o-auth-provider.mjs +47 -0
- package/dist/enums/o-auth-provider.mjs.map +1 -0
- package/dist/enums/password-hash.d.mts +15 -0
- package/dist/enums/password-hash.d.ts +15 -0
- package/dist/enums/password-hash.js +20 -0
- package/dist/enums/password-hash.js.map +1 -0
- package/dist/enums/password-hash.mjs +19 -0
- package/dist/enums/password-hash.mjs.map +1 -0
- package/dist/enums/relation-mutate.d.mts +7 -0
- package/dist/enums/relation-mutate.d.ts +7 -0
- package/dist/enums/relation-mutate.js +12 -0
- package/dist/enums/relation-mutate.js.map +1 -0
- package/dist/enums/relation-mutate.mjs +11 -0
- package/dist/enums/relation-mutate.mjs.map +1 -0
- package/dist/enums/relationship-type.d.mts +8 -0
- package/dist/enums/relationship-type.d.ts +8 -0
- package/dist/enums/relationship-type.js +13 -0
- package/dist/enums/relationship-type.js.map +1 -0
- package/dist/enums/relationship-type.mjs +12 -0
- package/dist/enums/relationship-type.mjs.map +1 -0
- package/dist/enums/runtime.d.mts +49 -0
- package/dist/enums/runtime.d.ts +49 -0
- package/dist/enums/runtime.js +54 -0
- package/dist/enums/runtime.js.map +1 -0
- package/dist/enums/runtime.mjs +53 -0
- package/dist/enums/runtime.mjs.map +1 -0
- package/dist/enums/smtp-encryption.d.mts +7 -0
- package/dist/enums/smtp-encryption.d.ts +7 -0
- package/dist/enums/smtp-encryption.js +12 -0
- package/dist/enums/smtp-encryption.js.map +1 -0
- package/dist/enums/smtp-encryption.mjs +11 -0
- package/dist/enums/smtp-encryption.mjs.map +1 -0
- package/dist/id.d.mts +7 -0
- package/dist/id.d.ts +7 -0
- package/dist/id.js +29 -0
- package/dist/id.js.map +1 -0
- package/dist/id.mjs +28 -0
- package/dist/id.mjs.map +1 -0
- package/dist/index.d.mts +35 -0
- package/dist/index.d.ts +35 -0
- package/dist/index.js +180 -0
- package/dist/index.js.map +1 -0
- package/dist/index.mjs +35 -0
- package/dist/index.mjs.map +1 -0
- package/dist/inputFile.d.mts +9 -0
- package/dist/inputFile.d.ts +9 -0
- package/dist/inputFile.js +23 -0
- package/dist/inputFile.js.map +1 -0
- package/dist/inputFile.mjs +22 -0
- package/dist/inputFile.mjs.map +1 -0
- package/dist/models.d.mts +2414 -0
- package/dist/models.d.ts +2414 -0
- package/dist/models.js +4 -0
- package/dist/models.js.map +1 -0
- package/dist/models.mjs +3 -0
- package/dist/models.mjs.map +1 -0
- package/dist/permission.d.mts +9 -0
- package/dist/permission.d.ts +9 -0
- package/dist/permission.js +23 -0
- package/dist/permission.js.map +1 -0
- package/dist/permission.mjs +22 -0
- package/dist/permission.mjs.map +1 -0
- package/dist/query.d.mts +35 -0
- package/dist/query.d.ts +35 -0
- package/dist/query.js +49 -0
- package/dist/query.js.map +1 -0
- package/dist/query.mjs +48 -0
- package/dist/query.mjs.map +1 -0
- package/{lib/role.js → dist/role.d.mts} +18 -48
- package/dist/role.d.ts +72 -0
- package/dist/role.js +96 -0
- package/dist/role.js.map +1 -0
- package/dist/role.mjs +95 -0
- package/dist/role.mjs.map +1 -0
- package/dist/services/account.d.mts +478 -0
- package/dist/services/account.d.ts +478 -0
- package/dist/services/account.js +1331 -0
- package/dist/services/account.js.map +1 -0
- package/dist/services/account.mjs +1330 -0
- package/dist/services/account.mjs.map +1 -0
- package/dist/services/avatars.d.mts +118 -0
- package/dist/services/avatars.d.ts +118 -0
- package/dist/services/avatars.js +297 -0
- package/dist/services/avatars.js.map +1 -0
- package/dist/services/avatars.mjs +296 -0
- package/dist/services/avatars.mjs.map +1 -0
- package/dist/services/databases.d.mts +606 -0
- package/dist/services/databases.d.ts +606 -0
- package/dist/services/databases.js +1908 -0
- package/dist/services/databases.js.map +1 -0
- package/dist/services/databases.mjs +1907 -0
- package/dist/services/databases.mjs.map +1 -0
- package/dist/services/functions.d.mts +287 -0
- package/dist/services/functions.d.ts +287 -0
- package/dist/services/functions.js +837 -0
- package/dist/services/functions.js.map +1 -0
- package/dist/services/functions.mjs +836 -0
- package/dist/services/functions.mjs.map +1 -0
- package/dist/services/graphql.d.mts +30 -0
- package/dist/services/graphql.d.ts +30 -0
- package/dist/services/graphql.js +73 -0
- package/dist/services/graphql.js.map +1 -0
- package/dist/services/graphql.mjs +72 -0
- package/dist/services/graphql.mjs.map +1 -0
- package/dist/services/health.d.mts +235 -0
- package/dist/services/health.d.ts +235 -0
- package/dist/services/health.js +584 -0
- package/dist/services/health.js.map +1 -0
- package/dist/services/health.mjs +583 -0
- package/dist/services/health.mjs.map +1 -0
- package/dist/services/locale.d.mts +84 -0
- package/dist/services/locale.d.ts +84 -0
- package/dist/services/locale.js +189 -0
- package/dist/services/locale.js.map +1 -0
- package/dist/services/locale.mjs +188 -0
- package/dist/services/locale.mjs.map +1 -0
- package/dist/services/messaging.d.mts +689 -0
- package/dist/services/messaging.d.ts +689 -0
- package/dist/services/messaging.js +2156 -0
- package/dist/services/messaging.js.map +1 -0
- package/dist/services/messaging.mjs +2155 -0
- package/dist/services/messaging.mjs.map +1 -0
- package/dist/services/storage.d.mts +193 -0
- package/dist/services/storage.d.ts +193 -0
- package/dist/services/storage.js +550 -0
- package/dist/services/storage.js.map +1 -0
- package/dist/services/storage.mjs +549 -0
- package/dist/services/storage.mjs.map +1 -0
- package/dist/services/teams.d.mts +171 -0
- package/dist/services/teams.d.ts +171 -0
- package/dist/services/teams.js +466 -0
- package/dist/services/teams.js.map +1 -0
- package/dist/services/teams.mjs +465 -0
- package/dist/services/teams.mjs.map +1 -0
- package/dist/services/users.d.mts +491 -0
- package/dist/services/users.d.ts +491 -0
- package/dist/services/users.js +1465 -0
- package/dist/services/users.js.map +1 -0
- package/dist/services/users.mjs +1464 -0
- package/dist/services/users.mjs.map +1 -0
- package/package.json +39 -5
- package/.github/ISSUE_TEMPLATE/bug.yaml +0 -82
- package/.github/ISSUE_TEMPLATE/documentation.yaml +0 -32
- package/.github/ISSUE_TEMPLATE/feature.yaml +0 -40
- package/.travis.yml +0 -25
- package/CHANGELOG.md +0 -1
- package/docs/examples/account/create-anonymous-session.md +0 -9
- package/docs/examples/account/create-email-password-session.md +0 -12
- package/docs/examples/account/create-email-token.md +0 -13
- package/docs/examples/account/create-j-w-t.md +0 -9
- package/docs/examples/account/create-magic-u-r-l-token.md +0 -14
- package/docs/examples/account/create-mfa-authenticator.md +0 -12
- package/docs/examples/account/create-mfa-challenge.md +0 -11
- package/docs/examples/account/create-mfa-recovery-codes.md +0 -10
- package/docs/examples/account/create-o-auth2token.md +0 -14
- package/docs/examples/account/create-phone-token.md +0 -12
- package/docs/examples/account/create-phone-verification.md +0 -10
- package/docs/examples/account/create-recovery.md +0 -13
- package/docs/examples/account/create-session.md +0 -12
- package/docs/examples/account/create-verification.md +0 -12
- package/docs/examples/account/create.md +0 -14
- package/docs/examples/account/delete-identity.md +0 -12
- package/docs/examples/account/delete-mfa-authenticator.md +0 -13
- package/docs/examples/account/delete-session.md +0 -12
- package/docs/examples/account/delete-sessions.md +0 -10
- package/docs/examples/account/get-mfa-recovery-codes.md +0 -10
- package/docs/examples/account/get-prefs.md +0 -10
- package/docs/examples/account/get-session.md +0 -12
- package/docs/examples/account/get.md +0 -10
- package/docs/examples/account/list-identities.md +0 -12
- package/docs/examples/account/list-logs.md +0 -12
- package/docs/examples/account/list-mfa-factors.md +0 -10
- package/docs/examples/account/list-sessions.md +0 -10
- package/docs/examples/account/update-email.md +0 -13
- package/docs/examples/account/update-m-f-a.md +0 -12
- package/docs/examples/account/update-magic-u-r-l-session.md +0 -12
- package/docs/examples/account/update-mfa-authenticator.md +0 -13
- package/docs/examples/account/update-mfa-challenge.md +0 -13
- package/docs/examples/account/update-mfa-recovery-codes.md +0 -10
- package/docs/examples/account/update-name.md +0 -12
- package/docs/examples/account/update-password.md +0 -13
- package/docs/examples/account/update-phone-session.md +0 -12
- package/docs/examples/account/update-phone-verification.md +0 -13
- package/docs/examples/account/update-phone.md +0 -13
- package/docs/examples/account/update-prefs.md +0 -12
- package/docs/examples/account/update-recovery.md +0 -14
- package/docs/examples/account/update-session.md +0 -12
- package/docs/examples/account/update-status.md +0 -10
- package/docs/examples/account/update-verification.md +0 -13
- package/docs/examples/avatars/get-browser.md +0 -15
- package/docs/examples/avatars/get-credit-card.md +0 -15
- package/docs/examples/avatars/get-favicon.md +0 -12
- package/docs/examples/avatars/get-flag.md +0 -15
- package/docs/examples/avatars/get-image.md +0 -14
- package/docs/examples/avatars/get-initials.md +0 -15
- package/docs/examples/avatars/get-q-r.md +0 -15
- package/docs/examples/databases/create-boolean-attribute.md +0 -17
- package/docs/examples/databases/create-collection.md +0 -17
- package/docs/examples/databases/create-datetime-attribute.md +0 -17
- package/docs/examples/databases/create-document.md +0 -16
- package/docs/examples/databases/create-email-attribute.md +0 -17
- package/docs/examples/databases/create-enum-attribute.md +0 -18
- package/docs/examples/databases/create-float-attribute.md +0 -19
- package/docs/examples/databases/create-index.md +0 -17
- package/docs/examples/databases/create-integer-attribute.md +0 -19
- package/docs/examples/databases/create-ip-attribute.md +0 -17
- package/docs/examples/databases/create-relationship-attribute.md +0 -19
- package/docs/examples/databases/create-string-attribute.md +0 -19
- package/docs/examples/databases/create-url-attribute.md +0 -17
- package/docs/examples/databases/create.md +0 -14
- package/docs/examples/databases/delete-attribute.md +0 -14
- package/docs/examples/databases/delete-collection.md +0 -13
- package/docs/examples/databases/delete-document.md +0 -14
- package/docs/examples/databases/delete-index.md +0 -14
- package/docs/examples/databases/delete.md +0 -12
- package/docs/examples/databases/get-attribute.md +0 -14
- package/docs/examples/databases/get-collection.md +0 -13
- package/docs/examples/databases/get-document.md +0 -15
- package/docs/examples/databases/get-index.md +0 -14
- package/docs/examples/databases/get.md +0 -12
- package/docs/examples/databases/list-attributes.md +0 -14
- package/docs/examples/databases/list-collections.md +0 -14
- package/docs/examples/databases/list-documents.md +0 -14
- package/docs/examples/databases/list-indexes.md +0 -14
- package/docs/examples/databases/list.md +0 -13
- package/docs/examples/databases/update-boolean-attribute.md +0 -16
- package/docs/examples/databases/update-collection.md +0 -17
- package/docs/examples/databases/update-datetime-attribute.md +0 -16
- package/docs/examples/databases/update-document.md +0 -16
- package/docs/examples/databases/update-email-attribute.md +0 -16
- package/docs/examples/databases/update-enum-attribute.md +0 -17
- package/docs/examples/databases/update-float-attribute.md +0 -18
- package/docs/examples/databases/update-integer-attribute.md +0 -18
- package/docs/examples/databases/update-ip-attribute.md +0 -16
- package/docs/examples/databases/update-relationship-attribute.md +0 -15
- package/docs/examples/databases/update-string-attribute.md +0 -16
- package/docs/examples/databases/update-url-attribute.md +0 -16
- package/docs/examples/databases/update.md +0 -14
- package/docs/examples/functions/create-build.md +0 -14
- package/docs/examples/functions/create-deployment.md +0 -17
- package/docs/examples/functions/create-execution.md +0 -17
- package/docs/examples/functions/create-variable.md +0 -14
- package/docs/examples/functions/create.md +0 -31
- package/docs/examples/functions/delete-deployment.md +0 -13
- package/docs/examples/functions/delete-variable.md +0 -13
- package/docs/examples/functions/delete.md +0 -12
- package/docs/examples/functions/download-deployment.md +0 -13
- package/docs/examples/functions/get-deployment.md +0 -13
- package/docs/examples/functions/get-execution.md +0 -13
- package/docs/examples/functions/get-variable.md +0 -13
- package/docs/examples/functions/get.md +0 -12
- package/docs/examples/functions/list-deployments.md +0 -14
- package/docs/examples/functions/list-executions.md +0 -14
- package/docs/examples/functions/list-runtimes.md +0 -10
- package/docs/examples/functions/list-variables.md +0 -12
- package/docs/examples/functions/list.md +0 -13
- package/docs/examples/functions/update-deployment.md +0 -13
- package/docs/examples/functions/update-variable.md +0 -15
- package/docs/examples/functions/update.md +0 -27
- package/docs/examples/graphql/mutation.md +0 -12
- package/docs/examples/graphql/query.md +0 -12
- package/docs/examples/health/get-antivirus.md +0 -10
- package/docs/examples/health/get-cache.md +0 -10
- package/docs/examples/health/get-certificate.md +0 -12
- package/docs/examples/health/get-d-b.md +0 -10
- package/docs/examples/health/get-failed-jobs.md +0 -13
- package/docs/examples/health/get-pub-sub.md +0 -10
- package/docs/examples/health/get-queue-builds.md +0 -12
- package/docs/examples/health/get-queue-certificates.md +0 -12
- package/docs/examples/health/get-queue-databases.md +0 -13
- package/docs/examples/health/get-queue-deletes.md +0 -12
- package/docs/examples/health/get-queue-functions.md +0 -12
- package/docs/examples/health/get-queue-logs.md +0 -12
- package/docs/examples/health/get-queue-mails.md +0 -12
- package/docs/examples/health/get-queue-messaging.md +0 -12
- package/docs/examples/health/get-queue-migrations.md +0 -12
- package/docs/examples/health/get-queue-usage-dump.md +0 -12
- package/docs/examples/health/get-queue-usage.md +0 -12
- package/docs/examples/health/get-queue-webhooks.md +0 -12
- package/docs/examples/health/get-queue.md +0 -10
- package/docs/examples/health/get-storage-local.md +0 -10
- package/docs/examples/health/get-storage.md +0 -10
- package/docs/examples/health/get-time.md +0 -10
- package/docs/examples/health/get.md +0 -10
- package/docs/examples/locale/get.md +0 -10
- package/docs/examples/locale/list-codes.md +0 -10
- package/docs/examples/locale/list-continents.md +0 -10
- package/docs/examples/locale/list-countries-e-u.md +0 -10
- package/docs/examples/locale/list-countries-phones.md +0 -10
- package/docs/examples/locale/list-countries.md +0 -10
- package/docs/examples/locale/list-currencies.md +0 -10
- package/docs/examples/locale/list-languages.md +0 -10
- package/docs/examples/messaging/create-apns-provider.md +0 -19
- package/docs/examples/messaging/create-email.md +0 -23
- package/docs/examples/messaging/create-fcm-provider.md +0 -15
- package/docs/examples/messaging/create-mailgun-provider.md +0 -21
- package/docs/examples/messaging/create-msg91provider.md +0 -17
- package/docs/examples/messaging/create-push.md +0 -27
- package/docs/examples/messaging/create-sendgrid-provider.md +0 -19
- package/docs/examples/messaging/create-sms.md +0 -18
- package/docs/examples/messaging/create-smtp-provider.md +0 -25
- package/docs/examples/messaging/create-subscriber.md +0 -14
- package/docs/examples/messaging/create-telesign-provider.md +0 -17
- package/docs/examples/messaging/create-textmagic-provider.md +0 -17
- package/docs/examples/messaging/create-topic.md +0 -14
- package/docs/examples/messaging/create-twilio-provider.md +0 -17
- package/docs/examples/messaging/create-vonage-provider.md +0 -17
- package/docs/examples/messaging/delete-provider.md +0 -12
- package/docs/examples/messaging/delete-subscriber.md +0 -13
- package/docs/examples/messaging/delete-topic.md +0 -12
- package/docs/examples/messaging/delete.md +0 -12
- package/docs/examples/messaging/get-message.md +0 -12
- package/docs/examples/messaging/get-provider.md +0 -12
- package/docs/examples/messaging/get-subscriber.md +0 -13
- package/docs/examples/messaging/get-topic.md +0 -12
- package/docs/examples/messaging/list-message-logs.md +0 -13
- package/docs/examples/messaging/list-messages.md +0 -13
- package/docs/examples/messaging/list-provider-logs.md +0 -13
- package/docs/examples/messaging/list-providers.md +0 -13
- package/docs/examples/messaging/list-subscriber-logs.md +0 -13
- package/docs/examples/messaging/list-subscribers.md +0 -14
- package/docs/examples/messaging/list-targets.md +0 -13
- package/docs/examples/messaging/list-topic-logs.md +0 -13
- package/docs/examples/messaging/list-topics.md +0 -13
- package/docs/examples/messaging/update-apns-provider.md +0 -19
- package/docs/examples/messaging/update-email.md +0 -22
- package/docs/examples/messaging/update-fcm-provider.md +0 -15
- package/docs/examples/messaging/update-mailgun-provider.md +0 -21
- package/docs/examples/messaging/update-msg91provider.md +0 -17
- package/docs/examples/messaging/update-push.md +0 -27
- package/docs/examples/messaging/update-sendgrid-provider.md +0 -19
- package/docs/examples/messaging/update-sms.md +0 -18
- package/docs/examples/messaging/update-smtp-provider.md +0 -25
- package/docs/examples/messaging/update-telesign-provider.md +0 -17
- package/docs/examples/messaging/update-textmagic-provider.md +0 -17
- package/docs/examples/messaging/update-topic.md +0 -14
- package/docs/examples/messaging/update-twilio-provider.md +0 -17
- package/docs/examples/messaging/update-vonage-provider.md +0 -17
- package/docs/examples/storage/create-bucket.md +0 -21
- package/docs/examples/storage/create-file.md +0 -16
- package/docs/examples/storage/delete-bucket.md +0 -12
- package/docs/examples/storage/delete-file.md +0 -13
- package/docs/examples/storage/get-bucket.md +0 -12
- package/docs/examples/storage/get-file-download.md +0 -13
- package/docs/examples/storage/get-file-preview.md +0 -24
- package/docs/examples/storage/get-file-view.md +0 -13
- package/docs/examples/storage/get-file.md +0 -13
- package/docs/examples/storage/list-buckets.md +0 -13
- package/docs/examples/storage/list-files.md +0 -14
- package/docs/examples/storage/update-bucket.md +0 -21
- package/docs/examples/storage/update-file.md +0 -15
- package/docs/examples/teams/create-membership.md +0 -18
- package/docs/examples/teams/create.md +0 -14
- package/docs/examples/teams/delete-membership.md +0 -13
- package/docs/examples/teams/delete.md +0 -12
- package/docs/examples/teams/get-membership.md +0 -13
- package/docs/examples/teams/get-prefs.md +0 -12
- package/docs/examples/teams/get.md +0 -12
- package/docs/examples/teams/list-memberships.md +0 -14
- package/docs/examples/teams/list.md +0 -13
- package/docs/examples/teams/update-membership-status.md +0 -15
- package/docs/examples/teams/update-membership.md +0 -14
- package/docs/examples/teams/update-name.md +0 -13
- package/docs/examples/teams/update-prefs.md +0 -13
- package/docs/examples/users/create-argon2user.md +0 -15
- package/docs/examples/users/create-bcrypt-user.md +0 -15
- package/docs/examples/users/create-m-d5user.md +0 -15
- package/docs/examples/users/create-mfa-recovery-codes.md +0 -12
- package/docs/examples/users/create-p-h-pass-user.md +0 -15
- package/docs/examples/users/create-s-h-a-user.md +0 -16
- package/docs/examples/users/create-scrypt-modified-user.md +0 -18
- package/docs/examples/users/create-scrypt-user.md +0 -20
- package/docs/examples/users/create-session.md +0 -12
- package/docs/examples/users/create-target.md +0 -17
- package/docs/examples/users/create-token.md +0 -14
- package/docs/examples/users/create.md +0 -16
- package/docs/examples/users/delete-identity.md +0 -12
- package/docs/examples/users/delete-mfa-authenticator.md +0 -13
- package/docs/examples/users/delete-session.md +0 -13
- package/docs/examples/users/delete-sessions.md +0 -12
- package/docs/examples/users/delete-target.md +0 -13
- package/docs/examples/users/delete.md +0 -12
- package/docs/examples/users/get-mfa-recovery-codes.md +0 -12
- package/docs/examples/users/get-prefs.md +0 -12
- package/docs/examples/users/get-target.md +0 -13
- package/docs/examples/users/get.md +0 -12
- package/docs/examples/users/list-identities.md +0 -13
- package/docs/examples/users/list-logs.md +0 -13
- package/docs/examples/users/list-memberships.md +0 -12
- package/docs/examples/users/list-mfa-factors.md +0 -12
- package/docs/examples/users/list-sessions.md +0 -12
- package/docs/examples/users/list-targets.md +0 -13
- package/docs/examples/users/list.md +0 -13
- package/docs/examples/users/update-email-verification.md +0 -13
- package/docs/examples/users/update-email.md +0 -13
- package/docs/examples/users/update-labels.md +0 -13
- package/docs/examples/users/update-mfa-recovery-codes.md +0 -12
- package/docs/examples/users/update-mfa.md +0 -13
- package/docs/examples/users/update-name.md +0 -13
- package/docs/examples/users/update-password.md +0 -13
- package/docs/examples/users/update-phone-verification.md +0 -13
- package/docs/examples/users/update-phone.md +0 -13
- package/docs/examples/users/update-prefs.md +0 -13
- package/docs/examples/users/update-status.md +0 -13
- package/docs/examples/users/update-target.md +0 -16
- package/index.d.ts +0 -6656
- package/index.js +0 -75
- package/lib/client.js +0 -245
- package/lib/enums/authentication-factor.js +0 -8
- package/lib/enums/authenticator-type.js +0 -5
- package/lib/enums/browser.js +0 -18
- package/lib/enums/compression.js +0 -7
- package/lib/enums/credit-card.js +0 -20
- package/lib/enums/execution-method.js +0 -10
- package/lib/enums/flag.js +0 -198
- package/lib/enums/image-format.js +0 -9
- package/lib/enums/image-gravity.js +0 -13
- package/lib/enums/index-type.js +0 -7
- package/lib/enums/messaging-provider-type.js +0 -7
- package/lib/enums/name.js +0 -17
- package/lib/enums/o-auth-provider.js +0 -43
- package/lib/enums/password-hash.js +0 -15
- package/lib/enums/relation-mutate.js +0 -7
- package/lib/enums/relationship-type.js +0 -8
- package/lib/enums/runtime.js +0 -48
- package/lib/enums/smtp-encryption.js +0 -7
- package/lib/exception.js +0 -10
- package/lib/id.js +0 -32
- package/lib/inputFile.js +0 -117
- package/lib/permission.js +0 -24
- package/lib/query.js +0 -90
- package/lib/service.js +0 -10
- package/lib/services/account.js +0 -1365
- package/lib/services/avatars.js +0 -325
- package/lib/services/databases.js +0 -1987
- package/lib/services/functions.js +0 -930
- package/lib/services/graphql.js +0 -74
- package/lib/services/health.js +0 -513
- package/lib/services/locale.js +0 -169
- package/lib/services/messaging.js +0 -2218
- package/lib/services/storage.js +0 -663
- package/lib/services/teams.js +0 -479
- package/lib/services/users.js +0 -1463
package/README.md
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# Appwrite Node.js SDK
|
|
2
2
|
|
|
3
3
|

|
|
4
|
-

|
|
5
5
|
[](https://travis-ci.com/appwrite/sdk-generator)
|
|
6
6
|
[](https://twitter.com/appwrite)
|
|
7
7
|
[](https://appwrite.io/discord)
|
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
export { Models } from './models.mjs';
|
|
2
|
+
export { Query, QueryTypes, QueryTypesList } from './query.mjs';
|
|
3
|
+
|
|
4
|
+
type Payload = {
|
|
5
|
+
[key: string]: any;
|
|
6
|
+
};
|
|
7
|
+
type UploadProgress = {
|
|
8
|
+
$id: string;
|
|
9
|
+
progress: number;
|
|
10
|
+
sizeUploaded: number;
|
|
11
|
+
chunksTotal: number;
|
|
12
|
+
chunksUploaded: number;
|
|
13
|
+
};
|
|
14
|
+
type Headers = {
|
|
15
|
+
[key: string]: string;
|
|
16
|
+
};
|
|
17
|
+
declare class AppwriteException extends Error {
|
|
18
|
+
code: number;
|
|
19
|
+
response: string;
|
|
20
|
+
type: string;
|
|
21
|
+
constructor(message: string, code?: number, type?: string, response?: string);
|
|
22
|
+
}
|
|
23
|
+
declare class Client {
|
|
24
|
+
static CHUNK_SIZE: number;
|
|
25
|
+
config: {
|
|
26
|
+
endpoint: string;
|
|
27
|
+
selfSigned: boolean;
|
|
28
|
+
project: string;
|
|
29
|
+
key: string;
|
|
30
|
+
jwt: string;
|
|
31
|
+
locale: string;
|
|
32
|
+
session: string;
|
|
33
|
+
forwardeduseragent: string;
|
|
34
|
+
};
|
|
35
|
+
headers: Headers;
|
|
36
|
+
/**
|
|
37
|
+
* Set Endpoint
|
|
38
|
+
*
|
|
39
|
+
* Your project endpoint
|
|
40
|
+
*
|
|
41
|
+
* @param {string} endpoint
|
|
42
|
+
*
|
|
43
|
+
* @returns {this}
|
|
44
|
+
*/
|
|
45
|
+
setEndpoint(endpoint: string): this;
|
|
46
|
+
/**
|
|
47
|
+
* Set self-signed
|
|
48
|
+
*
|
|
49
|
+
* @param {boolean} selfSigned
|
|
50
|
+
*
|
|
51
|
+
* @returns {this}
|
|
52
|
+
*/
|
|
53
|
+
setSelfSigned(selfSigned: boolean): this;
|
|
54
|
+
/**
|
|
55
|
+
* Add header
|
|
56
|
+
*
|
|
57
|
+
* @param {string} header
|
|
58
|
+
* @param {string} value
|
|
59
|
+
*
|
|
60
|
+
* @returns {this}
|
|
61
|
+
*/
|
|
62
|
+
addHeader(header: string, value: string): this;
|
|
63
|
+
/**
|
|
64
|
+
* Set Project
|
|
65
|
+
*
|
|
66
|
+
* Your project ID
|
|
67
|
+
*
|
|
68
|
+
* @param value string
|
|
69
|
+
*
|
|
70
|
+
* @return {this}
|
|
71
|
+
*/
|
|
72
|
+
setProject(value: string): this;
|
|
73
|
+
/**
|
|
74
|
+
* Set Key
|
|
75
|
+
*
|
|
76
|
+
* Your secret API key
|
|
77
|
+
*
|
|
78
|
+
* @param value string
|
|
79
|
+
*
|
|
80
|
+
* @return {this}
|
|
81
|
+
*/
|
|
82
|
+
setKey(value: string): this;
|
|
83
|
+
/**
|
|
84
|
+
* Set JWT
|
|
85
|
+
*
|
|
86
|
+
* Your secret JSON Web Token
|
|
87
|
+
*
|
|
88
|
+
* @param value string
|
|
89
|
+
*
|
|
90
|
+
* @return {this}
|
|
91
|
+
*/
|
|
92
|
+
setJWT(value: string): this;
|
|
93
|
+
/**
|
|
94
|
+
* Set Locale
|
|
95
|
+
*
|
|
96
|
+
* @param value string
|
|
97
|
+
*
|
|
98
|
+
* @return {this}
|
|
99
|
+
*/
|
|
100
|
+
setLocale(value: string): this;
|
|
101
|
+
/**
|
|
102
|
+
* Set Session
|
|
103
|
+
*
|
|
104
|
+
* The user session to authenticate with
|
|
105
|
+
*
|
|
106
|
+
* @param value string
|
|
107
|
+
*
|
|
108
|
+
* @return {this}
|
|
109
|
+
*/
|
|
110
|
+
setSession(value: string): this;
|
|
111
|
+
/**
|
|
112
|
+
* Set ForwardedUserAgent
|
|
113
|
+
*
|
|
114
|
+
* The user agent string of the client that made the request
|
|
115
|
+
*
|
|
116
|
+
* @param value string
|
|
117
|
+
*
|
|
118
|
+
* @return {this}
|
|
119
|
+
*/
|
|
120
|
+
setForwardedUserAgent(value: string): this;
|
|
121
|
+
prepareRequest(method: string, url: URL, headers?: Headers, params?: Payload): {
|
|
122
|
+
uri: string;
|
|
123
|
+
options: RequestInit;
|
|
124
|
+
};
|
|
125
|
+
chunkedUpload(method: string, url: URL, headers: Headers | undefined, originalPayload: Payload | undefined, onProgress: (progress: UploadProgress) => void): Promise<any>;
|
|
126
|
+
redirect(method: string, url: URL, headers?: Headers, params?: Payload): Promise<string>;
|
|
127
|
+
call(method: string, url: URL, headers?: Headers, params?: Payload, responseType?: string): Promise<any>;
|
|
128
|
+
static flatten(data: Payload, prefix?: string): Payload;
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
export { AppwriteException, Client, Payload, UploadProgress };
|
package/dist/client.d.ts
ADDED
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
export { Models } from './models.js';
|
|
2
|
+
export { Query, QueryTypes, QueryTypesList } from './query.js';
|
|
3
|
+
|
|
4
|
+
type Payload = {
|
|
5
|
+
[key: string]: any;
|
|
6
|
+
};
|
|
7
|
+
type UploadProgress = {
|
|
8
|
+
$id: string;
|
|
9
|
+
progress: number;
|
|
10
|
+
sizeUploaded: number;
|
|
11
|
+
chunksTotal: number;
|
|
12
|
+
chunksUploaded: number;
|
|
13
|
+
};
|
|
14
|
+
type Headers = {
|
|
15
|
+
[key: string]: string;
|
|
16
|
+
};
|
|
17
|
+
declare class AppwriteException extends Error {
|
|
18
|
+
code: number;
|
|
19
|
+
response: string;
|
|
20
|
+
type: string;
|
|
21
|
+
constructor(message: string, code?: number, type?: string, response?: string);
|
|
22
|
+
}
|
|
23
|
+
declare class Client {
|
|
24
|
+
static CHUNK_SIZE: number;
|
|
25
|
+
config: {
|
|
26
|
+
endpoint: string;
|
|
27
|
+
selfSigned: boolean;
|
|
28
|
+
project: string;
|
|
29
|
+
key: string;
|
|
30
|
+
jwt: string;
|
|
31
|
+
locale: string;
|
|
32
|
+
session: string;
|
|
33
|
+
forwardeduseragent: string;
|
|
34
|
+
};
|
|
35
|
+
headers: Headers;
|
|
36
|
+
/**
|
|
37
|
+
* Set Endpoint
|
|
38
|
+
*
|
|
39
|
+
* Your project endpoint
|
|
40
|
+
*
|
|
41
|
+
* @param {string} endpoint
|
|
42
|
+
*
|
|
43
|
+
* @returns {this}
|
|
44
|
+
*/
|
|
45
|
+
setEndpoint(endpoint: string): this;
|
|
46
|
+
/**
|
|
47
|
+
* Set self-signed
|
|
48
|
+
*
|
|
49
|
+
* @param {boolean} selfSigned
|
|
50
|
+
*
|
|
51
|
+
* @returns {this}
|
|
52
|
+
*/
|
|
53
|
+
setSelfSigned(selfSigned: boolean): this;
|
|
54
|
+
/**
|
|
55
|
+
* Add header
|
|
56
|
+
*
|
|
57
|
+
* @param {string} header
|
|
58
|
+
* @param {string} value
|
|
59
|
+
*
|
|
60
|
+
* @returns {this}
|
|
61
|
+
*/
|
|
62
|
+
addHeader(header: string, value: string): this;
|
|
63
|
+
/**
|
|
64
|
+
* Set Project
|
|
65
|
+
*
|
|
66
|
+
* Your project ID
|
|
67
|
+
*
|
|
68
|
+
* @param value string
|
|
69
|
+
*
|
|
70
|
+
* @return {this}
|
|
71
|
+
*/
|
|
72
|
+
setProject(value: string): this;
|
|
73
|
+
/**
|
|
74
|
+
* Set Key
|
|
75
|
+
*
|
|
76
|
+
* Your secret API key
|
|
77
|
+
*
|
|
78
|
+
* @param value string
|
|
79
|
+
*
|
|
80
|
+
* @return {this}
|
|
81
|
+
*/
|
|
82
|
+
setKey(value: string): this;
|
|
83
|
+
/**
|
|
84
|
+
* Set JWT
|
|
85
|
+
*
|
|
86
|
+
* Your secret JSON Web Token
|
|
87
|
+
*
|
|
88
|
+
* @param value string
|
|
89
|
+
*
|
|
90
|
+
* @return {this}
|
|
91
|
+
*/
|
|
92
|
+
setJWT(value: string): this;
|
|
93
|
+
/**
|
|
94
|
+
* Set Locale
|
|
95
|
+
*
|
|
96
|
+
* @param value string
|
|
97
|
+
*
|
|
98
|
+
* @return {this}
|
|
99
|
+
*/
|
|
100
|
+
setLocale(value: string): this;
|
|
101
|
+
/**
|
|
102
|
+
* Set Session
|
|
103
|
+
*
|
|
104
|
+
* The user session to authenticate with
|
|
105
|
+
*
|
|
106
|
+
* @param value string
|
|
107
|
+
*
|
|
108
|
+
* @return {this}
|
|
109
|
+
*/
|
|
110
|
+
setSession(value: string): this;
|
|
111
|
+
/**
|
|
112
|
+
* Set ForwardedUserAgent
|
|
113
|
+
*
|
|
114
|
+
* The user agent string of the client that made the request
|
|
115
|
+
*
|
|
116
|
+
* @param value string
|
|
117
|
+
*
|
|
118
|
+
* @return {this}
|
|
119
|
+
*/
|
|
120
|
+
setForwardedUserAgent(value: string): this;
|
|
121
|
+
prepareRequest(method: string, url: URL, headers?: Headers, params?: Payload): {
|
|
122
|
+
uri: string;
|
|
123
|
+
options: RequestInit;
|
|
124
|
+
};
|
|
125
|
+
chunkedUpload(method: string, url: URL, headers: Headers | undefined, originalPayload: Payload | undefined, onProgress: (progress: UploadProgress) => void): Promise<any>;
|
|
126
|
+
redirect(method: string, url: URL, headers?: Headers, params?: Payload): Promise<string>;
|
|
127
|
+
call(method: string, url: URL, headers?: Headers, params?: Payload, responseType?: string): Promise<any>;
|
|
128
|
+
static flatten(data: Payload, prefix?: string): Payload;
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
export { AppwriteException, Client, Payload, UploadProgress };
|
package/dist/client.js
ADDED
|
@@ -0,0 +1,302 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var nodeFetchNativeWithAgent = require('node-fetch-native-with-agent');
|
|
4
|
+
var agent = require('node-fetch-native-with-agent/agent');
|
|
5
|
+
var query = require('./query');
|
|
6
|
+
|
|
7
|
+
class AppwriteException extends Error {
|
|
8
|
+
constructor(message, code = 0, type = "", response = "") {
|
|
9
|
+
super(message);
|
|
10
|
+
this.name = "AppwriteException";
|
|
11
|
+
this.message = message;
|
|
12
|
+
this.code = code;
|
|
13
|
+
this.type = type;
|
|
14
|
+
this.response = response;
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
function getUserAgent() {
|
|
18
|
+
let ua = "AppwriteNodeJSSDK/13.0.0";
|
|
19
|
+
const platform = [];
|
|
20
|
+
if (typeof process !== "undefined") {
|
|
21
|
+
if (typeof process.platform === "string")
|
|
22
|
+
platform.push(process.platform);
|
|
23
|
+
if (typeof process.arch === "string")
|
|
24
|
+
platform.push(process.arch);
|
|
25
|
+
}
|
|
26
|
+
if (platform.length > 0) {
|
|
27
|
+
ua += ` (${platform.join("; ")})`;
|
|
28
|
+
}
|
|
29
|
+
if (typeof navigator !== "undefined" && typeof navigator.userAgent === "string") {
|
|
30
|
+
ua += ` ${navigator.userAgent}`;
|
|
31
|
+
} else if (typeof globalThis.EdgeRuntime === "string") {
|
|
32
|
+
ua += ` EdgeRuntime`;
|
|
33
|
+
} else if (typeof process !== "undefined" && typeof process.version === "string") {
|
|
34
|
+
ua += ` Node.js/${process.version}`;
|
|
35
|
+
}
|
|
36
|
+
return ua;
|
|
37
|
+
}
|
|
38
|
+
const _Client = class _Client {
|
|
39
|
+
constructor() {
|
|
40
|
+
this.config = {
|
|
41
|
+
endpoint: "https://cloud.appwrite.io/v1",
|
|
42
|
+
selfSigned: false,
|
|
43
|
+
project: "",
|
|
44
|
+
key: "",
|
|
45
|
+
jwt: "",
|
|
46
|
+
locale: "",
|
|
47
|
+
session: "",
|
|
48
|
+
forwardeduseragent: ""
|
|
49
|
+
};
|
|
50
|
+
this.headers = {
|
|
51
|
+
"x-sdk-name": "Node.js",
|
|
52
|
+
"x-sdk-platform": "server",
|
|
53
|
+
"x-sdk-language": "nodejs",
|
|
54
|
+
"x-sdk-version": "13.0.0",
|
|
55
|
+
"user-agent": getUserAgent(),
|
|
56
|
+
"X-Appwrite-Response-Format": "1.5.0"
|
|
57
|
+
};
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Set Endpoint
|
|
61
|
+
*
|
|
62
|
+
* Your project endpoint
|
|
63
|
+
*
|
|
64
|
+
* @param {string} endpoint
|
|
65
|
+
*
|
|
66
|
+
* @returns {this}
|
|
67
|
+
*/
|
|
68
|
+
setEndpoint(endpoint) {
|
|
69
|
+
this.config.endpoint = endpoint;
|
|
70
|
+
return this;
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Set self-signed
|
|
74
|
+
*
|
|
75
|
+
* @param {boolean} selfSigned
|
|
76
|
+
*
|
|
77
|
+
* @returns {this}
|
|
78
|
+
*/
|
|
79
|
+
setSelfSigned(selfSigned) {
|
|
80
|
+
if (typeof globalThis.EdgeRuntime !== "undefined") {
|
|
81
|
+
console.warn("setSelfSigned is not supported in edge runtimes.");
|
|
82
|
+
}
|
|
83
|
+
this.config.selfSigned = selfSigned;
|
|
84
|
+
return this;
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* Add header
|
|
88
|
+
*
|
|
89
|
+
* @param {string} header
|
|
90
|
+
* @param {string} value
|
|
91
|
+
*
|
|
92
|
+
* @returns {this}
|
|
93
|
+
*/
|
|
94
|
+
addHeader(header, value) {
|
|
95
|
+
this.headers[header.toLowerCase()] = value;
|
|
96
|
+
return this;
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* Set Project
|
|
100
|
+
*
|
|
101
|
+
* Your project ID
|
|
102
|
+
*
|
|
103
|
+
* @param value string
|
|
104
|
+
*
|
|
105
|
+
* @return {this}
|
|
106
|
+
*/
|
|
107
|
+
setProject(value) {
|
|
108
|
+
this.headers["X-Appwrite-Project"] = value;
|
|
109
|
+
this.config.project = value;
|
|
110
|
+
return this;
|
|
111
|
+
}
|
|
112
|
+
/**
|
|
113
|
+
* Set Key
|
|
114
|
+
*
|
|
115
|
+
* Your secret API key
|
|
116
|
+
*
|
|
117
|
+
* @param value string
|
|
118
|
+
*
|
|
119
|
+
* @return {this}
|
|
120
|
+
*/
|
|
121
|
+
setKey(value) {
|
|
122
|
+
this.headers["X-Appwrite-Key"] = value;
|
|
123
|
+
this.config.key = value;
|
|
124
|
+
return this;
|
|
125
|
+
}
|
|
126
|
+
/**
|
|
127
|
+
* Set JWT
|
|
128
|
+
*
|
|
129
|
+
* Your secret JSON Web Token
|
|
130
|
+
*
|
|
131
|
+
* @param value string
|
|
132
|
+
*
|
|
133
|
+
* @return {this}
|
|
134
|
+
*/
|
|
135
|
+
setJWT(value) {
|
|
136
|
+
this.headers["X-Appwrite-JWT"] = value;
|
|
137
|
+
this.config.jwt = value;
|
|
138
|
+
return this;
|
|
139
|
+
}
|
|
140
|
+
/**
|
|
141
|
+
* Set Locale
|
|
142
|
+
*
|
|
143
|
+
* @param value string
|
|
144
|
+
*
|
|
145
|
+
* @return {this}
|
|
146
|
+
*/
|
|
147
|
+
setLocale(value) {
|
|
148
|
+
this.headers["X-Appwrite-Locale"] = value;
|
|
149
|
+
this.config.locale = value;
|
|
150
|
+
return this;
|
|
151
|
+
}
|
|
152
|
+
/**
|
|
153
|
+
* Set Session
|
|
154
|
+
*
|
|
155
|
+
* The user session to authenticate with
|
|
156
|
+
*
|
|
157
|
+
* @param value string
|
|
158
|
+
*
|
|
159
|
+
* @return {this}
|
|
160
|
+
*/
|
|
161
|
+
setSession(value) {
|
|
162
|
+
this.headers["X-Appwrite-Session"] = value;
|
|
163
|
+
this.config.session = value;
|
|
164
|
+
return this;
|
|
165
|
+
}
|
|
166
|
+
/**
|
|
167
|
+
* Set ForwardedUserAgent
|
|
168
|
+
*
|
|
169
|
+
* The user agent string of the client that made the request
|
|
170
|
+
*
|
|
171
|
+
* @param value string
|
|
172
|
+
*
|
|
173
|
+
* @return {this}
|
|
174
|
+
*/
|
|
175
|
+
setForwardedUserAgent(value) {
|
|
176
|
+
this.headers["X-Forwarded-User-Agent"] = value;
|
|
177
|
+
this.config.forwardeduseragent = value;
|
|
178
|
+
return this;
|
|
179
|
+
}
|
|
180
|
+
prepareRequest(method, url, headers = {}, params = {}) {
|
|
181
|
+
method = method.toUpperCase();
|
|
182
|
+
headers = Object.assign({}, this.headers, headers);
|
|
183
|
+
let options = {
|
|
184
|
+
method,
|
|
185
|
+
headers,
|
|
186
|
+
...agent.createAgent(this.config.endpoint, { rejectUnauthorized: !this.config.selfSigned })
|
|
187
|
+
};
|
|
188
|
+
if (method === "GET") {
|
|
189
|
+
for (const [key, value] of Object.entries(_Client.flatten(params))) {
|
|
190
|
+
url.searchParams.append(key, value);
|
|
191
|
+
}
|
|
192
|
+
} else {
|
|
193
|
+
switch (headers["content-type"]) {
|
|
194
|
+
case "application/json":
|
|
195
|
+
options.body = JSON.stringify(params);
|
|
196
|
+
break;
|
|
197
|
+
case "multipart/form-data":
|
|
198
|
+
const formData = new nodeFetchNativeWithAgent.FormData();
|
|
199
|
+
for (const [key, value] of Object.entries(params)) {
|
|
200
|
+
if (value instanceof nodeFetchNativeWithAgent.File) {
|
|
201
|
+
formData.append(key, value, value.name);
|
|
202
|
+
} else if (Array.isArray(value)) {
|
|
203
|
+
for (const nestedValue of value) {
|
|
204
|
+
formData.append(`${key}[]`, nestedValue);
|
|
205
|
+
}
|
|
206
|
+
} else {
|
|
207
|
+
formData.append(key, value);
|
|
208
|
+
}
|
|
209
|
+
}
|
|
210
|
+
options.body = formData;
|
|
211
|
+
delete headers["content-type"];
|
|
212
|
+
break;
|
|
213
|
+
}
|
|
214
|
+
}
|
|
215
|
+
return { uri: url.toString(), options };
|
|
216
|
+
}
|
|
217
|
+
async chunkedUpload(method, url, headers = {}, originalPayload = {}, onProgress) {
|
|
218
|
+
const file = Object.values(originalPayload).find((value) => value instanceof nodeFetchNativeWithAgent.File);
|
|
219
|
+
if (file.size <= _Client.CHUNK_SIZE) {
|
|
220
|
+
return await this.call(method, url, headers, originalPayload);
|
|
221
|
+
}
|
|
222
|
+
let start = 0;
|
|
223
|
+
let response = null;
|
|
224
|
+
while (start < file.size) {
|
|
225
|
+
let end = start + _Client.CHUNK_SIZE;
|
|
226
|
+
if (end >= file.size) {
|
|
227
|
+
end = file.size;
|
|
228
|
+
}
|
|
229
|
+
headers["content-range"] = `bytes ${start}-${end - 1}/${file.size}`;
|
|
230
|
+
const chunk = file.slice(start, end);
|
|
231
|
+
let payload = { ...originalPayload, file: new nodeFetchNativeWithAgent.File([chunk], file.name) };
|
|
232
|
+
response = await this.call(method, url, headers, payload);
|
|
233
|
+
if (onProgress && typeof onProgress === "function") {
|
|
234
|
+
onProgress({
|
|
235
|
+
$id: response.$id,
|
|
236
|
+
progress: Math.round(end / file.size * 100),
|
|
237
|
+
sizeUploaded: end,
|
|
238
|
+
chunksTotal: Math.ceil(file.size / _Client.CHUNK_SIZE),
|
|
239
|
+
chunksUploaded: Math.ceil(end / _Client.CHUNK_SIZE)
|
|
240
|
+
});
|
|
241
|
+
}
|
|
242
|
+
if (response && response.$id) {
|
|
243
|
+
headers["x-appwrite-id"] = response.$id;
|
|
244
|
+
}
|
|
245
|
+
start = end;
|
|
246
|
+
}
|
|
247
|
+
return response;
|
|
248
|
+
}
|
|
249
|
+
async redirect(method, url, headers = {}, params = {}) {
|
|
250
|
+
const { uri, options } = this.prepareRequest(method, url, headers, params);
|
|
251
|
+
const response = await nodeFetchNativeWithAgent.fetch(uri, {
|
|
252
|
+
...options,
|
|
253
|
+
redirect: "manual"
|
|
254
|
+
});
|
|
255
|
+
if (response.status !== 301 && response.status !== 302) {
|
|
256
|
+
throw new AppwriteException("Invalid redirect", response.status);
|
|
257
|
+
}
|
|
258
|
+
return response.headers.get("location") || "";
|
|
259
|
+
}
|
|
260
|
+
async call(method, url, headers = {}, params = {}, responseType = "json") {
|
|
261
|
+
var _a;
|
|
262
|
+
const { uri, options } = this.prepareRequest(method, url, headers, params);
|
|
263
|
+
let data = null;
|
|
264
|
+
const response = await nodeFetchNativeWithAgent.fetch(uri, options);
|
|
265
|
+
if ((_a = response.headers.get("content-type")) == null ? void 0 : _a.includes("application/json")) {
|
|
266
|
+
data = await response.json();
|
|
267
|
+
} else if (responseType === "arrayBuffer") {
|
|
268
|
+
data = await response.arrayBuffer();
|
|
269
|
+
} else {
|
|
270
|
+
data = {
|
|
271
|
+
message: await response.text()
|
|
272
|
+
};
|
|
273
|
+
}
|
|
274
|
+
if (400 <= response.status) {
|
|
275
|
+
throw new AppwriteException(data == null ? void 0 : data.message, response.status, data == null ? void 0 : data.type, data);
|
|
276
|
+
}
|
|
277
|
+
return data;
|
|
278
|
+
}
|
|
279
|
+
static flatten(data, prefix = "") {
|
|
280
|
+
let output = {};
|
|
281
|
+
for (const [key, value] of Object.entries(data)) {
|
|
282
|
+
let finalKey = prefix ? prefix + "[" + key + "]" : key;
|
|
283
|
+
if (Array.isArray(value)) {
|
|
284
|
+
output = { ...output, ..._Client.flatten(value, finalKey) };
|
|
285
|
+
} else {
|
|
286
|
+
output[finalKey] = value;
|
|
287
|
+
}
|
|
288
|
+
}
|
|
289
|
+
return output;
|
|
290
|
+
}
|
|
291
|
+
};
|
|
292
|
+
_Client.CHUNK_SIZE = 1024 * 1024 * 5;
|
|
293
|
+
let Client = _Client;
|
|
294
|
+
|
|
295
|
+
Object.defineProperty(exports, 'Query', {
|
|
296
|
+
enumerable: true,
|
|
297
|
+
get: function () { return query.Query; }
|
|
298
|
+
});
|
|
299
|
+
exports.AppwriteException = AppwriteException;
|
|
300
|
+
exports.Client = Client;
|
|
301
|
+
//# sourceMappingURL=out.js.map
|
|
302
|
+
//# sourceMappingURL=client.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/client.ts"],"names":[],"mappings":"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","sourcesContent":["import { fetch, FormData, File } from 'node-fetch-native-with-agent';\nimport { createAgent } from 'node-fetch-native-with-agent/agent';\nimport { Models } from './models';\n\ntype Payload = {\n [key: string]: any;\n}\n\ntype UploadProgress = {\n $id: string;\n progress: number;\n sizeUploaded: number;\n chunksTotal: number;\n chunksUploaded: number;\n}\n\ntype Headers = {\n [key: string]: string;\n}\n\nclass AppwriteException extends Error {\n code: number;\n response: string;\n type: string;\n constructor(message: string, code: number = 0, type: string = '', response: string = '') {\n super(message);\n this.name = 'AppwriteException';\n this.message = message;\n this.code = code;\n this.type = type;\n this.response = response;\n }\n}\n\nfunction getUserAgent() {\n let ua = 'AppwriteNodeJSSDK/13.0.0';\n\n // `process` is a global in Node.js, but not fully available in all runtimes.\n const platform: string[] = [];\n if (typeof process !== 'undefined') {\n if (typeof process.platform === 'string') platform.push(process.platform);\n if (typeof process.arch === 'string') platform.push(process.arch);\n } \n if (platform.length > 0) {\n ua += ` (${platform.join('; ')})`;\n }\n\n // `navigator.userAgent` is available in Node.js 21 and later.\n // It's also part of the WinterCG spec, so many edge runtimes provide it.\n // https://common-min-api.proposal.wintercg.org/#requirements-for-navigatoruseragent\n // @ts-ignore\n if (typeof navigator !== 'undefined' && typeof navigator.userAgent === 'string') {\n // @ts-ignore\n ua += ` ${navigator.userAgent}`;\n\n // @ts-ignore\n } else if (typeof globalThis.EdgeRuntime === 'string') {\n ua += ` EdgeRuntime`;\n\n // Older Node.js versions don't have `navigator.userAgent`, so we have to use `process.version`.\n } else if (typeof process !== 'undefined' && typeof process.version === 'string') {\n ua += ` Node.js/${process.version}`;\n }\n\n return ua;\n}\n\nclass Client {\n static CHUNK_SIZE = 1024 * 1024 * 5;\n\n config = {\n endpoint: 'https://cloud.appwrite.io/v1',\n selfSigned: false,\n project: '',\n key: '',\n jwt: '',\n locale: '',\n session: '',\n forwardeduseragent: '',\n };\n headers: Headers = {\n 'x-sdk-name': 'Node.js',\n 'x-sdk-platform': 'server',\n 'x-sdk-language': 'nodejs',\n 'x-sdk-version': '13.0.0',\n 'user-agent' : getUserAgent(),\n 'X-Appwrite-Response-Format': '1.5.0',\n };\n\n /**\n * Set Endpoint\n *\n * Your project endpoint\n *\n * @param {string} endpoint\n *\n * @returns {this}\n */\n setEndpoint(endpoint: string): this {\n this.config.endpoint = endpoint;\n\n return this;\n }\n\n /**\n * Set self-signed\n *\n * @param {boolean} selfSigned\n *\n * @returns {this}\n */\n setSelfSigned(selfSigned: boolean): this {\n // @ts-ignore\n if (typeof globalThis.EdgeRuntime !== 'undefined') {\n console.warn('setSelfSigned is not supported in edge runtimes.');\n }\n\n this.config.selfSigned = selfSigned;\n\n return this;\n }\n\n /**\n * Add header\n *\n * @param {string} header\n * @param {string} value\n *\n * @returns {this}\n */\n addHeader(header: string, value: string): this {\n this.headers[header.toLowerCase()] = value;\n\n return this;\n }\n\n /**\n * Set Project\n *\n * Your project ID\n *\n * @param value string\n *\n * @return {this}\n */\n setProject(value: string): this {\n this.headers['X-Appwrite-Project'] = value;\n this.config.project = value;\n return this;\n }\n /**\n * Set Key\n *\n * Your secret API key\n *\n * @param value string\n *\n * @return {this}\n */\n setKey(value: string): this {\n this.headers['X-Appwrite-Key'] = value;\n this.config.key = value;\n return this;\n }\n /**\n * Set JWT\n *\n * Your secret JSON Web Token\n *\n * @param value string\n *\n * @return {this}\n */\n setJWT(value: string): this {\n this.headers['X-Appwrite-JWT'] = value;\n this.config.jwt = value;\n return this;\n }\n /**\n * Set Locale\n *\n * @param value string\n *\n * @return {this}\n */\n setLocale(value: string): this {\n this.headers['X-Appwrite-Locale'] = value;\n this.config.locale = value;\n return this;\n }\n /**\n * Set Session\n *\n * The user session to authenticate with\n *\n * @param value string\n *\n * @return {this}\n */\n setSession(value: string): this {\n this.headers['X-Appwrite-Session'] = value;\n this.config.session = value;\n return this;\n }\n /**\n * Set ForwardedUserAgent\n *\n * The user agent string of the client that made the request\n *\n * @param value string\n *\n * @return {this}\n */\n setForwardedUserAgent(value: string): this {\n this.headers['X-Forwarded-User-Agent'] = value;\n this.config.forwardeduseragent = value;\n return this;\n }\n\n prepareRequest(method: string, url: URL, headers: Headers = {}, params: Payload = {}): { uri: string, options: RequestInit } {\n method = method.toUpperCase();\n\n headers = Object.assign({}, this.headers, headers);\n\n let options: RequestInit = {\n method,\n headers,\n ...createAgent(this.config.endpoint, { rejectUnauthorized: !this.config.selfSigned }),\n };\n\n if (method === 'GET') {\n for (const [key, value] of Object.entries(Client.flatten(params))) {\n url.searchParams.append(key, value);\n }\n } else {\n switch (headers['content-type']) {\n case 'application/json':\n options.body = JSON.stringify(params);\n break;\n\n case 'multipart/form-data':\n const formData = new FormData();\n\n for (const [key, value] of Object.entries(params)) {\n if (value instanceof File) {\n formData.append(key, value, value.name);\n } else if (Array.isArray(value)) {\n for (const nestedValue of value) {\n formData.append(`${key}[]`, nestedValue);\n }\n } else {\n formData.append(key, value);\n }\n }\n\n options.body = formData;\n delete headers['content-type'];\n break;\n }\n }\n\n return { uri: url.toString(), options };\n }\n\n async chunkedUpload(method: string, url: URL, headers: Headers = {}, originalPayload: Payload = {}, onProgress: (progress: UploadProgress) => void) {\n const file = Object.values(originalPayload).find((value) => value instanceof File);\n\n if (file.size <= Client.CHUNK_SIZE) {\n return await this.call(method, url, headers, originalPayload);\n }\n\n let start = 0;\n let response = null;\n\n while (start < file.size) {\n let end = start + Client.CHUNK_SIZE; // Prepare end for the next chunk\n if (end >= file.size) {\n end = file.size; // Adjust for the last chunk to include the last byte\n }\n\n headers['content-range'] = `bytes ${start}-${end-1}/${file.size}`;\n const chunk = file.slice(start, end);\n\n let payload = { ...originalPayload, file: new File([chunk], file.name)};\n\n response = await this.call(method, url, headers, payload);\n\n if (onProgress && typeof onProgress === 'function') {\n onProgress({\n $id: response.$id,\n progress: Math.round((end / file.size) * 100),\n sizeUploaded: end,\n chunksTotal: Math.ceil(file.size / Client.CHUNK_SIZE),\n chunksUploaded: Math.ceil(end / Client.CHUNK_SIZE)\n });\n }\n\n if (response && response.$id) {\n headers['x-appwrite-id'] = response.$id;\n }\n\n start = end;\n }\n\n return response;\n }\n\n async redirect(method: string, url: URL, headers: Headers = {}, params: Payload = {}): Promise<string> {\n const { uri, options } = this.prepareRequest(method, url, headers, params);\n \n const response = await fetch(uri, {\n ...options,\n redirect: 'manual'\n });\n\n if (response.status !== 301 && response.status !== 302) {\n throw new AppwriteException('Invalid redirect', response.status);\n }\n\n return response.headers.get('location') || '';\n }\n\n async call(method: string, url: URL, headers: Headers = {}, params: Payload = {}, responseType = 'json'): Promise<any> {\n const { uri, options } = this.prepareRequest(method, url, headers, params);\n\n let data: any = null;\n\n const response = await fetch(uri, options);\n\n if (response.headers.get('content-type')?.includes('application/json')) {\n data = await response.json();\n } else if (responseType === 'arrayBuffer') {\n data = await response.arrayBuffer();\n } else {\n data = {\n message: await response.text()\n };\n }\n\n if (400 <= response.status) {\n throw new AppwriteException(data?.message, response.status, data?.type, data);\n }\n\n return data;\n }\n\n static flatten(data: Payload, prefix = ''): Payload {\n let output: Payload = {};\n\n for (const [key, value] of Object.entries(data)) {\n let finalKey = prefix ? prefix + '[' + key +']' : key;\n if (Array.isArray(value)) {\n output = { ...output, ...Client.flatten(value, finalKey) };\n } else {\n output[finalKey] = value;\n }\n }\n\n return output;\n }\n}\n\nexport { Client, AppwriteException };\nexport { Query } from './query';\nexport type { Models, Payload, UploadProgress };\nexport type { QueryTypes, QueryTypesList } from './query';\n"]}
|