@access-dlsu/leapify 0.260505.5 → 0.260507.1

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 (199) hide show
  1. package/dist/app.d.ts +15 -0
  2. package/dist/app.d.ts.map +1 -0
  3. package/dist/auth/auth.d.ts +99 -0
  4. package/dist/auth/auth.d.ts.map +1 -0
  5. package/dist/auth/middleware.d.ts +20 -0
  6. package/dist/auth/middleware.d.ts.map +1 -0
  7. package/dist/auth/types.d.ts +17 -0
  8. package/dist/auth/types.d.ts.map +1 -0
  9. package/dist/bun-sqlite-dialect-na--YwnN-NIYANHVJ.cjs +162 -0
  10. package/dist/bun-sqlite-dialect-na--YwnN-NIYANHVJ.cjs.map +1 -0
  11. package/dist/bun-sqlite-dialect-na--YwnN-XVQNOKSL.js +160 -0
  12. package/dist/bun-sqlite-dialect-na--YwnN-XVQNOKSL.js.map +1 -0
  13. package/dist/chunk-4DPT2KQR.cjs +467 -0
  14. package/dist/chunk-4DPT2KQR.cjs.map +1 -0
  15. package/dist/chunk-5JKLV7IE.cjs +2962 -0
  16. package/dist/chunk-5JKLV7IE.cjs.map +1 -0
  17. package/dist/chunk-5OQD5ALM.cjs +76 -0
  18. package/dist/chunk-5OQD5ALM.cjs.map +1 -0
  19. package/dist/{chunk-FLR7TNLN.js → chunk-63CUZGSZ.js} +4 -12
  20. package/dist/chunk-63CUZGSZ.js.map +1 -0
  21. package/dist/chunk-6MMWL46O.cjs +7170 -0
  22. package/dist/chunk-6MMWL46O.cjs.map +1 -0
  23. package/dist/chunk-ANNHE3PZ.js +2285 -0
  24. package/dist/chunk-ANNHE3PZ.js.map +1 -0
  25. package/dist/chunk-EGRHWZRV.js +3 -0
  26. package/dist/chunk-EGRHWZRV.js.map +1 -0
  27. package/dist/chunk-EMMSS5I5.cjs +37 -0
  28. package/dist/chunk-EMMSS5I5.cjs.map +1 -0
  29. package/dist/chunk-FUCJEA2S.js +6196 -0
  30. package/dist/chunk-FUCJEA2S.js.map +1 -0
  31. package/dist/chunk-G3PMV62Z.js +33 -0
  32. package/dist/chunk-G3PMV62Z.js.map +1 -0
  33. package/dist/chunk-GNRL67OU.js +2949 -0
  34. package/dist/chunk-GNRL67OU.js.map +1 -0
  35. package/dist/chunk-HHNEB7YR.js +8 -0
  36. package/dist/chunk-HHNEB7YR.js.map +1 -0
  37. package/dist/chunk-IQEWVHLM.js +889 -0
  38. package/dist/chunk-IQEWVHLM.js.map +1 -0
  39. package/dist/chunk-JIZPYG6H.js +72 -0
  40. package/dist/chunk-JIZPYG6H.js.map +1 -0
  41. package/dist/chunk-JPVIXCF5.cjs +10 -0
  42. package/dist/chunk-JPVIXCF5.cjs.map +1 -0
  43. package/dist/chunk-JQSZJWBN.cjs +3075 -0
  44. package/dist/chunk-JQSZJWBN.cjs.map +1 -0
  45. package/dist/chunk-MNEW2V4T.js +447 -0
  46. package/dist/chunk-MNEW2V4T.js.map +1 -0
  47. package/dist/chunk-MY37YE52.js +3034 -0
  48. package/dist/chunk-MY37YE52.js.map +1 -0
  49. package/dist/chunk-NKIQRCOM.cjs +4 -0
  50. package/dist/chunk-NKIQRCOM.cjs.map +1 -0
  51. package/dist/chunk-OK6RVPEH.cjs +6200 -0
  52. package/dist/chunk-OK6RVPEH.cjs.map +1 -0
  53. package/dist/chunk-QARF2YFF.cjs +2296 -0
  54. package/dist/chunk-QARF2YFF.cjs.map +1 -0
  55. package/dist/chunk-RFP2X2FA.cjs +903 -0
  56. package/dist/chunk-RFP2X2FA.cjs.map +1 -0
  57. package/dist/chunk-XJSWMHDL.js +7142 -0
  58. package/dist/chunk-XJSWMHDL.js.map +1 -0
  59. package/dist/{chunk-3ZWIJNZG.cjs → chunk-YFJBE3AU.cjs} +4 -12
  60. package/dist/chunk-YFJBE3AU.cjs.map +1 -0
  61. package/dist/client/{index.d.cts → auth.d.ts} +140 -394
  62. package/dist/client/auth.d.ts.map +1 -0
  63. package/dist/client/index.cjs +909 -48
  64. package/dist/client/index.cjs.map +1 -1
  65. package/dist/client/index.d.ts +83 -1134
  66. package/dist/client/index.d.ts.map +1 -0
  67. package/dist/client/index.js +908 -47
  68. package/dist/client/index.js.map +1 -1
  69. package/dist/client/pow.d.ts +28 -0
  70. package/dist/client/pow.d.ts.map +1 -0
  71. package/dist/client/session.d.ts +29 -0
  72. package/dist/client/session.d.ts.map +1 -0
  73. package/dist/client/types.d.ts +58 -38
  74. package/dist/client/types.d.ts.map +1 -0
  75. package/dist/cron/batch-release.d.ts +9 -0
  76. package/dist/cron/batch-release.d.ts.map +1 -0
  77. package/dist/cron/lifecycle-check.d.ts +10 -0
  78. package/dist/cron/lifecycle-check.d.ts.map +1 -0
  79. package/dist/cron/reconcile-slots.d.ts +10 -0
  80. package/dist/cron/reconcile-slots.d.ts.map +1 -0
  81. package/dist/cron/reminder-emails.d.ts +9 -0
  82. package/dist/cron/reminder-emails.d.ts.map +1 -0
  83. package/dist/cron/renew-watches.d.ts +9 -0
  84. package/dist/cron/renew-watches.d.ts.map +1 -0
  85. package/dist/d1-sqlite-dialect-C2B7YsIT-6TVV7EJ5.js +122 -0
  86. package/dist/d1-sqlite-dialect-C2B7YsIT-6TVV7EJ5.js.map +1 -0
  87. package/dist/d1-sqlite-dialect-C2B7YsIT-PE74FLHQ.cjs +124 -0
  88. package/dist/d1-sqlite-dialect-C2B7YsIT-PE74FLHQ.cjs.map +1 -0
  89. package/dist/db/index.d.ts +7 -0
  90. package/dist/db/index.d.ts.map +1 -0
  91. package/dist/db/migrate.d.ts +23 -0
  92. package/dist/db/migrate.d.ts.map +1 -0
  93. package/dist/db/schema/auth.d.ts +649 -0
  94. package/dist/db/schema/auth.d.ts.map +1 -0
  95. package/dist/db/schema/bookmarks.d.ts +88 -0
  96. package/dist/db/schema/bookmarks.d.ts.map +1 -0
  97. package/dist/db/schema/events.d.ts +546 -0
  98. package/dist/db/schema/events.d.ts.map +1 -0
  99. package/dist/db/schema/faqs.d.ts +137 -0
  100. package/dist/db/schema/faqs.d.ts.map +1 -0
  101. package/dist/db/schema/index.d.ts +9 -0
  102. package/dist/db/schema/index.d.ts.map +1 -0
  103. package/dist/db/schema/organizations.d.ts +125 -0
  104. package/dist/db/schema/organizations.d.ts.map +1 -0
  105. package/dist/db/schema/site-config.d.ts +64 -0
  106. package/dist/db/schema/site-config.d.ts.map +1 -0
  107. package/dist/db/schema/themes.d.ts +104 -0
  108. package/dist/db/schema/themes.d.ts.map +1 -0
  109. package/dist/{types-lTjxCp88.d.cts → db/schema/users.d.ts} +11 -96
  110. package/dist/db/schema/users.d.ts.map +1 -0
  111. package/dist/dist-DZHA5VYX.cjs +260 -0
  112. package/dist/dist-DZHA5VYX.cjs.map +1 -0
  113. package/dist/dist-RRQUBLLO.js +258 -0
  114. package/dist/dist-RRQUBLLO.js.map +1 -0
  115. package/dist/index.cjs +38065 -937
  116. package/dist/index.cjs.map +1 -1
  117. package/dist/index.d.ts +23 -1818
  118. package/dist/index.d.ts.map +1 -0
  119. package/dist/index.js +37940 -816
  120. package/dist/index.js.map +1 -1
  121. package/dist/kysely-adapter-C76KJVG7.js +10 -0
  122. package/dist/kysely-adapter-C76KJVG7.js.map +1 -0
  123. package/dist/kysely-adapter-TGY4UUP5.cjs +27 -0
  124. package/dist/kysely-adapter-TGY4UUP5.cjs.map +1 -0
  125. package/dist/lib/errors.d.ts +15 -0
  126. package/dist/lib/errors.d.ts.map +1 -0
  127. package/dist/lib/middleware/cors.d.ts +3 -0
  128. package/dist/lib/middleware/cors.d.ts.map +1 -0
  129. package/dist/lib/middleware/error-handler.d.ts +3 -0
  130. package/dist/lib/middleware/error-handler.d.ts.map +1 -0
  131. package/dist/lib/middleware/pow-challenge.cjs +7 -7
  132. package/dist/lib/middleware/pow-challenge.d.ts +29 -18
  133. package/dist/lib/middleware/pow-challenge.d.ts.map +1 -0
  134. package/dist/lib/middleware/pow-challenge.js +2 -2
  135. package/dist/lib/middleware/rate-limit.d.ts +48 -0
  136. package/dist/lib/middleware/rate-limit.d.ts.map +1 -0
  137. package/dist/lib/middleware/referer-guard.d.ts +18 -0
  138. package/dist/lib/middleware/referer-guard.d.ts.map +1 -0
  139. package/dist/lib/retry.d.ts +12 -0
  140. package/dist/lib/retry.d.ts.map +1 -0
  141. package/dist/node-sqlite-dialect-B3H37T3R.cjs +162 -0
  142. package/dist/node-sqlite-dialect-B3H37T3R.cjs.map +1 -0
  143. package/dist/node-sqlite-dialect-GDP7ZE54.js +160 -0
  144. package/dist/node-sqlite-dialect-GDP7ZE54.js.map +1 -0
  145. package/dist/queues/handlers.d.ts +13 -0
  146. package/dist/queues/handlers.d.ts.map +1 -0
  147. package/dist/queues/jobs.d.ts +42 -0
  148. package/dist/queues/jobs.d.ts.map +1 -0
  149. package/dist/routes/events.d.ts +4 -0
  150. package/dist/routes/events.d.ts.map +1 -0
  151. package/dist/routes/faqs.d.ts +4 -0
  152. package/dist/routes/faqs.d.ts.map +1 -0
  153. package/dist/routes/health.d.ts +4 -0
  154. package/dist/routes/health.d.ts.map +1 -0
  155. package/dist/routes/internal/gforms-webhook.d.ts +4 -0
  156. package/dist/routes/internal/gforms-webhook.d.ts.map +1 -0
  157. package/dist/routes/organizations.d.ts +4 -0
  158. package/dist/routes/organizations.d.ts.map +1 -0
  159. package/dist/routes/site-config.d.ts +4 -0
  160. package/dist/routes/site-config.d.ts.map +1 -0
  161. package/dist/routes/themes.d.ts +4 -0
  162. package/dist/routes/themes.d.ts.map +1 -0
  163. package/dist/routes/uploads.d.ts +4 -0
  164. package/dist/routes/uploads.d.ts.map +1 -0
  165. package/dist/routes/users.d.ts +4 -0
  166. package/dist/routes/users.d.ts.map +1 -0
  167. package/dist/services/cache.d.ts +22 -0
  168. package/dist/services/cache.d.ts.map +1 -0
  169. package/dist/services/contentful-management.d.ts +38 -0
  170. package/dist/services/contentful-management.d.ts.map +1 -0
  171. package/dist/services/contentful.d.ts +97 -0
  172. package/dist/services/contentful.d.ts.map +1 -0
  173. package/dist/services/email.d.ts +75 -0
  174. package/dist/services/email.d.ts.map +1 -0
  175. package/dist/services/gforms.d.ts +60 -0
  176. package/dist/services/gforms.d.ts.map +1 -0
  177. package/dist/services/resend.d.ts +35 -0
  178. package/dist/services/resend.d.ts.map +1 -0
  179. package/dist/services/ses.d.ts +58 -0
  180. package/dist/services/ses.d.ts.map +1 -0
  181. package/dist/services/slots.d.ts +48 -0
  182. package/dist/services/slots.d.ts.map +1 -0
  183. package/dist/services/snapshot.d.ts +95 -0
  184. package/dist/services/snapshot.d.ts.map +1 -0
  185. package/dist/types.d.ts +66 -0
  186. package/dist/types.d.ts.map +1 -0
  187. package/dist/worker-handler.d.ts +64 -0
  188. package/dist/worker-handler.d.ts.map +1 -0
  189. package/dist/worker.d.ts +36 -0
  190. package/dist/worker.d.ts.map +1 -0
  191. package/dist/worker.js +1172 -583
  192. package/dist/worker.js.map +1 -1
  193. package/package.json +153 -152
  194. package/dist/chunk-3ZWIJNZG.cjs.map +0 -1
  195. package/dist/chunk-FLR7TNLN.js.map +0 -1
  196. package/dist/client/types.d.cts +0 -192
  197. package/dist/index.d.cts +0 -1879
  198. package/dist/lib/middleware/pow-challenge.d.cts +0 -47
  199. package/dist/types-lTjxCp88.d.ts +0 -208
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../node_modules/better-auth/dist/package.mjs","../node_modules/better-auth/dist/version.mjs","../node_modules/better-auth/dist/utils/wildcard.mjs","../node_modules/better-auth/dist/utils/url.mjs","../node_modules/defu/dist/defu.mjs","../node_modules/@better-fetch/fetch/src/error.ts","../node_modules/@better-fetch/fetch/src/plugins.ts","../node_modules/@better-fetch/fetch/src/retry.ts","../node_modules/@better-fetch/fetch/src/auth.ts","../node_modules/@better-fetch/fetch/src/utils.ts","../node_modules/@better-fetch/fetch/src/create-fetch/schema.ts","../node_modules/@better-fetch/fetch/src/create-fetch/index.ts","../node_modules/@better-fetch/fetch/src/url.ts","../node_modules/@better-fetch/fetch/src/fetch.ts"],"names":["url","_a","getURL","clearTimeout","parser"],"mappings":"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","file":"chunk-IQEWVHLM.js","sourcesContent":["//#region package.json\nvar version = \"1.6.9\";\n//#endregion\nexport { version };\n","import { version } from \"./package.mjs\";\n//#region src/version.ts\nconst PACKAGE_VERSION = version;\n//#endregion\nexport { PACKAGE_VERSION };\n","//#region src/utils/wildcard.ts\n/**\n* Escapes a character if it has a special meaning in regular expressions\n* and returns the character as is if it doesn't\n*/\nfunction escapeRegExpChar(char) {\n\tif (char === \"-\" || char === \"^\" || char === \"$\" || char === \"+\" || char === \".\" || char === \"(\" || char === \")\" || char === \"|\" || char === \"[\" || char === \"]\" || char === \"{\" || char === \"}\" || char === \"*\" || char === \"?\" || char === \"\\\\\") return `\\\\${char}`;\n\telse return char;\n}\n/**\n* Escapes all characters in a given string that have a special meaning in regular expressions\n*/\nfunction escapeRegExpString(str) {\n\tlet result = \"\";\n\tfor (let i = 0; i < str.length; i++) result += escapeRegExpChar(str[i]);\n\treturn result;\n}\n/**\n* Transforms one or more glob patterns into a RegExp pattern\n*/\nfunction transform(pattern, separator = true) {\n\tif (Array.isArray(pattern)) return `(?:${pattern.map((p) => `^${transform(p, separator)}$`).join(\"|\")})`;\n\tlet separatorSplitter = \"\";\n\tlet separatorMatcher = \"\";\n\tlet wildcard = \".\";\n\tif (separator === true) {\n\t\tseparatorSplitter = \"/\";\n\t\tseparatorMatcher = \"[/\\\\\\\\]\";\n\t\twildcard = \"[^/\\\\\\\\]\";\n\t} else if (separator) {\n\t\tseparatorSplitter = separator;\n\t\tseparatorMatcher = escapeRegExpString(separatorSplitter);\n\t\tif (separatorMatcher.length > 1) {\n\t\t\tseparatorMatcher = `(?:${separatorMatcher})`;\n\t\t\twildcard = `((?!${separatorMatcher}).)`;\n\t\t} else wildcard = `[^${separatorMatcher}]`;\n\t}\n\tconst requiredSeparator = separator ? `${separatorMatcher}+?` : \"\";\n\tconst optionalSeparator = separator ? `${separatorMatcher}*?` : \"\";\n\tconst segments = separator ? pattern.split(separatorSplitter) : [pattern];\n\tlet result = \"\";\n\tfor (let s = 0; s < segments.length; s++) {\n\t\tconst segment = segments[s];\n\t\tconst nextSegment = segments[s + 1];\n\t\tlet currentSeparator = \"\";\n\t\tif (!segment && s > 0) continue;\n\t\tif (separator) if (s === segments.length - 1) currentSeparator = optionalSeparator;\n\t\telse if (nextSegment !== \"**\") currentSeparator = requiredSeparator;\n\t\telse currentSeparator = \"\";\n\t\tif (separator && segment === \"**\") {\n\t\t\tif (currentSeparator) {\n\t\t\t\tresult += s === 0 ? \"\" : currentSeparator;\n\t\t\t\tresult += `(?:${wildcard}*?${currentSeparator})*?`;\n\t\t\t}\n\t\t\tcontinue;\n\t\t}\n\t\tfor (let c = 0; c < segment.length; c++) {\n\t\t\tconst char = segment[c];\n\t\t\tif (char === \"\\\\\") {\n\t\t\t\tif (c < segment.length - 1) {\n\t\t\t\t\tresult += escapeRegExpChar(segment[c + 1]);\n\t\t\t\t\tc++;\n\t\t\t\t}\n\t\t\t} else if (char === \"?\") result += wildcard;\n\t\t\telse if (char === \"*\") result += `${wildcard}*?`;\n\t\t\telse result += escapeRegExpChar(char);\n\t\t}\n\t\tresult += currentSeparator;\n\t}\n\treturn result;\n}\nfunction isMatch(regexp, sample) {\n\tif (typeof sample !== \"string\") throw new TypeError(`Sample must be a string, but ${typeof sample} given`);\n\treturn regexp.test(sample);\n}\n/**\n* Compiles one or more glob patterns into a RegExp and returns an isMatch function.\n* The isMatch function takes a sample string as its only argument and returns `true`\n* if the string matches the pattern(s).\n*\n* ```js\n* wildcardMatch('src/*.js')('src/index.js') //=> true\n* ```\n*\n* ```js\n* const isMatch = wildcardMatch('*.example.com', '.')\n* isMatch('foo.example.com') //=> true\n* isMatch('foo.bar.com') //=> false\n* ```\n*/\nfunction wildcardMatch(pattern, options) {\n\tif (typeof pattern !== \"string\" && !Array.isArray(pattern)) throw new TypeError(`The first argument must be a single pattern string or an array of patterns, but ${typeof pattern} given`);\n\tif (typeof options === \"string\" || typeof options === \"boolean\") options = { separator: options };\n\tif (arguments.length === 2 && !(typeof options === \"undefined\" || typeof options === \"object\" && options !== null && !Array.isArray(options))) throw new TypeError(`The second argument must be an options object or a string/boolean separator, but ${typeof options} given`);\n\toptions = options || {};\n\tif (options.separator === \"\\\\\") throw new Error(\"\\\\ is not a valid separator because it is used for escaping. Try setting the separator to `true` instead\");\n\tconst regexpPattern = transform(pattern, options.separator);\n\tconst regexp = new RegExp(`^${regexpPattern}$`, options.flags);\n\tconst fn = isMatch.bind(null, regexp);\n\tfn.options = options;\n\tfn.pattern = pattern;\n\tfn.regexp = regexp;\n\treturn fn;\n}\n//#endregion\nexport { wildcardMatch };\n","import { wildcardMatch } from \"./wildcard.mjs\";\nimport { env } from \"@better-auth/core/env\";\nimport { BetterAuthError } from \"@better-auth/core/error\";\n//#region src/utils/url.ts\n/**\n* Minimal loopback check for dev scheme inference only. Reachable from\n* `client/config.ts` via `getBaseURL`, so we MUST NOT import the full\n* `@better-auth/core/utils/host` classifier here: its `utils/ip` dependency\n* on zod would leak into the client bundle (see `e2e/smoke/test/vite.spec.ts`).\n*\n* Server-side SSRF/loopback checks (oauth redirect matching, trusted-origin\n* resolution, electron fetch gate) continue to use the authoritative\n* `isLoopbackHost` from `@better-auth/core/utils/host`. This helper's only\n* job is picking `http` vs `https` for dev ergonomics.\n*/\nfunction isLoopbackForDevScheme(host) {\n\tconst hostname = host.replace(/:\\d+$/, \"\").replace(/^\\[|\\]$/g, \"\").toLowerCase();\n\treturn hostname === \"localhost\" || hostname.endsWith(\".localhost\") || hostname === \"::1\" || hostname.startsWith(\"127.\");\n}\nfunction checkHasPath(url) {\n\ttry {\n\t\treturn (new URL(url).pathname.replace(/\\/+$/, \"\") || \"/\") !== \"/\";\n\t} catch {\n\t\tthrow new BetterAuthError(`Invalid base URL: ${url}. Please provide a valid base URL.`);\n\t}\n}\nfunction assertHasProtocol(url) {\n\ttry {\n\t\tconst parsedUrl = new URL(url);\n\t\tif (parsedUrl.protocol !== \"http:\" && parsedUrl.protocol !== \"https:\") throw new BetterAuthError(`Invalid base URL: ${url}. URL must include 'http://' or 'https://'`);\n\t} catch (error) {\n\t\tif (error instanceof BetterAuthError) throw error;\n\t\tthrow new BetterAuthError(`Invalid base URL: ${url}. Please provide a valid base URL.`, { cause: error });\n\t}\n}\nfunction withPath(url, path = \"/api/auth\") {\n\tassertHasProtocol(url);\n\tif (checkHasPath(url)) return url;\n\tconst trimmedUrl = url.replace(/\\/+$/, \"\");\n\tif (!path || path === \"/\") return trimmedUrl;\n\tpath = path.startsWith(\"/\") ? path : `/${path}`;\n\treturn `${trimmedUrl}${path}`;\n}\nfunction validateProxyHeader(header, type) {\n\tif (!header || header.trim() === \"\") return false;\n\tif (type === \"proto\") return header === \"http\" || header === \"https\";\n\tif (type === \"host\") {\n\t\tif ([\n\t\t\t/\\.\\./,\n\t\t\t/\\0/,\n\t\t\t/[\\s]/,\n\t\t\t/^[.]/,\n\t\t\t/[<>'\"]/,\n\t\t\t/javascript:/i,\n\t\t\t/file:/i,\n\t\t\t/data:/i\n\t\t].some((pattern) => pattern.test(header))) return false;\n\t\treturn /^[a-zA-Z0-9]([a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(\\.[a-zA-Z0-9]([a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*(:[0-9]{1,5})?$/.test(header) || /^(\\d{1,3}\\.){3}\\d{1,3}(:[0-9]{1,5})?$/.test(header) || /^\\[[0-9a-fA-F:]+\\](:[0-9]{1,5})?$/.test(header) || /^localhost(:[0-9]{1,5})?$/i.test(header);\n\t}\n\treturn false;\n}\nfunction getBaseURL(url, path, request, loadEnv, trustedProxyHeaders) {\n\tif (url) return withPath(url, path);\n\tif (loadEnv !== false) {\n\t\tconst fromEnv = env.BETTER_AUTH_URL || env.NEXT_PUBLIC_BETTER_AUTH_URL || env.PUBLIC_BETTER_AUTH_URL || env.NUXT_PUBLIC_BETTER_AUTH_URL || env.NUXT_PUBLIC_AUTH_URL || (env.BASE_URL !== \"/\" ? env.BASE_URL : void 0);\n\t\tif (fromEnv) return withPath(fromEnv, path);\n\t}\n\tconst fromRequest = request?.headers.get(\"x-forwarded-host\");\n\tconst fromRequestProto = request?.headers.get(\"x-forwarded-proto\");\n\tif (fromRequest && fromRequestProto && trustedProxyHeaders) {\n\t\tif (validateProxyHeader(fromRequestProto, \"proto\") && validateProxyHeader(fromRequest, \"host\")) try {\n\t\t\treturn withPath(`${fromRequestProto}://${fromRequest}`, path);\n\t\t} catch (_error) {}\n\t}\n\tif (request) {\n\t\tconst url = getOrigin(request.url);\n\t\tif (!url) throw new BetterAuthError(\"Could not get origin from request. Please provide a valid base URL.\");\n\t\treturn withPath(url, path);\n\t}\n\tif (typeof window !== \"undefined\" && window.location) return withPath(window.location.origin, path);\n}\nfunction getOrigin(url) {\n\ttry {\n\t\tconst parsedUrl = new URL(url);\n\t\treturn parsedUrl.origin === \"null\" ? null : parsedUrl.origin;\n\t} catch {\n\t\treturn null;\n\t}\n}\nfunction getProtocol(url) {\n\ttry {\n\t\treturn new URL(url).protocol;\n\t} catch {\n\t\treturn null;\n\t}\n}\nfunction getHost(url) {\n\ttry {\n\t\treturn new URL(url).host;\n\t} catch {\n\t\treturn null;\n\t}\n}\n/**\n* Checks if the baseURL config is a dynamic config object\n*/\nfunction isDynamicBaseURLConfig(config) {\n\treturn typeof config === \"object\" && config !== null && \"allowedHosts\" in config && Array.isArray(config.allowedHosts);\n}\n/**\n* Check if a value is a `Request`\n* - `instanceof`: works for native Request instances\n* - `toString`: handles where instanceof check fails but the object is still a\n* valid Request (e.g. cross-realm, polyfills). Paired with a shape check so\n* an object that only spoofs `Symbol.toStringTag` without the real shape is\n* rejected before downstream code tries to read `.headers` / `.url`.\n*\n* @param value The value to check\n* @returns `true` if the value is a Request instance\n*/\nfunction isRequestLike(value) {\n\tif (value instanceof Request) return true;\n\tif (typeof value !== \"object\" || value === null || Object.prototype.toString.call(value) !== \"[object Request]\") return false;\n\tconst v = value;\n\treturn typeof v.url === \"string\" && typeof v.headers === \"object\" && v.headers !== null && typeof v.headers.get === \"function\";\n}\n/**\n* Extracts the host from a `Request` or `Headers`.\n* Honors `x-forwarded-host` only when `trustedProxyHeaders` is enabled,\n* then falls back to the `host` header and finally the request URL.\n*/\nfunction getHostFromSource(source, trustedProxyHeaders) {\n\tconst headers = isRequestLike(source) ? source.headers : source;\n\tif (trustedProxyHeaders) {\n\t\tconst forwardedHost = headers.get(\"x-forwarded-host\");\n\t\tif (forwardedHost && validateProxyHeader(forwardedHost, \"host\")) return forwardedHost;\n\t}\n\tconst host = headers.get(\"host\");\n\tif (host && validateProxyHeader(host, \"host\")) return host;\n\tif (isRequestLike(source)) try {\n\t\treturn new URL(source.url).host;\n\t} catch {\n\t\treturn null;\n\t}\n\treturn null;\n}\n/**\n* Extracts the protocol from a `Request` or `Headers`.\n* Honors `x-forwarded-proto` only when `trustedProxyHeaders` is enabled,\n* then falls back to the request URL, then to \"https\".\n*/\nfunction getProtocolFromSource(source, configProtocol, trustedProxyHeaders) {\n\tif (configProtocol === \"http\" || configProtocol === \"https\") return configProtocol;\n\tconst headers = isRequestLike(source) ? source.headers : source;\n\tif (trustedProxyHeaders) {\n\t\tconst forwardedProto = headers.get(\"x-forwarded-proto\");\n\t\tif (forwardedProto && validateProxyHeader(forwardedProto, \"proto\")) return forwardedProto;\n\t}\n\tif (isRequestLike(source)) try {\n\t\tconst url = new URL(source.url);\n\t\tif (url.protocol === \"http:\" || url.protocol === \"https:\") return url.protocol.slice(0, -1);\n\t} catch {}\n\tconst host = getHostFromSource(source, trustedProxyHeaders);\n\tif (host && isLoopbackForDevScheme(host)) return \"http\";\n\treturn \"https\";\n}\n/**\n* Matches a hostname against a host pattern.\n* Supports wildcard patterns like `*.vercel.app` or `preview-*.myapp.com`.\n*\n* @param host The hostname to test (e.g., \"myapp.com\", \"preview-123.vercel.app\")\n* @param pattern The host pattern (e.g., \"myapp.com\", \"*.vercel.app\")\n* @returns {boolean} true if the host matches the pattern, false otherwise.\n*\n* @example\n* ```ts\n* matchesHostPattern(\"myapp.com\", \"myapp.com\") // true\n* matchesHostPattern(\"preview-123.vercel.app\", \"*.vercel.app\") // true\n* matchesHostPattern(\"preview-123.myapp.com\", \"preview-*.myapp.com\") // true\n* matchesHostPattern(\"evil.com\", \"myapp.com\") // false\n* ```\n*/\nconst matchesHostPattern = (host, pattern) => {\n\tif (!host || !pattern) return false;\n\tconst normalizedHost = host.replace(/^https?:\\/\\//, \"\").split(\"/\")[0].toLowerCase();\n\tconst normalizedPattern = pattern.replace(/^https?:\\/\\//, \"\").split(\"/\")[0].toLowerCase();\n\tif (normalizedPattern.includes(\"*\") || normalizedPattern.includes(\"?\")) return wildcardMatch(normalizedPattern)(normalizedHost);\n\treturn normalizedHost.toLowerCase() === normalizedPattern.toLowerCase();\n};\n/**\n* Resolves the base URL from a dynamic config based on the incoming request.\n* Validates the derived host against the allowedHosts allowlist.\n*\n* @param config The dynamic base URL config\n* @param request The incoming request\n* @param basePath The base path to append\n* @returns The resolved base URL with path\n* @throws BetterAuthError if host is not in allowedHosts and no fallback is set\n*/\nfunction resolveDynamicBaseURL(config, source, basePath, trustedProxyHeaders) {\n\tconst host = getHostFromSource(source, trustedProxyHeaders);\n\tif (!host) {\n\t\tif (config.fallback) return withPath(config.fallback, basePath);\n\t\tthrow new BetterAuthError(\"Could not determine host from request headers. Please provide a fallback URL in your baseURL config.\");\n\t}\n\tif (config.allowedHosts.some((pattern) => matchesHostPattern(host, pattern))) return withPath(`${getProtocolFromSource(source, config.protocol, trustedProxyHeaders)}://${host}`, basePath);\n\tif (config.fallback) return withPath(config.fallback, basePath);\n\tthrow new BetterAuthError(`Host \"${host}\" is not in the allowed hosts list. Allowed hosts: ${config.allowedHosts.join(\", \")}. Add this host to your allowedHosts config or provide a fallback URL.`);\n}\n/**\n* Resolves the base URL from any config type (static string or dynamic object).\n* This is the main entry point for base URL resolution.\n*\n* @param config The base URL config (string or object)\n* @param basePath The base path to append\n* @param request Optional request for dynamic resolution\n* @param loadEnv Whether to load from environment variables\n* @param trustedProxyHeaders Whether to trust proxy headers (for legacy behavior)\n* @returns The resolved base URL with path\n*/\nfunction resolveBaseURL(config, basePath, source, loadEnv, trustedProxyHeaders) {\n\tif (isDynamicBaseURLConfig(config)) {\n\t\tif (source) return resolveDynamicBaseURL(config, source, basePath, trustedProxyHeaders);\n\t\tif (config.fallback) return withPath(config.fallback, basePath);\n\t\treturn getBaseURL(void 0, basePath, void 0, loadEnv, trustedProxyHeaders);\n\t}\n\tconst request = isRequestLike(source) ? source : void 0;\n\tif (typeof config === \"string\") return getBaseURL(config, basePath, request, loadEnv, trustedProxyHeaders);\n\treturn getBaseURL(void 0, basePath, request, loadEnv, trustedProxyHeaders);\n}\n//#endregion\nexport { getBaseURL, getHost, getHostFromSource, getOrigin, getProtocol, getProtocolFromSource, isDynamicBaseURLConfig, isRequestLike, matchesHostPattern, resolveBaseURL, resolveDynamicBaseURL };\n","function isPlainObject(value) {\n if (value === null || typeof value !== \"object\") {\n return false;\n }\n const prototype = Object.getPrototypeOf(value);\n if (prototype !== null && prototype !== Object.prototype && Object.getPrototypeOf(prototype) !== null) {\n return false;\n }\n if (Symbol.iterator in value) {\n return false;\n }\n if (Symbol.toStringTag in value) {\n return Object.prototype.toString.call(value) === \"[object Module]\";\n }\n return true;\n}\n\nfunction _defu(baseObject, defaults, namespace = \".\", merger) {\n if (!isPlainObject(defaults)) {\n return _defu(baseObject, {}, namespace, merger);\n }\n const object = { ...defaults };\n for (const key of Object.keys(baseObject)) {\n if (key === \"__proto__\" || key === \"constructor\") {\n continue;\n }\n const value = baseObject[key];\n if (value === null || value === void 0) {\n continue;\n }\n if (merger && merger(object, key, value, namespace)) {\n continue;\n }\n if (Array.isArray(value) && Array.isArray(object[key])) {\n object[key] = [...value, ...object[key]];\n } else if (isPlainObject(value) && isPlainObject(object[key])) {\n object[key] = _defu(\n value,\n object[key],\n (namespace ? `${namespace}.` : \"\") + key.toString(),\n merger\n );\n } else {\n object[key] = value;\n }\n }\n return object;\n}\nfunction createDefu(merger) {\n return (...arguments_) => (\n // eslint-disable-next-line unicorn/no-array-reduce\n arguments_.reduce((p, c) => _defu(p, c, \"\", merger), {})\n );\n}\nconst defu = createDefu();\nconst defuFn = createDefu((object, key, currentValue) => {\n if (object[key] !== void 0 && typeof currentValue === \"function\") {\n object[key] = currentValue(object[key]);\n return true;\n }\n});\nconst defuArrayFn = createDefu((object, key, currentValue) => {\n if (Array.isArray(object[key]) && typeof currentValue === \"function\") {\n object[key] = currentValue(object[key]);\n return true;\n }\n});\n\nexport { createDefu, defu as default, defu, defuArrayFn, defuFn };\n","export class BetterFetchError extends Error {\n\tconstructor(\n\t\tpublic status: number,\n\t\tpublic statusText: string,\n\t\tpublic error: any,\n\t) {\n\t\tsuper(statusText || status.toString(), {\n\t\t\tcause: error,\n\t\t});\n\t\tError.captureStackTrace(this, this.constructor);\n\t}\n}\n","import type { StandardSchemaV1 } from \"./standard-schema\";\nimport type { Schema } from \"./create-fetch\";\nimport type { BetterFetchError } from \"./error\";\nimport type { BetterFetchOption } from \"./types\";\n\nexport type RequestContext<T extends Record<string, any> = any> = {\n\turl: URL | string;\n\theaders: Headers;\n\tbody: any;\n\tmethod: string;\n\tsignal: AbortSignal;\n} & BetterFetchOption<any, any, any, T>;\nexport type ResponseContext = {\n\tresponse: Response;\n\trequest: RequestContext;\n};\nexport type SuccessContext<Res = any> = {\n\tdata: Res;\n\tresponse: Response;\n\trequest: RequestContext;\n};\nexport type ErrorContext = {\n\tresponse: Response;\n\trequest: RequestContext;\n\terror: BetterFetchError & Record<string, any>;\n};\nexport interface FetchHooks<Res = any> {\n\t/**\n\t * a callback function that will be called when a\n\t * request is made.\n\t *\n\t * The returned context object will be reassigned to\n\t * the original request context.\n\t */\n\tonRequest?: <T extends Record<string, any>>(\n\t\tcontext: RequestContext<T>,\n\t) => Promise<RequestContext | void> | RequestContext | void;\n\t/**\n\t * a callback function that will be called when\n\t * response is received. This will be called before\n\t * the response is parsed and returned.\n\t *\n\t * The returned response will be reassigned to the\n\t * original response if it's changed.\n\t */\n\tonResponse?: (\n\t\tcontext: ResponseContext,\n\t) =>\n\t\t| Promise<Response | void | ResponseContext>\n\t\t| Response\n\t\t| ResponseContext\n\t\t| void;\n\t/**\n\t * a callback function that will be called when a\n\t * response is successful.\n\t */\n\tonSuccess?: (context: SuccessContext<Res>) => Promise<void> | void;\n\t/**\n\t * a callback function that will be called when an\n\t * error occurs.\n\t */\n\tonError?: (context: ErrorContext) => Promise<void> | void;\n\t/**\n\t * a callback function that will be called when a\n\t * request is retried.\n\t */\n\tonRetry?: (response: ResponseContext) => Promise<void> | void;\n\t/**\n\t * Options for the hooks\n\t */\n\thookOptions?: {\n\t\t/**\n\t\t * Clone the response\n\t\t * @see https://developer.mozilla.org/en-US/docs/Web/API/Response/clone\n\t\t */\n\t\tcloneResponse?: boolean;\n\t};\n}\n\n/**\n * A plugin that returns an id and hooks\n */\nexport type BetterFetchPlugin<\n\tExtraOptions extends Record<string, any> = Record<string, any>,\n> = {\n\t/**\n\t * A unique id for the plugin\n\t */\n\tid: string;\n\t/**\n\t * A name for the plugin\n\t */\n\tname: string;\n\t/**\n\t * A description for the plugin\n\t */\n\tdescription?: string;\n\t/**\n\t * A version for the plugin\n\t */\n\tversion?: string;\n\t/**\n\t * Hooks for the plugin\n\t */\n\thooks?: FetchHooks;\n\t/**\n\t * A function that will be called when the plugin is\n\t * initialized. This will be called before the any\n\t * of the other internal functions.\n\t *\n\t * The returned options will be merged with the\n\t * original options.\n\t */\n\tinit?: (\n\t\turl: string,\n\t\toptions?: BetterFetchOption & ExtraOptions,\n\t) =>\n\t\t| Promise<{\n\t\t\t\turl: string;\n\t\t\t\toptions?: BetterFetchOption;\n\t\t }>\n\t\t| {\n\t\t\t\turl: string;\n\t\t\t\toptions?: BetterFetchOption;\n\t\t };\n\t/**\n\t * A schema for the plugin\n\t */\n\tschema?: Schema;\n\t/**\n\t * Additional options that can be passed to the plugin\n\t *\n\t * @deprecated Use type inference through direct typescript instead\n\t * ```ts\n\t * const plugin = {\n\t *\n\t * } satisfies BetterFetchPlugin<{\n\t * myCustomOptions: string;\n\t * }>\n\t * ```\n\t */\n\tgetOptions?: () => StandardSchemaV1;\n};\n\nexport const initializePlugins = async (\n\turl: string,\n\toptions?: BetterFetchOption,\n) => {\n\tlet opts = options || {};\n\tconst hooks: {\n\t\tonRequest: Array<FetchHooks[\"onRequest\"]>;\n\t\tonResponse: Array<FetchHooks[\"onResponse\"]>;\n\t\tonSuccess: Array<FetchHooks[\"onSuccess\"]>;\n\t\tonError: Array<FetchHooks[\"onError\"]>;\n\t\tonRetry: Array<FetchHooks[\"onRetry\"]>;\n\t} = {\n\t\tonRequest: [options?.onRequest],\n\t\tonResponse: [options?.onResponse],\n\t\tonSuccess: [options?.onSuccess],\n\t\tonError: [options?.onError],\n\t\tonRetry: [options?.onRetry],\n\t};\n\tif (!options || !options?.plugins) {\n\t\treturn {\n\t\t\turl,\n\t\t\toptions: opts,\n\t\t\thooks,\n\t\t};\n\t}\n\tfor (const plugin of options?.plugins || []) {\n\t\tif (plugin.init) {\n\t\t\tconst pluginRes = await plugin.init?.(url.toString(), options);\n\t\t\topts = pluginRes.options || opts;\n\t\t\turl = pluginRes.url;\n\t\t}\n\t\thooks.onRequest.push(plugin.hooks?.onRequest);\n\t\thooks.onResponse.push(plugin.hooks?.onResponse);\n\t\thooks.onSuccess.push(plugin.hooks?.onSuccess);\n\t\thooks.onError.push(plugin.hooks?.onError);\n\t\thooks.onRetry.push(plugin.hooks?.onRetry);\n\t}\n\n\treturn {\n\t\turl,\n\t\toptions: opts,\n\t\thooks,\n\t};\n};\n","export type RetryCondition = (\n\tresponse: Response | null,\n) => boolean | Promise<boolean>;\n\nexport type LinearRetry = {\n\ttype: \"linear\";\n\tattempts: number;\n\tdelay: number;\n\tshouldRetry?: RetryCondition;\n};\n\nexport type ExponentialRetry = {\n\ttype: \"exponential\";\n\tattempts: number;\n\tbaseDelay: number;\n\tmaxDelay: number;\n\tshouldRetry?: RetryCondition;\n};\n\nexport type RetryOptions = LinearRetry | ExponentialRetry | number;\n\nexport interface RetryStrategy {\n\tshouldAttemptRetry(\n\t\tattempt: number,\n\t\tresponse: Response | null,\n\t): Promise<boolean>;\n\tgetDelay(attempt: number): number;\n}\n\nclass LinearRetryStrategy implements RetryStrategy {\n\tconstructor(private options: LinearRetry) {}\n\n\tshouldAttemptRetry(\n\t\tattempt: number,\n\t\tresponse: Response | null,\n\t): Promise<boolean> {\n\t\tif (this.options.shouldRetry) {\n\t\t\treturn Promise.resolve(\n\t\t\t\tattempt < this.options.attempts && this.options.shouldRetry(response),\n\t\t\t);\n\t\t}\n\t\treturn Promise.resolve(attempt < this.options.attempts);\n\t}\n\n\tgetDelay(): number {\n\t\treturn this.options.delay;\n\t}\n}\n\nclass ExponentialRetryStrategy implements RetryStrategy {\n\tconstructor(private options: ExponentialRetry) {}\n\n\tshouldAttemptRetry(\n\t\tattempt: number,\n\t\tresponse: Response | null,\n\t): Promise<boolean> {\n\t\tif (this.options.shouldRetry) {\n\t\t\treturn Promise.resolve(\n\t\t\t\tattempt < this.options.attempts && this.options.shouldRetry(response),\n\t\t\t);\n\t\t}\n\t\treturn Promise.resolve(attempt < this.options.attempts);\n\t}\n\n\tgetDelay(attempt: number): number {\n\t\tconst delay = Math.min(\n\t\t\tthis.options.maxDelay,\n\t\t\tthis.options.baseDelay * 2 ** attempt,\n\t\t);\n\t\treturn delay;\n\t}\n}\n\nexport function createRetryStrategy(options: RetryOptions): RetryStrategy {\n\tif (typeof options === \"number\") {\n\t\treturn new LinearRetryStrategy({\n\t\t\ttype: \"linear\",\n\t\t\tattempts: options,\n\t\t\tdelay: 1000,\n\t\t});\n\t}\n\n\tswitch (options.type) {\n\t\tcase \"linear\":\n\t\t\treturn new LinearRetryStrategy(options);\n\t\tcase \"exponential\":\n\t\t\treturn new ExponentialRetryStrategy(options);\n\t\tdefault:\n\t\t\tthrow new Error(\"Invalid retry strategy\");\n\t}\n}\n","import type { BetterFetchOption } from \"./types\";\n\nexport type typeOrTypeReturning<T> = T | (() => T);\n/**\n * Bearer token authentication\n *\n * the value of `token` will be added to a header as\n * `auth: Bearer token`,\n */\nexport type Bearer = {\n\ttype: \"Bearer\";\n\ttoken: typeOrTypeReturning<string | undefined | Promise<string | undefined>>;\n};\n\n/**\n * Basic auth\n */\nexport type Basic = {\n\ttype: \"Basic\";\n\tusername: typeOrTypeReturning<string | undefined>;\n\tpassword: typeOrTypeReturning<string | undefined>;\n};\n\n/**\n * Custom auth\n *\n * @param prefix - prefix of the header\n * @param value - value of the header\n *\n * @example\n * ```ts\n * {\n * type: \"Custom\",\n * prefix: \"Token\",\n * value: \"token\"\n * }\n * ```\n */\nexport type Custom = {\n\ttype: \"Custom\";\n\tprefix: typeOrTypeReturning<string | undefined>;\n\tvalue: typeOrTypeReturning<string | undefined>;\n};\n\nexport type Auth = Bearer | Basic | Custom;\n\nexport const getAuthHeader = async (options?: BetterFetchOption) => {\n\tconst headers: Record<string, string> = {};\n\tconst getValue = async (\n\t\tvalue: typeOrTypeReturning<\n\t\t\tstring | undefined | Promise<string | undefined>\n\t\t>,\n\t) => (typeof value === \"function\" ? await value() : value);\n\tif (options?.auth) {\n\t\tif (options.auth.type === \"Bearer\") {\n\t\t\tconst token = await getValue(options.auth.token);\n\t\t\tif (!token) {\n\t\t\t\treturn headers;\n\t\t\t}\n\t\t\theaders[\"authorization\"] = `Bearer ${token}`;\n\t\t} else if (options.auth.type === \"Basic\") {\n\t\t\tconst [username, password] = await Promise.all([\n\t\t\t\tgetValue(options.auth.username),\n\t\t\t\tgetValue(options.auth.password),\n\t\t\t]);\n\t\t\tif (!username || !password) {\n\t\t\t\treturn headers;\n\t\t\t}\n\t\t\theaders[\"authorization\"] = `Basic ${btoa(`${username}:${password}`)}`;\n\t\t} else if (options.auth.type === \"Custom\") {\n\t\t\tconst [prefix, value] = await Promise.all([\n\t\t\t\tgetValue(options.auth.prefix),\n\t\t\t\tgetValue(options.auth.value),\n\t\t\t]);\n\t\t\tif (!value) {\n\t\t\t\treturn headers;\n\t\t\t}\n\t\t\theaders[\"authorization\"] = `${prefix ?? \"\"} ${value}`;\n\t\t}\n\t}\n\treturn headers;\n};\n","import type { StandardSchemaV1 } from \"./standard-schema\";\nimport { getAuthHeader } from \"./auth\";\nimport { methods } from \"./create-fetch\";\nimport type { BetterFetchOption, FetchEsque } from \"./types\";\n\nconst JSON_RE = /^application\\/(?:[\\w!#$%&*.^`~-]*\\+)?json(;.+)?$/i;\n\nexport type ResponseType = \"json\" | \"text\" | \"blob\";\nexport function detectResponseType(request: Response): ResponseType {\n\tconst _contentType = request.headers.get(\"content-type\");\n\tconst textTypes = new Set([\n\t\t\"image/svg\",\n\t\t\"application/xml\",\n\t\t\"application/xhtml\",\n\t\t\"application/html\",\n\t]);\n\tif (!_contentType) {\n\t\treturn \"json\";\n\t}\n\tconst contentType = _contentType.split(\";\").shift() || \"\";\n\tif (JSON_RE.test(contentType)) {\n\t\treturn \"json\";\n\t}\n\tif (textTypes.has(contentType) || contentType.startsWith(\"text/\")) {\n\t\treturn \"text\";\n\t}\n\treturn \"blob\";\n}\n\nexport function isJSONParsable(value: any) {\n\ttry {\n\t\tJSON.parse(value);\n\t\treturn true;\n\t} catch (error) {\n\t\treturn false;\n\t}\n}\n\n//https://github.com/unjs/ofetch/blob/main/src/utils.ts\nexport function isJSONSerializable(value: any) {\n\tif (value === undefined) {\n\t\treturn false;\n\t}\n\tconst t = typeof value;\n\tif (t === \"string\" || t === \"number\" || t === \"boolean\" || t === null) {\n\t\treturn true;\n\t}\n\tif (t !== \"object\") {\n\t\treturn false;\n\t}\n\tif (Array.isArray(value)) {\n\t\treturn true;\n\t}\n\tif (value.buffer) {\n\t\treturn false;\n\t}\n\treturn (\n\t\t(value.constructor && value.constructor.name === \"Object\") ||\n\t\ttypeof value.toJSON === \"function\"\n\t);\n}\n\nexport function jsonParse(text: string) {\n\ttry {\n\t\treturn JSON.parse(text);\n\t} catch (error) {\n\t\treturn text;\n\t}\n}\n\nexport function isFunction(value: any): value is () => any {\n\treturn typeof value === \"function\";\n}\n\nexport function getFetch(options?: BetterFetchOption): FetchEsque {\n\tif (options?.customFetchImpl) {\n\t\treturn options.customFetchImpl;\n\t}\n\tif (typeof globalThis !== \"undefined\" && isFunction(globalThis.fetch)) {\n\t\treturn globalThis.fetch;\n\t}\n\tif (typeof window !== \"undefined\" && isFunction(window.fetch)) {\n\t\treturn window.fetch;\n\t}\n\tthrow new Error(\"No fetch implementation found\");\n}\n\nexport function isPayloadMethod(method?: string) {\n\tif (!method) {\n\t\treturn false;\n\t}\n\tconst payloadMethod = [\"POST\", \"PUT\", \"PATCH\", \"DELETE\"];\n\treturn payloadMethod.includes(method.toUpperCase());\n}\n\nexport function isRouteMethod(method?: string) {\n\tconst routeMethod = [\"GET\", \"POST\", \"PUT\", \"PATCH\", \"DELETE\"];\n\tif (!method) {\n\t\treturn false;\n\t}\n\treturn routeMethod.includes(method.toUpperCase());\n}\n\nexport async function getHeaders(opts?: BetterFetchOption) {\n\tconst headers = new Headers(opts?.headers);\n\tconst authHeader = await getAuthHeader(opts);\n\tfor (const [key, value] of Object.entries(authHeader || {})) {\n\t\theaders.set(key, value);\n\t}\n\tif (!headers.has(\"content-type\")) {\n\t\tconst t = detectContentType(opts?.body);\n\t\tif (t) {\n\t\t\theaders.set(\"content-type\", t);\n\t\t}\n\t}\n\n\treturn headers;\n}\n\nexport function getURL(url: string, options?: BetterFetchOption) {\n\tif (url.startsWith(\"@\")) {\n\t\tconst m = url.toString().split(\"@\")[1].split(\"/\")[0];\n\t\tif (methods.includes(m)) {\n\t\t\turl = url.replace(`@${m}/`, \"/\");\n\t\t}\n\t}\n\tlet _url: string | URL;\n\ttry {\n\t\tif (url.startsWith(\"http\")) {\n\t\t\t_url = url;\n\t\t} else {\n\t\t\tlet baseURL = options?.baseURL;\n\t\t\tif (baseURL && !baseURL?.endsWith(\"/\")) {\n\t\t\t\tbaseURL = baseURL + \"/\";\n\t\t\t}\n\t\t\tif (url.startsWith(\"/\")) {\n\t\t\t\t_url = new URL(url.substring(1), baseURL);\n\t\t\t} else {\n\t\t\t\t_url = new URL(url, options?.baseURL);\n\t\t\t}\n\t\t}\n\t} catch (e) {\n\t\tif (e instanceof TypeError) {\n\t\t\tif (!options?.baseURL) {\n\t\t\t\tthrow TypeError(\n\t\t\t\t\t`Invalid URL ${url}. Are you passing in a relative url but not setting the baseURL?`,\n\t\t\t\t);\n\t\t\t}\n\t\t\tthrow TypeError(\n\t\t\t\t`Invalid URL ${url}. Please validate that you are passing the correct input.`,\n\t\t\t);\n\t\t}\n\t\tthrow e;\n\t}\n\n\t/**\n\t * Dynamic Parameters.\n\t */\n\tif (options?.params) {\n\t\tif (Array.isArray(options?.params)) {\n\t\t\tconst params = options?.params\n\t\t\t\t? Array.isArray(options.params)\n\t\t\t\t\t? `/${options.params.join(\"/\")}`\n\t\t\t\t\t: `/${Object.values(options.params).join(\"/\")}`\n\t\t\t\t: \"\";\n\t\t\t_url = _url.toString().split(\"/:\")[0];\n\t\t\t_url = `${_url.toString()}${params}`;\n\t\t} else {\n\t\t\tfor (const [key, value] of Object.entries(options?.params)) {\n\t\t\t\t_url = _url.toString().replace(`:${key}`, String(value));\n\t\t\t}\n\t\t}\n\t}\n\tconst __url = new URL(_url);\n\t/**\n\t * Query Parameters\n\t */\n\tconst queryParams = options?.query;\n\tif (queryParams) {\n\t\tfor (const [key, value] of Object.entries(queryParams)) {\n\t\t\t__url.searchParams.append(key, String(value));\n\t\t}\n\t}\n\treturn __url;\n}\n\nexport function detectContentType(body: any) {\n\tif (isJSONSerializable(body)) {\n\t\treturn \"application/json\";\n\t}\n\n\treturn null;\n}\n\nexport function getBody(options?: BetterFetchOption) {\n\tif (!options?.body) {\n\t\treturn null;\n\t}\n\tconst headers = new Headers(options?.headers);\n\tif (isJSONSerializable(options.body) && !headers.has(\"content-type\")) {\n\t\tfor (const [key, value] of Object.entries(options?.body)) {\n\t\t\tif (value instanceof Date) {\n\t\t\t\toptions.body[key] = value.toISOString();\n\t\t\t}\n\t\t}\n\t\treturn JSON.stringify(options.body);\n\t}\n\n\tif (\n\t\theaders.has(\"content-type\") &&\n\t\theaders.get(\"content-type\") === \"application/x-www-form-urlencoded\"\n\t) {\n\t\tif (isJSONSerializable(options.body)) {\n\t\t\treturn new URLSearchParams(options.body).toString();\n\t\t}\n\t\treturn options.body;\n\t}\n\n\treturn options.body;\n}\n\nexport function getMethod(url: string, options?: BetterFetchOption) {\n\tif (options?.method) {\n\t\treturn options.method.toUpperCase();\n\t}\n\tif (url.startsWith(\"@\")) {\n\t\tconst pMethod = url.split(\"@\")[1]?.split(\"/\")[0];\n\t\tif (!methods.includes(pMethod)) {\n\t\t\treturn options?.body ? \"POST\" : \"GET\";\n\t\t}\n\t\treturn pMethod.toUpperCase();\n\t}\n\treturn options?.body ? \"POST\" : \"GET\";\n}\n\nexport function getTimeout(\n\toptions?: BetterFetchOption,\n\tcontroller?: AbortController,\n) {\n\tlet abortTimeout: ReturnType<typeof setTimeout> | undefined;\n\tif (!options?.signal && options?.timeout) {\n\t\tabortTimeout = setTimeout(() => controller?.abort(), options?.timeout);\n\t}\n\treturn {\n\t\tabortTimeout,\n\t\tclearTimeout: () => {\n\t\t\tif (abortTimeout) {\n\t\t\t\tclearTimeout(abortTimeout);\n\t\t\t}\n\t\t},\n\t};\n}\n\nexport function bodyParser(data: any, responseType: ResponseType) {\n\tif (responseType === \"json\") {\n\t\treturn JSON.parse(data);\n\t}\n\treturn data;\n}\n\nexport class ValidationError extends Error {\n\tpublic readonly issues: ReadonlyArray<StandardSchemaV1.Issue>;\n\n\tconstructor(issues: ReadonlyArray<StandardSchemaV1.Issue>, message?: string) {\n\t\t// Default message fallback in case one isn't supplied.\n\t\tsuper(message || JSON.stringify(issues, null, 2));\n\t\tthis.issues = issues;\n\n\t\t// Set the prototype explicitly to ensure that instanceof works correctly.\n\t\tObject.setPrototypeOf(this, ValidationError.prototype);\n\t}\n}\n\nexport async function parseStandardSchema<TSchema extends StandardSchemaV1>(\n\tschema: TSchema,\n\tinput: StandardSchemaV1.InferInput<TSchema>,\n): Promise<StandardSchemaV1.InferOutput<TSchema>> {\n\tconst result = await schema[\"~standard\"].validate(input);\n\n\tif (result.issues) {\n\t\tthrow new ValidationError(result.issues);\n\t}\n\treturn result.value;\n}\n","import type { StandardSchemaV1 } from \"../standard-schema\";\nimport type { StringLiteralUnion } from \"../type-utils\";\n\nexport type FetchSchema = {\n\tinput?: StandardSchemaV1;\n\toutput?: StandardSchemaV1;\n\tquery?: StandardSchemaV1;\n\tparams?: StandardSchemaV1<Record<string, unknown>> | undefined;\n\tmethod?: Methods;\n};\n\nexport type Methods = \"get\" | \"post\" | \"put\" | \"patch\" | \"delete\";\n\nexport const methods = [\"get\", \"post\", \"put\", \"patch\", \"delete\"];\n\ntype RouteKey = StringLiteralUnion<`@${Methods}/`>;\n\nexport type FetchSchemaRoutes = {\n\t[key in RouteKey]?: FetchSchema;\n};\n\nexport const createSchema = <\n\tF extends FetchSchemaRoutes,\n\tS extends SchemaConfig,\n>(\n\tschema: F,\n\tconfig?: S,\n) => {\n\treturn {\n\t\tschema: schema as F,\n\t\tconfig: config as S,\n\t};\n};\n\nexport type SchemaConfig = {\n\tstrict?: boolean;\n\t/**\n\t * A prefix that will be prepended when it's\n\t * calling the schema.\n\t *\n\t * NOTE: Make sure to handle converting\n\t * the prefix to the baseURL in the init\n\t * function if you you are defining for a\n\t * plugin.\n\t */\n\tprefix?: \"\" | (string & Record<never, never>);\n\t/**\n\t * The base url of the schema. By default it's the baseURL of the fetch instance.\n\t */\n\tbaseURL?: \"\" | (string & Record<never, never>);\n};\n\nexport type Schema = {\n\tschema: FetchSchemaRoutes;\n\tconfig: SchemaConfig;\n};\n","import { betterFetch } from \"../fetch\";\nimport { BetterFetchPlugin } from \"../plugins\";\nimport type { BetterFetchOption } from \"../types\";\nimport { parseStandardSchema } from \"../utils\";\nimport type { BetterFetch, CreateFetchOption } from \"./types\";\n\nexport const applySchemaPlugin = (config: CreateFetchOption) =>\n\t({\n\t\tid: \"apply-schema\",\n\t\tname: \"Apply Schema\",\n\t\tversion: \"1.0.0\",\n\t\tasync init(url, options) {\n\t\t\tconst schema =\n\t\t\t\tconfig.plugins?.find((plugin) =>\n\t\t\t\t\tplugin.schema?.config\n\t\t\t\t\t\t? url.startsWith(plugin.schema.config.baseURL || \"\") ||\n\t\t\t\t\t\t\turl.startsWith(plugin.schema.config.prefix || \"\")\n\t\t\t\t\t\t: false,\n\t\t\t\t)?.schema || config.schema;\n\t\t\tif (schema) {\n\t\t\t\tlet urlKey = url;\n\t\t\t\tif (schema.config?.prefix) {\n\t\t\t\t\tif (urlKey.startsWith(schema.config.prefix)) {\n\t\t\t\t\t\turlKey = urlKey.replace(schema.config.prefix, \"\");\n\t\t\t\t\t\tif (schema.config.baseURL) {\n\t\t\t\t\t\t\turl = url.replace(schema.config.prefix, schema.config.baseURL);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (schema.config?.baseURL) {\n\t\t\t\t\tif (urlKey.startsWith(schema.config.baseURL)) {\n\t\t\t\t\t\turlKey = urlKey.replace(schema.config.baseURL, \"\");\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tconst keySchema = schema.schema[urlKey];\n\t\t\t\tif (keySchema) {\n\t\t\t\t\tlet opts = {\n\t\t\t\t\t\t...options,\n\t\t\t\t\t\tmethod: keySchema.method,\n\t\t\t\t\t\toutput: keySchema.output,\n\t\t\t\t\t};\n\t\t\t\t\tif (!options?.disableValidation) {\n\t\t\t\t\t\topts = {\n\t\t\t\t\t\t\t...opts,\n\t\t\t\t\t\t\tbody: keySchema.input\n\t\t\t\t\t\t\t\t? await parseStandardSchema(keySchema.input, options?.body)\n\t\t\t\t\t\t\t\t: options?.body,\n\t\t\t\t\t\t\tparams: keySchema.params\n\t\t\t\t\t\t\t\t? await parseStandardSchema(keySchema.params, options?.params)\n\t\t\t\t\t\t\t\t: options?.params,\n\t\t\t\t\t\t\tquery: keySchema.query\n\t\t\t\t\t\t\t\t? await parseStandardSchema(keySchema.query, options?.query)\n\t\t\t\t\t\t\t\t: options?.query,\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\t\t\t\t\treturn {\n\t\t\t\t\t\turl,\n\t\t\t\t\t\toptions: opts,\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn {\n\t\t\t\turl,\n\t\t\t\toptions,\n\t\t\t};\n\t\t},\n\t}) satisfies BetterFetchPlugin;\n\nexport const createFetch = <Option extends CreateFetchOption>(\n\tconfig?: Option,\n) => {\n\tasync function $fetch(url: string, options?: BetterFetchOption) {\n\t\tconst opts = {\n\t\t\t...config,\n\t\t\t...options,\n\t\t\tplugins: [...(config?.plugins || []), applySchemaPlugin(config || {}), ...(options?.plugins || [])],\n\t\t} as BetterFetchOption;\n\n\t\tif (config?.catchAllError) {\n\t\t\ttry {\n\t\t\t\treturn await betterFetch(url, opts);\n\t\t\t} catch (error) {\n\t\t\t\treturn {\n\t\t\t\t\tdata: null,\n\t\t\t\t\terror: {\n\t\t\t\t\t\tstatus: 500,\n\t\t\t\t\t\tstatusText: \"Fetch Error\",\n\t\t\t\t\t\tmessage:\n\t\t\t\t\t\t\t\"Fetch related error. Captured by catchAllError option. See error property for more details.\",\n\t\t\t\t\t\terror,\n\t\t\t\t\t},\n\t\t\t\t};\n\t\t\t}\n\t\t}\n\t\treturn await betterFetch(url, opts);\n\t}\n\treturn $fetch as BetterFetch<Option>;\n};\n\nexport * from \"./schema\";\nexport * from \"./types\";\n","import { methods } from \"./create-fetch\";\nimport type { BetterFetchOption } from \"./types\";\n\n/**\n * Normalize URL\n */\nexport function getURL(url: string, option?: BetterFetchOption) {\n\tconst { baseURL, params, query } = option || {\n\t\tquery: {},\n\t\tparams: {},\n\t\tbaseURL: \"\",\n\t};\n\tlet basePath = url.startsWith(\"http\")\n\t\t? url.split(\"/\").slice(0, 3).join(\"/\")\n\t\t: baseURL || \"\";\n\n\t/**\n\t * Remove method modifiers\n\t */\n\tif (url.startsWith(\"@\")) {\n\t\tconst m = url.toString().split(\"@\")[1].split(\"/\")[0];\n\t\tif (methods.includes(m)) {\n\t\t\turl = url.replace(`@${m}/`, \"/\");\n\t\t}\n\t}\n\n\tif (!basePath.endsWith(\"/\")) basePath += \"/\";\n\tlet [path, urlQuery] = url.replace(basePath, \"\").split(\"?\");\n\tconst queryParams = new URLSearchParams(urlQuery);\n\tfor (const [key, value] of Object.entries(query || {})) {\n\t\tif (value == null) continue;\n\t\tlet serializedValue;\n\t\tif (typeof value === \"string\") {\n\t\t\tserializedValue = value;\n\t\t} else if (Array.isArray(value)) {\n\t\t\tfor (const val of value) {\n\t\t\t\tqueryParams.append(key, val);\n\t\t\t}\n\t\t\tcontinue;\n\t\t} else {\n\t\t\tserializedValue = JSON.stringify(value);\n\t\t}\n\t\tqueryParams.set(key, serializedValue);\n\t}\n\tif (params) {\n\t\tif (Array.isArray(params)) {\n\t\t\tconst paramPaths = path.split(\"/\").filter((p) => p.startsWith(\":\"));\n\t\t\tfor (const [index, key] of paramPaths.entries()) {\n\t\t\t\tconst value = params[index];\n\t\t\t\tpath = path.replace(key, value);\n\t\t\t}\n\t\t} else {\n\t\t\tfor (const [key, value] of Object.entries(params)) {\n\t\t\t\tpath = path.replace(`:${key}`, String(value));\n\t\t\t}\n\t\t}\n\t}\n\n\tpath = path.split(\"/\").map(encodeURIComponent).join(\"/\");\n\tif (path.startsWith(\"/\")) path = path.slice(1);\n\tlet queryParamString = queryParams.toString();\n\tqueryParamString =\n\t\tqueryParamString.length > 0\n\t\t\t? `?${queryParamString}`.replace(/\\+/g, \"%20\")\n\t\t\t: \"\";\n\tif (!basePath.startsWith(\"http\")) {\n\t\treturn `${basePath}${path}${queryParamString}`;\n\t}\n\tconst _url = new URL(`${path}${queryParamString}`, basePath);\n\treturn _url;\n}\n","import { BetterFetchError } from \"./error\";\nimport { initializePlugins } from \"./plugins\";\nimport { createRetryStrategy } from \"./retry\";\nimport type { StandardSchemaV1 } from \"./standard-schema\";\nimport type { BetterFetchOption, BetterFetchResponse } from \"./types\";\nimport { getURL } from \"./url\";\nimport {\n\tdetectResponseType,\n\tgetBody,\n\tgetFetch,\n\tgetHeaders,\n\tgetMethod,\n\tgetTimeout,\n\tisJSONParsable,\n\tjsonParse,\n\tparseStandardSchema,\n} from \"./utils\";\n\nexport const betterFetch = async <\n\tTRes extends Option[\"output\"] extends StandardSchemaV1\n\t\t? StandardSchemaV1.InferOutput<Option[\"output\"]>\n\t\t: unknown,\n\tTErr = unknown,\n\tOption extends BetterFetchOption = BetterFetchOption<any, any, any, TRes>,\n>(\n\turl: string,\n\toptions?: Option,\n): Promise<\n\tBetterFetchResponse<\n\t\tTRes,\n\t\tTErr,\n\t\tOption[\"throw\"] extends true ? true : TErr extends false ? true : false\n\t>\n> => {\n\tconst {\n\t\thooks,\n\t\turl: __url,\n\t\toptions: opts,\n\t} = await initializePlugins(url, options);\n\tconst fetch = getFetch(opts);\n\tconst controller = new AbortController();\n\tconst signal = opts.signal ?? controller.signal;\n\tconst _url = getURL(__url, opts);\n\tconst body = getBody(opts);\n\tconst headers = await getHeaders(opts);\n\tconst method = getMethod(__url, opts);\n\tlet context = {\n\t\t...opts,\n\t\turl: _url,\n\t\theaders,\n\t\tbody,\n\t\tmethod,\n\t\tsignal,\n\t};\n\t/**\n\t * Run all on request hooks\n\t */\n\tfor (const onRequest of hooks.onRequest) {\n\t\tif (onRequest) {\n\t\t\tconst res = await onRequest(context);\n\t\t\tif (typeof res === \"object\" && res !== null) {\n\t\t\t\tcontext = res;\n\t\t\t}\n\t\t}\n\t}\n\tif (\n\t\t(\"pipeTo\" in context && typeof context.pipeTo === \"function\") ||\n\t\ttypeof options?.body?.pipe === \"function\"\n\t) {\n\t\tif (!(\"duplex\" in context)) {\n\t\t\tcontext.duplex = \"half\";\n\t\t}\n\t}\n\n\tconst { clearTimeout } = getTimeout(opts, controller);\n\tlet response = await fetch(context.url, context);\n\tclearTimeout();\n\n\tconst responseContext = {\n\t\tresponse,\n\t\trequest: context,\n\t};\n\n\tfor (const onResponse of hooks.onResponse) {\n\t\tif (onResponse) {\n\t\t\tconst r = await onResponse({\n\t\t\t\t...responseContext,\n\t\t\t\tresponse: options?.hookOptions?.cloneResponse\n\t\t\t\t\t? response.clone()\n\t\t\t\t\t: response,\n\t\t\t});\n\t\t\tif (r instanceof Response) {\n\t\t\t\tresponse = r;\n\t\t\t} else if (typeof r === \"object\" && r !== null) {\n\t\t\t\tresponse = r.response;\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * OK Branch\n\t */\n\tif (response.ok) {\n\t\tconst hasBody = context.method !== \"HEAD\";\n\t\tif (!hasBody) {\n\t\t\treturn {\n\t\t\t\tdata: \"\" as any,\n\t\t\t\terror: null,\n\t\t\t} as any;\n\t\t}\n\t\tconst responseType = detectResponseType(response);\n\t\tconst successContext = {\n\t\t\tdata: null as any,\n\t\t\tresponse,\n\t\t\trequest: context,\n\t\t};\n\t\tif (responseType === \"json\" || responseType === \"text\") {\n\t\t\tconst text = await response.text();\n\t\t\tconst parser = context.jsonParser ?? jsonParse;\n\t\t\tsuccessContext.data = await parser(text);\n\t\t} else {\n\t\t\tsuccessContext.data = await response[responseType]();\n\t\t}\n\n\t\t/**\n\t\t * Parse the data if the output schema is defined\n\t\t */\n\t\tif (context?.output) {\n\t\t\tif (context.output && !context.disableValidation) {\n\t\t\t\tsuccessContext.data = await parseStandardSchema(\n\t\t\t\t\tcontext.output as StandardSchemaV1,\n\t\t\t\t\tsuccessContext.data,\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\n\t\tfor (const onSuccess of hooks.onSuccess) {\n\t\t\tif (onSuccess) {\n\t\t\t\tawait onSuccess({\n\t\t\t\t\t...successContext,\n\t\t\t\t\tresponse: options?.hookOptions?.cloneResponse\n\t\t\t\t\t\t? response.clone()\n\t\t\t\t\t\t: response,\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\n\t\tif (options?.throw) {\n\t\t\treturn successContext.data;\n\t\t}\n\n\t\treturn {\n\t\t\tdata: successContext.data,\n\t\t\terror: null,\n\t\t} as any;\n\t}\n\tconst parser = options?.jsonParser ?? jsonParse;\n\tconst responseText = await response.text();\n\tconst isJSONResponse = isJSONParsable(responseText);\n\tconst errorObject = isJSONResponse ? await parser(responseText) : null;\n\t/**\n\t * Error Branch\n\t */\n\tconst errorContext = {\n\t\tresponse,\n\t\tresponseText,\n\t\trequest: context,\n\t\terror: {\n\t\t\t...errorObject,\n\t\t\tstatus: response.status,\n\t\t\tstatusText: response.statusText,\n\t\t},\n\t};\n\tfor (const onError of hooks.onError) {\n\t\tif (onError) {\n\t\t\tawait onError({\n\t\t\t\t...errorContext,\n\t\t\t\tresponse: options?.hookOptions?.cloneResponse\n\t\t\t\t\t? response.clone()\n\t\t\t\t\t: response,\n\t\t\t});\n\t\t}\n\t}\n\n\tif (options?.retry) {\n\t\tconst retryStrategy = createRetryStrategy(options.retry);\n\t\tconst _retryAttempt = options.retryAttempt ?? 0;\n\t\tif (await retryStrategy.shouldAttemptRetry(_retryAttempt, response)) {\n\t\t\tfor (const onRetry of hooks.onRetry) {\n\t\t\t\tif (onRetry) {\n\t\t\t\t\tawait onRetry(responseContext);\n\t\t\t\t}\n\t\t\t}\n\t\t\tconst delay = retryStrategy.getDelay(_retryAttempt);\n\t\t\tawait new Promise((resolve) => setTimeout(resolve, delay));\n\t\t\treturn await betterFetch(url, {\n\t\t\t\t...options,\n\t\t\t\tretryAttempt: _retryAttempt + 1,\n\t\t\t});\n\t\t}\n\t}\n\n\tif (options?.throw) {\n\t\tthrow new BetterFetchError(\n\t\t\tresponse.status,\n\t\t\tresponse.statusText,\n\t\t\tisJSONResponse ? errorObject : responseText,\n\t\t);\n\t}\n\treturn {\n\t\tdata: null,\n\t\terror: {\n\t\t\t...errorObject,\n\t\t\tstatus: response.status,\n\t\t\tstatusText: response.statusText,\n\t\t},\n\t} as any;\n};\n"]}
@@ -0,0 +1,72 @@
1
+ import { DefaultQueryCompiler } from './chunk-MY37YE52.js';
2
+
3
+ // node_modules/kysely/dist/esm/dialect/sqlite/sqlite-query-compiler.js
4
+ var ID_WRAP_REGEX = /"/g;
5
+ var JSON_PATH_MEMBER_ESCAPE_REGEX = /[\\'"]/g;
6
+ var SqliteQueryCompiler = class extends DefaultQueryCompiler {
7
+ visitOrAction(node) {
8
+ this.append("or ");
9
+ this.append(node.action);
10
+ }
11
+ getCurrentParameterPlaceholder() {
12
+ return "?";
13
+ }
14
+ getLeftExplainOptionsWrapper() {
15
+ return "";
16
+ }
17
+ getRightExplainOptionsWrapper() {
18
+ return "";
19
+ }
20
+ getLeftIdentifierWrapper() {
21
+ return '"';
22
+ }
23
+ getRightIdentifierWrapper() {
24
+ return '"';
25
+ }
26
+ getAutoIncrement() {
27
+ return "autoincrement";
28
+ }
29
+ sanitizeIdentifier(identifier) {
30
+ return identifier.replace(ID_WRAP_REGEX, '""');
31
+ }
32
+ sanitizeJSONPathMemberValue(value) {
33
+ return value.replace(JSON_PATH_MEMBER_ESCAPE_REGEX, (char) => char === "\\" ? "\\\\" : char === "'" ? "''" : '\\"');
34
+ }
35
+ visitDefaultInsertValue(_) {
36
+ this.append("null");
37
+ }
38
+ };
39
+
40
+ // node_modules/kysely/dist/esm/dialect/dialect-adapter-base.js
41
+ var DialectAdapterBase = class {
42
+ get supportsCreateIfNotExists() {
43
+ return true;
44
+ }
45
+ get supportsTransactionalDdl() {
46
+ return false;
47
+ }
48
+ get supportsReturning() {
49
+ return false;
50
+ }
51
+ get supportsOutput() {
52
+ return false;
53
+ }
54
+ };
55
+
56
+ // node_modules/kysely/dist/esm/dialect/sqlite/sqlite-adapter.js
57
+ var SqliteAdapter = class extends DialectAdapterBase {
58
+ get supportsTransactionalDdl() {
59
+ return false;
60
+ }
61
+ get supportsReturning() {
62
+ return true;
63
+ }
64
+ async acquireMigrationLock(_db, _opt) {
65
+ }
66
+ async releaseMigrationLock(_db, _opt) {
67
+ }
68
+ };
69
+
70
+ export { DialectAdapterBase, SqliteAdapter, SqliteQueryCompiler };
71
+ //# sourceMappingURL=chunk-JIZPYG6H.js.map
72
+ //# sourceMappingURL=chunk-JIZPYG6H.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../node_modules/kysely/dist/esm/dialect/sqlite/sqlite-query-compiler.js","../node_modules/kysely/dist/esm/dialect/dialect-adapter-base.js","../node_modules/kysely/dist/esm/dialect/sqlite/sqlite-adapter.js"],"names":[],"mappings":";;;AAEA,IAAM,aAAA,GAAgB,IAAA;AACtB,IAAM,6BAAA,GAAgC,SAAA;AAC/B,IAAM,mBAAA,GAAN,cAAkC,oBAAA,CAAqB;AAAA,EAC1D,cAAc,IAAA,EAAM;AAChB,IAAA,IAAA,CAAK,OAAO,KAAK,CAAA;AACjB,IAAA,IAAA,CAAK,MAAA,CAAO,KAAK,MAAM,CAAA;AAAA,EAC3B;AAAA,EACA,8BAAA,GAAiC;AAC7B,IAAA,OAAO,GAAA;AAAA,EACX;AAAA,EACA,4BAAA,GAA+B;AAC3B,IAAA,OAAO,EAAA;AAAA,EACX;AAAA,EACA,6BAAA,GAAgC;AAC5B,IAAA,OAAO,EAAA;AAAA,EACX;AAAA,EACA,wBAAA,GAA2B;AACvB,IAAA,OAAO,GAAA;AAAA,EACX;AAAA,EACA,yBAAA,GAA4B;AACxB,IAAA,OAAO,GAAA;AAAA,EACX;AAAA,EACA,gBAAA,GAAmB;AACf,IAAA,OAAO,eAAA;AAAA,EACX;AAAA,EACA,mBAAmB,UAAA,EAAY;AAC3B,IAAA,OAAO,UAAA,CAAW,OAAA,CAAQ,aAAA,EAAe,IAAI,CAAA;AAAA,EACjD;AAAA,EACA,4BAA4B,KAAA,EAAO;AAC/B,IAAA,OAAO,KAAA,CAAM,OAAA,CAAQ,6BAAA,EAA+B,CAAC,IAAA,KAAS,IAAA,KAAS,IAAA,GAAO,MAAA,GAAS,IAAA,KAAS,GAAA,GAAM,IAAA,GAAO,KAAK,CAAA;AAAA,EACtH;AAAA,EACA,wBAAwB,CAAA,EAAG;AAEvB,IAAA,IAAA,CAAK,OAAO,MAAM,CAAA;AAAA,EACtB;AACJ;;;AC9BO,IAAM,qBAAN,MAAyB;AAAA,EAC5B,IAAI,yBAAA,GAA4B;AAC5B,IAAA,OAAO,IAAA;AAAA,EACX;AAAA,EACA,IAAI,wBAAA,GAA2B;AAC3B,IAAA,OAAO,KAAA;AAAA,EACX;AAAA,EACA,IAAI,iBAAA,GAAoB;AACpB,IAAA,OAAO,KAAA;AAAA,EACX;AAAA,EACA,IAAI,cAAA,GAAiB;AACjB,IAAA,OAAO,KAAA;AAAA,EACX;AACJ;;;AClBO,IAAM,aAAA,GAAN,cAA4B,kBAAA,CAAmB;AAAA,EAClD,IAAI,wBAAA,GAA2B;AAC3B,IAAA,OAAO,KAAA;AAAA,EACX;AAAA,EACA,IAAI,iBAAA,GAAoB;AACpB,IAAA,OAAO,IAAA;AAAA,EACX;AAAA,EACA,MAAM,oBAAA,CAAqB,GAAA,EAAK,IAAA,EAAM;AAAA,EAItC;AAAA,EACA,MAAM,oBAAA,CAAqB,GAAA,EAAK,IAAA,EAAM;AAAA,EAItC;AACJ","file":"chunk-JIZPYG6H.js","sourcesContent":["/// <reference types=\"./sqlite-query-compiler.d.ts\" />\nimport { DefaultQueryCompiler } from '../../query-compiler/default-query-compiler.js';\nconst ID_WRAP_REGEX = /\"/g;\nconst JSON_PATH_MEMBER_ESCAPE_REGEX = /[\\\\'\"]/g;\nexport class SqliteQueryCompiler extends DefaultQueryCompiler {\n visitOrAction(node) {\n this.append('or ');\n this.append(node.action);\n }\n getCurrentParameterPlaceholder() {\n return '?';\n }\n getLeftExplainOptionsWrapper() {\n return '';\n }\n getRightExplainOptionsWrapper() {\n return '';\n }\n getLeftIdentifierWrapper() {\n return '\"';\n }\n getRightIdentifierWrapper() {\n return '\"';\n }\n getAutoIncrement() {\n return 'autoincrement';\n }\n sanitizeIdentifier(identifier) {\n return identifier.replace(ID_WRAP_REGEX, '\"\"');\n }\n sanitizeJSONPathMemberValue(value) {\n return value.replace(JSON_PATH_MEMBER_ESCAPE_REGEX, (char) => char === '\\\\' ? '\\\\\\\\' : char === \"'\" ? \"''\" : '\\\\\"');\n }\n visitDefaultInsertValue(_) {\n // sqlite doesn't support the `default` keyword in inserts.\n this.append('null');\n }\n}\n","/// <reference types=\"./dialect-adapter-base.d.ts\" />\n/**\n * A basic implementation of `DialectAdapter` with sensible default values.\n * Third-party dialects can extend this instead of implementing the `DialectAdapter`\n * interface from scratch. That way all new settings will get default values when\n * they are added and there will be less breaking changes.\n */\nexport class DialectAdapterBase {\n get supportsCreateIfNotExists() {\n return true;\n }\n get supportsTransactionalDdl() {\n return false;\n }\n get supportsReturning() {\n return false;\n }\n get supportsOutput() {\n return false;\n }\n}\n","/// <reference types=\"./sqlite-adapter.d.ts\" />\nimport { DialectAdapterBase } from '../dialect-adapter-base.js';\nexport class SqliteAdapter extends DialectAdapterBase {\n get supportsTransactionalDdl() {\n return false;\n }\n get supportsReturning() {\n return true;\n }\n async acquireMigrationLock(_db, _opt) {\n // SQLite only has one connection that's reserved by the migration system\n // for the whole time between acquireMigrationLock and releaseMigrationLock.\n // We don't need to do anything here.\n }\n async releaseMigrationLock(_db, _opt) {\n // SQLite only has one connection that's reserved by the migration system\n // for the whole time between acquireMigrationLock and releaseMigrationLock.\n // We don't need to do anything here.\n }\n}\n"]}
@@ -0,0 +1,10 @@
1
+ 'use strict';
2
+
3
+ // node_modules/@better-auth/core/dist/utils/string.mjs
4
+ function capitalizeFirstLetter(str) {
5
+ return str.charAt(0).toUpperCase() + str.slice(1);
6
+ }
7
+
8
+ exports.capitalizeFirstLetter = capitalizeFirstLetter;
9
+ //# sourceMappingURL=chunk-JPVIXCF5.cjs.map
10
+ //# sourceMappingURL=chunk-JPVIXCF5.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../node_modules/@better-auth/core/dist/utils/string.mjs"],"names":[],"mappings":";;;AACA,SAAS,sBAAsB,GAAA,EAAK;AACnC,EAAA,OAAO,GAAA,CAAI,OAAO,CAAC,CAAA,CAAE,aAAY,GAAI,GAAA,CAAI,MAAM,CAAC,CAAA;AACjD","file":"chunk-JPVIXCF5.cjs","sourcesContent":["//#region src/utils/string.ts\nfunction capitalizeFirstLetter(str) {\n\treturn str.charAt(0).toUpperCase() + str.slice(1);\n}\n//#endregion\nexport { capitalizeFirstLetter };\n"]}