@tempoxyz/id 0.0.1 → 0.0.2

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 (120) hide show
  1. package/dist/app/server/.vite/manifest.json +65 -65
  2. package/dist/app/server/assets/Grant-D_tun0mF.js.map +1 -1
  3. package/dist/app/server/assets/authorize-DXYo-K2n-B-6vqhvc.js +56 -0
  4. package/dist/app/server/assets/authorize-DXYo-K2n-B-6vqhvc.js.map +1 -0
  5. package/dist/app/server/assets/core-FSS9-r35.js +56 -0
  6. package/dist/app/server/assets/core-FSS9-r35.js.map +1 -0
  7. package/dist/app/server/assets/default-u_dwuiYb-Bby14ucv.js +2 -0
  8. package/dist/app/server/assets/{default-u_dwuiYb-DOrMMcg9.js.map → default-u_dwuiYb-Bby14ucv.js.map} +1 -1
  9. package/dist/app/server/assets/{dist-CoH0hD1s.js → dist-B9KiBJYw.js} +2 -2
  10. package/dist/app/server/assets/{dist-CoH0hD1s.js.map → dist-B9KiBJYw.js.map} +1 -1
  11. package/dist/app/server/assets/{dist-DcICI3fd.js → dist-CU1NXSiz.js} +2 -2
  12. package/dist/app/server/assets/{dist-DcICI3fd.js.map → dist-CU1NXSiz.js.map} +1 -1
  13. package/dist/app/server/assets/dist-CetH4JSY.js +1 -0
  14. package/dist/app/server/assets/{effect-QlVUlMFu-mXPkuQTb.js → effect-QlVUlMFu-Cm-eTtaO.js} +2 -2
  15. package/dist/app/server/assets/{effect-QlVUlMFu-mXPkuQTb.js.map → effect-QlVUlMFu-Cm-eTtaO.js.map} +1 -1
  16. package/dist/app/server/assets/factory-g3i_Ffi5.js +5 -0
  17. package/dist/app/server/assets/{factory-dvoOlKer.js.map → factory-g3i_Ffi5.js.map} +1 -1
  18. package/dist/app/server/assets/get-id-field-BpOAoqqI.js +6 -0
  19. package/dist/app/server/assets/get-id-field-BpOAoqqI.js.map +1 -0
  20. package/dist/app/server/assets/{index-CLddUTqr-CC33CMvS.js → index-CLddUTqr-CmgkbWi9.js} +2 -2
  21. package/dist/app/server/assets/{index-CLddUTqr-CC33CMvS.js.map → index-CLddUTqr-CmgkbWi9.js.map} +1 -1
  22. package/dist/app/server/assets/{index-DZEfthgZ-Ec2MMQ_e.js → index-DZEfthgZ-BnPmps9O.js} +2 -2
  23. package/dist/app/server/assets/{index-DZEfthgZ-Ec2MMQ_e.js.map → index-DZEfthgZ-BnPmps9O.js.map} +1 -1
  24. package/dist/app/server/assets/kysely-adapter-B8VoPArC.js +1 -0
  25. package/dist/app/server/assets/{schema-check-oLqvHR8y.js → schema-check-Bgwl1v0_.js} +2 -2
  26. package/dist/app/server/assets/{schema-check-oLqvHR8y.js.map → schema-check-Bgwl1v0_.js.map} +1 -1
  27. package/dist/app/server/assets/{sury-CWZTCd75-CDaOS2oM.js → sury-CWZTCd75-Bd_PzqCV.js} +2 -2
  28. package/dist/app/server/assets/{sury-CWZTCd75-CDaOS2oM.js.map → sury-CWZTCd75-Bd_PzqCV.js.map} +1 -1
  29. package/dist/app/server/assets/{valibot--1zFm7rT-CIKoH3MS.js → valibot--1zFm7rT-Dd2aEhWG.js} +2 -2
  30. package/dist/app/server/assets/{valibot--1zFm7rT-CIKoH3MS.js.map → valibot--1zFm7rT-Dd2aEhWG.js.map} +1 -1
  31. package/dist/app/server/assets/{valibot-D_HTw1Gn-BdPyLkXt.js → valibot-D_HTw1Gn-C1l3va6F.js} +2 -2
  32. package/dist/app/server/assets/{valibot-D_HTw1Gn-BdPyLkXt.js.map → valibot-D_HTw1Gn-C1l3va6F.js.map} +1 -1
  33. package/dist/app/server/assets/{zod-Bwrt9trS-BezI5Gi1.js → zod-Bwrt9trS-Dry2w0in.js} +2 -2
  34. package/dist/app/server/assets/{zod-Bwrt9trS-BezI5Gi1.js.map → zod-Bwrt9trS-Dry2w0in.js.map} +1 -1
  35. package/dist/app/server/assets/{zod-DSgpEGAE-DZ7M_Q33.js → zod-DSgpEGAE-BZMP86UA.js} +2 -2
  36. package/dist/app/server/assets/{zod-DSgpEGAE-DZ7M_Q33.js.map → zod-DSgpEGAE-BZMP86UA.js.map} +1 -1
  37. package/dist/app/server/index.js +35 -35
  38. package/dist/app/server/index.js.map +1 -1
  39. package/dist/client/Auth.d.ts +1 -1
  40. package/dist/client/Auth.d.ts.map +1 -1
  41. package/dist/client/Auth.js.map +1 -1
  42. package/dist/client/Decorator.d.ts +3 -1
  43. package/dist/client/Decorator.d.ts.map +1 -1
  44. package/dist/client/Decorator.js +1 -0
  45. package/dist/client/Decorator.js.map +1 -1
  46. package/dist/client/actions/passkey.d.ts +63 -2
  47. package/dist/client/actions/passkey.d.ts.map +1 -1
  48. package/dist/client/actions/passkey.js +121 -3
  49. package/dist/client/actions/passkey.js.map +1 -1
  50. package/dist/internal/Apps.d.ts +14 -0
  51. package/dist/internal/Apps.d.ts.map +1 -1
  52. package/dist/internal/Apps.js +14 -2
  53. package/dist/internal/Apps.js.map +1 -1
  54. package/dist/internal/Auth.d.ts +7 -0
  55. package/dist/internal/Auth.d.ts.map +1 -1
  56. package/dist/internal/Auth.js +2 -1
  57. package/dist/internal/Auth.js.map +1 -1
  58. package/dist/internal/Authorize.d.ts.map +1 -1
  59. package/dist/internal/Authorize.js +13 -13
  60. package/dist/internal/Authorize.js.map +1 -1
  61. package/dist/internal/ErrorResponse.d.ts +5 -0
  62. package/dist/internal/ErrorResponse.d.ts.map +1 -1
  63. package/dist/internal/ErrorResponse.js +8 -0
  64. package/dist/internal/ErrorResponse.js.map +1 -1
  65. package/dist/internal/KeyAuthorization.d.ts.map +1 -1
  66. package/dist/internal/KeyAuthorization.js +28 -28
  67. package/dist/internal/KeyAuthorization.js.map +1 -1
  68. package/dist/internal/Owner.d.ts +16 -0
  69. package/dist/internal/Owner.d.ts.map +1 -1
  70. package/dist/internal/Owner.js.map +1 -1
  71. package/dist/internal/Passkey.d.ts +66 -4
  72. package/dist/internal/Passkey.d.ts.map +1 -1
  73. package/dist/internal/Passkey.js +66 -30
  74. package/dist/internal/Passkey.js.map +1 -1
  75. package/dist/internal/Privy.d.ts +27 -0
  76. package/dist/internal/Privy.d.ts.map +1 -1
  77. package/dist/internal/Privy.js +82 -0
  78. package/dist/internal/Privy.js.map +1 -1
  79. package/dist/internal/TempoAccount.d.ts +57 -0
  80. package/dist/internal/TempoAccount.d.ts.map +1 -1
  81. package/dist/internal/TempoAccount.js +118 -5
  82. package/dist/internal/TempoAccount.js.map +1 -1
  83. package/dist/internal/owners/Privy.d.ts.map +1 -1
  84. package/dist/internal/owners/Privy.js +11 -2
  85. package/dist/internal/owners/Privy.js.map +1 -1
  86. package/package.json +1 -1
  87. package/src/api/account.ts +140 -103
  88. package/src/api/authenticate.ts +48 -51
  89. package/src/api/authorize.ts +35 -36
  90. package/src/api/device.ts +20 -23
  91. package/src/api/health.ts +1 -2
  92. package/src/api/lib/AccountStep.ts +75 -0
  93. package/src/api/lib/Auth.ts +6 -0
  94. package/src/api/lib/Cors.ts +3 -0
  95. package/src/api/lib/KeySigner.ts +1 -1
  96. package/src/api/oauth.ts +23 -22
  97. package/src/client/Auth.ts +1 -0
  98. package/src/client/Decorator.ts +6 -1
  99. package/src/client/actions/passkey.ts +197 -3
  100. package/src/internal/Apps.ts +26 -2
  101. package/src/internal/Auth.ts +4 -0
  102. package/src/internal/Authorize.ts +13 -15
  103. package/src/internal/ErrorResponse.ts +10 -0
  104. package/src/internal/KeyAuthorization.ts +28 -31
  105. package/src/internal/OpenApi.ts +35 -0
  106. package/src/internal/Owner.ts +16 -0
  107. package/src/internal/Passkey.ts +99 -34
  108. package/src/internal/Privy.ts +128 -0
  109. package/src/internal/TempoAccount.ts +221 -7
  110. package/src/internal/owners/Privy.ts +19 -6
  111. package/dist/app/server/assets/authorize-DXYo-K2n-rmQQ42x1.js +0 -56
  112. package/dist/app/server/assets/authorize-DXYo-K2n-rmQQ42x1.js.map +0 -1
  113. package/dist/app/server/assets/core-BBrZXfrB.js +0 -56
  114. package/dist/app/server/assets/core-BBrZXfrB.js.map +0 -1
  115. package/dist/app/server/assets/default-u_dwuiYb-DOrMMcg9.js +0 -2
  116. package/dist/app/server/assets/dist-CR6FW-yS.js +0 -1
  117. package/dist/app/server/assets/factory-dvoOlKer.js +0 -5
  118. package/dist/app/server/assets/get-id-field-OwLpfjj2.js +0 -6
  119. package/dist/app/server/assets/get-id-field-OwLpfjj2.js.map +0 -1
  120. package/dist/app/server/assets/kysely-adapter-B8tQwTcu.js +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"factory-dvoOlKer.js","names":["z.union","z.string","z.number","z.boolean","z.date","z.record","z.unknown","z.object","unknown","createLogger","object","string","TTY_COLORS","number","record","createWithSpan","boolean","getAuthTables","getColorDepth","union","safeJSONParse","date","initGetIdField","initGetDefaultModelName","ATTR_DB_COLLECTION_NAME","BetterAuthError","initGetDefaultFieldName","getDefaultModelName","inputModel","field","modelKey","f","schema","result","_","initGetFieldAttributes","getDefaultFieldName","idField","defaultModelName","model","defaultFieldName","fields","fieldAttributes","initGetFieldName","getFieldName","modelName","fieldName","initGetModelName","defaultModelKey","usePlural","withApplyDefault","action","value","MAX_ATTEMPTS","scalar","readSchema","setSchema","assignments","values","mutationSchema","counterSchema","createAtomicFallbacks","context","outputId","idWhere","mappedId","row","id","condition","readRow","adapter","adapterId","snapshotGuard","request","hasOr","clause","guard","keys","changedOne","count","consumeOne","where","incrementOne","mutation","deltas","increment","set","attempt","update","delta","previous","current","next","debugLogs","transactionId","createAsIsTransaction","fn","createAdapterFactory","customAdapter","cfg","withSpan","options","uniqueAdapterFactoryInstanceId","config","debugLog","args","logger","method","getModelName","getFieldAttributes","transformInput","transformedData","newMappedKeys","useNumberId","forceAllowId","data","newFieldName","newValue","x","transformOutput","transformSingleOutput","tableSchema","idKey","v","key","select","originalKey","join","requiredModels","joinConfig","joinedData","handleFallbackJoin","transformed","item","transformedItem","transformWhereClause","unsafe_field","w","operator","fieldAttr","parsed","n","error","transformJoinClause","unsanitizedJoin","transformedJoin","defaultBaseModelName","baseModel","foreignKeys","isForwardJoin","foreignKey","foreignKeyAttributes","from","to","requiredSelectField","isUnique","limit","baseData","joinModel","ATTR_DB_OPERATION_NAME","adapterInstance","lazyLoadTransaction","atomicFallbacks","cb","unsafeData","thisTransactionId","stack","i","formatTransactionId","formatStep","formatMethod","formatAction","res","unsafeWhere","updatedCount","unsafeJoin","passJoinToAdapter","unsafeLimit","r","unsafeIncrement","unsafeSet","hasIncrement","hasSet","mappedKeys","tables","log","separator","logs","curr","prev","step","total"],"sources":["../../../../../node_modules/.pnpm/@better-auth+core@1.8.0-beta.2_@better-auth+utils@0.5.0_@better-fetch+fetch@1.3.2_bette_ae4ec27bd601b85ec1331456bd274772/node_modules/@better-auth/core/dist/db/adapter/get-default-field-name.mjs","../../../../../node_modules/.pnpm/@better-auth+core@1.8.0-beta.2_@better-auth+utils@0.5.0_@better-fetch+fetch@1.3.2_bette_ae4ec27bd601b85ec1331456bd274772/node_modules/@better-auth/core/dist/db/adapter/get-field-attributes.mjs","../../../../../node_modules/.pnpm/@better-auth+core@1.8.0-beta.2_@better-auth+utils@0.5.0_@better-fetch+fetch@1.3.2_bette_ae4ec27bd601b85ec1331456bd274772/node_modules/@better-auth/core/dist/db/adapter/get-field-name.mjs","../../../../../node_modules/.pnpm/@better-auth+core@1.8.0-beta.2_@better-auth+utils@0.5.0_@better-fetch+fetch@1.3.2_bette_ae4ec27bd601b85ec1331456bd274772/node_modules/@better-auth/core/dist/db/adapter/get-model-name.mjs","../../../../../node_modules/.pnpm/@better-auth+core@1.8.0-beta.2_@better-auth+utils@0.5.0_@better-fetch+fetch@1.3.2_bette_ae4ec27bd601b85ec1331456bd274772/node_modules/@better-auth/core/dist/db/adapter/utils.mjs","../../../../../node_modules/.pnpm/@better-auth+core@1.8.0-beta.2_@better-auth+utils@0.5.0_@better-fetch+fetch@1.3.2_bette_ae4ec27bd601b85ec1331456bd274772/node_modules/@better-auth/core/dist/db/adapter/atomic-fallback.mjs","../../../../../node_modules/.pnpm/@better-auth+core@1.8.0-beta.2_@better-auth+utils@0.5.0_@better-fetch+fetch@1.3.2_bette_ae4ec27bd601b85ec1331456bd274772/node_modules/@better-auth/core/dist/db/adapter/factory.mjs"],"sourcesContent":["import { BetterAuthError } from \"../../error/index.mjs\";\nimport { initGetDefaultModelName } from \"./get-default-model-name.mjs\";\n//#region src/db/adapter/get-default-field-name.ts\nconst initGetDefaultFieldName = ({ schema, usePlural }) => {\n\tconst getDefaultModelName = initGetDefaultModelName({\n\t\tschema,\n\t\tusePlural\n\t});\n\t/**\n\t* This function helps us get the default field name from the schema defined by devs.\n\t* Often times, the user will be using the `fieldName` which could had been customized by the users.\n\t* This function helps us get the actual field name useful to match against the schema. (eg: schema[model].fields[field])\n\t*\n\t* If it's still unclear what this does:\n\t*\n\t* 1. User can define a custom fieldName.\n\t* 2. When using a custom fieldName, doing something like `schema[model].fields[field]` will not work.\n\t*/\n\tconst getDefaultFieldName = ({ field, model: inputModel }) => {\n\t\tif (field === \"id\" || field === \"_id\") return \"id\";\n\t\tconst modelKey = getDefaultModelName(inputModel);\n\t\tlet f = schema[modelKey]?.fields[field];\n\t\tif (!f) {\n\t\t\tconst result = Object.entries(schema[modelKey].fields).find(([_, f]) => f.fieldName === field);\n\t\t\tif (result) {\n\t\t\t\tf = result[1];\n\t\t\t\tfield = result[0];\n\t\t\t}\n\t\t}\n\t\tif (!f) throw new BetterAuthError(`Field ${field} not found in model ${modelKey}`);\n\t\treturn field;\n\t};\n\treturn getDefaultFieldName;\n};\n//#endregion\nexport { initGetDefaultFieldName };\n","import { BetterAuthError } from \"../../error/index.mjs\";\nimport { initGetDefaultModelName } from \"./get-default-model-name.mjs\";\nimport { initGetIdField } from \"./get-id-field.mjs\";\nimport { initGetDefaultFieldName } from \"./get-default-field-name.mjs\";\n//#region src/db/adapter/get-field-attributes.ts\nconst initGetFieldAttributes = ({ usePlural, schema, options, customIdGenerator, disableIdGeneration }) => {\n\tconst getDefaultModelName = initGetDefaultModelName({\n\t\tusePlural,\n\t\tschema\n\t});\n\tconst getDefaultFieldName = initGetDefaultFieldName({\n\t\tusePlural,\n\t\tschema\n\t});\n\tconst idField = initGetIdField({\n\t\tusePlural,\n\t\tschema,\n\t\toptions,\n\t\tcustomIdGenerator,\n\t\tdisableIdGeneration\n\t});\n\tconst getFieldAttributes = ({ model, field }) => {\n\t\tconst defaultModelName = getDefaultModelName(model);\n\t\tconst defaultFieldName = getDefaultFieldName({\n\t\t\tfield,\n\t\t\tmodel: defaultModelName\n\t\t});\n\t\tconst fields = schema[defaultModelName].fields;\n\t\tfields.id = idField({ customModelName: defaultModelName });\n\t\tconst fieldAttributes = fields[defaultFieldName];\n\t\tif (!fieldAttributes) throw new BetterAuthError(`Field ${field} not found in model ${model}`);\n\t\treturn fieldAttributes;\n\t};\n\treturn getFieldAttributes;\n};\n//#endregion\nexport { initGetFieldAttributes };\n","import { initGetDefaultModelName } from \"./get-default-model-name.mjs\";\nimport { initGetDefaultFieldName } from \"./get-default-field-name.mjs\";\n//#region src/db/adapter/get-field-name.ts\nconst initGetFieldName = ({ schema, usePlural }) => {\n\tconst getDefaultModelName = initGetDefaultModelName({\n\t\tschema,\n\t\tusePlural\n\t});\n\tconst getDefaultFieldName = initGetDefaultFieldName({\n\t\tschema,\n\t\tusePlural\n\t});\n\t/**\n\t* Get the field name which is expected to be saved in the database based on the user's schema.\n\t*\n\t* This function is useful if you need to save the field name to the database.\n\t*\n\t* For example, if the user has defined a custom field name for the `user` model, then you can use this function to get the actual field name from the schema.\n\t*/\n\tfunction getFieldName({ model: modelName, field: fieldName }) {\n\t\tconst model = getDefaultModelName(modelName);\n\t\tconst field = getDefaultFieldName({\n\t\t\tmodel,\n\t\t\tfield: fieldName\n\t\t});\n\t\treturn schema[model]?.fields[field]?.fieldName || field;\n\t}\n\treturn getFieldName;\n};\n//#endregion\nexport { initGetFieldName };\n","import { initGetDefaultModelName } from \"./get-default-model-name.mjs\";\n//#region src/db/adapter/get-model-name.ts\nconst initGetModelName = ({ usePlural, schema }) => {\n\tconst getDefaultModelName = initGetDefaultModelName({\n\t\tschema,\n\t\tusePlural\n\t});\n\t/**\n\t* Users can overwrite the default model of some tables. This function helps find the correct model name.\n\t* Furthermore, if the user passes `usePlural` as true in their adapter config,\n\t* then we should return the model name ending with an `s`.\n\t*/\n\tconst getModelName = (model) => {\n\t\tconst defaultModelKey = getDefaultModelName(model);\n\t\tif (schema && schema[defaultModelKey] && schema[defaultModelKey].modelName !== model) return usePlural ? `${schema[defaultModelKey].modelName}s` : schema[defaultModelKey].modelName;\n\t\treturn usePlural ? `${model}s` : model;\n\t};\n\treturn getModelName;\n};\n//#endregion\nexport { initGetModelName };\n","//#region src/db/adapter/utils.ts\nfunction withApplyDefault(value, field, action) {\n\tif (action === \"update\") {\n\t\tif (value === void 0 && field.onUpdate !== void 0) {\n\t\t\tif (typeof field.onUpdate === \"function\") return field.onUpdate();\n\t\t\treturn field.onUpdate;\n\t\t}\n\t\treturn value;\n\t}\n\tif (action === \"create\") {\n\t\tif (value === void 0 || field.required === true && value === null) {\n\t\t\tif (field.defaultValue !== void 0) {\n\t\t\t\tif (typeof field.defaultValue === \"function\") return field.defaultValue();\n\t\t\t\treturn field.defaultValue;\n\t\t\t}\n\t\t}\n\t}\n\treturn value;\n}\nfunction isObject(item) {\n\treturn item !== null && typeof item === \"object\" && !Array.isArray(item);\n}\nfunction deepmerge(target, source) {\n\tif (Array.isArray(target) && Array.isArray(source)) return [...target, ...source];\n\telse if (isObject(target) && isObject(source)) {\n\t\tconst result = { ...target };\n\t\tfor (const [key, value] of Object.entries(source)) {\n\t\t\tif (value === void 0) continue;\n\t\t\tif (key in target) result[key] = deepmerge(target[key], value);\n\t\t\telse result[key] = value;\n\t\t}\n\t\treturn result;\n\t}\n\treturn source;\n}\n//#endregion\nexport { deepmerge, withApplyDefault };\n","import { BetterAuthError } from \"../../error/index.mjs\";\nimport * as z from \"zod\";\n//#region src/db/adapter/atomic-fallback.ts\nconst MAX_ATTEMPTS = 5;\nconst scalar = z.union([\n\tz.string(),\n\tz.number(),\n\tz.boolean(),\n\tz.date()\n]).nullable();\nconst readSchema = z.record(z.string(), z.unknown()).nullish();\nconst setSchema = z.record(z.string(), z.unknown()).transform((values) => {\n\tconst assignments = {};\n\tfor (const [field, value] of Object.entries(values)) if (value !== void 0) assignments[field] = value;\n\treturn assignments;\n});\nconst mutationSchema = z.object({\n\tincrement: z.record(z.string(), z.number()),\n\tset: setSchema.optional()\n});\nconst counterSchema = z.number().nullish();\nfunction createAtomicFallbacks(context) {\n\tconst { adapter, adapterId } = context;\n\tconst outputId = Object.entries(context.mapKeysTransformOutput ?? {}).find(([, field]) => field === \"id\")?.[0] ?? \"id\";\n\tasync function idWhere(row, model, action) {\n\t\tconst mappedId = context.mapKeysTransformInput?.id || context.getFieldName({\n\t\t\tmodel,\n\t\t\tfield: \"id\"\n\t\t});\n\t\tif (row[mappedId] === void 0 || row[mappedId] === null) throw new BetterAuthError(`Adapter \"${context.adapterId}\" must return the row id for atomic fallbacks.`);\n\t\tconst id = (await context.transformOutput(row, model, [outputId], void 0))?.id;\n\t\tif (typeof id !== \"string\" && typeof id !== \"number\") throw new BetterAuthError(`Adapter \"${context.adapterId}\" must expose a logical string or number id through its output transform.`);\n\t\tconst [condition] = context.transformWhereClause({\n\t\t\tmodel,\n\t\t\twhere: [{\n\t\t\t\tfield: \"id\",\n\t\t\t\tvalue: id\n\t\t\t}],\n\t\t\taction\n\t\t});\n\t\tif (!condition) throw new BetterAuthError(\"The atomic fallback id condition was transformed away.\");\n\t\treturn condition;\n\t}\n\tasync function readRow({ model, modelKey, where }) {\n\t\tconst result = readSchema.safeParse(await adapter.findOne({\n\t\t\tmodel,\n\t\t\tmodelKey,\n\t\t\twhere\n\t\t}));\n\t\tif (!result.success) throw new BetterAuthError(`Adapter \"${adapterId}\" must return a row snapshot or null.`);\n\t\treturn result.data ?? null;\n\t}\n\tasync function snapshotGuard(row, fields, request, action) {\n\t\tconst id = await idWhere(row, request.modelKey, action);\n\t\tconst hasOr = request.where.some((clause) => clause.connector === \"OR\");\n\t\tconst guard = hasOr ? [id] : [...request.where, id];\n\t\tconst keys = new Set(fields);\n\t\tfor (const field of keys) {\n\t\t\tif (field === id.field) continue;\n\t\t\tconst value = scalar.safeParse(row[field] ?? null);\n\t\t\tif (!value.success) {\n\t\t\t\tif (hasOr && request.where.some((clause) => clause.field === field)) throw new BetterAuthError(`Adapter \"${adapterId}\" must implement native atomic methods for OR predicates on structured values.`);\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tguard.push({\n\t\t\t\tfield,\n\t\t\t\tvalue: value.data,\n\t\t\t\toperator: \"eq\",\n\t\t\t\tconnector: \"AND\",\n\t\t\t\tmode: \"sensitive\"\n\t\t\t});\n\t\t}\n\t\treturn guard;\n\t}\n\tfunction changedOne(count) {\n\t\tif (count !== 0 && count !== 1) throw new BetterAuthError(`Adapter \"${adapterId}\" must return an affected row count of 0 or 1 from an atomic fallback.`);\n\t\treturn count === 1;\n\t}\n\tasync function consumeOne(request) {\n\t\tconst { model, where } = request;\n\t\tconst row = await readRow(request);\n\t\tif (row === null) return null;\n\t\tconst guard = await snapshotGuard(row, [...Object.keys(row), ...where.map(({ field }) => field)], request, \"consumeOne\");\n\t\treturn changedOne(await adapter.deleteMany({\n\t\t\tmodel,\n\t\t\tmodelKey: request.modelKey,\n\t\t\twhere: guard\n\t\t})) ? row : null;\n\t}\n\tasync function incrementOne(request) {\n\t\tconst { model, where } = request;\n\t\tconst mutation = mutationSchema.safeParse(request);\n\t\tif (!mutation.success) throw new BetterAuthError(\"incrementOne requires finite increments and a set object for the atomic fallback.\");\n\t\tconst { increment, set } = mutation.data;\n\t\tconst deltas = Object.entries(increment);\n\t\tconst fields = [\n\t\t\t...where.map(({ field }) => field),\n\t\t\t...Object.keys(increment),\n\t\t\t...Object.keys(set ?? {})\n\t\t];\n\t\tfor (let attempt = 0; attempt < MAX_ATTEMPTS; attempt++) {\n\t\t\tconst row = await readRow(request);\n\t\t\tif (row === null) return null;\n\t\t\tconst update = { ...set };\n\t\t\tfor (const [field, delta] of deltas) {\n\t\t\t\tconst previous = counterSchema.safeParse(row[field]);\n\t\t\t\tif (!previous.success) throw new BetterAuthError(`Adapter \"${adapterId}\" must return finite numeric counter values or null for atomic increments.`);\n\t\t\t\tconst current = previous.data ?? 0;\n\t\t\t\tconst next = current + delta;\n\t\t\t\tif (!Number.isFinite(next) || delta !== 0 && next === current) throw new BetterAuthError(`Adapter \"${adapterId}\" cannot represent the requested counter increment safely.`);\n\t\t\t\tupdate[field] = next;\n\t\t\t}\n\t\t\tconst guard = await snapshotGuard(row, fields, request, \"incrementOne\");\n\t\t\tif (Object.entries(update).every(([field, value]) => {\n\t\t\t\tconst previous = row[field];\n\t\t\t\tif (previous instanceof Date && value instanceof Date) return previous.getTime() === value.getTime();\n\t\t\t\treturn Object.is(previous, value);\n\t\t\t})) return row;\n\t\t\tif (changedOne(await adapter.updateMany({\n\t\t\t\tmodel,\n\t\t\t\tmodelKey: request.modelKey,\n\t\t\t\twhere: guard,\n\t\t\t\tupdate\n\t\t\t}))) return {\n\t\t\t\t...row,\n\t\t\t\t...update\n\t\t\t};\n\t\t}\n\t\tthrow new BetterAuthError(`Adapter \"${adapterId}\" could not complete an atomic increment due to contention. Retry the operation or implement incrementOne natively.`);\n\t}\n\treturn {\n\t\tconsumeOne,\n\t\tincrementOne\n\t};\n}\n//#endregion\nexport { createAtomicFallbacks };\n","import { BetterAuthError } from \"../../error/index.mjs\";\nimport { getAuthTables } from \"../get-tables.mjs\";\nimport { getColorDepth } from \"../../env/color-depth.mjs\";\nimport { TTY_COLORS, createLogger } from \"../../env/logger.mjs\";\nimport { initGetDefaultModelName } from \"./get-default-model-name.mjs\";\nimport { initGetIdField } from \"./get-id-field.mjs\";\nimport { safeJSONParse } from \"../../utils/json.mjs\";\nimport { createAtomicFallbacks } from \"./atomic-fallback.mjs\";\nimport { initGetDefaultFieldName } from \"./get-default-field-name.mjs\";\nimport { initGetFieldAttributes } from \"./get-field-attributes.mjs\";\nimport { initGetFieldName } from \"./get-field-name.mjs\";\nimport { initGetModelName } from \"./get-model-name.mjs\";\nimport { withApplyDefault } from \"./utils.mjs\";\nimport { ATTR_DB_COLLECTION_NAME, ATTR_DB_OPERATION_NAME, createWithSpan } from \"@better-auth/core/instrumentation\";\n//#region src/db/adapter/factory.ts\nlet debugLogs = [];\nlet transactionId = -1;\nconst createAsIsTransaction = (adapter) => (fn) => fn(adapter);\nconst createAdapterFactory = ({ adapter: customAdapter, config: cfg }) => (options) => {\n\tconst withSpan = createWithSpan(options);\n\tconst uniqueAdapterFactoryInstanceId = Math.random().toString(36).substring(2, 15);\n\tconst config = {\n\t\t...cfg,\n\t\tsupportsBooleans: cfg.supportsBooleans ?? true,\n\t\tsupportsDates: cfg.supportsDates ?? true,\n\t\tsupportsJSON: cfg.supportsJSON ?? false,\n\t\tadapterName: cfg.adapterName ?? cfg.adapterId,\n\t\tsupportsNumericIds: cfg.supportsNumericIds ?? true,\n\t\tsupportsUUIDs: cfg.supportsUUIDs ?? false,\n\t\tsupportsArrays: cfg.supportsArrays ?? false,\n\t\ttransaction: cfg.transaction ?? false,\n\t\tdisableTransformInput: cfg.disableTransformInput ?? false,\n\t\tdisableTransformOutput: cfg.disableTransformOutput ?? false,\n\t\tdisableTransformJoin: cfg.disableTransformJoin ?? false\n\t};\n\tif (options.advanced?.database?.generateId === \"serial\" && config.supportsNumericIds === false) throw new BetterAuthError(`[${config.adapterName}] Your database or database adapter does not support numeric ids. Please disable \"useNumberId\" in your config.`);\n\tconst schema = getAuthTables(options);\n\tconst debugLog = (...args) => {\n\t\tif (config.debugLogs === true || typeof config.debugLogs === \"object\") {\n\t\t\tconst logger = createLogger({ level: \"info\" });\n\t\t\tif (typeof config.debugLogs === \"object\" && \"isRunningAdapterTests\" in config.debugLogs) {\n\t\t\t\tif (config.debugLogs.isRunningAdapterTests) {\n\t\t\t\t\targs.shift();\n\t\t\t\t\tdebugLogs.push({\n\t\t\t\t\t\tinstance: uniqueAdapterFactoryInstanceId,\n\t\t\t\t\t\targs\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (typeof config.debugLogs === \"object\" && config.debugLogs.logCondition && !config.debugLogs.logCondition?.()) return;\n\t\t\tif (typeof args[0] === \"object\" && \"method\" in args[0]) {\n\t\t\t\tconst method = args.shift().method;\n\t\t\t\tif (typeof config.debugLogs === \"object\") {\n\t\t\t\t\tif (method === \"create\" && !config.debugLogs.create) return;\n\t\t\t\t\telse if (method === \"update\" && !config.debugLogs.update) return;\n\t\t\t\t\telse if (method === \"updateMany\" && !config.debugLogs.updateMany) return;\n\t\t\t\t\telse if (method === \"findOne\" && !config.debugLogs.findOne) return;\n\t\t\t\t\telse if (method === \"findMany\" && !config.debugLogs.findMany) return;\n\t\t\t\t\telse if (method === \"delete\" && !config.debugLogs.delete) return;\n\t\t\t\t\telse if (method === \"deleteMany\" && !config.debugLogs.deleteMany) return;\n\t\t\t\t\telse if (method === \"consumeOne\" && !config.debugLogs.consumeOne) return;\n\t\t\t\t\telse if (method === \"incrementOne\" && !config.debugLogs.incrementOne) return;\n\t\t\t\t\telse if (method === \"count\" && !config.debugLogs.count) return;\n\t\t\t\t}\n\t\t\t\tlogger.info(`[${config.adapterName}]`, ...args);\n\t\t\t} else logger.info(`[${config.adapterName}]`, ...args);\n\t\t}\n\t};\n\tconst logger = createLogger(options.logger);\n\tconst getDefaultModelName = initGetDefaultModelName({\n\t\tusePlural: config.usePlural,\n\t\tschema\n\t});\n\tconst getDefaultFieldName = initGetDefaultFieldName({\n\t\tusePlural: config.usePlural,\n\t\tschema\n\t});\n\tconst getModelName = initGetModelName({\n\t\tusePlural: config.usePlural,\n\t\tschema\n\t});\n\tconst getFieldName = initGetFieldName({\n\t\tschema,\n\t\tusePlural: config.usePlural\n\t});\n\tconst idField = initGetIdField({\n\t\tschema,\n\t\toptions,\n\t\tusePlural: config.usePlural,\n\t\tdisableIdGeneration: config.disableIdGeneration,\n\t\tcustomIdGenerator: config.customIdGenerator,\n\t\tsupportsUUIDs: config.supportsUUIDs\n\t});\n\tconst getFieldAttributes = initGetFieldAttributes({\n\t\tschema,\n\t\toptions,\n\t\tusePlural: config.usePlural,\n\t\tdisableIdGeneration: config.disableIdGeneration,\n\t\tcustomIdGenerator: config.customIdGenerator\n\t});\n\tconst transformInput = async (data, defaultModelName, action, forceAllowId) => {\n\t\tconst transformedData = {};\n\t\tconst fields = schema[defaultModelName].fields;\n\t\tconst newMappedKeys = config.mapKeysTransformInput ?? {};\n\t\tconst useNumberId = options.advanced?.database?.generateId === \"serial\";\n\t\tfields.id = idField({\n\t\t\tcustomModelName: defaultModelName,\n\t\t\tforceAllowId: forceAllowId && \"id\" in data\n\t\t});\n\t\tfor (const field in fields) {\n\t\t\tlet value = data[field];\n\t\t\tconst fieldAttributes = fields[field];\n\t\t\tconst newFieldName = newMappedKeys[field] || fields[field].fieldName || field;\n\t\t\tif (value === void 0 && (fieldAttributes.defaultValue === void 0 && !fieldAttributes.transform?.input && !(action === \"update\" && fieldAttributes.onUpdate) || action === \"update\" && !fieldAttributes.onUpdate)) continue;\n\t\t\tif (fieldAttributes && fieldAttributes.type === \"date\" && !(value instanceof Date) && typeof value === \"string\") try {\n\t\t\t\tvalue = new Date(value);\n\t\t\t} catch {\n\t\t\t\tlogger.error(\"[Adapter Factory] Failed to convert string to date\", {\n\t\t\t\t\tvalue,\n\t\t\t\t\tfield\n\t\t\t\t});\n\t\t\t}\n\t\t\tlet newValue = withApplyDefault(value, fieldAttributes, action);\n\t\t\tif (fieldAttributes.transform?.input) newValue = await fieldAttributes.transform.input(newValue);\n\t\t\tif (fieldAttributes.references?.field === \"id\" && useNumberId) if (Array.isArray(newValue)) newValue = newValue.map((x) => x !== null ? Number(x) : null);\n\t\t\telse newValue = newValue !== null ? Number(newValue) : null;\n\t\t\telse if (config.supportsJSON === false && typeof newValue === \"object\" && fieldAttributes.type === \"json\") newValue = JSON.stringify(newValue);\n\t\t\telse if (config.supportsArrays === false && Array.isArray(newValue) && (fieldAttributes.type === \"string[]\" || fieldAttributes.type === \"number[]\")) newValue = JSON.stringify(newValue);\n\t\t\telse if (config.supportsDates === false && newValue instanceof Date && fieldAttributes.type === \"date\") newValue = newValue.toISOString();\n\t\t\telse if (config.supportsBooleans === false && typeof newValue === \"boolean\") newValue = newValue ? 1 : 0;\n\t\t\tif (config.customTransformInput) newValue = config.customTransformInput({\n\t\t\t\tdata: newValue,\n\t\t\t\taction,\n\t\t\t\tfield: newFieldName,\n\t\t\t\tfieldAttributes,\n\t\t\t\tmodel: getModelName(defaultModelName),\n\t\t\t\tschema,\n\t\t\t\toptions\n\t\t\t});\n\t\t\tif (newValue !== void 0) transformedData[newFieldName] = newValue;\n\t\t}\n\t\treturn transformedData;\n\t};\n\tconst transformOutput = async (data, inputModel, select = [], join) => {\n\t\tconst transformSingleOutput = async (data, inputModel, select = []) => {\n\t\t\tif (!data) return null;\n\t\t\tconst modelKey = getDefaultModelName(inputModel);\n\t\t\tconst newMappedKeys = config.mapKeysTransformOutput ?? {};\n\t\t\tconst transformedData = {};\n\t\t\tconst tableSchema = schema[modelKey].fields;\n\t\t\tconst idKey = Object.entries(newMappedKeys).find(([_, v]) => v === \"id\")?.[0];\n\t\t\ttableSchema[idKey ?? \"id\"] = { type: options.advanced?.database?.generateId === \"serial\" ? \"number\" : \"string\" };\n\t\t\tfor (const key in tableSchema) {\n\t\t\t\tif (select.length && !select.includes(key)) continue;\n\t\t\t\tconst field = tableSchema[key];\n\t\t\t\tif (field) {\n\t\t\t\t\tconst originalKey = field.fieldName || key;\n\t\t\t\t\tlet newValue = data[Object.entries(newMappedKeys).find(([_, v]) => v === originalKey)?.[0] || originalKey];\n\t\t\t\t\tif (field.transform?.output) newValue = await field.transform.output(newValue);\n\t\t\t\t\tconst newFieldName = newMappedKeys[key] || key;\n\t\t\t\t\tif (originalKey === \"id\" || field.references?.field === \"id\") {\n\t\t\t\t\t\tif (typeof newValue !== \"undefined\" && newValue !== null) newValue = String(newValue);\n\t\t\t\t\t} else if (config.supportsJSON === false && typeof newValue === \"string\" && field.type === \"json\") newValue = safeJSONParse(newValue);\n\t\t\t\t\telse if (config.supportsArrays === false && typeof newValue === \"string\" && (field.type === \"string[]\" || field.type === \"number[]\")) newValue = safeJSONParse(newValue);\n\t\t\t\t\telse if (config.supportsDates === false && typeof newValue === \"string\" && field.type === \"date\") newValue = new Date(newValue);\n\t\t\t\t\telse if (config.supportsBooleans === false && typeof newValue === \"number\" && field.type === \"boolean\") newValue = newValue === 1;\n\t\t\t\t\tif (config.customTransformOutput) newValue = config.customTransformOutput({\n\t\t\t\t\t\tdata: newValue,\n\t\t\t\t\t\tfield: newFieldName,\n\t\t\t\t\t\tfieldAttributes: field,\n\t\t\t\t\t\tselect,\n\t\t\t\t\t\tmodel: getModelName(modelKey),\n\t\t\t\t\t\tschema,\n\t\t\t\t\t\toptions\n\t\t\t\t\t});\n\t\t\t\t\ttransformedData[newFieldName] = newValue;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn transformedData;\n\t\t};\n\t\tif (!join || Object.keys(join).length === 0) return await transformSingleOutput(data, inputModel, select);\n\t\tconst modelKey = getDefaultModelName(inputModel);\n\t\tconst transformedData = await transformSingleOutput(data, modelKey, select);\n\t\tconst requiredModels = Object.entries(join).map(([model, joinConfig]) => ({\n\t\t\tmodelName: model,\n\t\t\tdefaultModelName: joinConfig.modelKey ?? getDefaultModelName(model),\n\t\t\tjoinConfig\n\t\t}));\n\t\tif (!data) return null;\n\t\tfor (const { modelName, defaultModelName, joinConfig } of requiredModels) {\n\t\t\tlet joinedData = await (async () => {\n\t\t\t\tif (options.advanced?.database?.joins) {\n\t\t\t\t\tif (modelName in data) return data[modelName];\n\t\t\t\t}\n\t\t\t\treturn await handleFallbackJoin({\n\t\t\t\t\tbaseModel: modelKey,\n\t\t\t\t\tbaseData: transformedData,\n\t\t\t\t\tjoinModel: modelName,\n\t\t\t\t\tspecificJoinConfig: joinConfig\n\t\t\t\t});\n\t\t\t})();\n\t\t\tif (joinedData === void 0 || joinedData === null) joinedData = joinConfig.relation === \"one-to-one\" ? null : [];\n\t\t\tif (joinConfig.relation === \"one-to-many\" && !Array.isArray(joinedData)) joinedData = [joinedData];\n\t\t\tconst transformed = [];\n\t\t\tif (Array.isArray(joinedData)) for (const item of joinedData) {\n\t\t\t\tconst transformedItem = await transformSingleOutput(item, defaultModelName, []);\n\t\t\t\ttransformed.push(transformedItem);\n\t\t\t}\n\t\t\telse {\n\t\t\t\tconst transformedItem = await transformSingleOutput(joinedData, defaultModelName, []);\n\t\t\t\ttransformed.push(transformedItem);\n\t\t\t}\n\t\t\ttransformedData[defaultModelName] = (joinConfig.relation === \"one-to-one\" ? transformed[0] : transformed) ?? null;\n\t\t}\n\t\treturn transformedData;\n\t};\n\tconst transformWhereClause = ({ model, where, action }) => {\n\t\tif (!where) return void 0;\n\t\tconst newMappedKeys = config.mapKeysTransformInput ?? {};\n\t\treturn where.map((w) => {\n\t\t\tconst { field: unsafe_field, value, operator = \"eq\", connector = \"AND\", mode = \"sensitive\" } = w;\n\t\t\tif (operator === \"in\") {\n\t\t\t\tif (!Array.isArray(value)) throw new BetterAuthError(\"Value must be an array\");\n\t\t\t}\n\t\t\tlet newValue = value;\n\t\t\tconst defaultModelName = getDefaultModelName(model);\n\t\t\tconst defaultFieldName = getDefaultFieldName({\n\t\t\t\tfield: unsafe_field,\n\t\t\t\tmodel\n\t\t\t});\n\t\t\tconst fieldName = newMappedKeys[defaultFieldName] || getFieldName({\n\t\t\t\tfield: defaultFieldName,\n\t\t\t\tmodel: defaultModelName\n\t\t\t});\n\t\t\tconst fieldAttr = getFieldAttributes({\n\t\t\t\tfield: defaultFieldName,\n\t\t\t\tmodel: defaultModelName\n\t\t\t});\n\t\t\tconst useNumberId = options.advanced?.database?.generateId === \"serial\";\n\t\t\tif (defaultFieldName === \"id\" || fieldAttr.references?.field === \"id\") {\n\t\t\t\tif (useNumberId) if (Array.isArray(value)) newValue = value.map(Number);\n\t\t\t\telse newValue = Number(value);\n\t\t\t}\n\t\t\tif (fieldAttr.type === \"date\" && value instanceof Date && !config.supportsDates) newValue = value.toISOString();\n\t\t\tif (fieldAttr.type === \"boolean\" && typeof newValue === \"string\") newValue = newValue === \"true\";\n\t\t\tif (fieldAttr.type === \"number\") {\n\t\t\t\tif (typeof newValue === \"string\" && newValue.trim() !== \"\") {\n\t\t\t\t\tconst parsed = Number(newValue);\n\t\t\t\t\tif (!Number.isNaN(parsed)) newValue = parsed;\n\t\t\t\t} else if (Array.isArray(newValue)) {\n\t\t\t\t\tconst parsed = newValue.map((v) => typeof v === \"string\" && v.trim() !== \"\" ? Number(v) : NaN);\n\t\t\t\t\tif (parsed.every((n) => !Number.isNaN(n))) newValue = parsed;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (fieldAttr.type === \"boolean\" && typeof newValue === \"boolean\" && !config.supportsBooleans) newValue = newValue ? 1 : 0;\n\t\t\tif (fieldAttr.type === \"json\" && typeof value === \"object\" && !config.supportsJSON) try {\n\t\t\t\tnewValue = JSON.stringify(value);\n\t\t\t} catch (error) {\n\t\t\t\tthrow new Error(`Failed to stringify JSON value for field ${fieldName}`, { cause: error });\n\t\t\t}\n\t\t\tif (config.customTransformInput) newValue = config.customTransformInput({\n\t\t\t\tdata: newValue,\n\t\t\t\tfieldAttributes: fieldAttr,\n\t\t\t\tfield: fieldName,\n\t\t\t\tmodel: getModelName(model),\n\t\t\t\tschema,\n\t\t\t\toptions,\n\t\t\t\taction\n\t\t\t});\n\t\t\treturn {\n\t\t\t\toperator,\n\t\t\t\tconnector,\n\t\t\t\tfield: fieldName,\n\t\t\t\tvalue: newValue,\n\t\t\t\tmode\n\t\t\t};\n\t\t});\n\t};\n\tconst transformJoinClause = (baseModel, unsanitizedJoin, select) => {\n\t\tif (!unsanitizedJoin) return void 0;\n\t\tif (Object.keys(unsanitizedJoin).length === 0) return void 0;\n\t\tconst transformedJoin = {};\n\t\tfor (const [model, join] of Object.entries(unsanitizedJoin)) {\n\t\t\tif (!join) continue;\n\t\t\tconst defaultModelName = getDefaultModelName(model);\n\t\t\tconst defaultBaseModelName = getDefaultModelName(baseModel);\n\t\t\tlet foreignKeys = Object.entries(schema[defaultModelName].fields).filter(([field, fieldAttributes]) => fieldAttributes.references && getDefaultModelName(fieldAttributes.references.model) === defaultBaseModelName);\n\t\t\tlet isForwardJoin = true;\n\t\t\tif (!foreignKeys.length) {\n\t\t\t\tforeignKeys = Object.entries(schema[defaultBaseModelName].fields).filter(([field, fieldAttributes]) => fieldAttributes.references && getDefaultModelName(fieldAttributes.references.model) === defaultModelName);\n\t\t\t\tisForwardJoin = false;\n\t\t\t}\n\t\t\tif (!foreignKeys.length) throw new BetterAuthError(`No foreign key found for model ${model} and base model ${baseModel} while performing join operation.`);\n\t\t\telse if (foreignKeys.length > 1) throw new BetterAuthError(`Multiple foreign keys found for model ${model} and base model ${baseModel} while performing join operation. Only one foreign key is supported.`);\n\t\t\tconst [foreignKey, foreignKeyAttributes] = foreignKeys[0];\n\t\t\tif (!foreignKeyAttributes.references) throw new BetterAuthError(`No references found for foreign key ${foreignKey} on model ${model} while performing join operation.`);\n\t\t\tlet from;\n\t\t\tlet to;\n\t\t\tlet requiredSelectField;\n\t\t\tif (isForwardJoin) {\n\t\t\t\trequiredSelectField = foreignKeyAttributes.references.field;\n\t\t\t\tfrom = getFieldName({\n\t\t\t\t\tmodel: baseModel,\n\t\t\t\t\tfield: requiredSelectField\n\t\t\t\t});\n\t\t\t\tto = getFieldName({\n\t\t\t\t\tmodel,\n\t\t\t\t\tfield: foreignKey\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\trequiredSelectField = foreignKey;\n\t\t\t\tfrom = getFieldName({\n\t\t\t\t\tmodel: baseModel,\n\t\t\t\t\tfield: requiredSelectField\n\t\t\t\t});\n\t\t\t\tto = getFieldName({\n\t\t\t\t\tmodel,\n\t\t\t\t\tfield: foreignKeyAttributes.references.field\n\t\t\t\t});\n\t\t\t}\n\t\t\tif (select && !select.includes(requiredSelectField)) select.push(requiredSelectField);\n\t\t\tconst isUnique = to === \"id\" ? true : foreignKeyAttributes.unique ?? false;\n\t\t\tlet limit = options.advanced?.database?.defaultFindManyLimit ?? 100;\n\t\t\tif (isUnique) limit = 1;\n\t\t\telse if (typeof join === \"object\" && typeof join.limit === \"number\") limit = join.limit;\n\t\t\ttransformedJoin[getModelName(model)] = {\n\t\t\t\tmodelKey: model,\n\t\t\t\ton: {\n\t\t\t\t\tfrom,\n\t\t\t\t\tto\n\t\t\t\t},\n\t\t\t\tlimit,\n\t\t\t\trelation: isUnique ? \"one-to-one\" : \"one-to-many\"\n\t\t\t};\n\t\t}\n\t\treturn {\n\t\t\tjoin: transformedJoin,\n\t\t\tselect\n\t\t};\n\t};\n\t/**\n\t* Handle joins by making separate queries and combining results (fallback for adapters that don't support native joins).\n\t*/\n\tconst handleFallbackJoin = async ({ baseModel, baseData, joinModel, specificJoinConfig: joinConfig }) => {\n\t\tif (!baseData) return baseData;\n\t\tconst modelKey = joinConfig.modelKey ?? getDefaultModelName(joinModel);\n\t\tconst modelName = getModelName(modelKey);\n\t\tconst field = joinConfig.on.to;\n\t\tconst value = baseData[getDefaultFieldName({\n\t\t\tfield: joinConfig.on.from,\n\t\t\tmodel: baseModel\n\t\t})];\n\t\tif (value === null || value === void 0) return joinConfig.relation === \"one-to-one\" ? null : [];\n\t\tlet result;\n\t\tconst where = transformWhereClause({\n\t\t\tmodel: modelKey,\n\t\t\twhere: [{\n\t\t\t\tfield,\n\t\t\t\tvalue,\n\t\t\t\toperator: \"eq\",\n\t\t\t\tconnector: \"AND\"\n\t\t\t}],\n\t\t\taction: \"findOne\"\n\t\t});\n\t\ttry {\n\t\t\tif (joinConfig.relation === \"one-to-one\") result = await withSpan(`db findOne ${modelName}`, {\n\t\t\t\t[ATTR_DB_OPERATION_NAME]: \"findOne\",\n\t\t\t\t[ATTR_DB_COLLECTION_NAME]: modelName\n\t\t\t}, () => adapterInstance.findOne({\n\t\t\t\tmodel: modelName,\n\t\t\t\tmodelKey,\n\t\t\t\twhere\n\t\t\t}));\n\t\t\telse {\n\t\t\t\tconst limit = joinConfig.limit ?? options.advanced?.database?.defaultFindManyLimit ?? 100;\n\t\t\t\tresult = await withSpan(`db findMany ${modelName}`, {\n\t\t\t\t\t[ATTR_DB_OPERATION_NAME]: \"findMany\",\n\t\t\t\t\t[ATTR_DB_COLLECTION_NAME]: modelName\n\t\t\t\t}, () => adapterInstance.findMany({\n\t\t\t\t\tmodel: modelName,\n\t\t\t\t\tmodelKey,\n\t\t\t\t\twhere,\n\t\t\t\t\tlimit\n\t\t\t\t}));\n\t\t\t}\n\t\t} catch (error) {\n\t\t\tlogger.error(`Failed to query fallback join for model ${modelName}:`, {\n\t\t\t\twhere,\n\t\t\t\tlimit: joinConfig.limit\n\t\t\t});\n\t\t\tconsole.error(error);\n\t\t\tthrow error;\n\t\t}\n\t\treturn result;\n\t};\n\tconst adapterInstance = customAdapter({\n\t\toptions,\n\t\tschema,\n\t\tdebugLog,\n\t\tgetFieldName,\n\t\tgetModelName,\n\t\tgetDefaultModelName,\n\t\tgetDefaultFieldName,\n\t\tgetFieldAttributes,\n\t\ttransformInput,\n\t\ttransformOutput,\n\t\ttransformWhereClause\n\t});\n\tlet lazyLoadTransaction = null;\n\tconst atomicFallbacks = createAtomicFallbacks({\n\t\tadapter: adapterInstance,\n\t\tadapterId: config.adapterId,\n\t\tmapKeysTransformInput: config.mapKeysTransformInput,\n\t\tmapKeysTransformOutput: config.mapKeysTransformOutput,\n\t\tgetFieldName,\n\t\ttransformOutput,\n\t\ttransformWhereClause\n\t});\n\tconst adapter = {\n\t\ttransaction: async (cb) => {\n\t\t\tif (!lazyLoadTransaction) if (!config.transaction) lazyLoadTransaction = createAsIsTransaction(adapter);\n\t\t\telse {\n\t\t\t\tlogger.debug(`[${config.adapterName}] - Using provided transaction implementation.`);\n\t\t\t\tlazyLoadTransaction = config.transaction;\n\t\t\t}\n\t\t\treturn lazyLoadTransaction(cb);\n\t\t},\n\t\tcreate: async ({ data: unsafeData, model: inputModel, select, forceAllowId = false }) => {\n\t\t\ttransactionId++;\n\t\t\tconst thisTransactionId = transactionId;\n\t\t\tconst modelKey = getDefaultModelName(inputModel);\n\t\t\tconst model = getModelName(modelKey);\n\t\t\tif (\"id\" in unsafeData && typeof unsafeData.id !== \"undefined\" && !forceAllowId) {\n\t\t\t\tlogger.warn(`[${config.adapterName}] - You are trying to create a record with an id. This is not allowed as we handle id generation for you, unless you pass in the \\`forceAllowId\\` parameter. The id will be ignored.`);\n\t\t\t\tconst stack = (/* @__PURE__ */ new Error()).stack?.split(\"\\n\").filter((_, i) => i !== 1).join(\"\\n\").replace(\"Error:\", \"Create method with `id` being called at:\");\n\t\t\t\tconsole.log(stack);\n\t\t\t\tunsafeData.id = void 0;\n\t\t\t}\n\t\t\tdebugLog({ method: \"create\" }, `${formatTransactionId(thisTransactionId)} ${formatStep(1, 4)}`, `${formatMethod(\"create\")} ${formatAction(\"Unsafe Input\")}:`, {\n\t\t\t\tmodel,\n\t\t\t\tdata: unsafeData\n\t\t\t});\n\t\t\tlet data = unsafeData;\n\t\t\tif (!config.disableTransformInput) data = await transformInput(unsafeData, modelKey, \"create\", forceAllowId);\n\t\t\tdebugLog({ method: \"create\" }, `${formatTransactionId(thisTransactionId)} ${formatStep(2, 4)}`, `${formatMethod(\"create\")} ${formatAction(\"Parsed Input\")}:`, {\n\t\t\t\tmodel,\n\t\t\t\tdata\n\t\t\t});\n\t\t\tconst res = await withSpan(`db create ${model}`, {\n\t\t\t\t[ATTR_DB_OPERATION_NAME]: \"create\",\n\t\t\t\t[ATTR_DB_COLLECTION_NAME]: model\n\t\t\t}, () => adapterInstance.create({\n\t\t\t\tdata,\n\t\t\t\tmodel,\n\t\t\t\tmodelKey\n\t\t\t}));\n\t\t\tdebugLog({ method: \"create\" }, `${formatTransactionId(thisTransactionId)} ${formatStep(3, 4)}`, `${formatMethod(\"create\")} ${formatAction(\"DB Result\")}:`, {\n\t\t\t\tmodel,\n\t\t\t\tres\n\t\t\t});\n\t\t\tlet transformed = res;\n\t\t\tif (!config.disableTransformOutput) transformed = await transformOutput(res, modelKey, select, void 0);\n\t\t\tdebugLog({ method: \"create\" }, `${formatTransactionId(thisTransactionId)} ${formatStep(4, 4)}`, `${formatMethod(\"create\")} ${formatAction(\"Parsed Result\")}:`, {\n\t\t\t\tmodel,\n\t\t\t\tdata: transformed\n\t\t\t});\n\t\t\treturn transformed;\n\t\t},\n\t\tupdate: async ({ model: inputModel, where: unsafeWhere, update: unsafeData }) => {\n\t\t\ttransactionId++;\n\t\t\tconst thisTransactionId = transactionId;\n\t\t\tconst modelKey = getDefaultModelName(inputModel);\n\t\t\tconst model = getModelName(modelKey);\n\t\t\tconst where = transformWhereClause({\n\t\t\t\tmodel: modelKey,\n\t\t\t\twhere: unsafeWhere,\n\t\t\t\taction: \"update\"\n\t\t\t});\n\t\t\tif (where.length === 0) return null;\n\t\t\tdebugLog({ method: \"update\" }, `${formatTransactionId(thisTransactionId)} ${formatStep(1, 4)}`, `${formatMethod(\"update\")} ${formatAction(\"Unsafe Input\")}:`, {\n\t\t\t\tmodel,\n\t\t\t\tdata: unsafeData\n\t\t\t});\n\t\t\tlet data = unsafeData;\n\t\t\tif (!config.disableTransformInput) data = await transformInput(unsafeData, modelKey, \"update\");\n\t\t\tdebugLog({ method: \"update\" }, `${formatTransactionId(thisTransactionId)} ${formatStep(2, 4)}`, `${formatMethod(\"update\")} ${formatAction(\"Parsed Input\")}:`, {\n\t\t\t\tmodel,\n\t\t\t\tdata\n\t\t\t});\n\t\t\tconst res = await withSpan(`db update ${model}`, {\n\t\t\t\t[ATTR_DB_OPERATION_NAME]: \"update\",\n\t\t\t\t[ATTR_DB_COLLECTION_NAME]: model\n\t\t\t}, () => adapterInstance.update({\n\t\t\t\tmodel,\n\t\t\t\tmodelKey,\n\t\t\t\twhere,\n\t\t\t\tupdate: data\n\t\t\t}));\n\t\t\tdebugLog({ method: \"update\" }, `${formatTransactionId(thisTransactionId)} ${formatStep(3, 4)}`, `${formatMethod(\"update\")} ${formatAction(\"DB Result\")}:`, {\n\t\t\t\tmodel,\n\t\t\t\tdata: res\n\t\t\t});\n\t\t\tlet transformed = res;\n\t\t\tif (!config.disableTransformOutput) transformed = await transformOutput(res, modelKey, void 0, void 0);\n\t\t\tdebugLog({ method: \"update\" }, `${formatTransactionId(thisTransactionId)} ${formatStep(4, 4)}`, `${formatMethod(\"update\")} ${formatAction(\"Parsed Result\")}:`, {\n\t\t\t\tmodel,\n\t\t\t\tdata: transformed\n\t\t\t});\n\t\t\treturn transformed;\n\t\t},\n\t\tupdateMany: async ({ model: inputModel, where: unsafeWhere, update: unsafeData }) => {\n\t\t\ttransactionId++;\n\t\t\tconst thisTransactionId = transactionId;\n\t\t\tconst modelKey = getDefaultModelName(inputModel);\n\t\t\tconst model = getModelName(modelKey);\n\t\t\tconst where = transformWhereClause({\n\t\t\t\tmodel: modelKey,\n\t\t\t\twhere: unsafeWhere,\n\t\t\t\taction: \"updateMany\"\n\t\t\t});\n\t\t\tdebugLog({ method: \"updateMany\" }, `${formatTransactionId(thisTransactionId)} ${formatStep(1, 4)}`, `${formatMethod(\"updateMany\")} ${formatAction(\"Unsafe Input\")}:`, {\n\t\t\t\tmodel,\n\t\t\t\tdata: unsafeData\n\t\t\t});\n\t\t\tlet data = unsafeData;\n\t\t\tif (!config.disableTransformInput) data = await transformInput(unsafeData, modelKey, \"update\");\n\t\t\tdebugLog({ method: \"updateMany\" }, `${formatTransactionId(thisTransactionId)} ${formatStep(2, 4)}`, `${formatMethod(\"updateMany\")} ${formatAction(\"Parsed Input\")}:`, {\n\t\t\t\tmodel,\n\t\t\t\tdata\n\t\t\t});\n\t\t\tconst updatedCount = await withSpan(`db updateMany ${model}`, {\n\t\t\t\t[ATTR_DB_OPERATION_NAME]: \"updateMany\",\n\t\t\t\t[ATTR_DB_COLLECTION_NAME]: model\n\t\t\t}, () => adapterInstance.updateMany({\n\t\t\t\tmodel,\n\t\t\t\tmodelKey,\n\t\t\t\twhere,\n\t\t\t\tupdate: data\n\t\t\t}));\n\t\t\tif (typeof updatedCount !== \"number\" || !Number.isFinite(updatedCount)) throw new BetterAuthError(`Adapter \"${config.adapterId}\" updateMany must return a finite number affected row count.`);\n\t\t\tdebugLog({ method: \"updateMany\" }, `${formatTransactionId(thisTransactionId)} ${formatStep(3, 4)}`, `${formatMethod(\"updateMany\")} ${formatAction(\"DB Result\")}:`, {\n\t\t\t\tmodel,\n\t\t\t\tdata: updatedCount\n\t\t\t});\n\t\t\tdebugLog({ method: \"updateMany\" }, `${formatTransactionId(thisTransactionId)} ${formatStep(4, 4)}`, `${formatMethod(\"updateMany\")} ${formatAction(\"Parsed Result\")}:`, {\n\t\t\t\tmodel,\n\t\t\t\tdata: updatedCount\n\t\t\t});\n\t\t\treturn updatedCount;\n\t\t},\n\t\tfindOne: async ({ model: inputModel, where: unsafeWhere, select, join: unsafeJoin }) => {\n\t\t\ttransactionId++;\n\t\t\tconst thisTransactionId = transactionId;\n\t\t\tconst modelKey = getDefaultModelName(inputModel);\n\t\t\tconst model = getModelName(modelKey);\n\t\t\tconst where = transformWhereClause({\n\t\t\t\tmodel: modelKey,\n\t\t\t\twhere: unsafeWhere,\n\t\t\t\taction: \"findOne\"\n\t\t\t});\n\t\t\tlet join;\n\t\t\tlet passJoinToAdapter = true;\n\t\t\tif (!config.disableTransformJoin) {\n\t\t\t\tconst result = transformJoinClause(modelKey, unsafeJoin, select);\n\t\t\t\tif (result) {\n\t\t\t\t\tjoin = result.join;\n\t\t\t\t\tselect = result.select;\n\t\t\t\t}\n\t\t\t\tif (!options.advanced?.database?.joins && join && Object.keys(join).length > 0) passJoinToAdapter = false;\n\t\t\t} else join = unsafeJoin;\n\t\t\tdebugLog({ method: \"findOne\" }, `${formatTransactionId(thisTransactionId)} ${formatStep(1, 3)}`, `${formatMethod(\"findOne\")}:`, {\n\t\t\t\tmodel,\n\t\t\t\twhere,\n\t\t\t\tselect,\n\t\t\t\tjoin\n\t\t\t});\n\t\t\tconst res = await withSpan(`db findOne ${model}`, {\n\t\t\t\t[ATTR_DB_OPERATION_NAME]: \"findOne\",\n\t\t\t\t[ATTR_DB_COLLECTION_NAME]: model\n\t\t\t}, () => adapterInstance.findOne({\n\t\t\t\tmodel,\n\t\t\t\tmodelKey,\n\t\t\t\twhere,\n\t\t\t\tselect,\n\t\t\t\tjoin: passJoinToAdapter ? join : void 0\n\t\t\t}));\n\t\t\tdebugLog({ method: \"findOne\" }, `${formatTransactionId(thisTransactionId)} ${formatStep(2, 3)}`, `${formatMethod(\"findOne\")} ${formatAction(\"DB Result\")}:`, {\n\t\t\t\tmodel,\n\t\t\t\tdata: res\n\t\t\t});\n\t\t\tlet transformed = res;\n\t\t\tif (!config.disableTransformOutput) transformed = await transformOutput(res, modelKey, select, join);\n\t\t\tdebugLog({ method: \"findOne\" }, `${formatTransactionId(thisTransactionId)} ${formatStep(3, 3)}`, `${formatMethod(\"findOne\")} ${formatAction(\"Parsed Result\")}:`, {\n\t\t\t\tmodel,\n\t\t\t\tdata: transformed\n\t\t\t});\n\t\t\treturn transformed;\n\t\t},\n\t\tfindMany: async ({ model: inputModel, where: unsafeWhere, limit: unsafeLimit, select, sortBy, offset, join: unsafeJoin }) => {\n\t\t\ttransactionId++;\n\t\t\tconst thisTransactionId = transactionId;\n\t\t\tconst limit = unsafeLimit ?? options.advanced?.database?.defaultFindManyLimit ?? 100;\n\t\t\tconst modelKey = getDefaultModelName(inputModel);\n\t\t\tconst model = getModelName(modelKey);\n\t\t\tconst where = transformWhereClause({\n\t\t\t\tmodel: modelKey,\n\t\t\t\twhere: unsafeWhere,\n\t\t\t\taction: \"findMany\"\n\t\t\t});\n\t\t\tlet join;\n\t\t\tlet passJoinToAdapter = true;\n\t\t\tif (!config.disableTransformJoin) {\n\t\t\t\tconst result = transformJoinClause(modelKey, unsafeJoin, select);\n\t\t\t\tif (result) {\n\t\t\t\t\tjoin = result.join;\n\t\t\t\t\tselect = result.select;\n\t\t\t\t}\n\t\t\t\tif (!options.advanced?.database?.joins && join && Object.keys(join).length > 0) passJoinToAdapter = false;\n\t\t\t} else join = unsafeJoin;\n\t\t\tdebugLog({ method: \"findMany\" }, `${formatTransactionId(thisTransactionId)} ${formatStep(1, 3)}`, `${formatMethod(\"findMany\")}:`, {\n\t\t\t\tmodel,\n\t\t\t\twhere,\n\t\t\t\tlimit,\n\t\t\t\tsortBy,\n\t\t\t\toffset,\n\t\t\t\tjoin\n\t\t\t});\n\t\t\tconst res = await withSpan(`db findMany ${model}`, {\n\t\t\t\t[ATTR_DB_OPERATION_NAME]: \"findMany\",\n\t\t\t\t[ATTR_DB_COLLECTION_NAME]: model\n\t\t\t}, () => adapterInstance.findMany({\n\t\t\t\tmodel,\n\t\t\t\tmodelKey,\n\t\t\t\twhere,\n\t\t\t\tlimit,\n\t\t\t\tselect,\n\t\t\t\tsortBy,\n\t\t\t\toffset,\n\t\t\t\tjoin: passJoinToAdapter ? join : void 0\n\t\t\t}));\n\t\t\tdebugLog({ method: \"findMany\" }, `${formatTransactionId(thisTransactionId)} ${formatStep(2, 3)}`, `${formatMethod(\"findMany\")} ${formatAction(\"DB Result\")}:`, {\n\t\t\t\tmodel,\n\t\t\t\tdata: res\n\t\t\t});\n\t\t\tlet transformed = res;\n\t\t\tif (!config.disableTransformOutput) transformed = await Promise.all(res.map(async (r) => {\n\t\t\t\treturn await transformOutput(r, modelKey, void 0, join);\n\t\t\t}));\n\t\t\tdebugLog({ method: \"findMany\" }, `${formatTransactionId(thisTransactionId)} ${formatStep(3, 3)}`, `${formatMethod(\"findMany\")} ${formatAction(\"Parsed Result\")}:`, {\n\t\t\t\tmodel,\n\t\t\t\tdata: transformed\n\t\t\t});\n\t\t\treturn transformed;\n\t\t},\n\t\tdelete: async ({ model: inputModel, where: unsafeWhere }) => {\n\t\t\ttransactionId++;\n\t\t\tconst thisTransactionId = transactionId;\n\t\t\tconst modelKey = getDefaultModelName(inputModel);\n\t\t\tconst model = getModelName(modelKey);\n\t\t\tconst where = transformWhereClause({\n\t\t\t\tmodel: modelKey,\n\t\t\t\twhere: unsafeWhere,\n\t\t\t\taction: \"delete\"\n\t\t\t});\n\t\t\tdebugLog({ method: \"delete\" }, `${formatTransactionId(thisTransactionId)} ${formatStep(1, 2)}`, `${formatMethod(\"delete\")}:`, {\n\t\t\t\tmodel,\n\t\t\t\twhere\n\t\t\t});\n\t\t\tawait withSpan(`db delete ${model}`, {\n\t\t\t\t[ATTR_DB_OPERATION_NAME]: \"delete\",\n\t\t\t\t[ATTR_DB_COLLECTION_NAME]: model\n\t\t\t}, () => adapterInstance.delete({\n\t\t\t\tmodel,\n\t\t\t\tmodelKey,\n\t\t\t\twhere\n\t\t\t}));\n\t\t\tdebugLog({ method: \"delete\" }, `${formatTransactionId(thisTransactionId)} ${formatStep(2, 2)}`, `${formatMethod(\"delete\")} ${formatAction(\"DB Result\")}:`, { model });\n\t\t},\n\t\tdeleteMany: async ({ model: inputModel, where: unsafeWhere }) => {\n\t\t\ttransactionId++;\n\t\t\tconst thisTransactionId = transactionId;\n\t\t\tconst modelKey = getDefaultModelName(inputModel);\n\t\t\tconst model = getModelName(modelKey);\n\t\t\tconst where = transformWhereClause({\n\t\t\t\tmodel: modelKey,\n\t\t\t\twhere: unsafeWhere,\n\t\t\t\taction: \"deleteMany\"\n\t\t\t});\n\t\t\tdebugLog({ method: \"deleteMany\" }, `${formatTransactionId(thisTransactionId)} ${formatStep(1, 2)}`, `${formatMethod(\"deleteMany\")} ${formatAction(\"DeleteMany\")}:`, {\n\t\t\t\tmodel,\n\t\t\t\twhere\n\t\t\t});\n\t\t\tconst res = await withSpan(`db deleteMany ${model}`, {\n\t\t\t\t[ATTR_DB_OPERATION_NAME]: \"deleteMany\",\n\t\t\t\t[ATTR_DB_COLLECTION_NAME]: model\n\t\t\t}, () => adapterInstance.deleteMany({\n\t\t\t\tmodel,\n\t\t\t\tmodelKey,\n\t\t\t\twhere\n\t\t\t}));\n\t\t\tdebugLog({ method: \"deleteMany\" }, `${formatTransactionId(thisTransactionId)} ${formatStep(2, 2)}`, `${formatMethod(\"deleteMany\")} ${formatAction(\"DB Result\")}:`, {\n\t\t\t\tmodel,\n\t\t\t\tdata: res\n\t\t\t});\n\t\t\treturn res;\n\t\t},\n\t\tconsumeOne: async ({ model: inputModel, where: unsafeWhere }) => {\n\t\t\ttransactionId++;\n\t\t\tconst thisTransactionId = transactionId;\n\t\t\tconst modelKey = getDefaultModelName(inputModel);\n\t\t\tconst model = getModelName(modelKey);\n\t\t\tconst where = transformWhereClause({\n\t\t\t\tmodel: modelKey,\n\t\t\t\twhere: unsafeWhere,\n\t\t\t\taction: \"consumeOne\"\n\t\t\t});\n\t\t\tdebugLog({ method: \"consumeOne\" }, `${formatTransactionId(thisTransactionId)} ${formatStep(1, 3)}`, `${formatMethod(\"consumeOne\")} ${formatAction(\"ConsumeOne\")}:`, {\n\t\t\t\tmodel,\n\t\t\t\twhere\n\t\t\t});\n\t\t\tconst res = await withSpan(`db consumeOne ${model}`, {\n\t\t\t\t[ATTR_DB_OPERATION_NAME]: \"consumeOne\",\n\t\t\t\t[ATTR_DB_COLLECTION_NAME]: model\n\t\t\t}, () => adapterInstance.consumeOne ? adapterInstance.consumeOne({\n\t\t\t\tmodel,\n\t\t\t\tmodelKey,\n\t\t\t\twhere\n\t\t\t}) : atomicFallbacks.consumeOne({\n\t\t\t\tmodel,\n\t\t\t\tmodelKey,\n\t\t\t\twhere\n\t\t\t}));\n\t\t\tdebugLog({ method: \"consumeOne\" }, `${formatTransactionId(thisTransactionId)} ${formatStep(2, 3)}`, `${formatMethod(\"consumeOne\")} ${formatAction(\"DB Result\")}:`, {\n\t\t\t\tmodel,\n\t\t\t\tdata: res\n\t\t\t});\n\t\t\tlet transformed = res;\n\t\t\tif (!config.disableTransformOutput && res) transformed = await transformOutput(res, modelKey, void 0, void 0);\n\t\t\tdebugLog({ method: \"consumeOne\" }, `${formatTransactionId(thisTransactionId)} ${formatStep(3, 3)}`, `${formatMethod(\"consumeOne\")} ${formatAction(\"Parsed Result\")}:`, {\n\t\t\t\tmodel,\n\t\t\t\tdata: transformed\n\t\t\t});\n\t\t\treturn transformed;\n\t\t},\n\t\tincrementOne: async ({ model: inputModel, where: unsafeWhere, increment: unsafeIncrement, set: unsafeSet }) => {\n\t\t\tconst hasIncrement = Object.keys(unsafeIncrement).length > 0;\n\t\t\tconst hasSet = !!unsafeSet && Object.keys(unsafeSet).length > 0;\n\t\t\tif (!hasIncrement && !hasSet) throw new BetterAuthError(\"incrementOne requires a non-empty `increment` or `set`; both were empty.\");\n\t\t\ttransactionId++;\n\t\t\tconst thisTransactionId = transactionId;\n\t\t\tconst modelKey = getDefaultModelName(inputModel);\n\t\t\tconst model = getModelName(modelKey);\n\t\t\tconst where = transformWhereClause({\n\t\t\t\tmodel: modelKey,\n\t\t\t\twhere: unsafeWhere,\n\t\t\t\taction: \"incrementOne\"\n\t\t\t});\n\t\t\tdebugLog({ method: \"incrementOne\" }, `${formatTransactionId(thisTransactionId)} ${formatStep(1, 3)}`, `${formatMethod(\"incrementOne\")} ${formatAction(\"IncrementOne\")}:`, {\n\t\t\t\tmodel,\n\t\t\t\twhere,\n\t\t\t\tincrement: unsafeIncrement,\n\t\t\t\tset: unsafeSet\n\t\t\t});\n\t\t\tconst mappedKeys = config.mapKeysTransformInput ?? {};\n\t\t\tconst increment = {};\n\t\t\tfor (const [field, delta] of Object.entries(unsafeIncrement)) increment[mappedKeys[field] || getFieldName({\n\t\t\t\tmodel: modelKey,\n\t\t\t\tfield\n\t\t\t})] = delta;\n\t\t\tlet set;\n\t\t\tif (unsafeSet && !config.disableTransformInput) set = await transformInput(unsafeSet, modelKey, \"update\");\n\t\t\telse set = unsafeSet;\n\t\t\tif (Object.keys(increment).length === 0 && (!set || Object.keys(set).length === 0)) throw new BetterAuthError(\"incrementOne resolved to an empty update: every increment/set field was unknown to the schema or transformed away.\");\n\t\t\tconst res = await withSpan(`db incrementOne ${model}`, {\n\t\t\t\t[ATTR_DB_OPERATION_NAME]: \"incrementOne\",\n\t\t\t\t[ATTR_DB_COLLECTION_NAME]: model\n\t\t\t}, () => adapterInstance.incrementOne ? adapterInstance.incrementOne({\n\t\t\t\tmodel,\n\t\t\t\tmodelKey,\n\t\t\t\twhere,\n\t\t\t\tincrement,\n\t\t\t\tset\n\t\t\t}) : atomicFallbacks.incrementOne({\n\t\t\t\tmodel,\n\t\t\t\tmodelKey,\n\t\t\t\twhere,\n\t\t\t\tincrement,\n\t\t\t\tset\n\t\t\t}));\n\t\t\tdebugLog({ method: \"incrementOne\" }, `${formatTransactionId(thisTransactionId)} ${formatStep(2, 3)}`, `${formatMethod(\"incrementOne\")} ${formatAction(\"DB Result\")}:`, {\n\t\t\t\tmodel,\n\t\t\t\tdata: res\n\t\t\t});\n\t\t\tlet transformed = res;\n\t\t\tif (!config.disableTransformOutput && res) transformed = await transformOutput(res, modelKey, void 0, void 0);\n\t\t\tdebugLog({ method: \"incrementOne\" }, `${formatTransactionId(thisTransactionId)} ${formatStep(3, 3)}`, `${formatMethod(\"incrementOne\")} ${formatAction(\"Parsed Result\")}:`, {\n\t\t\t\tmodel,\n\t\t\t\tdata: transformed\n\t\t\t});\n\t\t\treturn transformed;\n\t\t},\n\t\tcount: async ({ model: inputModel, where: unsafeWhere }) => {\n\t\t\ttransactionId++;\n\t\t\tconst thisTransactionId = transactionId;\n\t\t\tconst modelKey = getDefaultModelName(inputModel);\n\t\t\tconst model = getModelName(modelKey);\n\t\t\tconst where = transformWhereClause({\n\t\t\t\tmodel: modelKey,\n\t\t\t\twhere: unsafeWhere,\n\t\t\t\taction: \"count\"\n\t\t\t});\n\t\t\tdebugLog({ method: \"count\" }, `${formatTransactionId(thisTransactionId)} ${formatStep(1, 2)}`, `${formatMethod(\"count\")}:`, {\n\t\t\t\tmodel,\n\t\t\t\twhere\n\t\t\t});\n\t\t\tconst res = await withSpan(`db count ${model}`, {\n\t\t\t\t[ATTR_DB_OPERATION_NAME]: \"count\",\n\t\t\t\t[ATTR_DB_COLLECTION_NAME]: model\n\t\t\t}, () => adapterInstance.count({\n\t\t\t\tmodel,\n\t\t\t\tmodelKey,\n\t\t\t\twhere\n\t\t\t}));\n\t\t\tdebugLog({ method: \"count\" }, `${formatTransactionId(thisTransactionId)} ${formatStep(2, 2)}`, `${formatMethod(\"count\")}:`, {\n\t\t\t\tmodel,\n\t\t\t\tdata: res\n\t\t\t});\n\t\t\treturn res;\n\t\t},\n\t\tcreateSchema: adapterInstance.createSchema ? async (_, file) => {\n\t\t\tconst tables = getAuthTables(options);\n\t\t\tif (options.secondaryStorage && !options.session?.storeSessionInDatabase) delete tables.session;\n\t\t\treturn adapterInstance.createSchema({\n\t\t\t\tfile,\n\t\t\t\ttables\n\t\t\t});\n\t\t} : void 0,\n\t\toptions: {\n\t\t\tadapterConfig: config,\n\t\t\t...adapterInstance.options ?? {}\n\t\t},\n\t\tid: config.adapterId,\n\t\t...config.debugLogs?.isRunningAdapterTests ? { adapterTestDebugLogs: {\n\t\t\tresetDebugLogs() {\n\t\t\t\tdebugLogs = debugLogs.filter((log) => log.instance !== uniqueAdapterFactoryInstanceId);\n\t\t\t},\n\t\t\tprintDebugLogs() {\n\t\t\t\tconst separator = `─`.repeat(80);\n\t\t\t\tconst logs = debugLogs.filter((log) => log.instance === uniqueAdapterFactoryInstanceId);\n\t\t\t\tif (logs.length === 0) return;\n\t\t\t\tconst log = logs.reverse().map((log) => {\n\t\t\t\t\tlog.args[0] = `\\n${log.args[0]}`;\n\t\t\t\t\treturn [...log.args, \"\\n\"];\n\t\t\t\t}).reduce((prev, curr) => {\n\t\t\t\t\treturn [...curr, ...prev];\n\t\t\t\t}, [`\\n${separator}`]);\n\t\t\t\tconsole.log(...log);\n\t\t\t}\n\t\t} } : {}\n\t};\n\treturn adapter;\n};\nfunction formatTransactionId(transactionId) {\n\tif (getColorDepth() < 8) return `#${transactionId}`;\n\treturn `${TTY_COLORS.fg.magenta}#${transactionId}${TTY_COLORS.reset}`;\n}\nfunction formatStep(step, total) {\n\treturn `${TTY_COLORS.bg.black}${TTY_COLORS.fg.yellow}[${step}/${total}]${TTY_COLORS.reset}`;\n}\nfunction formatMethod(method) {\n\treturn `${TTY_COLORS.bright}${method}${TTY_COLORS.reset}`;\n}\nfunction formatAction(action) {\n\treturn `${TTY_COLORS.dim}(${action})${TTY_COLORS.reset}`;\n}\n//#endregion\nexport { createAdapterFactory };\n"],"ignoreList":[0,1,2,3,4,5,6],"mappings":"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"}
