@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,134 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `oxy.users` — people and their profiles.
|
|
3
|
+
*/
|
|
4
|
+
import type { RecommendationItem, RecommendationRequest, UserProfileUpdate } from '@oxy.so/contracts';
|
|
5
|
+
import type { OxyContext } from '../client/context';
|
|
6
|
+
import type { SearchProfilesResponse, User } from '../models/interfaces';
|
|
7
|
+
import { type PaginationParams } from '../utils/apiUtils';
|
|
8
|
+
/** A non-local user to find or create (`PUT /users/resolve`). */
|
|
9
|
+
export interface ResolveExternalUserInput {
|
|
10
|
+
type: 'federated' | 'agent' | 'automated';
|
|
11
|
+
username: string;
|
|
12
|
+
actorUri?: string;
|
|
13
|
+
domain?: string;
|
|
14
|
+
displayName?: string;
|
|
15
|
+
avatar?: string;
|
|
16
|
+
bio?: string;
|
|
17
|
+
ownerId?: string;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* What proves an account deletion (`DELETE /users/me`):
|
|
21
|
+
* - `reauth` — an account without a key: a code just sent to its email by
|
|
22
|
+
* `oxy.auth.requestReauthCode('delete_account')`, plus its authenticator code
|
|
23
|
+
* when it has one;
|
|
24
|
+
* - `deviceKey` — a Commons account: signed with the identity key held on this
|
|
25
|
+
* device (plus `totpCode` when the account has an authenticator).
|
|
26
|
+
*/
|
|
27
|
+
export type DeleteAccountProof = {
|
|
28
|
+
reauth: {
|
|
29
|
+
emailCode: {
|
|
30
|
+
verificationId: string;
|
|
31
|
+
code: string;
|
|
32
|
+
};
|
|
33
|
+
totpCode?: string;
|
|
34
|
+
};
|
|
35
|
+
} | {
|
|
36
|
+
deviceKey: true;
|
|
37
|
+
totpCode?: string;
|
|
38
|
+
};
|
|
39
|
+
export declare class UsersApi {
|
|
40
|
+
private readonly ctx;
|
|
41
|
+
constructor(ctx: OxyContext);
|
|
42
|
+
/**
|
|
43
|
+
* A user by id. Cached 5 minutes; pass `{ cache: false }` for a
|
|
44
|
+
* registry-fresh read that neither serves nor overwrites a cached entry.
|
|
45
|
+
*/
|
|
46
|
+
get(userId: string, options?: {
|
|
47
|
+
cache?: boolean;
|
|
48
|
+
}): Promise<User>;
|
|
49
|
+
/**
|
|
50
|
+
* Many users by id, one round-trip per chunk of 100 — for hydration call
|
|
51
|
+
* sites that would otherwise issue one `get` per author.
|
|
52
|
+
*
|
|
53
|
+
* Ids are deduplicated and blank ids dropped; the result is unordered (map
|
|
54
|
+
* by `id`). `/users/by-ids` accepts a service token, a user session or an
|
|
55
|
+
* anonymous caller and returns the same public payload in every case: on a
|
|
56
|
+
* server that can mint a service token (`OxyServer`) the chunks go over the
|
|
57
|
+
* service lane — an anonymous call from a backend is charged to its shared
|
|
58
|
+
* NAT address's per-IP budget — and everywhere else over the user bearer.
|
|
59
|
+
*
|
|
60
|
+
* Chunks are independent: a failed chunk is logged and skipped. Not cached.
|
|
61
|
+
*/
|
|
62
|
+
getMany(ids: string[]): Promise<User[]>;
|
|
63
|
+
/** The signed-in user. Cached 1 minute. */
|
|
64
|
+
me(): Promise<User>;
|
|
65
|
+
/** A profile by username. Cached 5 minutes; `{ cache: false }` as in `get`. */
|
|
66
|
+
byUsername(username: string, options?: {
|
|
67
|
+
cache?: boolean;
|
|
68
|
+
}): Promise<User>;
|
|
69
|
+
/** The user owning a public key. Public (pre-session): sends no bearer. */
|
|
70
|
+
byPublicKey(publicKey: string): Promise<User>;
|
|
71
|
+
/** The user a session belongs to. */
|
|
72
|
+
bySession(sessionId: string): Promise<User>;
|
|
73
|
+
/** The users of many sessions in one request; `user` is `null` for a dead session. */
|
|
74
|
+
bySessions(sessionIds: string[]): Promise<Array<{
|
|
75
|
+
sessionId: string;
|
|
76
|
+
user: User | null;
|
|
77
|
+
}>>;
|
|
78
|
+
/**
|
|
79
|
+
* Search profiles. Pass `signal` from a search box: every keystroke would
|
|
80
|
+
* otherwise run a search to completion while holding a request-queue slot.
|
|
81
|
+
*/
|
|
82
|
+
search(query: string, pagination?: PaginationParams, options?: {
|
|
83
|
+
signal?: AbortSignal;
|
|
84
|
+
}): Promise<SearchProfilesResponse>;
|
|
85
|
+
/**
|
|
86
|
+
* Resolve a fediverse handle (`@user@mastodon.social`) to an Oxy profile by
|
|
87
|
+
* WebFinger. `null` when it cannot be resolved — discovery is best-effort.
|
|
88
|
+
* Cached 5 minutes: the profile carries the viewer-relative `relationship`.
|
|
89
|
+
*/
|
|
90
|
+
resolveHandle(handle: string): Promise<User | null>;
|
|
91
|
+
/**
|
|
92
|
+
* Find or create a non-local user (federated, agent, automated). All user
|
|
93
|
+
* creation for external accounts goes through here — services never write
|
|
94
|
+
* user data directly.
|
|
95
|
+
*/
|
|
96
|
+
resolveExternal(input: ResolveExternalUserInput): Promise<User>;
|
|
97
|
+
/** Profiles similar to `userId`, by co-follower overlap. Cached 5 minutes. */
|
|
98
|
+
similar(userId: string, limitOrPagination?: number | PaginationParams): Promise<User[]>;
|
|
99
|
+
/**
|
|
100
|
+
* Profile recommendations. Works signed out (popular public profiles) and
|
|
101
|
+
* personalises when signed in.
|
|
102
|
+
*
|
|
103
|
+
* Only `excludeTypes` / `limit` → the cached `GET /profiles/recommendations`.
|
|
104
|
+
* Any scored field (`boosts`, `excludeIds`, `signalWeights`, `clientId`,
|
|
105
|
+
* `offset`) → `POST` with the body validated by `recommendationRequestSchema`
|
|
106
|
+
* (also cached, keyed on the body).
|
|
107
|
+
*/
|
|
108
|
+
recommendations(options?: RecommendationRequest): Promise<RecommendationItem[]>;
|
|
109
|
+
/**
|
|
110
|
+
* Update the signed-in user's profile and settings (`PUT /users/me`) —
|
|
111
|
+
* including `notificationPreferences`, `userPreferences` and
|
|
112
|
+
* `themePreference`.
|
|
113
|
+
*
|
|
114
|
+
* Every cached read that can return this user goes, in one pass: the
|
|
115
|
+
* identity reads (the list `identityCacheSweep` owns) and the account forest
|
|
116
|
+
* (a personal account IS this user, and `AccountNode.account` embeds it).
|
|
117
|
+
*
|
|
118
|
+
* A 401 with no token held rejects with `AUTH_REQUIRED_OFFLINE_SESSION: …` so
|
|
119
|
+
* the caller knows to sync an offline session before retrying.
|
|
120
|
+
*/
|
|
121
|
+
updateMe(updates: UserProfileUpdate): Promise<User>;
|
|
122
|
+
/** Ask for the verified badge. */
|
|
123
|
+
requestVerification(reason: string, evidence?: string): Promise<{
|
|
124
|
+
message: string;
|
|
125
|
+
requestId: string;
|
|
126
|
+
}>;
|
|
127
|
+
/**
|
|
128
|
+
* Delete the signed-in account permanently. `confirmText` must equal the
|
|
129
|
+
* username. See {@link DeleteAccountProof} for what confirms it.
|
|
130
|
+
*/
|
|
131
|
+
deleteMe(confirmText: string, proof: DeleteAccountProof): Promise<{
|
|
132
|
+
message: string;
|
|
133
|
+
}>;
|
|
134
|
+
}
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
* 2. `device-secret-mint` (web + native) — the zero-cookie transport: when the
|
|
15
15
|
* origin persisted a `deviceId` + `deviceSecret`, mint a short access token
|
|
16
16
|
* with a single bearer-less POST to `/session/device/token` (no cookie, no
|
|
17
|
-
* navigation)
|
|
17
|
+
* navigation). The secret is stable across mints.
|
|
18
18
|
* 3. `shared-device-adopt` (native, ACCOUNT mode) — this app has no credential
|
|
19
19
|
* of its own but a sibling official app already put one in the shared native
|
|
20
20
|
* slot: adopt it and mint. This is how a newly installed official app joins
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `@oxy.so/core/civic` — the Oxy ID QR payloads: parse, build, verify.
|
|
3
|
+
*
|
|
4
|
+
* Pure functions over the signed public card and the real-life attestation
|
|
5
|
+
* QR. Their own entry because verifying a card pulls the protocol's signature
|
|
6
|
+
* code, which an app that never scans a card should not ship.
|
|
7
|
+
*/
|
|
8
|
+
import '../crypto/polyfill';
|
|
9
|
+
export { parseIdPayload, parseAttestPayload, verifyPublicCardAttestation } from './payloads';
|
|
10
|
+
export type { IdCardRef, AttestQrPayload, ParsedAttestPayload } from './payloads';
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Oxy ID / Commons QR payloads — pure, dependency-free helpers (Hermes-safe, no
|
|
3
|
+
* `URL` global) a scanner can use without an `OxyServices` instance, plus the
|
|
4
|
+
* client-side check of a public card's Oxy attestation.
|
|
5
|
+
*
|
|
6
|
+
* The Oxy ID QR encodes ONLY the DID (`oxycommons://card?did=…&v=1`) — never trust
|
|
7
|
+
* data — so a card cannot be spoofed by crafting a QR; the scanner resolves the
|
|
8
|
+
* signed card server-side and re-verifies it. The real-life-attestation QR
|
|
9
|
+
* (`oxycommons://attest?subject=…&ctx=…&nonce=…&exp=…`) is shown by the person
|
|
10
|
+
* being attested and parsed by the scanner.
|
|
11
|
+
*/
|
|
12
|
+
import type { ExportAttestation, PublicCard } from '@oxy.so/contracts';
|
|
13
|
+
/** The DID extracted from a scanned `oxycommons://card?did=…` Oxy ID payload. */
|
|
14
|
+
export interface IdCardRef {
|
|
15
|
+
/** The subject's Oxy DID (`did:web:oxy.so:u:<userId>`). */
|
|
16
|
+
did: string;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Parse a scanned / deep-linked Oxy ID payload (`oxycommons://card?did=…`) into
|
|
20
|
+
* the referenced DID. Pure + dependency-free (Hermes-safe, no `URL` global) so
|
|
21
|
+
* Commons (and any scanner) can reuse it without an OxyServices instance.
|
|
22
|
+
*
|
|
23
|
+
* @param raw - The raw scanned string or deep-link URL.
|
|
24
|
+
* @returns `{ did }` when a usable DID is present; `null` for anything else (a
|
|
25
|
+
* non-card scheme, a missing/empty `did`, or non-string input).
|
|
26
|
+
*/
|
|
27
|
+
export declare function parseIdPayload(raw: string): IdCardRef | null;
|
|
28
|
+
/**
|
|
29
|
+
* The fields decoded from a scanned real-life-attestation QR
|
|
30
|
+
* (`oxycommons://attest?subject=…&ctx=…&nonce=…&exp=…`). The SCANNER feeds these
|
|
31
|
+
* to `oxy.civic.attest`.
|
|
32
|
+
*/
|
|
33
|
+
export interface ParsedAttestPayload {
|
|
34
|
+
/** The DID of the person being attested (A) — becomes the record's `about`. */
|
|
35
|
+
subjectDid: string;
|
|
36
|
+
/** Opaque interaction id (`ctx`); `''` when the QR omitted it. */
|
|
37
|
+
context: string;
|
|
38
|
+
/** Single-use replay-guard nonce. */
|
|
39
|
+
nonce: string;
|
|
40
|
+
/** Nonce expiry (epoch ms); the server re-checks freshness authoritatively. */
|
|
41
|
+
exp: number;
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* The QR a person shows to be attested in real life, plus the fresh nonce/exp it
|
|
45
|
+
* embeds so the displaying app can track which scan completed it.
|
|
46
|
+
*/
|
|
47
|
+
export interface AttestQrPayload {
|
|
48
|
+
/** The `oxycommons://attest?subject=…&ctx=…&nonce=…&exp=…` string to encode as a QR. */
|
|
49
|
+
payload: string;
|
|
50
|
+
/** The single-use nonce embedded in the payload. */
|
|
51
|
+
nonce: string;
|
|
52
|
+
/** The nonce expiry embedded in the payload (epoch ms). */
|
|
53
|
+
exp: number;
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Parse a scanned / deep-linked real-life-attestation payload
|
|
57
|
+
* (`oxycommons://attest?subject=…&ctx=…&nonce=…&exp=…`). Pure + dependency-free
|
|
58
|
+
* (Hermes-safe, no `URL` global), mirroring {@link parseIdPayload}, so Commons
|
|
59
|
+
* (and any scanner) can reuse it without an OxyServices instance.
|
|
60
|
+
*
|
|
61
|
+
* @param raw - The raw scanned string or deep-link URL.
|
|
62
|
+
* @returns `{ subjectDid, context, nonce, exp }` when the required fields are
|
|
63
|
+
* present and `exp` is a positive finite number; `null` otherwise (a non-attest
|
|
64
|
+
* scheme, a missing `subject`/`nonce`/`exp`, an unparseable `exp`, or non-string
|
|
65
|
+
* input). `context` defaults to `''` when the QR omits `ctx`.
|
|
66
|
+
*/
|
|
67
|
+
export declare function parseAttestPayload(raw: string): ParsedAttestPayload | null;
|
|
68
|
+
/**
|
|
69
|
+
* Verify the Oxy custodial attestation on a public card.
|
|
70
|
+
*
|
|
71
|
+
* Re-canonicalizes the received `card` (so the order of the JSON keys on the
|
|
72
|
+
* wire is irrelevant; `canonicalize` also omits any `undefined`-valued optional
|
|
73
|
+
* key, matching the server which omits absent keys entirely) and checks the
|
|
74
|
+
* `ES256K-DER-SHA256` signature against `attestation.publicKey`.
|
|
75
|
+
*
|
|
76
|
+
* NEVER throws: `verifySignature` already swallows malformed-input
|
|
77
|
+
* errors and returns `false`, and an absent attestation short-circuits to
|
|
78
|
+
* `false`. A pure, reusable helper (Commons can call it on a cached card).
|
|
79
|
+
*
|
|
80
|
+
* @param card - The card to verify (exactly as received).
|
|
81
|
+
* @param attestation - The card's attestation, or `null` (unsigned ⇒ `false`).
|
|
82
|
+
*/
|
|
83
|
+
export declare function verifyPublicCardAttestation(card: PublicCard, attestation: ExportAttestation | null): Promise<boolean>;
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* What every API namespace is built on.
|
|
3
|
+
*
|
|
4
|
+
* `OxyServices` creates ONE context and hands it to each namespace it creates
|
|
5
|
+
* (lazily, on first access). It is the namespaces' only way into the client, so
|
|
6
|
+
* the plumbing they share — the transport, the service-token lane, cross-cache
|
|
7
|
+
* invalidation — never becomes public surface on `OxyServices` itself.
|
|
8
|
+
*/
|
|
9
|
+
import type { HttpService, RequestOptions } from '../HttpService';
|
|
10
|
+
import type { OxyServices } from '../OxyServices';
|
|
11
|
+
export type HttpMethod = 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE';
|
|
12
|
+
/**
|
|
13
|
+
* The service-token lane. Installed only by `OxyServer`
|
|
14
|
+
* (`@oxy.so/core/server`); `null` on every client. A namespace whose route
|
|
15
|
+
* accepts a service token as well as a user session (e.g. `users.getMany`)
|
|
16
|
+
* prefers it when present.
|
|
17
|
+
*/
|
|
18
|
+
export interface ServiceLane {
|
|
19
|
+
/** Whether a service token can be minted here (a key pair, or workload identity). */
|
|
20
|
+
readonly available: boolean;
|
|
21
|
+
request<T>(method: HttpMethod, url: string, data?: unknown, options?: RequestOptions & {
|
|
22
|
+
actAs?: string;
|
|
23
|
+
}): Promise<T>;
|
|
24
|
+
}
|
|
25
|
+
export interface OxyContext {
|
|
26
|
+
/** The client this context belongs to — for calls into other namespaces. */
|
|
27
|
+
readonly oxy: OxyServices;
|
|
28
|
+
readonly http: HttpService;
|
|
29
|
+
/** `oxy.request`: user bearer, rejects with `OxyApiError`. */
|
|
30
|
+
request<T>(method: HttpMethod, url: string, data?: unknown, options?: RequestOptions): Promise<T>;
|
|
31
|
+
/** The service-token lane, or `null` outside a server. */
|
|
32
|
+
service: ServiceLane | null;
|
|
33
|
+
}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* The code both screens show while Commons is being linked to
|
|
3
|
-
*
|
|
4
|
-
*
|
|
5
|
-
* Commons from its own; the person checks they match before the
|
|
6
|
-
*
|
|
2
|
+
* The code both screens show while Commons is being linked to an account
|
|
3
|
+
* (ADR 0029 D3): 6 digits derived from the link request and the key Commons
|
|
4
|
+
* signed with. The linking panel derives it from the key the API relayed,
|
|
5
|
+
* Commons from its own; the person checks they match before the link is
|
|
6
|
+
* confirmed, so a photographed QR cannot slip another key in.
|
|
7
7
|
*/
|
|
8
8
|
export declare function deriveIdentityLinkCode(linkId: string, publicKey: string): string;
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `@oxy.so/core/crypto` — the self-custody identity: keys, signatures, the
|
|
3
|
+
* recovery phrase, and the primitives under them.
|
|
4
|
+
*
|
|
5
|
+
* Its own entry so an app that never holds a key never ships secp256k1, bip39
|
|
6
|
+
* or the AEAD cipher. The `oxy.identity` / `oxy.civic` namespaces load what they
|
|
7
|
+
* need from here on first use.
|
|
8
|
+
*/
|
|
9
|
+
import './polyfill';
|
|
10
|
+
export { KeyManager, IdentityAlreadyExistsError, IdentityPersistError, IdentityUnavailableError, } from './keyManager';
|
|
11
|
+
export type { KeyPair, IdentityStatus, IdentityRecoveryResult } from './keyManager';
|
|
12
|
+
export { readIdentityMarker, updateIdentityMarker } from './identityMarker';
|
|
13
|
+
export type { IdentityMarker } from './identityMarker';
|
|
14
|
+
export type { IdentityDeviceBackupStore } from './deviceBackup';
|
|
15
|
+
export { SignatureService } from './signatureService';
|
|
16
|
+
export type { SignedMessage, AuthChallenge } from './signatureService';
|
|
17
|
+
export { RecoveryPhraseService } from './recoveryPhrase';
|
|
18
|
+
export type { RecoveryPhraseResult, PendingIdentityResult, BackupMaterial } from './recoveryPhrase';
|
|
19
|
+
export { hkdfSha256 } from './kdf';
|
|
20
|
+
export { encryptAead, decryptAead, AEAD_KEY_LENGTH, AEAD_NONCE_LENGTH } from './aead';
|
|
21
|
+
export type { AeadResult } from './aead';
|
|
22
|
+
export { deriveSharedSecret } from './ecdh';
|
|
23
|
+
export { digestIdentityPayload, signIdentityProof } from './identityProof';
|
|
24
|
+
export { deriveIdentityLinkCode } from './identityLink';
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The one module the API namespaces load crypto through, with `import()`.
|
|
3
|
+
*
|
|
4
|
+
* It installs the polyfill FIRST: on Hermes `@noble/hashes` captures
|
|
5
|
+
* `globalThis.crypto` when it is evaluated, so a namespace that dynamically
|
|
6
|
+
* imported `./keyManager` directly — before anything installed the shim —
|
|
7
|
+
* would hand noble `undefined` and every random draw would throw. Loading
|
|
8
|
+
* through here makes the order a property of the module graph, not of which
|
|
9
|
+
* entry an app happened to import first.
|
|
10
|
+
*/
|
|
11
|
+
import './polyfill';
|
|
12
|
+
export { KeyManager } from './keyManager';
|
|
13
|
+
export { SignatureService } from './signatureService';
|
|
14
|
+
export { RecoveryPhraseService, BACKUP_KDF_ENCRYPTION_INFO } from './recoveryPhrase';
|
|
15
|
+
export { encryptAead, decryptAead, AEAD_KEY_LENGTH, AEAD_NONCE_LENGTH } from './aead';
|
|
16
|
+
export { digestIdentityPayload, signIdentityProof } from './identityProof';
|
|
17
|
+
export { deriveIdentityLinkCode } from './identityLink';
|
|
18
|
+
export { solveRegistrationPow } from './registrationPow';
|
|
19
|
+
export { canonicalize, signMessage, verifySignature } from '@oxy.so/protocol';
|
|
@@ -7,15 +7,16 @@
|
|
|
7
7
|
* Guard order when installing a `getRandomValues` shim (see bottom of file and
|
|
8
8
|
* {@link cryptoPolyfill}):
|
|
9
9
|
*
|
|
10
|
-
* 1. A REAL `globalThis.crypto.getRandomValues` — used as-is (
|
|
10
|
+
* 1. A REAL `globalThis.crypto.getRandomValues` — used as-is (browsers, Node
|
|
11
11
|
* >= 20, modern Hermes). The shim below is only installed when the host is
|
|
12
12
|
* missing it, so this branch is the install-time gate.
|
|
13
|
-
* 2.
|
|
14
|
-
* `randomFillSync`). This is what a Node runtime WITHOUT a global WebCrypto
|
|
15
|
-
* (Node 18 script entrypoints, some embedded hosts) falls back to.
|
|
16
|
-
* 3. React Native — `expo-crypto.getRandomBytes`, through the dependency-free
|
|
13
|
+
* 2. React Native — `expo-crypto.getRandomBytes`, through the dependency-free
|
|
17
14
|
* `@oxy.so/protocol/random` entry.
|
|
18
15
|
*
|
|
16
|
+
* There is deliberately no `node:crypto` branch: every supported Node has a
|
|
17
|
+
* global WebCrypto, and a `require('node:crypto')` here made web bundlers ship
|
|
18
|
+
* Node's crypto, stream and buffer polyfills (~600 KB) to every browser.
|
|
19
|
+
*
|
|
19
20
|
* # Evaluation order — this module must import NOTHING that can capture the global
|
|
20
21
|
*
|
|
21
22
|
* `@noble/hashes` 1.x reads `globalThis.crypto` exactly once, when its
|
|
@@ -31,10 +32,6 @@
|
|
|
31
32
|
* and `index.ts` imports this file first. `__tests__/polyfillOrder.test.ts`
|
|
32
33
|
* guards both halves.
|
|
33
34
|
*
|
|
34
|
-
* Historically step (2) delegated to `@oxy.so/protocol`'s RN-only
|
|
35
|
-
* `getRandomBytesRN`, which THROWS on Node — so any Node host lacking a global
|
|
36
|
-
* WebCrypto crashed here instead of getting randomness. It is now a proper
|
|
37
|
-
* Node-backed implementation.
|
|
38
35
|
*/
|
|
39
36
|
import { Buffer } from 'buffer';
|
|
40
37
|
export { Buffer };
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Registration proof-of-work — the CLIENT half of the anti-automation nonce
|
|
3
|
-
* `
|
|
3
|
+
* `auth.registerKey()` (`api/auth.ts`) submits alongside the
|
|
4
4
|
* registration signature. The message format, difficulty and the full design
|
|
5
5
|
* rationale (why 16 bits, why sequential nonces are fine, what this is and
|
|
6
6
|
* isn't a defense against) live in `@oxy.so/protocol`'s
|
|
@@ -3,7 +3,7 @@ import type { AccountCategoryId } from '@oxy.so/contracts';
|
|
|
3
3
|
* Every account category's English name, keyed by its stable id.
|
|
4
4
|
*
|
|
5
5
|
* **The annotation is the point.** The vocabulary lives in `@oxy.so/contracts`
|
|
6
|
-
* and the names live in `locales/en-US.
|
|
6
|
+
* and the names live in `locales/en-US.ts`, so they are two lists that must
|
|
7
7
|
* agree and nothing but a type can make them. Declaring the JSON node as a
|
|
8
8
|
* TOTAL `Record<AccountCategoryId, string>` turns "somebody added a category at
|
|
9
9
|
* Oxy and nobody wrote its English" into a `TS2741` naming the missing id, at
|
|
@@ -1,3 +1,22 @@
|
|
|
1
|
-
|
|
1
|
+
/** A nested dictionary of strings. */
|
|
2
|
+
export interface LocaleDict {
|
|
3
|
+
[key: string]: string | LocaleDict | LocaleDict[] | string[];
|
|
4
|
+
}
|
|
5
|
+
/**
|
|
6
|
+
* Load the dictionary serving `locale`. Resolves `true` once it is available
|
|
7
|
+
* (immediately for English or one already loaded), `false` if it failed to load
|
|
8
|
+
* — `translate` then keeps serving English.
|
|
9
|
+
*/
|
|
10
|
+
export declare function loadLocale(locale: string | undefined): Promise<boolean>;
|
|
11
|
+
/** Whether the dictionary serving `locale` is loaded (English always is). */
|
|
12
|
+
export declare function isLocaleLoaded(locale: string | undefined): boolean;
|
|
13
|
+
/**
|
|
14
|
+
* Subscribe to dictionaries finishing loading (for re-rendering once a
|
|
15
|
+
* language arrives). Returns the unsubscribe. Pair with {@link getLocalesVersion}
|
|
16
|
+
* in `useSyncExternalStore`.
|
|
17
|
+
*/
|
|
18
|
+
export declare function subscribeLocales(listener: () => void): () => void;
|
|
19
|
+
/** Bumps each time a dictionary loads. */
|
|
20
|
+
export declare function getLocalesVersion(): number;
|
|
2
21
|
export declare function translate(locale: string | undefined, key: string, vars?: Record<string, string | number>): string;
|
|
3
22
|
export declare function hasKey(locale: string | undefined, key: string): boolean;
|