@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,156 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.parseIdPayload = parseIdPayload;
|
|
37
|
+
exports.parseAttestPayload = parseAttestPayload;
|
|
38
|
+
exports.verifyPublicCardAttestation = verifyPublicCardAttestation;
|
|
39
|
+
/** URI scheme/host that introduces a Commons Oxy ID card payload. */
|
|
40
|
+
const CARD_MATCHER = /^oxycommons:\/\/card(?:[/?#]|$)/i;
|
|
41
|
+
/** URI scheme/host that introduces a real-life counterparty attestation payload. */
|
|
42
|
+
const ATTEST_MATCHER = /^oxycommons:\/\/attest(?:[/?#]|$)/i;
|
|
43
|
+
/**
|
|
44
|
+
* Minimal, allocation-light query-string parser (no `URL` / `URLSearchParams`)
|
|
45
|
+
* so it runs identically under Hermes and jsdom — mirrors the robustness of the
|
|
46
|
+
* "Sign in with Oxy" approval-link parser. Shared by every `oxycommons://…`
|
|
47
|
+
* payload parser in this module.
|
|
48
|
+
*/
|
|
49
|
+
function parseCommonsQuery(raw) {
|
|
50
|
+
const params = new Map();
|
|
51
|
+
const qIndex = raw.indexOf('?');
|
|
52
|
+
if (qIndex < 0)
|
|
53
|
+
return params;
|
|
54
|
+
let query = raw.slice(qIndex + 1);
|
|
55
|
+
const hashIndex = query.indexOf('#');
|
|
56
|
+
if (hashIndex >= 0)
|
|
57
|
+
query = query.slice(0, hashIndex);
|
|
58
|
+
for (const pair of query.split('&')) {
|
|
59
|
+
if (pair.length === 0)
|
|
60
|
+
continue;
|
|
61
|
+
const eq = pair.indexOf('=');
|
|
62
|
+
const rawKey = eq < 0 ? pair : pair.slice(0, eq);
|
|
63
|
+
const rawValue = eq < 0 ? '' : pair.slice(eq + 1);
|
|
64
|
+
try {
|
|
65
|
+
params.set(decodeURIComponent(rawKey), decodeURIComponent(rawValue.replace(/\+/g, ' ')));
|
|
66
|
+
}
|
|
67
|
+
catch {
|
|
68
|
+
// Malformed percent-encoding — keep the raw token rather than throwing, so
|
|
69
|
+
// a single bad field doesn't sink an otherwise valid payload.
|
|
70
|
+
params.set(rawKey, rawValue);
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
return params;
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Parse a scanned / deep-linked Oxy ID payload (`oxycommons://card?did=…`) into
|
|
77
|
+
* the referenced DID. Pure + dependency-free (Hermes-safe, no `URL` global) so
|
|
78
|
+
* Commons (and any scanner) can reuse it without an OxyServices instance.
|
|
79
|
+
*
|
|
80
|
+
* @param raw - The raw scanned string or deep-link URL.
|
|
81
|
+
* @returns `{ did }` when a usable DID is present; `null` for anything else (a
|
|
82
|
+
* non-card scheme, a missing/empty `did`, or non-string input).
|
|
83
|
+
*/
|
|
84
|
+
function parseIdPayload(raw) {
|
|
85
|
+
if (typeof raw !== 'string' || raw.trim().length === 0) {
|
|
86
|
+
return null;
|
|
87
|
+
}
|
|
88
|
+
const value = raw.trim();
|
|
89
|
+
if (!CARD_MATCHER.test(value)) {
|
|
90
|
+
return null;
|
|
91
|
+
}
|
|
92
|
+
const did = parseCommonsQuery(value).get('did');
|
|
93
|
+
if (!did || did.length === 0) {
|
|
94
|
+
return null;
|
|
95
|
+
}
|
|
96
|
+
return { did };
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* Parse a scanned / deep-linked real-life-attestation payload
|
|
100
|
+
* (`oxycommons://attest?subject=…&ctx=…&nonce=…&exp=…`). Pure + dependency-free
|
|
101
|
+
* (Hermes-safe, no `URL` global), mirroring {@link parseIdPayload}, so Commons
|
|
102
|
+
* (and any scanner) can reuse it without an OxyServices instance.
|
|
103
|
+
*
|
|
104
|
+
* @param raw - The raw scanned string or deep-link URL.
|
|
105
|
+
* @returns `{ subjectDid, context, nonce, exp }` when the required fields are
|
|
106
|
+
* present and `exp` is a positive finite number; `null` otherwise (a non-attest
|
|
107
|
+
* scheme, a missing `subject`/`nonce`/`exp`, an unparseable `exp`, or non-string
|
|
108
|
+
* input). `context` defaults to `''` when the QR omits `ctx`.
|
|
109
|
+
*/
|
|
110
|
+
function parseAttestPayload(raw) {
|
|
111
|
+
if (typeof raw !== 'string' || raw.trim().length === 0) {
|
|
112
|
+
return null;
|
|
113
|
+
}
|
|
114
|
+
const value = raw.trim();
|
|
115
|
+
if (!ATTEST_MATCHER.test(value)) {
|
|
116
|
+
return null;
|
|
117
|
+
}
|
|
118
|
+
const params = parseCommonsQuery(value);
|
|
119
|
+
const subjectDid = params.get('subject');
|
|
120
|
+
const nonce = params.get('nonce');
|
|
121
|
+
const expRaw = params.get('exp');
|
|
122
|
+
if (!subjectDid || !nonce || expRaw === undefined || expRaw.length === 0) {
|
|
123
|
+
return null;
|
|
124
|
+
}
|
|
125
|
+
const exp = Number(expRaw);
|
|
126
|
+
if (!Number.isFinite(exp) || exp <= 0) {
|
|
127
|
+
return null;
|
|
128
|
+
}
|
|
129
|
+
return { subjectDid, context: params.get('ctx') ?? '', nonce, exp };
|
|
130
|
+
}
|
|
131
|
+
/**
|
|
132
|
+
* Verify the Oxy custodial attestation on a public card.
|
|
133
|
+
*
|
|
134
|
+
* Re-canonicalizes the received `card` (so the order of the JSON keys on the
|
|
135
|
+
* wire is irrelevant; `canonicalize` also omits any `undefined`-valued optional
|
|
136
|
+
* key, matching the server which omits absent keys entirely) and checks the
|
|
137
|
+
* `ES256K-DER-SHA256` signature against `attestation.publicKey`.
|
|
138
|
+
*
|
|
139
|
+
* NEVER throws: `verifySignature` already swallows malformed-input
|
|
140
|
+
* errors and returns `false`, and an absent attestation short-circuits to
|
|
141
|
+
* `false`. A pure, reusable helper (Commons can call it on a cached card).
|
|
142
|
+
*
|
|
143
|
+
* @param card - The card to verify (exactly as received).
|
|
144
|
+
* @param attestation - The card's attestation, or `null` (unsigned ⇒ `false`).
|
|
145
|
+
*/
|
|
146
|
+
async function verifyPublicCardAttestation(card, attestation) {
|
|
147
|
+
if (!attestation) {
|
|
148
|
+
return false;
|
|
149
|
+
}
|
|
150
|
+
const { signature, publicKey } = attestation;
|
|
151
|
+
if (!signature || !publicKey) {
|
|
152
|
+
return false;
|
|
153
|
+
}
|
|
154
|
+
const { canonicalize, verifySignature } = await Promise.resolve().then(() => __importStar(require('../crypto/internal')));
|
|
155
|
+
return verifySignature(canonicalize(card), signature, publicKey);
|
|
156
|
+
}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
/**
|
|
3
|
-
* The code both screens show while Commons is being linked to
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
* Commons from its own; the person checks they match before the
|
|
7
|
-
*
|
|
3
|
+
* The code both screens show while Commons is being linked to an account
|
|
4
|
+
* (ADR 0029 D3): 6 digits derived from the link request and the key Commons
|
|
5
|
+
* signed with. The linking panel derives it from the key the API relayed,
|
|
6
|
+
* Commons from its own; the person checks they match before the link is
|
|
7
|
+
* confirmed, so a photographed QR cannot slip another key in.
|
|
8
8
|
*/
|
|
9
9
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
10
|
exports.deriveIdentityLinkCode = deriveIdentityLinkCode;
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* `@oxy.so/core/crypto` — the self-custody identity: keys, signatures, the
|
|
4
|
+
* recovery phrase, and the primitives under them.
|
|
5
|
+
*
|
|
6
|
+
* Its own entry so an app that never holds a key never ships secp256k1, bip39
|
|
7
|
+
* or the AEAD cipher. The `oxy.identity` / `oxy.civic` namespaces load what they
|
|
8
|
+
* need from here on first use.
|
|
9
|
+
*/
|
|
10
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
11
|
+
exports.deriveIdentityLinkCode = exports.signIdentityProof = exports.digestIdentityPayload = exports.deriveSharedSecret = exports.AEAD_NONCE_LENGTH = exports.AEAD_KEY_LENGTH = exports.decryptAead = exports.encryptAead = exports.hkdfSha256 = exports.RecoveryPhraseService = exports.SignatureService = exports.updateIdentityMarker = exports.readIdentityMarker = exports.IdentityUnavailableError = exports.IdentityPersistError = exports.IdentityAlreadyExistsError = exports.KeyManager = void 0;
|
|
12
|
+
// MUST stay the first import: `@noble/hashes` captures `globalThis.crypto` when
|
|
13
|
+
// it is evaluated, so the shim has to exist before anything below reaches it.
|
|
14
|
+
require("./polyfill");
|
|
15
|
+
var keyManager_1 = require("./keyManager");
|
|
16
|
+
Object.defineProperty(exports, "KeyManager", { enumerable: true, get: function () { return keyManager_1.KeyManager; } });
|
|
17
|
+
Object.defineProperty(exports, "IdentityAlreadyExistsError", { enumerable: true, get: function () { return keyManager_1.IdentityAlreadyExistsError; } });
|
|
18
|
+
Object.defineProperty(exports, "IdentityPersistError", { enumerable: true, get: function () { return keyManager_1.IdentityPersistError; } });
|
|
19
|
+
Object.defineProperty(exports, "IdentityUnavailableError", { enumerable: true, get: function () { return keyManager_1.IdentityUnavailableError; } });
|
|
20
|
+
var identityMarker_1 = require("./identityMarker");
|
|
21
|
+
Object.defineProperty(exports, "readIdentityMarker", { enumerable: true, get: function () { return identityMarker_1.readIdentityMarker; } });
|
|
22
|
+
Object.defineProperty(exports, "updateIdentityMarker", { enumerable: true, get: function () { return identityMarker_1.updateIdentityMarker; } });
|
|
23
|
+
var signatureService_1 = require("./signatureService");
|
|
24
|
+
Object.defineProperty(exports, "SignatureService", { enumerable: true, get: function () { return signatureService_1.SignatureService; } });
|
|
25
|
+
var recoveryPhrase_1 = require("./recoveryPhrase");
|
|
26
|
+
Object.defineProperty(exports, "RecoveryPhraseService", { enumerable: true, get: function () { return recoveryPhrase_1.RecoveryPhraseService; } });
|
|
27
|
+
// Low-level primitives (encrypted backup, device transfer)
|
|
28
|
+
var kdf_1 = require("./kdf");
|
|
29
|
+
Object.defineProperty(exports, "hkdfSha256", { enumerable: true, get: function () { return kdf_1.hkdfSha256; } });
|
|
30
|
+
var aead_1 = require("./aead");
|
|
31
|
+
Object.defineProperty(exports, "encryptAead", { enumerable: true, get: function () { return aead_1.encryptAead; } });
|
|
32
|
+
Object.defineProperty(exports, "decryptAead", { enumerable: true, get: function () { return aead_1.decryptAead; } });
|
|
33
|
+
Object.defineProperty(exports, "AEAD_KEY_LENGTH", { enumerable: true, get: function () { return aead_1.AEAD_KEY_LENGTH; } });
|
|
34
|
+
Object.defineProperty(exports, "AEAD_NONCE_LENGTH", { enumerable: true, get: function () { return aead_1.AEAD_NONCE_LENGTH; } });
|
|
35
|
+
var ecdh_1 = require("./ecdh");
|
|
36
|
+
Object.defineProperty(exports, "deriveSharedSecret", { enumerable: true, get: function () { return ecdh_1.deriveSharedSecret; } });
|
|
37
|
+
// Identity proofs — the one signed format for operations on a personal root
|
|
38
|
+
// (docs/adr/0024-one-oxy-account-root-holders.md D7)
|
|
39
|
+
var identityProof_1 = require("./identityProof");
|
|
40
|
+
Object.defineProperty(exports, "digestIdentityPayload", { enumerable: true, get: function () { return identityProof_1.digestIdentityPayload; } });
|
|
41
|
+
Object.defineProperty(exports, "signIdentityProof", { enumerable: true, get: function () { return identityProof_1.signIdentityProof; } });
|
|
42
|
+
// Linking Commons to an account: the code both screens compare (ADR 0029 D3)
|
|
43
|
+
var identityLink_1 = require("./identityLink");
|
|
44
|
+
Object.defineProperty(exports, "deriveIdentityLinkCode", { enumerable: true, get: function () { return identityLink_1.deriveIdentityLinkCode; } });
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.verifySignature = exports.signMessage = exports.canonicalize = exports.solveRegistrationPow = exports.deriveIdentityLinkCode = exports.signIdentityProof = exports.digestIdentityPayload = exports.AEAD_NONCE_LENGTH = exports.AEAD_KEY_LENGTH = exports.decryptAead = exports.encryptAead = exports.BACKUP_KDF_ENCRYPTION_INFO = exports.RecoveryPhraseService = exports.SignatureService = exports.KeyManager = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* The one module the API namespaces load crypto through, with `import()`.
|
|
6
|
+
*
|
|
7
|
+
* It installs the polyfill FIRST: on Hermes `@noble/hashes` captures
|
|
8
|
+
* `globalThis.crypto` when it is evaluated, so a namespace that dynamically
|
|
9
|
+
* imported `./keyManager` directly — before anything installed the shim —
|
|
10
|
+
* would hand noble `undefined` and every random draw would throw. Loading
|
|
11
|
+
* through here makes the order a property of the module graph, not of which
|
|
12
|
+
* entry an app happened to import first.
|
|
13
|
+
*/
|
|
14
|
+
require("./polyfill");
|
|
15
|
+
var keyManager_1 = require("./keyManager");
|
|
16
|
+
Object.defineProperty(exports, "KeyManager", { enumerable: true, get: function () { return keyManager_1.KeyManager; } });
|
|
17
|
+
var signatureService_1 = require("./signatureService");
|
|
18
|
+
Object.defineProperty(exports, "SignatureService", { enumerable: true, get: function () { return signatureService_1.SignatureService; } });
|
|
19
|
+
var recoveryPhrase_1 = require("./recoveryPhrase");
|
|
20
|
+
Object.defineProperty(exports, "RecoveryPhraseService", { enumerable: true, get: function () { return recoveryPhrase_1.RecoveryPhraseService; } });
|
|
21
|
+
Object.defineProperty(exports, "BACKUP_KDF_ENCRYPTION_INFO", { enumerable: true, get: function () { return recoveryPhrase_1.BACKUP_KDF_ENCRYPTION_INFO; } });
|
|
22
|
+
var aead_1 = require("./aead");
|
|
23
|
+
Object.defineProperty(exports, "encryptAead", { enumerable: true, get: function () { return aead_1.encryptAead; } });
|
|
24
|
+
Object.defineProperty(exports, "decryptAead", { enumerable: true, get: function () { return aead_1.decryptAead; } });
|
|
25
|
+
Object.defineProperty(exports, "AEAD_KEY_LENGTH", { enumerable: true, get: function () { return aead_1.AEAD_KEY_LENGTH; } });
|
|
26
|
+
Object.defineProperty(exports, "AEAD_NONCE_LENGTH", { enumerable: true, get: function () { return aead_1.AEAD_NONCE_LENGTH; } });
|
|
27
|
+
var identityProof_1 = require("./identityProof");
|
|
28
|
+
Object.defineProperty(exports, "digestIdentityPayload", { enumerable: true, get: function () { return identityProof_1.digestIdentityPayload; } });
|
|
29
|
+
Object.defineProperty(exports, "signIdentityProof", { enumerable: true, get: function () { return identityProof_1.signIdentityProof; } });
|
|
30
|
+
var identityLink_1 = require("./identityLink");
|
|
31
|
+
Object.defineProperty(exports, "deriveIdentityLinkCode", { enumerable: true, get: function () { return identityLink_1.deriveIdentityLinkCode; } });
|
|
32
|
+
var registrationPow_1 = require("./registrationPow");
|
|
33
|
+
Object.defineProperty(exports, "solveRegistrationPow", { enumerable: true, get: function () { return registrationPow_1.solveRegistrationPow; } });
|
|
34
|
+
var protocol_1 = require("@oxy.so/protocol");
|
|
35
|
+
Object.defineProperty(exports, "canonicalize", { enumerable: true, get: function () { return protocol_1.canonicalize; } });
|
|
36
|
+
Object.defineProperty(exports, "signMessage", { enumerable: true, get: function () { return protocol_1.signMessage; } });
|
|
37
|
+
Object.defineProperty(exports, "verifySignature", { enumerable: true, get: function () { return protocol_1.verifySignature; } });
|
|
@@ -225,8 +225,7 @@ async function initSecureStore() {
|
|
|
225
225
|
}
|
|
226
226
|
catch (error) {
|
|
227
227
|
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
228
|
-
throw new Error(`Failed to load expo-secure-store: ${errorMessage}.
|
|
229
|
-
'Make sure expo-secure-store is installed and properly configured.');
|
|
228
|
+
throw new Error(`Failed to load expo-secure-store: ${errorMessage}. Make sure expo-secure-store is installed and properly configured.`);
|
|
230
229
|
}
|
|
231
230
|
}
|
|
232
231
|
/**
|
|
@@ -275,6 +274,7 @@ async function getSecureRandomBytes(length) {
|
|
|
275
274
|
return Crypto.getRandomBytes(length);
|
|
276
275
|
}
|
|
277
276
|
}
|
|
277
|
+
// biome-ignore lint/complexity/noStaticOnlyClass: a public, static-only API surface (`X.method()`) that consumers and tests call and spy on by name.
|
|
278
278
|
class KeyManager {
|
|
279
279
|
/**
|
|
280
280
|
* Register (or, with `null`, unregister) where the identity's device backup is
|
|
@@ -8,15 +8,16 @@
|
|
|
8
8
|
* Guard order when installing a `getRandomValues` shim (see bottom of file and
|
|
9
9
|
* {@link cryptoPolyfill}):
|
|
10
10
|
*
|
|
11
|
-
* 1. A REAL `globalThis.crypto.getRandomValues` — used as-is (
|
|
11
|
+
* 1. A REAL `globalThis.crypto.getRandomValues` — used as-is (browsers, Node
|
|
12
12
|
* >= 20, modern Hermes). The shim below is only installed when the host is
|
|
13
13
|
* missing it, so this branch is the install-time gate.
|
|
14
|
-
* 2.
|
|
15
|
-
* `randomFillSync`). This is what a Node runtime WITHOUT a global WebCrypto
|
|
16
|
-
* (Node 18 script entrypoints, some embedded hosts) falls back to.
|
|
17
|
-
* 3. React Native — `expo-crypto.getRandomBytes`, through the dependency-free
|
|
14
|
+
* 2. React Native — `expo-crypto.getRandomBytes`, through the dependency-free
|
|
18
15
|
* `@oxy.so/protocol/random` entry.
|
|
19
16
|
*
|
|
17
|
+
* There is deliberately no `node:crypto` branch: every supported Node has a
|
|
18
|
+
* global WebCrypto, and a `require('node:crypto')` here made web bundlers ship
|
|
19
|
+
* Node's crypto, stream and buffer polyfills (~600 KB) to every browser.
|
|
20
|
+
*
|
|
20
21
|
* # Evaluation order — this module must import NOTHING that can capture the global
|
|
21
22
|
*
|
|
22
23
|
* `@noble/hashes` 1.x reads `globalThis.crypto` exactly once, when its
|
|
@@ -32,10 +33,6 @@
|
|
|
32
33
|
* and `index.ts` imports this file first. `__tests__/polyfillOrder.test.ts`
|
|
33
34
|
* guards both halves.
|
|
34
35
|
*
|
|
35
|
-
* Historically step (2) delegated to `@oxy.so/protocol`'s RN-only
|
|
36
|
-
* `getRandomBytesRN`, which THROWS on Node — so any Node host lacking a global
|
|
37
|
-
* WebCrypto crashed here instead of getting randomness. It is now a proper
|
|
38
|
-
* Node-backed implementation.
|
|
39
36
|
*/
|
|
40
37
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
41
38
|
exports.Buffer = void 0;
|
|
@@ -58,79 +55,11 @@ const globalObject = getGlobalObject();
|
|
|
58
55
|
if (!globalObject.Buffer) {
|
|
59
56
|
globalObject.Buffer = buffer_1.Buffer;
|
|
60
57
|
}
|
|
61
|
-
/**
|
|
62
|
-
* Lazily-resolved `node:crypto` module, cached after the first attempt.
|
|
63
|
-
* `undefined` = not tried yet; `null` = tried and unavailable (non-Node host).
|
|
64
|
-
*/
|
|
65
|
-
let cachedNodeCrypto;
|
|
66
|
-
/**
|
|
67
|
-
* Synchronously load `node:crypto` on a Node runtime, or `null` elsewhere.
|
|
68
|
-
*
|
|
69
|
-
* Uses a guarded, Node-only `require`. Every runtime that actually reaches this
|
|
70
|
-
* branch has a working CommonJS `require`: `@oxy.so/core` publishes no
|
|
71
|
-
* `"type": "module"`, so Node loads it as CommonJS and the `require` free
|
|
72
|
-
* variable is present. Browsers never reach here (they own `globalThis.crypto`,
|
|
73
|
-
* so this polyfill is never installed) and React Native takes the
|
|
74
|
-
* `getRandomBytesRN` branch — so the `node:crypto` reference is dead code in
|
|
75
|
-
* those bundles, and Expo's Metro resolver shims `node:*` builtins, keeping
|
|
76
|
-
* web/native bundles green.
|
|
77
|
-
*/
|
|
78
|
-
function loadNodeCryptoSync() {
|
|
79
|
-
if (cachedNodeCrypto !== undefined) {
|
|
80
|
-
return cachedNodeCrypto;
|
|
81
|
-
}
|
|
82
|
-
if (typeof require !== 'function') {
|
|
83
|
-
cachedNodeCrypto = null;
|
|
84
|
-
return cachedNodeCrypto;
|
|
85
|
-
}
|
|
86
|
-
try {
|
|
87
|
-
cachedNodeCrypto = require('node:crypto');
|
|
88
|
-
}
|
|
89
|
-
catch {
|
|
90
|
-
// No Node crypto (unexpected on a real Node host) — degrade to the next
|
|
91
|
-
// mechanism rather than crash.
|
|
92
|
-
cachedNodeCrypto = null;
|
|
93
|
-
}
|
|
94
|
-
return cachedNodeCrypto;
|
|
95
|
-
}
|
|
96
|
-
/**
|
|
97
|
-
* Fill `array` with cryptographically-secure random bytes from `node:crypto`.
|
|
98
|
-
* Prefers `webcrypto.getRandomValues`; falls back to `randomFillSync`. Returns
|
|
99
|
-
* `false` when Node crypto is unavailable so the caller can try the next
|
|
100
|
-
* mechanism.
|
|
101
|
-
*/
|
|
102
|
-
function fillFromNodeCrypto(array) {
|
|
103
|
-
const nodeCrypto = loadNodeCryptoSync();
|
|
104
|
-
if (!nodeCrypto) {
|
|
105
|
-
return false;
|
|
106
|
-
}
|
|
107
|
-
const webcrypto = nodeCrypto.webcrypto;
|
|
108
|
-
if (webcrypto && typeof webcrypto.getRandomValues === 'function') {
|
|
109
|
-
try {
|
|
110
|
-
webcrypto.getRandomValues(array);
|
|
111
|
-
return true;
|
|
112
|
-
}
|
|
113
|
-
catch {
|
|
114
|
-
// `webcrypto.getRandomValues` rejects non-integer views (Float*Array,
|
|
115
|
-
// DataView); fall through to `randomFillSync`, which accepts any view.
|
|
116
|
-
}
|
|
117
|
-
}
|
|
118
|
-
if (typeof nodeCrypto.randomFillSync === 'function') {
|
|
119
|
-
nodeCrypto.randomFillSync(array);
|
|
120
|
-
return true;
|
|
121
|
-
}
|
|
122
|
-
return false;
|
|
123
|
-
}
|
|
58
|
+
/** Minimal structural shape of the parts of `node:crypto` this polyfill uses. */
|
|
124
59
|
const cryptoPolyfill = {
|
|
125
60
|
getRandomValues(array) {
|
|
126
|
-
//
|
|
127
|
-
//
|
|
128
|
-
// the RN-only expo-crypto stub would throw.
|
|
129
|
-
if ((0, random_1.isNodeJS)() && fillFromNodeCrypto(array)) {
|
|
130
|
-
return array;
|
|
131
|
-
}
|
|
132
|
-
// React Native (and any non-Node host without WebCrypto): synchronous
|
|
133
|
-
// expo-crypto via @oxy.so/protocol's RN `platform/random` variant.
|
|
61
|
+
// React Native / Hermes (the one supported host without WebCrypto):
|
|
62
|
+
// synchronous expo-crypto via @oxy.so/protocol's RN `platform/random`.
|
|
134
63
|
const bytes = (0, random_1.getRandomBytesRN)(array.byteLength);
|
|
135
64
|
const uint8View = new Uint8Array(array.buffer, array.byteOffset, array.byteLength);
|
|
136
65
|
uint8View.set(bytes);
|
|
@@ -46,6 +46,7 @@ exports.BACKUP_KDF_ENCRYPTION_INFO = 'oxy-backup-encryption-key';
|
|
|
46
46
|
exports.BACKUP_KDF_LOOKUP_INFO = 'oxy-backup-lookup-id';
|
|
47
47
|
/** Byte length of both the derived backup key and the derived lookup id (256-bit). */
|
|
48
48
|
exports.BACKUP_MATERIAL_LENGTH = 32;
|
|
49
|
+
// biome-ignore lint/complexity/noStaticOnlyClass: a public, static-only API surface (`X.method()`) that consumers and tests call and spy on by name.
|
|
49
50
|
class RecoveryPhraseService {
|
|
50
51
|
/**
|
|
51
52
|
* Generate a new identity with a recovery phrase.
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
/**
|
|
3
3
|
* Registration proof-of-work — the CLIENT half of the anti-automation nonce
|
|
4
|
-
* `
|
|
4
|
+
* `auth.registerKey()` (`api/auth.ts`) submits alongside the
|
|
5
5
|
* registration signature. The message format, difficulty and the full design
|
|
6
6
|
* rationale (why 16 bits, why sequential nonces are fine, what this is and
|
|
7
7
|
* isn't a defense against) live in `@oxy.so/protocol`'s
|
|
@@ -13,6 +13,7 @@ exports.SignatureService = void 0;
|
|
|
13
13
|
const protocol_1 = require("@oxy.so/protocol");
|
|
14
14
|
const keyManager_1 = require("./keyManager");
|
|
15
15
|
const logger_1 = require("../logger");
|
|
16
|
+
// biome-ignore lint/complexity/noStaticOnlyClass: a public, static-only API surface (`X.method()`) that consumers and tests call and spy on by name.
|
|
16
17
|
class SignatureService {
|
|
17
18
|
/**
|
|
18
19
|
* Generate a random challenge string (for offline use)
|
|
@@ -5,13 +5,13 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.EN_ACCOUNT_CATEGORY_LABELS = void 0;
|
|
7
7
|
exports.accountCategoryLabel = accountCategoryLabel;
|
|
8
|
-
const
|
|
8
|
+
const en_US_1 = __importDefault(require("./locales/en-US"));
|
|
9
9
|
const index_1 = require("./index");
|
|
10
10
|
/**
|
|
11
11
|
* Every account category's English name, keyed by its stable id.
|
|
12
12
|
*
|
|
13
13
|
* **The annotation is the point.** The vocabulary lives in `@oxy.so/contracts`
|
|
14
|
-
* and the names live in `locales/en-US.
|
|
14
|
+
* and the names live in `locales/en-US.ts`, so they are two lists that must
|
|
15
15
|
* agree and nothing but a type can make them. Declaring the JSON node as a
|
|
16
16
|
* TOTAL `Record<AccountCategoryId, string>` turns "somebody added a category at
|
|
17
17
|
* Oxy and nobody wrote its English" into a `TS2741` naming the missing id, at
|
|
@@ -38,7 +38,7 @@ const index_1 = require("./index");
|
|
|
38
38
|
* to make an exported reference safe from a consumer's stray write, and there
|
|
39
39
|
* is no such consumer. Exported from the MODULE so its own test can name it.
|
|
40
40
|
*/
|
|
41
|
-
exports.EN_ACCOUNT_CATEGORY_LABELS =
|
|
41
|
+
exports.EN_ACCOUNT_CATEGORY_LABELS = en_US_1.default.accounts.accountCategory;
|
|
42
42
|
function accountCategoryLabel(locale, id) {
|
|
43
43
|
return (0, index_1.translate)(locale, `accounts.accountCategory.${id}`);
|
|
44
44
|
}
|
|
@@ -5,7 +5,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.EN_ACCOUNT_ROLE_LABELS = void 0;
|
|
7
7
|
exports.accountRoleLabel = accountRoleLabel;
|
|
8
|
-
const
|
|
8
|
+
const en_US_1 = __importDefault(require("./locales/en-US"));
|
|
9
9
|
const index_1 = require("./index");
|
|
10
10
|
/**
|
|
11
11
|
* Every account member role's English name, keyed by its stable id.
|
|
@@ -15,12 +15,12 @@ const index_1 = require("./index");
|
|
|
15
15
|
* `accounts.roles.<role>.label`.
|
|
16
16
|
*/
|
|
17
17
|
exports.EN_ACCOUNT_ROLE_LABELS = {
|
|
18
|
-
owner:
|
|
19
|
-
admin:
|
|
20
|
-
editor:
|
|
21
|
-
developer:
|
|
22
|
-
billing:
|
|
23
|
-
viewer:
|
|
18
|
+
owner: en_US_1.default.accounts.roles.owner.label,
|
|
19
|
+
admin: en_US_1.default.accounts.roles.admin.label,
|
|
20
|
+
editor: en_US_1.default.accounts.roles.editor.label,
|
|
21
|
+
developer: en_US_1.default.accounts.roles.developer.label,
|
|
22
|
+
billing: en_US_1.default.accounts.roles.billing.label,
|
|
23
|
+
viewer: en_US_1.default.accounts.roles.viewer.label,
|
|
24
24
|
};
|
|
25
25
|
function accountRoleLabel(locale, role) {
|
|
26
26
|
return (0, index_1.translate)(locale, `accounts.roles.${role}.label`);
|