@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,94 @@
|
|
|
1
|
+
//#region src/server/cache/context.ts
|
|
2
|
+
/**
|
|
3
|
+
* Per-execution cache for Convex auth component reads.
|
|
4
|
+
*
|
|
5
|
+
* Convex components are invoked across a function boundary — every
|
|
6
|
+
* `auth.user.get`, `auth.member.get`, `getGroupConnection`, etc. is
|
|
7
|
+
* `ctx.runQuery(components.auth.…)`. Each crossing costs ~10–30ms.
|
|
8
|
+
* Inside a single handler we often fetch the same entity several times
|
|
9
|
+
* (outer `auth.ctx()` resolver + inner `auth.member.assert` calls +
|
|
10
|
+
* Connection admin authorizer target resolution + the handler body itself).
|
|
11
|
+
*
|
|
12
|
+
* This module attaches a `Map<string, Promise<unknown>>` to the ctx via
|
|
13
|
+
* a Symbol so that concurrent and repeated reads of the same key within
|
|
14
|
+
* a single function invocation share one component round-trip. The cache
|
|
15
|
+
* lives for the lifetime of the ctx object and dies with it.
|
|
16
|
+
*
|
|
17
|
+
* Semantics:
|
|
18
|
+
* - Keys are namespaced strings (`user:abc`, `group:xyz`, etc.).
|
|
19
|
+
* - Promises are stored — two concurrent callers dedup correctly.
|
|
20
|
+
* - Rejected promises are evicted so a retry can succeed.
|
|
21
|
+
* - Writes do **not** automatically invalidate reads; this matches the
|
|
22
|
+
* Convex transactional model where a mutation sees its own writes only
|
|
23
|
+
* on subsequent calls. If a handler writes and then re-reads an entity
|
|
24
|
+
* expecting fresh data, it must call {@link invalidateCtxCache} with the
|
|
25
|
+
* appropriate key (or key prefix).
|
|
26
|
+
*
|
|
27
|
+
* @module
|
|
28
|
+
* @internal
|
|
29
|
+
*/
|
|
30
|
+
const CACHE_SYMBOL = Symbol.for("@estifanos-sh/convex-auth/ctxCache");
|
|
31
|
+
/**
|
|
32
|
+
* Get (or lazily create) the cache store attached to a Convex ctx.
|
|
33
|
+
* @internal
|
|
34
|
+
*/
|
|
35
|
+
function getCtxCache(ctx) {
|
|
36
|
+
const c = ctx;
|
|
37
|
+
let store = c[CACHE_SYMBOL];
|
|
38
|
+
if (store === void 0) {
|
|
39
|
+
store = /* @__PURE__ */ new Map();
|
|
40
|
+
c[CACHE_SYMBOL] = store;
|
|
41
|
+
}
|
|
42
|
+
return store;
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Check whether the ctx cache already holds an entry under `key`.
|
|
46
|
+
*
|
|
47
|
+
* Useful before a batched fetch: callers can short-circuit the RPC if every
|
|
48
|
+
* needed ID is already cached, or compute the exact subset to request.
|
|
49
|
+
*
|
|
50
|
+
* @internal
|
|
51
|
+
*/
|
|
52
|
+
function ctxCacheHas(ctx, key) {
|
|
53
|
+
return getCtxCache(ctx).has(key);
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Memoize an async read against the ctx cache.
|
|
57
|
+
*
|
|
58
|
+
* The returned promise is cached under `key`; concurrent callers get the
|
|
59
|
+
* same in-flight promise. If the promise rejects, the entry is removed so a
|
|
60
|
+
* later retry can succeed.
|
|
61
|
+
*
|
|
62
|
+
* @internal
|
|
63
|
+
*/
|
|
64
|
+
function cached(ctx, key, fn) {
|
|
65
|
+
const store = getCtxCache(ctx);
|
|
66
|
+
const hit = store.get(key);
|
|
67
|
+
if (hit !== void 0) return hit;
|
|
68
|
+
const promise = fn().catch((err) => {
|
|
69
|
+
if (store.get(key) === promise) store.delete(key);
|
|
70
|
+
throw err;
|
|
71
|
+
});
|
|
72
|
+
store.set(key, promise);
|
|
73
|
+
return promise;
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Drop a single cache entry (or all entries matching a prefix).
|
|
77
|
+
*
|
|
78
|
+
* Use this from mutations that write to an entity the cache already holds.
|
|
79
|
+
* Passing no prefix clears the entire cache.
|
|
80
|
+
*
|
|
81
|
+
* @internal
|
|
82
|
+
*/
|
|
83
|
+
function invalidateCtxCache(ctx, keyPrefix) {
|
|
84
|
+
const store = getCtxCache(ctx);
|
|
85
|
+
if (keyPrefix === void 0 || keyPrefix === "") {
|
|
86
|
+
store.clear();
|
|
87
|
+
return;
|
|
88
|
+
}
|
|
89
|
+
for (const key of store.keys()) if (key === keyPrefix || key.startsWith(`${keyPrefix}:`)) store.delete(key);
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
//#endregion
|
|
93
|
+
export { cached, ctxCacheHas, invalidateCtxCache };
|
|
94
|
+
//# sourceMappingURL=context.js.map
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { ComponentApi } from "../../component/_generated/component.js";
|
|
2
|
+
|
|
3
|
+
//#region src/server/component/api.d.ts
|
|
4
|
+
/**
|
|
5
|
+
* The auth component's API surface — the full generated `ComponentApi<"auth">`,
|
|
6
|
+
* with argument and return validators intact. Nesting and function kinds come
|
|
7
|
+
* from codegen, so it never drifts from the component. The loose
|
|
8
|
+
* `runQuery`/`runMutation` casts in the generic server layer are a local
|
|
9
|
+
* convenience at those call sites, not an erasure baked into this type.
|
|
10
|
+
*/
|
|
11
|
+
type AuthComponentApi = ComponentApi<"auth">;
|
|
12
|
+
//#endregion
|
|
13
|
+
export { AuthComponentApi };
|
|
14
|
+
//# sourceMappingURL=api.d.ts.map
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
//#region src/server/component/api.ts
|
|
2
|
+
/**
|
|
3
|
+
* Narrow an overloaded `get` result — `Doc | (Doc | null)[] | null` — to a
|
|
4
|
+
* single `Doc | null`. Use at call sites that pass a single selector to a
|
|
5
|
+
* `get` whose return validator unions the single and batch shapes.
|
|
6
|
+
*/
|
|
7
|
+
function single(result) {
|
|
8
|
+
return Array.isArray(result) ? result[0] ?? null : result;
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
//#endregion
|
|
12
|
+
export { single };
|
|
13
|
+
//# sourceMappingURL=api.js.map
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { GenericActionCtx, GenericDataModel } from "convex/server";
|
|
2
|
+
|
|
3
|
+
//#region src/server/component/context.d.ts
|
|
4
|
+
type RunCtx = GenericActionCtx<GenericDataModel>;
|
|
5
|
+
type ComponentReadCtx = {
|
|
6
|
+
runQuery: RunCtx["runQuery"];
|
|
7
|
+
};
|
|
8
|
+
type ComponentCtx = ComponentReadCtx & {
|
|
9
|
+
runMutation: RunCtx["runMutation"];
|
|
10
|
+
};
|
|
11
|
+
type ComponentActionCtx = ComponentCtx & {
|
|
12
|
+
runAction: RunCtx["runAction"];
|
|
13
|
+
};
|
|
14
|
+
//#endregion
|
|
15
|
+
export { ComponentActionCtx, ComponentCtx, ComponentReadCtx };
|
|
16
|
+
//# sourceMappingURL=context.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { };
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
//#region src/server/component/factor/db.ts
|
|
2
|
+
/**
|
|
3
|
+
* Atomically consume a PKCE verifier by ID across the component boundary,
|
|
4
|
+
* returning the consumed doc to the single winner and `null` otherwise (unknown
|
|
5
|
+
* / expired / signature mismatch / already consumed). Replaces the racy
|
|
6
|
+
* read-then-remove so concurrent passkey/TOTP ceremonies cannot each consume the
|
|
7
|
+
* same verifier and mint duplicate sessions. When `expectedSignature` is given,
|
|
8
|
+
* the row is consumed only if its signature matches (a mismatch leaves it
|
|
9
|
+
* intact).
|
|
10
|
+
*/
|
|
11
|
+
async function consumeVerifierById(ctx, verifierId, expectedSignature) {
|
|
12
|
+
return await ctx.runMutation(ctx.auth.config.component.token.pkce.consume, {
|
|
13
|
+
id: verifierId,
|
|
14
|
+
...expectedSignature === void 0 ? {} : { expectedSignature }
|
|
15
|
+
});
|
|
16
|
+
}
|
|
17
|
+
/** Fetch a user's verified TOTP factor across the component boundary. */
|
|
18
|
+
async function queryTotpVerifiedByUserId(ctx, userId) {
|
|
19
|
+
return await ctx.runQuery(ctx.auth.config.component.factor.totp.get, { verifiedForUserId: userId });
|
|
20
|
+
}
|
|
21
|
+
/** Create a registration challenge and load registration context in one component transaction. */
|
|
22
|
+
async function mutatePasskeyBeginRegistration(ctx, args) {
|
|
23
|
+
return await ctx.runMutation(ctx.auth.config.component.factor.passkey.beginRegistration, args);
|
|
24
|
+
}
|
|
25
|
+
/** Create a sign-in challenge and resolve its optional email allow-list atomically. */
|
|
26
|
+
async function mutatePasskeyBeginSignIn(ctx, args) {
|
|
27
|
+
return await ctx.runMutation(ctx.auth.config.component.factor.passkey.beginSignIn, args);
|
|
28
|
+
}
|
|
29
|
+
/** Consume a WebAuthn challenge and load its credential in one component transaction. */
|
|
30
|
+
async function mutatePasskeyBeginAssertion(ctx, args) {
|
|
31
|
+
return await ctx.runMutation(ctx.auth.config.component.factor.passkey.beginAssertion, {
|
|
32
|
+
verifierId: args.verifierId,
|
|
33
|
+
expectedChallenge: args.expectedChallenge,
|
|
34
|
+
credentialId: args.credentialId
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
/** Store a verified registration and create its session in one component transaction. */
|
|
38
|
+
async function mutatePasskeyCompleteRegistration(ctx, args) {
|
|
39
|
+
return await ctx.runMutation(ctx.auth.config.component.factor.passkey.completeRegistration, args);
|
|
40
|
+
}
|
|
41
|
+
/** Atomically accept a verified assertion and create its session. */
|
|
42
|
+
async function mutatePasskeyCompleteAssertion(ctx, args) {
|
|
43
|
+
return await ctx.runMutation(ctx.auth.config.component.factor.passkey.completeAssertion, args);
|
|
44
|
+
}
|
|
45
|
+
/** Insert a device-authorization record across the component boundary; returns its ID. */
|
|
46
|
+
async function mutateDeviceInsert(ctx, args) {
|
|
47
|
+
return await ctx.runMutation(ctx.auth.config.component.factor.device.create, args);
|
|
48
|
+
}
|
|
49
|
+
/** Fetch a device-authorization record by code hash across the component boundary. */
|
|
50
|
+
async function queryDeviceByCodeHash(ctx, deviceCodeHash) {
|
|
51
|
+
return await ctx.runQuery(ctx.auth.config.component.factor.device.get, { deviceCodeHash });
|
|
52
|
+
}
|
|
53
|
+
/** Fetch a device-authorization record by user code across the component boundary. */
|
|
54
|
+
async function queryDeviceByUserCode(ctx, userCode) {
|
|
55
|
+
return await ctx.runQuery(ctx.auth.config.component.factor.device.get, { userCode });
|
|
56
|
+
}
|
|
57
|
+
/** Update a device-authorization record's `lastPolledAt` across the component boundary. */
|
|
58
|
+
async function mutateDeviceUpdateLastPolled(ctx, deviceId, lastPolledAt) {
|
|
59
|
+
await ctx.runMutation(ctx.auth.config.component.factor.device.update, {
|
|
60
|
+
id: deviceId,
|
|
61
|
+
patch: { lastPolledAt }
|
|
62
|
+
});
|
|
63
|
+
}
|
|
64
|
+
/** Remove a device-authorization record by ID across the component boundary. */
|
|
65
|
+
async function mutateDeviceRemove(ctx, deviceId) {
|
|
66
|
+
await ctx.runMutation(ctx.auth.config.component.factor.device.remove, { id: deviceId });
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
//#endregion
|
|
70
|
+
export { consumeVerifierById, mutateDeviceInsert, mutateDeviceRemove, mutateDeviceUpdateLastPolled, mutatePasskeyBeginAssertion, mutatePasskeyBeginRegistration, mutatePasskeyBeginSignIn, mutatePasskeyCompleteAssertion, mutatePasskeyCompleteRegistration, queryDeviceByCodeHash, queryDeviceByUserCode, queryTotpVerifiedByUserId };
|
|
71
|
+
//# sourceMappingURL=db.js.map
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
import { envOptionalString } from "./env.js";
|
|
2
|
+
import { normalizeAuthPath } from "./url.js";
|
|
3
|
+
|
|
4
|
+
//#region src/server/config.ts
|
|
5
|
+
/**
|
|
6
|
+
* Resolve raw provider configs into materialized form and apply defaults.
|
|
7
|
+
*/
|
|
8
|
+
function configDefaults(config_) {
|
|
9
|
+
const config = materializeAndDefaultProviders(config_);
|
|
10
|
+
const extraProviders = config.providers.filter((p) => p.type === "credentials").map((p) => p.extraProviders).flat().filter((p) => p !== void 0);
|
|
11
|
+
return {
|
|
12
|
+
...config,
|
|
13
|
+
path: normalizeAuthPath(config.path),
|
|
14
|
+
permissions: normalizePermissionsConfig(config.permissions),
|
|
15
|
+
telemetry: normalizeTelemetryConfig(config.telemetry),
|
|
16
|
+
extraProviders: materializeProviders(extraProviders)
|
|
17
|
+
};
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* List available provider IDs for error messages.
|
|
21
|
+
*/
|
|
22
|
+
function listAvailableProviders(config, allowExtraProviders) {
|
|
23
|
+
const availableProviders = config.providers.concat(allowExtraProviders ? config.extraProviders : []).map((provider) => `\`${provider.id}\``);
|
|
24
|
+
return availableProviders.length > 0 ? availableProviders.join(", ") : "no providers have been configured";
|
|
25
|
+
}
|
|
26
|
+
function materializeProviders(providers) {
|
|
27
|
+
const config = {
|
|
28
|
+
providers,
|
|
29
|
+
component: {}
|
|
30
|
+
};
|
|
31
|
+
materializeAndDefaultProviders(config);
|
|
32
|
+
return config.providers;
|
|
33
|
+
}
|
|
34
|
+
function materializeProviderConfig(raw) {
|
|
35
|
+
const resolved = typeof raw === "function" ? raw() : raw;
|
|
36
|
+
return "options" in resolved && typeof resolved.options === "object" && resolved.options !== null ? {
|
|
37
|
+
...resolved,
|
|
38
|
+
...resolved.options
|
|
39
|
+
} : resolved;
|
|
40
|
+
}
|
|
41
|
+
function materializeAndDefaultProviders(config_) {
|
|
42
|
+
const allProviders = [];
|
|
43
|
+
for (const raw of config_.providers) allProviders.push(materializeProviderConfig(raw));
|
|
44
|
+
const config = {
|
|
45
|
+
...config_,
|
|
46
|
+
providers: allProviders
|
|
47
|
+
};
|
|
48
|
+
config.providers.forEach((provider) => {
|
|
49
|
+
if (provider.type === "phone") {
|
|
50
|
+
const ID = provider.id.toUpperCase().replace(/-/g, "_");
|
|
51
|
+
provider.apiKey ??= envOptionalString(`AUTH_${ID}_KEY`);
|
|
52
|
+
}
|
|
53
|
+
});
|
|
54
|
+
return config;
|
|
55
|
+
}
|
|
56
|
+
function normalizePermissionsConfig(permissions) {
|
|
57
|
+
const declaredGrants = permissions?.grants;
|
|
58
|
+
return {
|
|
59
|
+
grants: Array.from(new Set(declaredGrants ?? [])).sort(),
|
|
60
|
+
roles: Object.fromEntries(Object.entries(permissions?.roles ?? {}).map(([roleId, role]) => [roleId, {
|
|
61
|
+
...role.label ? { label: role.label } : {},
|
|
62
|
+
grants: Array.from(new Set(role.grants)).sort()
|
|
63
|
+
}]))
|
|
64
|
+
};
|
|
65
|
+
}
|
|
66
|
+
function normalizeTelemetryConfig(telemetry) {
|
|
67
|
+
const normalized = {
|
|
68
|
+
includeIdentity: telemetry?.includeIdentity ?? "none",
|
|
69
|
+
identityFields: telemetry?.identityFields ?? {},
|
|
70
|
+
...telemetry?.hashIdentity ? { hashIdentity: telemetry.hashIdentity } : {}
|
|
71
|
+
};
|
|
72
|
+
if (normalized.includeIdentity === "hashed" && normalized.hashIdentity === void 0) throw new Error("Convex Auth telemetry with `includeIdentity: \"hashed\"` requires a `hashIdentity` function.");
|
|
73
|
+
return normalized;
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
//#endregion
|
|
77
|
+
export { configDefaults, listAvailableProviders };
|
|
78
|
+
//# sourceMappingURL=config.js.map
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
import { asRecord } from "./shared.js";
|
|
2
|
+
|
|
3
|
+
//#region src/server/connection/config.ts
|
|
4
|
+
const getProtocolConfig = (config, protocol) => {
|
|
5
|
+
const base = asRecord(config);
|
|
6
|
+
const direct = base?.[protocol];
|
|
7
|
+
const viaProtocols = asRecord(base?.protocols)?.[protocol];
|
|
8
|
+
return asRecord(direct) ?? asRecord(viaProtocols) ?? {};
|
|
9
|
+
};
|
|
10
|
+
/** @internal */
|
|
11
|
+
function getOidcConfig(config) {
|
|
12
|
+
return getProtocolConfig(config, "oidc");
|
|
13
|
+
}
|
|
14
|
+
/** @internal */
|
|
15
|
+
function getPublicOidcConfig(config) {
|
|
16
|
+
const oidc = getOidcConfig(config);
|
|
17
|
+
if (!oidc.client) return oidc;
|
|
18
|
+
return {
|
|
19
|
+
...oidc,
|
|
20
|
+
client: {
|
|
21
|
+
...oidc.client,
|
|
22
|
+
secret: void 0
|
|
23
|
+
}
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
/** @internal */
|
|
27
|
+
function withOidcSecretState(config, hasClientSecret) {
|
|
28
|
+
return {
|
|
29
|
+
...config,
|
|
30
|
+
hasClientSecret
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
/** @internal */
|
|
34
|
+
function getSamlConfig(config) {
|
|
35
|
+
return getProtocolConfig(config, "saml");
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* SAML config with the service-provider private-key material stripped, parallel
|
|
39
|
+
* to `getPublicOidcConfig` stripping the OIDC client secret. The SP signing/
|
|
40
|
+
* decryption keys are stored in config but must never leave the server.
|
|
41
|
+
* @internal
|
|
42
|
+
*/
|
|
43
|
+
function getPublicSamlConfig(config) {
|
|
44
|
+
const saml = getSamlConfig(config);
|
|
45
|
+
if (Array.isArray(saml)) return {};
|
|
46
|
+
const sp = saml.serviceProvider;
|
|
47
|
+
if (sp === void 0 || sp === null) return saml;
|
|
48
|
+
if (Array.isArray(sp) || typeof sp !== "object") return {
|
|
49
|
+
...saml,
|
|
50
|
+
serviceProvider: void 0
|
|
51
|
+
};
|
|
52
|
+
return {
|
|
53
|
+
...saml,
|
|
54
|
+
serviceProvider: {
|
|
55
|
+
...sp,
|
|
56
|
+
privateKey: void 0,
|
|
57
|
+
privateKeyPass: void 0,
|
|
58
|
+
encPrivateKey: void 0,
|
|
59
|
+
encPrivateKeyPass: void 0
|
|
60
|
+
}
|
|
61
|
+
};
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Redact every protocol secret from a whole connection config before it is
|
|
65
|
+
* returned to a client: the OIDC client secret and the SAML SP private-key
|
|
66
|
+
* material. Used by the connection read facade (`get`/`list`) which would
|
|
67
|
+
* otherwise hand back the raw stored config.
|
|
68
|
+
* @internal
|
|
69
|
+
*/
|
|
70
|
+
function getPublicConnectionConfig(config) {
|
|
71
|
+
const base = asRecord(config);
|
|
72
|
+
if (base === null || Array.isArray(base)) return {};
|
|
73
|
+
const next = { ...base };
|
|
74
|
+
const protocols = asRecord(base.protocols);
|
|
75
|
+
if (protocols === null || Array.isArray(protocols)) delete next.protocols;
|
|
76
|
+
else next.protocols = {
|
|
77
|
+
...protocols,
|
|
78
|
+
...protocols.oidc !== void 0 ? { oidc: getPublicOidcConfig(config) } : {},
|
|
79
|
+
...protocols.saml !== void 0 ? { saml: getPublicSamlConfig(config) } : {}
|
|
80
|
+
};
|
|
81
|
+
if (base.oidc !== void 0) next.oidc = getPublicOidcConfig(config);
|
|
82
|
+
if (base.saml !== void 0) next.saml = getPublicSamlConfig(config);
|
|
83
|
+
return next;
|
|
84
|
+
}
|
|
85
|
+
/** @internal */
|
|
86
|
+
function upsertProtocolConfig(config, protocol, protocolConfig) {
|
|
87
|
+
const base = asRecord(config) ?? {};
|
|
88
|
+
const protocols = asRecord(base.protocols) ?? {};
|
|
89
|
+
protocols[protocol] = {
|
|
90
|
+
...asRecord(protocols[protocol]),
|
|
91
|
+
...protocolConfig
|
|
92
|
+
};
|
|
93
|
+
return {
|
|
94
|
+
...base,
|
|
95
|
+
protocols
|
|
96
|
+
};
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
//#endregion
|
|
100
|
+
export { getOidcConfig, getPublicConnectionConfig, getPublicOidcConfig, getPublicSamlConfig, getSamlConfig, upsertProtocolConfig, withOidcSecretState };
|
|
101
|
+
//# sourceMappingURL=config.js.map
|