1
+ {"version":3,"file":"factory-g3i_Ffi5.js","names":["z.union","z.string","z.number","z.boolean","z.date","z.record","z.unknown","z.object","union","createLogger","number","record","string","TTY_COLORS","createWithSpan","ATTR_DB_OPERATION_NAME","boolean","getAuthTables","date","unknown","getColorDepth","safeJSONParse","initGetIdField","initGetDefaultModelName","ATTR_DB_COLLECTION_NAME","object","BetterAuthError","initGetDefaultFieldName","getDefaultModelName","inputModel","field","modelKey","f","schema","result","_","initGetFieldAttributes","getDefaultFieldName","idField","defaultModelName","model","defaultFieldName","fields","fieldAttributes","initGetFieldName","getFieldName","modelName","fieldName","initGetModelName","defaultModelKey","usePlural","withApplyDefault","action","value","MAX_ATTEMPTS","scalar","readSchema","setSchema","assignments","values","mutationSchema","counterSchema","createAtomicFallbacks","context","outputId","idWhere","mappedId","row","id","condition","readRow","adapter","adapterId","snapshotGuard","request","hasOr","clause","guard","keys","changedOne","count","consumeOne","where","incrementOne","mutation","deltas","increment","set","attempt","update","delta","previous","current","next","debugLogs","transactionId","createAsIsTransaction","fn","createAdapterFactory","customAdapter","cfg","withSpan","options","uniqueAdapterFactoryInstanceId","config","debugLog","args","logger","method","getModelName","getFieldAttributes","transformInput","transformedData","newMappedKeys","useNumberId","forceAllowId","data","newFieldName","newValue","x","transformOutput","transformSingleOutput","tableSchema","idKey","v","key","select","originalKey","join","requiredModels","joinConfig","joinedData","handleFallbackJoin","transformed","item","transformedItem","transformWhereClause","unsafe_field","w","operator","fieldAttr","parsed","n","error","transformJoinClause","unsanitizedJoin","transformedJoin","defaultBaseModelName","baseModel","foreignKeys","isForwardJoin","foreignKey","foreignKeyAttributes","from","to","requiredSelectField","isUnique","limit","baseData","joinModel","adapterInstance","lazyLoadTransaction","atomicFallbacks","cb","unsafeData","thisTransactionId","stack","i","formatTransactionId","formatStep","formatMethod","formatAction","res","unsafeWhere","updatedCount","unsafeJoin","passJoinToAdapter","unsafeLimit","r","unsafeIncrement","unsafeSet","hasIncrement","hasSet","mappedKeys","tables","log","separator","logs","curr","prev","step","total"],"sources":["../../../../../node_modules/.pnpm/@better-auth+core@1.8.0-beta.2_@better-auth+utils@0.5.0_@better-fetch+fetch@1.3.2_bette_ae4ec27bd601b85ec1331456bd274772/node_modules/@better-auth/core/dist/db/adapter/get-default-field-name.mjs","../../../../../node_modules/.pnpm/@better-auth+core@1.8.0-beta.2_@better-auth+utils@0.5.0_@better-fetch+fetch@1.3.2_bette_ae4ec27bd601b85ec1331456bd274772/node_modules/@better-auth/core/dist/db/adapter/get-field-attributes.mjs","../../../../../node_modules/.pnpm/@better-auth+core@1.8.0-beta.2_@better-auth+utils@0.5.0_@better-fetch+fetch@1.3.2_bette_ae4ec27bd601b85ec1331456bd274772/node_modules/@better-auth/core/dist/db/adapter/get-field-name.mjs","../../../../../node_modules/.pnpm/@better-auth+core@1.8.0-beta.2_@better-auth+utils@0.5.0_@better-fetch+fetch@1.3.2_bette_ae4ec27bd601b85ec1331456bd274772/node_modules/@better-auth/core/dist/db/adapter/get-model-name.mjs","../../../../../node_modules/.pnpm/@better-auth+core@1.8.0-beta.2_@better-auth+utils@0.5.0_@better-fetch+fetch@1.3.2_bette_ae4ec27bd601b85ec1331456bd274772/node_modules/@better-auth/core/dist/db/adapter/utils.mjs","../../../../../node_modules/.pnpm/@better-auth+core@1.8.0-beta.2_@better-auth+utils@0.5.0_@better-fetch+fetch@1.3.2_bette_ae4ec27bd601b85ec1331456bd274772/node_modules/@better-auth/core/dist/db/adapter/atomic-fallback.mjs","../../../../../node_modules/.pnpm/@better-auth+core@1.8.0-beta.2_@better-auth+utils@0.5.0_@better-fetch+fetch@1.3.2_bette_ae4ec27bd601b85ec1331456bd274772/node_modules/@better-auth/core/dist/db/adapter/factory.mjs"],"sourcesContent":["import { BetterAuthError } from \"../../error/index.mjs\";\nimport { initGetDefaultModelName } from \"./get-default-model-name.mjs\";\n//#region src/db/adapter/get-default-field-name.ts\nconst initGetDefaultFieldName = ({ schema, usePlural }) => {\n\tconst getDefaultModelName = initGetDefaultModelName({\n\t\tschema,\n\t\tusePlural\n\t});\n\t/**\n\t* This function helps us get the default field name from the schema defined by devs.\n\t* Often times, the user will be using the `fieldName` which could had been customized by the users.\n\t* This function helps us get the actual field name useful to match against the schema. (eg: schema[model].fields[field])\n\t*\n\t* If it's still unclear what this does:\n\t*\n\t* 1. User can define a custom fieldName.\n\t* 2. When using a custom fieldName, doing something like `schema[model].fields[field]` will not work.\n\t*/\n\tconst getDefaultFieldName = ({ field, model: inputModel }) => {\n\t\tif (field === \"id\" || field === \"_id\") return \"id\";\n\t\tconst modelKey = getDefaultModelName(inputModel);\n\t\tlet f = schema[modelKey]?.fields[field];\n\t\tif (!f) {\n\t\t\tconst result = Object.entries(schema[modelKey].fields).find(([_, f]) => f.fieldName === field);\n\t\t\tif (result) {\n\t\t\t\tf = result[1];\n\t\t\t\tfield = result[0];\n\t\t\t}\n\t\t}\n\t\tif (!f) throw new BetterAuthError(`Field ${field} not found in model ${modelKey}`);\n\t\treturn field;\n\t};\n\treturn getDefaultFieldName;\n};\n//#endregion\nexport { initGetDefaultFieldName };\n","import { BetterAuthError } from \"../../error/index.mjs\";\nimport { initGetDefaultModelName } from \"./get-default-model-name.mjs\";\nimport { initGetIdField } from \"./get-id-field.mjs\";\nimport { initGetDefaultFieldName } from \"./get-default-field-name.mjs\";\n//#region src/db/adapter/get-field-attributes.ts\nconst initGetFieldAttributes = ({ usePlural, schema, options, customIdGenerator, disableIdGeneration }) => {\n\tconst getDefaultModelName = initGetDefaultModelName({\n\t\tusePlural,\n\t\tschema\n\t});\n\tconst getDefaultFieldName = initGetDefaultFieldName({\n\t\tusePlural,\n\t\tschema\n\t});\n\tconst idField = initGetIdField({\n\t\tusePlural,\n\t\tschema,\n\t\toptions,\n\t\tcustomIdGenerator,\n\t\tdisableIdGeneration\n\t});\n\tconst getFieldAttributes = ({ model, field }) => {\n\t\tconst defaultModelName = getDefaultModelName(model);\n\t\tconst defaultFieldName = getDefaultFieldName({\n\t\t\tfield,\n\t\t\tmodel: defaultModelName\n\t\t});\n\t\tconst fields = schema[defaultModelName].fields;\n\t\tfields.id = idField({ customModelName: defaultModelName });\n\t\tconst fieldAttributes = fields[defaultFieldName];\n\t\tif (!fieldAttributes) throw new BetterAuthError(`Field ${field} not found in model ${model}`);\n\t\treturn fieldAttributes;\n\t};\n\treturn getFieldAttributes;\n};\n//#endregion\nexport { initGetFieldAttributes };\n","import { initGetDefaultModelName } from \"./get-default-model-name.mjs\";\nimport { initGetDefaultFieldName } from \"./get-default-field-name.mjs\";\n//#region src/db/adapter/get-field-name.ts\nconst initGetFieldName = ({ schema, usePlural }) => {\n\tconst getDefaultModelName = initGetDefaultModelName({\n\t\tschema,\n\t\tusePlural\n\t});\n\tconst getDefaultFieldName = initGetDefaultFieldName({\n\t\tschema,\n\t\tusePlural\n\t});\n\t/**\n\t* Get the field name which is expected to be saved in the database based on the user's schema.\n\t*\n\t* This function is useful if you need to save the field name to the database.\n\t*\n\t* For example, if the user has defined a custom field name for the `user` model, then you can use this function to get the actual field name from the schema.\n\t*/\n\tfunction getFieldName({ model: modelName, field: fieldName }) {\n\t\tconst model = getDefaultModelName(modelName);\n\t\tconst field = getDefaultFieldName({\n\t\t\tmodel,\n\t\t\tfield: fieldName\n\t\t});\n\t\treturn schema[model]?.fields[field]?.fieldName || field;\n\t}\n\treturn getFieldName;\n};\n//#endregion\nexport { initGetFieldName };\n","import { initGetDefaultModelName } from \"./get-default-model-name.mjs\";\n//#region src/db/adapter/get-model-name.ts\nconst initGetModelName = ({ usePlural, schema }) => {\n\tconst getDefaultModelName = initGetDefaultModelName({\n\t\tschema,\n\t\tusePlural\n\t});\n\t/**\n\t* Users can overwrite the default model of some tables. This function helps find the correct model name.\n\t* Furthermore, if the user passes `usePlural` as true in their adapter config,\n\t* then we should return the model name ending with an `s`.\n\t*/\n\tconst getModelName = (model) => {\n\t\tconst defaultModelKey = getDefaultModelName(model);\n\t\tif (schema && schema[defaultModelKey] && schema[defaultModelKey].modelName !== model) return usePlural ? `${schema[defaultModelKey].modelName}s` : schema[defaultModelKey].modelName;\n\t\treturn usePlural ? `${model}s` : model;\n\t};\n\treturn getModelName;\n};\n//#endregion\nexport { initGetModelName };\n","//#region src/db/adapter/utils.ts\nfunction withApplyDefault(value, field, action) {\n\tif (action === \"update\") {\n\t\tif (value === void 0 && field.onUpdate !== void 0) {\n\t\t\tif (typeof field.onUpdate === \"function\") return field.onUpdate();\n\t\t\treturn field.onUpdate;\n\t\t}\n\t\treturn value;\n\t}\n\tif (action === \"create\") {\n\t\tif (value === void 0 || field.required === true && value === null) {\n\t\t\tif (field.defaultValue !== void 0) {\n\t\t\t\tif (typeof field.defaultValue === \"function\") return field.defaultValue();\n\t\t\t\treturn field.defaultValue;\n\t\t\t}\n\t\t}\n\t}\n\treturn value;\n}\nfunction isObject(item) {\n\treturn item !== null && typeof item === \"object\" && !Array.isArray(item);\n}\nfunction deepmerge(target, source) {\n\tif (Array.isArray(target) && Array.isArray(source)) return [...target, ...source];\n\telse if (isObject(target) && isObject(source)) {\n\t\tconst result = { ...target };\n\t\tfor (const [key, value] of Object.entries(source)) {\n\t\t\tif (value === void 0) continue;\n\t\t\tif (key in target) result[key] = deepmerge(target[key], value);\n\t\t\telse result[key] = value;\n\t\t}\n\t\treturn result;\n\t}\n\treturn source;\n}\n//#endregion\nexport { deepmerge, withApplyDefault };\n","import { BetterAuthError } from \"../../error/index.mjs\";\nimport * as z from \"zod\";\n//#region src/db/adapter/atomic-fallback.ts\nconst MAX_ATTEMPTS = 5;\nconst scalar = z.union([\n\tz.string(),\n\tz.number(),\n\tz.boolean(),\n\tz.date()\n]).nullable();\nconst readSchema = z.record(z.string(), z.unknown()).nullish();\nconst setSchema = z.record(z.string(), z.unknown()).transform((values) => {\n\tconst assignments = {};\n\tfor (const [field, value] of Object.entries(values)) if (value !== void 0) assignments[field] = value;\n\treturn assignments;\n});\nconst mutationSchema = z.object({\n\tincrement: z.record(z.string(), z.number()),\n\tset: setSchema.optional()\n});\nconst counterSchema = z.number().nullish();\nfunction createAtomicFallbacks(context) {\n\tconst { adapter, adapterId } = context;\n\tconst outputId = Object.entries(context.mapKeysTransformOutput ?? {}).find(([, field]) => field === \"id\")?.[0] ?? \"id\";\n\tasync function idWhere(row, model, action) {\n\t\tconst mappedId = context.mapKeysTransformInput?.id || context.getFieldName({\n\t\t\tmodel,\n\t\t\tfield: \"id\"\n\t\t});\n\t\tif (row[mappedId] === void 0 || row[mappedId] === null) throw new BetterAuthError(`Adapter \"${context.adapterId}\" must return the row id for atomic fallbacks.`);\n\t\tconst id = (await context.transformOutput(row, model, [outputId], void 0))?.id;\n\t\tif (typeof id !== \"string\" && typeof id !== \"number\") throw new BetterAuthError(`Adapter \"${context.adapterId}\" must expose a logical string or number id through its output transform.`);\n\t\tconst [condition] = context.transformWhereClause({\n\t\t\tmodel,\n\t\t\twhere: [{\n\t\t\t\tfield: \"id\",\n\t\t\t\tvalue: id\n\t\t\t}],\n\t\t\taction\n\t\t});\n\t\tif (!condition) throw new BetterAuthError(\"The atomic fallback id condition was transformed away.\");\n\t\treturn condition;\n\t}\n\tasync function readRow({ model, modelKey, where }) {\n\t\tconst result = readSchema.safeParse(await adapter.findOne({\n\t\t\tmodel,\n\t\t\tmodelKey,\n\t\t\twhere\n\t\t}));\n\t\tif (!result.success) throw new BetterAuthError(`Adapter \"${adapterId}\" must return a row snapshot or null.`);\n\t\treturn result.data ?? null;\n\t}\n\tasync function snapshotGuard(row, fields, request, action) {\n\t\tconst id = await idWhere(row, request.modelKey, action);\n\t\tconst hasOr = request.where.some((clause) => clause.connector === \"OR\");\n\t\tconst guard = hasOr ? [id] : [...request.where, id];\n\t\tconst keys = new Set(fields);\n\t\tfor (const field of keys) {\n\t\t\tif (field === id.field) continue;\n\t\t\tconst value = scalar.safeParse(row[field] ?? null);\n\t\t\tif (!value.success) {\n\t\t\t\tif (hasOr && request.where.some((clause) => clause.field === field)) throw new BetterAuthError(`Adapter \"${adapterId}\" must implement native atomic methods for OR predicates on structured values.`);\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tguard.push({\n\t\t\t\tfield,\n\t\t\t\tvalue: value.data,\n\t\t\t\toperator: \"eq\",\n\t\t\t\tconnector: \"AND\",\n\t\t\t\tmode: \"sensitive\"\n\t\t\t});\n\t\t}\n\t\treturn guard;\n\t}\n\tfunction changedOne(count) {\n\t\tif (count !== 0 && count !== 1) throw new BetterAuthError(`Adapter \"${adapterId}\" must return an affected row count of 0 or 1 from an atomic fallback.`);\n\t\treturn count === 1;\n\t}\n\tasync function consumeOne(request) {\n\t\tconst { model, where } = request;\n\t\tconst row = await readRow(request);\n\t\tif (row === null) return null;\n\t\tconst guard = await snapshotGuard(row, [...Object.keys(row), ...where.map(({ field }) => field)], request, \"consumeOne\");\n\t\treturn changedOne(await adapter.deleteMany({\n\t\t\tmodel,\n\t\t\tmodelKey: request.modelKey,\n\t\t\twhere: guard\n\t\t})) ? row : null;\n\t}\n\tasync function incrementOne(request) {\n\t\tconst { model, where } = request;\n\t\tconst mutation = mutationSchema.safeParse(request);\n\t\tif (!mutation.success) throw new BetterAuthError(\"incrementOne requires finite increments and a set object for the atomic fallback.\");\n\t\tconst { increment, set } = mutation.data;\n\t\tconst deltas = Object.entries(increment);\n\t\tconst fields = [\n\t\t\t...where.map(({ field }) => field),\n\t\t\t...Object.keys(increment),\n\t\t\t...Object.keys(set ?? {})\n\t\t];\n\t\tfor (let attempt = 0; attempt < MAX_ATTEMPTS; attempt++) {\n\t\t\tconst row = await readRow(request);\n\t\t\tif (row === null) return null;\n\t\t\tconst update = { ...set };\n\t\t\tfor (const [field, delta] of deltas) {\n\t\t\t\tconst previous = counterSchema.safeParse(row[field]);\n\t\t\t\tif (!previous.success) throw new BetterAuthError(`Adapter \"${adapterId}\" must return finite numeric counter values or null for atomic increments.`);\n\t\t\t\tconst current = previous.data ?? 0;\n\t\t\t\tconst next = current + delta;\n\t\t\t\tif (!Number.isFinite(next) || delta !== 0 && next === current) throw new BetterAuthError(`Adapter \"${adapterId}\" cannot represent the requested counter increment safely.`);\n\t\t\t\tupdate[field] = next;\n\t\t\t}\n\t\t\tconst guard = await snapshotGuard(row, fields, request, \"incrementOne\");\n\t\t\tif (Object.entries(update).every(([field, value]) => {\n\t\t\t\tconst previous = row[field];\n\t\t\t\tif (previous instanceof Date && value instanceof Date) return previous.getTime() === value.getTime();\n\t\t\t\treturn Object.is(previous, value);\n\t\t\t})) return row;\n\t\t\tif (changedOne(await adapter.updateMany({\n\t\t\t\tmodel,\n\t\t\t\tmodelKey: request.modelKey,\n\t\t\t\twhere: guard,\n\t\t\t\tupdate\n\t\t\t}))) return {\n\t\t\t\t...row,\n\t\t\t\t...update\n\t\t\t};\n\t\t}\n\t\tthrow new BetterAuthError(`Adapter \"${adapterId}\" could not complete an atomic increment due to contention. Retry the operation or implement incrementOne natively.`);\n\t}\n\treturn {\n\t\tconsumeOne,\n\t\tincrementOne\n\t};\n}\n//#endregion\nexport { createAtomicFallbacks };\n","import { BetterAuthError } from \"../../error/index.mjs\";\nimport { getAuthTables } from \"../get-tables.mjs\";\nimport { getColorDepth } from \"../../env/color-depth.mjs\";\nimport { TTY_COLORS, createLogger } from \"../../env/logger.mjs\";\nimport { initGetDefaultModelName } from \"./get-default-model-name.mjs\";\nimport { initGetIdField } from \"./get-id-field.mjs\";\nimport { safeJSONParse } from \"../../utils/json.mjs\";\nimport { createAtomicFallbacks } from \"./atomic-fallback.mjs\";\nimport { initGetDefaultFieldName } from \"./get-default-field-name.mjs\";\nimport { initGetFieldAttributes } from \"./get-field-attributes.mjs\";\nimport { initGetFieldName } from \"./get-field-name.mjs\";\nimport { initGetModelName } from \"./get-model-name.mjs\";\nimport { withApplyDefault } from \"./utils.mjs\";\nimport { ATTR_DB_COLLECTION_NAME, ATTR_DB_OPERATION_NAME, createWithSpan } from \"@better-auth/core/instrumentation\";\n//#region src/db/adapter/factory.ts\nlet debugLogs = [];\nlet transactionId = -1;\nconst createAsIsTransaction = (adapter) => (fn) => fn(adapter);\nconst createAdapterFactory = ({ adapter: customAdapter, config: cfg }) => (options) => {\n\tconst withSpan = createWithSpan(options);\n\tconst uniqueAdapterFactoryInstanceId = Math.random().toString(36).substring(2, 15);\n\tconst config = {\n\t\t...cfg,\n\t\tsupportsBooleans: cfg.supportsBooleans ?? true,\n\t\tsupportsDates: cfg.supportsDates ?? true,\n\t\tsupportsJSON: cfg.supportsJSON ?? false,\n\t\tadapterName: cfg.adapterName ?? cfg.adapterId,\n\t\tsupportsNumericIds: cfg.supportsNumericIds ?? true,\n\t\tsupportsUUIDs: cfg.supportsUUIDs ?? false,\n\t\tsupportsArrays: cfg.supportsArrays ?? false,\n\t\ttransaction: cfg.transaction ?? false,\n\t\tdisableTransformInput: cfg.disableTransformInput ?? false,\n\t\tdisableTransformOutput: cfg.disableTransformOutput ?? false,\n\t\tdisableTransformJoin: cfg.disableTransformJoin ?? false\n\t};\n\tif (options.advanced?.database?.generateId === \"serial\" && config.supportsNumericIds === false) throw new BetterAuthError(`[${config.adapterName}] Your database or database adapter does not support numeric ids. Please disable \"useNumberId\" in your config.`);\n\tconst schema = getAuthTables(options);\n\tconst debugLog = (...args) => {\n\t\tif (config.debugLogs === true || typeof config.debugLogs === \"object\") {\n\t\t\tconst logger = createLogger({ level: \"info\" });\n\t\t\tif (typeof config.debugLogs === \"object\" && \"isRunningAdapterTests\" in config.debugLogs) {\n\t\t\t\tif (config.debugLogs.isRunningAdapterTests) {\n\t\t\t\t\targs.shift();\n\t\t\t\t\tdebugLogs.push({\n\t\t\t\t\t\tinstance: uniqueAdapterFactoryInstanceId,\n\t\t\t\t\t\targs\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (typeof config.debugLogs === \"object\" && config.debugLogs.logCondition && !config.debugLogs.logCondition?.()) return;\n\t\t\tif (typeof args[0] === \"object\" && \"method\" in args[0]) {\n\t\t\t\tconst method = args.shift().method;\n\t\t\t\tif (typeof config.debugLogs === \"object\") {\n\t\t\t\t\tif (method === \"create\" && !config.debugLogs.create) return;\n\t\t\t\t\telse if (method === \"update\" && !config.debugLogs.update) return;\n\t\t\t\t\telse if (method === \"updateMany\" && !config.debugLogs.updateMany) return;\n\t\t\t\t\telse if (method === \"findOne\" && !config.debugLogs.findOne) return;\n\t\t\t\t\telse if (method === \"findMany\" && !config.debugLogs.findMany) return;\n\t\t\t\t\telse if (method === \"delete\" && !config.debugLogs.delete) return;\n\t\t\t\t\telse if (method === \"deleteMany\" && !config.debugLogs.deleteMany) return;\n\t\t\t\t\telse if (method === \"consumeOne\" && !config.debugLogs.consumeOne) return;\n\t\t\t\t\telse if (method === \"incrementOne\" && !config.debugLogs.incrementOne) return;\n\t\t\t\t\telse if (method === \"count\" && !config.debugLogs.count) return;\n\t\t\t\t}\n\t\t\t\tlogger.info(`[${config.adapterName}]`, ...args);\n\t\t\t} else logger.info(`[${config.adapterName}]`, ...args);\n\t\t}\n\t};\n\tconst logger = createLogger(options.logger);\n\tconst getDefaultModelName = initGetDefaultModelName({\n\t\tusePlural: config.usePlural,\n\t\tschema\n\t});\n\tconst getDefaultFieldName = initGetDefaultFieldName({\n\t\tusePlural: config.usePlural,\n\t\tschema\n\t});\n\tconst getModelName = initGetModelName({\n\t\tusePlural: config.usePlural,\n\t\tschema\n\t});\n\tconst getFieldName = initGetFieldName({\n\t\tschema,\n\t\tusePlural: config.usePlural\n\t});\n\tconst idField = initGetIdField({\n\t\tschema,\n\t\toptions,\n\t\tusePlural: config.usePlural,\n\t\tdisableIdGeneration: config.disableIdGeneration,\n\t\tcustomIdGenerator: config.customIdGenerator,\n\t\tsupportsUUIDs: config.supportsUUIDs\n\t});\n\tconst getFieldAttributes = initGetFieldAttributes({\n\t\tschema,\n\t\toptions,\n\t\tusePlural: config.usePlural,\n\t\tdisableIdGeneration: config.disableIdGeneration,\n\t\tcustomIdGenerator: config.customIdGenerator\n\t});\n\tconst transformInput = async (data, defaultModelName, action, forceAllowId) => {\n\t\tconst transformedData = {};\n\t\tconst fields = schema[defaultModelName].fields;\n\t\tconst newMappedKeys = config.mapKeysTransformInput ?? {};\n\t\tconst useNumberId = options.advanced?.database?.generateId === \"serial\";\n\t\tfields.id = idField({\n\t\t\tcustomModelName: defaultModelName,\n\t\t\tforceAllowId: forceAllowId && \"id\" in data\n\t\t});\n\t\tfor (const field in fields) {\n\t\t\tlet value = data[field];\n\t\t\tconst fieldAttributes = fields[field];\n\t\t\tconst newFieldName = newMappedKeys[field] || fields[field].fieldName || field;\n\t\t\tif (value === void 0 && (fieldAttributes.defaultValue === void 0 && !fieldAttributes.transform?.input && !(action === \"update\" && fieldAttributes.onUpdate) || action === \"update\" && !fieldAttributes.onUpdate)) continue;\n\t\t\tif (fieldAttributes && fieldAttributes.type === \"date\" && !(value instanceof Date) && typeof value === \"string\") try {\n\t\t\t\tvalue = new Date(value);\n\t\t\t} catch {\n\t\t\t\tlogger.error(\"[Adapter Factory] Failed to convert string to date\", {\n\t\t\t\t\tvalue,\n\t\t\t\t\tfield\n\t\t\t\t});\n\t\t\t}\n\t\t\tlet newValue = withApplyDefault(value, fieldAttributes, action);\n\t\t\tif (fieldAttributes.transform?.input) newValue = await fieldAttributes.transform.input(newValue);\n\t\t\tif (fieldAttributes.references?.field === \"id\" && useNumberId) if (Array.isArray(newValue)) newValue = newValue.map((x) => x !== null ? Number(x) : null);\n\t\t\telse newValue = newValue !== null ? Number(newValue) : null;\n\t\t\telse if (config.supportsJSON === false && typeof newValue === \"object\" && fieldAttributes.type === \"json\") newValue = JSON.stringify(newValue);\n\t\t\telse if (config.supportsArrays === false && Array.isArray(newValue) && (fieldAttributes.type === \"string[]\" || fieldAttributes.type === \"number[]\")) newValue = JSON.stringify(newValue);\n\t\t\telse if (config.supportsDates === false && newValue instanceof Date && fieldAttributes.type === \"date\") newValue = newValue.toISOString();\n\t\t\telse if (config.supportsBooleans === false && typeof newValue === \"boolean\") newValue = newValue ? 1 : 0;\n\t\t\tif (config.customTransformInput) newValue = config.customTransformInput({\n\t\t\t\tdata: newValue,\n\t\t\t\taction,\n\t\t\t\tfield: newFieldName,\n\t\t\t\tfieldAttributes,\n\t\t\t\tmodel: getModelName(defaultModelName),\n\t\t\t\tschema,\n\t\t\t\toptions\n\t\t\t});\n\t\t\tif (newValue !== void 0) transformedData[newFieldName] = newValue;\n\t\t}\n\t\treturn transformedData;\n\t};\n\tconst transformOutput = async (data, inputModel, select = [], join) => {\n\t\tconst transformSingleOutput = async (data, inputModel, select = []) => {\n\t\t\tif (!data) return null;\n\t\t\tconst modelKey = getDefaultModelName(inputModel);\n\t\t\tconst newMappedKeys = config.mapKeysTransformOutput ?? {};\n\t\t\tconst transformedData = {};\n\t\t\tconst tableSchema = schema[modelKey].fields;\n\t\t\tconst idKey = Object.entries(newMappedKeys).find(([_, v]) => v === \"id\")?.[0];\n\t\t\ttableSchema[idKey ?? \"id\"] = { type: options.advanced?.database?.generateId === \"serial\" ? \"number\" : \"string\" };\n\t\t\tfor (const key in tableSchema) {\n\t\t\t\tif (select.length && !select.includes(key)) continue;\n\t\t\t\tconst field = tableSchema[key];\n\t\t\t\tif (field) {\n\t\t\t\t\tconst originalKey = field.fieldName || key;\n\t\t\t\t\tlet newValue = data[Object.entries(newMappedKeys).find(([_, v]) => v === originalKey)?.[0] || originalKey];\n\t\t\t\t\tif (field.transform?.output) newValue = await field.transform.output(newValue);\n\t\t\t\t\tconst newFieldName = newMappedKeys[key] || key;\n\t\t\t\t\tif (originalKey === \"id\" || field.references?.field === \"id\") {\n\t\t\t\t\t\tif (typeof newValue !== \"undefined\" && newValue !== null) newValue = String(newValue);\n\t\t\t\t\t} else if (config.supportsJSON === false && typeof newValue === \"string\" && field.type === \"json\") newValue = safeJSONParse(newValue);\n\t\t\t\t\telse if (config.supportsArrays === false && typeof newValue === \"string\" && (field.type === \"string[]\" || field.type === \"number[]\")) newValue = safeJSONParse(newValue);\n\t\t\t\t\telse if (config.supportsDates === false && typeof newValue === \"string\" && field.type === \"date\") newValue = new Date(newValue);\n\t\t\t\t\telse if (config.supportsBooleans === false && typeof newValue === \"number\" && field.type === \"boolean\") newValue = newValue === 1;\n\t\t\t\t\tif (config.customTransformOutput) newValue = config.customTransformOutput({\n\t\t\t\t\t\tdata: newValue,\n\t\t\t\t\t\tfield: newFieldName,\n\t\t\t\t\t\tfieldAttributes: field,\n\t\t\t\t\t\tselect,\n\t\t\t\t\t\tmodel: getModelName(modelKey),\n\t\t\t\t\t\tschema,\n\t\t\t\t\t\toptions\n\t\t\t\t\t});\n\t\t\t\t\ttransformedData[newFieldName] = newValue;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn transformedData;\n\t\t};\n\t\tif (!join || Object.keys(join).length === 0) return await transformSingleOutput(data, inputModel, select);\n\t\tconst modelKey = getDefaultModelName(inputModel);\n\t\tconst transformedData = await transformSingleOutput(data, modelKey, select);\n\t\tconst requiredModels = Object.entries(join).map(([model, joinConfig]) => ({\n\t\t\tmodelName: model,\n\t\t\tdefaultModelName: joinConfig.modelKey ?? getDefaultModelName(model),\n\t\t\tjoinConfig\n\t\t}));\n\t\tif (!data) return null;\n\t\tfor (const { modelName, defaultModelName, joinConfig } of requiredModels) {\n\t\t\tlet joinedData = await (async () => {\n\t\t\t\tif (options.advanced?.database?.joins) {\n\t\t\t\t\tif (modelName in data) return data[modelName];\n\t\t\t\t}\n\t\t\t\treturn await handleFallbackJoin({\n\t\t\t\t\tbaseModel: modelKey,\n\t\t\t\t\tbaseData: transformedData,\n\t\t\t\t\tjoinModel: modelName,\n\t\t\t\t\tspecificJoinConfig: joinConfig\n\t\t\t\t});\n\t\t\t})();\n\t\t\tif (joinedData === void 0 || joinedData === null) joinedData = joinConfig.relation === \"one-to-one\" ? null : [];\n\t\t\tif (joinConfig.relation === \"one-to-many\" && !Array.isArray(joinedData)) joinedData = [joinedData];\n\t\t\tconst transformed = [];\n\t\t\tif (Array.isArray(joinedData)) for (const item of joinedData) {\n\t\t\t\tconst transformedItem = await transformSingleOutput(item, defaultModelName, []);\n\t\t\t\ttransformed.push(transformedItem);\n\t\t\t}\n\t\t\telse {\n\t\t\t\tconst transformedItem = await transformSingleOutput(joinedData, defaultModelName, []);\n\t\t\t\ttransformed.push(transformedItem);\n\t\t\t}\n\t\t\ttransformedData[defaultModelName] = (joinConfig.relation === \"one-to-one\" ? transformed[0] : transformed) ?? null;\n\t\t}\n\t\treturn transformedData;\n\t};\n\tconst transformWhereClause = ({ model, where, action }) => {\n\t\tif (!where) return void 0;\n\t\tconst newMappedKeys = config.mapKeysTransformInput ?? {};\n\t\treturn where.map((w) => {\n\t\t\tconst { field: unsafe_field, value, operator = \"eq\", connector = \"AND\", mode = \"sensitive\" } = w;\n\t\t\tif (operator === \"in\") {\n\t\t\t\tif (!Array.isArray(value)) throw new BetterAuthError(\"Value must be an array\");\n\t\t\t}\n\t\t\tlet newValue = value;\n\t\t\tconst defaultModelName = getDefaultModelName(model);\n\t\t\tconst defaultFieldName = getDefaultFieldName({\n\t\t\t\tfield: unsafe_field,\n\t\t\t\tmodel\n\t\t\t});\n\t\t\tconst fieldName = newMappedKeys[defaultFieldName] || getFieldName({\n\t\t\t\tfield: defaultFieldName,\n\t\t\t\tmodel: defaultModelName\n\t\t\t});\n\t\t\tconst fieldAttr = getFieldAttributes({\n\t\t\t\tfield: defaultFieldName,\n\t\t\t\tmodel: defaultModelName\n\t\t\t});\n\t\t\tconst useNumberId = options.advanced?.database?.generateId === \"serial\";\n\t\t\tif (defaultFieldName === \"id\" || fieldAttr.references?.field === \"id\") {\n\t\t\t\tif (useNumberId) if (Array.isArray(value)) newValue = value.map(Number);\n\t\t\t\telse newValue = Number(value);\n\t\t\t}\n\t\t\tif (fieldAttr.type === \"date\" && value instanceof Date && !config.supportsDates) newValue = value.toISOString();\n\t\t\tif (fieldAttr.type === \"boolean\" && typeof newValue === \"string\") newValue = newValue === \"true\";\n\t\t\tif (fieldAttr.type === \"number\") {\n\t\t\t\tif (typeof newValue === \"string\" && newValue.trim() !== \"\") {\n\t\t\t\t\tconst parsed = Number(newValue);\n\t\t\t\t\tif (!Number.isNaN(parsed)) newValue = parsed;\n\t\t\t\t} else if (Array.isArray(newValue)) {\n\t\t\t\t\tconst parsed = newValue.map((v) => typeof v === \"string\" && v.trim() !== \"\" ? Number(v) : NaN);\n\t\t\t\t\tif (parsed.every((n) => !Number.isNaN(n))) newValue = parsed;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (fieldAttr.type === \"boolean\" && typeof newValue === \"boolean\" && !config.supportsBooleans) newValue = newValue ? 1 : 0;\n\t\t\tif (fieldAttr.type === \"json\" && typeof value === \"object\" && !config.supportsJSON) try {\n\t\t\t\tnewValue = JSON.stringify(value);\n\t\t\t} catch (error) {\n\t\t\t\tthrow new Error(`Failed to stringify JSON value for field ${fieldName}`, { cause: error });\n\t\t\t}\n\t\t\tif (config.customTransformInput) newValue = config.customTransformInput({\n\t\t\t\tdata: newValue,\n\t\t\t\tfieldAttributes: fieldAttr,\n\t\t\t\tfield: fieldName,\n\t\t\t\tmodel: getModelName(model),\n\t\t\t\tschema,\n\t\t\t\toptions,\n\t\t\t\taction\n\t\t\t});\n\t\t\treturn {\n\t\t\t\toperator,\n\t\t\t\tconnector,\n\t\t\t\tfield: fieldName,\n\t\t\t\tvalue: newValue,\n\t\t\t\tmode\n\t\t\t};\n\t\t});\n\t};\n\tconst transformJoinClause = (baseModel, unsanitizedJoin, select) => {\n\t\tif (!unsanitizedJoin) return void 0;\n\t\tif (Object.keys(unsanitizedJoin).length === 0) return void 0;\n\t\tconst transformedJoin = {};\n\t\tfor (const [model, join] of Object.entries(unsanitizedJoin)) {\n\t\t\tif (!join) continue;\n\t\t\tconst defaultModelName = getDefaultModelName(model);\n\t\t\tconst defaultBaseModelName = getDefaultModelName(baseModel);\n\t\t\tlet foreignKeys = Object.entries(schema[defaultModelName].fields).filter(([field, fieldAttributes]) => fieldAttributes.references && getDefaultModelName(fieldAttributes.references.model) === defaultBaseModelName);\n\t\t\tlet isForwardJoin = true;\n\t\t\tif (!foreignKeys.length) {\n\t\t\t\tforeignKeys = Object.entries(schema[defaultBaseModelName].fields).filter(([field, fieldAttributes]) => fieldAttributes.references && getDefaultModelName(fieldAttributes.references.model) === defaultModelName);\n\t\t\t\tisForwardJoin = false;\n\t\t\t}\n\t\t\tif (!foreignKeys.length) throw new BetterAuthError(`No foreign key found for model ${model} and base model ${baseModel} while performing join operation.`);\n\t\t\telse if (foreignKeys.length > 1) throw new BetterAuthError(`Multiple foreign keys found for model ${model} and base model ${baseModel} while performing join operation. Only one foreign key is supported.`);\n\t\t\tconst [foreignKey, foreignKeyAttributes] = foreignKeys[0];\n\t\t\tif (!foreignKeyAttributes.references) throw new BetterAuthError(`No references found for foreign key ${foreignKey} on model ${model} while performing join operation.`);\n\t\t\tlet from;\n\t\t\tlet to;\n\t\t\tlet requiredSelectField;\n\t\t\tif (isForwardJoin) {\n\t\t\t\trequiredSelectField = foreignKeyAttributes.references.field;\n\t\t\t\tfrom = getFieldName({\n\t\t\t\t\tmodel: baseModel,\n\t\t\t\t\tfield: requiredSelectField\n\t\t\t\t});\n\t\t\t\tto = getFieldName({\n\t\t\t\t\tmodel,\n\t\t\t\t\tfield: foreignKey\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\trequiredSelectField = foreignKey;\n\t\t\t\tfrom = getFieldName({\n\t\t\t\t\tmodel: baseModel,\n\t\t\t\t\tfield: requiredSelectField\n\t\t\t\t});\n\t\t\t\tto = getFieldName({\n\t\t\t\t\tmodel,\n\t\t\t\t\tfield: foreignKeyAttributes.references.field\n\t\t\t\t});\n\t\t\t}\n\t\t\tif (select && !select.includes(requiredSelectField)) select.push(requiredSelectField);\n\t\t\tconst isUnique = to === \"id\" ? true : foreignKeyAttributes.unique ?? false;\n\t\t\tlet limit = options.advanced?.database?.defaultFindManyLimit ?? 100;\n\t\t\tif (isUnique) limit = 1;\n\t\t\telse if (typeof join === \"object\" && typeof join.limit === \"number\") limit = join.limit;\n\t\t\ttransformedJoin[getModelName(model)] = {\n\t\t\t\tmodelKey: model,\n\t\t\t\ton: {\n\t\t\t\t\tfrom,\n\t\t\t\t\tto\n\t\t\t\t},\n\t\t\t\tlimit,\n\t\t\t\trelation: isUnique ? \"one-to-one\" : \"one-to-many\"\n\t\t\t};\n\t\t}\n\t\treturn {\n\t\t\tjoin: transformedJoin,\n\t\t\tselect\n\t\t};\n\t};\n\t/**\n\t* Handle joins by making separate queries and combining results (fallback for adapters that don't support native joins).\n\t*/\n\tconst handleFallbackJoin = async ({ baseModel, baseData, joinModel, specificJoinConfig: joinConfig }) => {\n\t\tif (!baseData) return baseData;\n\t\tconst modelKey = joinConfig.modelKey ?? getDefaultModelName(joinModel);\n\t\tconst modelName = getModelName(modelKey);\n\t\tconst field = joinConfig.on.to;\n\t\tconst value = baseData[getDefaultFieldName({\n\t\t\tfield: joinConfig.on.from,\n\t\t\tmodel: baseModel\n\t\t})];\n\t\tif (value === null || value === void 0) return joinConfig.relation === \"one-to-one\" ? null : [];\n\t\tlet result;\n\t\tconst where = transformWhereClause({\n\t\t\tmodel: modelKey,\n\t\t\twhere: [{\n\t\t\t\tfield,\n\t\t\t\tvalue,\n\t\t\t\toperator: \"eq\",\n\t\t\t\tconnector: \"AND\"\n\t\t\t}],\n\t\t\taction: \"findOne\"\n\t\t});\n\t\ttry {\n\t\t\tif (joinConfig.relation === \"one-to-one\") result = await withSpan(`db findOne ${modelName}`, {\n\t\t\t\t[ATTR_DB_OPERATION_NAME]: \"findOne\",\n\t\t\t\t[ATTR_DB_COLLECTION_NAME]: modelName\n\t\t\t}, () => adapterInstance.findOne({\n\t\t\t\tmodel: modelName,\n\t\t\t\tmodelKey,\n\t\t\t\twhere\n\t\t\t}));\n\t\t\telse {\n\t\t\t\tconst limit = joinConfig.limit ?? options.advanced?.database?.defaultFindManyLimit ?? 100;\n\t\t\t\tresult = await withSpan(`db findMany ${modelName}`, {\n\t\t\t\t\t[ATTR_DB_OPERATION_NAME]: \"findMany\",\n\t\t\t\t\t[ATTR_DB_COLLECTION_NAME]: modelName\n\t\t\t\t}, () => adapterInstance.findMany({\n\t\t\t\t\tmodel: modelName,\n\t\t\t\t\tmodelKey,\n\t\t\t\t\twhere,\n\t\t\t\t\tlimit\n\t\t\t\t}));\n\t\t\t}\n\t\t} catch (error) {\n\t\t\tlogger.error(`Failed to query fallback join for model ${modelName}:`, {\n\t\t\t\twhere,\n\t\t\t\tlimit: joinConfig.limit\n\t\t\t});\n\t\t\tconsole.error(error);\n\t\t\tthrow error;\n\t\t}\n\t\treturn result;\n\t};\n\tconst adapterInstance = customAdapter({\n\t\toptions,\n\t\tschema,\n\t\tdebugLog,\n\t\tgetFieldName,\n\t\tgetModelName,\n\t\tgetDefaultModelName,\n\t\tgetDefaultFieldName,\n\t\tgetFieldAttributes,\n\t\ttransformInput,\n\t\ttransformOutput,\n\t\ttransformWhereClause\n\t});\n\tlet lazyLoadTransaction = null;\n\tconst atomicFallbacks = createAtomicFallbacks({\n\t\tadapter: adapterInstance,\n\t\tadapterId: config.adapterId,\n\t\tmapKeysTransformInput: config.mapKeysTransformInput,\n\t\tmapKeysTransformOutput: config.mapKeysTransformOutput,\n\t\tgetFieldName,\n\t\ttransformOutput,\n\t\ttransformWhereClause\n\t});\n\tconst adapter = {\n\t\ttransaction: async (cb) => {\n\t\t\tif (!lazyLoadTransaction) if (!config.transaction) lazyLoadTransaction = createAsIsTransaction(adapter);\n\t\t\telse {\n\t\t\t\tlogger.debug(`[${config.adapterName}] - Using provided transaction implementation.`);\n\t\t\t\tlazyLoadTransaction = config.transaction;\n\t\t\t}\n\t\t\treturn lazyLoadTransaction(cb);\n\t\t},\n\t\tcreate: async ({ data: unsafeData, model: inputModel, select, forceAllowId = false }) => {\n\t\t\ttransactionId++;\n\t\t\tconst thisTransactionId = transactionId;\n\t\t\tconst modelKey = getDefaultModelName(inputModel);\n\t\t\tconst model = getModelName(modelKey);\n\t\t\tif (\"id\" in unsafeData && typeof unsafeData.id !== \"undefined\" && !forceAllowId) {\n\t\t\t\tlogger.warn(`[${config.adapterName}] - You are trying to create a record with an id. This is not allowed as we handle id generation for you, unless you pass in the \\`forceAllowId\\` parameter. The id will be ignored.`);\n\t\t\t\tconst stack = (/* @__PURE__ */ new Error()).stack?.split(\"\\n\").filter((_, i) => i !== 1).join(\"\\n\").replace(\"Error:\", \"Create method with `id` being called at:\");\n\t\t\t\tconsole.log(stack);\n\t\t\t\tunsafeData.id = void 0;\n\t\t\t}\n\t\t\tdebugLog({ method: \"create\" }, `${formatTransactionId(thisTransactionId)} ${formatStep(1, 4)}`, `${formatMethod(\"create\")} ${formatAction(\"Unsafe Input\")}:`, {\n\t\t\t\tmodel,\n\t\t\t\tdata: unsafeData\n\t\t\t});\n\t\t\tlet data = unsafeData;\n\t\t\tif (!config.disableTransformInput) data = await transformInput(unsafeData, modelKey, \"create\", forceAllowId);\n\t\t\tdebugLog({ method: \"create\" }, `${formatTransactionId(thisTransactionId)} ${formatStep(2, 4)}`, `${formatMethod(\"create\")} ${formatAction(\"Parsed Input\")}:`, {\n\t\t\t\tmodel,\n\t\t\t\tdata\n\t\t\t});\n\t\t\tconst res = await withSpan(`db create ${model}`, {\n\t\t\t\t[ATTR_DB_OPERATION_NAME]: \"create\",\n\t\t\t\t[ATTR_DB_COLLECTION_NAME]: model\n\t\t\t}, () => adapterInstance.create({\n\t\t\t\tdata,\n\t\t\t\tmodel,\n\t\t\t\tmodelKey\n\t\t\t}));\n\t\t\tdebugLog({ method: \"create\" }, `${formatTransactionId(thisTransactionId)} ${formatStep(3, 4)}`, `${formatMethod(\"create\")} ${formatAction(\"DB Result\")}:`, {\n\t\t\t\tmodel,\n\t\t\t\tres\n\t\t\t});\n\t\t\tlet transformed = res;\n\t\t\tif (!config.disableTransformOutput) transformed = await transformOutput(res, modelKey, select, void 0);\n\t\t\tdebugLog({ method: \"create\" }, `${formatTransactionId(thisTransactionId)} ${formatStep(4, 4)}`, `${formatMethod(\"create\")} ${formatAction(\"Parsed Result\")}:`, {\n\t\t\t\tmodel,\n\t\t\t\tdata: transformed\n\t\t\t});\n\t\t\treturn transformed;\n\t\t},\n\t\tupdate: async ({ model: inputModel, where: unsafeWhere, update: unsafeData }) => {\n\t\t\ttransactionId++;\n\t\t\tconst thisTransactionId = transactionId;\n\t\t\tconst modelKey = getDefaultModelName(inputModel);\n\t\t\tconst model = getModelName(modelKey);\n\t\t\tconst where = transformWhereClause({\n\t\t\t\tmodel: modelKey,\n\t\t\t\twhere: unsafeWhere,\n\t\t\t\taction: \"update\"\n\t\t\t});\n\t\t\tif (where.length === 0) return null;\n\t\t\tdebugLog({ method: \"update\" }, `${formatTransactionId(thisTransactionId)} ${formatStep(1, 4)}`, `${formatMethod(\"update\")} ${formatAction(\"Unsafe Input\")}:`, {\n\t\t\t\tmodel,\n\t\t\t\tdata: unsafeData\n\t\t\t});\n\t\t\tlet data = unsafeData;\n\t\t\tif (!config.disableTransformInput) data = await transformInput(unsafeData, modelKey, \"update\");\n\t\t\tdebugLog({ method: \"update\" }, `${formatTransactionId(thisTransactionId)} ${formatStep(2, 4)}`, `${formatMethod(\"update\")} ${formatAction(\"Parsed Input\")}:`, {\n\t\t\t\tmodel,\n\t\t\t\tdata\n\t\t\t});\n\t\t\tconst res = await withSpan(`db update ${model}`, {\n\t\t\t\t[ATTR_DB_OPERATION_NAME]: \"update\",\n\t\t\t\t[ATTR_DB_COLLECTION_NAME]: model\n\t\t\t}, () => adapterInstance.update({\n\t\t\t\tmodel,\n\t\t\t\tmodelKey,\n\t\t\t\twhere,\n\t\t\t\tupdate: data\n\t\t\t}));\n\t\t\tdebugLog({ method: \"update\" }, `${formatTransactionId(thisTransactionId)} ${formatStep(3, 4)}`, `${formatMethod(\"update\")} ${formatAction(\"DB Result\")}:`, {\n\t\t\t\tmodel,\n\t\t\t\tdata: res\n\t\t\t});\n\t\t\tlet transformed = res;\n\t\t\tif (!config.disableTransformOutput) transformed = await transformOutput(res, modelKey, void 0, void 0);\n\t\t\tdebugLog({ method: \"update\" }, `${formatTransactionId(thisTransactionId)} ${formatStep(4, 4)}`, `${formatMethod(\"update\")} ${formatAction(\"Parsed Result\")}:`, {\n\t\t\t\tmodel,\n\t\t\t\tdata: transformed\n\t\t\t});\n\t\t\treturn transformed;\n\t\t},\n\t\tupdateMany: async ({ model: inputModel, where: unsafeWhere, update: unsafeData }) => {\n\t\t\ttransactionId++;\n\t\t\tconst thisTransactionId = transactionId;\n\t\t\tconst modelKey = getDefaultModelName(inputModel);\n\t\t\tconst model = getModelName(modelKey);\n\t\t\tconst where = transformWhereClause({\n\t\t\t\tmodel: modelKey,\n\t\t\t\twhere: unsafeWhere,\n\t\t\t\taction: \"updateMany\"\n\t\t\t});\n\t\t\tdebugLog({ method: \"updateMany\" }, `${formatTransactionId(thisTransactionId)} ${formatStep(1, 4)}`, `${formatMethod(\"updateMany\")} ${formatAction(\"Unsafe Input\")}:`, {\n\t\t\t\tmodel,\n\t\t\t\tdata: unsafeData\n\t\t\t});\n\t\t\tlet data = unsafeData;\n\t\t\tif (!config.disableTransformInput) data = await transformInput(unsafeData, modelKey, \"update\");\n\t\t\tdebugLog({ method: \"updateMany\" }, `${formatTransactionId(thisTransactionId)} ${formatStep(2, 4)}`, `${formatMethod(\"updateMany\")} ${formatAction(\"Parsed Input\")}:`, {\n\t\t\t\tmodel,\n\t\t\t\tdata\n\t\t\t});\n\t\t\tconst updatedCount = await withSpan(`db updateMany ${model}`, {\n\t\t\t\t[ATTR_DB_OPERATION_NAME]: \"updateMany\",\n\t\t\t\t[ATTR_DB_COLLECTION_NAME]: model\n\t\t\t}, () => adapterInstance.updateMany({\n\t\t\t\tmodel,\n\t\t\t\tmodelKey,\n\t\t\t\twhere,\n\t\t\t\tupdate: data\n\t\t\t}));\n\t\t\tif (typeof updatedCount !== \"number\" || !Number.isFinite(updatedCount)) throw new BetterAuthError(`Adapter \"${config.adapterId}\" updateMany must return a finite number affected row count.`);\n\t\t\tdebugLog({ method: \"updateMany\" }, `${formatTransactionId(thisTransactionId)} ${formatStep(3, 4)}`, `${formatMethod(\"updateMany\")} ${formatAction(\"DB Result\")}:`, {\n\t\t\t\tmodel,\n\t\t\t\tdata: updatedCount\n\t\t\t});\n\t\t\tdebugLog({ method: \"updateMany\" }, `${formatTransactionId(thisTransactionId)} ${formatStep(4, 4)}`, `${formatMethod(\"updateMany\")} ${formatAction(\"Parsed Result\")}:`, {\n\t\t\t\tmodel,\n\t\t\t\tdata: updatedCount\n\t\t\t});\n\t\t\treturn updatedCount;\n\t\t},\n\t\tfindOne: async ({ model: inputModel, where: unsafeWhere, select, join: unsafeJoin }) => {\n\t\t\ttransactionId++;\n\t\t\tconst thisTransactionId = transactionId;\n\t\t\tconst modelKey = getDefaultModelName(inputModel);\n\t\t\tconst model = getModelName(modelKey);\n\t\t\tconst where = transformWhereClause({\n\t\t\t\tmodel: modelKey,\n\t\t\t\twhere: unsafeWhere,\n\t\t\t\taction: \"findOne\"\n\t\t\t});\n\t\t\tlet join;\n\t\t\tlet passJoinToAdapter = true;\n\t\t\tif (!config.disableTransformJoin) {\n\t\t\t\tconst result = transformJoinClause(modelKey, unsafeJoin, select);\n\t\t\t\tif (result) {\n\t\t\t\t\tjoin = result.join;\n\t\t\t\t\tselect = result.select;\n\t\t\t\t}\n\t\t\t\tif (!options.advanced?.database?.joins && join && Object.keys(join).length > 0) passJoinToAdapter = false;\n\t\t\t} else join = unsafeJoin;\n\t\t\tdebugLog({ method: \"findOne\" }, `${formatTransactionId(thisTransactionId)} ${formatStep(1, 3)}`, `${formatMethod(\"findOne\")}:`, {\n\t\t\t\tmodel,\n\t\t\t\twhere,\n\t\t\t\tselect,\n\t\t\t\tjoin\n\t\t\t});\n\t\t\tconst res = await withSpan(`db findOne ${model}`, {\n\t\t\t\t[ATTR_DB_OPERATION_NAME]: \"findOne\",\n\t\t\t\t[ATTR_DB_COLLECTION_NAME]: model\n\t\t\t}, () => adapterInstance.findOne({\n\t\t\t\tmodel,\n\t\t\t\tmodelKey,\n\t\t\t\twhere,\n\t\t\t\tselect,\n\t\t\t\tjoin: passJoinToAdapter ? join : void 0\n\t\t\t}));\n\t\t\tdebugLog({ method: \"findOne\" }, `${formatTransactionId(thisTransactionId)} ${formatStep(2, 3)}`, `${formatMethod(\"findOne\")} ${formatAction(\"DB Result\")}:`, {\n\t\t\t\tmodel,\n\t\t\t\tdata: res\n\t\t\t});\n\t\t\tlet transformed = res;\n\t\t\tif (!config.disableTransformOutput) transformed = await transformOutput(res, modelKey, select, join);\n\t\t\tdebugLog({ method: \"findOne\" }, `${formatTransactionId(thisTransactionId)} ${formatStep(3, 3)}`, `${formatMethod(\"findOne\")} ${formatAction(\"Parsed Result\")}:`, {\n\t\t\t\tmodel,\n\t\t\t\tdata: transformed\n\t\t\t});\n\t\t\treturn transformed;\n\t\t},\n\t\tfindMany: async ({ model: inputModel, where: unsafeWhere, limit: unsafeLimit, select, sortBy, offset, join: unsafeJoin }) => {\n\t\t\ttransactionId++;\n\t\t\tconst thisTransactionId = transactionId;\n\t\t\tconst limit = unsafeLimit ?? options.advanced?.database?.defaultFindManyLimit ?? 100;\n\t\t\tconst modelKey = getDefaultModelName(inputModel);\n\t\t\tconst model = getModelName(modelKey);\n\t\t\tconst where = transformWhereClause({\n\t\t\t\tmodel: modelKey,\n\t\t\t\twhere: unsafeWhere,\n\t\t\t\taction: \"findMany\"\n\t\t\t});\n\t\t\tlet join;\n\t\t\tlet passJoinToAdapter = true;\n\t\t\tif (!config.disableTransformJoin) {\n\t\t\t\tconst result = transformJoinClause(modelKey, unsafeJoin, select);\n\t\t\t\tif (result) {\n\t\t\t\t\tjoin = result.join;\n\t\t\t\t\tselect = result.select;\n\t\t\t\t}\n\t\t\t\tif (!options.advanced?.database?.joins && join && Object.keys(join).length > 0) passJoinToAdapter = false;\n\t\t\t} else join = unsafeJoin;\n\t\t\tdebugLog({ method: \"findMany\" }, `${formatTransactionId(thisTransactionId)} ${formatStep(1, 3)}`, `${formatMethod(\"findMany\")}:`, {\n\t\t\t\tmodel,\n\t\t\t\twhere,\n\t\t\t\tlimit,\n\t\t\t\tsortBy,\n\t\t\t\toffset,\n\t\t\t\tjoin\n\t\t\t});\n\t\t\tconst res = await withSpan(`db findMany ${model}`, {\n\t\t\t\t[ATTR_DB_OPERATION_NAME]: \"findMany\",\n\t\t\t\t[ATTR_DB_COLLECTION_NAME]: model\n\t\t\t}, () => adapterInstance.findMany({\n\t\t\t\tmodel,\n\t\t\t\tmodelKey,\n\t\t\t\twhere,\n\t\t\t\tlimit,\n\t\t\t\tselect,\n\t\t\t\tsortBy,\n\t\t\t\toffset,\n\t\t\t\tjoin: passJoinToAdapter ? join : void 0\n\t\t\t}));\n\t\t\tdebugLog({ method: \"findMany\" }, `${formatTransactionId(thisTransactionId)} ${formatStep(2, 3)}`, `${formatMethod(\"findMany\")} ${formatAction(\"DB Result\")}:`, {\n\t\t\t\tmodel,\n\t\t\t\tdata: res\n\t\t\t});\n\t\t\tlet transformed = res;\n\t\t\tif (!config.disableTransformOutput) transformed = await Promise.all(res.map(async (r) => {\n\t\t\t\treturn await transformOutput(r, modelKey, void 0, join);\n\t\t\t}));\n\t\t\tdebugLog({ method: \"findMany\" }, `${formatTransactionId(thisTransactionId)} ${formatStep(3, 3)}`, `${formatMethod(\"findMany\")} ${formatAction(\"Parsed Result\")}:`, {\n\t\t\t\tmodel,\n\t\t\t\tdata: transformed\n\t\t\t});\n\t\t\treturn transformed;\n\t\t},\n\t\tdelete: async ({ model: inputModel, where: unsafeWhere }) => {\n\t\t\ttransactionId++;\n\t\t\tconst thisTransactionId = transactionId;\n\t\t\tconst modelKey = getDefaultModelName(inputModel);\n\t\t\tconst model = getModelName(modelKey);\n\t\t\tconst where = transformWhereClause({\n\t\t\t\tmodel: modelKey,\n\t\t\t\twhere: unsafeWhere,\n\t\t\t\taction: \"delete\"\n\t\t\t});\n\t\t\tdebugLog({ method: \"delete\" }, `${formatTransactionId(thisTransactionId)} ${formatStep(1, 2)}`, `${formatMethod(\"delete\")}:`, {\n\t\t\t\tmodel,\n\t\t\t\twhere\n\t\t\t});\n\t\t\tawait withSpan(`db delete ${model}`, {\n\t\t\t\t[ATTR_DB_OPERATION_NAME]: \"delete\",\n\t\t\t\t[ATTR_DB_COLLECTION_NAME]: model\n\t\t\t}, () => adapterInstance.delete({\n\t\t\t\tmodel,\n\t\t\t\tmodelKey,\n\t\t\t\twhere\n\t\t\t}));\n\t\t\tdebugLog({ method: \"delete\" }, `${formatTransactionId(thisTransactionId)} ${formatStep(2, 2)}`, `${formatMethod(\"delete\")} ${formatAction(\"DB Result\")}:`, { model });\n\t\t},\n\t\tdeleteMany: async ({ model: inputModel, where: unsafeWhere }) => {\n\t\t\ttransactionId++;\n\t\t\tconst thisTransactionId = transactionId;\n\t\t\tconst modelKey = getDefaultModelName(inputModel);\n\t\t\tconst model = getModelName(modelKey);\n\t\t\tconst where = transformWhereClause({\n\t\t\t\tmodel: modelKey,\n\t\t\t\twhere: unsafeWhere,\n\t\t\t\taction: \"deleteMany\"\n\t\t\t});\n\t\t\tdebugLog({ method: \"deleteMany\" }, `${formatTransactionId(thisTransactionId)} ${formatStep(1, 2)}`, `${formatMethod(\"deleteMany\")} ${formatAction(\"DeleteMany\")}:`, {\n\t\t\t\tmodel,\n\t\t\t\twhere\n\t\t\t});\n\t\t\tconst res = await withSpan(`db deleteMany ${model}`, {\n\t\t\t\t[ATTR_DB_OPERATION_NAME]: \"deleteMany\",\n\t\t\t\t[ATTR_DB_COLLECTION_NAME]: model\n\t\t\t}, () => adapterInstance.deleteMany({\n\t\t\t\tmodel,\n\t\t\t\tmodelKey,\n\t\t\t\twhere\n\t\t\t}));\n\t\t\tdebugLog({ method: \"deleteMany\" }, `${formatTransactionId(thisTransactionId)} ${formatStep(2, 2)}`, `${formatMethod(\"deleteMany\")} ${formatAction(\"DB Result\")}:`, {\n\t\t\t\tmodel,\n\t\t\t\tdata: res\n\t\t\t});\n\t\t\treturn res;\n\t\t},\n\t\tconsumeOne: async ({ model: inputModel, where: unsafeWhere }) => {\n\t\t\ttransactionId++;\n\t\t\tconst thisTransactionId = transactionId;\n\t\t\tconst modelKey = getDefaultModelName(inputModel);\n\t\t\tconst model = getModelName(modelKey);\n\t\t\tconst where = transformWhereClause({\n\t\t\t\tmodel: modelKey,\n\t\t\t\twhere: unsafeWhere,\n\t\t\t\taction: \"consumeOne\"\n\t\t\t});\n\t\t\tdebugLog({ method: \"consumeOne\" }, `${formatTransactionId(thisTransactionId)} ${formatStep(1, 3)}`, `${formatMethod(\"consumeOne\")} ${formatAction(\"ConsumeOne\")}:`, {\n\t\t\t\tmodel,\n\t\t\t\twhere\n\t\t\t});\n\t\t\tconst res = await withSpan(`db consumeOne ${model}`, {\n\t\t\t\t[ATTR_DB_OPERATION_NAME]: \"consumeOne\",\n\t\t\t\t[ATTR_DB_COLLECTION_NAME]: model\n\t\t\t}, () => adapterInstance.consumeOne ? adapterInstance.consumeOne({\n\t\t\t\tmodel,\n\t\t\t\tmodelKey,\n\t\t\t\twhere\n\t\t\t}) : atomicFallbacks.consumeOne({\n\t\t\t\tmodel,\n\t\t\t\tmodelKey,\n\t\t\t\twhere\n\t\t\t}));\n\t\t\tdebugLog({ method: \"consumeOne\" }, `${formatTransactionId(thisTransactionId)} ${formatStep(2, 3)}`, `${formatMethod(\"consumeOne\")} ${formatAction(\"DB Result\")}:`, {\n\t\t\t\tmodel,\n\t\t\t\tdata: res\n\t\t\t});\n\t\t\tlet transformed = res;\n\t\t\tif (!config.disableTransformOutput && res) transformed = await transformOutput(res, modelKey, void 0, void 0);\n\t\t\tdebugLog({ method: \"consumeOne\" }, `${formatTransactionId(thisTransactionId)} ${formatStep(3, 3)}`, `${formatMethod(\"consumeOne\")} ${formatAction(\"Parsed Result\")}:`, {\n\t\t\t\tmodel,\n\t\t\t\tdata: transformed\n\t\t\t});\n\t\t\treturn transformed;\n\t\t},\n\t\tincrementOne: async ({ model: inputModel, where: unsafeWhere, increment: unsafeIncrement, set: unsafeSet }) => {\n\t\t\tconst hasIncrement = Object.keys(unsafeIncrement).length > 0;\n\t\t\tconst hasSet = !!unsafeSet && Object.keys(unsafeSet).length > 0;\n\t\t\tif (!hasIncrement && !hasSet) throw new BetterAuthError(\"incrementOne requires a non-empty `increment` or `set`; both were empty.\");\n\t\t\ttransactionId++;\n\t\t\tconst thisTransactionId = transactionId;\n\t\t\tconst modelKey = getDefaultModelName(inputModel);\n\t\t\tconst model = getModelName(modelKey);\n\t\t\tconst where = transformWhereClause({\n\t\t\t\tmodel: modelKey,\n\t\t\t\twhere: unsafeWhere,\n\t\t\t\taction: \"incrementOne\"\n\t\t\t});\n\t\t\tdebugLog({ method: \"incrementOne\" }, `${formatTransactionId(thisTransactionId)} ${formatStep(1, 3)}`, `${formatMethod(\"incrementOne\")} ${formatAction(\"IncrementOne\")}:`, {\n\t\t\t\tmodel,\n\t\t\t\twhere,\n\t\t\t\tincrement: unsafeIncrement,\n\t\t\t\tset: unsafeSet\n\t\t\t});\n\t\t\tconst mappedKeys = config.mapKeysTransformInput ?? {};\n\t\t\tconst increment = {};\n\t\t\tfor (const [field, delta] of Object.entries(unsafeIncrement)) increment[mappedKeys[field] || getFieldName({\n\t\t\t\tmodel: modelKey,\n\t\t\t\tfield\n\t\t\t})] = delta;\n\t\t\tlet set;\n\t\t\tif (unsafeSet && !config.disableTransformInput) set = await transformInput(unsafeSet, modelKey, \"update\");\n\t\t\telse set = unsafeSet;\n\t\t\tif (Object.keys(increment).length === 0 && (!set || Object.keys(set).length === 0)) throw new BetterAuthError(\"incrementOne resolved to an empty update: every increment/set field was unknown to the schema or transformed away.\");\n\t\t\tconst res = await withSpan(`db incrementOne ${model}`, {\n\t\t\t\t[ATTR_DB_OPERATION_NAME]: \"incrementOne\",\n\t\t\t\t[ATTR_DB_COLLECTION_NAME]: model\n\t\t\t}, () => adapterInstance.incrementOne ? adapterInstance.incrementOne({\n\t\t\t\tmodel,\n\t\t\t\tmodelKey,\n\t\t\t\twhere,\n\t\t\t\tincrement,\n\t\t\t\tset\n\t\t\t}) : atomicFallbacks.incrementOne({\n\t\t\t\tmodel,\n\t\t\t\tmodelKey,\n\t\t\t\twhere,\n\t\t\t\tincrement,\n\t\t\t\tset\n\t\t\t}));\n\t\t\tdebugLog({ method: \"incrementOne\" }, `${formatTransactionId(thisTransactionId)} ${formatStep(2, 3)}`, `${formatMethod(\"incrementOne\")} ${formatAction(\"DB Result\")}:`, {\n\t\t\t\tmodel,\n\t\t\t\tdata: res\n\t\t\t});\n\t\t\tlet transformed = res;\n\t\t\tif (!config.disableTransformOutput && res) transformed = await transformOutput(res, modelKey, void 0, void 0);\n\t\t\tdebugLog({ method: \"incrementOne\" }, `${formatTransactionId(thisTransactionId)} ${formatStep(3, 3)}`, `${formatMethod(\"incrementOne\")} ${formatAction(\"Parsed Result\")}:`, {\n\t\t\t\tmodel,\n\t\t\t\tdata: transformed\n\t\t\t});\n\t\t\treturn transformed;\n\t\t},\n\t\tcount: async ({ model: inputModel, where: unsafeWhere }) => {\n\t\t\ttransactionId++;\n\t\t\tconst thisTransactionId = transactionId;\n\t\t\tconst modelKey = getDefaultModelName(inputModel);\n\t\t\tconst model = getModelName(modelKey);\n\t\t\tconst where = transformWhereClause({\n\t\t\t\tmodel: modelKey,\n\t\t\t\twhere: unsafeWhere,\n\t\t\t\taction: \"count\"\n\t\t\t});\n\t\t\tdebugLog({ method: \"count\" }, `${formatTransactionId(thisTransactionId)} ${formatStep(1, 2)}`, `${formatMethod(\"count\")}:`, {\n\t\t\t\tmodel,\n\t\t\t\twhere\n\t\t\t});\n\t\t\tconst res = await withSpan(`db count ${model}`, {\n\t\t\t\t[ATTR_DB_OPERATION_NAME]: \"count\",\n\t\t\t\t[ATTR_DB_COLLECTION_NAME]: model\n\t\t\t}, () => adapterInstance.count({\n\t\t\t\tmodel,\n\t\t\t\tmodelKey,\n\t\t\t\twhere\n\t\t\t}));\n\t\t\tdebugLog({ method: \"count\" }, `${formatTransactionId(thisTransactionId)} ${formatStep(2, 2)}`, `${formatMethod(\"count\")}:`, {\n\t\t\t\tmodel,\n\t\t\t\tdata: res\n\t\t\t});\n\t\t\treturn res;\n\t\t},\n\t\tcreateSchema: adapterInstance.createSchema ? async (_, file) => {\n\t\t\tconst tables = getAuthTables(options);\n\t\t\tif (options.secondaryStorage && !options.session?.storeSessionInDatabase) delete tables.session;\n\t\t\treturn adapterInstance.createSchema({\n\t\t\t\tfile,\n\t\t\t\ttables\n\t\t\t});\n\t\t} : void 0,\n\t\toptions: {\n\t\t\tadapterConfig: config,\n\t\t\t...adapterInstance.options ?? {}\n\t\t},\n\t\tid: config.adapterId,\n\t\t...config.debugLogs?.isRunningAdapterTests ? { adapterTestDebugLogs: {\n\t\t\tresetDebugLogs() {\n\t\t\t\tdebugLogs = debugLogs.filter((log) => log.instance !== uniqueAdapterFactoryInstanceId);\n\t\t\t},\n\t\t\tprintDebugLogs() {\n\t\t\t\tconst separator = `─`.repeat(80);\n\t\t\t\tconst logs = debugLogs.filter((log) => log.instance === uniqueAdapterFactoryInstanceId);\n\t\t\t\tif (logs.length === 0) return;\n\t\t\t\tconst log = logs.reverse().map((log) => {\n\t\t\t\t\tlog.args[0] = `\\n${log.args[0]}`;\n\t\t\t\t\treturn [...log.args, \"\\n\"];\n\t\t\t\t}).reduce((prev, curr) => {\n\t\t\t\t\treturn [...curr, ...prev];\n\t\t\t\t}, [`\\n${separator}`]);\n\t\t\t\tconsole.log(...log);\n\t\t\t}\n\t\t} } : {}\n\t};\n\treturn adapter;\n};\nfunction formatTransactionId(transactionId) {\n\tif (getColorDepth() < 8) return `#${transactionId}`;\n\treturn `${TTY_COLORS.fg.magenta}#${transactionId}${TTY_COLORS.reset}`;\n}\nfunction formatStep(step, total) {\n\treturn `${TTY_COLORS.bg.black}${TTY_COLORS.fg.yellow}[${step}/${total}]${TTY_COLORS.reset}`;\n}\nfunction formatMethod(method) {\n\treturn `${TTY_COLORS.bright}${method}${TTY_COLORS.reset}`;\n}\nfunction formatAction(action) {\n\treturn `${TTY_COLORS.dim}(${action})${TTY_COLORS.reset}`;\n}\n//#endregion\nexport { createAdapterFactory };\n"],"ignoreList":[0,1,2,3,4,5,6],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ import{$ as e,$t as t,A as n,At as r,B as i,Bt as a,C as o,Cn as s,Ct as c,D as l,Dt as u,E as d,Et as f,F as ee,Ft as p,G as m,Gt as te,H as ne,Ht as re,I as ie,It as ae,J as oe,Jt as se,K as ce,Kt as le,L as ue,Lt as de,M as fe,Mt as pe,N as me,Nt as he,O as ge,Ot as _e,P as ve,Pt as ye,Q as be,Qt as h,R as xe,Rt as Se,S as Ce,Sn as we,St as Te,T as Ee,Tt as De,U as Oe,Ut as ke,V as Ae,Vt as je,W as Me,Wt as Ne,X as Pe,Xt as g,Y as Fe,Yt as Ie,Z as Le,_ as Re,_n as ze,_t as Be,a as Ve,an as He,at as Ue,b as We,bn as Ge,bt as Ke,c as qe,cn as Je,ct as Ye,d as Xe,dn as Ze,dt as Qe,en as $e,et,f as tt,fn as _,ft as nt,g as rt,gn as it,gt as at,h as ot,hn as st,ht as ct,i as lt,in as ut,it as dt,j as ft,jt as pt,k as mt,kt as ht,l as gt,ln as _t,lt as vt,m as yt,mn as bt,mt as xt,n as v,nn as St,nt as Ct,o as wt,on as Tt,ot as Et,p as Dt,pn as y,pt as Ot,q as kt,qt as At,r as jt,rn as Mt,rt as Nt,s as Pt,sn as Ft,st as It,tn as Lt,tt as Rt,u as zt,un as Bt,ut as Vt,v as Ht,vn as Ut,vt as Wt,w as Gt,wn as Kt,wt as qt,x as Jt,xn as Yt,xt as Xt,y as Zt,yn as Qt,yt as $t,z as en,zt as tn}from"./core-FSS9-r35.js";function nn(){let e=this._zod;return e.message??=JSON.stringify(e.def,Bt,2),e.message}function rn(e){this._zod.message=e}var an={get:nn,set:rn,enumerable:!0,configurable:!0},on={value:void 0,enumerable:!1},sn=new WeakSet([Object.prototype,Error.prototype]),cn=g(`$ZodError`,(e,t)=>{e.name=`$ZodError`,on.value=t,Object.defineProperty(e,"issues",on),on.value=void 0,Object.defineProperty(e,"message",an);let n=Object.getPrototypeOf(e);sn.has(n)||(sn.add(n),Object.defineProperty(n,"toString",{configurable:!0,enumerable:!1,get(){let e=()=>this.message;return Object.defineProperty(this,"toString",{value:e,configurable:!0,writable:!0}),e},set(e){Object.defineProperty(this,"toString",{value:e,configurable:!0,writable:!0})}}))});function ln(e,t,n){return Object.prototype.hasOwnProperty.call(e,t)||(t===`__proto__`?Object.defineProperty(e,t,{value:n(),writable:!0,enumerable:!0,configurable:!0}):e[t]=n()),e[t]}function un(e,t=e=>e.message){let n={},r=[];for(let i of e.issues)i.path.length>0?ln(n,i.path[0],()=>[]).push(t(i)):r.push(t(i));return{formErrors:r,fieldErrors:n}}function dn(e,t=e=>e.message){let n={_errors:[]},r=(e,i=[])=>{for(let a of e.issues)if(a.code===`invalid_union`&&a.errors.length)a.errors.map(e=>r({issues:e},[...i,...a.path]));else if(a.code===`invalid_key`)r({issues:a.issues},[...i,...a.path]);else if(a.code===`invalid_element`)r({issues:a.issues},[...i,...a.path]);else{let e=[...i,...a.path];if(e.length===0)n._errors.push(t(a));else{let r=n,i=0;for(;i<e.length;){let n=e[i],o=i===e.length-1;if(n===`_errors`){o&&r._errors.push(t(a)),i++;continue}Object.prototype.hasOwnProperty.call(r,n)||Object.defineProperty(r,n,{value:{_errors:[]},enumerable:!0,writable:!0,configurable:!0});let s=r[n];o&&s._errors.push(t(a)),r=s,i++}}}};return r(e),n}function fn(e){let t=[],n=e.map(e=>typeof e==`object`?e.key:e);for(let e of n)typeof e==`number`?t.push(`[${e}]`):typeof e==`symbol`?t.push(`[${JSON.stringify(String(e))}]`):/[^\w$]/.test(e)?t.push(`[${JSON.stringify(e)}]`):(t.length&&t.push(`.`),t.push(e));return t.join(``)}function pn(e,t){return{callee:t?.callee??e,Err:t?.Err}}var mn=e=>{let t=(n,r,i,a)=>{let o=i?{...i,async:!1}:{async:!1},s=n._zod.run({value:r,issues:[]},o);if(s instanceof Promise)throw new se;if(s.issues.length){let n=new((a?.Err)??e)(s.issues.map(e=>He(e,o,h())));throw $e(n,a?.callee??t),n}return s.value};return t},hn=e=>{let t=async(n,r,i,a)=>{let o=i?{...i,async:!0}:{async:!0},s=n._zod.run({value:r,issues:[]},o);if(s instanceof Promise&&(s=await s),s.issues.length){let n=new((a?.Err)??e)(s.issues.map(e=>He(e,o,h())));throw $e(n,a?.callee??t),n}return s.value};return t},gn=e=>(t,n,r)=>{let i=r?{...r,async:!1}:{async:!1},a=t._zod.run({value:n,issues:[]},i);if(a instanceof Promise)throw new se;return a.issues.length?_n(e,a.issues,i):{success:!0,data:a.value}};function _n(e,t,n){let r;return{success:!1,get error(){return r||(r=new e(t.map(e=>He(e,n,h()))),t=void 0,n=void 0),r},set error(e){r=e,t=void 0,n=void 0}}}var b=e=>async(t,n,r)=>{let i=r?{...r,async:!0}:{async:!0},a=t._zod.run({value:n,issues:[]},i);return a instanceof Promise&&(a=await a),a.issues.length?_n(e,a.issues,i):{success:!0,data:a.value}},vn=Symbol.for(`zod.compile.invalid`),yn=Symbol.for(`zod.compile.fallback`),bn=((e,t,n)=>{let r=e._zod.bag.validator;if(r!==void 0){if(r(t)!==vn)return!0;if(r.definite===!0&&n===void 0)return!1}return xn(e,t,n)});function xn(e,t,n){let r=n?{...n,async:!1,abortEarly:!0}:{async:!1,abortEarly:!0},i=e._zod.bag.fallbackRun,a;if(i?(r[yn]=!0,a=i({value:t,issues:[]},r)):a=e._zod.run({value:t,issues:[]},r),a instanceof Promise)throw new se;return a.issues.length===0}var Sn=async(e,t,n)=>{let r=n?{...n,async:!0,abortEarly:!0}:{async:!0,abortEarly:!0},i=e._zod.run({value:t,issues:[]},r);return i instanceof Promise&&(i=await i),i.issues.length===0},Cn=e=>{let t=mn(e),n=(e,r,i,a)=>{let o=i?{...i,direction:`backward`}:{direction:`backward`};return t(e,r,o,pn(n,a))};return n},wn=e=>{let t=mn(e),n=(e,r,i,a)=>t(e,r,i,pn(n,a));return n},Tn=e=>{let t=hn(e),n=async(e,r,i,a)=>{let o=i?{...i,direction:`backward`}:{direction:`backward`};return await t(e,r,o,pn(n,a))};return n},En=e=>{let t=hn(e),n=async(e,r,i,a)=>await t(e,r,i,pn(n,a));return n},Dn=e=>(t,n,r)=>{let i=r?{...r,direction:`backward`}:{direction:`backward`};return gn(e)(t,n,i)},On=e=>(t,n,r)=>gn(e)(t,n,r),kn=e=>async(t,n,r)=>{let i=r?{...r,direction:`backward`}:{direction:`backward`};return b(e)(t,n,i)},An=e=>async(t,n,r)=>b(e)(t,n,r),jn=class extends Error{constructor(){super(`Cannot parse a reference cycle that closes through a transform`),this.name=`ZodCyclicError`}},Mn=`~memo`,Nn=[];function Pn(e){return typeof e==`object`&&!!e}function Fn(e){return e.map(e=>e.path?{...e,path:e.path.slice()}:{...e})}var In=new WeakMap,x=0,Ln=1,S=2;function Rn(e,t,n){let r=In.get(e);if(r!==void 0)return r?S:x;if(t.has(e))return S;t.add(e);let i=x,a=e=>{if(i!==S&&e?._zod){let r=Rn(e,t,n);r>i&&(i=r)}},o=(e,r)=>{let i=x;for(let a of Reflect.ownKeys(e)){let o=Object.getOwnPropertyDescriptor(e,a);if(r&&!o.enumerable)continue;let s=o.get?Ln:o.value?._zod?Rn(o.value,t,n):x;s>i&&(i=s)}return i},s=e=>{e>i&&(i=e)},c=e._zod.def;switch(c.type){case`object`:{let e=Qt(c);s(e?o(e,!0):Ln),a(c.catchall);break}case`array`:a(c.element);break;case`tuple`:for(let e of c.items)a(e);a(c.rest);break;case`record`:case`map`:a(c.keyType),a(c.valueType);break;case`set`:a(c.valueType);break;case`union`:for(let e of c.options)a(e);break;case`intersection`:a(c.left),a(c.right);break;case`optional`:case`nullable`:case`default`:case`prefault`:case`catch`:case`readonly`:case`nonoptional`:case`promise`:case`success`:a(c.innerType);break;case`pipe`:a(c.in),a(c.out);break;case`function`:a(c.input),a(c.output);break;case`lazy`:{let r=c._cachedInner??(n?e._zod.innerType:void 0);s(r?Rn(r,t,!1):Ln);break}case`template_literal`:case`string`:case`number`:case`int`:case`boolean`:case`bigint`:case`symbol`:case`undefined`:case`null`:case`void`:case`never`:case`any`:case`unknown`:case`date`:case`nan`:case`enum`:case`literal`:case`file`:case`transform`:case`custom`:break;default:for(let e in c){let t=Object.getOwnPropertyDescriptor(c,e);if(!t||t.get)continue;let n=t.value;if(n&&typeof n==`object`){if(n._zod)a(n);else if(Array.isArray(n))for(let e of n)a(e)}}}return t.delete(e),zn(e,i)}function zn(e,t){return t!==Ln&&In.set(e,t===S),t}function Bn(e,t){let n=e.buckets.get(t);return n||(n=new WeakMap,e.buckets.set(t,n)),n}var C,Vn=[],Hn={alloc(e,t,n){let r=C;if(!r)return n;C=void 0;let i={value:n,issues:null};return r.set(t.value,i),Vn.push(i),n},guard(e){var t;(t=e._zod).deferred??(t.deferred=[]),e._zod.deferred.push(()=>{let t=e._zod.parse,n=(e,n)=>{if(n.direction!==`backward`&&Wn(n,e.value))throw new jn;return t(e,n)};e._zod.parse=n,e._zod.run===t&&(e._zod.run=n)})},attach(e){var t;let n,r=!1,i,a;(t=e._zod).deferred??(t.deferred=[]),e._zod.deferred.push(()=>{let t=e._zod.parse,o=(s,c)=>{if(n===void 0){let i=Rn(e,new Set,!1);if(i===x)return e._zod.parse=t,e._zod.run===o&&(e._zod.run=t),t(s,c);i===S||r?n=!0:r=!0}let l=s.value;if(!Pn(l))return t(s,c);let u=c[Mn];u||(u={buckets:new WeakMap,backEdges:void 0},c[Mn]=u);let d;i===c?d=a:(d=Bn(u,e),i=c,a=d);let f=d.get(l);if(f)return s.value=f.value,f.issues?f.issues.length&&s.issues.push(...Fn(f.issues)):(s.memo=!0,u.backEdges??(u.backEdges=new WeakSet),u.backEdges.add(f.value)),s;C=d;let ee=Vn.length,p=t(s,c);C=void 0;let m=Vn.length>ee?Vn.pop():void 0;return p instanceof Promise?p.then(e=>(m&&(m.issues=e.issues.length?Fn(e.issues):Nn),e)):(m&&(m.issues=p.issues.length?Fn(p.issues):Nn),p)};e._zod.parse=o,e._zod.run===t&&(e._zod.run=o)})}};function Un(){return Hn}function Wn(e,t){let n=e[Mn]?.backEdges;return n!==void 0&&Pn(t)&&n.has(t)}var Gn=()=>{let e={string:{unit:`characters`,verb:`to have`},file:{unit:`bytes`,verb:`to have`},array:{unit:`items`,verb:`to have`},set:{unit:`items`,verb:`to have`},map:{unit:`entries`,verb:`to have`}};function t(t){return e[t]??null}let n={regex:`input`,email:`email address`,url:`URL`,emoji:`emoji`,uuid:`UUID`,uuidv4:`UUIDv4`,uuidv6:`UUIDv6`,nanoid:`nanoid`,guid:`GUID`,cuid:`cuid`,cuid2:`cuid2`,ulid:`ULID`,xid:`XID`,ksuid:`KSUID`,datetime:`ISO datetime`,date:`ISO date`,time:`ISO time`,duration:`ISO duration`,ipv4:`IPv4 address`,ipv6:`IPv6 address`,mac:`MAC address`,cidrv4:`IPv4 range`,cidrv6:`IPv6 range`,base64:`base64-encoded string`,base64url:`base64url-encoded string`,json_string:`JSON string`,e164:`E.164 number`,currency_code:`currency code`,credit_card:`credit card number`,iban:`IBAN`,jwt:`JWT`,template_literal:`input`},r={nan:`NaN`};function i(e,t){return e===`number`&&typeof t==`number`&&!Number.isFinite(t)?String(t):r[e]??e}return e=>{switch(e.code){case`invalid_type`:return`Invalid input: expected ${i(e.expected)}, received ${i(it(e.input),e.input)}`;case`invalid_value`:return e.values.length===1?`Invalid input: expected ${Kt(e.values[0])}`:`Invalid option: expected one of ${_t(e.values,`|`)}`;case`too_big`:{let n=e.exact?`exactly `:e.inclusive?`<=`:`<`,r=t(e.origin);return r?`Too big: expected ${e.origin??`value`} to have ${n}${e.maximum.toString()} ${r.unit??`elements`}`:`Too big: expected ${e.origin??`value`} to be ${n}${e.maximum.toString()}`}case`too_small`:{let n=e.exact?`exactly `:e.inclusive?`>=`:`>`,r=t(e.origin);return r?`Too small: expected ${e.origin} to have ${n}${e.minimum.toString()} ${r.unit}`:`Too small: expected ${e.origin} to be ${n}${e.minimum.toString()}`}case`invalid_format`:{let t=e;return t.format===`starts_with`?`Invalid string: must start with "${t.prefix}"`:t.format===`ends_with`?`Invalid string: must end with "${t.suffix}"`:t.format===`includes`?`Invalid string: must include "${t.includes}"`:t.format===`regex`?`Invalid string: must match pattern ${t.pattern}`:`Invalid ${n[t.format]??e.format}`}case`not_multiple_of`:return`Invalid number: must be a multiple of ${e.divisor}`;case`unrecognized_keys`:return`Unrecognized key${e.keys.length>1?`s`:``}: ${_t(e.keys,`, `)}`;case`invalid_key`:return`Invalid key in ${e.origin}`;case`invalid_union`:return e.options&&Array.isArray(e.options)&&e.options.length>0?`Invalid discriminator value. Expected ${e.options.map(e=>`'${e}'`).join(` | `)}`:e.inclusive===!1?`Invalid input: more than one option matched`:`Invalid input`;case`invalid_element`:return`Invalid value in ${e.origin}`;default:return`Invalid input`}}};function Kn(){return{localeError:Gn()}}function qn(e){return e.checks&&=[...e.checks],e}function Jn(e,t){return new e(qn({type:`string`,...y(t)}))}function Yn(e,t){return new e(qn({type:`string`,coerce:!0,...y(t)}))}function Xn(e,t){return new e({type:`string`,format:`email`,check:`string_format`,abort:!1,...y(t)})}function Zn(e,t){return new e({type:`string`,format:`guid`,check:`string_format`,abort:!1,...y(t)})}function Qn(e,t){return new e({type:`string`,format:`uuid`,check:`string_format`,abort:!1,...y(t)})}function $n(e,t){return new e({type:`string`,format:`uuid`,check:`string_format`,abort:!1,version:`v4`,...y(t)})}function er(e,t){return new e({type:`string`,format:`uuid`,check:`string_format`,abort:!1,version:`v6`,...y(t)})}function tr(e,t){return new e({type:`string`,format:`uuid`,check:`string_format`,abort:!1,version:`v7`,...y(t)})}function nr(e,t){return new e({type:`string`,format:`url`,check:`string_format`,abort:!1,...y(t)})}function rr(e,t){return new e({type:`string`,format:`emoji`,check:`string_format`,abort:!1,...y(t)})}function ir(e,t){return new e({type:`string`,format:`nanoid`,check:`string_format`,abort:!1,...y(t)})}function ar(e,t){return new e({type:`string`,format:`cuid`,check:`string_format`,abort:!1,...y(t)})}function or(e,t){return new e({type:`string`,format:`cuid2`,check:`string_format`,abort:!1,...y(t)})}function sr(e,t){return new e({type:`string`,format:`ulid`,check:`string_format`,abort:!1,...y(t)})}function cr(e,t){return new e({type:`string`,format:`xid`,check:`string_format`,abort:!1,...y(t)})}function lr(e,t){return new e({type:`string`,format:`ksuid`,check:`string_format`,abort:!1,...y(t)})}function ur(e,t){return new e({type:`string`,format:`ipv4`,check:`string_format`,abort:!1,...y(t)})}function dr(e,t){return new e({type:`string`,format:`ipv6`,check:`string_format`,abort:!1,...y(t)})}function fr(e,t){return new e({type:`string`,format:`cidrv4`,check:`string_format`,abort:!1,...y(t)})}function pr(e,t){return new e({type:`string`,format:`cidrv6`,check:`string_format`,abort:!1,...y(t)})}function mr(e,t){return new e({type:`string`,format:`base64`,check:`string_format`,abort:!1,...y(t)})}function hr(e,t){return new e({type:`string`,format:`base64url`,check:`string_format`,abort:!1,...y(t)})}function gr(e,t){return new e({type:`string`,format:`e164`,check:`string_format`,abort:!1,...y(t)})}function _r(e,t){return new e({type:`string`,format:`jwt`,check:`string_format`,abort:!1,...y(t)})}function vr(e,t){return new e({type:`string`,format:`datetime`,check:`string_format`,offset:!1,local:!1,precision:null,...y(t)})}function yr(e,t){return new e({type:`string`,format:`date`,check:`string_format`,...y(t)})}function br(e,t){return new e({type:`string`,format:`time`,check:`string_format`,precision:null,...y(t)})}function xr(e,t){return new e({type:`string`,format:`duration`,check:`string_format`,...y(t)})}function Sr(e,t){return new e(qn({type:`number`,checks:[],...y(t)}))}function Cr(e,t){return new e({type:`number`,check:`number_format`,abort:!1,format:`safeint`,...y(t)})}function wr(e,t){return new e({type:`boolean`,...y(t)})}function Tr(e,t){return new e({type:`boolean`,coerce:!0,...y(t)})}function Er(e,t){return new e({type:`bigint`,...y(t)})}function Dr(e){return new e({type:`any`})}function Or(e){return new e({type:`unknown`})}function kr(e,t){return new e({type:`never`,...y(t)})}function Ar(e,t){return new e({type:`date`,...y(t)})}function jr(e,t){return new e({type:`date`,coerce:!0,...y(t)})}function w(e,t){return new tn({check:`less_than`,...y(t),value:e,inclusive:!1})}function T(e,t){return new tn({check:`less_than`,...y(t),value:e,inclusive:!0})}function E(e,t){return new ae({check:`greater_than`,...y(t),value:e,inclusive:!1})}function D(e,t){return new ae({check:`greater_than`,...y(t),value:e,inclusive:!0})}function O(e,t){return new ke({check:`multiple_of`,...y(t),value:e})}function Mr(e,t){return new je({check:`max_length`,...y(t),maximum:e})}function k(e,t){return new re({check:`min_length`,...y(t),minimum:e})}function Nr(e,t){return new Se({check:`length_equals`,...y(t),length:e})}function Pr(e,t){return new te({check:`string_format`,format:`regex`,...y(t),pattern:e})}function Fr(e){return new a({check:`string_format`,format:`lowercase`,...y(e)})}function Ir(e){return new At({check:`string_format`,format:`uppercase`,...y(e)})}function Lr(e,t){return new de({check:`string_format`,format:`includes`,...y(t),includes:e})}function Rr(e,t){return new le({check:`string_format`,format:`starts_with`,...y(t),prefix:e})}function zr(e,t){return new p({check:`string_format`,format:`ends_with`,...y(t),suffix:e})}function A(e){return new Ne({check:`overwrite`,tx:e})}function Br(e){return A(t=>t.normalize(e))}function Vr(){return A(e=>e.trim())}function Hr(){return A(e=>e.toLowerCase())}function Ur(){return A(e=>e.toUpperCase())}function Wr(){return A(e=>s(e))}function Gr(e,t,n){return new e({type:`array`,element:t,...y(n)})}function Kr(e,t,n){let r=y(n);return r.abort??=!0,new e({type:`custom`,check:`custom`,fn:t,...r})}function qr(e,t,n){return new e({type:`custom`,check:`custom`,fn:t,...y(n)})}function Jr(e,t){let n=Yr(t=>(t.addIssue=e=>{if(typeof e==`string`)t.issues.push(Je(e,t.value,n._zod.def));else{let r=e;r.fatal&&(r.continue=!1),r.code??=`custom`,`input`in r||(r.input=t.value),r.inst??=n,r.continue??=!n._zod.def.abort,t.issues.push(Je(r))}},e(t.value,t)),t);return n}function Yr(e,t){let n=new ye({check:`custom`,...y(t)});return n._zod.check=e,n}var Xr=new WeakSet([Object.prototype,Error.prototype]);function Zr(e,t,n){Object.defineProperty(e,t,{configurable:!0,enumerable:!1,get(){let e=n(this);return Object.defineProperty(this,t,{value:e,configurable:!0,writable:!0}),e},set(e){Object.defineProperty(this,t,{value:e,configurable:!0,writable:!0})}})}var j=g(`ZodError`,(e,t)=>{cn.init(e,t),e.name=`ZodError`;let n=Object.getPrototypeOf(e);Xr.has(n)||(Xr.add(n),Zr(n,`format`,e=>t=>dn(e,t)),Zr(n,`flatten`,e=>t=>un(e,t)),Zr(n,`addIssue`,e=>t=>{e.issues.push(t),e.message=JSON.stringify(e.issues,Bt,2)}),Zr(n,`addIssues`,e=>t=>{e.issues.push(...t),e.message=JSON.stringify(e.issues,Bt,2)}),Object.defineProperty(n,"isEmpty",{configurable:!0,enumerable:!1,get(){return this.issues.length===0}}))},void 0,{Parent:Error}),Qr=mn(j),$r=hn(j),ei=gn(j),ti=b(j),ni=Cn(j),ri=wn(j),ii=Tn(j),ai=En(j),oi=Dn(j),si=On(j),ci=kn(j),li=An(j);function ui(){t.localeError||h(Kn())}function di(){t.memoizer||h({memoizer:Un()})}var M=g(`ZodType`,(e,t)=>(ui(),f.init(e,t),e.def=t,e.type=t.type,e),{check(...e){let t=this.def;return this.clone(_(t,{checks:[...t.checks??[],...e.map(e=>typeof e==`function`?{_zod:{check:e,def:{check:`custom`},onattach:[]}}:e)]}),{parent:!0})},with(...e){return this.check(...e)},clone(e,t){return Lt(this,e,t)},brand(){return this},register(e,t){return e.add(this,t),this},refine(e,t){return this.check(Ga(e,t))},superRefine(e,t){return this.check(Ka(e,t))},overwrite(e){return this.check(A(e))},optional(){return Sa(this)},exactOptional(){return wa(this)},nullable(){return Ea(this)},nullish(){return Sa(Ea(this))},nonoptional(e){return Ma(this,e)},array(){return ra(this)},or(e){return ca([this,e])},and(e){return fa(this,e)},transform(e){return Ia(this,ba(e))},default(e){return Oa(this,e)},prefault(e){return Aa(this,e)},catch(e){return Pa(this,e)},pipe(e){return Ia(this,e)},readonly(){return Ba(this)},describe(e){let t=this.clone();return ft.add(t,{description:e}),t},meta(...e){if(e.length===0)return ft.get(this);let t=this.clone();return ft.add(t,e[0]),t},isOptional(){return this.safeParse(void 0).success},isNullable(){return this.safeParse(null).success},apply(e,...t){return t.length===0?e(this):e(this,...t)},get"~standard"(){return Tt(this,`~standard`,{...he(this),jsonSchema:{input:mt(this,`input`),output:mt(this,`output`)}})},set"~standard"(e){st(this,`~standard`,e)},parse:function e(t,n){return Qr(this,t,n,{callee:e})},parseAsync:async function e(t,n){return await $r(this,t,n,{callee:e})},safeParse(e,t){return ei(this,e,t)},async safeParseAsync(e,t){return ti(this,e,t)},get spa(){return this?.safeParseAsync},set spa(e){st(this,`spa`,e)},validate(e,t){return bn(this,e,t)},validateAsync(e,t){return Sn(this,e,t)},encode:function e(t,n){return ni(this,t,n,{callee:e})},decode:function e(t,n){return ri(this,t,n,{callee:e})},encodeAsync:async function e(t,n){return await ii(this,t,n,{callee:e})},decodeAsync:async function e(t,n){return await ai(this,t,n,{callee:e})},safeEncode(e,t){return oi(this,e,t)},safeDecode(e,t){return si(this,e,t)},async safeEncodeAsync(e,t){return ci(this,e,t)},async safeDecodeAsync(e,t){return li(this,e,t)},toJSONSchema(e){return n(this,{})(e)},get description(){return ft.get(this)?.description},get _def(){return this._zod.def}}),fi=g(`_ZodString`,(e,t)=>{Te.init(e,t),M.init(e,t),e._zod.processJSONSchema=(t,n,r)=>Gt(e,t,n,r)},Mt({format:e=>v(e).format??null,minLength:e=>v(e).minimum??null,maxLength:e=>v(e).maximum??null},{regex(...e){return this.check(Pr(...e))},includes(...e){return this.check(Lr(...e))},startsWith(...e){return this.check(Rr(...e))},endsWith(...e){return this.check(zr(...e))},min(...e){return this.check(k(...e))},max(...e){return this.check(Mr(...e))},length(...e){return this.check(Nr(...e))},nonempty(...e){return this.check(k(1,...e))},lowercase(e){return this.check(Fr(e))},uppercase(e){return this.check(Ir(e))},trim(){return this.check(Vr())},normalize(...e){return this.check(Br(...e))},toLowerCase(){return this.check(Hr())},toUpperCase(){return this.check(Ur())},slugify(){return this.check(Wr())}})),pi=g(`ZodString`,(e,t)=>{Te.init(e,t),fi.init(e,t)},{email(e){return this.check(Xn(yi,e))},url(e){return this.check(nr(Si,e))},jwt(e){return this.check(_r(Bi,e))},emoji(e){return this.check(rr(wi,e))},guid(e){return this.check(Zn(xi,e))},uuid(e){return this.check(Qn(P,e))},uuidv4(e){return this.check($n(P,e))},uuidv6(e){return this.check(er(P,e))},uuidv7(e){return this.check(tr(P,e))},nanoid(e){return this.check(ir(Ti,e))},cuid(e){return this.check(ar(Ei,e))},cuid2(e){return this.check(or(Di,e))},ulid(e){return this.check(sr(Oi,e))},base64(e){return this.check(mr(Li,e))},base64url(e){return this.check(hr(Ri,e))},xid(e){return this.check(cr(ki,e))},ksuid(e){return this.check(lr(Ai,e))},ipv4(e){return this.check(ur(ji,e))},ipv6(e){return this.check(dr(Ni,e))},cidrv4(e){return this.check(fr(Fi,e))},cidrv6(e){return this.check(pr(Ii,e))},e164(e){return this.check(gr(zi,e))},datetime(e){return this.check(vr(hi,e))},date(e){return this.check(yr(gi,e))},time(e){return this.check(br(_i,e))},duration(e){return this.check(xr(vi,e))}});function mi(e){return Jn(pi,e)}var N=g(`ZodStringFormat`,(e,t)=>{c.init(e,t),fi.init(e,t)}),hi=g(`ZodISODateTime`,(e,t)=>{Nt.init(e,t),N.init(e,t)}),gi=g(`ZodISODate`,(e,t)=>{Ct.init(e,t),N.init(e,t)}),_i=g(`ZodISOTime`,(e,t)=>{Ue.init(e,t),N.init(e,t)}),vi=g(`ZodISODuration`,(e,t)=>{dt.init(e,t),N.init(e,t)}),yi=g(`ZodEmail`,(e,t)=>{Fe.init(e,t),N.init(e,t)});function bi(e){return Xn(yi,e)}var xi=g(`ZodGUID`,(t,n)=>{e.init(t,n),N.init(t,n)}),P=g(`ZodUUID`,(e,t)=>{ht.init(e,t),N.init(e,t)}),Si=g(`ZodURL`,(e,t)=>{_e.init(e,t),N.init(e,t)});function Ci(e){return nr(Si,e)}var wi=g(`ZodEmoji`,(e,t)=>{Pe.init(e,t),N.init(e,t)}),Ti=g(`ZodNanoID`,(e,t)=>{Vt.init(e,t),N.init(e,t)}),Ei=g(`ZodCUID`,(e,t)=>{i.init(e,t),N.init(e,t)}),Di=g(`ZodCUID2`,(e,t)=>{Ae.init(e,t),N.init(e,t)}),Oi=g(`ZodULID`,(e,t)=>{u.init(e,t),N.init(e,t)}),ki=g(`ZodXID`,(e,t)=>{pe.init(e,t),N.init(e,t)}),Ai=g(`ZodKSUID`,(e,t)=>{Ye.init(e,t),N.init(e,t)}),ji=g(`ZodIPv4`,(e,t)=>{et.init(e,t),N.init(e,t)});function Mi(e){return ur(ji,e)}var Ni=g(`ZodIPv6`,(e,t)=>{Rt.init(e,t),N.init(e,t)});function Pi(e){return dr(Ni,e)}var Fi=g(`ZodCIDRv4`,(e,t)=>{xe.init(e,t),N.init(e,t)}),Ii=g(`ZodCIDRv6`,(e,t)=>{en.init(e,t),N.init(e,t)}),Li=g(`ZodBase64`,(e,t)=>{ve.init(e,t),N.init(e,t)}),Ri=g(`ZodBase64URL`,(e,t)=>{ee.init(e,t),N.init(e,t)}),zi=g(`ZodE164`,(e,t)=>{oe.init(e,t),N.init(e,t)}),Bi=g(`ZodJWT`,(e,t)=>{It.init(e,t),N.init(e,t)}),Vi=g(`ZodNumber`,(e,t)=>{xt.init(e,t),M.init(e,t),e._zod.processJSONSchema=(t,n,r)=>Re(e,t,n,r),e.isFinite=!0},Mt({minValue:e=>{let{minimum:t,exclusiveMinimum:n}=v(e);return Math.max(t??-1/0,n??-1/0)},maxValue:e=>{let{maximum:t,exclusiveMaximum:n}=v(e);return Math.min(t??1/0,n??1/0)},isInt:e=>{let{isInt:t,multipleOf:n}=v(e);return!!t||!!n?.some(Number.isSafeInteger)},format:e=>v(e).format??null},{gt(e,t){return this.check(E(e,t))},gte(e,t){return this.check(D(e,t))},min(e,t){return this.check(D(e,t))},lt(e,t){return this.check(w(e,t))},lte(e,t){return this.check(T(e,t))},max(e,t){return this.check(T(e,t))},int(e){return this.check(Wi(e))},safe(e){return this.check(Wi(e))},positive(e){return this.check(E(0,e))},nonnegative(e){return this.check(D(0,e))},negative(e){return this.check(w(0,e))},nonpositive(e){return this.check(T(0,e))},multipleOf(e,t){return this.check(O(e,t))},step(e,t){return this.check(O(e,t))},finite(){return this}}));function Hi(e){return Sr(Vi,e)}var Ui=g(`ZodNumberFormat`,(e,t)=>{ct.init(e,t),Vi.init(e,t)});function Wi(e){return Cr(Ui,e)}var Gi=g(`ZodBoolean`,(e,t)=>{ue.init(e,t),M.init(e,t),e._zod.processJSONSchema=(t,n,r)=>wt(e,t,n,r)});function Ki(e){return wr(Gi,e)}var qi=g(`ZodBigInt`,(e,t)=>{ie.init(e,t),M.init(e,t),e._zod.processJSONSchema=(t,n,r)=>Ve(e,t,n,r)},Mt({minValue:e=>v(e).minimum??null,maxValue:e=>v(e).maximum??null,format:e=>v(e).format??null},{gte(e,t){return this.check(D(e,t))},min(e,t){return this.check(D(e,t))},gt(e,t){return this.check(E(e,t))},lt(e,t){return this.check(w(e,t))},lte(e,t){return this.check(T(e,t))},max(e,t){return this.check(T(e,t))},positive(e){return this.check(E(BigInt(0),e))},negative(e){return this.check(w(BigInt(0),e))},nonpositive(e){return this.check(T(BigInt(0),e))},nonnegative(e){return this.check(D(BigInt(0),e))},multipleOf(e,t){return this.check(O(e,t))}}));function Ji(e){return Er(qi,e)}var Yi=g(`ZodAny`,(e,t)=>{fe.init(e,t),M.init(e,t),e._zod.processJSONSchema=(t,n,r)=>jt(e,t,n,r)});function Xi(){return Dr(Yi)}var Zi=g(`ZodUnknown`,(e,t)=>{pt.init(e,t),M.init(e,t),e._zod.processJSONSchema=(t,n,r)=>ge(e,t,n,r)});function F(){return Or(Zi)}var Qi=g(`ZodNever`,(e,t)=>{Qe.init(e,t),M.init(e,t),e._zod.processJSONSchema=(t,n,r)=>yt(e,t,n,r)});function $i(e){return kr(Qi,e)}var ea=g(`ZodDate`,(e,t)=>{m.init(e,t),M.init(e,t),e._zod.processJSONSchema=(t,n,r)=>gt(e,t,n,r),e.min=(t,n)=>e.check(D(t,n)),e.max=(t,n)=>e.check(T(t,n))},Mt({minDate:e=>{let{minimum:t}=v(e);return t?new Date(t):null},maxDate:e=>{let{maximum:t}=v(e);return t?new Date(t):null}},{}));function ta(e){return Ar(ea,e)}var na=g(`ZodArray`,(e,t)=>{di(),me.init(e,t),M.init(e,t),e._zod.processJSONSchema=(t,n,r)=>lt(e,t,n,r),e.element=t.element},{min(e,t){return this.check(k(e,t))},nonempty(e){return this.check(k(1,e))},max(e,t){return this.check(Mr(e,t))},length(e,t){return this.check(Nr(e,t))},unwrap(){return this.element}});function ra(e,t){return Gr(na,e,t)}var I=g(`ZodObject`,(e,t)=>{di(),at.init(e,t),M.init(e,t),e._zod.processJSONSchema=(t,n,r)=>Ht(e,t,n,r),Ft(e,`shape`,e=>e._zod.def.shape,!1)},{keyof(){return ga(Object.keys(this._zod.def.shape))},catchall(e){return this.clone(_(this._zod.def,{catchall:e}))},passthrough(){return this.clone(_(this._zod.def,{catchall:F()}))},loose(){return this.clone(_(this._zod.def,{catchall:F()}))},strict(){return this.clone(_(this._zod.def,{catchall:$i()}))},strip(){return this.clone(_(this._zod.def,{catchall:void 0}))},extend(e){return ut(this,e)},safeExtend(e){return Yt(this,e)},merge(e){return Ze(this,e)},pick(e){return Ut(this,e)},omit(e){return bt(this,e)},partial(...e){return ze(xa,this,e[0])},exactPartial(...e){return ze(Ca,this,e[0],`exactPartial`)},required(...e){return Ge(ja,this,e[0])}});function ia(e,t){return new I({type:`object`,shape:e??{},...y(t)})}function aa(e,t){return new I({type:`object`,shape:e,catchall:$i(),...y(t)})}function oa(e,t){return new I({type:`object`,shape:e,catchall:F(),...y(t)})}var sa=g(`ZodUnion`,(e,t)=>{r.init(e,t),M.init(e,t),e._zod.processJSONSchema=(t,n,r)=>l(e,t,n,r),e.options=t.options});function ca(e,t){return new sa({type:`union`,options:e,...y(t)})}var la=g(`ZodDiscriminatedUnion`,(e,t)=>{sa.init(e,t),kt.init(e,t)});function ua(e,t,n){return new la({type:`union`,options:t,discriminator:e,...y(n)})}var da=g(`ZodIntersection`,(e,t)=>{Et.init(e,t),M.init(e,t),e._zod.processJSONSchema=(t,n,r)=>tt(e,t,n,r)});function fa(e,t){return new da({type:`intersection`,left:e,right:t})}var pa=g(`ZodRecord`,(e,t)=>{di(),Xt.init(e,t),M.init(e,t),e._zod.processJSONSchema=(t,n,r)=>o(e,t,n,r),e.keyType=t.keyType,e.valueType=t.valueType});function ma(e,t,n){return!t||!t._zod?new pa({type:`record`,keyType:mi(),valueType:e,...y(t)}):new pa({type:`record`,keyType:e,valueType:t,...y(n)})}var ha=g(`ZodEnum`,(e,t)=>{Le.init(e,t),M.init(e,t),e._zod.processJSONSchema=(t,n,r)=>Xe(e,t,n,r),e.enum=t.entries,e.options=[...e._zod.values];let n=new Set(Object.keys(t.entries));e.extract=(e,r)=>{let i={};for(let r of e)if(n.has(r))i[r]=t.entries[r];else throw Error(`Key ${r} not found in enum`);return new ha({...t,checks:[],...y(r),entries:i})},e.exclude=(e,r)=>{let i={...t.entries};for(let t of e)if(n.has(t))delete i[t];else throw Error(`Key ${t} not found in enum`);return new ha({...t,checks:[],...y(r),entries:i})}});function ga(e,t){return new ha({type:`enum`,entries:Array.isArray(e)?Object.fromEntries(e.map(e=>[e,e])):e,...y(t)})}var _a=g(`ZodLiteral`,(e,t)=>{vt.init(e,t),M.init(e,t),e._zod.processJSONSchema=(t,n,r)=>Dt(e,t,n,r),e.values=new Set(t.values),Object.defineProperty(e,"value",{get(){if(t.values.length>1)throw Error("This schema contains multiple valid literal values. Use `.values` instead.");return t.values[0]}})});function va(e,t){return new _a({type:`literal`,values:Array.isArray(e)?e:[e],...y(t)})}var ya=g(`ZodTransform`,(e,t)=>{di(),De.init(e,t),M.init(e,t),e._zod.processJSONSchema=(t,n,r)=>d(e,t,n,r),e._zod.parse=(n,r)=>{if(r.direction===`backward`)throw new Ie(e.constructor.name);n.addIssue=r=>{if(typeof r==`string`)n.issues.push(Je(r,n.value,t));else{let t=r;t.fatal&&(t.continue=!1),t.code??=`custom`,`input`in t||(t.input=n.value),t.inst??=e,n.issues.push(Je(t))}};let i=t.transform(n.value,n);return i instanceof Promise?i.then(e=>(n.value=e,n)):(n.value=i,n)}});function ba(e){return new ya({type:`transform`,transform:e})}var xa=g(`ZodOptional`,(e,t)=>{Be.init(e,t),M.init(e,t),e._zod.processJSONSchema=(t,n,r)=>Zt(e,t,n,r),e.unwrap=()=>e._zod.def.innerType});function Sa(e){return new xa({type:`optional`,innerType:e})}var Ca=g(`ZodExactOptional`,(e,t)=>{be.init(e,t),M.init(e,t),e._zod.processJSONSchema=(t,n,r)=>Zt(e,t,n,r),e.unwrap=()=>e._zod.def.innerType});function wa(e){return new Ca({type:`optional`,innerType:e})}var Ta=g(`ZodNullable`,(e,t)=>{Ot.init(e,t),M.init(e,t),e._zod.processJSONSchema=(t,n,r)=>rt(e,t,n,r),e.unwrap=()=>e._zod.def.innerType});function Ea(e){return new Ta({type:`nullable`,innerType:e})}var Da=g(`ZodDefault`,(e,t)=>{ce.init(e,t),M.init(e,t),e._zod.processJSONSchema=(t,n,r)=>zt(e,t,n,r),e.unwrap=()=>e._zod.def.innerType,e.removeDefault=e.unwrap});function Oa(e,t){return new Da({type:`default`,innerType:e,get defaultValue(){return typeof t==`function`?t():we(t)}})}var ka=g(`ZodPrefault`,(e,t)=>{$t.init(e,t),M.init(e,t),e._zod.processJSONSchema=(t,n,r)=>Jt(e,t,n,r),e.unwrap=()=>e._zod.def.innerType});function Aa(e,t){return new ka({type:`prefault`,innerType:e,get defaultValue(){return typeof t==`function`?t():we(t)}})}var ja=g(`ZodNonOptional`,(e,t)=>{nt.init(e,t),M.init(e,t),e._zod.processJSONSchema=(t,n,r)=>ot(e,t,n,r),e.unwrap=()=>e._zod.def.innerType});function Ma(e,t){return new ja({type:`nonoptional`,innerType:e,...y(t)})}var Na=g(`ZodCatch`,(e,t)=>{ne.init(e,t),M.init(e,t),e._zod.processJSONSchema=(t,n,r)=>Pt(e,t,n,r),e.unwrap=()=>e._zod.def.innerType,e.removeCatch=e.unwrap});function Pa(e,t){return new Na({type:`catch`,innerType:e,catchValue:typeof t==`function`?t:St(t)})}var Fa=g(`ZodPipe`,(e,t)=>{Wt.init(e,t),M.init(e,t),e._zod.processJSONSchema=(t,n,r)=>We(e,t,n,r),e.in=t.in,e.out=t.out});function Ia(e,t){return new Fa({type:`pipe`,in:e,out:t})}var La=g(`ZodCodec`,(e,t)=>{Fa.init(e,t),Oe.init(e,t)});function Ra(e,t,n){return new La({type:`pipe`,in:e,out:t,transform:n.decode,reverseTransform:n.encode})}var za=g(`ZodReadonly`,(e,t)=>{Ke.init(e,t),M.init(e,t),e._zod.processJSONSchema=(t,n,r)=>Ce(e,t,n,r),e.unwrap=()=>e._zod.def.innerType});function Ba(e){return new za({type:`readonly`,innerType:e})}var Va=g(`ZodTemplateLiteral`,(e,t)=>{qt.init(e,t),M.init(e,t),e._zod.processJSONSchema=(t,n,r)=>Ee(e,t,n,r)});function Ha(e,t){return new Va({type:`template_literal`,parts:e,...y(t)})}var Ua=g(`ZodCustom`,(e,t)=>{Me.init(e,t),M.init(e,t),e._zod.processJSONSchema=(t,n,r)=>qe(e,t,n,r)});function Wa(e,t){return Kr(Ua,e??(()=>!0),t)}function Ga(e,t={}){return qr(Ua,e,t)}function Ka(e,t){return Jr(e,t)}function qa(e){return e instanceof Uint8Array||ArrayBuffer.isView(e)&&e.constructor.name===`Uint8Array`&&`BYTES_PER_ELEMENT`in e&&e.BYTES_PER_ELEMENT===1}var Ja=e=>e?`"${e}" `:``;function L(e,t=``){if(typeof e!=`number`)throw TypeError(Ja(t)+`expected number, got `+typeof e);if(!Number.isSafeInteger(e)||e<0)throw RangeError(Ja(t)+`expected integer >= 0, got `+e);return e}function Ya(e,t,n=``){if(qa(e)&&(t===void 0||e.length===t))return e;t!==void 0&&L(t,`length`);let r=qa(e),i=t===void 0?``:` of length ${t}`,a=r?`length=${e.length}`:`type=${typeof e}`,o=Ja(n)+`expected Uint8Array`+i+`, got `+a;throw r?RangeError(o):TypeError(o)}function Xa(e){if(typeof e!=`function`||typeof e.create!=`function`)throw TypeError(`expected hash wrapped by utils.createHasher`);if(L(e.outputLen),L(e.blockLen),e.outputLen<1||e.blockLen<1)throw Error(`hash blockLen / outputLen must be >= 1`)}var Za=(e,t)=>{if(typeof e!=`object`||!e||Array.isArray(e))throw TypeError((t===`object`?``:`"${t}" `)+`expected object, got type=`+typeof e)},Qa=(e,t)=>{Za(e,t);let n=Object.getPrototypeOf(e);if(n!==Object.prototype&&n!==null)throw TypeError(`"${t}" expected plain object`);if(Object.hasOwn(e,`__proto__`))throw TypeError(`"${t}.__proto__" is not allowed`)};function $a(e,t=!0){if(e.destroyed)throw Error(`hash was destroyed`);if(t&&e.finished)throw Error(`digest() was already called`)}function eo(e,t){Ya(e,void 0,`output`);let n=t.outputLen;if(!(e.length>=n))throw RangeError(`"output" expected length >= `+n)}function to(...e){for(let t=0;t<e.length;t++)e[t].fill(0)}function no(e){return new DataView(e.buffer,e.byteOffset,e.byteLength)}function ro(e,t){return e<<32-t|e>>>t}var io=typeof Uint8Array.from([]).toHex==`function`&&typeof Uint8Array.fromHex==`function`,ao=Array.from({length:256},(e,t)=>t.toString(16).padStart(2,`0`));function oo(e){if(Ya(e),io)return e.toHex();let t=``;for(let n=0;n<e.length;n++)t+=ao[e[n]];return t}function so(e){return e>=48&&e<=57?e-48:e>=65&&e<=70?e-55:e>=97&&e<=102?e-87:void 0}function co(e){if(typeof e!=`string`)throw TypeError(`hex string expected, got `+typeof e);if(io)try{return Uint8Array.fromHex(e)}catch(e){throw e instanceof SyntaxError?RangeError(e.message):e}let t=e.length,n=t/2;if(t%2)throw RangeError(`hex string expected, got unpadded hex of length `+t);let r=new Uint8Array(n);for(let t=0,i=0;t<n;t++,i+=2){let n=so(e.charCodeAt(i)),a=so(e.charCodeAt(i+1));if(n===void 0||a===void 0){let t=e[i]+e[i+1];throw RangeError(`hex string expected, got non-hex character "`+t+`" at index `+i)}r[t]=n*16+a}return r}function lo(e){if(typeof e!=`string`)throw TypeError(`string expected`);let t=new TextEncoder().encode(e);try{return new Uint8Array(t)}finally{to(t)}}function uo(e,t,n=`opts`){return Qa(e,`defaults`),t!==void 0&&Qa(t,n),Object.assign(Object.create(null),e,t)}function fo(e,t={}){if(typeof e!=`function`)throw TypeError(`"hashCons" expected function, got type=`+typeof e);t=uo({},t,`info`);let n=(t,n)=>e(n).update(t).digest(),r=e(void 0);return n.outputLen=r.outputLen,n.blockLen=r.blockLen,n.canXOF=r.canXOF,n.create=t=>e(t),Object.assign(n,t),Object.freeze(n)}var po=e=>({oid:Uint8Array.from([6,9,96,134,72,1,101,3,4,2,e])});function mo(e){switch(e){case`a-z`:return`abcdefghijklmnopqrstuvwxyz`;case`A-Z`:return`ABCDEFGHIJKLMNOPQRSTUVWXYZ`;case`0-9`:return`0123456789`;case`-_`:return`-_`;default:throw Error(`Unsupported alphabet: ${e}`)}}function ho(...e){let t=e.map(mo).join(``);if(t.length===0)throw Error(`No valid characters provided for random string generation.`);let n=t.length;return(e,...r)=>{if(e<=0)throw Error(`Length must be a positive integer.`);let i=t,a=n;r.length>0&&(i=r.map(mo).join(``),a=i.length);let o=Math.floor(256/a)*a,s=new Uint8Array(e*2),c=s.length,l=``,u=c,d;for(;l.length<e;)u>=c&&(crypto.getRandomValues(s),u=0),d=s[u++],d<o&&(l+=i[d%a]);return l}}function go(e){return typeof e==`string`?new TextEncoder().encode(e):!ArrayBuffer.isView(e)||e.buffer instanceof ArrayBuffer?e:new Uint8Array(e.buffer,e.byteOffset,e.byteLength).slice()}function _o(e){return typeof e==`string`?new TextEncoder().encode(e):new Uint8Array(e)}function R(e){return e?`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_`:`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/`}function vo(e,t,n){let r=``,i=0,a=0;for(let n of e)for(i=i<<8|n,a+=8;a>=6;)a-=6,r+=t[i>>a&63];if(a>0&&(r+=t[i<<6-a&63]),n){let e=(4-r.length%4)%4;r+=`=`.repeat(e)}return r}function yo(e,t){let n=new Map;for(let e=0;e<t.length;e++)n.set(t[e],e);let r=[],i=0,a=0;for(let t of e){if(t===`=`)break;let e=n.get(t);if(e===void 0)throw Error(`Invalid Base64 character: ${t}`);i=i<<6|e,a+=6,a>=8&&(a-=8,r.push(i>>a&255))}return Uint8Array.from(r)}var bo={encode(e,t={}){let n=R(!1);return vo(_o(e),n,t.padding??!0)},decode(e){typeof e!=`string`&&(e=new TextDecoder().decode(e));let t=R(e.includes(`-`)||e.includes(`_`));return yo(e,t)}},xo={encode(e,t={}){let n=R(!0);return vo(_o(e),n,t.padding??!0)},decode(e){return yo(e,R(e.includes(`-`)||e.includes(`_`)))}};function So(){let e=Object.getOwnPropertyDescriptor(Error,`stackTraceLimit`);return e===void 0?Object.isExtensible(Error):Object.prototype.hasOwnProperty.call(e,`writable`)?e.writable:e.set!==void 0}function Co(e){let t=e.split(`
2
+ at `);return t.length<=1?e:(t.splice(1,1),t.join(`
3
+ at `))}function wo(e,t){class n extends e{#e;constructor(...e){if(So()){let t=Error.stackTraceLimit;Error.stackTraceLimit=0,super(...e),Error.stackTraceLimit=t}else super(...e);let t=Error().stack;t&&(this.#e=Co(t.replace(/^Error/,this.name)))}get errorStack(){return this.#e}}return Object.defineProperty(n.prototype,"constructor",{get(){return t},enumerable:!1,configurable:!0}),n}var To={OK:200,CREATED:201,ACCEPTED:202,NO_CONTENT:204,MULTIPLE_CHOICES:300,MOVED_PERMANENTLY:301,FOUND:302,SEE_OTHER:303,NOT_MODIFIED:304,TEMPORARY_REDIRECT:307,BAD_REQUEST:400,UNAUTHORIZED:401,PAYMENT_REQUIRED:402,FORBIDDEN:403,NOT_FOUND:404,METHOD_NOT_ALLOWED:405,NOT_ACCEPTABLE:406,PROXY_AUTHENTICATION_REQUIRED:407,REQUEST_TIMEOUT:408,CONFLICT:409,GONE:410,LENGTH_REQUIRED:411,PRECONDITION_FAILED:412,PAYLOAD_TOO_LARGE:413,URI_TOO_LONG:414,UNSUPPORTED_MEDIA_TYPE:415,RANGE_NOT_SATISFIABLE:416,EXPECTATION_FAILED:417,"I'M_A_TEAPOT":418,MISDIRECTED_REQUEST:421,UNPROCESSABLE_ENTITY:422,LOCKED:423,FAILED_DEPENDENCY:424,TOO_EARLY:425,UPGRADE_REQUIRED:426,PRECONDITION_REQUIRED:428,TOO_MANY_REQUESTS:429,REQUEST_HEADER_FIELDS_TOO_LARGE:431,UNAVAILABLE_FOR_LEGAL_REASONS:451,INTERNAL_SERVER_ERROR:500,NOT_IMPLEMENTED:501,BAD_GATEWAY:502,SERVICE_UNAVAILABLE:503,GATEWAY_TIMEOUT:504,HTTP_VERSION_NOT_SUPPORTED:505,VARIANT_ALSO_NEGOTIATES:506,INSUFFICIENT_STORAGE:507,LOOP_DETECTED:508,NOT_EXTENDED:510,NETWORK_AUTHENTICATION_REQUIRED:511},Eo=class extends Error{status;body;headers;statusCode;constructor(e=`INTERNAL_SERVER_ERROR`,t=void 0,n={},r=typeof e==`number`?e:To[e]){if(super(t?.message,t&&`cause`in t?{cause:t.cause}:void 0),this.status=e,this.body=t,this.headers=n,this.statusCode=r,this.name=`APIError`,this.status=e,this.headers=n,this.statusCode=r,t&&`cause`in t){let{cause:e,...n}=t;this.body=Object.defineProperty(n,"cause",{value:e,writable:!0,configurable:!0})}else this.body=t}},Do=class extends Eo{message;issues;constructor(e,t){super(400,{message:e,code:`VALIDATION_ERROR`}),this.message=e,this.issues=t,this.issues=t}},Oo=class extends Error{constructor(e){super(e),this.name=`BetterCallError`}},ko=Symbol.for(`better-call:api-error-headers`),Ao=wo(Eo,Error),z=Object.create(null),B=e=>globalThis.process?.env||globalThis.Deno?.env.toObject()||globalThis.__env__||(e?z:globalThis),V=new Proxy(z,{get(e,t){return B()[t]??z[t]},has(e,t){return t in B()||t in z},set(e,t,n){let r=B(!0);return r[t]=n,!0},deleteProperty(e,t){if(!t)return!1;let n=B(!0);return delete n[t],!0},ownKeys(){let e=B(!0);return Object.keys(e)}});function jo(e){return e?e!==`false`:!1}var Mo=V.NODE_ENV??``,No=Mo===`production`,Po=()=>Mo===`dev`||Mo===`development`,Fo=()=>Mo===`test`||jo(V.TEST);function H(e,t){return typeof process<`u`&&process.env?process.env[e]??t:typeof Deno<`u`?Deno.env.get(e)??t:typeof Bun<`u`?Bun.env[e]??t:t}function Io(e,t=!0){let n=H(e);return n?n!==`0`&&n.toLowerCase()!==`false`&&n!==``:t}var Lo=Object.freeze({get BETTER_AUTH_SECRET(){return H(`BETTER_AUTH_SECRET`)},get AUTH_SECRET(){return H(`AUTH_SECRET`)},get BETTER_AUTH_TELEMETRY(){return H(`BETTER_AUTH_TELEMETRY`)},get BETTER_AUTH_TELEMETRY_ID(){return H(`BETTER_AUTH_TELEMETRY_ID`)},get NODE_ENV(){return H(`NODE_ENV`,`development`)},get PACKAGE_VERSION(){return H(`PACKAGE_VERSION`,`0.0.0`)},get BETTER_AUTH_TELEMETRY_ENDPOINT(){return H(`BETTER_AUTH_TELEMETRY_ENDPOINT`,``)}}),U=1,W=4,G=8,K=24,Ro={eterm:W,cons25:W,console:W,cygwin:W,dtterm:W,gnome:W,hurd:W,jfbterm:W,konsole:W,kterm:W,mlterm:W,mosh:K,putty:W,st:W,"rxvt-unicode-24bit":K,terminator:K,"xterm-kitty":K},zo=new Map(Object.entries({APPVEYOR:G,BUILDKITE:G,CIRCLECI:K,DRONE:G,GITEA_ACTIONS:K,GITHUB_ACTIONS:K,GITLAB_CI:G,TRAVIS:G})),Bo=[/ansi/,/color/,/linux/,/direct/,/^con[0-9]*x[0-9]/,/^rxvt/,/^screen/,/^xterm/,/^vt100/,/^vt220/];function Vo(){if(H(`FORCE_COLOR`)!==void 0)switch(H(`FORCE_COLOR`)){case``:case`1`:case`true`:return W;case`2`:return G;case`3`:return K;default:return U}if(H(`NODE_DISABLE_COLORS`)!==void 0&&H(`NODE_DISABLE_COLORS`)!==``||H(`NO_COLOR`)!==void 0&&H(`NO_COLOR`)!==``||H(`TERM`)===`dumb`)return U;if(H(`TMUX`))return K;if(`TF_BUILD`in V&&`AGENT_NAME`in V)return W;if(`CI`in V){for(let{0:e,1:t}of zo)if(e in V)return t;return H(`CI_NAME`)===`codeship`?G:U}if(`TEAMCITY_VERSION`in V)return/^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.exec(H(`TEAMCITY_VERSION`))===null?U:W;switch(H(`TERM_PROGRAM`)){case`iTerm.app`:return!H(`TERM_PROGRAM_VERSION`)||/^[0-2]\./.exec(H(`TERM_PROGRAM_VERSION`))!==null?G:K;case`HyperTerm`:case`MacTerm`:return K;case`Apple_Terminal`:return G}if(H(`COLORTERM`)===`truecolor`||H(`COLORTERM`)===`24bit`)return K;if(H(`TERM`)){if(/truecolor/.exec(H(`TERM`))!==null)return K;if(/^xterm-256/.exec(H(`TERM`))!==null)return G;let e=H(`TERM`).toLowerCase();if(Ro[e])return Ro[e];if(Bo.some(t=>t.exec(e)!==null))return W}return H(`COLORTERM`)?W:U}var q=Symbol.for(`better-auth:global`),J=null,Ho={},Uo=`1.8.0-beta.2`;function Wo(){return globalThis[q]||(globalThis[q]={version:Uo,epoch:1,context:Ho},J=globalThis[q]),J=globalThis[q],J.version!==Uo&&(J.version=Uo,J.epoch++),globalThis[q]}function Go(){return Wo().context.endpointContextAsyncStorage?.getStore()}function Ko(){return Wo().version}var Y={reset:`\x1B[0m`,bright:`\x1B[1m`,dim:`\x1B[2m`,undim:`\x1B[22m`,underscore:`\x1B[4m`,blink:`\x1B[5m`,reverse:`\x1B[7m`,hidden:`\x1B[8m`,fg:{black:`\x1B[30m`,red:`\x1B[31m`,green:`\x1B[32m`,yellow:`\x1B[33m`,blue:`\x1B[34m`,magenta:`\x1B[35m`,cyan:`\x1B[36m`,white:`\x1B[37m`},bg:{black:`\x1B[40m`,red:`\x1B[41m`,green:`\x1B[42m`,yellow:`\x1B[43m`,blue:`\x1B[44m`,magenta:`\x1B[45m`,cyan:`\x1B[46m`,white:`\x1B[47m`}},qo=[`debug`,`info`,`success`,`warn`,`error`];function Jo(e,t){return qo.indexOf(t)>=qo.indexOf(e)}var Yo={info:Y.fg.blue,success:Y.fg.green,warn:Y.fg.yellow,error:Y.fg.red,debug:Y.fg.magenta},Xo=(e,t,n)=>{let r=new Date().toISOString();return n?`${Y.dim}${r}${Y.reset} ${Yo[e]}${e.toUpperCase()}${Y.reset} ${Y.bright}[Better Auth]:${Y.reset} ${t}`:`${r} ${e.toUpperCase()} [Better Auth]: ${t}`},Zo=e=>{let t=e?.disabled!==!0,n=e?.level??`warn`,r=e?.disableColors===void 0?Vo()!==1:!e.disableColors,i=(i,a,o=[])=>{if(!t||!Jo(n,i))return;let s=Xo(i,a,r);!e||typeof e.log!=`function`?i===`error`?console.error(s,...o):i===`warn`?console.warn(s,...o):console.log(s,...o):e.log(i===`success`?`info`:i,a,...o)};return{...Object.fromEntries(qo.map(e=>[e,(...[t,...n])=>i(e,t,n)])),get level(){return n}}},Qo=Zo(),X=()=>{let e=Go()?.context.logger;return e&&e!==Z?e:Qo},Z={debug:(...e)=>X().debug(...e),info:(...e)=>X().info(...e),success:(...e)=>X().success(...e),warn:(...e)=>X().warn(...e),error:(...e)=>X().error(...e),get level(){return X().level}},Q=class extends Error{constructor(e,t){super(e,t),this.name=`BetterAuthError`,this.message=e,this.stack=``}},$o=class e extends Ao{constructor(...e){super(...e)}static fromStatus(t,n){return new e(t,n)}static from(t,n,r){let{code:i,message:a}=n;return r?.cause===void 0?new e(t,{message:a,code:i}):new e(t,{message:a,code:i,cause:r.cause})}},es=63,ts=16;function $(e){return e.toLowerCase()}function ns(e){return new TextEncoder().encode(e).length}function rs(e,t){let n=``,r=0;for(let i of e){let e=ns(i);if(r+e>t)break;n+=i,r+=e}return n}function is(e){let t=2166136261;for(let n=0;n<e.length;n++)t^=e.charCodeAt(n),t=Math.imul(t,16777619);return(t>>>0).toString(16).padStart(8,`0`)}function as(e,t){if(t.name!==void 0){if(t.name.trim().length===0)throw new Q(`Database index names must contain at least one visible character.`);if(!/^[A-Za-z_][A-Za-z0-9_]*$/.test(t.name))throw new Q(`Database index names must start with a letter or underscore and contain only letters, numbers, and underscores.`);if(ns(t.name)>es)throw new Q(`Database index names must be at most ${es} UTF-8 bytes.`);return t.name}let n=t.unique?`uidx`:`idx`,r=`${e}_${t.fields.join(`_`)}_${n}`;if(ns(r)<=es)return r;let i=`_${is(r)}_${n}`;return`${rs(r.slice(0,-n.length-1),es-ns(i))}${i}`}function os(e,t,n){return as(e,{fields:[t],unique:n})}function ss({fields:e,indexes:t,tableName:n}){let r=(t??[]).map(t=>{if(t.fields.length===0)throw new Q(`Index on table "${n}" must include at least one field.`);if(t.fields.length>ts)throw new Q(`Index on table "${n}" can include at most ${ts} fields so it works across supported databases.`);if(new Set(t.fields).size!==t.fields.length)throw new Q(`Index on table "${n}" contains the same field more than once.`);if(t.unique&&t.fields.some(t=>e[t]?.required===!1))throw new Q(`Unique index on table "${n}" can only include required fields so its behavior is consistent across databases.`);let r=t.fields.find(t=>{let n=e[t]?.type;return n===`json`||n===`string[]`||n===`number[]`});if(r)throw new Q(`Index on table "${n}" references field "${r}", whose type is not portably indexable.`);let i=t=>{let r=e[t];if(!r)throw new Q(`Index on table "${n}" references unknown field "${t}".`);return r.fieldName||t},[a,...o]=t.fields,s=[i(a),...o.map(i)];if(new Set(s.map($)).size!==s.length)throw new Q(`Index on table "${n}" resolves more than one field to the same database column.`);return{columns:s,name:as(n,{...t,fields:s}),unique:t.unique}}),i=new Map,a=[];for(let e of r){let t=JSON.stringify([e.columns,e.unique??!1]),r=$(e.name),o=i.get(r);if(o&&o!==t)throw new Q(`Database index name "${e.name}" identifies more than one index on table "${n}".`);o||(i.set(r,t),a.push(e))}return a}function cs({columnName:e,dialect:t,fields:n,indexes:r}){let i=new Map(Object.entries(n).map(([e,t])=>[t.fieldName||e,t])),a=r.filter(t=>t.columns.includes(e));if(a.length===0)return;let o=t===`mysql`?3072:1700,s=t===`mysql`?4:1,c=t===`mysql`?191:255;return a.reduce((e,t)=>{let n=t.columns.filter(e=>{let t=i.get(e)?.type;return t===`string`||Array.isArray(t)}).length;if(n===0)return e;let r=(t.columns.length-n)*16,a=Math.floor(Math.max(1,o-r)/s/n);return Math.min(e,a)},c)}function ls(e){let t=new Map;for(let n of e){let e=t.get(n.tableName);if(e){if(e.indexes.length>0||(n.indexes?.length??0)>0)throw new Q(`Database schema resolves more than one indexed logical table to "${n.tableName}". Define table-level indexes through one logical schema key instead of aliasing multiple keys to the same database table.`);Object.assign(e.fields,n.fields);continue}let r={fields:{},indexes:[],tableName:n.tableName};Object.assign(r.fields,n.fields),r.indexes.push(...n.indexes??[]),t.set(n.tableName,r)}let n=new Map,r=new Map,i=new Map([...t.keys()].map(e=>[$(e),e])),a=new Map;for(let e of t.values())for(let[t,n]of Object.entries(e.fields)){if(!n.index&&!n.unique)continue;let r=os(e.tableName,n.fieldName||t,n.unique??!1),o=$(r);if(i.has(o))throw new Q(`Database index name "${r}" conflicts with a table name. Index and table names must be unique across the schema.`);let s=a.get(o);if(s)throw new Q(`Database field-level index name "${r}" is used by both table "${s}" and table "${e.tableName}".`);a.set(o,e.tableName)}for(let e of t.values()){let t=ss(e);n.set(e.tableName,[...t]);for(let n of t){let t=$(n.name);if(i.has(t))throw new Q(`Database index name "${n.name}" conflicts with a table name. Index and table names must be unique across the schema.`);let o=a.get(t);if(o)throw new Q(`Database index name "${n.name}" is already reserved by field-level index metadata on table "${o}". Remove the duplicate table-level index or give it a distinct name.`);let s=r.get(t);if(s&&s!==e.tableName)throw new Q(`Database index name "${n.name}" is used by both table "${s}" and table "${e.tableName}". Index names must be unique across the schema.`);r.set(t,e.tableName)}}return n}function us(...e){let t=[],n=new Set;for(let r of e.flatMap(e=>e??[])){let e=JSON.stringify([r.name??null,r.fields,r.unique??!1]);n.has(e)||(n.add(e),t.push(r))}return t}var ds=e=>{let t=(e.plugins??[]).reduce((e,t)=>{let n=t.schema;if(!n)return e;for(let[t,r]of Object.entries(n))e[t]={fields:{...e[t]?.fields,...r.fields},indexes:us(e[t]?.indexes,r.indexes),modelName:r.modelName||t,disableMigrations:r.disableMigration??e[t]?.disableMigrations};return e},{}),n=e.rateLimit?.storage===`database`,r={rateLimit:{modelName:e.rateLimit?.modelName||`rateLimit`,fields:{key:{type:`string`,unique:!0,required:!0,fieldName:e.rateLimit?.fields?.key||`key`},count:{type:`number`,required:!0,fieldName:e.rateLimit?.fields?.count||`count`},lastRequest:{type:`number`,bigint:!0,required:!0,fieldName:e.rateLimit?.fields?.lastRequest||`lastRequest`,defaultValue:()=>Date.now()}}}},{user:i,session:a,account:o,verification:s,...c}=t,l={verification:{modelName:e.verification?.modelName||`verification`,indexes:s?.indexes,fields:{identifier:{type:`string`,required:!0,fieldName:e.verification?.fields?.identifier||`identifier`,index:!0},value:{type:`string`,required:!0,fieldName:e.verification?.fields?.value||`value`},expiresAt:{type:`date`,required:!0,fieldName:e.verification?.fields?.expiresAt||`expiresAt`},createdAt:{type:`date`,required:!0,defaultValue:()=>new Date,fieldName:e.verification?.fields?.createdAt||`createdAt`},updatedAt:{type:`date`,required:!0,defaultValue:()=>new Date,onUpdate:()=>new Date,fieldName:e.verification?.fields?.updatedAt||`updatedAt`},...s?.fields,...e.verification?.additionalFields},order:4}},u={session:{modelName:e.session?.modelName||`session`,indexes:a?.indexes,fields:{expiresAt:{type:`date`,required:!0,fieldName:e.session?.fields?.expiresAt||`expiresAt`},token:{type:`string`,required:!0,fieldName:e.session?.fields?.token||`token`,unique:!0},createdAt:{type:`date`,required:!0,fieldName:e.session?.fields?.createdAt||`createdAt`,defaultValue:()=>new Date},updatedAt:{type:`date`,required:!0,fieldName:e.session?.fields?.updatedAt||`updatedAt`,onUpdate:()=>new Date},ipAddress:{type:`string`,required:!1,fieldName:e.session?.fields?.ipAddress||`ipAddress`},userAgent:{type:`string`,required:!1,fieldName:e.session?.fields?.userAgent||`userAgent`},userId:{type:`string`,fieldName:e.session?.fields?.userId||`userId`,references:{model:`user`,field:`id`,onDelete:`cascade`},required:!0,index:!0},...a?.fields,...e.session?.additionalFields},order:2}};return{user:{modelName:e.user?.modelName||`user`,indexes:i?.indexes,fields:{name:{type:`string`,required:!0,fieldName:e.user?.fields?.name||`name`,sortable:!0},email:{type:`string`,unique:!0,required:!0,fieldName:e.user?.fields?.email||`email`,sortable:!0},emailVerified:{type:`boolean`,defaultValue:!1,required:!0,fieldName:e.user?.fields?.emailVerified||`emailVerified`,input:!1},image:{type:`string`,required:!1,fieldName:e.user?.fields?.image||`image`},createdAt:{type:`date`,defaultValue:()=>new Date,required:!0,fieldName:e.user?.fields?.createdAt||`createdAt`},updatedAt:{type:`date`,defaultValue:()=>new Date,onUpdate:()=>new Date,required:!0,fieldName:e.user?.fields?.updatedAt||`updatedAt`},...i?.fields,...e.user?.additionalFields},order:1},...!e.secondaryStorage||e.session?.storeSessionInDatabase?u:{},account:{modelName:e.account?.modelName||`account`,indexes:o?.indexes,fields:{accountId:{type:`string`,required:!0,fieldName:e.account?.fields?.accountId||`accountId`},providerId:{type:`string`,required:!0,fieldName:e.account?.fields?.providerId||`providerId`},userId:{type:`string`,references:{model:`user`,field:`id`,onDelete:`cascade`},required:!0,fieldName:e.account?.fields?.userId||`userId`,index:!0},accessToken:{type:`string`,required:!1,returned:!1,fieldName:e.account?.fields?.accessToken||`accessToken`},refreshToken:{type:`string`,required:!1,returned:!1,fieldName:e.account?.fields?.refreshToken||`refreshToken`},idToken:{type:`string`,required:!1,returned:!1,fieldName:e.account?.fields?.idToken||`idToken`},accessTokenExpiresAt:{type:`date`,required:!1,returned:!1,fieldName:e.account?.fields?.accessTokenExpiresAt||`accessTokenExpiresAt`},refreshTokenExpiresAt:{type:`date`,required:!1,returned:!1,fieldName:e.account?.fields?.refreshTokenExpiresAt||`refreshTokenExpiresAt`},scope:{type:`string`,required:!1,fieldName:e.account?.fields?.scope||`scope`},password:{type:`string`,required:!1,returned:!1,fieldName:e.account?.fields?.password||`password`},createdAt:{type:`date`,required:!0,fieldName:e.account?.fields?.createdAt||`createdAt`,defaultValue:()=>new Date},updatedAt:{type:`date`,required:!0,fieldName:e.account?.fields?.updatedAt||`updatedAt`,onUpdate:()=>new Date},...o?.fields,...e.account?.additionalFields},order:3},...!e.secondaryStorage||e.verification?.storeInDatabase?l:{},...c,...n?r:{}}};function fs(e){let t=ds(e);return{indexesByTable:ls(Object.values(t).filter(e=>!(`disableMigrations`in e)||!e.disableMigrations).map(e=>({fields:e.fields,indexes:`indexes`in e?e.indexes:void 0,tableName:e.modelName}))),tables:t}}var ps=e=>fs(e).tables,ms=/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d+)?Z$/;function hs(e){if(typeof e==`string`&&ms.test(e)){let t=new Date(e);if(!isNaN(t.getTime()))return t}return e}function gs(e){if(e==null)return e;if(typeof e==`string`)return hs(e);if(e instanceof Date)return e;if(Array.isArray(e))return e.map(gs);if(typeof e==`object`){let t={};for(let n of Object.keys(e))t[n]=gs(e[n]);return t}return e}function _s(e){try{return typeof e==`string`?JSON.parse(e,(e,t)=>hs(t)):e==null?null:gs(e)}catch(e){return Z.error(`Error parsing JSON`,{error:e}),null}}var vs=e=>co(e),ys={encode:e=>{let t=_o(e);if(t.byteLength===0)return``;let n=``;for(let e of t)n+=e.toString(16).padStart(2,`0`);return n},decode:e=>e?typeof e==`string`?new TextDecoder().decode(vs(e)):new TextDecoder().decode(e):``,toBytes:vs},bs=`db.collection.name`,xs=`db.operation.name`,Ss=`http.response.status_code`,Cs=`http.route`,ws=`better_auth.operation_id`,Ts=`better_auth.hook.type`,Es=`better_auth.context`;function Ds(){let e={end(){},setAttribute(e,t){},setStatus(e){},recordException(e){},updateName(t){return e}};return e}function Os(e){function t(t,...n){let r=n[n.length-1];return r(e)}return{startActiveSpan:t}}function ks(){let e=Os(Ds());return{getTracer(t,n){return e},getActiveSpan(){}}}function As(){return{SpanStatusCode:{UNSET:0,OK:1,ERROR:2},trace:ks()}}As();function js(e,t,n){return n()}function Ms(e){return js}var Ns=e=>ho(`a-z`,`A-Z`,`0-9`)(e||32),Ps=({usePlural:e,schema:t})=>n=>{let r=e=>t[e]?e:Object.entries(t).find(([t,n])=>n.modelName===e)?.[0];if(e&&n.charAt(n.length-1)===`s`){let e=r(n.slice(0,-1));if(e)return e}let i=r(n);if(!i)throw new Q(`Model "${n}" not found in schema`);return i},Fs=!1;function Is(e,t){let n=t.advanced?.database?.generateId;if(n===`serial`&&!Fs&&(Fs=!0,Z.warn('Single-use checks (such as SAML assertion IDs, DPoP proofs, and private_key_jwt assertions) need string ids and are not enforced with `advanced.database.generateId: "serial"`.')),n!==`uuid`)return xo.encode(e,{padding:!1});let r=e.slice(0,16);r[6]=r[6]&15|80,r[8]=r[8]&63|128;let i=ys.encode(r);return`${i.slice(0,8)}-${i.slice(8,12)}-${i.slice(12,16)}-${i.slice(16,20)}-${i.slice(20)}`}var Ls=({usePlural:e,schema:t,disableIdGeneration:n,options:r,customIdGenerator:i,supportsUUIDs:a})=>{let o=Ps({usePlural:e,schema:t});return({customModelName:e,forceAllowId:t})=>{let s=r.advanced?.database?.generateId===`serial`,c=r.advanced?.database?.generateId===`uuid`,l=n||s&&!t?!1:!c||!a,u=o(e??`id`);return{type:s?`number`:`string`,required:!!l,...l?{defaultValue(){if(n)return;let e=r.advanced?.database?.generateId;if(e!==!1&&e!==`serial`)return typeof e==`function`?e({model:u}):e===`uuid`?crypto.randomUUID():i?i({model:u}):Ns()}}:{},transform:{input:e=>{if(e){if(s){let t=Number(e);return isNaN(t)?void 0:t}if(c){if(l&&!t)return e;if(n)return;if(t&&typeof e==`string`){if(/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i.test(e))return e;{let e=Error().stack?.split(`
4
+ `).filter((e,t)=>t!==1).join(`
5
+ `).replace(`Error:`,``);Z.warn("[Adapter Factory] - Invalid UUID value for field `id` provided when `forceAllowId` is true. Generating a new UUID.",e)}}return a?void 0:typeof e!=`string`&&!a?crypto.randomUUID():void 0}return e}},output:e=>{if(e)return String(e)}}}}};export{no as $,Dn as $n,E as $t,Lo as A,Hr as An,ca as At,ko as B,tr as Bn,fr as Bt,Zo as C,A as Cn,Hi as Ct,Go as D,Rr as Dn,aa as Dt,Wo as E,Wr as En,ma as Et,No as F,Ir as Fn,mr as Ft,Ya as G,wn as Gn,ar as Gt,xo as H,jn as Hn,Tr as Ht,Fo as I,nr as In,hr as It,L as J,Tn as Jn,Ar as Jt,$a as K,En as Kn,or as Kt,Ao as L,Qn as Ln,Er as Lt,Io as M,Vr as Mn,Ci as Mt,H as N,sr as Nn,Dr as Nt,Ko as O,Jn as On,mi as Ot,Po as P,Or as Pn,Gr as Pt,fo as Q,An as Qn,zr as Qt,Oo as R,$n as Rn,wr as Rt,Y as S,Sr as Sn,$i as St,Jo as T,Pr as Tn,Sa as Tt,go as U,Wn as Un,jr as Ut,bo as V,cr as Vn,pr as Vt,ho as W,Un as Wn,Yn as Wt,oo as X,hn as Xn,Xn as Xt,eo as Y,mn as Yn,gr as Yt,to as Z,On as Zn,rr as Zt,os as _,k as _n,bi as _t,Ms as a,dr as an,cn as ar,I as at,$o as b,kr as bn,va as bt,xs as c,xr as cn,fn as cr,ga as ct,Cs as d,lr as dn,Ji as dt,D as en,kn as er,po as et,ws as f,Nr as fn,Ki as ft,fs as g,Mr as gn,ua as gt,ps as h,T as hn,ta as ht,Ns as i,ur as in,Sn as ir,ea as it,V as j,Ur as jn,F as jt,Vo as k,Jr as kn,Ha as kt,Ts as l,br as ln,Xi as lt,_s as m,w as mn,Wa as mt,Ls as n,Lr as nn,b as nr,lo as nt,Es as o,yr as on,un as or,xa as ot,ys as p,Fr as pn,Ra as pt,Xa as q,Cn as qn,Kr as qt,Ps as r,Cr as rn,bn as rr,Gi as rt,bs as s,vr as sn,dn as sr,pi as st,Is as t,Zn as tn,gn as tr,ro as tt,Ss as u,_r as un,ra as ut,cs as v,O as vn,Mi as vt,Z as w,qr as wn,ia as wt,Q as x,Br as xn,oa as xt,$ as y,ir as yn,Pi as yt,Do as z,er as zn,Yr as zt};
6
+ //# sourceMappingURL=get-id-field-BpOAoqqI.js.map