@oxy.so/core 1.18.1 → 3.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 +13 -7
- package/dist/cjs/HttpService.js +159 -111
- package/dist/cjs/OxyServices.errors.js +48 -1
- package/dist/cjs/OxyServices.js +263 -60
- package/dist/cjs/api/accounts.js +231 -0
- package/dist/cjs/api/agency.js +102 -0
- package/dist/cjs/api/appData.js +45 -0
- package/dist/cjs/api/apps.js +197 -0
- package/dist/cjs/api/assets.js +329 -0
- package/dist/cjs/api/auth.js +900 -0
- package/dist/cjs/api/billing.js +44 -0
- package/dist/cjs/api/civic.js +289 -0
- package/dist/cjs/api/contacts.js +16 -0
- package/dist/cjs/api/devices.js +351 -0
- package/dist/cjs/api/follows.js +240 -0
- package/dist/cjs/api/identity.js +569 -0
- package/dist/cjs/api/linkedAccounts.js +48 -0
- package/dist/cjs/api/nodes.js +75 -0
- package/dist/cjs/api/notifications.js +75 -0
- package/dist/cjs/api/privacy.js +105 -0
- package/dist/cjs/api/reputation.js +74 -0
- package/dist/cjs/api/session.js +177 -0
- package/dist/cjs/api/store.js +199 -0
- package/dist/cjs/api/topics.js +66 -0
- package/dist/cjs/api/users.js +309 -0
- package/dist/cjs/boot/sessionColdBoot.js +4 -4
- package/dist/cjs/civic/index.js +16 -0
- package/dist/cjs/civic/payloads.js +156 -0
- package/dist/cjs/client/context.js +2 -0
- package/dist/cjs/crypto/identityLink.js +5 -5
- package/dist/cjs/crypto/index.js +44 -0
- package/dist/cjs/crypto/internal.js +37 -0
- package/dist/cjs/crypto/keyManager.js +2 -2
- package/dist/cjs/crypto/polyfill.js +9 -80
- package/dist/cjs/crypto/recoveryPhrase.js +1 -0
- package/dist/cjs/crypto/registrationPow.js +1 -1
- package/dist/cjs/crypto/signatureService.js +1 -0
- package/dist/cjs/i18n/accountCategoryLabels.js +3 -3
- package/dist/cjs/i18n/accountRoleLabels.js +7 -7
- package/dist/cjs/i18n/index.js +130 -52
- package/dist/cjs/i18n/locales/{ar-SA.json → ar-SA.js} +134 -52
- package/dist/cjs/i18n/locales/{ca-ES.json → ca-ES.js} +134 -52
- package/dist/{esm/i18n/locales/de-DE.json → cjs/i18n/locales/de-DE.js} +136 -54
- package/dist/{esm/i18n/locales/en-US.json → cjs/i18n/locales/en-US.js} +163 -245
- package/dist/{esm/i18n/locales/es-ES.json → cjs/i18n/locales/es-ES.js} +163 -245
- package/dist/cjs/i18n/locales/{fr-FR.json → fr-FR.js} +134 -52
- package/dist/cjs/i18n/locales/{it-IT.json → it-IT.js} +134 -52
- package/dist/{esm/i18n/locales/ja-JP.json → cjs/i18n/locales/ja-JP.js} +134 -52
- package/dist/cjs/i18n/locales/{ko-KR.json → ko-KR.js} +134 -52
- package/dist/{esm/i18n/locales/pt-PT.json → cjs/i18n/locales/pt-PT.js} +136 -54
- package/dist/{esm/i18n/locales/zh-CN.json → cjs/i18n/locales/zh-CN.js} +135 -53
- package/dist/cjs/i18n/reputationCategoryLabels.js +2 -2
- package/dist/cjs/i18n/trustTierLabels.js +2 -2
- package/dist/cjs/index.js +55 -263
- package/dist/cjs/inference/index.js +21 -0
- package/dist/cjs/server/OxyServer.js +521 -0
- package/dist/cjs/server/auth.js +2 -2
- package/dist/cjs/server/index.js +23 -6
- package/dist/cjs/server/middleware.js +1154 -0
- package/dist/cjs/server/namespaces.js +214 -0
- package/dist/cjs/server/rateLimit.js +2 -2
- package/dist/cjs/server/requesterAssertion.js +5 -5
- package/dist/cjs/server/securityHeaders.js +3 -3
- package/dist/cjs/server/traffic.js +7 -6
- package/dist/cjs/server/trafficNodeHttp.js +9 -3
- package/dist/cjs/server/userInvalidation.js +5 -5
- package/dist/cjs/session/accountDialogController.js +23 -23
- package/dist/cjs/session/authStateStore.js +2 -2
- package/dist/cjs/session/identitySession.js +3 -3
- package/dist/cjs/session/index.js +131 -0
- package/dist/cjs/session/refresh.js +37 -30
- package/dist/cjs/session/sessionClientHost.js +5 -5
- package/dist/cjs/session/sharedDeviceCredential.js +3 -2
- package/dist/cjs/shared/utils/networkUtils.js +2 -2
- package/dist/cjs/utils/accountCacheSweep.js +11 -15
- package/dist/cjs/utils/asyncUtils.js +22 -163
- package/dist/cjs/utils/authHelpers.js +2 -2
- package/dist/cjs/utils/authWebUrl.js +3 -4
- package/dist/cjs/utils/avatarUtils.js +2 -2
- package/dist/cjs/utils/cache.js +32 -2
- package/dist/cjs/utils/cacheKey.js +5 -10
- package/dist/cjs/utils/deviceManager.js +17 -16
- package/dist/cjs/utils/edgeRegion.js +2 -3
- package/dist/cjs/utils/identityCacheSweep.js +6 -10
- package/dist/cjs/utils/oxyServiceEnvironment.js +3 -7
- package/dist/cjs/utils/requestUtils.js +40 -33
- package/dist/cjs/utils/sessionUtils.js +0 -2
- package/dist/cjs/utils/tokenClaims.js +34 -0
- package/dist/esm/HttpService.js +160 -112
- package/dist/esm/OxyServices.errors.js +45 -0
- package/dist/esm/OxyServices.js +262 -57
- package/dist/esm/api/accounts.js +218 -0
- package/dist/esm/api/agency.js +95 -0
- package/dist/esm/api/appData.js +40 -0
- package/dist/esm/api/apps.js +191 -0
- package/dist/esm/api/assets.js +324 -0
- package/dist/esm/api/auth.js +858 -0
- package/dist/esm/api/billing.js +40 -0
- package/dist/esm/api/civic.js +250 -0
- package/dist/esm/api/contacts.js +12 -0
- package/dist/esm/api/devices.js +346 -0
- package/dist/esm/api/follows.js +236 -0
- package/dist/esm/api/identity.js +527 -0
- package/dist/esm/api/linkedAccounts.js +44 -0
- package/dist/esm/api/nodes.js +71 -0
- package/dist/esm/api/notifications.js +71 -0
- package/dist/esm/api/privacy.js +101 -0
- package/dist/esm/api/reputation.js +70 -0
- package/dist/esm/api/session.js +173 -0
- package/dist/esm/api/store.js +192 -0
- package/dist/esm/api/topics.js +62 -0
- package/dist/esm/api/users.js +272 -0
- package/dist/esm/boot/sessionColdBoot.js +4 -4
- package/dist/esm/civic/index.js +10 -0
- package/dist/esm/civic/payloads.js +118 -0
- package/dist/esm/client/context.js +1 -0
- package/dist/esm/crypto/identityLink.js +5 -5
- package/dist/esm/crypto/index.js +24 -0
- package/dist/esm/crypto/internal.js +19 -0
- package/dist/esm/crypto/keyManager.js +2 -2
- package/dist/esm/crypto/polyfill.js +10 -81
- package/dist/esm/crypto/recoveryPhrase.js +1 -0
- package/dist/esm/crypto/registrationPow.js +1 -1
- package/dist/esm/crypto/signatureService.js +1 -0
- package/dist/esm/i18n/accountCategoryLabels.js +2 -2
- package/dist/esm/i18n/accountRoleLabels.js +1 -1
- package/dist/esm/i18n/index.js +93 -52
- package/dist/esm/i18n/locales/{ar-SA.json → ar-SA.js} +132 -52
- package/dist/esm/i18n/locales/{ca-ES.json → ca-ES.js} +132 -52
- package/dist/{cjs/i18n/locales/de-DE.json → esm/i18n/locales/de-DE.js} +134 -54
- package/dist/{cjs/i18n/locales/en-US.json → esm/i18n/locales/en-US.js} +161 -245
- package/dist/{cjs/i18n/locales/es-ES.json → esm/i18n/locales/es-ES.js} +161 -245
- package/dist/esm/i18n/locales/{fr-FR.json → fr-FR.js} +132 -52
- package/dist/esm/i18n/locales/{it-IT.json → it-IT.js} +132 -52
- package/dist/{cjs/i18n/locales/ja-JP.json → esm/i18n/locales/ja-JP.js} +132 -52
- package/dist/esm/i18n/locales/{ko-KR.json → ko-KR.js} +132 -52
- package/dist/{cjs/i18n/locales/pt-PT.json → esm/i18n/locales/pt-PT.js} +134 -54
- package/dist/{cjs/i18n/locales/zh-CN.json → esm/i18n/locales/zh-CN.js} +133 -53
- package/dist/esm/i18n/reputationCategoryLabels.js +1 -1
- package/dist/esm/i18n/trustTierLabels.js +1 -1
- package/dist/esm/index.js +30 -166
- package/dist/esm/inference/index.js +13 -0
- package/dist/esm/server/OxyServer.js +516 -0
- package/dist/esm/server/auth.js +2 -2
- package/dist/esm/server/index.js +10 -5
- package/dist/esm/server/middleware.js +1147 -0
- package/dist/esm/server/namespaces.js +206 -0
- package/dist/esm/server/rateLimit.js +2 -2
- package/dist/esm/server/requesterAssertion.js +5 -5
- package/dist/esm/server/securityHeaders.js +3 -3
- package/dist/esm/server/traffic.js +7 -6
- package/dist/esm/server/trafficNodeHttp.js +9 -3
- package/dist/esm/server/userInvalidation.js +5 -5
- package/dist/esm/session/accountDialogController.js +23 -23
- package/dist/esm/session/authStateStore.js +2 -2
- package/dist/esm/session/identitySession.js +3 -3
- package/dist/esm/session/index.js +82 -0
- package/dist/esm/session/refresh.js +37 -30
- package/dist/esm/session/sessionClientHost.js +5 -5
- package/dist/esm/session/sharedDeviceCredential.js +3 -2
- package/dist/esm/shared/utils/networkUtils.js +2 -2
- package/dist/esm/utils/accountCacheSweep.js +11 -15
- package/dist/esm/utils/asyncUtils.js +22 -151
- package/dist/esm/utils/authHelpers.js +2 -2
- package/dist/esm/utils/authWebUrl.js +3 -4
- package/dist/esm/utils/avatarUtils.js +2 -2
- package/dist/esm/utils/cache.js +32 -2
- package/dist/esm/utils/cacheKey.js +5 -10
- package/dist/esm/utils/deviceManager.js +17 -16
- package/dist/esm/utils/edgeRegion.js +1 -2
- package/dist/esm/utils/identityCacheSweep.js +6 -10
- package/dist/esm/utils/oxyServiceEnvironment.js +3 -7
- package/dist/esm/utils/requestUtils.js +40 -33
- package/dist/esm/utils/sessionUtils.js +0 -2
- package/dist/esm/utils/tokenClaims.js +31 -0
- package/dist/types/HttpService.d.ts +26 -9
- package/dist/types/OxyServices.d.ts +160 -131
- package/dist/types/OxyServices.errors.d.ts +42 -0
- package/dist/types/api/accounts.d.ts +415 -0
- package/dist/types/api/agency.d.ts +135 -0
- package/dist/types/api/appData.d.ts +27 -0
- package/dist/types/api/apps.d.ts +433 -0
- package/dist/types/api/assets.d.ts +174 -0
- package/dist/types/api/auth.d.ts +766 -0
- package/dist/types/api/billing.d.ts +113 -0
- package/dist/types/api/civic.d.ts +203 -0
- package/dist/types/api/contacts.d.ts +31 -0
- package/{src/mixins/OxyServices.deviceBoot.ts → dist/types/api/devices.d.ts} +130 -110
- package/dist/types/api/follows.d.ts +236 -0
- package/dist/types/api/identity.d.ts +275 -0
- package/dist/types/api/linkedAccounts.d.ts +48 -0
- package/dist/types/api/nodes.d.ts +102 -0
- package/dist/types/api/notifications.d.ts +77 -0
- package/dist/types/api/privacy.d.ts +43 -0
- package/dist/types/api/reputation.d.ts +50 -0
- package/dist/types/api/session.d.ts +85 -0
- package/dist/types/api/store.d.ts +278 -0
- package/dist/types/api/topics.d.ts +34 -0
- package/dist/types/api/users.d.ts +134 -0
- package/dist/types/boot/sessionColdBoot.d.ts +1 -1
- package/dist/types/civic/index.d.ts +10 -0
- package/dist/types/civic/payloads.d.ts +83 -0
- package/dist/types/client/context.d.ts +33 -0
- package/dist/types/crypto/identityLink.d.ts +5 -5
- package/dist/types/crypto/index.d.ts +24 -0
- package/dist/types/crypto/internal.d.ts +19 -0
- package/dist/types/crypto/polyfill.d.ts +6 -9
- package/dist/types/crypto/registrationPow.d.ts +1 -1
- package/dist/types/i18n/accountCategoryLabels.d.ts +1 -1
- package/dist/types/i18n/accountRoleLabels.d.ts +1 -1
- package/dist/types/i18n/index.d.ts +20 -1
- package/dist/types/i18n/locales/ar-SA.d.ts +386 -0
- package/dist/types/i18n/locales/ca-ES.d.ts +386 -0
- package/dist/types/i18n/locales/de-DE.d.ts +386 -0
- package/dist/types/i18n/locales/en-US.d.ts +2034 -0
- package/dist/types/i18n/locales/es-ES.d.ts +2034 -0
- package/dist/types/i18n/locales/fr-FR.d.ts +386 -0
- package/dist/types/i18n/locales/it-IT.d.ts +386 -0
- package/dist/types/i18n/locales/ja-JP.d.ts +386 -0
- package/dist/types/i18n/locales/ko-KR.d.ts +386 -0
- package/dist/types/i18n/locales/pt-PT.d.ts +386 -0
- package/dist/types/i18n/locales/zh-CN.d.ts +386 -0
- package/dist/types/index.d.ts +46 -95
- package/dist/types/inference/index.d.ts +22 -0
- package/dist/types/models/interfaces.d.ts +1 -22
- package/dist/types/server/OxyServer.d.ts +183 -0
- package/dist/types/server/auth.d.ts +10 -7
- package/dist/types/server/index.d.ts +10 -4
- package/dist/types/server/middleware.d.ts +291 -0
- package/dist/types/server/namespaces.d.ts +98 -0
- package/dist/types/server/rateLimit.d.ts +7 -5
- package/dist/types/server/requesterAssertion.d.ts +14 -11
- package/dist/types/server/securityHeaders.d.ts +4 -5
- package/dist/types/server/userInvalidation.d.ts +10 -8
- package/dist/types/session/accountDelegationAccess.d.ts +1 -1
- package/dist/types/session/accountDialogController.d.ts +8 -8
- package/dist/types/session/accountSwitchTargets.d.ts +1 -1
- package/dist/types/session/authStateStore.d.ts +7 -6
- package/dist/types/session/index.d.ts +40 -0
- package/dist/types/utils/accountCacheSweep.d.ts +7 -10
- package/dist/types/utils/apiUtils.d.ts +3 -3
- package/dist/types/utils/asyncUtils.d.ts +11 -58
- package/dist/types/utils/authWebUrl.d.ts +3 -4
- package/dist/types/utils/avatarUtils.d.ts +5 -6
- package/dist/types/utils/cache.d.ts +11 -3
- package/dist/types/utils/commonsApproval.d.ts +1 -1
- package/dist/types/utils/edgeRegion.d.ts +1 -2
- package/dist/types/utils/identityCacheSweep.d.ts +6 -4
- package/dist/types/utils/oauthPkce.d.ts +2 -2
- package/dist/types/utils/oxyServiceEnvironment.d.ts +3 -7
- package/dist/types/utils/requestUtils.d.ts +18 -14
- package/dist/types/utils/tokenClaims.d.ts +9 -0
- package/package.json +68 -7
- package/src/HttpService.ts +166 -131
- package/src/OxyServices.errors.ts +73 -0
- package/src/OxyServices.ts +289 -164
- package/src/api/accounts.ts +579 -0
- package/src/api/agency.ts +277 -0
- package/src/api/appData.ts +63 -0
- package/src/api/apps.ts +596 -0
- package/src/api/assets.ts +416 -0
- package/src/api/auth.ts +1457 -0
- package/src/api/billing.ts +144 -0
- package/src/api/civic.ts +428 -0
- package/src/api/contacts.ts +41 -0
- package/src/api/devices.ts +438 -0
- package/src/api/follows.ts +414 -0
- package/src/api/identity.ts +727 -0
- package/src/api/linkedAccounts.ts +78 -0
- package/src/api/nodes.ts +169 -0
- package/src/api/notifications.ts +135 -0
- package/src/api/privacy.ts +120 -0
- package/src/api/reputation.ts +134 -0
- package/src/api/session.ts +210 -0
- package/src/api/store.ts +435 -0
- package/src/api/topics.ts +83 -0
- package/src/api/users.ts +357 -0
- package/src/boot/sessionColdBoot.ts +4 -4
- package/src/civic/index.ts +12 -0
- package/src/civic/payloads.ts +175 -0
- package/src/client/context.ts +34 -0
- package/src/crypto/identityLink.ts +5 -5
- package/src/crypto/index.ts +39 -0
- package/src/crypto/internal.ts +20 -0
- package/src/crypto/keyManager.ts +2 -2
- package/src/crypto/polyfill.ts +9 -89
- package/src/crypto/recoveryPhrase.ts +1 -0
- package/src/crypto/registrationPow.ts +1 -1
- package/src/crypto/signatureService.ts +1 -0
- package/src/i18n/accountCategoryLabels.ts +2 -2
- package/src/i18n/accountRoleLabels.ts +2 -2
- package/src/i18n/index.ts +105 -54
- package/src/i18n/locales/{ar-SA.json → ar-SA.ts} +132 -52
- package/src/i18n/locales/{ca-ES.json → ca-ES.ts} +132 -52
- package/{dist/cjs/i18n/locales/locales/de-DE.json → src/i18n/locales/de-DE.ts} +134 -54
- package/src/i18n/locales/{en-US.json → en-US.ts} +161 -245
- package/{dist/cjs/i18n/locales/locales/es-ES.json → src/i18n/locales/es-ES.ts} +161 -245
- package/src/i18n/locales/{fr-FR.json → fr-FR.ts} +132 -52
- package/src/i18n/locales/{it-IT.json → it-IT.ts} +132 -52
- package/{dist/cjs/i18n/locales/locales/ja-JP.json → src/i18n/locales/ja-JP.ts} +132 -52
- package/src/i18n/locales/{ko-KR.json → ko-KR.ts} +132 -52
- package/src/i18n/locales/{pt-PT.json → pt-PT.ts} +134 -54
- package/src/i18n/locales/{zh-CN.json → zh-CN.ts} +133 -53
- package/src/i18n/reputationCategoryLabels.ts +1 -1
- package/src/i18n/trustTierLabels.ts +1 -1
- package/src/index.ts +170 -501
- package/src/inference/index.ts +48 -0
- package/src/models/interfaces.ts +1 -22
- package/src/server/OxyServer.ts +637 -0
- package/src/server/auth.ts +12 -8
- package/src/server/index.ts +28 -5
- package/src/server/middleware.ts +1520 -0
- package/src/server/namespaces.ts +257 -0
- package/src/server/rateLimit.ts +10 -9
- package/src/server/requesterAssertion.ts +13 -10
- package/src/server/securityHeaders.ts +7 -8
- package/src/server/traffic.ts +6 -6
- package/src/server/trafficNodeHttp.ts +7 -3
- package/src/server/userInvalidation.ts +9 -9
- package/src/session/accountDelegationAccess.ts +1 -1
- package/src/session/accountDialogController.ts +24 -24
- package/src/session/accountSwitchTargets.ts +1 -1
- package/src/session/authStateStore.ts +9 -8
- package/src/session/identitySession.ts +3 -3
- package/src/session/index.ts +210 -0
- package/src/session/refresh.ts +36 -30
- package/src/session/sessionClientHost.ts +5 -5
- package/src/session/sharedDeviceCredential.ts +3 -2
- package/src/shared/utils/networkUtils.ts +2 -2
- package/src/utils/accountCacheSweep.ts +11 -15
- package/src/utils/apiUtils.ts +3 -3
- package/src/utils/asyncUtils.ts +38 -235
- package/src/utils/authHelpers.ts +2 -2
- package/src/utils/authWebUrl.ts +3 -4
- package/src/utils/avatarUtils.ts +4 -7
- package/src/utils/cache.ts +36 -5
- package/src/utils/cacheKey.ts +5 -9
- package/src/utils/commonsApproval.ts +1 -1
- package/src/utils/deviceManager.ts +17 -16
- package/src/utils/edgeRegion.ts +1 -2
- package/src/utils/identityCacheSweep.ts +7 -12
- package/src/utils/oauthPkce.ts +2 -2
- package/src/utils/oxyServiceEnvironment.ts +3 -7
- package/src/utils/requestUtils.ts +48 -44
- package/src/utils/sessionUtils.ts +0 -2
- package/src/utils/tokenClaims.ts +38 -0
- package/dist/cjs/.tsbuildinfo +0 -1
- package/dist/cjs/OxyServices.base.js +0 -392
- package/dist/cjs/i18n/locales/locales/ar-SA.json +0 -306
- package/dist/cjs/i18n/locales/locales/ca-ES.json +0 -306
- package/dist/cjs/i18n/locales/locales/en-US.json +0 -2127
- package/dist/cjs/i18n/locales/locales/fr-FR.json +0 -306
- package/dist/cjs/i18n/locales/locales/it-IT.json +0 -306
- package/dist/cjs/i18n/locales/locales/ko-KR.json +0 -306
- package/dist/cjs/i18n/locales/locales/pt-PT.json +0 -306
- package/dist/cjs/i18n/locales/locales/zh-CN.json +0 -306
- package/dist/cjs/mixins/OxyServices.accounts.js +0 -555
- package/dist/cjs/mixins/OxyServices.agency.js +0 -154
- package/dist/cjs/mixins/OxyServices.analytics.js +0 -49
- package/dist/cjs/mixins/OxyServices.appData.js +0 -108
- package/dist/cjs/mixins/OxyServices.assets.js +0 -854
- package/dist/cjs/mixins/OxyServices.auth.js +0 -1495
- package/dist/cjs/mixins/OxyServices.chains.js +0 -73
- package/dist/cjs/mixins/OxyServices.civic.js +0 -611
- package/dist/cjs/mixins/OxyServices.connectedApps.js +0 -95
- package/dist/cjs/mixins/OxyServices.contacts.js +0 -50
- package/dist/cjs/mixins/OxyServices.deviceBoot.js +0 -191
- package/dist/cjs/mixins/OxyServices.devices.js +0 -116
- package/dist/cjs/mixins/OxyServices.features.js +0 -335
- package/dist/cjs/mixins/OxyServices.followGraph.js +0 -221
- package/dist/cjs/mixins/OxyServices.identity.js +0 -562
- package/dist/cjs/mixins/OxyServices.identityBackup.js +0 -172
- package/dist/cjs/mixins/OxyServices.inference.js +0 -59
- package/dist/cjs/mixins/OxyServices.language.js +0 -125
- package/dist/cjs/mixins/OxyServices.linkedAccounts.js +0 -79
- package/dist/cjs/mixins/OxyServices.location.js +0 -43
- package/dist/cjs/mixins/OxyServices.nodes.js +0 -175
- package/dist/cjs/mixins/OxyServices.notifications.js +0 -63
- package/dist/cjs/mixins/OxyServices.payment.js +0 -158
- package/dist/cjs/mixins/OxyServices.privacy.js +0 -199
- package/dist/cjs/mixins/OxyServices.reputation.js +0 -289
- package/dist/cjs/mixins/OxyServices.security.js +0 -89
- package/dist/cjs/mixins/OxyServices.store.js +0 -266
- package/dist/cjs/mixins/OxyServices.topics.js +0 -137
- package/dist/cjs/mixins/OxyServices.user.js +0 -954
- package/dist/cjs/mixins/OxyServices.utility.js +0 -1402
- package/dist/cjs/mixins/index.js +0 -136
- package/dist/cjs/mixins/mixinHelpers.js +0 -53
- package/dist/cjs/utils/webauthnOrigin.js +0 -51
- package/dist/esm/.tsbuildinfo +0 -1
- package/dist/esm/OxyServices.base.js +0 -388
- package/dist/esm/i18n/locales/locales/ar-SA.json +0 -306
- package/dist/esm/i18n/locales/locales/ca-ES.json +0 -306
- package/dist/esm/i18n/locales/locales/de-DE.json +0 -306
- package/dist/esm/i18n/locales/locales/en-US.json +0 -2127
- package/dist/esm/i18n/locales/locales/es-ES.json +0 -2127
- package/dist/esm/i18n/locales/locales/fr-FR.json +0 -306
- package/dist/esm/i18n/locales/locales/it-IT.json +0 -306
- package/dist/esm/i18n/locales/locales/ja-JP.json +0 -306
- package/dist/esm/i18n/locales/locales/ko-KR.json +0 -306
- package/dist/esm/i18n/locales/locales/pt-PT.json +0 -306
- package/dist/esm/i18n/locales/locales/zh-CN.json +0 -306
- package/dist/esm/mixins/OxyServices.accounts.js +0 -543
- package/dist/esm/mixins/OxyServices.agency.js +0 -151
- package/dist/esm/mixins/OxyServices.analytics.js +0 -46
- package/dist/esm/mixins/OxyServices.appData.js +0 -103
- package/dist/esm/mixins/OxyServices.assets.js +0 -851
- package/dist/esm/mixins/OxyServices.auth.js +0 -1455
- package/dist/esm/mixins/OxyServices.chains.js +0 -70
- package/dist/esm/mixins/OxyServices.civic.js +0 -605
- package/dist/esm/mixins/OxyServices.connectedApps.js +0 -92
- package/dist/esm/mixins/OxyServices.contacts.js +0 -47
- package/dist/esm/mixins/OxyServices.deviceBoot.js +0 -186
- package/dist/esm/mixins/OxyServices.devices.js +0 -113
- package/dist/esm/mixins/OxyServices.features.js +0 -332
- package/dist/esm/mixins/OxyServices.followGraph.js +0 -218
- package/dist/esm/mixins/OxyServices.identity.js +0 -558
- package/dist/esm/mixins/OxyServices.identityBackup.js +0 -169
- package/dist/esm/mixins/OxyServices.inference.js +0 -56
- package/dist/esm/mixins/OxyServices.language.js +0 -122
- package/dist/esm/mixins/OxyServices.linkedAccounts.js +0 -76
- package/dist/esm/mixins/OxyServices.location.js +0 -40
- package/dist/esm/mixins/OxyServices.nodes.js +0 -172
- package/dist/esm/mixins/OxyServices.notifications.js +0 -60
- package/dist/esm/mixins/OxyServices.payment.js +0 -155
- package/dist/esm/mixins/OxyServices.privacy.js +0 -196
- package/dist/esm/mixins/OxyServices.reputation.js +0 -286
- package/dist/esm/mixins/OxyServices.security.js +0 -86
- package/dist/esm/mixins/OxyServices.store.js +0 -263
- package/dist/esm/mixins/OxyServices.topics.js +0 -134
- package/dist/esm/mixins/OxyServices.user.js +0 -951
- package/dist/esm/mixins/OxyServices.utility.js +0 -1397
- package/dist/esm/mixins/index.js +0 -133
- package/dist/esm/mixins/mixinHelpers.js +0 -48
- package/dist/esm/utils/webauthnOrigin.js +0 -48
- package/dist/types/.tsbuildinfo +0 -1
- package/dist/types/OxyServices.base.d.ts +0 -189
- package/dist/types/mixins/OxyServices.accounts.d.ts +0 -868
- package/dist/types/mixins/OxyServices.agency.d.ts +0 -176
- package/dist/types/mixins/OxyServices.analytics.d.ts +0 -72
- package/dist/types/mixins/OxyServices.appData.d.ts +0 -108
- package/dist/types/mixins/OxyServices.assets.d.ts +0 -371
- package/dist/types/mixins/OxyServices.auth.d.ts +0 -998
- package/dist/types/mixins/OxyServices.chains.d.ts +0 -156
- package/dist/types/mixins/OxyServices.civic.d.ts +0 -520
- package/dist/types/mixins/OxyServices.connectedApps.d.ts +0 -184
- package/dist/types/mixins/OxyServices.contacts.d.ts +0 -100
- package/dist/types/mixins/OxyServices.deviceBoot.d.ts +0 -185
- package/dist/types/mixins/OxyServices.devices.d.ts +0 -103
- package/dist/types/mixins/OxyServices.features.d.ts +0 -250
- package/dist/types/mixins/OxyServices.followGraph.d.ts +0 -223
- package/dist/types/mixins/OxyServices.identity.d.ts +0 -337
- package/dist/types/mixins/OxyServices.identityBackup.d.ts +0 -129
- package/dist/types/mixins/OxyServices.inference.d.ts +0 -95
- package/dist/types/mixins/OxyServices.language.d.ts +0 -87
- package/dist/types/mixins/OxyServices.linkedAccounts.d.ts +0 -107
- package/dist/types/mixins/OxyServices.location.d.ts +0 -70
- package/dist/types/mixins/OxyServices.nodes.d.ts +0 -198
- package/dist/types/mixins/OxyServices.notifications.d.ts +0 -143
- package/dist/types/mixins/OxyServices.payment.d.ts +0 -117
- package/dist/types/mixins/OxyServices.privacy.d.ts +0 -146
- package/dist/types/mixins/OxyServices.reputation.d.ts +0 -202
- package/dist/types/mixins/OxyServices.security.d.ts +0 -84
- package/dist/types/mixins/OxyServices.store.d.ts +0 -334
- package/dist/types/mixins/OxyServices.topics.d.ts +0 -110
- package/dist/types/mixins/OxyServices.user.d.ts +0 -600
- package/dist/types/mixins/OxyServices.utility.d.ts +0 -526
- package/dist/types/mixins/index.d.ts +0 -87
- package/dist/types/mixins/mixinHelpers.d.ts +0 -31
- package/dist/types/utils/webauthnOrigin.d.ts +0 -32
- package/src/OxyServices.base.ts +0 -480
- package/src/__tests__/authSocket.test.ts +0 -96
- package/src/__tests__/fixEsmImports.test.ts +0 -132
- package/src/__tests__/httpServiceAbort.test.ts +0 -308
- package/src/__tests__/httpServiceActivityId.test.ts +0 -49
- package/src/__tests__/httpServiceAuthSelfAwait.test.ts +0 -108
- package/src/__tests__/httpServiceCache.test.ts +0 -318
- package/src/__tests__/httpServiceFormEncoded.test.ts +0 -139
- package/src/__tests__/httpServiceQueueDeadlock.test.ts +0 -128
- package/src/__tests__/httpServiceRateLimitedRefresh.test.ts +0 -160
- package/src/__tests__/httpServiceUnwrapEnvelope.test.ts +0 -115
- package/src/__tests__/httpServiceWrites.test.ts +0 -175
- package/src/__tests__/inSessionRefresh.test.ts +0 -313
- package/src/__tests__/linkedClient.test.ts +0 -363
- package/src/__tests__/nearExpiryMintStorm.test.ts +0 -165
- package/src/__tests__/parseHttpErrorBody.test.ts +0 -116
- package/src/__tests__/publicInterfaceParity.test.ts +0 -75
- package/src/__tests__/serverValueImportsDeclared.test.ts +0 -120
- package/src/__tests__/serviceIdentityWhenAnonymous.test.ts +0 -159
- package/src/__tests__/serviceTokenWorkloadFallback.test.ts +0 -85
- package/src/__tests__/userIdentity.test.ts +0 -143
- package/src/boot/__tests__/sessionColdBoot.identity.test.ts +0 -393
- package/src/boot/__tests__/sessionColdBoot.sharedDevice.test.ts +0 -325
- package/src/boot/__tests__/sessionColdBoot.test.ts +0 -570
- package/src/crypto/__tests__/backupMaterial.test.ts +0 -86
- package/src/crypto/__tests__/cryptoPrimitives.test.ts +0 -226
- package/src/crypto/__tests__/identityLink.test.ts +0 -18
- package/src/crypto/__tests__/identityMocks.ts +0 -125
- package/src/crypto/__tests__/identityProof.test.ts +0 -81
- package/src/crypto/__tests__/keyManager.atomicity.test.ts +0 -272
- package/src/crypto/__tests__/keyManager.cacheSafety.test.ts +0 -175
- package/src/crypto/__tests__/keyManager.deviceBackup.test.ts +0 -310
- package/src/crypto/__tests__/keyManager.identityStatus.test.ts +0 -217
- package/src/crypto/__tests__/keyManager.recoveryLadder.test.ts +0 -179
- package/src/crypto/__tests__/keyManager.recoveryMnemonic.test.ts +0 -138
- package/src/crypto/__tests__/keyManager.sharedSlotSync.test.ts +0 -150
- package/src/crypto/__tests__/keyManager.storageMigration.test.ts +0 -227
- package/src/crypto/__tests__/keyManager.test.ts +0 -329
- package/src/crypto/__tests__/polyfill.test.ts +0 -109
- package/src/crypto/__tests__/polyfillOrder.test.ts +0 -114
- package/src/crypto/__tests__/recoveryPhrase.test.ts +0 -61
- package/src/crypto/__tests__/registrationPow.test.ts +0 -61
- package/src/crypto/__tests__/scopedSeed.test.ts +0 -126
- package/src/crypto/__tests__/signChallengeShared.test.ts +0 -63
- package/src/crypto/__tests__/signedRecord.test.ts +0 -230
- package/src/i18n/__tests__/accountCategoryLabels.test.ts +0 -62
- package/src/i18n/__tests__/accountRoleLabels.test.ts +0 -54
- package/src/i18n/__tests__/reputationCategoryLabels.test.ts +0 -56
- package/src/i18n/__tests__/trustTierLabels.test.ts +0 -47
- package/src/i18n/locales/de-DE.json +0 -306
- package/src/i18n/locales/es-ES.json +0 -2127
- package/src/i18n/locales/ja-JP.json +0 -306
- package/src/inference/__tests__/OxyInferenceClient.test.ts +0 -899
- package/src/logger/__tests__/logger.test.ts +0 -207
- package/src/mixins/OxyServices.accounts.ts +0 -1330
- package/src/mixins/OxyServices.agency.ts +0 -353
- package/src/mixins/OxyServices.analytics.ts +0 -53
- package/src/mixins/OxyServices.appData.ts +0 -158
- package/src/mixins/OxyServices.assets.ts +0 -964
- package/src/mixins/OxyServices.auth.ts +0 -2083
- package/src/mixins/OxyServices.chains.ts +0 -134
- package/src/mixins/OxyServices.civic.ts +0 -945
- package/src/mixins/OxyServices.connectedApps.ts +0 -212
- package/src/mixins/OxyServices.contacts.ts +0 -73
- package/src/mixins/OxyServices.devices.ts +0 -120
- package/src/mixins/OxyServices.features.ts +0 -454
- package/src/mixins/OxyServices.followGraph.ts +0 -293
- package/src/mixins/OxyServices.identity.ts +0 -787
- package/src/mixins/OxyServices.identityBackup.ts +0 -250
- package/src/mixins/OxyServices.inference.ts +0 -57
- package/src/mixins/OxyServices.language.ts +0 -144
- package/src/mixins/OxyServices.linkedAccounts.ts +0 -129
- package/src/mixins/OxyServices.location.ts +0 -46
- package/src/mixins/OxyServices.nodes.ts +0 -337
- package/src/mixins/OxyServices.notifications.ts +0 -142
- package/src/mixins/OxyServices.payment.ts +0 -163
- package/src/mixins/OxyServices.privacy.ts +0 -219
- package/src/mixins/OxyServices.reputation.ts +0 -436
- package/src/mixins/OxyServices.security.ts +0 -110
- package/src/mixins/OxyServices.store.ts +0 -585
- package/src/mixins/OxyServices.topics.ts +0 -169
- package/src/mixins/OxyServices.user.ts +0 -1208
- package/src/mixins/OxyServices.utility.ts +0 -1803
- package/src/mixins/__tests__/OxyServices.civic.test.ts +0 -1095
- package/src/mixins/__tests__/OxyServices.deviceBoot.test.ts +0 -124
- package/src/mixins/__tests__/OxyServices.identity.test.ts +0 -301
- package/src/mixins/__tests__/OxyServices.nodes.test.ts +0 -341
- package/src/mixins/__tests__/OxyServices.rotateKey.test.ts +0 -323
- package/src/mixins/__tests__/OxyServices.serviceAssetMetadata.test.ts +0 -192
- package/src/mixins/__tests__/OxyServices.serviceAssetMetadataBySha.test.ts +0 -135
- package/src/mixins/__tests__/OxyServices.serviceLinkedDownloadUrl.test.ts +0 -139
- package/src/mixins/__tests__/accountEvents.test.ts +0 -158
- package/src/mixins/__tests__/accounts.test.ts +0 -727
- package/src/mixins/__tests__/agency.test.ts +0 -120
- package/src/mixins/__tests__/appData.test.ts +0 -203
- package/src/mixins/__tests__/assetCredentials.test.ts +0 -47
- package/src/mixins/__tests__/assetUpload.test.ts +0 -191
- package/src/mixins/__tests__/authRefusalObservability.test.ts +0 -396
- package/src/mixins/__tests__/backgroundCredential.httpIntegration.test.ts +0 -130
- package/src/mixins/__tests__/chains.test.ts +0 -113
- package/src/mixins/__tests__/commonsSignIn.test.ts +0 -1147
- package/src/mixins/__tests__/connectedApps.test.ts +0 -146
- package/src/mixins/__tests__/deviceTokenMintPinned.test.ts +0 -113
- package/src/mixins/__tests__/discoveryErrorHandling.test.ts +0 -265
- package/src/mixins/__tests__/followCacheInvalidation.test.ts +0 -173
- package/src/mixins/__tests__/followGraph.test.ts +0 -147
- package/src/mixins/__tests__/followGraphPagination.test.ts +0 -271
- package/src/mixins/__tests__/getFileDownloadUrl.test.ts +0 -346
- package/src/mixins/__tests__/getFollowStatuses.test.ts +0 -95
- package/src/mixins/__tests__/getUsersByIds.test.ts +0 -176
- package/src/mixins/__tests__/identityBackup.test.ts +0 -315
- package/src/mixins/__tests__/identityLink.test.ts +0 -89
- package/src/mixins/__tests__/identityWriteCacheInvalidation.test.ts +0 -407
- package/src/mixins/__tests__/inferenceFactory.test.ts +0 -58
- package/src/mixins/__tests__/linkedAccounts.test.ts +0 -109
- package/src/mixins/__tests__/notifications.read.test.ts +0 -82
- package/src/mixins/__tests__/onTokensChanged.test.ts +0 -129
- package/src/mixins/__tests__/preSessionSkipAuth.test.ts +0 -284
- package/src/mixins/__tests__/privacyCacheInvalidation.test.ts +0 -155
- package/src/mixins/__tests__/reputation.test.ts +0 -522
- package/src/mixins/__tests__/serviceAuth.test.ts +0 -889
- package/src/mixins/__tests__/serviceTokenJwks.test.ts +0 -208
- package/src/mixins/__tests__/store.test.ts +0 -304
- package/src/mixins/__tests__/topics.test.ts +0 -155
- package/src/mixins/__tests__/userReadCacheBypass.test.ts +0 -129
- package/src/mixins/__tests__/userTokenAuth.test.ts +0 -746
- package/src/mixins/__tests__/verifyChallenge.test.ts +0 -161
- package/src/mixins/__tests__/verifyServiceActingAs.test.ts +0 -167
- package/src/mixins/__tests__/webauthnAuth.test.ts +0 -279
- package/src/mixins/index.ts +0 -203
- package/src/mixins/mixinHelpers.ts +0 -69
- package/src/server/__tests__/auth.test.ts +0 -78
- package/src/server/__tests__/capabilityTicket.test.ts +0 -111
- package/src/server/__tests__/cors.socket.test.ts +0 -225
- package/src/server/__tests__/cors.test.ts +0 -158
- package/src/server/__tests__/rateLimit.test.ts +0 -257
- package/src/server/__tests__/requesterAssertion.test.ts +0 -359
- package/src/server/__tests__/safeFetch.test.ts +0 -232
- package/src/server/__tests__/securityHeaders.test.ts +0 -387
- package/src/server/__tests__/serviceTokenAttribution.test.ts +0 -396
- package/src/server/__tests__/traffic.test.ts +0 -180
- package/src/server/__tests__/trafficNodeHttp.test.ts +0 -38
- package/src/server/__tests__/userInvalidation.test.ts +0 -203
- package/src/server/__tests__/verifySecret.test.ts +0 -40
- package/src/server/__tests__/workloadIdentity.client.test.ts +0 -16
- package/src/server/__tests__/workloadIdentity.test.ts +0 -128
- package/src/session/__tests__/SessionClient.additive.test.ts +0 -153
- package/src/session/__tests__/SessionClient.broadcastChannel.test.ts +0 -114
- package/src/session/__tests__/SessionClient.diagnostics.test.ts +0 -91
- package/src/session/__tests__/SessionClient.directory.test.ts +0 -688
- package/src/session/__tests__/SessionClient.httpIntegration.test.ts +0 -65
- package/src/session/__tests__/SessionClient.identityPin.test.ts +0 -175
- package/src/session/__tests__/SessionClient.rest.test.ts +0 -119
- package/src/session/__tests__/SessionClient.serverEvents.test.ts +0 -72
- package/src/session/__tests__/SessionClient.socket.test.ts +0 -202
- package/src/session/__tests__/SessionClient.socketFactory.test.ts +0 -81
- package/src/session/__tests__/SessionClient.state.test.ts +0 -78
- package/src/session/__tests__/SessionClient.switchTokenOrder.test.ts +0 -170
- package/src/session/__tests__/accountDelegationAccess.test.ts +0 -104
- package/src/session/__tests__/accountDialogController.test.ts +0 -2502
- package/src/session/__tests__/accountDialogShape.test.ts +0 -120
- package/src/session/__tests__/accountSwitchTargets.test.ts +0 -137
- package/src/session/__tests__/authStateStore.test.ts +0 -451
- package/src/session/__tests__/deviceDirectory.test.ts +0 -422
- package/src/session/__tests__/deviceSwitcherRows.test.ts +0 -223
- package/src/session/__tests__/identityPin.test.ts +0 -131
- package/src/session/__tests__/identitySession.test.ts +0 -194
- package/src/session/__tests__/projectSessionState.test.ts +0 -105
- package/src/session/__tests__/refresh.identityPin.test.ts +0 -307
- package/src/session/__tests__/refresh.test.ts +0 -606
- package/src/session/__tests__/sessionIntegration.test.ts +0 -209
- package/src/session/__tests__/sharedDeviceCredential.test.ts +0 -300
- package/src/utils/__tests__/accountUtils.test.ts +0 -151
- package/src/utils/__tests__/activityId.test.ts +0 -45
- package/src/utils/__tests__/asyncUtils.test.ts +0 -279
- package/src/utils/__tests__/authWebUrl.test.ts +0 -15
- package/src/utils/__tests__/cacheKey.test.ts +0 -0
- package/src/utils/__tests__/cacheLifecycle.test.ts +0 -65
- package/src/utils/__tests__/coldBoot.test.ts +0 -496
- package/src/utils/__tests__/commonsApproval.test.ts +0 -60
- package/src/utils/__tests__/identityCacheSweep.test.ts +0 -151
- package/src/utils/__tests__/languageUtils.test.ts +0 -244
- package/src/utils/__tests__/oauthPkce.test.ts +0 -303
- package/src/utils/__tests__/officialOrigins.test.ts +0 -31
- package/src/utils/__tests__/oxyServiceEnvironment.test.ts +0 -7
- package/src/utils/__tests__/profileLinks.test.ts +0 -180
- package/src/utils/__tests__/redactUrl.test.ts +0 -33
- package/src/utils/__tests__/registrableApex.test.ts +0 -62
- package/src/utils/__tests__/requestUtilsAbort.test.ts +0 -155
- package/src/utils/__tests__/textNormalization.test.ts +0 -205
- package/src/utils/__tests__/validationUtils.test.ts +0 -703
- package/src/utils/__tests__/webauthnOrigin.test.ts +0 -83
- package/src/utils/webauthnOrigin.ts +0 -52
|
@@ -0,0 +1,433 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `oxy.apps` — applications.
|
|
3
|
+
*
|
|
4
|
+
* Two unrelated surfaces share the word "app":
|
|
5
|
+
* - the applications an ACCOUNT owns and manages (`/applications`): the OAuth
|
|
6
|
+
* clients, their credentials and usage — `apps.list/get/create/update/delete`,
|
|
7
|
+
* `apps.credentials.*`, `apps.usage`. Access derives from the caller's
|
|
8
|
+
* `AccountMember` on the owning account (`oxy.accounts`).
|
|
9
|
+
* - the THIRD-PARTY applications this user granted access to through the
|
|
10
|
+
* consent flow — `apps.connected.*` — and the public identity of a requesting
|
|
11
|
+
* application for consent screens — `apps.getPublic`.
|
|
12
|
+
*
|
|
13
|
+
* Reference applications by their `_id` (`applicationId`), credentials by their
|
|
14
|
+
* `credentialId`. A connected app is keyed by `applicationId`, never a
|
|
15
|
+
* credential/client id, so a grant and its revocation survive credential
|
|
16
|
+
* rotation.
|
|
17
|
+
*/
|
|
18
|
+
import type { OxyContext } from '../client/context';
|
|
19
|
+
import type { AccountMember, AccountSuccessResult } from './accounts';
|
|
20
|
+
/**
|
|
21
|
+
* Application classification. Set only by Oxy platform staff — never editable
|
|
22
|
+
* through the normal member-facing update path.
|
|
23
|
+
*/
|
|
24
|
+
export type ApplicationType = 'first_party' | 'third_party' | 'internal' | 'system';
|
|
25
|
+
/** Lifecycle status of an application. */
|
|
26
|
+
export type ApplicationStatus = 'active' | 'suspended' | 'deleted' | 'pending_review';
|
|
27
|
+
/**
|
|
28
|
+
* Credential kind.
|
|
29
|
+
*
|
|
30
|
+
* The first three are OAuth clients: the `oxy_dk_…` `publicKey` is the
|
|
31
|
+
* `client_id`, and any secret is presented BESIDE it. `service` credentials
|
|
32
|
+
* additionally mint service tokens.
|
|
33
|
+
*
|
|
34
|
+
* `machine` is the OpenAI-SDK-compatible API key (issue #972 §2.3): its
|
|
35
|
+
* credential material is ONE `oxy_sk_…` bearer string returned in `token`
|
|
36
|
+
* exactly once on create/rotate, never in `secret`.
|
|
37
|
+
*/
|
|
38
|
+
export type ApplicationCredentialType = 'public' | 'confidential' | 'service' | 'machine';
|
|
39
|
+
/** Deployment environment an application credential is scoped to. */
|
|
40
|
+
export type ApplicationEnvironment = 'development' | 'staging' | 'production';
|
|
41
|
+
/** Application credential lifecycle status. */
|
|
42
|
+
export type ApplicationCredentialStatus = 'active' | 'deprecated' | 'revoked';
|
|
43
|
+
/**
|
|
44
|
+
* Client-facing Application shape returned by the `/applications` API. An
|
|
45
|
+
* application is the OAuth client; it is OWNED by an account
|
|
46
|
+
* (`ownerAccountId`), and the caller's access derives from their `AccountMember`
|
|
47
|
+
* on that owning account (with inheritance).
|
|
48
|
+
*/
|
|
49
|
+
export interface Application {
|
|
50
|
+
_id: string;
|
|
51
|
+
name: string;
|
|
52
|
+
description?: string;
|
|
53
|
+
websiteUrl?: string;
|
|
54
|
+
/** Public privacy-policy URL, rendered as a legal link on the OAuth consent screen. */
|
|
55
|
+
privacyPolicyUrl?: string;
|
|
56
|
+
/** Public terms-of-service URL, rendered as a legal link on the OAuth consent screen. */
|
|
57
|
+
termsUrl?: string;
|
|
58
|
+
icon?: string;
|
|
59
|
+
type: ApplicationType;
|
|
60
|
+
status: ApplicationStatus;
|
|
61
|
+
isOfficial: boolean;
|
|
62
|
+
isInternal: boolean;
|
|
63
|
+
capabilities: string[];
|
|
64
|
+
redirectUris: string[];
|
|
65
|
+
scopes: string[];
|
|
66
|
+
webhookUrl?: string;
|
|
67
|
+
devWebhookUrl?: string;
|
|
68
|
+
createdByUserId: string;
|
|
69
|
+
/**
|
|
70
|
+
* The account that owns this application (account `_id`). Access to the
|
|
71
|
+
* application derives from the caller's `AccountMember` on this account, with
|
|
72
|
+
* inheritance up the account tree.
|
|
73
|
+
*/
|
|
74
|
+
ownerAccountId: string;
|
|
75
|
+
createdAt: string;
|
|
76
|
+
updatedAt: string;
|
|
77
|
+
/**
|
|
78
|
+
* The caller's effective membership in the OWNING account (direct or
|
|
79
|
+
* inherited), embedded by the API on list/detail responses, or `null` when the
|
|
80
|
+
* caller has no membership. Use `callerMembership.permissions` to gate UI.
|
|
81
|
+
*/
|
|
82
|
+
callerMembership?: AccountMember | null;
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* Client-facing ApplicationCredential shape (an application's OAuth client
|
|
86
|
+
* credentials). The raw secret is NEVER part of this shape — it is returned
|
|
87
|
+
* exactly once, separately, at creation/rotation.
|
|
88
|
+
*/
|
|
89
|
+
export interface ApplicationCredential {
|
|
90
|
+
_id: string;
|
|
91
|
+
applicationId: string;
|
|
92
|
+
name: string;
|
|
93
|
+
publicKey: string;
|
|
94
|
+
/**
|
|
95
|
+
* `oxy_sk_<id>` — the PUBLIC lookup half of a `machine` credential's bearer
|
|
96
|
+
* token, present only on that type. Safe to render: the secret half is 256
|
|
97
|
+
* bits that were shown exactly once and are never returned again.
|
|
98
|
+
*/
|
|
99
|
+
tokenPrefix?: string;
|
|
100
|
+
type: ApplicationCredentialType;
|
|
101
|
+
environment: ApplicationEnvironment;
|
|
102
|
+
scopes: string[];
|
|
103
|
+
status: ApplicationCredentialStatus;
|
|
104
|
+
lastUsedAt?: string;
|
|
105
|
+
expiresAt?: string;
|
|
106
|
+
/**
|
|
107
|
+
* Audit link to the credential this one was rotated FROM. Populated on
|
|
108
|
+
* credentials created via rotation; absent on original credentials.
|
|
109
|
+
*/
|
|
110
|
+
rotatedFromCredentialId?: string;
|
|
111
|
+
createdByUserId: string;
|
|
112
|
+
createdAt: string;
|
|
113
|
+
updatedAt: string;
|
|
114
|
+
}
|
|
115
|
+
/** Input accepted by `apps.create`. Staff-only fields are not settable here. */
|
|
116
|
+
export interface CreateApplicationInput {
|
|
117
|
+
name: string;
|
|
118
|
+
description?: string;
|
|
119
|
+
websiteUrl?: string;
|
|
120
|
+
/** Public privacy-policy URL (absolute `https://`). Shown on the OAuth consent screen. */
|
|
121
|
+
privacyPolicyUrl?: string;
|
|
122
|
+
/** Public terms-of-service URL (absolute `https://`). Shown on the OAuth consent screen. */
|
|
123
|
+
termsUrl?: string;
|
|
124
|
+
icon?: string;
|
|
125
|
+
redirectUris?: string[];
|
|
126
|
+
scopes?: string[];
|
|
127
|
+
/**
|
|
128
|
+
* Owning account `_id`. Omitted → the API defaults to the caller's personal
|
|
129
|
+
* account.
|
|
130
|
+
*/
|
|
131
|
+
ownerAccountId?: string;
|
|
132
|
+
}
|
|
133
|
+
/** Input accepted by `apps.update`. Staff-only fields are not settable here. */
|
|
134
|
+
export interface UpdateApplicationInput {
|
|
135
|
+
name?: string;
|
|
136
|
+
description?: string;
|
|
137
|
+
websiteUrl?: string;
|
|
138
|
+
/** Public privacy-policy URL (absolute `https://`, or `''` to clear). Shown on the OAuth consent screen. */
|
|
139
|
+
privacyPolicyUrl?: string;
|
|
140
|
+
/** Public terms-of-service URL (absolute `https://`, or `''` to clear). Shown on the OAuth consent screen. */
|
|
141
|
+
termsUrl?: string;
|
|
142
|
+
icon?: string;
|
|
143
|
+
redirectUris?: string[];
|
|
144
|
+
scopes?: string[];
|
|
145
|
+
webhookUrl?: string;
|
|
146
|
+
devWebhookUrl?: string;
|
|
147
|
+
status?: ApplicationStatus;
|
|
148
|
+
}
|
|
149
|
+
/** Input accepted by `apps.credentials.create`. */
|
|
150
|
+
export interface CreateApplicationCredentialInput {
|
|
151
|
+
name: string;
|
|
152
|
+
type: ApplicationCredentialType;
|
|
153
|
+
environment: ApplicationEnvironment;
|
|
154
|
+
scopes?: string[];
|
|
155
|
+
/**
|
|
156
|
+
* Lifetime of a `machine` credential, in seconds — 60 to 730 days. Omit for a
|
|
157
|
+
* key that does not expire on its own.
|
|
158
|
+
*
|
|
159
|
+
* **`machine` only.** On every other credential type `expires_at` means the
|
|
160
|
+
* rotation grace deadline, so a caller setting it at creation would make a
|
|
161
|
+
* brand-new credential indistinguishable from a rotated one. The server
|
|
162
|
+
* REJECTS it for those types rather than ignoring it, so sending it with the
|
|
163
|
+
* wrong `type` is a 400, not a silently dropped field.
|
|
164
|
+
*/
|
|
165
|
+
expiresInSeconds?: number;
|
|
166
|
+
}
|
|
167
|
+
/** Input accepted by `apps.credentials.rotate`. */
|
|
168
|
+
export interface RotateApplicationCredentialInput {
|
|
169
|
+
/**
|
|
170
|
+
* How long the superseded `machine` token keeps working, in seconds — 1 to 30
|
|
171
|
+
* days. Omitting it revokes the previous token the instant the replacement is
|
|
172
|
+
* minted, which is the safe default for a leaked key.
|
|
173
|
+
*
|
|
174
|
+
* **`machine` only, and opt-in.** `confidential`/`service` credentials always
|
|
175
|
+
* retire on the platform's fixed seven-day grace and the server REJECTS this
|
|
176
|
+
* field for them, so their contract is unchanged.
|
|
177
|
+
*/
|
|
178
|
+
graceSeconds?: number;
|
|
179
|
+
}
|
|
180
|
+
/**
|
|
181
|
+
* Result of creating an application credential — credential material is returned
|
|
182
|
+
* ONCE and can never be read back.
|
|
183
|
+
*
|
|
184
|
+
* Exactly one of the two fields carries it, decided by
|
|
185
|
+
* {@link ApplicationCredentialType}: `secret` for a `confidential`/`service`
|
|
186
|
+
* client, `token` for a `machine` API key, and NEITHER for a `public` client
|
|
187
|
+
* (`secret` is `null`). They are separate fields rather than one, so a surface
|
|
188
|
+
* that renders "the secret" cannot silently render an API key's bearer token
|
|
189
|
+
* under the wrong label, or a `null` where a token should be.
|
|
190
|
+
*/
|
|
191
|
+
export interface ApplicationCredentialWithSecret {
|
|
192
|
+
credential: ApplicationCredential;
|
|
193
|
+
/** The OAuth client secret. `null` for `public` and `machine` credentials. */
|
|
194
|
+
secret: string | null;
|
|
195
|
+
/** The full `oxy_sk_…` bearer token. Present ONLY for a `machine` credential. */
|
|
196
|
+
token?: string;
|
|
197
|
+
}
|
|
198
|
+
/**
|
|
199
|
+
* Result of rotating an application credential. Extends the create result with
|
|
200
|
+
* audit fields: the new credential material is returned ONCE, plus `rotatedFrom`
|
|
201
|
+
* (the previous credential's `credentialId`) and `graceExpiresAt`.
|
|
202
|
+
*/
|
|
203
|
+
export interface RotateApplicationCredentialResult extends ApplicationCredentialWithSecret {
|
|
204
|
+
/** The previous credential's `credentialId` that this rotation supersedes. */
|
|
205
|
+
rotatedFrom: string;
|
|
206
|
+
/**
|
|
207
|
+
* ISO timestamp at which the rotated-from credential stops being honoured, or
|
|
208
|
+
* `null` when no grace window was configured and it was revoked outright.
|
|
209
|
+
*
|
|
210
|
+
* Nullable because a `machine` credential's grace is OPT-IN (issue #972 §2.3):
|
|
211
|
+
* rotating an API key without asking for a window kills the old token
|
|
212
|
+
* immediately, and there is then no deadline to report. The OAuth/service
|
|
213
|
+
* types always carry their fixed seven-day deadline.
|
|
214
|
+
*/
|
|
215
|
+
graceExpiresAt: string | null;
|
|
216
|
+
}
|
|
217
|
+
/** Time window for application usage statistics. */
|
|
218
|
+
export type ApplicationUsagePeriod = '24h' | '7d' | '30d' | '90d';
|
|
219
|
+
/** Aggregate totals for an application over the requested period. */
|
|
220
|
+
export interface ApplicationUsageSummary {
|
|
221
|
+
totalRequests: number;
|
|
222
|
+
totalTokens: number;
|
|
223
|
+
totalCredits: number;
|
|
224
|
+
avgResponseTime: number;
|
|
225
|
+
successfulRequests: number;
|
|
226
|
+
errorRequests: number;
|
|
227
|
+
}
|
|
228
|
+
/** Per-day usage bucket. `_id` is the day key (e.g. `YYYY-MM-DD`). */
|
|
229
|
+
export interface ApplicationUsageByDay {
|
|
230
|
+
_id: string;
|
|
231
|
+
requests: number;
|
|
232
|
+
tokens: number;
|
|
233
|
+
credits: number;
|
|
234
|
+
}
|
|
235
|
+
/** Per-endpoint usage bucket. `_id` is the endpoint identifier. */
|
|
236
|
+
export interface ApplicationUsageByEndpoint {
|
|
237
|
+
_id: string;
|
|
238
|
+
requests: number;
|
|
239
|
+
tokens: number;
|
|
240
|
+
}
|
|
241
|
+
/** Usage statistics for an application over a period. */
|
|
242
|
+
export interface ApplicationUsageStats {
|
|
243
|
+
summary: ApplicationUsageSummary;
|
|
244
|
+
byDay: ApplicationUsageByDay[];
|
|
245
|
+
byEndpoint: ApplicationUsageByEndpoint[];
|
|
246
|
+
}
|
|
247
|
+
/**
|
|
248
|
+
* Sanitized, PUBLIC application identity returned by the API when resolving a
|
|
249
|
+
* cross-app/OAuth client to a registered application.
|
|
250
|
+
*
|
|
251
|
+
* This shape carries NO sensitive or membership fields — it is safe to display
|
|
252
|
+
* unauthenticated in consent/authorize screens and device-flow approval UIs. The
|
|
253
|
+
* API resolves a `client_id` (OAuth credential public key) to the owning
|
|
254
|
+
* application and projects only the fields below. `id` is the application's
|
|
255
|
+
* `_id` as a string.
|
|
256
|
+
*/
|
|
257
|
+
export interface PublicApplication {
|
|
258
|
+
/** The application's Mongo `_id` as a string. */
|
|
259
|
+
id: string;
|
|
260
|
+
/** Human-readable application name shown to the user. */
|
|
261
|
+
name: string;
|
|
262
|
+
/** Optional short description of what the application does. */
|
|
263
|
+
description?: string;
|
|
264
|
+
/** Optional icon URL for the application. */
|
|
265
|
+
icon?: string;
|
|
266
|
+
/** Optional public website/homepage URL for the application. */
|
|
267
|
+
websiteUrl?: string;
|
|
268
|
+
/** Optional public privacy-policy URL, rendered as a legal link on the consent screen. */
|
|
269
|
+
privacyPolicyUrl?: string;
|
|
270
|
+
/** Optional public terms-of-service URL, rendered as a legal link on the consent screen. */
|
|
271
|
+
termsUrl?: string;
|
|
272
|
+
/** Application classification (set by Oxy platform staff). */
|
|
273
|
+
type: ApplicationType;
|
|
274
|
+
/** Whether the application is an officially endorsed Oxy application. */
|
|
275
|
+
isOfficial: boolean;
|
|
276
|
+
/** Whether the application is an internal Oxy ecosystem application. */
|
|
277
|
+
isInternal: boolean;
|
|
278
|
+
/** OAuth scopes the application is configured to request. */
|
|
279
|
+
scopes: string[];
|
|
280
|
+
/** Optional display name of the developer/owner organisation. */
|
|
281
|
+
developerName?: string;
|
|
282
|
+
}
|
|
283
|
+
/**
|
|
284
|
+
* A connected (OAuth-authorized) application from the current user's point of
|
|
285
|
+
* view: an application the user has granted access to via the consent flow.
|
|
286
|
+
*
|
|
287
|
+
* Returned by `GET /auth/grants` and rendered in the user-facing "Connected
|
|
288
|
+
* apps" management surface. Keyed by `applicationId` (the application's Mongo
|
|
289
|
+
* `_id`) rather than a credential/client id, so the grant — and a subsequent
|
|
290
|
+
* `apps.connected.revoke` — survive credential
|
|
291
|
+
* rotation. This is a display shape: it carries the application's name/logo and
|
|
292
|
+
* the granted scopes, never any membership or credential material.
|
|
293
|
+
*/
|
|
294
|
+
export interface ConnectedApp {
|
|
295
|
+
/** The connected application's Mongo `_id`. Use this to revoke the grant. */
|
|
296
|
+
applicationId: string;
|
|
297
|
+
/** Human-readable application name shown to the user. */
|
|
298
|
+
name: string;
|
|
299
|
+
/** Optional logo URL for the application. */
|
|
300
|
+
logoUrl?: string;
|
|
301
|
+
/** OAuth scopes the user has granted to the application. */
|
|
302
|
+
scopes: string[];
|
|
303
|
+
/** ISO timestamp of when the user first authorized the application. */
|
|
304
|
+
firstGrantedAt: string;
|
|
305
|
+
/** ISO timestamp of when the grant was last exercised. */
|
|
306
|
+
lastUsedAt: string;
|
|
307
|
+
}
|
|
308
|
+
/** An external MCP client authorized for one exact app resource and account. */
|
|
309
|
+
export interface ConnectedMcpClient {
|
|
310
|
+
id: string;
|
|
311
|
+
appSlug: string;
|
|
312
|
+
resource: string;
|
|
313
|
+
scopes: string[];
|
|
314
|
+
clientId: string;
|
|
315
|
+
clientName: string;
|
|
316
|
+
createdAt: string;
|
|
317
|
+
lastUsedAt: string;
|
|
318
|
+
}
|
|
319
|
+
/** `oxy.apps.credentials` — an application's OAuth client credentials. */
|
|
320
|
+
export declare class AppCredentialsApi {
|
|
321
|
+
private readonly ctx;
|
|
322
|
+
constructor(ctx: OxyContext);
|
|
323
|
+
/**
|
|
324
|
+
* List an application's OAuth credentials. The response NEVER includes
|
|
325
|
+
* secrets.
|
|
326
|
+
* @param applicationId - The application's `_id`.
|
|
327
|
+
*/
|
|
328
|
+
list(applicationId: string): Promise<ApplicationCredential[]>;
|
|
329
|
+
/**
|
|
330
|
+
* Create an application credential. The plaintext `secret` is returned
|
|
331
|
+
* exactly ONCE; the server stores only a hash and will never return it again.
|
|
332
|
+
* @param applicationId - The application's `_id`.
|
|
333
|
+
* @param data - Credential configuration.
|
|
334
|
+
*/
|
|
335
|
+
create(applicationId: string, data: CreateApplicationCredentialInput): Promise<ApplicationCredentialWithSecret>;
|
|
336
|
+
/**
|
|
337
|
+
* Rotate an application credential's secret. The new plaintext `secret` is
|
|
338
|
+
* returned exactly ONCE, along with audit fields: `rotatedFrom` (the previous
|
|
339
|
+
* credentialId) and `graceExpiresAt` (the end of the window during which the
|
|
340
|
+
* old credential is still honoured).
|
|
341
|
+
* @param applicationId - The application's `_id`.
|
|
342
|
+
* @param credentialId - The credential's `_id`.
|
|
343
|
+
* @param options - `graceSeconds` keeps a superseded `machine` token working
|
|
344
|
+
* for that long. Omitted, the previous token dies the moment the
|
|
345
|
+
* replacement is minted.
|
|
346
|
+
*/
|
|
347
|
+
rotate(applicationId: string, credentialId: string, options?: RotateApplicationCredentialInput): Promise<RotateApplicationCredentialResult>;
|
|
348
|
+
/**
|
|
349
|
+
* Revoke an application credential (`status='revoked'`). Revoked credentials
|
|
350
|
+
* can no longer authenticate.
|
|
351
|
+
* @param applicationId - The application's `_id`.
|
|
352
|
+
* @param credentialId - The credential's `_id`.
|
|
353
|
+
*/
|
|
354
|
+
revoke(applicationId: string, credentialId: string): Promise<AccountSuccessResult>;
|
|
355
|
+
}
|
|
356
|
+
/** `oxy.apps.connected` — third-party apps (and MCP clients) this user authorized. */
|
|
357
|
+
export declare class ConnectedAppsApi {
|
|
358
|
+
private readonly ctx;
|
|
359
|
+
constructor(ctx: OxyContext);
|
|
360
|
+
/**
|
|
361
|
+
* The applications this user granted access to through the consent flow,
|
|
362
|
+
* with the granted scopes and when the grant was first made and last used.
|
|
363
|
+
* `GET /auth/grants`, briefly cached; `revoke` busts it.
|
|
364
|
+
*/
|
|
365
|
+
list(): Promise<ConnectedApp[]>;
|
|
366
|
+
/**
|
|
367
|
+
* Revoke this user's grant for a connected application. After this the
|
|
368
|
+
* application can no longer act on the user's behalf until re-authorized.
|
|
369
|
+
* @param applicationId - The connected application's `_id` (a
|
|
370
|
+
* `ConnectedApp.applicationId`, NOT a credential/client id).
|
|
371
|
+
*/
|
|
372
|
+
revoke(applicationId: string): Promise<void>;
|
|
373
|
+
/** Resource-bound external MCP connections for the active Oxy account. */
|
|
374
|
+
mcpClients(): Promise<ConnectedMcpClient[]>;
|
|
375
|
+
/** Revoke one external MCP connection and every token in its family. */
|
|
376
|
+
revokeMcpClient(grantId: string): Promise<void>;
|
|
377
|
+
}
|
|
378
|
+
export declare class AppsApi {
|
|
379
|
+
private readonly ctx;
|
|
380
|
+
/** An application's OAuth client credentials. */
|
|
381
|
+
readonly credentials: AppCredentialsApi;
|
|
382
|
+
/** Third-party apps (and MCP clients) this user authorized. */
|
|
383
|
+
readonly connected: ConnectedAppsApi;
|
|
384
|
+
constructor(ctx: OxyContext);
|
|
385
|
+
/**
|
|
386
|
+
* The applications an account owns. `GET /applications?ownerAccountId=<id>`.
|
|
387
|
+
* @param accountId - The owning account's `_id`.
|
|
388
|
+
*/
|
|
389
|
+
list(accountId: string): Promise<Application[]>;
|
|
390
|
+
/**
|
|
391
|
+
* Fetch a single application by id.
|
|
392
|
+
* @param applicationId - The application's `_id`.
|
|
393
|
+
*/
|
|
394
|
+
get(applicationId: string): Promise<Application>;
|
|
395
|
+
/**
|
|
396
|
+
* Create an application owned by an account.
|
|
397
|
+
* @param data - Application configuration. `ownerAccountId` defaults to the
|
|
398
|
+
* caller's personal account when omitted. Staff-only fields are ignored.
|
|
399
|
+
*/
|
|
400
|
+
create(data: CreateApplicationInput): Promise<Application>;
|
|
401
|
+
/**
|
|
402
|
+
* Update an application's mutable fields.
|
|
403
|
+
* @param applicationId - The application's `_id`.
|
|
404
|
+
* @param data - Subset of updatable fields. Staff-only fields are ignored.
|
|
405
|
+
*/
|
|
406
|
+
update(applicationId: string, data: UpdateApplicationInput): Promise<Application>;
|
|
407
|
+
/**
|
|
408
|
+
* Soft-delete an application.
|
|
409
|
+
* @param applicationId - The application's `_id`.
|
|
410
|
+
*/
|
|
411
|
+
delete(applicationId: string): Promise<AccountSuccessResult>;
|
|
412
|
+
/**
|
|
413
|
+
* Usage statistics for an application.
|
|
414
|
+
* @param applicationId - The application's `_id`.
|
|
415
|
+
* @param period - Time window (defaults to the server default).
|
|
416
|
+
*/
|
|
417
|
+
usage(applicationId: string, period?: ApplicationUsagePeriod): Promise<ApplicationUsageStats>;
|
|
418
|
+
/**
|
|
419
|
+
* Resolve an OAuth `client_id` (an active credential's public key) to the
|
|
420
|
+
* owning application's PUBLIC identity. No authentication required — only
|
|
421
|
+
* sanitized, display-safe metadata; use it to render the requesting app in
|
|
422
|
+
* consent, authorize, and device-flow approval screens before any session
|
|
423
|
+
* exists.
|
|
424
|
+
*/
|
|
425
|
+
getPublic(clientId: string): Promise<PublicApplication>;
|
|
426
|
+
/**
|
|
427
|
+
* Bust every cached application list — the unscoped entry and every
|
|
428
|
+
* owner-scoped `GET:/applications?ownerAccountId=<id>` variant — plus any
|
|
429
|
+
* extra keys, in one pass. The `?` prefix never matches the
|
|
430
|
+
* `GET:/applications/<id>…` detail keys.
|
|
431
|
+
*/
|
|
432
|
+
private invalidateLists;
|
|
433
|
+
}
|
|
@@ -0,0 +1,174 @@
|
|
|
1
|
+
import type { OxyContext } from '../client/context';
|
|
2
|
+
import type { AccountStorageUsageResponse, Asset, AssetDeleteSummary, AssetLink, AssetMetadata, AssetUploadInput, BatchFileAccessResponse, FileVisibility } from '../models/interfaces';
|
|
3
|
+
/**
|
|
4
|
+
* How long a resolved asset URL may stay in the SDK's GET cache, in ms: never
|
|
5
|
+
* longer than the media token's lifetime, and discounted below it.
|
|
6
|
+
*/
|
|
7
|
+
export declare function assetUrlCacheTTL(expiresIn?: number): number;
|
|
8
|
+
/** An asset as `GET /assets/:id` and `GET /assets` return it. */
|
|
9
|
+
export type AssetRecord = Omit<Asset, 'visibility'> & {
|
|
10
|
+
visibility?: FileVisibility;
|
|
11
|
+
};
|
|
12
|
+
/** The asset `POST /assets/upload` returns. */
|
|
13
|
+
export type UploadedAsset = Pick<Asset, 'id' | 'sha256' | 'size' | 'mime' | 'ext' | 'visibility' | 'links' | 'variants'> & {
|
|
14
|
+
originalName?: string;
|
|
15
|
+
metadata?: AssetMetadata;
|
|
16
|
+
};
|
|
17
|
+
/** An asset's link state after a link or unlink. */
|
|
18
|
+
export interface AssetLinkState {
|
|
19
|
+
id: string;
|
|
20
|
+
usageCount: number;
|
|
21
|
+
links: AssetLink[];
|
|
22
|
+
status: Asset['status'];
|
|
23
|
+
}
|
|
24
|
+
export interface AssetUploadOptions {
|
|
25
|
+
/** Server default: `private`. */
|
|
26
|
+
visibility?: FileVisibility;
|
|
27
|
+
metadata?: AssetMetadata;
|
|
28
|
+
/** Called with `100` once the upload completes. */
|
|
29
|
+
onProgress?: (progress: number) => void;
|
|
30
|
+
}
|
|
31
|
+
export interface AssetLinkTarget {
|
|
32
|
+
app: string;
|
|
33
|
+
entityType: string;
|
|
34
|
+
entityId: string;
|
|
35
|
+
}
|
|
36
|
+
export interface AssetDeleteResult {
|
|
37
|
+
summary: AssetDeleteSummary;
|
|
38
|
+
message: string;
|
|
39
|
+
force?: boolean;
|
|
40
|
+
}
|
|
41
|
+
export declare class AssetsApi {
|
|
42
|
+
protected readonly ctx: OxyContext;
|
|
43
|
+
constructor(ctx: OxyContext);
|
|
44
|
+
/**
|
|
45
|
+
* Upload a file. Accepts a web `File`/`Blob` or a React Native
|
|
46
|
+
* `{ uri, type?, name?, size? }` descriptor.
|
|
47
|
+
*
|
|
48
|
+
* On React Native the descriptor goes into the multipart body as-is (RN's
|
|
49
|
+
* FormData reads the file from disk). On the web a plain `{ uri }` cannot be
|
|
50
|
+
* read by FormData (it would upload `[object Object]` — a 0-byte asset), so
|
|
51
|
+
* the uri is materialised into a Blob first; an empty result throws.
|
|
52
|
+
*/
|
|
53
|
+
upload(file: AssetUploadInput, options?: AssetUploadOptions): Promise<{
|
|
54
|
+
file: UploadedAsset;
|
|
55
|
+
}>;
|
|
56
|
+
/**
|
|
57
|
+
* Upload a public avatar and link it to `userId`'s profile. Does not change
|
|
58
|
+
* the profile's `avatar` field — set it with `users.updateMe`.
|
|
59
|
+
*/
|
|
60
|
+
uploadAvatar(file: AssetUploadInput, userId: string, app?: string): Promise<{
|
|
61
|
+
file: UploadedAsset;
|
|
62
|
+
}>;
|
|
63
|
+
/** Link an asset to an entity (what keeps it alive). */
|
|
64
|
+
link(fileId: string, target: AssetLinkTarget, options?: {
|
|
65
|
+
visibility?: FileVisibility;
|
|
66
|
+
webhookUrl?: string;
|
|
67
|
+
}): Promise<{
|
|
68
|
+
assetId: string;
|
|
69
|
+
file: AssetLinkState;
|
|
70
|
+
}>;
|
|
71
|
+
/** Remove an asset's link to an entity. */
|
|
72
|
+
unlink(fileId: string, target: AssetLinkTarget): Promise<{
|
|
73
|
+
file: AssetLinkState;
|
|
74
|
+
}>;
|
|
75
|
+
/** An asset's record: size, mime, visibility, links, variants. */
|
|
76
|
+
get(fileId: string): Promise<{
|
|
77
|
+
assetId: string;
|
|
78
|
+
file: AssetRecord;
|
|
79
|
+
}>;
|
|
80
|
+
/** The signed-in user's files, newest first. */
|
|
81
|
+
list(params?: {
|
|
82
|
+
limit?: number;
|
|
83
|
+
offset?: number;
|
|
84
|
+
}): Promise<{
|
|
85
|
+
files: AssetRecord[];
|
|
86
|
+
total: number;
|
|
87
|
+
hasMore: boolean;
|
|
88
|
+
}>;
|
|
89
|
+
/** The account's storage usage, aggregated from its assets. */
|
|
90
|
+
usage(): Promise<AccountStorageUsageResponse>;
|
|
91
|
+
/**
|
|
92
|
+
* A URL for `fileId` valid for the CURRENT caller, whatever its visibility
|
|
93
|
+
* (`GET /assets/:id/url`): the CDN form for a public asset, an API-origin
|
|
94
|
+
* stream URL with a scoped media token for a private one the caller may
|
|
95
|
+
* read. Returned exactly as the API produced it.
|
|
96
|
+
*
|
|
97
|
+
* Throws {@link AssetUrlResolutionError} when the API returns no URL or the
|
|
98
|
+
* request fails (401/403/404 included) — deliberately never falling back to
|
|
99
|
+
* {@link publicUrl}, which would hand back a known-404 for a private asset and
|
|
100
|
+
* hide the real failure.
|
|
101
|
+
*
|
|
102
|
+
* Cached per identity for well under the media token's lifetime.
|
|
103
|
+
*/
|
|
104
|
+
url(fileId: string, variant?: string, expiresIn?: number): Promise<string>;
|
|
105
|
+
/**
|
|
106
|
+
* A synchronous `<img src>` URL for an asset KNOWN to be **public** — a pure
|
|
107
|
+
* string builder with no knowledge of visibility: `${cloudURL}/<id>[?variant]`.
|
|
108
|
+
* A private or unlisted asset 404s there; use {@link url}.
|
|
109
|
+
*
|
|
110
|
+
* It never embeds the caller's bearer token (the string lands in DOM
|
|
111
|
+
* attributes, network panels, caches and logs). With `expiresIn` it builds
|
|
112
|
+
* the API-origin stream form, still credential-less: there is no synchronous
|
|
113
|
+
* private-asset path.
|
|
114
|
+
*/
|
|
115
|
+
publicUrl(fileId: string, variant?: string, expiresIn?: number): string;
|
|
116
|
+
/**
|
|
117
|
+
* {@link url} for many assets — each with its OWN variant — in one round
|
|
118
|
+
* trip. Ids the caller cannot read (or that do not exist) are OMITTED from
|
|
119
|
+
* the map: no CDN fallback, so a grid never renders a known-404. Keyed by
|
|
120
|
+
* `fileId`.
|
|
121
|
+
*/
|
|
122
|
+
urls(requests: Array<{
|
|
123
|
+
fileId: string;
|
|
124
|
+
variant?: string;
|
|
125
|
+
}>, options?: {
|
|
126
|
+
expiresIn?: number;
|
|
127
|
+
context?: string;
|
|
128
|
+
}): Promise<Record<string, string>>;
|
|
129
|
+
/**
|
|
130
|
+
* The raw per-file access envelope behind {@link urls}
|
|
131
|
+
* (`POST /assets/batch-access`): `allowed`, `url`, `visibility`, `mime` or
|
|
132
|
+
* `error` per file. Blank ids are dropped and exact `(fileId, variant)`
|
|
133
|
+
* duplicates collapsed; an empty list makes no call. The server caps a batch
|
|
134
|
+
* at 100 entries.
|
|
135
|
+
*/
|
|
136
|
+
access(requests: Array<{
|
|
137
|
+
fileId: string;
|
|
138
|
+
variant?: string;
|
|
139
|
+
}>, options?: {
|
|
140
|
+
expiresIn?: number;
|
|
141
|
+
context?: string;
|
|
142
|
+
}): Promise<BatchFileAccessResponse>;
|
|
143
|
+
/** An asset's content as text. */
|
|
144
|
+
text(fileId: string, variant?: string): Promise<string>;
|
|
145
|
+
/** An asset's content as a Blob. */
|
|
146
|
+
blob(fileId: string, variant?: string): Promise<Blob>;
|
|
147
|
+
/**
|
|
148
|
+
* Delete an asset. With active links the server refuses and answers the
|
|
149
|
+
* summary of what would break, unless `force`.
|
|
150
|
+
*/
|
|
151
|
+
delete(fileId: string, options?: {
|
|
152
|
+
force?: boolean;
|
|
153
|
+
}): Promise<AssetDeleteResult>;
|
|
154
|
+
/** Restore an asset from the trash. */
|
|
155
|
+
restore(fileId: string): Promise<{
|
|
156
|
+
file: {
|
|
157
|
+
id: string;
|
|
158
|
+
status: Asset['status'];
|
|
159
|
+
usageCount: number;
|
|
160
|
+
};
|
|
161
|
+
}>;
|
|
162
|
+
/** Change an asset's visibility. */
|
|
163
|
+
setVisibility(fileId: string, visibility: FileVisibility): Promise<{
|
|
164
|
+
file: {
|
|
165
|
+
id: string;
|
|
166
|
+
visibility: FileVisibility;
|
|
167
|
+
updatedAt: string;
|
|
168
|
+
};
|
|
169
|
+
}>;
|
|
170
|
+
private resolveUrl;
|
|
171
|
+
private fetchContent;
|
|
172
|
+
/** Drop the cached record and every cached URL variant of an asset, in one pass. */
|
|
173
|
+
private evict;
|
|
174
|
+
}
|