@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,79 @@
|
|
|
1
|
+
import { createArcticOAuthClient, createOAuthProvider } from "../server/oauth/factory.js";
|
|
2
|
+
import { defaultOAuthRedirectUri } from "./redirect.js";
|
|
3
|
+
import { GitHub } from "arctic";
|
|
4
|
+
|
|
5
|
+
//#region src/providers/github.ts
|
|
6
|
+
/**
|
|
7
|
+
* GitHub OAuth provider.
|
|
8
|
+
*
|
|
9
|
+
* ```ts
|
|
10
|
+
* import { github } from "@estifanos-sh/convex-auth/providers/github";
|
|
11
|
+
*
|
|
12
|
+
* github({
|
|
13
|
+
* clientId: env.AUTH_GITHUB_ID!,
|
|
14
|
+
* clientSecret: env.AUTH_GITHUB_SECRET!,
|
|
15
|
+
* })
|
|
16
|
+
* ```
|
|
17
|
+
*
|
|
18
|
+
* @module
|
|
19
|
+
*/
|
|
20
|
+
const DEFAULT_SCOPES = ["user:email"];
|
|
21
|
+
/**
|
|
22
|
+
* Create a GitHub OAuth provider.
|
|
23
|
+
*
|
|
24
|
+
* GitHub is not OIDC by default, so this wrapper fetches the profile and email
|
|
25
|
+
* data for you after the OAuth code exchange.
|
|
26
|
+
*
|
|
27
|
+
* @param config - GitHub OAuth client settings.
|
|
28
|
+
* @returns A configured GitHub OAuth provider for `defineAuth`.
|
|
29
|
+
* @throws {Error} When no callback URL can be derived and `redirectUri` is omitted.
|
|
30
|
+
*
|
|
31
|
+
* @example
|
|
32
|
+
* ```ts
|
|
33
|
+
* import { github } from "@estifanos-sh/convex-auth/providers/github";
|
|
34
|
+
*
|
|
35
|
+
* github({
|
|
36
|
+
* clientId: env.AUTH_GITHUB_ID!,
|
|
37
|
+
* clientSecret: env.AUTH_GITHUB_SECRET!,
|
|
38
|
+
* })
|
|
39
|
+
* ```
|
|
40
|
+
*/
|
|
41
|
+
function github(config) {
|
|
42
|
+
const scopes = config.scopes ?? DEFAULT_SCOPES;
|
|
43
|
+
const createProvider = (redirectUri) => new GitHub(config.clientId, config.clientSecret, config.redirectUri ?? defaultOAuthRedirectUri("github", redirectUri));
|
|
44
|
+
return createOAuthProvider({
|
|
45
|
+
id: "github",
|
|
46
|
+
provider: createArcticOAuthClient(createProvider, { pkce: "never" }),
|
|
47
|
+
scopes,
|
|
48
|
+
accountLinking: config.accountLinking,
|
|
49
|
+
updateProfileOnLogin: config.updateProfileOnLogin,
|
|
50
|
+
profile: async (tokens) => {
|
|
51
|
+
if (!tokens.accessToken) throw new Error("GitHub OAuth response is missing access_token.");
|
|
52
|
+
const accessToken = tokens.accessToken;
|
|
53
|
+
const [userResponse, emailResponse] = await Promise.all([fetch("https://api.github.com/user", { headers: { Authorization: `Bearer ${accessToken}` } }), fetch("https://api.github.com/user/emails", { headers: { Authorization: `Bearer ${accessToken}` } })]);
|
|
54
|
+
if (!userResponse.ok) throw new Error(`GitHub profile request failed: ${userResponse.status}`);
|
|
55
|
+
if (!emailResponse.ok) throw new Error(`GitHub email request failed: ${emailResponse.status}`);
|
|
56
|
+
const user = await userResponse.json();
|
|
57
|
+
const emails = await emailResponse.json();
|
|
58
|
+
const primaryEmail = emails.find((email) => email.primary)?.email ?? emails.find((email) => email.verified)?.email ?? user.email ?? void 0;
|
|
59
|
+
const verifiedEmail = emails.find((email) => email.primary)?.verified ?? emails.find((email) => email.verified)?.verified ?? false;
|
|
60
|
+
const allEmails = emails.filter((e) => typeof e.email === "string").map((e) => ({
|
|
61
|
+
email: e.email,
|
|
62
|
+
primary: e.primary === true,
|
|
63
|
+
verified: e.verified === true
|
|
64
|
+
}));
|
|
65
|
+
return {
|
|
66
|
+
id: String(user.id),
|
|
67
|
+
email: typeof primaryEmail === "string" ? primaryEmail : void 0,
|
|
68
|
+
emails: allEmails.length > 0 ? allEmails : void 0,
|
|
69
|
+
emailVerified: verifiedEmail,
|
|
70
|
+
name: typeof user.name === "string" ? user.name : void 0,
|
|
71
|
+
image: typeof user.avatar_url === "string" ? user.avatar_url : void 0
|
|
72
|
+
};
|
|
73
|
+
}
|
|
74
|
+
});
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
//#endregion
|
|
78
|
+
export { github };
|
|
79
|
+
//# sourceMappingURL=github.js.map
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { OAuthMaterializedConfig } from "../server/types.js";
|
|
2
|
+
|
|
3
|
+
//#region src/providers/google.d.ts
|
|
4
|
+
/**
|
|
5
|
+
* Google OAuth provider.
|
|
6
|
+
*
|
|
7
|
+
* ```ts
|
|
8
|
+
* import { google } from "@estifanos-sh/convex-auth/providers/google";
|
|
9
|
+
*
|
|
10
|
+
* google({
|
|
11
|
+
* clientId: env.AUTH_GOOGLE_ID!,
|
|
12
|
+
* clientSecret: env.AUTH_GOOGLE_SECRET!,
|
|
13
|
+
* })
|
|
14
|
+
* ```
|
|
15
|
+
*
|
|
16
|
+
* @module
|
|
17
|
+
*/
|
|
18
|
+
/** Configuration for the {@link google} provider. */
|
|
19
|
+
interface GoogleConfig {
|
|
20
|
+
/** OAuth client ID from the Google Cloud console. */
|
|
21
|
+
clientId: string;
|
|
22
|
+
/** OAuth client secret from the Google Cloud console. */
|
|
23
|
+
clientSecret: string;
|
|
24
|
+
/** Optional callback URL override. Defaults to the auth site URL plus `/callback/google`. */
|
|
25
|
+
redirectUri?: string;
|
|
26
|
+
/** Optional OAuth scopes. Defaults to `openid profile email`. */
|
|
27
|
+
scopes?: string[];
|
|
28
|
+
/** Account-linking strategy for existing users with matching email addresses. */
|
|
29
|
+
accountLinking?: "verifiedEmail" | "none";
|
|
30
|
+
/** On returning sign-in, refresh `User.name`/`image`/`email` from the new profile. Defaults to `true`. */
|
|
31
|
+
updateProfileOnLogin?: boolean;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Create a Google OAuth provider.
|
|
35
|
+
*
|
|
36
|
+
* Uses the Google OpenID Connect flow and requests `openid profile email` by
|
|
37
|
+
* default.
|
|
38
|
+
*
|
|
39
|
+
* @param config - Google OAuth client settings.
|
|
40
|
+
* @returns A configured Google OAuth provider for `defineAuth`.
|
|
41
|
+
* @throws {Error} When no callback URL can be derived and `redirectUri` is omitted.
|
|
42
|
+
*
|
|
43
|
+
* @example
|
|
44
|
+
* ```ts
|
|
45
|
+
* import { google } from "@estifanos-sh/convex-auth/providers/google";
|
|
46
|
+
*
|
|
47
|
+
* google({
|
|
48
|
+
* clientId: env.AUTH_GOOGLE_ID!,
|
|
49
|
+
* clientSecret: env.AUTH_GOOGLE_SECRET!,
|
|
50
|
+
* })
|
|
51
|
+
* ```
|
|
52
|
+
*/
|
|
53
|
+
declare function google(config: GoogleConfig): OAuthMaterializedConfig;
|
|
54
|
+
//#endregion
|
|
55
|
+
export { GoogleConfig, google };
|
|
56
|
+
//# sourceMappingURL=google.d.ts.map
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import { createArcticOAuthClient, createOAuthProvider } from "../server/oauth/factory.js";
|
|
2
|
+
import { defaultOAuthRedirectUri } from "./redirect.js";
|
|
3
|
+
import { Google } from "arctic";
|
|
4
|
+
|
|
5
|
+
//#region src/providers/google.ts
|
|
6
|
+
/**
|
|
7
|
+
* Google OAuth provider.
|
|
8
|
+
*
|
|
9
|
+
* ```ts
|
|
10
|
+
* import { google } from "@estifanos-sh/convex-auth/providers/google";
|
|
11
|
+
*
|
|
12
|
+
* google({
|
|
13
|
+
* clientId: env.AUTH_GOOGLE_ID!,
|
|
14
|
+
* clientSecret: env.AUTH_GOOGLE_SECRET!,
|
|
15
|
+
* })
|
|
16
|
+
* ```
|
|
17
|
+
*
|
|
18
|
+
* @module
|
|
19
|
+
*/
|
|
20
|
+
const DEFAULT_SCOPES = [
|
|
21
|
+
"openid",
|
|
22
|
+
"profile",
|
|
23
|
+
"email"
|
|
24
|
+
];
|
|
25
|
+
/**
|
|
26
|
+
* Create a Google OAuth provider.
|
|
27
|
+
*
|
|
28
|
+
* Uses the Google OpenID Connect flow and requests `openid profile email` by
|
|
29
|
+
* default.
|
|
30
|
+
*
|
|
31
|
+
* @param config - Google OAuth client settings.
|
|
32
|
+
* @returns A configured Google OAuth provider for `defineAuth`.
|
|
33
|
+
* @throws {Error} When no callback URL can be derived and `redirectUri` is omitted.
|
|
34
|
+
*
|
|
35
|
+
* @example
|
|
36
|
+
* ```ts
|
|
37
|
+
* import { google } from "@estifanos-sh/convex-auth/providers/google";
|
|
38
|
+
*
|
|
39
|
+
* google({
|
|
40
|
+
* clientId: env.AUTH_GOOGLE_ID!,
|
|
41
|
+
* clientSecret: env.AUTH_GOOGLE_SECRET!,
|
|
42
|
+
* })
|
|
43
|
+
* ```
|
|
44
|
+
*/
|
|
45
|
+
function google(config) {
|
|
46
|
+
const scopes = config.scopes ?? DEFAULT_SCOPES;
|
|
47
|
+
const createProvider = (redirectUri) => new Google(config.clientId, config.clientSecret, config.redirectUri ?? defaultOAuthRedirectUri("google", redirectUri));
|
|
48
|
+
return createOAuthProvider({
|
|
49
|
+
id: "google",
|
|
50
|
+
provider: createArcticOAuthClient(createProvider, { pkce: "required" }),
|
|
51
|
+
scopes,
|
|
52
|
+
accountLinking: config.accountLinking,
|
|
53
|
+
updateProfileOnLogin: config.updateProfileOnLogin
|
|
54
|
+
});
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
//#endregion
|
|
58
|
+
export { google };
|
|
59
|
+
//# sourceMappingURL=google.js.map
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { CredentialsAuthorizeResult, CredentialsConfig, CredentialsProvisioning, credentials } from "./credentials.js";
|
|
2
|
+
import { EmailConfig, OAuthProfile, OAuthTokens, PhoneConfig, WebAuthnAttestationEvidence, WebAuthnAttestationPolicy } from "../server/types.js";
|
|
3
|
+
import { AnonymousConfig, anonymous } from "./anonymous.js";
|
|
4
|
+
import { AppleConfig, apple } from "./apple.js";
|
|
5
|
+
import { connection } from "./connection.js";
|
|
6
|
+
import { CustomOAuthAuthorizationConfig, CustomOAuthConfig, CustomOAuthTokenConfig, custom } from "./custom.js";
|
|
7
|
+
import { DeviceConfig, device } from "./device.js";
|
|
8
|
+
import { EmailProviderConfig, email } from "./email.js";
|
|
9
|
+
import { GitHubConfig, github } from "./github.js";
|
|
10
|
+
import { GoogleConfig, google } from "./google.js";
|
|
11
|
+
import { PasswordConfig, password } from "./password.js";
|
|
12
|
+
import { WebAuthnAlgorithm, WebAuthnAuthenticationConfig, WebAuthnConfig, WebAuthnHint, WebAuthnRegistrationConfig, webauthn } from "./webauthn.js";
|
|
13
|
+
import { TotpConfig, totp } from "./totp.js";
|
|
14
|
+
import { MicrosoftConfig, microsoft } from "./microsoft.js";
|
|
15
|
+
import { PhoneProviderConfig, phone } from "./phone.js";
|
|
16
|
+
export { type AnonymousConfig, type AppleConfig, type CredentialsAuthorizeResult, type CredentialsConfig, type CredentialsProvisioning, type CustomOAuthAuthorizationConfig, type CustomOAuthConfig, type CustomOAuthTokenConfig, type DeviceConfig, type EmailConfig, type EmailProviderConfig, type GitHubConfig, type GoogleConfig, type MicrosoftConfig, type OAuthProfile, type OAuthTokens, type PasswordConfig, type PhoneConfig, type PhoneProviderConfig, type TotpConfig, type WebAuthnAlgorithm, type WebAuthnAttestationEvidence, type WebAuthnAttestationPolicy, type WebAuthnAuthenticationConfig, type WebAuthnConfig, type WebAuthnHint, type WebAuthnRegistrationConfig, anonymous, apple, connection, credentials, custom, device, email, github, google, microsoft, password, phone, totp, webauthn };
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { credentials } from "./credentials.js";
|
|
2
|
+
import { anonymous } from "./anonymous.js";
|
|
3
|
+
import { apple } from "./apple.js";
|
|
4
|
+
import { connection } from "./connection.js";
|
|
5
|
+
import { custom } from "./custom.js";
|
|
6
|
+
import { device } from "./device.js";
|
|
7
|
+
import { email } from "./email.js";
|
|
8
|
+
import { github } from "./github.js";
|
|
9
|
+
import { google } from "./google.js";
|
|
10
|
+
import { password } from "./password.js";
|
|
11
|
+
import { webauthn } from "./webauthn.js";
|
|
12
|
+
import { totp } from "./totp.js";
|
|
13
|
+
import { microsoft } from "./microsoft.js";
|
|
14
|
+
import { phone } from "./phone.js";
|
|
15
|
+
|
|
16
|
+
export { anonymous, apple, connection, credentials, custom, device, email, github, google, microsoft, password, phone, totp, webauthn };
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import { OAuthMaterializedConfig } from "../server/types.js";
|
|
2
|
+
|
|
3
|
+
//#region src/providers/microsoft.d.ts
|
|
4
|
+
/**
|
|
5
|
+
* Microsoft OAuth provider.
|
|
6
|
+
*
|
|
7
|
+
* ```ts
|
|
8
|
+
* import { microsoft } from "@estifanos-sh/convex-auth/providers/microsoft";
|
|
9
|
+
*
|
|
10
|
+
* microsoft({
|
|
11
|
+
* tenant: env.AUTH_MICROSOFT_TENANT_ID!,
|
|
12
|
+
* clientId: env.AUTH_MICROSOFT_ID!,
|
|
13
|
+
* clientSecret: env.AUTH_MICROSOFT_SECRET!,
|
|
14
|
+
* })
|
|
15
|
+
* ```
|
|
16
|
+
*
|
|
17
|
+
* @module
|
|
18
|
+
*/
|
|
19
|
+
/** Configuration for the {@link microsoft} provider. */
|
|
20
|
+
interface MicrosoftConfig {
|
|
21
|
+
/** Microsoft Entra tenant ID or domain used to scope the OAuth issuer. */
|
|
22
|
+
tenant: string;
|
|
23
|
+
/** OAuth client ID from Microsoft Entra ID. */
|
|
24
|
+
clientId: string;
|
|
25
|
+
/** OAuth client secret for confidential clients, when required. */
|
|
26
|
+
clientSecret?: string | null;
|
|
27
|
+
/** Optional callback URL override. Defaults to the auth site URL plus `/callback/microsoft`. */
|
|
28
|
+
redirectUri?: string;
|
|
29
|
+
/** Optional OAuth scopes. Defaults to `openid profile email`. */
|
|
30
|
+
scopes?: string[];
|
|
31
|
+
/** Account-linking strategy for existing users with matching email addresses. */
|
|
32
|
+
accountLinking?: "verifiedEmail" | "none";
|
|
33
|
+
/** On returning sign-in, refresh `User.name`/`image`/`email` from the new profile. Defaults to `true`. */
|
|
34
|
+
updateProfileOnLogin?: boolean;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Create a Microsoft OAuth provider.
|
|
38
|
+
*
|
|
39
|
+
* This wrapper enables nonce handling and validates the returned ID token.
|
|
40
|
+
*
|
|
41
|
+
* @param config - Microsoft Entra ID client settings.
|
|
42
|
+
* @returns A configured Microsoft OAuth provider for `defineAuth`.
|
|
43
|
+
* @throws {Error} When no callback URL can be derived and `redirectUri` is omitted.
|
|
44
|
+
*
|
|
45
|
+
* @example
|
|
46
|
+
* ```ts
|
|
47
|
+
* import { microsoft } from "@estifanos-sh/convex-auth/providers/microsoft";
|
|
48
|
+
*
|
|
49
|
+
* microsoft({
|
|
50
|
+
* tenant: env.AUTH_MICROSOFT_TENANT_ID!,
|
|
51
|
+
* clientId: env.AUTH_MICROSOFT_ID!,
|
|
52
|
+
* clientSecret: env.AUTH_MICROSOFT_SECRET!,
|
|
53
|
+
* })
|
|
54
|
+
* ```
|
|
55
|
+
*/
|
|
56
|
+
declare function microsoft(config: MicrosoftConfig): OAuthMaterializedConfig;
|
|
57
|
+
//#endregion
|
|
58
|
+
export { MicrosoftConfig, microsoft };
|
|
59
|
+
//# sourceMappingURL=microsoft.d.ts.map
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
import { createArcticOAuthClient, createOAuthProvider } from "../server/oauth/factory.js";
|
|
2
|
+
import { defaultOAuthRedirectUri } from "./redirect.js";
|
|
3
|
+
import { createRemoteJWKSet, decodeProtectedHeader, jwtVerify } from "jose";
|
|
4
|
+
import { MicrosoftEntraId } from "arctic";
|
|
5
|
+
|
|
6
|
+
//#region src/providers/microsoft.ts
|
|
7
|
+
/**
|
|
8
|
+
* Microsoft OAuth provider.
|
|
9
|
+
*
|
|
10
|
+
* ```ts
|
|
11
|
+
* import { microsoft } from "@estifanos-sh/convex-auth/providers/microsoft";
|
|
12
|
+
*
|
|
13
|
+
* microsoft({
|
|
14
|
+
* tenant: env.AUTH_MICROSOFT_TENANT_ID!,
|
|
15
|
+
* clientId: env.AUTH_MICROSOFT_ID!,
|
|
16
|
+
* clientSecret: env.AUTH_MICROSOFT_SECRET!,
|
|
17
|
+
* })
|
|
18
|
+
* ```
|
|
19
|
+
*
|
|
20
|
+
* @module
|
|
21
|
+
*/
|
|
22
|
+
const DEFAULT_SCOPES = [
|
|
23
|
+
"openid",
|
|
24
|
+
"profile",
|
|
25
|
+
"email"
|
|
26
|
+
];
|
|
27
|
+
/**
|
|
28
|
+
* Create a Microsoft OAuth provider.
|
|
29
|
+
*
|
|
30
|
+
* This wrapper enables nonce handling and validates the returned ID token.
|
|
31
|
+
*
|
|
32
|
+
* @param config - Microsoft Entra ID client settings.
|
|
33
|
+
* @returns A configured Microsoft OAuth provider for `defineAuth`.
|
|
34
|
+
* @throws {Error} When no callback URL can be derived and `redirectUri` is omitted.
|
|
35
|
+
*
|
|
36
|
+
* @example
|
|
37
|
+
* ```ts
|
|
38
|
+
* import { microsoft } from "@estifanos-sh/convex-auth/providers/microsoft";
|
|
39
|
+
*
|
|
40
|
+
* microsoft({
|
|
41
|
+
* tenant: env.AUTH_MICROSOFT_TENANT_ID!,
|
|
42
|
+
* clientId: env.AUTH_MICROSOFT_ID!,
|
|
43
|
+
* clientSecret: env.AUTH_MICROSOFT_SECRET!,
|
|
44
|
+
* })
|
|
45
|
+
* ```
|
|
46
|
+
*/
|
|
47
|
+
function microsoft(config) {
|
|
48
|
+
const scopes = config.scopes ?? DEFAULT_SCOPES;
|
|
49
|
+
const createProvider = (redirectUri) => new MicrosoftEntraId(config.tenant, config.clientId, config.clientSecret ?? null, config.redirectUri ?? defaultOAuthRedirectUri("microsoft", redirectUri));
|
|
50
|
+
const issuer = `https://login.microsoftonline.com/${config.tenant}/v2.0`;
|
|
51
|
+
const jwks = createRemoteJWKSet(new URL(`${issuer}/discovery/v2.0/keys`));
|
|
52
|
+
return createOAuthProvider({
|
|
53
|
+
id: "microsoft",
|
|
54
|
+
provider: createArcticOAuthClient(createProvider, { pkce: "required" }),
|
|
55
|
+
scopes,
|
|
56
|
+
nonce: true,
|
|
57
|
+
accountLinking: config.accountLinking,
|
|
58
|
+
updateProfileOnLogin: config.updateProfileOnLogin,
|
|
59
|
+
validateTokens: async (tokens, ctx) => {
|
|
60
|
+
if (!ctx.nonce) throw new Error("Microsoft OAuth requires a nonce.");
|
|
61
|
+
if (!tokens.idToken) throw new Error("Microsoft OAuth response is missing id_token.");
|
|
62
|
+
const idToken = tokens.idToken;
|
|
63
|
+
const tokenAlg = decodeProtectedHeader(idToken).alg;
|
|
64
|
+
const verification = await (tokenAlg === "HS256" || tokenAlg === "HS384" || tokenAlg === "HS512" ? jwtVerify(idToken, (() => {
|
|
65
|
+
if (!config.clientSecret) throw new Error("Microsoft token uses symmetric signatures but clientSecret is missing.");
|
|
66
|
+
return new TextEncoder().encode(config.clientSecret);
|
|
67
|
+
})(), {
|
|
68
|
+
issuer,
|
|
69
|
+
audience: config.clientId,
|
|
70
|
+
requiredClaims: [
|
|
71
|
+
"iss",
|
|
72
|
+
"sub",
|
|
73
|
+
"aud",
|
|
74
|
+
"exp",
|
|
75
|
+
"iat"
|
|
76
|
+
],
|
|
77
|
+
clockTolerance: 10
|
|
78
|
+
}) : jwtVerify(idToken, jwks, {
|
|
79
|
+
issuer,
|
|
80
|
+
audience: config.clientId,
|
|
81
|
+
requiredClaims: [
|
|
82
|
+
"iss",
|
|
83
|
+
"sub",
|
|
84
|
+
"aud",
|
|
85
|
+
"exp",
|
|
86
|
+
"iat"
|
|
87
|
+
],
|
|
88
|
+
clockTolerance: 10
|
|
89
|
+
}));
|
|
90
|
+
if (verification.payload.nonce !== ctx.nonce) throw new Error("Microsoft OAuth nonce mismatch.");
|
|
91
|
+
if (Array.isArray(verification.payload.aud) && verification.payload.aud.length > 1 && verification.payload.azp !== config.clientId) throw new Error("Microsoft OAuth authorized party does not match client ID.");
|
|
92
|
+
}
|
|
93
|
+
});
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
//#endregion
|
|
97
|
+
export { microsoft };
|
|
98
|
+
//# sourceMappingURL=microsoft.js.map
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import { CredentialsConfig } from "./credentials.js";
|
|
2
|
+
import { ConvexCredentialsConfig, EmailConfig, GenericActionCtxWithAuthConfig } from "../server/types.js";
|
|
3
|
+
import { Value } from "convex/values";
|
|
4
|
+
import { DocumentByName, GenericDataModel, WithoutSystemFields } from "convex/server";
|
|
5
|
+
|
|
6
|
+
//#region src/providers/password.d.ts
|
|
7
|
+
/** Configuration for the {@link password} provider. */
|
|
8
|
+
interface PasswordConfig<DataModel extends GenericDataModel> {
|
|
9
|
+
/**
|
|
10
|
+
* Uniquely identifies the provider, allowing multiple password providers.
|
|
11
|
+
*/
|
|
12
|
+
id?: string;
|
|
13
|
+
/**
|
|
14
|
+
* Perform checks on provided params and customize the user information
|
|
15
|
+
* stored after sign up, including email normalization.
|
|
16
|
+
*
|
|
17
|
+
* Called for every flow.
|
|
18
|
+
*/
|
|
19
|
+
profile?: (params: Record<string, Value | undefined>, ctx: GenericActionCtxWithAuthConfig<DataModel>) => WithoutSystemFields<DocumentByName<DataModel, "User">> & {
|
|
20
|
+
email: string;
|
|
21
|
+
};
|
|
22
|
+
/**
|
|
23
|
+
* Performs custom validation on a password during `signUp`, `verify`
|
|
24
|
+
* (when `newPassword` is set), and `change`.
|
|
25
|
+
*
|
|
26
|
+
* Default: non-empty, length >= 8.
|
|
27
|
+
*
|
|
28
|
+
* Throw an `Error` to reject the password.
|
|
29
|
+
*/
|
|
30
|
+
validatePasswordRequirements?: (password: string) => void;
|
|
31
|
+
/**
|
|
32
|
+
* Hashing and verification functions. Defaults to scrypt.
|
|
33
|
+
*/
|
|
34
|
+
crypto?: CredentialsConfig["crypto"];
|
|
35
|
+
/**
|
|
36
|
+
* Email provider for the `reset` flow. Issues OTPs that the `verify` flow
|
|
37
|
+
* accepts when `newPassword` is included.
|
|
38
|
+
*/
|
|
39
|
+
reset?: EmailConfig | PasswordEmailProviderFactory;
|
|
40
|
+
/**
|
|
41
|
+
* Email provider for post-signup email confirmation. Issues OTPs that the
|
|
42
|
+
* `verify` flow accepts when `newPassword` is omitted.
|
|
43
|
+
*/
|
|
44
|
+
verify?: EmailConfig | PasswordEmailProviderFactory;
|
|
45
|
+
}
|
|
46
|
+
type PasswordEmailProviderFactory = () => EmailConfig;
|
|
47
|
+
/**
|
|
48
|
+
* Email and password authentication provider.
|
|
49
|
+
*
|
|
50
|
+
* Passwords are hashed with scrypt by default. Customize via `crypto`.
|
|
51
|
+
*
|
|
52
|
+
* Email verification is opt-in via the `verify` option. Password reset is
|
|
53
|
+
* opt-in via the `reset` option (typically the same email provider).
|
|
54
|
+
*
|
|
55
|
+
* @example
|
|
56
|
+
* ```ts
|
|
57
|
+
* password()
|
|
58
|
+
* password({ verify: myEmailProvider, reset: myEmailProvider })
|
|
59
|
+
* ```
|
|
60
|
+
*
|
|
61
|
+
* @typeParam DataModel - The Convex data model used by the auth context.
|
|
62
|
+
* @param config - Password flow hooks and optional verification providers.
|
|
63
|
+
* @returns A configured password provider for `defineAuth`.
|
|
64
|
+
*/
|
|
65
|
+
declare function password<DataModel extends GenericDataModel = GenericDataModel>(config?: PasswordConfig<DataModel>): ConvexCredentialsConfig;
|
|
66
|
+
//#endregion
|
|
67
|
+
export { PasswordConfig, password };
|
|
68
|
+
//# sourceMappingURL=password.d.ts.map
|