@estifanos-sh/convex-auth 0.0.1-preview.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 +52 -0
- package/dist/_generated/component.d.ts +2981 -0
- package/dist/bin.js +7194 -0
- package/dist/browser/index.d.ts +22 -0
- package/dist/browser/index.js +61 -0
- package/dist/browser/locks.js +20 -0
- package/dist/browser/navigation.js +14 -0
- package/dist/browser/runtime.js +90 -0
- package/dist/browser/webauthn.js +99 -0
- package/dist/client/core/types.d.ts +615 -0
- package/dist/client/core/types.js +23 -0
- package/dist/client/errors.js +30 -0
- package/dist/client/factors/device.js +100 -0
- package/dist/client/factors/totp.js +111 -0
- package/dist/client/factors/webauthn.js +69 -0
- package/dist/client/index.d.ts +60 -0
- package/dist/client/index.js +976 -0
- package/dist/client/runtime/invite.js +50 -0
- package/dist/client/runtime/mutex.js +25 -0
- package/dist/client/runtime/proxy.js +75 -0
- package/dist/client/runtime/storage.js +65 -0
- package/dist/component/_generated/api.js +26 -0
- package/dist/component/_generated/component.d.ts +2981 -0
- package/dist/component/_generated/component.js +1 -0
- package/dist/component/_generated/dataModel.js +1 -0
- package/dist/component/_generated/server.js +74 -0
- package/dist/component/account.js +197 -0
- package/dist/component/connection/audit.js +152 -0
- package/dist/component/connection/cache.js +205 -0
- package/dist/component/connection/domain/verification.js +63 -0
- package/dist/component/connection/domain.js +108 -0
- package/dist/component/connection/saml/assertion.js +41 -0
- package/dist/component/connection/saml/request.js +61 -0
- package/dist/component/connection/scim/config.js +55 -0
- package/dist/component/connection/scim/identity.js +162 -0
- package/dist/component/connection/secret.js +65 -0
- package/dist/component/connection/webhook/delivery.js +396 -0
- package/dist/component/connection/webhook/endpoint.js +77 -0
- package/dist/component/connection.js +204 -0
- package/dist/component/convex.config.d.ts +7 -0
- package/dist/component/convex.config.js +15 -0
- package/dist/component/crons.js +27 -0
- package/dist/component/event.js +341 -0
- package/dist/component/factor/device.js +141 -0
- package/dist/component/factor/passkey.js +385 -0
- package/dist/component/factor/totp.js +253 -0
- package/dist/component/functions.js +3 -0
- package/dist/component/group/active.js +63 -0
- package/dist/component/group/invite.js +300 -0
- package/dist/component/group/member.js +188 -0
- package/dist/component/group.js +431 -0
- package/dist/component/http.js +9 -0
- package/dist/component/index.d.ts +5 -0
- package/dist/component/index.js +3 -0
- package/dist/component/limits.js +103 -0
- package/dist/component/maintenance.js +205 -0
- package/dist/component/migrations.js +277 -0
- package/dist/component/model.d.ts +384 -0
- package/dist/component/model.js +709 -0
- package/dist/component/modules.js +53 -0
- package/dist/component/oauth/client.js +196 -0
- package/dist/component/oauth/code.js +97 -0
- package/dist/component/oauth/refresh.js +230 -0
- package/dist/component/schema.d.ts +1530 -0
- package/dist/component/schema.js +401 -0
- package/dist/component/session.js +134 -0
- package/dist/component/token/pkce.js +121 -0
- package/dist/component/token/refresh.js +189 -0
- package/dist/component/token/verification.js +155 -0
- package/dist/component/user/email.js +147 -0
- package/dist/component/user/key.js +273 -0
- package/dist/component/user.js +173 -0
- package/dist/core/index.d.ts +531 -0
- package/dist/core/index.js +81 -0
- package/dist/expo/index.d.ts +43 -0
- package/dist/expo/index.js +131 -0
- package/dist/expo/webauthn.js +88 -0
- package/dist/node_modules/.pnpm/@opentelemetry_api-logs@0.214.0/node_modules/@opentelemetry/api-logs/build/src/NoopLogger.d.ts +2 -0
- package/dist/node_modules/.pnpm/@opentelemetry_api-logs@0.214.0/node_modules/@opentelemetry/api-logs/build/src/api/logs.d.ts +3 -0
- package/dist/node_modules/.pnpm/@opentelemetry_api-logs@0.214.0/node_modules/@opentelemetry/api-logs/build/src/index.d.ts +7 -0
- package/dist/node_modules/.pnpm/@opentelemetry_api-logs@0.214.0/node_modules/@opentelemetry/api-logs/build/src/types/AnyValue.d.ts +21 -0
- package/dist/node_modules/.pnpm/@opentelemetry_api-logs@0.214.0/node_modules/@opentelemetry/api-logs/build/src/types/LogRecord.d.ts +36 -0
- package/dist/node_modules/.pnpm/@opentelemetry_api-logs@0.214.0/node_modules/@opentelemetry/api-logs/build/src/types/Logger.d.ts +1 -0
- package/dist/node_modules/.pnpm/@opentelemetry_api-logs@0.214.0/node_modules/@opentelemetry/api-logs/build/src/types/LoggerOptions.d.ts +1 -0
- package/dist/node_modules/.pnpm/@opentelemetry_api-logs@0.214.0/node_modules/@opentelemetry/api-logs/build/src/types/LoggerProvider.d.ts +2 -0
- package/dist/node_modules/.pnpm/@opentelemetry_core@2.6.1_@opentelemetry_api@1.9.1/node_modules/@opentelemetry/core/build/src/baggage/propagation/W3CBaggagePropagator.d.ts +1 -0
- package/dist/node_modules/.pnpm/@opentelemetry_core@2.6.1_@opentelemetry_api@1.9.1/node_modules/@opentelemetry/core/build/src/baggage/utils.d.ts +1 -0
- package/dist/node_modules/.pnpm/@opentelemetry_core@2.6.1_@opentelemetry_api@1.9.1/node_modules/@opentelemetry/core/build/src/common/attributes.d.ts +1 -0
- package/dist/node_modules/.pnpm/@opentelemetry_core@2.6.1_@opentelemetry_api@1.9.1/node_modules/@opentelemetry/core/build/src/common/global-error-handler.d.ts +2 -0
- package/dist/node_modules/.pnpm/@opentelemetry_core@2.6.1_@opentelemetry_api@1.9.1/node_modules/@opentelemetry/core/build/src/common/logging-error-handler.d.ts +1 -0
- package/dist/node_modules/.pnpm/@opentelemetry_core@2.6.1_@opentelemetry_api@1.9.1/node_modules/@opentelemetry/core/build/src/common/time.d.ts +1 -0
- package/dist/node_modules/.pnpm/@opentelemetry_core@2.6.1_@opentelemetry_api@1.9.1/node_modules/@opentelemetry/core/build/src/common/types.d.ts +16 -0
- package/dist/node_modules/.pnpm/@opentelemetry_core@2.6.1_@opentelemetry_api@1.9.1/node_modules/@opentelemetry/core/build/src/index.d.ts +13 -0
- package/dist/node_modules/.pnpm/@opentelemetry_core@2.6.1_@opentelemetry_api@1.9.1/node_modules/@opentelemetry/core/build/src/propagation/composite.d.ts +1 -0
- package/dist/node_modules/.pnpm/@opentelemetry_core@2.6.1_@opentelemetry_api@1.9.1/node_modules/@opentelemetry/core/build/src/trace/TraceState.d.ts +1 -0
- package/dist/node_modules/.pnpm/@opentelemetry_core@2.6.1_@opentelemetry_api@1.9.1/node_modules/@opentelemetry/core/build/src/trace/W3CTraceContextPropagator.d.ts +1 -0
- package/dist/node_modules/.pnpm/@opentelemetry_core@2.6.1_@opentelemetry_api@1.9.1/node_modules/@opentelemetry/core/build/src/trace/rpc-metadata.d.ts +1 -0
- package/dist/node_modules/.pnpm/@opentelemetry_core@2.6.1_@opentelemetry_api@1.9.1/node_modules/@opentelemetry/core/build/src/trace/suppress-tracing.d.ts +1 -0
- package/dist/node_modules/.pnpm/@opentelemetry_core@2.6.1_@opentelemetry_api@1.9.1/node_modules/@opentelemetry/core/build/src/utils/configuration.d.ts +1 -0
- package/dist/node_modules/.pnpm/@opentelemetry_sdk-logs@0.214.0_@opentelemetry_api@1.9.1/node_modules/@opentelemetry/sdk-logs/build/src/LogRecordProcessor.d.ts +24 -0
- package/dist/node_modules/.pnpm/@opentelemetry_sdk-logs@0.214.0_@opentelemetry_api@1.9.1/node_modules/@opentelemetry/sdk-logs/build/src/LoggerProvider.d.ts +2 -0
- package/dist/node_modules/.pnpm/@opentelemetry_sdk-logs@0.214.0_@opentelemetry_api@1.9.1/node_modules/@opentelemetry/sdk-logs/build/src/config/LoggerConfigurators.d.ts +1 -0
- package/dist/node_modules/.pnpm/@opentelemetry_sdk-logs@0.214.0_@opentelemetry_api@1.9.1/node_modules/@opentelemetry/sdk-logs/build/src/export/BatchLogRecordProcessorBase.d.ts +4 -0
- package/dist/node_modules/.pnpm/@opentelemetry_sdk-logs@0.214.0_@opentelemetry_api@1.9.1/node_modules/@opentelemetry/sdk-logs/build/src/export/ConsoleLogRecordExporter.d.ts +3 -0
- package/dist/node_modules/.pnpm/@opentelemetry_sdk-logs@0.214.0_@opentelemetry_api@1.9.1/node_modules/@opentelemetry/sdk-logs/build/src/export/InMemoryLogRecordExporter.d.ts +3 -0
- package/dist/node_modules/.pnpm/@opentelemetry_sdk-logs@0.214.0_@opentelemetry_api@1.9.1/node_modules/@opentelemetry/sdk-logs/build/src/export/LogRecordExporter.d.ts +2 -0
- package/dist/node_modules/.pnpm/@opentelemetry_sdk-logs@0.214.0_@opentelemetry_api@1.9.1/node_modules/@opentelemetry/sdk-logs/build/src/export/ReadableLogRecord.d.ts +4 -0
- package/dist/node_modules/.pnpm/@opentelemetry_sdk-logs@0.214.0_@opentelemetry_api@1.9.1/node_modules/@opentelemetry/sdk-logs/build/src/export/SdkLogRecord.d.ts +71 -0
- package/dist/node_modules/.pnpm/@opentelemetry_sdk-logs@0.214.0_@opentelemetry_api@1.9.1/node_modules/@opentelemetry/sdk-logs/build/src/export/SimpleLogRecordProcessor.d.ts +3 -0
- package/dist/node_modules/.pnpm/@opentelemetry_sdk-logs@0.214.0_@opentelemetry_api@1.9.1/node_modules/@opentelemetry/sdk-logs/build/src/index.d.ts +11 -0
- package/dist/node_modules/.pnpm/@opentelemetry_sdk-logs@0.214.0_@opentelemetry_api@1.9.1/node_modules/@opentelemetry/sdk-logs/build/src/platform/index.d.ts +1 -0
- package/dist/node_modules/.pnpm/@opentelemetry_sdk-logs@0.214.0_@opentelemetry_api@1.9.1/node_modules/@opentelemetry/sdk-logs/build/src/platform/node/export/BatchLogRecordProcessor.d.ts +2 -0
- package/dist/node_modules/.pnpm/@opentelemetry_sdk-logs@0.214.0_@opentelemetry_api@1.9.1/node_modules/@opentelemetry/sdk-logs/build/src/platform/node/index.d.ts +1 -0
- package/dist/node_modules/.pnpm/@opentelemetry_sdk-logs@0.214.0_@opentelemetry_api@1.9.1/node_modules/@opentelemetry/sdk-logs/build/src/types.d.ts +4 -0
- package/dist/node_modules/.pnpm/@opentelemetry_sdk-metrics@2.6.1_@opentelemetry_api@1.9.1/node_modules/@opentelemetry/sdk-metrics/build/src/InstrumentDescriptor.d.ts +3 -0
- package/dist/node_modules/.pnpm/@opentelemetry_sdk-metrics@2.6.1_@opentelemetry_api@1.9.1/node_modules/@opentelemetry/sdk-metrics/build/src/MeterProvider.d.ts +4 -0
- package/dist/node_modules/.pnpm/@opentelemetry_sdk-metrics@2.6.1_@opentelemetry_api@1.9.1/node_modules/@opentelemetry/sdk-metrics/build/src/aggregator/Drop.d.ts +4 -0
- package/dist/node_modules/.pnpm/@opentelemetry_sdk-metrics@2.6.1_@opentelemetry_api@1.9.1/node_modules/@opentelemetry/sdk-metrics/build/src/aggregator/ExponentialHistogram.d.ts +5 -0
- package/dist/node_modules/.pnpm/@opentelemetry_sdk-metrics@2.6.1_@opentelemetry_api@1.9.1/node_modules/@opentelemetry/sdk-metrics/build/src/aggregator/Histogram.d.ts +5 -0
- package/dist/node_modules/.pnpm/@opentelemetry_sdk-metrics@2.6.1_@opentelemetry_api@1.9.1/node_modules/@opentelemetry/sdk-metrics/build/src/aggregator/LastValue.d.ts +5 -0
- package/dist/node_modules/.pnpm/@opentelemetry_sdk-metrics@2.6.1_@opentelemetry_api@1.9.1/node_modules/@opentelemetry/sdk-metrics/build/src/aggregator/Sum.d.ts +5 -0
- package/dist/node_modules/.pnpm/@opentelemetry_sdk-metrics@2.6.1_@opentelemetry_api@1.9.1/node_modules/@opentelemetry/sdk-metrics/build/src/aggregator/index.d.ts +6 -0
- package/dist/node_modules/.pnpm/@opentelemetry_sdk-metrics@2.6.1_@opentelemetry_api@1.9.1/node_modules/@opentelemetry/sdk-metrics/build/src/aggregator/types.d.ts +53 -0
- package/dist/node_modules/.pnpm/@opentelemetry_sdk-metrics@2.6.1_@opentelemetry_api@1.9.1/node_modules/@opentelemetry/sdk-metrics/build/src/export/AggregationSelector.d.ts +16 -0
- package/dist/node_modules/.pnpm/@opentelemetry_sdk-metrics@2.6.1_@opentelemetry_api@1.9.1/node_modules/@opentelemetry/sdk-metrics/build/src/export/AggregationTemporality.d.ts +11 -0
- package/dist/node_modules/.pnpm/@opentelemetry_sdk-metrics@2.6.1_@opentelemetry_api@1.9.1/node_modules/@opentelemetry/sdk-metrics/build/src/export/CardinalitySelector.d.ts +10 -0
- package/dist/node_modules/.pnpm/@opentelemetry_sdk-metrics@2.6.1_@opentelemetry_api@1.9.1/node_modules/@opentelemetry/sdk-metrics/build/src/export/ConsoleMetricExporter.d.ts +4 -0
- package/dist/node_modules/.pnpm/@opentelemetry_sdk-metrics@2.6.1_@opentelemetry_api@1.9.1/node_modules/@opentelemetry/sdk-metrics/build/src/export/InMemoryMetricExporter.d.ts +3 -0
- package/dist/node_modules/.pnpm/@opentelemetry_sdk-metrics@2.6.1_@opentelemetry_api@1.9.1/node_modules/@opentelemetry/sdk-metrics/build/src/export/MetricData.d.ts +148 -0
- package/dist/node_modules/.pnpm/@opentelemetry_sdk-metrics@2.6.1_@opentelemetry_api@1.9.1/node_modules/@opentelemetry/sdk-metrics/build/src/export/MetricExporter.d.ts +3 -0
- package/dist/node_modules/.pnpm/@opentelemetry_sdk-metrics@2.6.1_@opentelemetry_api@1.9.1/node_modules/@opentelemetry/sdk-metrics/build/src/export/MetricProducer.d.ts +27 -0
- package/dist/node_modules/.pnpm/@opentelemetry_sdk-metrics@2.6.1_@opentelemetry_api@1.9.1/node_modules/@opentelemetry/sdk-metrics/build/src/export/MetricReader.d.ts +138 -0
- package/dist/node_modules/.pnpm/@opentelemetry_sdk-metrics@2.6.1_@opentelemetry_api@1.9.1/node_modules/@opentelemetry/sdk-metrics/build/src/export/PeriodicExportingMetricReader.d.ts +3 -0
- package/dist/node_modules/.pnpm/@opentelemetry_sdk-metrics@2.6.1_@opentelemetry_api@1.9.1/node_modules/@opentelemetry/sdk-metrics/build/src/index.d.ts +15 -0
- package/dist/node_modules/.pnpm/@opentelemetry_sdk-metrics@2.6.1_@opentelemetry_api@1.9.1/node_modules/@opentelemetry/sdk-metrics/build/src/types.d.ts +10 -0
- package/dist/node_modules/.pnpm/@opentelemetry_sdk-metrics@2.6.1_@opentelemetry_api@1.9.1/node_modules/@opentelemetry/sdk-metrics/build/src/utils.d.ts +2 -0
- package/dist/node_modules/.pnpm/@opentelemetry_sdk-metrics@2.6.1_@opentelemetry_api@1.9.1/node_modules/@opentelemetry/sdk-metrics/build/src/view/Aggregation.d.ts +4 -0
- package/dist/node_modules/.pnpm/@opentelemetry_sdk-metrics@2.6.1_@opentelemetry_api@1.9.1/node_modules/@opentelemetry/sdk-metrics/build/src/view/AggregationOption.d.ts +41 -0
- package/dist/node_modules/.pnpm/@opentelemetry_sdk-metrics@2.6.1_@opentelemetry_api@1.9.1/node_modules/@opentelemetry/sdk-metrics/build/src/view/AttributesProcessor.d.ts +1 -0
- package/dist/node_modules/.pnpm/@opentelemetry_sdk-metrics@2.6.1_@opentelemetry_api@1.9.1/node_modules/@opentelemetry/sdk-metrics/build/src/view/InstrumentSelector.d.ts +1 -0
- package/dist/node_modules/.pnpm/@opentelemetry_sdk-metrics@2.6.1_@opentelemetry_api@1.9.1/node_modules/@opentelemetry/sdk-metrics/build/src/view/View.d.ts +5 -0
- package/dist/node_modules/.pnpm/@opentelemetry_sdk-trace-base@2.6.1_@opentelemetry_api@1.9.1/node_modules/@opentelemetry/sdk-trace-base/build/src/BasicTracerProvider.d.ts +2 -0
- package/dist/node_modules/.pnpm/@opentelemetry_sdk-trace-base@2.6.1_@opentelemetry_api@1.9.1/node_modules/@opentelemetry/sdk-trace-base/build/src/IdGenerator.d.ts +11 -0
- package/dist/node_modules/.pnpm/@opentelemetry_sdk-trace-base@2.6.1_@opentelemetry_api@1.9.1/node_modules/@opentelemetry/sdk-trace-base/build/src/Sampler.d.ts +74 -0
- package/dist/node_modules/.pnpm/@opentelemetry_sdk-trace-base@2.6.1_@opentelemetry_api@1.9.1/node_modules/@opentelemetry/sdk-trace-base/build/src/Span.d.ts +17 -0
- package/dist/node_modules/.pnpm/@opentelemetry_sdk-trace-base@2.6.1_@opentelemetry_api@1.9.1/node_modules/@opentelemetry/sdk-trace-base/build/src/SpanProcessor.d.ts +43 -0
- package/dist/node_modules/.pnpm/@opentelemetry_sdk-trace-base@2.6.1_@opentelemetry_api@1.9.1/node_modules/@opentelemetry/sdk-trace-base/build/src/TimedEvent.d.ts +19 -0
- package/dist/node_modules/.pnpm/@opentelemetry_sdk-trace-base@2.6.1_@opentelemetry_api@1.9.1/node_modules/@opentelemetry/sdk-trace-base/build/src/export/BatchSpanProcessorBase.d.ts +6 -0
- package/dist/node_modules/.pnpm/@opentelemetry_sdk-trace-base@2.6.1_@opentelemetry_api@1.9.1/node_modules/@opentelemetry/sdk-trace-base/build/src/export/ConsoleSpanExporter.d.ts +3 -0
- package/dist/node_modules/.pnpm/@opentelemetry_sdk-trace-base@2.6.1_@opentelemetry_api@1.9.1/node_modules/@opentelemetry/sdk-trace-base/build/src/export/InMemorySpanExporter.d.ts +3 -0
- package/dist/node_modules/.pnpm/@opentelemetry_sdk-trace-base@2.6.1_@opentelemetry_api@1.9.1/node_modules/@opentelemetry/sdk-trace-base/build/src/export/NoopSpanProcessor.d.ts +4 -0
- package/dist/node_modules/.pnpm/@opentelemetry_sdk-trace-base@2.6.1_@opentelemetry_api@1.9.1/node_modules/@opentelemetry/sdk-trace-base/build/src/export/ReadableSpan.d.ts +29 -0
- package/dist/node_modules/.pnpm/@opentelemetry_sdk-trace-base@2.6.1_@opentelemetry_api@1.9.1/node_modules/@opentelemetry/sdk-trace-base/build/src/export/SimpleSpanProcessor.d.ts +5 -0
- package/dist/node_modules/.pnpm/@opentelemetry_sdk-trace-base@2.6.1_@opentelemetry_api@1.9.1/node_modules/@opentelemetry/sdk-trace-base/build/src/export/SpanExporter.d.ts +2 -0
- package/dist/node_modules/.pnpm/@opentelemetry_sdk-trace-base@2.6.1_@opentelemetry_api@1.9.1/node_modules/@opentelemetry/sdk-trace-base/build/src/index.d.ts +18 -0
- package/dist/node_modules/.pnpm/@opentelemetry_sdk-trace-base@2.6.1_@opentelemetry_api@1.9.1/node_modules/@opentelemetry/sdk-trace-base/build/src/platform/index.d.ts +1 -0
- package/dist/node_modules/.pnpm/@opentelemetry_sdk-trace-base@2.6.1_@opentelemetry_api@1.9.1/node_modules/@opentelemetry/sdk-trace-base/build/src/platform/node/export/BatchSpanProcessor.d.ts +2 -0
- package/dist/node_modules/.pnpm/@opentelemetry_sdk-trace-base@2.6.1_@opentelemetry_api@1.9.1/node_modules/@opentelemetry/sdk-trace-base/build/src/platform/node/index.d.ts +1 -0
- package/dist/node_modules/.pnpm/@opentelemetry_sdk-trace-base@2.6.1_@opentelemetry_api@1.9.1/node_modules/@opentelemetry/sdk-trace-base/build/src/sampler/AlwaysOffSampler.d.ts +1 -0
- package/dist/node_modules/.pnpm/@opentelemetry_sdk-trace-base@2.6.1_@opentelemetry_api@1.9.1/node_modules/@opentelemetry/sdk-trace-base/build/src/sampler/AlwaysOnSampler.d.ts +1 -0
- package/dist/node_modules/.pnpm/@opentelemetry_sdk-trace-base@2.6.1_@opentelemetry_api@1.9.1/node_modules/@opentelemetry/sdk-trace-base/build/src/sampler/ParentBasedSampler.d.ts +2 -0
- package/dist/node_modules/.pnpm/@opentelemetry_sdk-trace-base@2.6.1_@opentelemetry_api@1.9.1/node_modules/@opentelemetry/sdk-trace-base/build/src/sampler/TraceIdRatioBasedSampler.d.ts +1 -0
- package/dist/node_modules/.pnpm/@opentelemetry_sdk-trace-base@2.6.1_@opentelemetry_api@1.9.1/node_modules/@opentelemetry/sdk-trace-base/build/src/types.d.ts +66 -0
- package/dist/otel.d.ts +73 -0
- package/dist/otel.js +82 -0
- package/dist/permissions/index.d.ts +81 -0
- package/dist/permissions/index.js +18 -0
- package/dist/providers/anonymous.d.ts +35 -0
- package/dist/providers/anonymous.js +40 -0
- package/dist/providers/apple.d.ts +61 -0
- package/dist/providers/apple.js +57 -0
- package/dist/providers/connection.d.ts +30 -0
- package/dist/providers/connection.js +33 -0
- package/dist/providers/credentials.d.ts +78 -0
- package/dist/providers/credentials.js +31 -0
- package/dist/providers/custom.d.ts +96 -0
- package/dist/providers/custom.js +108 -0
- package/dist/providers/device.d.ts +33 -0
- package/dist/providers/device.js +30 -0
- package/dist/providers/email.d.ts +45 -0
- package/dist/providers/email.js +52 -0
- package/dist/providers/github.d.ts +56 -0
- package/dist/providers/github.js +79 -0
- package/dist/providers/google.d.ts +56 -0
- package/dist/providers/google.js +59 -0
- package/dist/providers/index.d.ts +16 -0
- package/dist/providers/index.js +16 -0
- package/dist/providers/microsoft.d.ts +59 -0
- package/dist/providers/microsoft.js +98 -0
- package/dist/providers/password.d.ts +68 -0
- package/dist/providers/password.js +348 -0
- package/dist/providers/phone.d.ts +33 -0
- package/dist/providers/phone.js +35 -0
- package/dist/providers/redirect.d.ts +1 -0
- package/dist/providers/redirect.js +11 -0
- package/dist/providers/totp.d.ts +29 -0
- package/dist/providers/totp.js +29 -0
- package/dist/providers/webauthn/attestation.d.ts +42 -0
- package/dist/providers/webauthn/attestation.js +167 -0
- package/dist/providers/webauthn.d.ts +83 -0
- package/dist/providers/webauthn.js +57 -0
- package/dist/react/index.d.ts +55 -0
- package/dist/react/index.js +80 -0
- package/dist/server/auth.d.ts +443 -0
- package/dist/server/auth.js +178 -0
- package/dist/server/cache/context.js +94 -0
- package/dist/server/component/api.d.ts +14 -0
- package/dist/server/component/api.js +13 -0
- package/dist/server/component/context.d.ts +16 -0
- package/dist/server/component/context.js +1 -0
- package/dist/server/component/factor/db.js +71 -0
- package/dist/server/config.d.ts +3 -0
- package/dist/server/config.js +78 -0
- package/dist/server/connection/config.js +101 -0
- package/dist/server/connection/domain.d.ts +878 -0
- package/dist/server/connection/domain.js +1122 -0
- package/dist/server/connection/group/service.d.ts +25 -0
- package/dist/server/connection/group/service.js +250 -0
- package/dist/server/connection/http.js +1485 -0
- package/dist/server/connection/oidc.js +366 -0
- package/dist/server/connection/policy/domain.js +59 -0
- package/dist/server/connection/policy.d.ts +1 -0
- package/dist/server/connection/policy.js +163 -0
- package/dist/server/connection/profile.js +22 -0
- package/dist/server/connection/provision.js +182 -0
- package/dist/server/connection/saml/api.js +70 -0
- package/dist/server/connection/saml/binding/post.js +140 -0
- package/dist/server/connection/saml/binding/redirect.js +139 -0
- package/dist/server/connection/saml/binding/shared.js +18 -0
- package/dist/server/connection/saml/c14n.js +224 -0
- package/dist/server/connection/saml/constants.js +100 -0
- package/dist/server/connection/saml/crypto.js +170 -0
- package/dist/server/connection/saml/dom/select.js +299 -0
- package/dist/server/connection/saml/encoding.js +93 -0
- package/dist/server/connection/saml/encryption.js +34 -0
- package/dist/server/connection/saml/entity.js +24 -0
- package/dist/server/connection/saml/extractor.js +408 -0
- package/dist/server/connection/saml/flow.js +150 -0
- package/dist/server/connection/saml/identity/provider.js +66 -0
- package/dist/server/connection/saml/index.js +5 -0
- package/dist/server/connection/saml/metadata.js +294 -0
- package/dist/server/connection/saml/service/provider.js +117 -0
- package/dist/server/connection/saml/signature.js +214 -0
- package/dist/server/connection/saml/template.js +68 -0
- package/dist/server/connection/saml/types.js +1 -0
- package/dist/server/connection/saml/validator.js +32 -0
- package/dist/server/connection/saml/xml/builder.js +68 -0
- package/dist/server/connection/saml/xmldsig.js +598 -0
- package/dist/server/connection/saml/xmlenc.js +162 -0
- package/dist/server/connection/saml.d.ts +56 -0
- package/dist/server/connection/saml.js +762 -0
- package/dist/server/connection/scim.js +115 -0
- package/dist/server/connection/shared.js +74 -0
- package/dist/server/connection/webhook.js +163 -0
- package/dist/server/context.d.ts +137 -0
- package/dist/server/context.js +108 -0
- package/dist/server/contract.d.ts +48 -0
- package/dist/server/contract.js +107 -0
- package/dist/server/cookies.js +90 -0
- package/dist/server/core.js +163 -0
- package/dist/server/cors.d.ts +22 -0
- package/dist/server/cors.js +93 -0
- package/dist/server/crypto.js +43 -0
- package/dist/server/db.js +88 -0
- package/dist/server/device.js +140 -0
- package/dist/server/domains/access.js +29 -0
- package/dist/server/domains/account.d.ts +16 -0
- package/dist/server/domains/account.js +92 -0
- package/dist/server/domains/factor.d.ts +28 -0
- package/dist/server/domains/factor.js +115 -0
- package/dist/server/domains/group.js +87 -0
- package/dist/server/domains/invite.js +76 -0
- package/dist/server/domains/key.js +253 -0
- package/dist/server/domains/member.js +149 -0
- package/dist/server/domains/session.js +29 -0
- package/dist/server/domains/user.js +119 -0
- package/dist/server/env.d.ts +46 -0
- package/dist/server/env.js +96 -0
- package/dist/server/errors.js +38 -0
- package/dist/server/events.d.ts +880 -0
- package/dist/server/events.js +406 -0
- package/dist/server/facade.d.ts +83 -0
- package/dist/server/facade.js +124 -0
- package/dist/server/http.d.ts +125 -0
- package/dist/server/http.js +566 -0
- package/dist/server/identity/claims.js +58 -0
- package/dist/server/identity/convex.d.ts +15 -0
- package/dist/server/identity/convex.js +1 -0
- package/dist/server/index.d.ts +17 -0
- package/dist/server/index.js +11 -0
- package/dist/server/keys.js +60 -0
- package/dist/server/limits.js +41 -0
- package/dist/server/log.js +28 -0
- package/dist/server/mcp.d.ts +19 -0
- package/dist/server/mcp.js +250 -0
- package/dist/server/mutations/account.js +47 -0
- package/dist/server/mutations/calls.js +16 -0
- package/dist/server/mutations/code.js +91 -0
- package/dist/server/mutations/credentials/signin.js +210 -0
- package/dist/server/mutations/invalidate.js +60 -0
- package/dist/server/mutations/oauth.js +251 -0
- package/dist/server/mutations/refresh.js +152 -0
- package/dist/server/mutations/register.js +93 -0
- package/dist/server/mutations/retrieve.js +66 -0
- package/dist/server/mutations/signature.js +36 -0
- package/dist/server/mutations/signin.js +81 -0
- package/dist/server/mutations/signout.js +61 -0
- package/dist/server/mutations/store/refs.js +15 -0
- package/dist/server/mutations/store.js +82 -0
- package/dist/server/mutations/verifier.js +25 -0
- package/dist/server/mutations/verify.js +199 -0
- package/dist/server/oauth/authorize.js +98 -0
- package/dist/server/oauth/client.d.ts +93 -0
- package/dist/server/oauth/client.js +115 -0
- package/dist/server/oauth/code.d.ts +63 -0
- package/dist/server/oauth/code.js +124 -0
- package/dist/server/oauth/domain.d.ts +23 -0
- package/dist/server/oauth/domain.js +1 -0
- package/dist/server/oauth/factory.js +46 -0
- package/dist/server/oauth/grant.js +46 -0
- package/dist/server/oauth/handlers.js +108 -0
- package/dist/server/oauth/manage.js +121 -0
- package/dist/server/oauth/normalize.js +27 -0
- package/dist/server/oauth/refresh.d.ts +71 -0
- package/dist/server/oauth/refresh.js +132 -0
- package/dist/server/oauth/register.js +147 -0
- package/dist/server/oauth/runtime.js +280 -0
- package/dist/server/oauth/token.js +355 -0
- package/dist/server/payloads.d.ts +16 -0
- package/dist/server/payloads.js +30 -0
- package/dist/server/preload.d.ts +249 -0
- package/dist/server/preload.js +673 -0
- package/dist/server/random.js +25 -0
- package/dist/server/redirects.js +85 -0
- package/dist/server/runtime.d.ts +845 -0
- package/dist/server/runtime.js +387 -0
- package/dist/server/secret.js +46 -0
- package/dist/server/services/factors.js +117 -0
- package/dist/server/services/providers.js +23 -0
- package/dist/server/services/resolve.js +17 -0
- package/dist/server/session/lifecycle.d.ts +23 -0
- package/dist/server/session/lifecycle.js +139 -0
- package/dist/server/signin/flow.js +359 -0
- package/dist/server/telemetry.js +68 -0
- package/dist/server/templates.js +91 -0
- package/dist/server/token/refresh.js +35 -0
- package/dist/server/tokens.js +164 -0
- package/dist/server/totp.js +282 -0
- package/dist/server/types.d.ts +1154 -0
- package/dist/server/types.js +1 -0
- package/dist/server/url.js +43 -0
- package/dist/server/user/account.js +325 -0
- package/dist/server/utils/bearer.js +24 -0
- package/dist/server/utils/cache.js +51 -0
- package/dist/server/utils/retry.js +3 -0
- package/dist/server/utils/span.js +59 -0
- package/dist/server/validators.d.ts +2061 -0
- package/dist/server/validators.js +320 -0
- package/dist/server/webauthn.js +699 -0
- package/dist/server/wellknown.d.ts +74 -0
- package/dist/server/wellknown.js +195 -0
- package/dist/shared/brand.d.ts +28 -0
- package/dist/shared/brand.js +13 -0
- package/dist/shared/codes.d.ts +99 -0
- package/dist/shared/codes.js +98 -0
- package/dist/shared/compare.js +23 -0
- package/dist/shared/errors.js +24 -0
- package/dist/shared/event/kinds.d.ts +188 -0
- package/dist/shared/event/kinds.js +103 -0
- package/dist/shared/fetch/guard.js +189 -0
- package/dist/shared/log.js +62 -0
- package/dist/shared/results.d.ts +58 -0
- package/dist/shared/retry.js +27 -0
- package/dist/shared/webauthn.js +9 -0
- package/dist/svelte/AuthLoading.svelte +13 -0
- package/dist/svelte/AuthLoading.svelte.d.ts +8 -0
- package/dist/svelte/SignedIn.svelte +14 -0
- package/dist/svelte/SignedIn.svelte.d.ts +8 -0
- package/dist/svelte/SignedOut.svelte +13 -0
- package/dist/svelte/SignedOut.svelte.d.ts +8 -0
- package/dist/svelte/context.svelte.d.ts +26 -0
- package/dist/svelte/context.svelte.js +61 -0
- package/dist/svelte/index.d.ts +5 -0
- package/dist/svelte/index.js +4 -0
- package/dist/test.d.ts +48 -0
- package/dist/test.js +54 -0
- package/package.json +247 -0
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
//#region src/server/wellknown.d.ts
|
|
2
|
+
/**
|
|
3
|
+
* Content generator for cross-platform `.well-known` endpoints.
|
|
4
|
+
*
|
|
5
|
+
* The helper produces the exact response shape expected by Apple, Google,
|
|
6
|
+
* browsers, and password managers. It reads convention env vars but accepts
|
|
7
|
+
* explicit overrides; if an endpoint is not configured, it returns `null` so
|
|
8
|
+
* the caller can serve a 404.
|
|
9
|
+
*
|
|
10
|
+
* These endpoints must be reachable from the public app/RP ID origin at root
|
|
11
|
+
* `/.well-known/*`. `auth.http()` serves them from Convex; apps using a
|
|
12
|
+
* separate frontend domain should route those root paths to Convex or adapt
|
|
13
|
+
* this helper in their framework route handlers.
|
|
14
|
+
*
|
|
15
|
+
* @module
|
|
16
|
+
*/
|
|
17
|
+
/** Uniform shape returned by the well-known helper. Adapt to any framework. */
|
|
18
|
+
type WellKnownResponse = {
|
|
19
|
+
status: number;
|
|
20
|
+
headers: Record<string, string>;
|
|
21
|
+
body: string;
|
|
22
|
+
};
|
|
23
|
+
/** Supported `/.well-known/*` endpoint names, without the `/.well-known/` prefix. */
|
|
24
|
+
type WellKnownEndpoint = "apple-app-site-association" | "assetlinks.json" | "webauthn" | "security.txt" | "change-password";
|
|
25
|
+
/** Explicit per-endpoint overrides for {@link wellKnown}, bypassing env vars. */
|
|
26
|
+
type WellKnownOptions = {
|
|
27
|
+
/** Options for `/.well-known/apple-app-site-association`. */appleAppSiteAssociation?: {
|
|
28
|
+
/** Override `IOS_APP_IDS`; e.g., `["ABC123DEF.com.example.app"]`. */appIds?: string[]; /** Override `IOS_APPLINK_PATHS`; default `["/auth/*", "/callback/*"]`. */
|
|
29
|
+
applinkPaths?: string[];
|
|
30
|
+
}; /** Options for `/.well-known/assetlinks.json`. */
|
|
31
|
+
assetLinks?: {
|
|
32
|
+
apps?: Array<{
|
|
33
|
+
packageName: string;
|
|
34
|
+
sha256Fingerprints: string[];
|
|
35
|
+
}>;
|
|
36
|
+
}; /** Options for `/.well-known/security.txt`. */
|
|
37
|
+
securityTxt?: {
|
|
38
|
+
/** Override `SECURITY_CONTACT`. Should be a `mailto:` or `https:` URI. */contact?: string; /** Override `SECURITY_TXT_EXPIRES_DAYS`. Default 365 days from now. */
|
|
39
|
+
expiresInDays?: number; /** RFC 5646 language tags, e.g., `["en"]`. */
|
|
40
|
+
preferredLanguages?: string[]; /** Optional canonical URL of the security.txt file (for signed copies). */
|
|
41
|
+
canonical?: string; /** Optional public key URL for encrypted reports. */
|
|
42
|
+
encryption?: string; /** Optional acknowledgments URL. */
|
|
43
|
+
acknowledgments?: string; /** Optional policy URL. */
|
|
44
|
+
policy?: string; /** Optional hiring URL. */
|
|
45
|
+
hiring?: string;
|
|
46
|
+
}; /** Options for `/.well-known/change-password`. */
|
|
47
|
+
changePassword?: {
|
|
48
|
+
/** Override `CHANGE_PASSWORD_URL`. */targetUrl?: string;
|
|
49
|
+
};
|
|
50
|
+
};
|
|
51
|
+
/**
|
|
52
|
+
* Generate a standard `/.well-known/*` response.
|
|
53
|
+
*
|
|
54
|
+
* @param endpoint The well-known endpoint name, without the `/.well-known/` prefix.
|
|
55
|
+
* @param options Optional explicit configuration. When omitted, the helper reads
|
|
56
|
+
* convention environment variables for the selected endpoint.
|
|
57
|
+
* @returns A framework-neutral response descriptor, or `null` when the endpoint
|
|
58
|
+
* is not configured.
|
|
59
|
+
*
|
|
60
|
+
* @example
|
|
61
|
+
* ```ts
|
|
62
|
+
* import { wellKnown } from "@estifanos-sh/convex-auth/server";
|
|
63
|
+
*
|
|
64
|
+
* export const GET = () => {
|
|
65
|
+
* const r = wellKnown("assetlinks.json");
|
|
66
|
+
* if (r === null) return new Response(null, { status: 404 });
|
|
67
|
+
* return new Response(r.body, { status: r.status, headers: r.headers });
|
|
68
|
+
* };
|
|
69
|
+
* ```
|
|
70
|
+
*/
|
|
71
|
+
declare function wellKnown(endpoint: WellKnownEndpoint, options?: WellKnownOptions): WellKnownResponse | null;
|
|
72
|
+
//#endregion
|
|
73
|
+
export { WellKnownEndpoint, WellKnownOptions, WellKnownResponse, wellKnown };
|
|
74
|
+
//# sourceMappingURL=wellknown.d.ts.map
|
|
@@ -0,0 +1,195 @@
|
|
|
1
|
+
import { envOptionalNumber, envOptionalString } from "./env.js";
|
|
2
|
+
import { appUrlFromEnv } from "./url.js";
|
|
3
|
+
|
|
4
|
+
//#region src/server/wellknown.ts
|
|
5
|
+
/**
|
|
6
|
+
* Content generator for cross-platform `.well-known` endpoints.
|
|
7
|
+
*
|
|
8
|
+
* The helper produces the exact response shape expected by Apple, Google,
|
|
9
|
+
* browsers, and password managers. It reads convention env vars but accepts
|
|
10
|
+
* explicit overrides; if an endpoint is not configured, it returns `null` so
|
|
11
|
+
* the caller can serve a 404.
|
|
12
|
+
*
|
|
13
|
+
* These endpoints must be reachable from the public app/RP ID origin at root
|
|
14
|
+
* `/.well-known/*`. `auth.http()` serves them from Convex; apps using a
|
|
15
|
+
* separate frontend domain should route those root paths to Convex or adapt
|
|
16
|
+
* this helper in their framework route handlers.
|
|
17
|
+
*
|
|
18
|
+
* @module
|
|
19
|
+
*/
|
|
20
|
+
const STATIC_CACHE = "public, max-age=300, stale-while-revalidate=3600, stale-if-error=86400";
|
|
21
|
+
function parseList(value) {
|
|
22
|
+
if (value === void 0) return [];
|
|
23
|
+
return value.split(",").map((part) => part.trim()).filter((part) => part.length > 0);
|
|
24
|
+
}
|
|
25
|
+
function ok(body, contentType) {
|
|
26
|
+
return {
|
|
27
|
+
status: 200,
|
|
28
|
+
headers: {
|
|
29
|
+
"Content-Type": contentType,
|
|
30
|
+
"Cache-Control": STATIC_CACHE
|
|
31
|
+
},
|
|
32
|
+
body
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
|
+
function appleAppSiteAssociationResponse(opts) {
|
|
36
|
+
const appIds = opts?.appIds ?? parseList(envOptionalString("IOS_APP_IDS"));
|
|
37
|
+
if (appIds.length === 0) return null;
|
|
38
|
+
const applinkPaths = opts?.applinkPaths ?? parseList(envOptionalString("IOS_APPLINK_PATHS"));
|
|
39
|
+
const components = applinkPaths.length > 0 ? applinkPaths.map((path) => ({ "/": path })) : [{ "/": "/auth/*" }, { "/": "/callback/*" }];
|
|
40
|
+
return ok(JSON.stringify({
|
|
41
|
+
applinks: { details: [{
|
|
42
|
+
appIDs: appIds,
|
|
43
|
+
components
|
|
44
|
+
}] },
|
|
45
|
+
webcredentials: { apps: appIds }
|
|
46
|
+
}), "application/json");
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Generate `/.well-known/assetlinks.json` content for Android.
|
|
50
|
+
*
|
|
51
|
+
* Required for Android Credential Manager to surface passkeys for the app,
|
|
52
|
+
* and for App Link verification (`autoVerify="true"` intent filters). Google
|
|
53
|
+
* fetches this file from the WebAuthn RP ID host.
|
|
54
|
+
*
|
|
55
|
+
* Reads {@link ANDROID_APP_LINKS} in the format
|
|
56
|
+
* `package1:FP1:FP2;package2:FP1:FP2` where each fingerprint is a colon-
|
|
57
|
+
* separated SHA-256 hex string. Use `;` between apps and `:` to separate
|
|
58
|
+
* package name from fingerprints (and fingerprints share the standard
|
|
59
|
+
* `AA:BB:CC:...` colon format — split on `:`, the first segment is the
|
|
60
|
+
* package, the rest is the fingerprint reassembled).
|
|
61
|
+
*
|
|
62
|
+
* For programmatic config, prefer the `apps` option which avoids parsing.
|
|
63
|
+
*
|
|
64
|
+
* @example Direct config
|
|
65
|
+
* ```ts
|
|
66
|
+
* wellKnown("assetlinks.json", { assetLinks: {
|
|
67
|
+
* apps: [{
|
|
68
|
+
* packageName: "com.example.app",
|
|
69
|
+
* sha256Fingerprints: ["AA:BB:CC:..."],
|
|
70
|
+
* }],
|
|
71
|
+
* }});
|
|
72
|
+
* ```
|
|
73
|
+
*/
|
|
74
|
+
function assetLinksResponse(opts) {
|
|
75
|
+
const apps = opts?.apps ?? parseAndroidAppLinksEnv(envOptionalString("ANDROID_APP_LINKS"));
|
|
76
|
+
if (apps.length === 0) return null;
|
|
77
|
+
return ok(JSON.stringify(apps.map((app) => ({
|
|
78
|
+
relation: ["delegate_permission/common.get_login_creds", "delegate_permission/common.handle_all_urls"],
|
|
79
|
+
target: {
|
|
80
|
+
namespace: "android_app",
|
|
81
|
+
package_name: app.packageName,
|
|
82
|
+
sha256_cert_fingerprints: app.sha256Fingerprints
|
|
83
|
+
}
|
|
84
|
+
}))), "application/json");
|
|
85
|
+
}
|
|
86
|
+
function parseAndroidAppLinksEnv(raw) {
|
|
87
|
+
if (raw === void 0) return [];
|
|
88
|
+
const apps = [];
|
|
89
|
+
for (const entry of raw.split(";")) {
|
|
90
|
+
const trimmed = entry.trim();
|
|
91
|
+
if (trimmed.length === 0) continue;
|
|
92
|
+
const firstColon = trimmed.indexOf(":");
|
|
93
|
+
if (firstColon === -1) continue;
|
|
94
|
+
const packageName = trimmed.slice(0, firstColon).trim();
|
|
95
|
+
const fingerprintsRaw = trimmed.slice(firstColon + 1).trim();
|
|
96
|
+
if (packageName.length === 0 || fingerprintsRaw.length === 0) continue;
|
|
97
|
+
apps.push({
|
|
98
|
+
packageName,
|
|
99
|
+
sha256Fingerprints: [fingerprintsRaw]
|
|
100
|
+
});
|
|
101
|
+
}
|
|
102
|
+
return apps;
|
|
103
|
+
}
|
|
104
|
+
/**
|
|
105
|
+
* Generate `/.well-known/webauthn` content (W3C WebAuthn Level 3).
|
|
106
|
+
*
|
|
107
|
+
* The happy path is the app's single frontend origin. Multi-origin RP support
|
|
108
|
+
* should be handled explicitly by the app instead of hidden deployment envs.
|
|
109
|
+
*/
|
|
110
|
+
function webAuthnResponse() {
|
|
111
|
+
let appUrl;
|
|
112
|
+
try {
|
|
113
|
+
appUrl = appUrlFromEnv();
|
|
114
|
+
} catch {
|
|
115
|
+
return null;
|
|
116
|
+
}
|
|
117
|
+
return ok(JSON.stringify({ origins: [appUrl] }), "application/json");
|
|
118
|
+
}
|
|
119
|
+
/**
|
|
120
|
+
* Generate `/.well-known/security.txt` content (RFC 9116).
|
|
121
|
+
*
|
|
122
|
+
* Plain-text contact info for security researchers. Reads {@link SECURITY_CONTACT}
|
|
123
|
+
* (e.g., `mailto:security@example.com` or `https://example.com/security`) and
|
|
124
|
+
* optional {@link SECURITY_TXT_EXPIRES_DAYS} (default 365).
|
|
125
|
+
*/
|
|
126
|
+
function securityTxtResponse(opts) {
|
|
127
|
+
const contact = opts?.contact ?? envOptionalString("SECURITY_CONTACT");
|
|
128
|
+
if (contact === void 0 || contact.length === 0) return null;
|
|
129
|
+
const days = opts?.expiresInDays ?? envOptionalNumber("SECURITY_TXT_EXPIRES_DAYS") ?? 365;
|
|
130
|
+
const expires = new Date(Date.now() + days * 24 * 60 * 60 * 1e3).toISOString();
|
|
131
|
+
const lines = [`Contact: ${contact}`, `Expires: ${expires}`];
|
|
132
|
+
const langs = opts?.preferredLanguages;
|
|
133
|
+
if (langs && langs.length > 0) lines.push(`Preferred-Languages: ${langs.join(", ")}`);
|
|
134
|
+
if (opts?.canonical) lines.push(`Canonical: ${opts.canonical}`);
|
|
135
|
+
if (opts?.encryption) lines.push(`Encryption: ${opts.encryption}`);
|
|
136
|
+
if (opts?.acknowledgments) lines.push(`Acknowledgments: ${opts.acknowledgments}`);
|
|
137
|
+
if (opts?.policy) lines.push(`Policy: ${opts.policy}`);
|
|
138
|
+
if (opts?.hiring) lines.push(`Hiring: ${opts.hiring}`);
|
|
139
|
+
return ok(`${lines.join("\n")}\n`, "text/plain; charset=utf-8");
|
|
140
|
+
}
|
|
141
|
+
/**
|
|
142
|
+
* Generate a 302 redirect for `/.well-known/change-password` (RFC 8615).
|
|
143
|
+
*
|
|
144
|
+
* Password managers (1Password, iCloud Keychain, Bitwarden, Chrome) deep-link
|
|
145
|
+
* here when the user picks "Change password". The route should redirect to
|
|
146
|
+
* the actual change-password UI in your app.
|
|
147
|
+
*
|
|
148
|
+
* Reads {@link CHANGE_PASSWORD_URL}.
|
|
149
|
+
*/
|
|
150
|
+
function changePasswordResponse(opts) {
|
|
151
|
+
const target = opts?.targetUrl ?? envOptionalString("CHANGE_PASSWORD_URL");
|
|
152
|
+
if (target === void 0 || target.length === 0) return null;
|
|
153
|
+
return {
|
|
154
|
+
status: 302,
|
|
155
|
+
headers: {
|
|
156
|
+
Location: target,
|
|
157
|
+
"Cache-Control": "public, max-age=300"
|
|
158
|
+
},
|
|
159
|
+
body: ""
|
|
160
|
+
};
|
|
161
|
+
}
|
|
162
|
+
/**
|
|
163
|
+
* Generate a standard `/.well-known/*` response.
|
|
164
|
+
*
|
|
165
|
+
* @param endpoint The well-known endpoint name, without the `/.well-known/` prefix.
|
|
166
|
+
* @param options Optional explicit configuration. When omitted, the helper reads
|
|
167
|
+
* convention environment variables for the selected endpoint.
|
|
168
|
+
* @returns A framework-neutral response descriptor, or `null` when the endpoint
|
|
169
|
+
* is not configured.
|
|
170
|
+
*
|
|
171
|
+
* @example
|
|
172
|
+
* ```ts
|
|
173
|
+
* import { wellKnown } from "@estifanos-sh/convex-auth/server";
|
|
174
|
+
*
|
|
175
|
+
* export const GET = () => {
|
|
176
|
+
* const r = wellKnown("assetlinks.json");
|
|
177
|
+
* if (r === null) return new Response(null, { status: 404 });
|
|
178
|
+
* return new Response(r.body, { status: r.status, headers: r.headers });
|
|
179
|
+
* };
|
|
180
|
+
* ```
|
|
181
|
+
*/
|
|
182
|
+
function wellKnown(endpoint, options) {
|
|
183
|
+
return WELL_KNOWN_HANDLERS[endpoint](options);
|
|
184
|
+
}
|
|
185
|
+
const WELL_KNOWN_HANDLERS = {
|
|
186
|
+
"apple-app-site-association": (options) => appleAppSiteAssociationResponse(options?.appleAppSiteAssociation),
|
|
187
|
+
"assetlinks.json": (options) => assetLinksResponse(options?.assetLinks),
|
|
188
|
+
webauthn: () => webAuthnResponse(),
|
|
189
|
+
"security.txt": (options) => securityTxtResponse(options?.securityTxt),
|
|
190
|
+
"change-password": (options) => changePasswordResponse(options?.changePassword)
|
|
191
|
+
};
|
|
192
|
+
|
|
193
|
+
//#endregion
|
|
194
|
+
export { wellKnown };
|
|
195
|
+
//# sourceMappingURL=wellknown.js.map
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
//#region src/shared/brand.d.ts
|
|
2
|
+
/**
|
|
3
|
+
* Nominal ("branded") types. `Brand<string, "X">` is a `string` at runtime but
|
|
4
|
+
* is only assignable FROM a `string` via an explicit cast, so the compiler
|
|
5
|
+
* stops you from mixing values that share a primitive shape but not a meaning —
|
|
6
|
+
* an access token vs a refresh token, a raw secret vs its hash, a user-supplied
|
|
7
|
+
* code vs an internal one. Brands erase at runtime (zero cost).
|
|
8
|
+
*
|
|
9
|
+
* @module
|
|
10
|
+
*/
|
|
11
|
+
declare const brand: unique symbol;
|
|
12
|
+
/** Tag a base type `T` with a compile-time-only nominal `Tag`. */
|
|
13
|
+
type Brand<T, Tag extends string> = T & {
|
|
14
|
+
readonly [brand]: Tag;
|
|
15
|
+
};
|
|
16
|
+
/** Opaque encoded refresh token — `${refreshTokenId}|${sessionId}`. */
|
|
17
|
+
type RefreshToken = Brand<string, "RefreshToken">;
|
|
18
|
+
/**
|
|
19
|
+
* A one-way hash of some plaintext `TOf` (e.g. `Hashed<"Password">`,
|
|
20
|
+
* `Hashed<"ApiKeySecret">`, `Hashed<"VerificationCode">`). Distinct from the
|
|
21
|
+
* plaintext it was derived from so the two can't be swapped at a boundary.
|
|
22
|
+
*/
|
|
23
|
+
type Hashed<TOf extends string> = Brand<string, `Hashed:${TOf}`>;
|
|
24
|
+
/** AES-GCM ciphertext produced by `encryptSecret` (`${iv}.${payload}`). */
|
|
25
|
+
type EncryptedSecret = Brand<string, "EncryptedSecret">;
|
|
26
|
+
//#endregion
|
|
27
|
+
export { EncryptedSecret, Hashed, RefreshToken };
|
|
28
|
+
//# sourceMappingURL=brand.d.ts.map
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
//#region src/shared/brand.ts
|
|
2
|
+
/**
|
|
3
|
+
* Exhaustiveness guard for discriminated unions. Put it in the `default`
|
|
4
|
+
* branch (or after an `if`/`switch` chain) so adding a new variant becomes a
|
|
5
|
+
* compile error until every case is handled.
|
|
6
|
+
*/
|
|
7
|
+
function assertNever(value, message = "Unhandled case") {
|
|
8
|
+
throw new Error(`${message}: ${String(value)}`);
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
//#endregion
|
|
12
|
+
export { assertNever };
|
|
13
|
+
//# sourceMappingURL=brand.js.map
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
//#region src/shared/codes.d.ts
|
|
2
|
+
/**
|
|
3
|
+
* Centralized registry of every `ConvexError` code thrown by the auth
|
|
4
|
+
* package. Use `ErrorCode.<NAME>` instead of inline string literals so
|
|
5
|
+
* typos surface at compile time and consumers can pattern-match on the
|
|
6
|
+
* union type.
|
|
7
|
+
*
|
|
8
|
+
* Naming: SCREAMING_SNAKE_CASE, scoped by domain prefix where useful
|
|
9
|
+
* (e.g. `OAUTH_*`, `INVITE_*`, `API_KEY_*`).
|
|
10
|
+
*
|
|
11
|
+
* @module
|
|
12
|
+
*/
|
|
13
|
+
declare const ErrorCode: {
|
|
14
|
+
readonly INTERNAL_ERROR: "INTERNAL_ERROR";
|
|
15
|
+
readonly INVALID_PARAMETERS: "INVALID_PARAMETERS";
|
|
16
|
+
readonly INVALID_REDIRECT: "INVALID_REDIRECT";
|
|
17
|
+
readonly FORBIDDEN: "FORBIDDEN";
|
|
18
|
+
readonly NOT_AUTHORIZED: "NOT_AUTHORIZED";
|
|
19
|
+
readonly NOT_SIGNED_IN: "NOT_SIGNED_IN";
|
|
20
|
+
readonly RATE_LIMITED: "RATE_LIMITED";
|
|
21
|
+
readonly MISSING_ENV_VAR: "MISSING_ENV_VAR";
|
|
22
|
+
readonly CASCADE_TOO_LARGE: "CASCADE_TOO_LARGE";
|
|
23
|
+
readonly PROVIDER_NOT_CONFIGURED: "PROVIDER_NOT_CONFIGURED";
|
|
24
|
+
readonly INVALID_CREDENTIALS_PROVIDER: "INVALID_CREDENTIALS_PROVIDER";
|
|
25
|
+
readonly MISSING_CRYPTO_FUNCTION: "MISSING_CRYPTO_FUNCTION";
|
|
26
|
+
readonly ACCOUNT_ALREADY_LINKED: "ACCOUNT_ALREADY_LINKED";
|
|
27
|
+
readonly ACCOUNT_NOT_FOUND: "ACCOUNT_NOT_FOUND";
|
|
28
|
+
readonly AMBIGUOUS_USER_LINK: "AMBIGUOUS_USER_LINK";
|
|
29
|
+
readonly USER_UPDATE_FAILED: "USER_UPDATE_FAILED";
|
|
30
|
+
readonly INVALID_CREDENTIALS: "INVALID_CREDENTIALS";
|
|
31
|
+
readonly INVALID_VERIFIER: "INVALID_VERIFIER";
|
|
32
|
+
readonly VERIFICATION_CODE_COLLISION: "VERIFICATION_CODE_COLLISION";
|
|
33
|
+
readonly API_KEY_EXPIRED: "API_KEY_EXPIRED";
|
|
34
|
+
readonly API_KEY_RATE_LIMITED: "API_KEY_RATE_LIMITED";
|
|
35
|
+
readonly API_KEY_REVOKED: "API_KEY_REVOKED";
|
|
36
|
+
readonly INVALID_API_KEY: "INVALID_API_KEY";
|
|
37
|
+
readonly KEY_NOT_FOUND: "KEY_NOT_FOUND";
|
|
38
|
+
readonly MISSING_BEARER_TOKEN: "MISSING_BEARER_TOKEN";
|
|
39
|
+
readonly SCOPE_CHECK_FAILED: "SCOPE_CHECK_FAILED";
|
|
40
|
+
readonly INVALID_REFRESH_TOKEN: "INVALID_REFRESH_TOKEN";
|
|
41
|
+
readonly OAUTH_CLIENT_NOT_FOUND: "OAUTH_CLIENT_NOT_FOUND";
|
|
42
|
+
readonly OAUTH_CODE_ALREADY_USED: "OAUTH_CODE_ALREADY_USED";
|
|
43
|
+
readonly OAUTH_CODE_EXPIRED: "OAUTH_CODE_EXPIRED";
|
|
44
|
+
readonly OAUTH_GRANT_TYPE_NOT_ALLOWED: "OAUTH_GRANT_TYPE_NOT_ALLOWED";
|
|
45
|
+
readonly OAUTH_INVALID_PROFILE: "OAUTH_INVALID_PROFILE";
|
|
46
|
+
readonly OAUTH_INVALID_REFRESH_TOKEN: "OAUTH_INVALID_REFRESH_TOKEN";
|
|
47
|
+
readonly OAUTH_INVALID_STATE: "OAUTH_INVALID_STATE";
|
|
48
|
+
readonly OAUTH_MISSING_PROVIDER: "OAUTH_MISSING_PROVIDER";
|
|
49
|
+
readonly OAUTH_MISSING_VERIFIER: "OAUTH_MISSING_VERIFIER";
|
|
50
|
+
readonly OAUTH_PROVIDER_ERROR: "OAUTH_PROVIDER_ERROR";
|
|
51
|
+
readonly OAUTH_REDIRECT_URI_MISMATCH: "OAUTH_REDIRECT_URI_MISMATCH";
|
|
52
|
+
readonly OAUTH_SCOPE_NOT_ALLOWED: "OAUTH_SCOPE_NOT_ALLOWED";
|
|
53
|
+
readonly DEVICE_AUTHORIZATION_FAILED: "DEVICE_AUTHORIZATION_FAILED";
|
|
54
|
+
readonly DEVICE_CODE_EXPIRED: "DEVICE_CODE_EXPIRED";
|
|
55
|
+
readonly PASSKEY_NOT_FOUND: "PASSKEY_NOT_FOUND";
|
|
56
|
+
readonly PASSKEY_AUTH_REQUIRED: "PASSKEY_AUTH_REQUIRED";
|
|
57
|
+
readonly PASSKEY_COUNTER_ERROR: "PASSKEY_COUNTER_ERROR";
|
|
58
|
+
readonly PASSKEY_INVALID_CHALLENGE: "PASSKEY_INVALID_CHALLENGE";
|
|
59
|
+
readonly PASSKEY_INVALID_CLIENT_DATA: "PASSKEY_INVALID_CLIENT_DATA";
|
|
60
|
+
readonly PASSKEY_INVALID_ORIGIN: "PASSKEY_INVALID_ORIGIN";
|
|
61
|
+
readonly PASSKEY_INVALID_SIGNATURE: "PASSKEY_INVALID_SIGNATURE";
|
|
62
|
+
readonly PASSKEY_INVALID_VERIFY: "PASSKEY_INVALID_VERIFY";
|
|
63
|
+
readonly PASSKEY_MISSING_CONFIG: "PASSKEY_MISSING_CONFIG";
|
|
64
|
+
readonly PASSKEY_MISSING_FLOW: "PASSKEY_MISSING_FLOW";
|
|
65
|
+
readonly PASSKEY_MISSING_VERIFIER: "PASSKEY_MISSING_VERIFIER";
|
|
66
|
+
readonly PASSKEY_NO_CREDENTIAL: "PASSKEY_NO_CREDENTIAL";
|
|
67
|
+
readonly PASSKEY_RP_MISMATCH: "PASSKEY_RP_MISMATCH";
|
|
68
|
+
readonly PASSKEY_UNKNOWN_CREDENTIAL: "PASSKEY_UNKNOWN_CREDENTIAL";
|
|
69
|
+
readonly PASSKEY_UNTRUSTED_ATTESTATION: "PASSKEY_UNTRUSTED_ATTESTATION";
|
|
70
|
+
readonly PASSKEY_UNSUPPORTED_ALGORITHM: "PASSKEY_UNSUPPORTED_ALGORITHM";
|
|
71
|
+
readonly PASSKEY_USER_PRESENCE: "PASSKEY_USER_PRESENCE";
|
|
72
|
+
readonly PASSKEY_USER_VERIFICATION: "PASSKEY_USER_VERIFICATION";
|
|
73
|
+
readonly TOTP_NOT_FOUND: "TOTP_NOT_FOUND";
|
|
74
|
+
readonly TOTP_ALREADY_VERIFIED: "TOTP_ALREADY_VERIFIED";
|
|
75
|
+
readonly TOTP_AUTH_REQUIRED: "TOTP_AUTH_REQUIRED";
|
|
76
|
+
readonly TOTP_INVALID_CODE: "TOTP_INVALID_CODE";
|
|
77
|
+
readonly TOTP_INVALID_VERIFIER: "TOTP_INVALID_VERIFIER";
|
|
78
|
+
readonly TOTP_MISSING_CODE: "TOTP_MISSING_CODE";
|
|
79
|
+
readonly TOTP_MISSING_FLOW: "TOTP_MISSING_FLOW";
|
|
80
|
+
readonly TOTP_MISSING_VERIFIER: "TOTP_MISSING_VERIFIER";
|
|
81
|
+
readonly TOTP_NO_ENROLLMENT: "TOTP_NO_ENROLLMENT";
|
|
82
|
+
readonly DUPLICATE_INVITE: "DUPLICATE_INVITE";
|
|
83
|
+
readonly DUPLICATE_MEMBERSHIP: "DUPLICATE_MEMBERSHIP";
|
|
84
|
+
readonly INVITE_ALREADY_ACCEPTED: "INVITE_ALREADY_ACCEPTED";
|
|
85
|
+
readonly INVITE_EMAIL_MISMATCH: "INVITE_EMAIL_MISMATCH";
|
|
86
|
+
readonly INVITE_EXPIRED: "INVITE_EXPIRED";
|
|
87
|
+
readonly INVITE_NOT_FOUND: "INVITE_NOT_FOUND";
|
|
88
|
+
readonly INVITE_NOT_PENDING: "INVITE_NOT_PENDING";
|
|
89
|
+
readonly INVALID_ROLE_IDS: "INVALID_ROLE_IDS";
|
|
90
|
+
readonly MISSING_GRANTS: "MISSING_GRANTS";
|
|
91
|
+
readonly NO_ACTIVE_GROUP: "NO_ACTIVE_GROUP";
|
|
92
|
+
readonly NOT_A_MEMBER: "NOT_A_MEMBER";
|
|
93
|
+
readonly GROUP_CONNECTION_DOMAIN_TAKEN: "GROUP_CONNECTION_DOMAIN_TAKEN";
|
|
94
|
+
};
|
|
95
|
+
/** Union of every {@link ErrorCode} value. */
|
|
96
|
+
type ErrorCode = (typeof ErrorCode)[keyof typeof ErrorCode];
|
|
97
|
+
//#endregion
|
|
98
|
+
export { ErrorCode };
|
|
99
|
+
//# sourceMappingURL=codes.d.ts.map
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
//#region src/shared/codes.ts
|
|
2
|
+
/**
|
|
3
|
+
* Centralized registry of every `ConvexError` code thrown by the auth
|
|
4
|
+
* package. Use `ErrorCode.<NAME>` instead of inline string literals so
|
|
5
|
+
* typos surface at compile time and consumers can pattern-match on the
|
|
6
|
+
* union type.
|
|
7
|
+
*
|
|
8
|
+
* Naming: SCREAMING_SNAKE_CASE, scoped by domain prefix where useful
|
|
9
|
+
* (e.g. `OAUTH_*`, `INVITE_*`, `API_KEY_*`).
|
|
10
|
+
*
|
|
11
|
+
* @module
|
|
12
|
+
*/
|
|
13
|
+
const ErrorCode = {
|
|
14
|
+
INTERNAL_ERROR: "INTERNAL_ERROR",
|
|
15
|
+
INVALID_PARAMETERS: "INVALID_PARAMETERS",
|
|
16
|
+
INVALID_REDIRECT: "INVALID_REDIRECT",
|
|
17
|
+
FORBIDDEN: "FORBIDDEN",
|
|
18
|
+
NOT_AUTHORIZED: "NOT_AUTHORIZED",
|
|
19
|
+
NOT_SIGNED_IN: "NOT_SIGNED_IN",
|
|
20
|
+
RATE_LIMITED: "RATE_LIMITED",
|
|
21
|
+
MISSING_ENV_VAR: "MISSING_ENV_VAR",
|
|
22
|
+
CASCADE_TOO_LARGE: "CASCADE_TOO_LARGE",
|
|
23
|
+
PROVIDER_NOT_CONFIGURED: "PROVIDER_NOT_CONFIGURED",
|
|
24
|
+
INVALID_CREDENTIALS_PROVIDER: "INVALID_CREDENTIALS_PROVIDER",
|
|
25
|
+
MISSING_CRYPTO_FUNCTION: "MISSING_CRYPTO_FUNCTION",
|
|
26
|
+
ACCOUNT_ALREADY_LINKED: "ACCOUNT_ALREADY_LINKED",
|
|
27
|
+
ACCOUNT_NOT_FOUND: "ACCOUNT_NOT_FOUND",
|
|
28
|
+
AMBIGUOUS_USER_LINK: "AMBIGUOUS_USER_LINK",
|
|
29
|
+
USER_UPDATE_FAILED: "USER_UPDATE_FAILED",
|
|
30
|
+
INVALID_CREDENTIALS: "INVALID_CREDENTIALS",
|
|
31
|
+
INVALID_VERIFIER: "INVALID_VERIFIER",
|
|
32
|
+
VERIFICATION_CODE_COLLISION: "VERIFICATION_CODE_COLLISION",
|
|
33
|
+
API_KEY_EXPIRED: "API_KEY_EXPIRED",
|
|
34
|
+
API_KEY_RATE_LIMITED: "API_KEY_RATE_LIMITED",
|
|
35
|
+
API_KEY_REVOKED: "API_KEY_REVOKED",
|
|
36
|
+
INVALID_API_KEY: "INVALID_API_KEY",
|
|
37
|
+
KEY_NOT_FOUND: "KEY_NOT_FOUND",
|
|
38
|
+
MISSING_BEARER_TOKEN: "MISSING_BEARER_TOKEN",
|
|
39
|
+
SCOPE_CHECK_FAILED: "SCOPE_CHECK_FAILED",
|
|
40
|
+
INVALID_REFRESH_TOKEN: "INVALID_REFRESH_TOKEN",
|
|
41
|
+
OAUTH_CLIENT_NOT_FOUND: "OAUTH_CLIENT_NOT_FOUND",
|
|
42
|
+
OAUTH_CODE_ALREADY_USED: "OAUTH_CODE_ALREADY_USED",
|
|
43
|
+
OAUTH_CODE_EXPIRED: "OAUTH_CODE_EXPIRED",
|
|
44
|
+
OAUTH_GRANT_TYPE_NOT_ALLOWED: "OAUTH_GRANT_TYPE_NOT_ALLOWED",
|
|
45
|
+
OAUTH_INVALID_PROFILE: "OAUTH_INVALID_PROFILE",
|
|
46
|
+
OAUTH_INVALID_REFRESH_TOKEN: "OAUTH_INVALID_REFRESH_TOKEN",
|
|
47
|
+
OAUTH_INVALID_STATE: "OAUTH_INVALID_STATE",
|
|
48
|
+
OAUTH_MISSING_PROVIDER: "OAUTH_MISSING_PROVIDER",
|
|
49
|
+
OAUTH_MISSING_VERIFIER: "OAUTH_MISSING_VERIFIER",
|
|
50
|
+
OAUTH_PROVIDER_ERROR: "OAUTH_PROVIDER_ERROR",
|
|
51
|
+
OAUTH_REDIRECT_URI_MISMATCH: "OAUTH_REDIRECT_URI_MISMATCH",
|
|
52
|
+
OAUTH_SCOPE_NOT_ALLOWED: "OAUTH_SCOPE_NOT_ALLOWED",
|
|
53
|
+
DEVICE_AUTHORIZATION_FAILED: "DEVICE_AUTHORIZATION_FAILED",
|
|
54
|
+
DEVICE_CODE_EXPIRED: "DEVICE_CODE_EXPIRED",
|
|
55
|
+
PASSKEY_NOT_FOUND: "PASSKEY_NOT_FOUND",
|
|
56
|
+
PASSKEY_AUTH_REQUIRED: "PASSKEY_AUTH_REQUIRED",
|
|
57
|
+
PASSKEY_COUNTER_ERROR: "PASSKEY_COUNTER_ERROR",
|
|
58
|
+
PASSKEY_INVALID_CHALLENGE: "PASSKEY_INVALID_CHALLENGE",
|
|
59
|
+
PASSKEY_INVALID_CLIENT_DATA: "PASSKEY_INVALID_CLIENT_DATA",
|
|
60
|
+
PASSKEY_INVALID_ORIGIN: "PASSKEY_INVALID_ORIGIN",
|
|
61
|
+
PASSKEY_INVALID_SIGNATURE: "PASSKEY_INVALID_SIGNATURE",
|
|
62
|
+
PASSKEY_INVALID_VERIFY: "PASSKEY_INVALID_VERIFY",
|
|
63
|
+
PASSKEY_MISSING_CONFIG: "PASSKEY_MISSING_CONFIG",
|
|
64
|
+
PASSKEY_MISSING_FLOW: "PASSKEY_MISSING_FLOW",
|
|
65
|
+
PASSKEY_MISSING_VERIFIER: "PASSKEY_MISSING_VERIFIER",
|
|
66
|
+
PASSKEY_NO_CREDENTIAL: "PASSKEY_NO_CREDENTIAL",
|
|
67
|
+
PASSKEY_RP_MISMATCH: "PASSKEY_RP_MISMATCH",
|
|
68
|
+
PASSKEY_UNKNOWN_CREDENTIAL: "PASSKEY_UNKNOWN_CREDENTIAL",
|
|
69
|
+
PASSKEY_UNTRUSTED_ATTESTATION: "PASSKEY_UNTRUSTED_ATTESTATION",
|
|
70
|
+
PASSKEY_UNSUPPORTED_ALGORITHM: "PASSKEY_UNSUPPORTED_ALGORITHM",
|
|
71
|
+
PASSKEY_USER_PRESENCE: "PASSKEY_USER_PRESENCE",
|
|
72
|
+
PASSKEY_USER_VERIFICATION: "PASSKEY_USER_VERIFICATION",
|
|
73
|
+
TOTP_NOT_FOUND: "TOTP_NOT_FOUND",
|
|
74
|
+
TOTP_ALREADY_VERIFIED: "TOTP_ALREADY_VERIFIED",
|
|
75
|
+
TOTP_AUTH_REQUIRED: "TOTP_AUTH_REQUIRED",
|
|
76
|
+
TOTP_INVALID_CODE: "TOTP_INVALID_CODE",
|
|
77
|
+
TOTP_INVALID_VERIFIER: "TOTP_INVALID_VERIFIER",
|
|
78
|
+
TOTP_MISSING_CODE: "TOTP_MISSING_CODE",
|
|
79
|
+
TOTP_MISSING_FLOW: "TOTP_MISSING_FLOW",
|
|
80
|
+
TOTP_MISSING_VERIFIER: "TOTP_MISSING_VERIFIER",
|
|
81
|
+
TOTP_NO_ENROLLMENT: "TOTP_NO_ENROLLMENT",
|
|
82
|
+
DUPLICATE_INVITE: "DUPLICATE_INVITE",
|
|
83
|
+
DUPLICATE_MEMBERSHIP: "DUPLICATE_MEMBERSHIP",
|
|
84
|
+
INVITE_ALREADY_ACCEPTED: "INVITE_ALREADY_ACCEPTED",
|
|
85
|
+
INVITE_EMAIL_MISMATCH: "INVITE_EMAIL_MISMATCH",
|
|
86
|
+
INVITE_EXPIRED: "INVITE_EXPIRED",
|
|
87
|
+
INVITE_NOT_FOUND: "INVITE_NOT_FOUND",
|
|
88
|
+
INVITE_NOT_PENDING: "INVITE_NOT_PENDING",
|
|
89
|
+
INVALID_ROLE_IDS: "INVALID_ROLE_IDS",
|
|
90
|
+
MISSING_GRANTS: "MISSING_GRANTS",
|
|
91
|
+
NO_ACTIVE_GROUP: "NO_ACTIVE_GROUP",
|
|
92
|
+
NOT_A_MEMBER: "NOT_A_MEMBER",
|
|
93
|
+
GROUP_CONNECTION_DOMAIN_TAKEN: "GROUP_CONNECTION_DOMAIN_TAKEN"
|
|
94
|
+
};
|
|
95
|
+
|
|
96
|
+
//#endregion
|
|
97
|
+
export { ErrorCode };
|
|
98
|
+
//# sourceMappingURL=codes.js.map
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
//#region src/shared/compare.ts
|
|
2
|
+
/**
|
|
3
|
+
* Constant-time comparisons for secret material.
|
|
4
|
+
*
|
|
5
|
+
* @module
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* Constant-time comparison for hex-encoded strings (e.g. SHA-256 hashes).
|
|
9
|
+
*
|
|
10
|
+
* Returns `false` for differing lengths and otherwise compares every character
|
|
11
|
+
* without short-circuiting, so timing does not reveal how much of the input
|
|
12
|
+
* matched.
|
|
13
|
+
*/
|
|
14
|
+
function constantTimeEqualHex(a, b) {
|
|
15
|
+
if (a.length !== b.length) return false;
|
|
16
|
+
let diff = 0;
|
|
17
|
+
for (let i = 0; i < a.length; i++) diff |= a.charCodeAt(i) ^ b.charCodeAt(i);
|
|
18
|
+
return diff === 0;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
//#endregion
|
|
22
|
+
export { constantTimeEqualHex };
|
|
23
|
+
//# sourceMappingURL=compare.js.map
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
//#region src/shared/errors.ts
|
|
2
|
+
/**
|
|
3
|
+
* Sign-in flow error type shared between client and server.
|
|
4
|
+
*
|
|
5
|
+
* @module
|
|
6
|
+
*/
|
|
7
|
+
/** Error raised during a sign-in flow, carrying a machine-readable `code`. */
|
|
8
|
+
var AuthFlowError = class extends Error {
|
|
9
|
+
code;
|
|
10
|
+
constructor({ code, message }) {
|
|
11
|
+
super(message);
|
|
12
|
+
this.code = code;
|
|
13
|
+
this.name = "AuthFlowError";
|
|
14
|
+
}
|
|
15
|
+
};
|
|
16
|
+
/** @internal */
|
|
17
|
+
const authFlowError = (code, message) => new AuthFlowError({
|
|
18
|
+
code,
|
|
19
|
+
message
|
|
20
|
+
});
|
|
21
|
+
|
|
22
|
+
//#endregion
|
|
23
|
+
export { AuthFlowError, authFlowError };
|
|
24
|
+
//# sourceMappingURL=errors.js.map
|