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