@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.
Files changed (387) hide show
  1. package/README.md +52 -0
  2. package/dist/_generated/component.d.ts +2981 -0
  3. package/dist/bin.js +7194 -0
  4. package/dist/browser/index.d.ts +22 -0
  5. package/dist/browser/index.js +61 -0
  6. package/dist/browser/locks.js +20 -0
  7. package/dist/browser/navigation.js +14 -0
  8. package/dist/browser/runtime.js +90 -0
  9. package/dist/browser/webauthn.js +99 -0
  10. package/dist/client/core/types.d.ts +615 -0
  11. package/dist/client/core/types.js +23 -0
  12. package/dist/client/errors.js +30 -0
  13. package/dist/client/factors/device.js +100 -0
  14. package/dist/client/factors/totp.js +111 -0
  15. package/dist/client/factors/webauthn.js +69 -0
  16. package/dist/client/index.d.ts +60 -0
  17. package/dist/client/index.js +976 -0
  18. package/dist/client/runtime/invite.js +50 -0
  19. package/dist/client/runtime/mutex.js +25 -0
  20. package/dist/client/runtime/proxy.js +75 -0
  21. package/dist/client/runtime/storage.js +65 -0
  22. package/dist/component/_generated/api.js +26 -0
  23. package/dist/component/_generated/component.d.ts +2981 -0
  24. package/dist/component/_generated/component.js +1 -0
  25. package/dist/component/_generated/dataModel.js +1 -0
  26. package/dist/component/_generated/server.js +74 -0
  27. package/dist/component/account.js +197 -0
  28. package/dist/component/connection/audit.js +152 -0
  29. package/dist/component/connection/cache.js +205 -0
  30. package/dist/component/connection/domain/verification.js +63 -0
  31. package/dist/component/connection/domain.js +108 -0
  32. package/dist/component/connection/saml/assertion.js +41 -0
  33. package/dist/component/connection/saml/request.js +61 -0
  34. package/dist/component/connection/scim/config.js +55 -0
  35. package/dist/component/connection/scim/identity.js +162 -0
  36. package/dist/component/connection/secret.js +65 -0
  37. package/dist/component/connection/webhook/delivery.js +396 -0
  38. package/dist/component/connection/webhook/endpoint.js +77 -0
  39. package/dist/component/connection.js +204 -0
  40. package/dist/component/convex.config.d.ts +7 -0
  41. package/dist/component/convex.config.js +15 -0
  42. package/dist/component/crons.js +27 -0
  43. package/dist/component/event.js +341 -0
  44. package/dist/component/factor/device.js +141 -0
  45. package/dist/component/factor/passkey.js +385 -0
  46. package/dist/component/factor/totp.js +253 -0
  47. package/dist/component/functions.js +3 -0
  48. package/dist/component/group/active.js +63 -0
  49. package/dist/component/group/invite.js +300 -0
  50. package/dist/component/group/member.js +188 -0
  51. package/dist/component/group.js +431 -0
  52. package/dist/component/http.js +9 -0
  53. package/dist/component/index.d.ts +5 -0
  54. package/dist/component/index.js +3 -0
  55. package/dist/component/limits.js +103 -0
  56. package/dist/component/maintenance.js +205 -0
  57. package/dist/component/migrations.js +277 -0
  58. package/dist/component/model.d.ts +384 -0
  59. package/dist/component/model.js +709 -0
  60. package/dist/component/modules.js +53 -0
  61. package/dist/component/oauth/client.js +196 -0
  62. package/dist/component/oauth/code.js +97 -0
  63. package/dist/component/oauth/refresh.js +230 -0
  64. package/dist/component/schema.d.ts +1530 -0
  65. package/dist/component/schema.js +401 -0
  66. package/dist/component/session.js +134 -0
  67. package/dist/component/token/pkce.js +121 -0
  68. package/dist/component/token/refresh.js +189 -0
  69. package/dist/component/token/verification.js +155 -0
  70. package/dist/component/user/email.js +147 -0
  71. package/dist/component/user/key.js +273 -0
  72. package/dist/component/user.js +173 -0
  73. package/dist/core/index.d.ts +531 -0
  74. package/dist/core/index.js +81 -0
  75. package/dist/expo/index.d.ts +43 -0
  76. package/dist/expo/index.js +131 -0
  77. package/dist/expo/webauthn.js +88 -0
  78. package/dist/node_modules/.pnpm/@opentelemetry_api-logs@0.214.0/node_modules/@opentelemetry/api-logs/build/src/NoopLogger.d.ts +2 -0
  79. package/dist/node_modules/.pnpm/@opentelemetry_api-logs@0.214.0/node_modules/@opentelemetry/api-logs/build/src/api/logs.d.ts +3 -0
  80. package/dist/node_modules/.pnpm/@opentelemetry_api-logs@0.214.0/node_modules/@opentelemetry/api-logs/build/src/index.d.ts +7 -0
  81. package/dist/node_modules/.pnpm/@opentelemetry_api-logs@0.214.0/node_modules/@opentelemetry/api-logs/build/src/types/AnyValue.d.ts +21 -0
  82. package/dist/node_modules/.pnpm/@opentelemetry_api-logs@0.214.0/node_modules/@opentelemetry/api-logs/build/src/types/LogRecord.d.ts +36 -0
  83. package/dist/node_modules/.pnpm/@opentelemetry_api-logs@0.214.0/node_modules/@opentelemetry/api-logs/build/src/types/Logger.d.ts +1 -0
  84. package/dist/node_modules/.pnpm/@opentelemetry_api-logs@0.214.0/node_modules/@opentelemetry/api-logs/build/src/types/LoggerOptions.d.ts +1 -0
  85. package/dist/node_modules/.pnpm/@opentelemetry_api-logs@0.214.0/node_modules/@opentelemetry/api-logs/build/src/types/LoggerProvider.d.ts +2 -0
  86. 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
  87. 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
  88. 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
  89. 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
  90. 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
  91. 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
  92. 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
  93. 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
  94. 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
  95. 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
  96. 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
  97. 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
  98. 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
  99. 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
  100. 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
  101. 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
  102. 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
  103. 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
  104. 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
  105. 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
  106. 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
  107. 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
  108. 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
  109. 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
  110. 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
  111. 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
  112. 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
  113. 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
  114. 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
  115. 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
  116. 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
  117. 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
  118. 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
  119. 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
  120. 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
  121. 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
  122. 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
  123. 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
  124. 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
  125. 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
  126. 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
  127. 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
  128. 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
  129. 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
  130. 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
  131. 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
  132. 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
  133. 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
  134. 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
  135. 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
  136. 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
  137. 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
  138. 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
  139. 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
  140. 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
  141. 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
  142. 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
  143. 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
  144. 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
  145. 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
  146. 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
  147. 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
  148. 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
  149. 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
  150. 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
  151. 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
  152. 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
  153. 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
  154. 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
  155. 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
  156. 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
  157. 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
  158. 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
  159. 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
  160. 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
  161. 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
  162. 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
  163. 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
  164. package/dist/otel.d.ts +73 -0
  165. package/dist/otel.js +82 -0
  166. package/dist/permissions/index.d.ts +81 -0
  167. package/dist/permissions/index.js +18 -0
  168. package/dist/providers/anonymous.d.ts +35 -0
  169. package/dist/providers/anonymous.js +40 -0
  170. package/dist/providers/apple.d.ts +61 -0
  171. package/dist/providers/apple.js +57 -0
  172. package/dist/providers/connection.d.ts +30 -0
  173. package/dist/providers/connection.js +33 -0
  174. package/dist/providers/credentials.d.ts +78 -0
  175. package/dist/providers/credentials.js +31 -0
  176. package/dist/providers/custom.d.ts +96 -0
  177. package/dist/providers/custom.js +108 -0
  178. package/dist/providers/device.d.ts +33 -0
  179. package/dist/providers/device.js +30 -0
  180. package/dist/providers/email.d.ts +45 -0
  181. package/dist/providers/email.js +52 -0
  182. package/dist/providers/github.d.ts +56 -0
  183. package/dist/providers/github.js +79 -0
  184. package/dist/providers/google.d.ts +56 -0
  185. package/dist/providers/google.js +59 -0
  186. package/dist/providers/index.d.ts +16 -0
  187. package/dist/providers/index.js +16 -0
  188. package/dist/providers/microsoft.d.ts +59 -0
  189. package/dist/providers/microsoft.js +98 -0
  190. package/dist/providers/password.d.ts +68 -0
  191. package/dist/providers/password.js +348 -0
  192. package/dist/providers/phone.d.ts +33 -0
  193. package/dist/providers/phone.js +35 -0
  194. package/dist/providers/redirect.d.ts +1 -0
  195. package/dist/providers/redirect.js +11 -0
  196. package/dist/providers/totp.d.ts +29 -0
  197. package/dist/providers/totp.js +29 -0
  198. package/dist/providers/webauthn/attestation.d.ts +42 -0
  199. package/dist/providers/webauthn/attestation.js +167 -0
  200. package/dist/providers/webauthn.d.ts +83 -0
  201. package/dist/providers/webauthn.js +57 -0
  202. package/dist/react/index.d.ts +55 -0
  203. package/dist/react/index.js +80 -0
  204. package/dist/server/auth.d.ts +443 -0
  205. package/dist/server/auth.js +178 -0
  206. package/dist/server/cache/context.js +94 -0
  207. package/dist/server/component/api.d.ts +14 -0
  208. package/dist/server/component/api.js +13 -0
  209. package/dist/server/component/context.d.ts +16 -0
  210. package/dist/server/component/context.js +1 -0
  211. package/dist/server/component/factor/db.js +71 -0
  212. package/dist/server/config.d.ts +3 -0
  213. package/dist/server/config.js +78 -0
  214. package/dist/server/connection/config.js +101 -0
  215. package/dist/server/connection/domain.d.ts +878 -0
  216. package/dist/server/connection/domain.js +1122 -0
  217. package/dist/server/connection/group/service.d.ts +25 -0
  218. package/dist/server/connection/group/service.js +250 -0
  219. package/dist/server/connection/http.js +1485 -0
  220. package/dist/server/connection/oidc.js +366 -0
  221. package/dist/server/connection/policy/domain.js +59 -0
  222. package/dist/server/connection/policy.d.ts +1 -0
  223. package/dist/server/connection/policy.js +163 -0
  224. package/dist/server/connection/profile.js +22 -0
  225. package/dist/server/connection/provision.js +182 -0
  226. package/dist/server/connection/saml/api.js +70 -0
  227. package/dist/server/connection/saml/binding/post.js +140 -0
  228. package/dist/server/connection/saml/binding/redirect.js +139 -0
  229. package/dist/server/connection/saml/binding/shared.js +18 -0
  230. package/dist/server/connection/saml/c14n.js +224 -0
  231. package/dist/server/connection/saml/constants.js +100 -0
  232. package/dist/server/connection/saml/crypto.js +170 -0
  233. package/dist/server/connection/saml/dom/select.js +299 -0
  234. package/dist/server/connection/saml/encoding.js +93 -0
  235. package/dist/server/connection/saml/encryption.js +34 -0
  236. package/dist/server/connection/saml/entity.js +24 -0
  237. package/dist/server/connection/saml/extractor.js +408 -0
  238. package/dist/server/connection/saml/flow.js +150 -0
  239. package/dist/server/connection/saml/identity/provider.js +66 -0
  240. package/dist/server/connection/saml/index.js +5 -0
  241. package/dist/server/connection/saml/metadata.js +294 -0
  242. package/dist/server/connection/saml/service/provider.js +117 -0
  243. package/dist/server/connection/saml/signature.js +214 -0
  244. package/dist/server/connection/saml/template.js +68 -0
  245. package/dist/server/connection/saml/types.js +1 -0
  246. package/dist/server/connection/saml/validator.js +32 -0
  247. package/dist/server/connection/saml/xml/builder.js +68 -0
  248. package/dist/server/connection/saml/xmldsig.js +598 -0
  249. package/dist/server/connection/saml/xmlenc.js +162 -0
  250. package/dist/server/connection/saml.d.ts +56 -0
  251. package/dist/server/connection/saml.js +762 -0
  252. package/dist/server/connection/scim.js +115 -0
  253. package/dist/server/connection/shared.js +74 -0
  254. package/dist/server/connection/webhook.js +163 -0
  255. package/dist/server/context.d.ts +137 -0
  256. package/dist/server/context.js +108 -0
  257. package/dist/server/contract.d.ts +48 -0
  258. package/dist/server/contract.js +107 -0
  259. package/dist/server/cookies.js +90 -0
  260. package/dist/server/core.js +163 -0
  261. package/dist/server/cors.d.ts +22 -0
  262. package/dist/server/cors.js +93 -0
  263. package/dist/server/crypto.js +43 -0
  264. package/dist/server/db.js +88 -0
  265. package/dist/server/device.js +140 -0
  266. package/dist/server/domains/access.js +29 -0
  267. package/dist/server/domains/account.d.ts +16 -0
  268. package/dist/server/domains/account.js +92 -0
  269. package/dist/server/domains/factor.d.ts +28 -0
  270. package/dist/server/domains/factor.js +115 -0
  271. package/dist/server/domains/group.js +87 -0
  272. package/dist/server/domains/invite.js +76 -0
  273. package/dist/server/domains/key.js +253 -0
  274. package/dist/server/domains/member.js +149 -0
  275. package/dist/server/domains/session.js +29 -0
  276. package/dist/server/domains/user.js +119 -0
  277. package/dist/server/env.d.ts +46 -0
  278. package/dist/server/env.js +96 -0
  279. package/dist/server/errors.js +38 -0
  280. package/dist/server/events.d.ts +880 -0
  281. package/dist/server/events.js +406 -0
  282. package/dist/server/facade.d.ts +83 -0
  283. package/dist/server/facade.js +124 -0
  284. package/dist/server/http.d.ts +125 -0
  285. package/dist/server/http.js +566 -0
  286. package/dist/server/identity/claims.js +58 -0
  287. package/dist/server/identity/convex.d.ts +15 -0
  288. package/dist/server/identity/convex.js +1 -0
  289. package/dist/server/index.d.ts +17 -0
  290. package/dist/server/index.js +11 -0
  291. package/dist/server/keys.js +60 -0
  292. package/dist/server/limits.js +41 -0
  293. package/dist/server/log.js +28 -0
  294. package/dist/server/mcp.d.ts +19 -0
  295. package/dist/server/mcp.js +250 -0
  296. package/dist/server/mutations/account.js +47 -0
  297. package/dist/server/mutations/calls.js +16 -0
  298. package/dist/server/mutations/code.js +91 -0
  299. package/dist/server/mutations/credentials/signin.js +210 -0
  300. package/dist/server/mutations/invalidate.js +60 -0
  301. package/dist/server/mutations/oauth.js +251 -0
  302. package/dist/server/mutations/refresh.js +152 -0
  303. package/dist/server/mutations/register.js +93 -0
  304. package/dist/server/mutations/retrieve.js +66 -0
  305. package/dist/server/mutations/signature.js +36 -0
  306. package/dist/server/mutations/signin.js +81 -0
  307. package/dist/server/mutations/signout.js +61 -0
  308. package/dist/server/mutations/store/refs.js +15 -0
  309. package/dist/server/mutations/store.js +82 -0
  310. package/dist/server/mutations/verifier.js +25 -0
  311. package/dist/server/mutations/verify.js +199 -0
  312. package/dist/server/oauth/authorize.js +98 -0
  313. package/dist/server/oauth/client.d.ts +93 -0
  314. package/dist/server/oauth/client.js +115 -0
  315. package/dist/server/oauth/code.d.ts +63 -0
  316. package/dist/server/oauth/code.js +124 -0
  317. package/dist/server/oauth/domain.d.ts +23 -0
  318. package/dist/server/oauth/domain.js +1 -0
  319. package/dist/server/oauth/factory.js +46 -0
  320. package/dist/server/oauth/grant.js +46 -0
  321. package/dist/server/oauth/handlers.js +108 -0
  322. package/dist/server/oauth/manage.js +121 -0
  323. package/dist/server/oauth/normalize.js +27 -0
  324. package/dist/server/oauth/refresh.d.ts +71 -0
  325. package/dist/server/oauth/refresh.js +132 -0
  326. package/dist/server/oauth/register.js +147 -0
  327. package/dist/server/oauth/runtime.js +280 -0
  328. package/dist/server/oauth/token.js +355 -0
  329. package/dist/server/payloads.d.ts +16 -0
  330. package/dist/server/payloads.js +30 -0
  331. package/dist/server/preload.d.ts +249 -0
  332. package/dist/server/preload.js +673 -0
  333. package/dist/server/random.js +25 -0
  334. package/dist/server/redirects.js +85 -0
  335. package/dist/server/runtime.d.ts +845 -0
  336. package/dist/server/runtime.js +387 -0
  337. package/dist/server/secret.js +46 -0
  338. package/dist/server/services/factors.js +117 -0
  339. package/dist/server/services/providers.js +23 -0
  340. package/dist/server/services/resolve.js +17 -0
  341. package/dist/server/session/lifecycle.d.ts +23 -0
  342. package/dist/server/session/lifecycle.js +139 -0
  343. package/dist/server/signin/flow.js +359 -0
  344. package/dist/server/telemetry.js +68 -0
  345. package/dist/server/templates.js +91 -0
  346. package/dist/server/token/refresh.js +35 -0
  347. package/dist/server/tokens.js +164 -0
  348. package/dist/server/totp.js +282 -0
  349. package/dist/server/types.d.ts +1154 -0
  350. package/dist/server/types.js +1 -0
  351. package/dist/server/url.js +43 -0
  352. package/dist/server/user/account.js +325 -0
  353. package/dist/server/utils/bearer.js +24 -0
  354. package/dist/server/utils/cache.js +51 -0
  355. package/dist/server/utils/retry.js +3 -0
  356. package/dist/server/utils/span.js +59 -0
  357. package/dist/server/validators.d.ts +2061 -0
  358. package/dist/server/validators.js +320 -0
  359. package/dist/server/webauthn.js +699 -0
  360. package/dist/server/wellknown.d.ts +74 -0
  361. package/dist/server/wellknown.js +195 -0
  362. package/dist/shared/brand.d.ts +28 -0
  363. package/dist/shared/brand.js +13 -0
  364. package/dist/shared/codes.d.ts +99 -0
  365. package/dist/shared/codes.js +98 -0
  366. package/dist/shared/compare.js +23 -0
  367. package/dist/shared/errors.js +24 -0
  368. package/dist/shared/event/kinds.d.ts +188 -0
  369. package/dist/shared/event/kinds.js +103 -0
  370. package/dist/shared/fetch/guard.js +189 -0
  371. package/dist/shared/log.js +62 -0
  372. package/dist/shared/results.d.ts +58 -0
  373. package/dist/shared/retry.js +27 -0
  374. package/dist/shared/webauthn.js +9 -0
  375. package/dist/svelte/AuthLoading.svelte +13 -0
  376. package/dist/svelte/AuthLoading.svelte.d.ts +8 -0
  377. package/dist/svelte/SignedIn.svelte +14 -0
  378. package/dist/svelte/SignedIn.svelte.d.ts +8 -0
  379. package/dist/svelte/SignedOut.svelte +13 -0
  380. package/dist/svelte/SignedOut.svelte.d.ts +8 -0
  381. package/dist/svelte/context.svelte.d.ts +26 -0
  382. package/dist/svelte/context.svelte.js +61 -0
  383. package/dist/svelte/index.d.ts +5 -0
  384. package/dist/svelte/index.js +4 -0
  385. package/dist/test.d.ts +48 -0
  386. package/dist/test.js +54 -0
  387. 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