@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.
- package/dist/app/server/.vite/manifest.json +65 -65
- package/dist/app/server/assets/Grant-D_tun0mF.js.map +1 -1
- package/dist/app/server/assets/authorize-DXYo-K2n-B-6vqhvc.js +56 -0
- package/dist/app/server/assets/authorize-DXYo-K2n-B-6vqhvc.js.map +1 -0
- package/dist/app/server/assets/core-FSS9-r35.js +56 -0
- package/dist/app/server/assets/core-FSS9-r35.js.map +1 -0
- package/dist/app/server/assets/default-u_dwuiYb-Bby14ucv.js +2 -0
- package/dist/app/server/assets/{default-u_dwuiYb-DOrMMcg9.js.map → default-u_dwuiYb-Bby14ucv.js.map} +1 -1
- package/dist/app/server/assets/{dist-CoH0hD1s.js → dist-B9KiBJYw.js} +2 -2
- package/dist/app/server/assets/{dist-CoH0hD1s.js.map → dist-B9KiBJYw.js.map} +1 -1
- package/dist/app/server/assets/{dist-DcICI3fd.js → dist-CU1NXSiz.js} +2 -2
- package/dist/app/server/assets/{dist-DcICI3fd.js.map → dist-CU1NXSiz.js.map} +1 -1
- package/dist/app/server/assets/dist-CetH4JSY.js +1 -0
- package/dist/app/server/assets/{effect-QlVUlMFu-mXPkuQTb.js → effect-QlVUlMFu-Cm-eTtaO.js} +2 -2
- package/dist/app/server/assets/{effect-QlVUlMFu-mXPkuQTb.js.map → effect-QlVUlMFu-Cm-eTtaO.js.map} +1 -1
- package/dist/app/server/assets/factory-g3i_Ffi5.js +5 -0
- package/dist/app/server/assets/{factory-dvoOlKer.js.map → factory-g3i_Ffi5.js.map} +1 -1
- package/dist/app/server/assets/get-id-field-BpOAoqqI.js +6 -0
- package/dist/app/server/assets/get-id-field-BpOAoqqI.js.map +1 -0
- package/dist/app/server/assets/{index-CLddUTqr-CC33CMvS.js → index-CLddUTqr-CmgkbWi9.js} +2 -2
- package/dist/app/server/assets/{index-CLddUTqr-CC33CMvS.js.map → index-CLddUTqr-CmgkbWi9.js.map} +1 -1
- package/dist/app/server/assets/{index-DZEfthgZ-Ec2MMQ_e.js → index-DZEfthgZ-BnPmps9O.js} +2 -2
- package/dist/app/server/assets/{index-DZEfthgZ-Ec2MMQ_e.js.map → index-DZEfthgZ-BnPmps9O.js.map} +1 -1
- package/dist/app/server/assets/kysely-adapter-B8VoPArC.js +1 -0
- package/dist/app/server/assets/{schema-check-oLqvHR8y.js → schema-check-Bgwl1v0_.js} +2 -2
- package/dist/app/server/assets/{schema-check-oLqvHR8y.js.map → schema-check-Bgwl1v0_.js.map} +1 -1
- package/dist/app/server/assets/{sury-CWZTCd75-CDaOS2oM.js → sury-CWZTCd75-Bd_PzqCV.js} +2 -2
- package/dist/app/server/assets/{sury-CWZTCd75-CDaOS2oM.js.map → sury-CWZTCd75-Bd_PzqCV.js.map} +1 -1
- package/dist/app/server/assets/{valibot--1zFm7rT-CIKoH3MS.js → valibot--1zFm7rT-Dd2aEhWG.js} +2 -2
- package/dist/app/server/assets/{valibot--1zFm7rT-CIKoH3MS.js.map → valibot--1zFm7rT-Dd2aEhWG.js.map} +1 -1
- package/dist/app/server/assets/{valibot-D_HTw1Gn-BdPyLkXt.js → valibot-D_HTw1Gn-C1l3va6F.js} +2 -2
- package/dist/app/server/assets/{valibot-D_HTw1Gn-BdPyLkXt.js.map → valibot-D_HTw1Gn-C1l3va6F.js.map} +1 -1
- package/dist/app/server/assets/{zod-Bwrt9trS-BezI5Gi1.js → zod-Bwrt9trS-Dry2w0in.js} +2 -2
- package/dist/app/server/assets/{zod-Bwrt9trS-BezI5Gi1.js.map → zod-Bwrt9trS-Dry2w0in.js.map} +1 -1
- package/dist/app/server/assets/{zod-DSgpEGAE-DZ7M_Q33.js → zod-DSgpEGAE-BZMP86UA.js} +2 -2
- package/dist/app/server/assets/{zod-DSgpEGAE-DZ7M_Q33.js.map → zod-DSgpEGAE-BZMP86UA.js.map} +1 -1
- package/dist/app/server/index.js +35 -35
- package/dist/app/server/index.js.map +1 -1
- package/dist/client/Auth.d.ts +1 -1
- package/dist/client/Auth.d.ts.map +1 -1
- package/dist/client/Auth.js.map +1 -1
- package/dist/client/Decorator.d.ts +3 -1
- package/dist/client/Decorator.d.ts.map +1 -1
- package/dist/client/Decorator.js +1 -0
- package/dist/client/Decorator.js.map +1 -1
- package/dist/client/actions/passkey.d.ts +63 -2
- package/dist/client/actions/passkey.d.ts.map +1 -1
- package/dist/client/actions/passkey.js +121 -3
- package/dist/client/actions/passkey.js.map +1 -1
- package/dist/internal/Apps.d.ts +14 -0
- package/dist/internal/Apps.d.ts.map +1 -1
- package/dist/internal/Apps.js +14 -2
- package/dist/internal/Apps.js.map +1 -1
- package/dist/internal/Auth.d.ts +7 -0
- package/dist/internal/Auth.d.ts.map +1 -1
- package/dist/internal/Auth.js +2 -1
- package/dist/internal/Auth.js.map +1 -1
- package/dist/internal/Authorize.d.ts.map +1 -1
- package/dist/internal/Authorize.js +13 -13
- package/dist/internal/Authorize.js.map +1 -1
- package/dist/internal/ErrorResponse.d.ts +5 -0
- package/dist/internal/ErrorResponse.d.ts.map +1 -1
- package/dist/internal/ErrorResponse.js +8 -0
- package/dist/internal/ErrorResponse.js.map +1 -1
- package/dist/internal/KeyAuthorization.d.ts.map +1 -1
- package/dist/internal/KeyAuthorization.js +28 -28
- package/dist/internal/KeyAuthorization.js.map +1 -1
- package/dist/internal/Owner.d.ts +16 -0
- package/dist/internal/Owner.d.ts.map +1 -1
- package/dist/internal/Owner.js.map +1 -1
- package/dist/internal/Passkey.d.ts +66 -4
- package/dist/internal/Passkey.d.ts.map +1 -1
- package/dist/internal/Passkey.js +66 -30
- package/dist/internal/Passkey.js.map +1 -1
- package/dist/internal/Privy.d.ts +27 -0
- package/dist/internal/Privy.d.ts.map +1 -1
- package/dist/internal/Privy.js +82 -0
- package/dist/internal/Privy.js.map +1 -1
- package/dist/internal/TempoAccount.d.ts +57 -0
- package/dist/internal/TempoAccount.d.ts.map +1 -1
- package/dist/internal/TempoAccount.js +118 -5
- package/dist/internal/TempoAccount.js.map +1 -1
- package/dist/internal/owners/Privy.d.ts.map +1 -1
- package/dist/internal/owners/Privy.js +11 -2
- package/dist/internal/owners/Privy.js.map +1 -1
- package/package.json +1 -1
- package/src/api/account.ts +140 -103
- package/src/api/authenticate.ts +48 -51
- package/src/api/authorize.ts +35 -36
- package/src/api/device.ts +20 -23
- package/src/api/health.ts +1 -2
- package/src/api/lib/AccountStep.ts +75 -0
- package/src/api/lib/Auth.ts +6 -0
- package/src/api/lib/Cors.ts +3 -0
- package/src/api/lib/KeySigner.ts +1 -1
- package/src/api/oauth.ts +23 -22
- package/src/client/Auth.ts +1 -0
- package/src/client/Decorator.ts +6 -1
- package/src/client/actions/passkey.ts +197 -3
- package/src/internal/Apps.ts +26 -2
- package/src/internal/Auth.ts +4 -0
- package/src/internal/Authorize.ts +13 -15
- package/src/internal/ErrorResponse.ts +10 -0
- package/src/internal/KeyAuthorization.ts +28 -31
- package/src/internal/OpenApi.ts +35 -0
- package/src/internal/Owner.ts +16 -0
- package/src/internal/Passkey.ts +99 -34
- package/src/internal/Privy.ts +128 -0
- package/src/internal/TempoAccount.ts +221 -7
- package/src/internal/owners/Privy.ts +19 -6
- package/dist/app/server/assets/authorize-DXYo-K2n-rmQQ42x1.js +0 -56
- package/dist/app/server/assets/authorize-DXYo-K2n-rmQQ42x1.js.map +0 -1
- package/dist/app/server/assets/core-BBrZXfrB.js +0 -56
- package/dist/app/server/assets/core-BBrZXfrB.js.map +0 -1
- package/dist/app/server/assets/default-u_dwuiYb-DOrMMcg9.js +0 -2
- package/dist/app/server/assets/dist-CR6FW-yS.js +0 -1
- package/dist/app/server/assets/factory-dvoOlKer.js +0 -5
- package/dist/app/server/assets/get-id-field-OwLpfjj2.js +0 -6
- package/dist/app/server/assets/get-id-field-OwLpfjj2.js.map +0 -1
- package/dist/app/server/assets/kysely-adapter-B8tQwTcu.js +0 -1
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{w as e}from"./get-id-field-
|
|
2
|
-
//# sourceMappingURL=dist-
|
|
1
|
+
import{w as e}from"./get-id-field-BpOAoqqI.js";import{t}from"./factory-g3i_Ffi5.js";function n(e,t){return typeof e==`string`&&typeof t==`string`?e.toLowerCase()===t.toLowerCase():e===t}function r(e,t){return typeof e==`string`?t.some(t=>typeof t==`string`&&e.toLowerCase()===t.toLowerCase()):t.includes(e)}function i(e,t){return!r(e,t)}function a(e,t){return typeof e!=`string`||typeof t!=`string`?!1:e.toLowerCase().includes(t.toLowerCase())}function o(e,t){return typeof e!=`string`||typeof t!=`string`?!1:e.toLowerCase().startsWith(t.toLowerCase())}function s(e,t){return typeof e!=`string`||typeof t!=`string`?!1:e.toLowerCase().endsWith(t.toLowerCase())}function c(e){let t=new Map;for(let n of e)t.set(n.id,n);return t}function l(e,t,n){let r=new Set([...Object.keys(t),...Object.keys(n)]);for(let i of r){if(!(i in n)){delete e[i];continue}let r=c(t[i]??[]),a=n[i]??[],o=c(a),s=e[i]??[],l=[],d=new Set;for(let e of s){let t=e.id,n=r.get(t),i=o.get(t);(n===void 0||i!==void 0)&&(i!==void 0&&u(n,i)?l.push(i):l.push(e),d.add(t))}for(let e of a)!r.has(e.id)&&!d.has(e.id)&&l.push(e);e[i]=l}}function u(e,t){return e===void 0||JSON.stringify(e)!==JSON.stringify(t)}var d=(c,u)=>{let d=null,f=c=>t({config:{adapterId:`memory`,adapterName:`Memory Adapter`,usePlural:!1,debugLogs:u?.debugLogs||!1,supportsArrays:!0,customTransformInput(e){return e.options.advanced?.database?.generateId===`serial`&&e.field===`id`&&e.action===`create`?c[e.model].length+1:e.data},transaction:async e=>{let t=structuredClone(c),n=structuredClone(c),r=await e(f(n)(d));return l(c,t,n),r}},adapter:({getFieldName:t,getDefaultFieldName:l,options:u})=>{let d=(e,n,r)=>n?e.sort((e,i)=>{let a=t({model:r,field:n.field}),o=e[a],s=i[a],c=0;return c=o==null&&s==null?0:o==null?-1:s==null?1:typeof o==`string`&&typeof s==`string`?o.localeCompare(s):o instanceof Date&&s instanceof Date?o.getTime()-s.getTime():typeof o==`number`&&typeof s==`number`?o-s:typeof o==`boolean`&&typeof s==`boolean`?o===s?0:o?1:-1:String(o).localeCompare(String(s)),n.direction===`asc`?c:-c}):e;function f(t,u,d,f,p){let m=(()=>{let f=c[u];if(!f)throw e.error(`[MemoryAdapter] Model ${u} not found in the DB`,Object.keys(c)),Error(`Model ${u} not found`);let m=(e,t)=>{let{field:c,value:l,operator:u,mode:d=`sensitive`}=t,f=d===`insensitive`&&(typeof l==`string`||Array.isArray(l)&&l.every(e=>typeof e==`string`));switch(u){case`in`:if(!Array.isArray(l))throw Error(`Value must be an array`);return f?r(e[c],l):l.includes(e[c]);case`not_in`:if(!Array.isArray(l))throw Error(`Value must be an array`);return f?i(e[c],l):!l.includes(e[c]);case`contains`:return f?a(e[c],l):e[c]?.includes(l);case`starts_with`:return f?o(e[c],l):e[c].startsWith(l);case`ends_with`:return f?s(e[c],l):e[c].endsWith(l);case`ne`:return f?!n(e[c],l):e[c]!==l;case`gt`:return l!=null&&e[c]>l;case`gte`:return l!=null&&e[c]>=l;case`lt`:return l!=null&&e[c]<l;case`lte`:return l!=null&&e[c]<=l;default:return f?n(e[c],l):l===null?e[c]==null:e[c]===l}},h=f.filter(e=>{if(!t.length||t.length===0)return!0;let n=m(e,t[0]);for(let r of t){let t=m(e,r);r.connector===`OR`?n||=t:n&&=t}return n});return p?.length&&p.length>0&&(h=h.map(e=>Object.fromEntries(Object.entries(e).filter(([e])=>p.includes(l({model:d,field:e})))))),h})();if(!f)return m;let h=new Map,g=new Map;for(let t of m){let n=String(t.id);if(!h.has(n)){let e={...t};for(let[t,r]of Object.entries(f)){let i=t;r.relation===`one-to-one`?e[i]=null:(e[i]=[],g.set(`${n}-${t}`,new Set))}h.set(n,e)}let r=h.get(n);for(let[i,a]of Object.entries(f)){let o=i,s=c[o];if(!s)throw e.error(`[MemoryAdapter] JoinOption model ${o} not found in the DB`,Object.keys(c)),Error(`JoinOption model ${o} not found`);let l=s.filter(e=>e[a.on.to]===t[a.on.from]);if(a.relation===`one-to-one`)r[o]=l[0]||null;else{let e=g.get(`${n}-${i}`),t=a.limit??100,s=0;for(let n of l){if(s>=t)break;e.has(n.id)||(r[o].push(n),e.add(n.id),s++)}}}}return Array.from(h.values())}return{create:async({model:e,data:t})=>(u.advanced?.database?.generateId===`serial`&&(t.id=c[e].length+1),c[e]||(c[e]=[]),c[e].push(t),t),findOne:async({model:e,modelKey:t=e,where:n,select:r,join:i})=>{let a=f(n,e,t,i,r);if(i){let e=a;return e.length?e[0]:null}return a[0]||null},findMany:async({model:e,modelKey:t=e,where:n,sortBy:r,limit:i,select:a,offset:o,join:s})=>{let c=f(n||[],e,t,s,a);if(s){let e=c;if(!e.length)return[];d(e,r,t);let n=e;return o!==void 0&&(n=n.slice(o)),i!==void 0&&(n=n.slice(0,i)),n}let l=d(c,r,t);return o!==void 0&&(l=l.slice(o)),i!==void 0&&(l=l.slice(0,i)),l||[]},count:async({model:e,modelKey:t=e,where:n})=>n?f(n,e,t).length:c[e].length,update:async({model:e,modelKey:t=e,where:n,update:r})=>{if(n.length===0)return null;let i=f(n,e,t);return i.forEach(e=>{Object.assign(e,r)}),i[0]||null},delete:async({model:e,modelKey:t=e,where:n})=>{if(n.length===0)return;let r=c[e],i=f(n,e,t);c[e]=r.filter(e=>!i.includes(e))},deleteMany:async({model:e,modelKey:t=e,where:n})=>{let r=c[e],i=f(n,e,t),a=0;return c[e]=r.filter(e=>i.includes(e)?(a++,!1):!i.includes(e)),a},consumeOne:async({model:e,modelKey:t=e,where:n})=>{let r=c[e],i=f(n,e,t)[0];return i?(c[e]=r.filter(e=>e!==i),i):null},incrementOne:async({model:e,modelKey:t=e,where:n,increment:r,set:i})=>{let a=f(n,e,t)[0];if(!a)return null;for(let[e,t]of Object.entries(r))a[e]=(typeof a[e]==`number`?a[e]:0)+t;return i&&Object.assign(a,i),a},updateMany:async({model:e,modelKey:t=e,where:n,update:r})=>{let i=f(n,e,t);return i.forEach(e=>{Object.assign(e,r)}),i.length}}}}),p=f(c);return e=>(d=e,p(e))};export{d as memoryAdapter};
|
|
2
|
+
//# sourceMappingURL=dist-CU1NXSiz.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dist-DcICI3fd.js","names":["logger","insensitiveCompare","a","b","insensitiveIn","recordVal","values","v","insensitiveNotIn","insensitiveContains","value","insensitiveStartsWith","insensitiveEndsWith","indexById","byId","row","rows","mergeTransactionInto","models","base","clone","model","target","baseById","cloneRows","cloneById","liveRows","merged","placed","liveRow","id","baseRow","cloneRow","rowChanged","memoryAdapter","lazyOptions","buildAdapterFactory","createAdapterFactory","config","props","activeDb","result","cb","applySortToRecords","sortBy","records","field","getFieldName","modelKey","aValue","bValue","comparison","convertWhereClause","baseRecords","table","evalClause","clause","isInsensitive","mode","operator","record","where","clauseResult","select","key","getDefaultFieldName","join","grouped","seenIds","baseRecord","baseId","nested","joinModel","joinAttr","joinModelName","nestedEntry","joinTable","matchingRecords","joinRecord","seenSet","limit","count","matchingRecord","options","data","res","resArray","paginatedRecords","offset","update","delta","increment","set","adapterCreator","db"],"sources":["../../../../../node_modules/.pnpm/@better-auth+memory-adapter@1.8.0-beta.2_@better-auth+core@1.8.0-beta.2_@better-auth+ut_457745fb4dc1fc8ad210b34cbbf04086/node_modules/@better-auth/memory-adapter/dist/index.mjs"],"sourcesContent":["import { createAdapterFactory } from \"@better-auth/core/db/adapter\";\nimport { logger } from \"@better-auth/core/env\";\n//#region src/query-builders.ts\n/**\n* Case-insensitive in-memory comparison helpers.\n* Used when evaluating where clauses in the memory adapter.\n*/\nfunction insensitiveCompare(a, b) {\n\tif (typeof a === \"string\" && typeof b === \"string\") return a.toLowerCase() === b.toLowerCase();\n\treturn a === b;\n}\nfunction insensitiveIn(recordVal, values) {\n\tif (typeof recordVal !== \"string\") return values.includes(recordVal);\n\treturn values.some((v) => typeof v === \"string\" && recordVal.toLowerCase() === v.toLowerCase());\n}\nfunction insensitiveNotIn(recordVal, values) {\n\treturn !insensitiveIn(recordVal, values);\n}\nfunction insensitiveContains(recordVal, value) {\n\tif (typeof recordVal !== \"string\" || typeof value !== \"string\") return false;\n\treturn recordVal.toLowerCase().includes(value.toLowerCase());\n}\nfunction insensitiveStartsWith(recordVal, value) {\n\tif (typeof recordVal !== \"string\" || typeof value !== \"string\") return false;\n\treturn recordVal.toLowerCase().startsWith(value.toLowerCase());\n}\nfunction insensitiveEndsWith(recordVal, value) {\n\tif (typeof recordVal !== \"string\" || typeof value !== \"string\") return false;\n\treturn recordVal.toLowerCase().endsWith(value.toLowerCase());\n}\n//#endregion\n//#region src/memory-adapter.ts\n/**\n* Index a table's rows by their `id` for row-level reconciliation. Every\n* better-auth row carries an `id` (the adapter's join logic already keys on\n* `record.id`), so the id is a stable identity for the three-way merge.\n*/\nfunction indexById(rows) {\n\tconst byId = /* @__PURE__ */ new Map();\n\tfor (const row of rows) byId.set(row.id, row);\n\treturn byId;\n}\n/**\n* Commit a transaction onto the live database with a three-way merge so a\n* concurrent write that interleaved at an `await` point survives.\n*\n* `base` is the snapshot taken when the transaction started; `clone` is that\n* snapshot after the transaction mutated it; `target` is the live database as\n* it stands now (possibly carrying concurrent writes). Replaying only the\n* `base -> clone` delta onto `target` applies the transaction's own creates,\n* updates, and deletes without disturbing rows or tables the transaction never\n* touched. A row the transaction did not change keeps the live version, so a\n* concurrent edit to a different row is preserved. A row the transaction did\n* change wins last-writer-wins over a concurrent edit to the same row, which is\n* acceptable for an in-memory development adapter; isolation is guaranteed only\n* at row/table granularity.\n*\n* `target` is mutated in place so any reference held elsewhere (for example the\n* `db` object the caller passed to `memoryAdapter`) stays valid.\n*/\nfunction mergeTransactionInto(target, base, clone) {\n\tconst models = new Set([...Object.keys(base), ...Object.keys(clone)]);\n\tfor (const model of models) {\n\t\tif (!(model in clone)) {\n\t\t\tdelete target[model];\n\t\t\tcontinue;\n\t\t}\n\t\tconst baseById = indexById(base[model] ?? []);\n\t\tconst cloneRows = clone[model] ?? [];\n\t\tconst cloneById = indexById(cloneRows);\n\t\tconst liveRows = target[model] ?? [];\n\t\tconst merged = [];\n\t\tconst placed = /* @__PURE__ */ new Set();\n\t\tfor (const liveRow of liveRows) {\n\t\t\tconst id = liveRow.id;\n\t\t\tconst baseRow = baseById.get(id);\n\t\t\tconst cloneRow = cloneById.get(id);\n\t\t\tif (baseRow !== void 0 && cloneRow === void 0) continue;\n\t\t\tif (cloneRow !== void 0 && rowChanged(baseRow, cloneRow)) merged.push(cloneRow);\n\t\t\telse merged.push(liveRow);\n\t\t\tplaced.add(id);\n\t\t}\n\t\tfor (const cloneRow of cloneRows) if (!baseById.has(cloneRow.id) && !placed.has(cloneRow.id)) merged.push(cloneRow);\n\t\ttarget[model] = merged;\n\t}\n}\n/**\n* Whether the transaction mutated a row, comparing its pre-transaction\n* snapshot to its post-transaction state. Rows hold scalar columns and\n* adapter-serializable values, so JSON equality reliably tells a\n* transaction-made edit apart from an untouched row.\n*/\nfunction rowChanged(baseRow, cloneRow) {\n\tif (baseRow === void 0) return true;\n\treturn JSON.stringify(baseRow) !== JSON.stringify(cloneRow);\n}\nconst memoryAdapter = (db, config) => {\n\tlet lazyOptions = null;\n\t/**\n\t* Build an adapter factory whose operations read and write `activeDb`.\n\t* The non-transactional adapter targets the live `db`. A transaction\n\t* targets an isolated clone so its uncommitted writes are invisible to\n\t* concurrent operations against the live `db`. A failed transaction leaves\n\t* the live `db` untouched, and a committed one replays only its own\n\t* row/table changes, so a concurrent write that interleaved at an `await`\n\t* point survives either outcome. Isolation is at row/table granularity:\n\t* the in-memory adapter does not serialize writes, so two operations that\n\t* edit the same row resolve last-writer-wins. It is built for development\n\t* and tests, not production concurrency control.\n\t*/\n\tconst buildAdapterFactory = (activeDb) => createAdapterFactory({\n\t\tconfig: {\n\t\t\tadapterId: \"memory\",\n\t\t\tadapterName: \"Memory Adapter\",\n\t\t\tusePlural: false,\n\t\t\tdebugLogs: config?.debugLogs || false,\n\t\t\tsupportsArrays: true,\n\t\t\tcustomTransformInput(props) {\n\t\t\t\tif (props.options.advanced?.database?.generateId === \"serial\" && props.field === \"id\" && props.action === \"create\") return activeDb[props.model].length + 1;\n\t\t\t\treturn props.data;\n\t\t\t},\n\t\t\ttransaction: async (cb) => {\n\t\t\t\tconst base = structuredClone(activeDb);\n\t\t\t\tconst clone = structuredClone(activeDb);\n\t\t\t\tconst result = await cb(buildAdapterFactory(clone)(lazyOptions));\n\t\t\t\tmergeTransactionInto(activeDb, base, clone);\n\t\t\t\treturn result;\n\t\t\t}\n\t\t},\n\t\tadapter: ({ getFieldName, getDefaultFieldName, options }) => {\n\t\t\tconst applySortToRecords = (records, sortBy, modelKey) => {\n\t\t\t\tif (!sortBy) return records;\n\t\t\t\treturn records.sort((a, b) => {\n\t\t\t\t\tconst field = getFieldName({\n\t\t\t\t\t\tmodel: modelKey,\n\t\t\t\t\t\tfield: sortBy.field\n\t\t\t\t\t});\n\t\t\t\t\tconst aValue = a[field];\n\t\t\t\t\tconst bValue = b[field];\n\t\t\t\t\tlet comparison = 0;\n\t\t\t\t\tif (aValue == null && bValue == null) comparison = 0;\n\t\t\t\t\telse if (aValue == null) comparison = -1;\n\t\t\t\t\telse if (bValue == null) comparison = 1;\n\t\t\t\t\telse if (typeof aValue === \"string\" && typeof bValue === \"string\") comparison = aValue.localeCompare(bValue);\n\t\t\t\t\telse if (aValue instanceof Date && bValue instanceof Date) comparison = aValue.getTime() - bValue.getTime();\n\t\t\t\t\telse if (typeof aValue === \"number\" && typeof bValue === \"number\") comparison = aValue - bValue;\n\t\t\t\t\telse if (typeof aValue === \"boolean\" && typeof bValue === \"boolean\") comparison = aValue === bValue ? 0 : aValue ? 1 : -1;\n\t\t\t\t\telse comparison = String(aValue).localeCompare(String(bValue));\n\t\t\t\t\treturn sortBy.direction === \"asc\" ? comparison : -comparison;\n\t\t\t\t});\n\t\t\t};\n\t\t\tfunction convertWhereClause(where, model, modelKey, join, select) {\n\t\t\t\tconst baseRecords = (() => {\n\t\t\t\t\tconst table = activeDb[model];\n\t\t\t\t\tif (!table) {\n\t\t\t\t\t\tlogger.error(`[MemoryAdapter] Model ${model} not found in the DB`, Object.keys(activeDb));\n\t\t\t\t\t\tthrow new Error(`Model ${model} not found`);\n\t\t\t\t\t}\n\t\t\t\t\tconst evalClause = (record, clause) => {\n\t\t\t\t\t\tconst { field, value, operator, mode = \"sensitive\" } = clause;\n\t\t\t\t\t\tconst isInsensitive = mode === \"insensitive\" && (typeof value === \"string\" || Array.isArray(value) && value.every((v) => typeof v === \"string\"));\n\t\t\t\t\t\tswitch (operator) {\n\t\t\t\t\t\t\tcase \"in\":\n\t\t\t\t\t\t\t\tif (!Array.isArray(value)) throw new Error(\"Value must be an array\");\n\t\t\t\t\t\t\t\tif (isInsensitive) return insensitiveIn(record[field], value);\n\t\t\t\t\t\t\t\treturn value.includes(record[field]);\n\t\t\t\t\t\t\tcase \"not_in\":\n\t\t\t\t\t\t\t\tif (!Array.isArray(value)) throw new Error(\"Value must be an array\");\n\t\t\t\t\t\t\t\tif (isInsensitive) return insensitiveNotIn(record[field], value);\n\t\t\t\t\t\t\t\treturn !value.includes(record[field]);\n\t\t\t\t\t\t\tcase \"contains\":\n\t\t\t\t\t\t\t\tif (isInsensitive) return insensitiveContains(record[field], value);\n\t\t\t\t\t\t\t\treturn record[field]?.includes(value);\n\t\t\t\t\t\t\tcase \"starts_with\":\n\t\t\t\t\t\t\t\tif (isInsensitive) return insensitiveStartsWith(record[field], value);\n\t\t\t\t\t\t\t\treturn record[field].startsWith(value);\n\t\t\t\t\t\t\tcase \"ends_with\":\n\t\t\t\t\t\t\t\tif (isInsensitive) return insensitiveEndsWith(record[field], value);\n\t\t\t\t\t\t\t\treturn record[field].endsWith(value);\n\t\t\t\t\t\t\tcase \"ne\": return isInsensitive ? !insensitiveCompare(record[field], value) : record[field] !== value;\n\t\t\t\t\t\t\tcase \"gt\": return value != null && Boolean(record[field] > value);\n\t\t\t\t\t\t\tcase \"gte\": return value != null && Boolean(record[field] >= value);\n\t\t\t\t\t\t\tcase \"lt\": return value != null && Boolean(record[field] < value);\n\t\t\t\t\t\t\tcase \"lte\": return value != null && Boolean(record[field] <= value);\n\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\tif (isInsensitive) return insensitiveCompare(record[field], value);\n\t\t\t\t\t\t\t\tif (value === null) return record[field] == null;\n\t\t\t\t\t\t\t\treturn record[field] === value;\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t\tlet records = table.filter((record) => {\n\t\t\t\t\t\tif (!where.length || where.length === 0) return true;\n\t\t\t\t\t\tlet result = evalClause(record, where[0]);\n\t\t\t\t\t\tfor (const clause of where) {\n\t\t\t\t\t\t\tconst clauseResult = evalClause(record, clause);\n\t\t\t\t\t\t\tif (clause.connector === \"OR\") result = result || clauseResult;\n\t\t\t\t\t\t\telse result = result && clauseResult;\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn result;\n\t\t\t\t\t});\n\t\t\t\t\tif (select?.length && select.length > 0) records = records.map((record) => Object.fromEntries(Object.entries(record).filter(([key]) => select.includes(getDefaultFieldName({\n\t\t\t\t\t\tmodel: modelKey,\n\t\t\t\t\t\tfield: key\n\t\t\t\t\t})))));\n\t\t\t\t\treturn records;\n\t\t\t\t})();\n\t\t\t\tif (!join) return baseRecords;\n\t\t\t\tconst grouped = /* @__PURE__ */ new Map();\n\t\t\t\tconst seenIds = /* @__PURE__ */ new Map();\n\t\t\t\tfor (const baseRecord of baseRecords) {\n\t\t\t\t\tconst baseId = String(baseRecord.id);\n\t\t\t\t\tif (!grouped.has(baseId)) {\n\t\t\t\t\t\tconst nested = { ...baseRecord };\n\t\t\t\t\t\tfor (const [joinModel, joinAttr] of Object.entries(join)) {\n\t\t\t\t\t\t\tconst joinModelName = joinModel;\n\t\t\t\t\t\t\tif (joinAttr.relation === \"one-to-one\") nested[joinModelName] = null;\n\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\tnested[joinModelName] = [];\n\t\t\t\t\t\t\t\tseenIds.set(`${baseId}-${joinModel}`, /* @__PURE__ */ new Set());\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tgrouped.set(baseId, nested);\n\t\t\t\t\t}\n\t\t\t\t\tconst nestedEntry = grouped.get(baseId);\n\t\t\t\t\tfor (const [joinModel, joinAttr] of Object.entries(join)) {\n\t\t\t\t\t\tconst joinModelName = joinModel;\n\t\t\t\t\t\tconst joinTable = activeDb[joinModelName];\n\t\t\t\t\t\tif (!joinTable) {\n\t\t\t\t\t\t\tlogger.error(`[MemoryAdapter] JoinOption model ${joinModelName} not found in the DB`, Object.keys(activeDb));\n\t\t\t\t\t\t\tthrow new Error(`JoinOption model ${joinModelName} not found`);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tconst matchingRecords = joinTable.filter((joinRecord) => joinRecord[joinAttr.on.to] === baseRecord[joinAttr.on.from]);\n\t\t\t\t\t\tif (joinAttr.relation === \"one-to-one\") nestedEntry[joinModelName] = matchingRecords[0] || null;\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\tconst seenSet = seenIds.get(`${baseId}-${joinModel}`);\n\t\t\t\t\t\t\tconst limit = joinAttr.limit ?? 100;\n\t\t\t\t\t\t\tlet count = 0;\n\t\t\t\t\t\t\tfor (const matchingRecord of matchingRecords) {\n\t\t\t\t\t\t\t\tif (count >= limit) break;\n\t\t\t\t\t\t\t\tif (!seenSet.has(matchingRecord.id)) {\n\t\t\t\t\t\t\t\t\tnestedEntry[joinModelName].push(matchingRecord);\n\t\t\t\t\t\t\t\t\tseenSet.add(matchingRecord.id);\n\t\t\t\t\t\t\t\t\tcount++;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn Array.from(grouped.values());\n\t\t\t}\n\t\t\treturn {\n\t\t\t\tcreate: async ({ model, data }) => {\n\t\t\t\t\tif (options.advanced?.database?.generateId === \"serial\") data.id = activeDb[model].length + 1;\n\t\t\t\t\tif (!activeDb[model]) activeDb[model] = [];\n\t\t\t\t\tactiveDb[model].push(data);\n\t\t\t\t\treturn data;\n\t\t\t\t},\n\t\t\t\tfindOne: async ({ model, modelKey = model, where, select, join }) => {\n\t\t\t\t\tconst res = convertWhereClause(where, model, modelKey, join, select);\n\t\t\t\t\tif (join) {\n\t\t\t\t\t\tconst resArray = res;\n\t\t\t\t\t\tif (!resArray.length) return null;\n\t\t\t\t\t\treturn resArray[0];\n\t\t\t\t\t}\n\t\t\t\t\treturn res[0] || null;\n\t\t\t\t},\n\t\t\t\tfindMany: async ({ model, modelKey = model, where, sortBy, limit, select, offset, join }) => {\n\t\t\t\t\tconst res = convertWhereClause(where || [], model, modelKey, join, select);\n\t\t\t\t\tif (join) {\n\t\t\t\t\t\tconst resArray = res;\n\t\t\t\t\t\tif (!resArray.length) return [];\n\t\t\t\t\t\tapplySortToRecords(resArray, sortBy, modelKey);\n\t\t\t\t\t\tlet paginatedRecords = resArray;\n\t\t\t\t\t\tif (offset !== void 0) paginatedRecords = paginatedRecords.slice(offset);\n\t\t\t\t\t\tif (limit !== void 0) paginatedRecords = paginatedRecords.slice(0, limit);\n\t\t\t\t\t\treturn paginatedRecords;\n\t\t\t\t\t}\n\t\t\t\t\tlet table = applySortToRecords(res, sortBy, modelKey);\n\t\t\t\t\tif (offset !== void 0) table = table.slice(offset);\n\t\t\t\t\tif (limit !== void 0) table = table.slice(0, limit);\n\t\t\t\t\treturn table || [];\n\t\t\t\t},\n\t\t\t\tcount: async ({ model, modelKey = model, where }) => {\n\t\t\t\t\tif (where) return convertWhereClause(where, model, modelKey).length;\n\t\t\t\t\treturn activeDb[model].length;\n\t\t\t\t},\n\t\t\t\tupdate: async ({ model, modelKey = model, where, update }) => {\n\t\t\t\t\tif (where.length === 0) return null;\n\t\t\t\t\tconst res = convertWhereClause(where, model, modelKey);\n\t\t\t\t\tres.forEach((record) => {\n\t\t\t\t\t\tObject.assign(record, update);\n\t\t\t\t\t});\n\t\t\t\t\treturn res[0] || null;\n\t\t\t\t},\n\t\t\t\tdelete: async ({ model, modelKey = model, where }) => {\n\t\t\t\t\tif (where.length === 0) return;\n\t\t\t\t\tconst table = activeDb[model];\n\t\t\t\t\tconst res = convertWhereClause(where, model, modelKey);\n\t\t\t\t\tactiveDb[model] = table.filter((record) => !res.includes(record));\n\t\t\t\t},\n\t\t\t\tdeleteMany: async ({ model, modelKey = model, where }) => {\n\t\t\t\t\tconst table = activeDb[model];\n\t\t\t\t\tconst res = convertWhereClause(where, model, modelKey);\n\t\t\t\t\tlet count = 0;\n\t\t\t\t\tactiveDb[model] = table.filter((record) => {\n\t\t\t\t\t\tif (res.includes(record)) {\n\t\t\t\t\t\t\tcount++;\n\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn !res.includes(record);\n\t\t\t\t\t});\n\t\t\t\t\treturn count;\n\t\t\t\t},\n\t\t\t\tconsumeOne: async ({ model, modelKey = model, where }) => {\n\t\t\t\t\tconst table = activeDb[model];\n\t\t\t\t\tconst target = convertWhereClause(where, model, modelKey)[0];\n\t\t\t\t\tif (!target) return null;\n\t\t\t\t\tactiveDb[model] = table.filter((record) => record !== target);\n\t\t\t\t\treturn target;\n\t\t\t\t},\n\t\t\t\tincrementOne: async ({ model, modelKey = model, where, increment, set }) => {\n\t\t\t\t\tconst target = convertWhereClause(where, model, modelKey)[0];\n\t\t\t\t\tif (!target) return null;\n\t\t\t\t\tfor (const [field, delta] of Object.entries(increment)) target[field] = (typeof target[field] === \"number\" ? target[field] : 0) + delta;\n\t\t\t\t\tif (set) Object.assign(target, set);\n\t\t\t\t\treturn target;\n\t\t\t\t},\n\t\t\t\tupdateMany: async ({ model, modelKey = model, where, update }) => {\n\t\t\t\t\tconst res = convertWhereClause(where, model, modelKey);\n\t\t\t\t\tres.forEach((record) => {\n\t\t\t\t\t\tObject.assign(record, update);\n\t\t\t\t\t});\n\t\t\t\t\treturn res.length;\n\t\t\t\t}\n\t\t\t};\n\t\t}\n\t});\n\tconst adapterCreator = buildAdapterFactory(db);\n\treturn (options) => {\n\t\tlazyOptions = options;\n\t\treturn adapterCreator(options);\n\t};\n};\n//#endregion\nexport { memoryAdapter };\n"],"ignoreList":[0],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"dist-CU1NXSiz.js","names":["logger","insensitiveCompare","a","b","insensitiveIn","recordVal","values","v","insensitiveNotIn","insensitiveContains","value","insensitiveStartsWith","insensitiveEndsWith","indexById","byId","row","rows","mergeTransactionInto","models","base","clone","model","target","baseById","cloneRows","cloneById","liveRows","merged","placed","liveRow","id","baseRow","cloneRow","rowChanged","memoryAdapter","lazyOptions","buildAdapterFactory","createAdapterFactory","config","props","activeDb","result","cb","applySortToRecords","sortBy","records","field","getFieldName","modelKey","aValue","bValue","comparison","convertWhereClause","baseRecords","table","evalClause","clause","isInsensitive","mode","operator","record","where","clauseResult","select","key","getDefaultFieldName","join","grouped","seenIds","baseRecord","baseId","nested","joinModel","joinAttr","joinModelName","nestedEntry","joinTable","matchingRecords","joinRecord","seenSet","limit","count","matchingRecord","options","data","res","resArray","paginatedRecords","offset","update","delta","increment","set","adapterCreator","db"],"sources":["../../../../../node_modules/.pnpm/@better-auth+memory-adapter@1.8.0-beta.2_@better-auth+core@1.8.0-beta.2_@better-auth+ut_457745fb4dc1fc8ad210b34cbbf04086/node_modules/@better-auth/memory-adapter/dist/index.mjs"],"sourcesContent":["import { createAdapterFactory } from \"@better-auth/core/db/adapter\";\nimport { logger } from \"@better-auth/core/env\";\n//#region src/query-builders.ts\n/**\n* Case-insensitive in-memory comparison helpers.\n* Used when evaluating where clauses in the memory adapter.\n*/\nfunction insensitiveCompare(a, b) {\n\tif (typeof a === \"string\" && typeof b === \"string\") return a.toLowerCase() === b.toLowerCase();\n\treturn a === b;\n}\nfunction insensitiveIn(recordVal, values) {\n\tif (typeof recordVal !== \"string\") return values.includes(recordVal);\n\treturn values.some((v) => typeof v === \"string\" && recordVal.toLowerCase() === v.toLowerCase());\n}\nfunction insensitiveNotIn(recordVal, values) {\n\treturn !insensitiveIn(recordVal, values);\n}\nfunction insensitiveContains(recordVal, value) {\n\tif (typeof recordVal !== \"string\" || typeof value !== \"string\") return false;\n\treturn recordVal.toLowerCase().includes(value.toLowerCase());\n}\nfunction insensitiveStartsWith(recordVal, value) {\n\tif (typeof recordVal !== \"string\" || typeof value !== \"string\") return false;\n\treturn recordVal.toLowerCase().startsWith(value.toLowerCase());\n}\nfunction insensitiveEndsWith(recordVal, value) {\n\tif (typeof recordVal !== \"string\" || typeof value !== \"string\") return false;\n\treturn recordVal.toLowerCase().endsWith(value.toLowerCase());\n}\n//#endregion\n//#region src/memory-adapter.ts\n/**\n* Index a table's rows by their `id` for row-level reconciliation. Every\n* better-auth row carries an `id` (the adapter's join logic already keys on\n* `record.id`), so the id is a stable identity for the three-way merge.\n*/\nfunction indexById(rows) {\n\tconst byId = /* @__PURE__ */ new Map();\n\tfor (const row of rows) byId.set(row.id, row);\n\treturn byId;\n}\n/**\n* Commit a transaction onto the live database with a three-way merge so a\n* concurrent write that interleaved at an `await` point survives.\n*\n* `base` is the snapshot taken when the transaction started; `clone` is that\n* snapshot after the transaction mutated it; `target` is the live database as\n* it stands now (possibly carrying concurrent writes). Replaying only the\n* `base -> clone` delta onto `target` applies the transaction's own creates,\n* updates, and deletes without disturbing rows or tables the transaction never\n* touched. A row the transaction did not change keeps the live version, so a\n* concurrent edit to a different row is preserved. A row the transaction did\n* change wins last-writer-wins over a concurrent edit to the same row, which is\n* acceptable for an in-memory development adapter; isolation is guaranteed only\n* at row/table granularity.\n*\n* `target` is mutated in place so any reference held elsewhere (for example the\n* `db` object the caller passed to `memoryAdapter`) stays valid.\n*/\nfunction mergeTransactionInto(target, base, clone) {\n\tconst models = new Set([...Object.keys(base), ...Object.keys(clone)]);\n\tfor (const model of models) {\n\t\tif (!(model in clone)) {\n\t\t\tdelete target[model];\n\t\t\tcontinue;\n\t\t}\n\t\tconst baseById = indexById(base[model] ?? []);\n\t\tconst cloneRows = clone[model] ?? [];\n\t\tconst cloneById = indexById(cloneRows);\n\t\tconst liveRows = target[model] ?? [];\n\t\tconst merged = [];\n\t\tconst placed = /* @__PURE__ */ new Set();\n\t\tfor (const liveRow of liveRows) {\n\t\t\tconst id = liveRow.id;\n\t\t\tconst baseRow = baseById.get(id);\n\t\t\tconst cloneRow = cloneById.get(id);\n\t\t\tif (baseRow !== void 0 && cloneRow === void 0) continue;\n\t\t\tif (cloneRow !== void 0 && rowChanged(baseRow, cloneRow)) merged.push(cloneRow);\n\t\t\telse merged.push(liveRow);\n\t\t\tplaced.add(id);\n\t\t}\n\t\tfor (const cloneRow of cloneRows) if (!baseById.has(cloneRow.id) && !placed.has(cloneRow.id)) merged.push(cloneRow);\n\t\ttarget[model] = merged;\n\t}\n}\n/**\n* Whether the transaction mutated a row, comparing its pre-transaction\n* snapshot to its post-transaction state. Rows hold scalar columns and\n* adapter-serializable values, so JSON equality reliably tells a\n* transaction-made edit apart from an untouched row.\n*/\nfunction rowChanged(baseRow, cloneRow) {\n\tif (baseRow === void 0) return true;\n\treturn JSON.stringify(baseRow) !== JSON.stringify(cloneRow);\n}\nconst memoryAdapter = (db, config) => {\n\tlet lazyOptions = null;\n\t/**\n\t* Build an adapter factory whose operations read and write `activeDb`.\n\t* The non-transactional adapter targets the live `db`. A transaction\n\t* targets an isolated clone so its uncommitted writes are invisible to\n\t* concurrent operations against the live `db`. A failed transaction leaves\n\t* the live `db` untouched, and a committed one replays only its own\n\t* row/table changes, so a concurrent write that interleaved at an `await`\n\t* point survives either outcome. Isolation is at row/table granularity:\n\t* the in-memory adapter does not serialize writes, so two operations that\n\t* edit the same row resolve last-writer-wins. It is built for development\n\t* and tests, not production concurrency control.\n\t*/\n\tconst buildAdapterFactory = (activeDb) => createAdapterFactory({\n\t\tconfig: {\n\t\t\tadapterId: \"memory\",\n\t\t\tadapterName: \"Memory Adapter\",\n\t\t\tusePlural: false,\n\t\t\tdebugLogs: config?.debugLogs || false,\n\t\t\tsupportsArrays: true,\n\t\t\tcustomTransformInput(props) {\n\t\t\t\tif (props.options.advanced?.database?.generateId === \"serial\" && props.field === \"id\" && props.action === \"create\") return activeDb[props.model].length + 1;\n\t\t\t\treturn props.data;\n\t\t\t},\n\t\t\ttransaction: async (cb) => {\n\t\t\t\tconst base = structuredClone(activeDb);\n\t\t\t\tconst clone = structuredClone(activeDb);\n\t\t\t\tconst result = await cb(buildAdapterFactory(clone)(lazyOptions));\n\t\t\t\tmergeTransactionInto(activeDb, base, clone);\n\t\t\t\treturn result;\n\t\t\t}\n\t\t},\n\t\tadapter: ({ getFieldName, getDefaultFieldName, options }) => {\n\t\t\tconst applySortToRecords = (records, sortBy, modelKey) => {\n\t\t\t\tif (!sortBy) return records;\n\t\t\t\treturn records.sort((a, b) => {\n\t\t\t\t\tconst field = getFieldName({\n\t\t\t\t\t\tmodel: modelKey,\n\t\t\t\t\t\tfield: sortBy.field\n\t\t\t\t\t});\n\t\t\t\t\tconst aValue = a[field];\n\t\t\t\t\tconst bValue = b[field];\n\t\t\t\t\tlet comparison = 0;\n\t\t\t\t\tif (aValue == null && bValue == null) comparison = 0;\n\t\t\t\t\telse if (aValue == null) comparison = -1;\n\t\t\t\t\telse if (bValue == null) comparison = 1;\n\t\t\t\t\telse if (typeof aValue === \"string\" && typeof bValue === \"string\") comparison = aValue.localeCompare(bValue);\n\t\t\t\t\telse if (aValue instanceof Date && bValue instanceof Date) comparison = aValue.getTime() - bValue.getTime();\n\t\t\t\t\telse if (typeof aValue === \"number\" && typeof bValue === \"number\") comparison = aValue - bValue;\n\t\t\t\t\telse if (typeof aValue === \"boolean\" && typeof bValue === \"boolean\") comparison = aValue === bValue ? 0 : aValue ? 1 : -1;\n\t\t\t\t\telse comparison = String(aValue).localeCompare(String(bValue));\n\t\t\t\t\treturn sortBy.direction === \"asc\" ? comparison : -comparison;\n\t\t\t\t});\n\t\t\t};\n\t\t\tfunction convertWhereClause(where, model, modelKey, join, select) {\n\t\t\t\tconst baseRecords = (() => {\n\t\t\t\t\tconst table = activeDb[model];\n\t\t\t\t\tif (!table) {\n\t\t\t\t\t\tlogger.error(`[MemoryAdapter] Model ${model} not found in the DB`, Object.keys(activeDb));\n\t\t\t\t\t\tthrow new Error(`Model ${model} not found`);\n\t\t\t\t\t}\n\t\t\t\t\tconst evalClause = (record, clause) => {\n\t\t\t\t\t\tconst { field, value, operator, mode = \"sensitive\" } = clause;\n\t\t\t\t\t\tconst isInsensitive = mode === \"insensitive\" && (typeof value === \"string\" || Array.isArray(value) && value.every((v) => typeof v === \"string\"));\n\t\t\t\t\t\tswitch (operator) {\n\t\t\t\t\t\t\tcase \"in\":\n\t\t\t\t\t\t\t\tif (!Array.isArray(value)) throw new Error(\"Value must be an array\");\n\t\t\t\t\t\t\t\tif (isInsensitive) return insensitiveIn(record[field], value);\n\t\t\t\t\t\t\t\treturn value.includes(record[field]);\n\t\t\t\t\t\t\tcase \"not_in\":\n\t\t\t\t\t\t\t\tif (!Array.isArray(value)) throw new Error(\"Value must be an array\");\n\t\t\t\t\t\t\t\tif (isInsensitive) return insensitiveNotIn(record[field], value);\n\t\t\t\t\t\t\t\treturn !value.includes(record[field]);\n\t\t\t\t\t\t\tcase \"contains\":\n\t\t\t\t\t\t\t\tif (isInsensitive) return insensitiveContains(record[field], value);\n\t\t\t\t\t\t\t\treturn record[field]?.includes(value);\n\t\t\t\t\t\t\tcase \"starts_with\":\n\t\t\t\t\t\t\t\tif (isInsensitive) return insensitiveStartsWith(record[field], value);\n\t\t\t\t\t\t\t\treturn record[field].startsWith(value);\n\t\t\t\t\t\t\tcase \"ends_with\":\n\t\t\t\t\t\t\t\tif (isInsensitive) return insensitiveEndsWith(record[field], value);\n\t\t\t\t\t\t\t\treturn record[field].endsWith(value);\n\t\t\t\t\t\t\tcase \"ne\": return isInsensitive ? !insensitiveCompare(record[field], value) : record[field] !== value;\n\t\t\t\t\t\t\tcase \"gt\": return value != null && Boolean(record[field] > value);\n\t\t\t\t\t\t\tcase \"gte\": return value != null && Boolean(record[field] >= value);\n\t\t\t\t\t\t\tcase \"lt\": return value != null && Boolean(record[field] < value);\n\t\t\t\t\t\t\tcase \"lte\": return value != null && Boolean(record[field] <= value);\n\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\tif (isInsensitive) return insensitiveCompare(record[field], value);\n\t\t\t\t\t\t\t\tif (value === null) return record[field] == null;\n\t\t\t\t\t\t\t\treturn record[field] === value;\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t\tlet records = table.filter((record) => {\n\t\t\t\t\t\tif (!where.length || where.length === 0) return true;\n\t\t\t\t\t\tlet result = evalClause(record, where[0]);\n\t\t\t\t\t\tfor (const clause of where) {\n\t\t\t\t\t\t\tconst clauseResult = evalClause(record, clause);\n\t\t\t\t\t\t\tif (clause.connector === \"OR\") result = result || clauseResult;\n\t\t\t\t\t\t\telse result = result && clauseResult;\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn result;\n\t\t\t\t\t});\n\t\t\t\t\tif (select?.length && select.length > 0) records = records.map((record) => Object.fromEntries(Object.entries(record).filter(([key]) => select.includes(getDefaultFieldName({\n\t\t\t\t\t\tmodel: modelKey,\n\t\t\t\t\t\tfield: key\n\t\t\t\t\t})))));\n\t\t\t\t\treturn records;\n\t\t\t\t})();\n\t\t\t\tif (!join) return baseRecords;\n\t\t\t\tconst grouped = /* @__PURE__ */ new Map();\n\t\t\t\tconst seenIds = /* @__PURE__ */ new Map();\n\t\t\t\tfor (const baseRecord of baseRecords) {\n\t\t\t\t\tconst baseId = String(baseRecord.id);\n\t\t\t\t\tif (!grouped.has(baseId)) {\n\t\t\t\t\t\tconst nested = { ...baseRecord };\n\t\t\t\t\t\tfor (const [joinModel, joinAttr] of Object.entries(join)) {\n\t\t\t\t\t\t\tconst joinModelName = joinModel;\n\t\t\t\t\t\t\tif (joinAttr.relation === \"one-to-one\") nested[joinModelName] = null;\n\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\tnested[joinModelName] = [];\n\t\t\t\t\t\t\t\tseenIds.set(`${baseId}-${joinModel}`, /* @__PURE__ */ new Set());\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tgrouped.set(baseId, nested);\n\t\t\t\t\t}\n\t\t\t\t\tconst nestedEntry = grouped.get(baseId);\n\t\t\t\t\tfor (const [joinModel, joinAttr] of Object.entries(join)) {\n\t\t\t\t\t\tconst joinModelName = joinModel;\n\t\t\t\t\t\tconst joinTable = activeDb[joinModelName];\n\t\t\t\t\t\tif (!joinTable) {\n\t\t\t\t\t\t\tlogger.error(`[MemoryAdapter] JoinOption model ${joinModelName} not found in the DB`, Object.keys(activeDb));\n\t\t\t\t\t\t\tthrow new Error(`JoinOption model ${joinModelName} not found`);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tconst matchingRecords = joinTable.filter((joinRecord) => joinRecord[joinAttr.on.to] === baseRecord[joinAttr.on.from]);\n\t\t\t\t\t\tif (joinAttr.relation === \"one-to-one\") nestedEntry[joinModelName] = matchingRecords[0] || null;\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\tconst seenSet = seenIds.get(`${baseId}-${joinModel}`);\n\t\t\t\t\t\t\tconst limit = joinAttr.limit ?? 100;\n\t\t\t\t\t\t\tlet count = 0;\n\t\t\t\t\t\t\tfor (const matchingRecord of matchingRecords) {\n\t\t\t\t\t\t\t\tif (count >= limit) break;\n\t\t\t\t\t\t\t\tif (!seenSet.has(matchingRecord.id)) {\n\t\t\t\t\t\t\t\t\tnestedEntry[joinModelName].push(matchingRecord);\n\t\t\t\t\t\t\t\t\tseenSet.add(matchingRecord.id);\n\t\t\t\t\t\t\t\t\tcount++;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn Array.from(grouped.values());\n\t\t\t}\n\t\t\treturn {\n\t\t\t\tcreate: async ({ model, data }) => {\n\t\t\t\t\tif (options.advanced?.database?.generateId === \"serial\") data.id = activeDb[model].length + 1;\n\t\t\t\t\tif (!activeDb[model]) activeDb[model] = [];\n\t\t\t\t\tactiveDb[model].push(data);\n\t\t\t\t\treturn data;\n\t\t\t\t},\n\t\t\t\tfindOne: async ({ model, modelKey = model, where, select, join }) => {\n\t\t\t\t\tconst res = convertWhereClause(where, model, modelKey, join, select);\n\t\t\t\t\tif (join) {\n\t\t\t\t\t\tconst resArray = res;\n\t\t\t\t\t\tif (!resArray.length) return null;\n\t\t\t\t\t\treturn resArray[0];\n\t\t\t\t\t}\n\t\t\t\t\treturn res[0] || null;\n\t\t\t\t},\n\t\t\t\tfindMany: async ({ model, modelKey = model, where, sortBy, limit, select, offset, join }) => {\n\t\t\t\t\tconst res = convertWhereClause(where || [], model, modelKey, join, select);\n\t\t\t\t\tif (join) {\n\t\t\t\t\t\tconst resArray = res;\n\t\t\t\t\t\tif (!resArray.length) return [];\n\t\t\t\t\t\tapplySortToRecords(resArray, sortBy, modelKey);\n\t\t\t\t\t\tlet paginatedRecords = resArray;\n\t\t\t\t\t\tif (offset !== void 0) paginatedRecords = paginatedRecords.slice(offset);\n\t\t\t\t\t\tif (limit !== void 0) paginatedRecords = paginatedRecords.slice(0, limit);\n\t\t\t\t\t\treturn paginatedRecords;\n\t\t\t\t\t}\n\t\t\t\t\tlet table = applySortToRecords(res, sortBy, modelKey);\n\t\t\t\t\tif (offset !== void 0) table = table.slice(offset);\n\t\t\t\t\tif (limit !== void 0) table = table.slice(0, limit);\n\t\t\t\t\treturn table || [];\n\t\t\t\t},\n\t\t\t\tcount: async ({ model, modelKey = model, where }) => {\n\t\t\t\t\tif (where) return convertWhereClause(where, model, modelKey).length;\n\t\t\t\t\treturn activeDb[model].length;\n\t\t\t\t},\n\t\t\t\tupdate: async ({ model, modelKey = model, where, update }) => {\n\t\t\t\t\tif (where.length === 0) return null;\n\t\t\t\t\tconst res = convertWhereClause(where, model, modelKey);\n\t\t\t\t\tres.forEach((record) => {\n\t\t\t\t\t\tObject.assign(record, update);\n\t\t\t\t\t});\n\t\t\t\t\treturn res[0] || null;\n\t\t\t\t},\n\t\t\t\tdelete: async ({ model, modelKey = model, where }) => {\n\t\t\t\t\tif (where.length === 0) return;\n\t\t\t\t\tconst table = activeDb[model];\n\t\t\t\t\tconst res = convertWhereClause(where, model, modelKey);\n\t\t\t\t\tactiveDb[model] = table.filter((record) => !res.includes(record));\n\t\t\t\t},\n\t\t\t\tdeleteMany: async ({ model, modelKey = model, where }) => {\n\t\t\t\t\tconst table = activeDb[model];\n\t\t\t\t\tconst res = convertWhereClause(where, model, modelKey);\n\t\t\t\t\tlet count = 0;\n\t\t\t\t\tactiveDb[model] = table.filter((record) => {\n\t\t\t\t\t\tif (res.includes(record)) {\n\t\t\t\t\t\t\tcount++;\n\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn !res.includes(record);\n\t\t\t\t\t});\n\t\t\t\t\treturn count;\n\t\t\t\t},\n\t\t\t\tconsumeOne: async ({ model, modelKey = model, where }) => {\n\t\t\t\t\tconst table = activeDb[model];\n\t\t\t\t\tconst target = convertWhereClause(where, model, modelKey)[0];\n\t\t\t\t\tif (!target) return null;\n\t\t\t\t\tactiveDb[model] = table.filter((record) => record !== target);\n\t\t\t\t\treturn target;\n\t\t\t\t},\n\t\t\t\tincrementOne: async ({ model, modelKey = model, where, increment, set }) => {\n\t\t\t\t\tconst target = convertWhereClause(where, model, modelKey)[0];\n\t\t\t\t\tif (!target) return null;\n\t\t\t\t\tfor (const [field, delta] of Object.entries(increment)) target[field] = (typeof target[field] === \"number\" ? target[field] : 0) + delta;\n\t\t\t\t\tif (set) Object.assign(target, set);\n\t\t\t\t\treturn target;\n\t\t\t\t},\n\t\t\t\tupdateMany: async ({ model, modelKey = model, where, update }) => {\n\t\t\t\t\tconst res = convertWhereClause(where, model, modelKey);\n\t\t\t\t\tres.forEach((record) => {\n\t\t\t\t\t\tObject.assign(record, update);\n\t\t\t\t\t});\n\t\t\t\t\treturn res.length;\n\t\t\t\t}\n\t\t\t};\n\t\t}\n\t});\n\tconst adapterCreator = buildAdapterFactory(db);\n\treturn (options) => {\n\t\tlazyOptions = options;\n\t\treturn adapterCreator(options);\n\t};\n};\n//#endregion\nexport { memoryAdapter };\n"],"ignoreList":[0],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import"./index-CLddUTqr-CmgkbWi9.js";
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{t as e}from"./index-CLddUTqr-
|
|
2
|
-
//# sourceMappingURL=effect-QlVUlMFu-
|
|
1
|
+
import{t as e}from"./index-CLddUTqr-CmgkbWi9.js";async function t(){try{let{JSONSchema:e}=await import(`./standard-json-DY77efq0.js`);return t=>e.make(t)}catch{throw new e(`effect`)}}export{t as default};
|
|
2
|
+
//# sourceMappingURL=effect-QlVUlMFu-Cm-eTtaO.js.map
|
package/dist/app/server/assets/{effect-QlVUlMFu-mXPkuQTb.js.map → effect-QlVUlMFu-Cm-eTtaO.js.map}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"effect-QlVUlMFu-
|
|
1
|
+
{"version":3,"file":"effect-QlVUlMFu-Cm-eTtaO.js","names":["MissingDependencyError","getToJsonSchemaFn","JSONSchema","schema"],"sources":["../../../../../node_modules/.pnpm/@standard-community+standard-json@0.3.6_@standard-schema+spec@1.1.0_@types+json-schema@_49e48ef25430c4082238cf6ce450dfc5/node_modules/@standard-community/standard-json/dist/effect-QlVUlMFu.js"],"sourcesContent":["import { M as MissingDependencyError } from './index-CLddUTqr.js';\nimport 'quansync';\n\nasync function getToJsonSchemaFn() {\n try {\n const { JSONSchema } = await import('effect');\n return (schema) => JSONSchema.make(schema);\n } catch {\n throw new MissingDependencyError(\"effect\");\n }\n}\n\nexport { getToJsonSchemaFn as default };\n"],"ignoreList":[0],"mappings":"A,iDAGA,eAAeC,GAAoB,CACjC,GAAI,CACF,GAAM,CAAE,cAAe,MAAM,OAAO,+BACpC,MAAQ,IAAWC,EAAW,KAAKC,CAAM,CAC3C,MAAQ,CACN,MAAM,IAAIH,EAAuB,QAAQ,CAC3C,CACF,C"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import{At as e,C as t,Ct as n,Et as r,Ot as i,S as a,a as o,c as s,ft as c,h as l,ht as u,jt as d,k as f,m as p,n as m,r as h,s as g,wt as _,x as v}from"./get-id-field-BpOAoqqI.js";var y=({schema:e,usePlural:t})=>{let n=h({schema:e,usePlural:t});return({field:t,model:r})=>{if(t===`id`||t===`_id`)return`id`;let i=n(r),a=e[i]?.fields[t];if(!a){let n=Object.entries(e[i].fields).find(([e,n])=>n.fieldName===t);n&&(a=n[1],t=n[0])}if(!a)throw new v(`Field ${t} not found in model ${i}`);return t}},b=({usePlural:e,schema:t,options:n,customIdGenerator:r,disableIdGeneration:i})=>{let a=h({usePlural:e,schema:t}),o=y({usePlural:e,schema:t}),s=m({usePlural:e,schema:t,options:n,customIdGenerator:r,disableIdGeneration:i});return({model:e,field:n})=>{let r=a(e),i=o({field:n,model:r}),c=t[r].fields;c.id=s({customModelName:r});let l=c[i];if(!l)throw new v(`Field ${n} not found in model ${e}`);return l}},x=({schema:e,usePlural:t})=>{let n=h({schema:e,usePlural:t}),r=y({schema:e,usePlural:t});function i({model:t,field:i}){let a=n(t),o=r({model:a,field:i});return e[a]?.fields[o]?.fieldName||o}return i},S=({usePlural:e,schema:t})=>{let n=h({schema:t,usePlural:e});return r=>{let i=n(r);return t&&t[i]&&t[i].modelName!==r?e?`${t[i].modelName}s`:t[i].modelName:e?`${r}s`:r}};function C(e,t,n){return n===`update`?e===void 0&&t.onUpdate!==void 0?typeof t.onUpdate==`function`?t.onUpdate():t.onUpdate:e:n===`create`&&(e===void 0||t.required===!0&&e===null)&&t.defaultValue!==void 0?typeof t.defaultValue==`function`?t.defaultValue():t.defaultValue:e}var w=5,T=e([i(),n(),c(),u()]).nullable(),E=r(i(),d()).nullish(),D=r(i(),d()).transform(e=>{let t={};for(let[n,r]of Object.entries(e))r!==void 0&&(t[n]=r);return t}),O=_({increment:r(i(),n()),set:D.optional()}),k=n().nullish();function A(e){let{adapter:t,adapterId:n}=e,r=Object.entries(e.mapKeysTransformOutput??{}).find(([,e])=>e===`id`)?.[0]??`id`;async function i(t,n,i){let a=e.mapKeysTransformInput?.id||e.getFieldName({model:n,field:`id`});if(t[a]===void 0||t[a]===null)throw new v(`Adapter "${e.adapterId}" must return the row id for atomic fallbacks.`);let o=(await e.transformOutput(t,n,[r],void 0))?.id;if(typeof o!=`string`&&typeof o!=`number`)throw new v(`Adapter "${e.adapterId}" must expose a logical string or number id through its output transform.`);let[s]=e.transformWhereClause({model:n,where:[{field:`id`,value:o}],action:i});if(!s)throw new v(`The atomic fallback id condition was transformed away.`);return s}async function a({model:e,modelKey:r,where:i}){let a=E.safeParse(await t.findOne({model:e,modelKey:r,where:i}));if(!a.success)throw new v(`Adapter "${n}" must return a row snapshot or null.`);return a.data??null}async function o(e,t,r,a){let o=await i(e,r.modelKey,a),s=r.where.some(e=>e.connector===`OR`),c=s?[o]:[...r.where,o],l=new Set(t);for(let t of l){if(t===o.field)continue;let i=T.safeParse(e[t]??null);if(i.success)c.push({field:t,value:i.data,operator:`eq`,connector:`AND`,mode:`sensitive`});else if(s&&r.where.some(e=>e.field===t))throw new v(`Adapter "${n}" must implement native atomic methods for OR predicates on structured values.`)}return c}function s(e){if(e!==0&&e!==1)throw new v(`Adapter "${n}" must return an affected row count of 0 or 1 from an atomic fallback.`);return e===1}async function c(e){let{model:n,where:r}=e,i=await a(e);if(i===null)return null;let c=await o(i,[...Object.keys(i),...r.map(({field:e})=>e)],e,`consumeOne`);return s(await t.deleteMany({model:n,modelKey:e.modelKey,where:c}))?i:null}async function l(e){let{model:r,where:i}=e,c=O.safeParse(e);if(!c.success)throw new v(`incrementOne requires finite increments and a set object for the atomic fallback.`);let{increment:l,set:u}=c.data,d=Object.entries(l),f=[...i.map(({field:e})=>e),...Object.keys(l),...Object.keys(u??{})];for(let i=0;i<w;i++){let i=await a(e);if(i===null)return null;let c={...u};for(let[e,t]of d){let r=k.safeParse(i[e]);if(!r.success)throw new v(`Adapter "${n}" must return finite numeric counter values or null for atomic increments.`);let a=r.data??0,o=a+t;if(!Number.isFinite(o)||t!==0&&o===a)throw new v(`Adapter "${n}" cannot represent the requested counter increment safely.`);c[e]=o}let l=await o(i,f,e,`incrementOne`);if(Object.entries(c).every(([e,t])=>{let n=i[e];return n instanceof Date&&t instanceof Date?n.getTime()===t.getTime():Object.is(n,t)}))return i;if(s(await t.updateMany({model:r,modelKey:e.modelKey,where:l,update:c})))return{...i,...c}}throw new v(`Adapter "${n}" could not complete an atomic increment due to contention. Retry the operation or implement incrementOne natively.`)}return{consumeOne:c,incrementOne:l}}var j=[],M=-1,N=e=>t=>t(e),P=({adapter:e,config:n})=>r=>{let i=o(r),a=Math.random().toString(36).substring(2,15),c={...n,supportsBooleans:n.supportsBooleans??!0,supportsDates:n.supportsDates??!0,supportsJSON:n.supportsJSON??!1,adapterName:n.adapterName??n.adapterId,supportsNumericIds:n.supportsNumericIds??!0,supportsUUIDs:n.supportsUUIDs??!1,supportsArrays:n.supportsArrays??!1,transaction:n.transaction??!1,disableTransformInput:n.disableTransformInput??!1,disableTransformOutput:n.disableTransformOutput??!1,disableTransformJoin:n.disableTransformJoin??!1};if(r.advanced?.database?.generateId===`serial`&&c.supportsNumericIds===!1)throw new v(`[${c.adapterName}] Your database or database adapter does not support numeric ids. Please disable "useNumberId" in your config.`);let u=l(r),d=(...e)=>{if(c.debugLogs===!0||typeof c.debugLogs==`object`){let n=t({level:`info`});if(typeof c.debugLogs==`object`&&`isRunningAdapterTests`in c.debugLogs){c.debugLogs.isRunningAdapterTests&&(e.shift(),j.push({instance:a,args:e}));return}if(typeof c.debugLogs==`object`&&c.debugLogs.logCondition&&!c.debugLogs.logCondition?.())return;if(typeof e[0]==`object`&&`method`in e[0]){let t=e.shift().method;if(typeof c.debugLogs==`object`&&(t===`create`&&!c.debugLogs.create||t===`update`&&!c.debugLogs.update||t===`updateMany`&&!c.debugLogs.updateMany||t===`findOne`&&!c.debugLogs.findOne||t===`findMany`&&!c.debugLogs.findMany||t===`delete`&&!c.debugLogs.delete||t===`deleteMany`&&!c.debugLogs.deleteMany||t===`consumeOne`&&!c.debugLogs.consumeOne||t===`incrementOne`&&!c.debugLogs.incrementOne||t===`count`&&!c.debugLogs.count))return;n.info(`[${c.adapterName}]`,...e)}else n.info(`[${c.adapterName}]`,...e)}},f=t(r.logger),_=h({usePlural:c.usePlural,schema:u}),w=y({usePlural:c.usePlural,schema:u}),T=S({usePlural:c.usePlural,schema:u}),E=x({schema:u,usePlural:c.usePlural}),D=m({schema:u,options:r,usePlural:c.usePlural,disableIdGeneration:c.disableIdGeneration,customIdGenerator:c.customIdGenerator,supportsUUIDs:c.supportsUUIDs}),O=b({schema:u,options:r,usePlural:c.usePlural,disableIdGeneration:c.disableIdGeneration,customIdGenerator:c.customIdGenerator}),k=async(e,t,n,i)=>{let a={},o=u[t].fields,s=c.mapKeysTransformInput??{},l=r.advanced?.database?.generateId===`serial`;o.id=D({customModelName:t,forceAllowId:i&&`id`in e});for(let i in o){let d=e[i],p=o[i],m=s[i]||o[i].fieldName||i;if(d===void 0&&(p.defaultValue===void 0&&!p.transform?.input&&!(n===`update`&&p.onUpdate)||n===`update`&&!p.onUpdate))continue;if(p&&p.type===`date`&&!(d instanceof Date)&&typeof d==`string`)try{d=new Date(d)}catch{f.error(`[Adapter Factory] Failed to convert string to date`,{value:d,field:i})}let h=C(d,p,n);p.transform?.input&&(h=await p.transform.input(h)),p.references?.field===`id`&&l?h=Array.isArray(h)?h.map(e=>e===null?null:Number(e)):h===null?null:Number(h):c.supportsJSON===!1&&typeof h==`object`&&p.type===`json`||c.supportsArrays===!1&&Array.isArray(h)&&(p.type===`string[]`||p.type===`number[]`)?h=JSON.stringify(h):c.supportsDates===!1&&h instanceof Date&&p.type===`date`?h=h.toISOString():c.supportsBooleans===!1&&typeof h==`boolean`&&(h=+!!h),c.customTransformInput&&(h=c.customTransformInput({data:h,action:n,field:m,fieldAttributes:p,model:T(t),schema:u,options:r})),h!==void 0&&(a[m]=h)}return a},P=async(e,t,n=[],i)=>{let a=async(e,t,n=[])=>{if(!e)return null;let i=_(t),a=c.mapKeysTransformOutput??{},o={},s=u[i].fields,l=Object.entries(a).find(([e,t])=>t===`id`)?.[0];s[l??`id`]={type:r.advanced?.database?.generateId===`serial`?`number`:`string`};for(let t in s){if(n.length&&!n.includes(t))continue;let l=s[t];if(l){let s=l.fieldName||t,d=e[Object.entries(a).find(([e,t])=>t===s)?.[0]||s];l.transform?.output&&(d=await l.transform.output(d));let f=a[t]||t;s===`id`||l.references?.field===`id`?d!=null&&(d=String(d)):c.supportsJSON===!1&&typeof d==`string`&&l.type===`json`||c.supportsArrays===!1&&typeof d==`string`&&(l.type===`string[]`||l.type===`number[]`)?d=p(d):c.supportsDates===!1&&typeof d==`string`&&l.type===`date`?d=new Date(d):c.supportsBooleans===!1&&typeof d==`number`&&l.type===`boolean`&&(d=d===1),c.customTransformOutput&&(d=c.customTransformOutput({data:d,field:f,fieldAttributes:l,select:n,model:T(i),schema:u,options:r})),o[f]=d}}return o};if(!i||Object.keys(i).length===0)return await a(e,t,n);let o=_(t),s=await a(e,o,n),l=Object.entries(i).map(([e,t])=>({modelName:e,defaultModelName:t.modelKey??_(e),joinConfig:t}));if(!e)return null;for(let{modelName:t,defaultModelName:n,joinConfig:i}of l){let c=await(async()=>r.advanced?.database?.joins&&t in e?e[t]:await V({baseModel:o,baseData:s,joinModel:t,specificJoinConfig:i}))();c??=i.relation===`one-to-one`?null:[],i.relation===`one-to-many`&&!Array.isArray(c)&&(c=[c]);let l=[];if(Array.isArray(c))for(let e of c){let t=await a(e,n,[]);l.push(t)}else{let e=await a(c,n,[]);l.push(e)}s[n]=(i.relation===`one-to-one`?l[0]:l)??null}return s},z=({model:e,where:t,action:n})=>{if(!t)return;let i=c.mapKeysTransformInput??{};return t.map(t=>{let{field:a,value:o,operator:s=`eq`,connector:l=`AND`,mode:d=`sensitive`}=t;if(s===`in`&&!Array.isArray(o))throw new v(`Value must be an array`);let f=o,p=_(e),m=w({field:a,model:e}),h=i[m]||E({field:m,model:p}),g=O({field:m,model:p}),y=r.advanced?.database?.generateId===`serial`;if((m===`id`||g.references?.field===`id`)&&y&&(f=Array.isArray(o)?o.map(Number):Number(o)),g.type===`date`&&o instanceof Date&&!c.supportsDates&&(f=o.toISOString()),g.type===`boolean`&&typeof f==`string`&&(f=f===`true`),g.type===`number`){if(typeof f==`string`&&f.trim()!==``){let e=Number(f);Number.isNaN(e)||(f=e)}else if(Array.isArray(f)){let e=f.map(e=>typeof e==`string`&&e.trim()!==``?Number(e):NaN);e.every(e=>!Number.isNaN(e))&&(f=e)}}if(g.type===`boolean`&&typeof f==`boolean`&&!c.supportsBooleans&&(f=+!!f),g.type===`json`&&typeof o==`object`&&!c.supportsJSON)try{f=JSON.stringify(o)}catch(e){throw Error(`Failed to stringify JSON value for field ${h}`,{cause:e})}return c.customTransformInput&&(f=c.customTransformInput({data:f,fieldAttributes:g,field:h,model:T(e),schema:u,options:r,action:n})),{operator:s,connector:l,field:h,value:f,mode:d}})},B=(e,t,n)=>{if(!t||Object.keys(t).length===0)return;let i={};for(let[a,o]of Object.entries(t)){if(!o)continue;let t=_(a),s=_(e),c=Object.entries(u[t].fields).filter(([e,t])=>t.references&&_(t.references.model)===s),l=!0;if(c.length||(c=Object.entries(u[s].fields).filter(([e,n])=>n.references&&_(n.references.model)===t),l=!1),!c.length)throw new v(`No foreign key found for model ${a} and base model ${e} while performing join operation.`);if(c.length>1)throw new v(`Multiple foreign keys found for model ${a} and base model ${e} while performing join operation. Only one foreign key is supported.`);let[d,f]=c[0];if(!f.references)throw new v(`No references found for foreign key ${d} on model ${a} while performing join operation.`);let p,m,h;l?(h=f.references.field,p=E({model:e,field:h}),m=E({model:a,field:d})):(h=d,p=E({model:e,field:h}),m=E({model:a,field:f.references.field})),n&&!n.includes(h)&&n.push(h);let g=m===`id`?!0:f.unique??!1,y=r.advanced?.database?.defaultFindManyLimit??100;g?y=1:typeof o==`object`&&typeof o.limit==`number`&&(y=o.limit),i[T(a)]={modelKey:a,on:{from:p,to:m},limit:y,relation:g?`one-to-one`:`one-to-many`}}return{join:i,select:n}},V=async({baseModel:e,baseData:t,joinModel:n,specificJoinConfig:a})=>{if(!t)return t;let o=a.modelKey??_(n),c=T(o),l=a.on.to,u=t[w({field:a.on.from,model:e})];if(u==null)return a.relation===`one-to-one`?null:[];let d,p=z({model:o,where:[{field:l,value:u,operator:`eq`,connector:`AND`}],action:`findOne`});try{if(a.relation===`one-to-one`)d=await i(`db findOne ${c}`,{[s]:`findOne`,[g]:c},()=>H.findOne({model:c,modelKey:o,where:p}));else{let e=a.limit??r.advanced?.database?.defaultFindManyLimit??100;d=await i(`db findMany ${c}`,{[s]:`findMany`,[g]:c},()=>H.findMany({model:c,modelKey:o,where:p,limit:e}))}}catch(e){throw f.error(`Failed to query fallback join for model ${c}:`,{where:p,limit:a.limit}),console.error(e),e}return d},H=e({options:r,schema:u,debugLog:d,getFieldName:E,getModelName:T,getDefaultModelName:_,getDefaultFieldName:w,getFieldAttributes:O,transformInput:k,transformOutput:P,transformWhereClause:z}),U=null,W=A({adapter:H,adapterId:c.adapterId,mapKeysTransformInput:c.mapKeysTransformInput,mapKeysTransformOutput:c.mapKeysTransformOutput,getFieldName:E,transformOutput:P,transformWhereClause:z}),G={transaction:async e=>(U||(c.transaction?(f.debug(`[${c.adapterName}] - Using provided transaction implementation.`),U=c.transaction):U=N(G)),U(e)),create:async({data:e,model:t,select:n,forceAllowId:r=!1})=>{M++;let a=M,o=_(t),l=T(o);if(`id`in e&&e.id!==void 0&&!r){f.warn(`[${c.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.`);let t=Error().stack?.split(`
|
|
2
|
+
`).filter((e,t)=>t!==1).join(`
|
|
3
|
+
`).replace(`Error:`,"Create method with `id` being called at:");console.log(t),e.id=void 0}d({method:`create`},`${F(a)} ${I(1,4)}`,`${L(`create`)} ${R(`Unsafe Input`)}:`,{model:l,data:e});let u=e;c.disableTransformInput||(u=await k(e,o,`create`,r)),d({method:`create`},`${F(a)} ${I(2,4)}`,`${L(`create`)} ${R(`Parsed Input`)}:`,{model:l,data:u});let p=await i(`db create ${l}`,{[s]:`create`,[g]:l},()=>H.create({data:u,model:l,modelKey:o}));d({method:`create`},`${F(a)} ${I(3,4)}`,`${L(`create`)} ${R(`DB Result`)}:`,{model:l,res:p});let m=p;return c.disableTransformOutput||(m=await P(p,o,n,void 0)),d({method:`create`},`${F(a)} ${I(4,4)}`,`${L(`create`)} ${R(`Parsed Result`)}:`,{model:l,data:m}),m},update:async({model:e,where:t,update:n})=>{M++;let r=M,a=_(e),o=T(a),l=z({model:a,where:t,action:`update`});if(l.length===0)return null;d({method:`update`},`${F(r)} ${I(1,4)}`,`${L(`update`)} ${R(`Unsafe Input`)}:`,{model:o,data:n});let u=n;c.disableTransformInput||(u=await k(n,a,`update`)),d({method:`update`},`${F(r)} ${I(2,4)}`,`${L(`update`)} ${R(`Parsed Input`)}:`,{model:o,data:u});let f=await i(`db update ${o}`,{[s]:`update`,[g]:o},()=>H.update({model:o,modelKey:a,where:l,update:u}));d({method:`update`},`${F(r)} ${I(3,4)}`,`${L(`update`)} ${R(`DB Result`)}:`,{model:o,data:f});let p=f;return c.disableTransformOutput||(p=await P(f,a,void 0,void 0)),d({method:`update`},`${F(r)} ${I(4,4)}`,`${L(`update`)} ${R(`Parsed Result`)}:`,{model:o,data:p}),p},updateMany:async({model:e,where:t,update:n})=>{M++;let r=M,a=_(e),o=T(a),l=z({model:a,where:t,action:`updateMany`});d({method:`updateMany`},`${F(r)} ${I(1,4)}`,`${L(`updateMany`)} ${R(`Unsafe Input`)}:`,{model:o,data:n});let u=n;c.disableTransformInput||(u=await k(n,a,`update`)),d({method:`updateMany`},`${F(r)} ${I(2,4)}`,`${L(`updateMany`)} ${R(`Parsed Input`)}:`,{model:o,data:u});let f=await i(`db updateMany ${o}`,{[s]:`updateMany`,[g]:o},()=>H.updateMany({model:o,modelKey:a,where:l,update:u}));if(typeof f!=`number`||!Number.isFinite(f))throw new v(`Adapter "${c.adapterId}" updateMany must return a finite number affected row count.`);return d({method:`updateMany`},`${F(r)} ${I(3,4)}`,`${L(`updateMany`)} ${R(`DB Result`)}:`,{model:o,data:f}),d({method:`updateMany`},`${F(r)} ${I(4,4)}`,`${L(`updateMany`)} ${R(`Parsed Result`)}:`,{model:o,data:f}),f},findOne:async({model:e,where:t,select:n,join:a})=>{M++;let o=M,l=_(e),u=T(l),f=z({model:l,where:t,action:`findOne`}),p,m=!0;if(c.disableTransformJoin)p=a;else{let e=B(l,a,n);e&&(p=e.join,n=e.select),!r.advanced?.database?.joins&&p&&Object.keys(p).length>0&&(m=!1)}d({method:`findOne`},`${F(o)} ${I(1,3)}`,`${L(`findOne`)}:`,{model:u,where:f,select:n,join:p});let h=await i(`db findOne ${u}`,{[s]:`findOne`,[g]:u},()=>H.findOne({model:u,modelKey:l,where:f,select:n,join:m?p:void 0}));d({method:`findOne`},`${F(o)} ${I(2,3)}`,`${L(`findOne`)} ${R(`DB Result`)}:`,{model:u,data:h});let v=h;return c.disableTransformOutput||(v=await P(h,l,n,p)),d({method:`findOne`},`${F(o)} ${I(3,3)}`,`${L(`findOne`)} ${R(`Parsed Result`)}:`,{model:u,data:v}),v},findMany:async({model:e,where:t,limit:n,select:a,sortBy:o,offset:l,join:u})=>{M++;let f=M,p=n??r.advanced?.database?.defaultFindManyLimit??100,m=_(e),h=T(m),v=z({model:m,where:t,action:`findMany`}),y,b=!0;if(c.disableTransformJoin)y=u;else{let e=B(m,u,a);e&&(y=e.join,a=e.select),!r.advanced?.database?.joins&&y&&Object.keys(y).length>0&&(b=!1)}d({method:`findMany`},`${F(f)} ${I(1,3)}`,`${L(`findMany`)}:`,{model:h,where:v,limit:p,sortBy:o,offset:l,join:y});let x=await i(`db findMany ${h}`,{[s]:`findMany`,[g]:h},()=>H.findMany({model:h,modelKey:m,where:v,limit:p,select:a,sortBy:o,offset:l,join:b?y:void 0}));d({method:`findMany`},`${F(f)} ${I(2,3)}`,`${L(`findMany`)} ${R(`DB Result`)}:`,{model:h,data:x});let S=x;return c.disableTransformOutput||(S=await Promise.all(x.map(async e=>await P(e,m,void 0,y)))),d({method:`findMany`},`${F(f)} ${I(3,3)}`,`${L(`findMany`)} ${R(`Parsed Result`)}:`,{model:h,data:S}),S},delete:async({model:e,where:t})=>{M++;let n=M,r=_(e),a=T(r),o=z({model:r,where:t,action:`delete`});d({method:`delete`},`${F(n)} ${I(1,2)}`,`${L(`delete`)}:`,{model:a,where:o}),await i(`db delete ${a}`,{[s]:`delete`,[g]:a},()=>H.delete({model:a,modelKey:r,where:o})),d({method:`delete`},`${F(n)} ${I(2,2)}`,`${L(`delete`)} ${R(`DB Result`)}:`,{model:a})},deleteMany:async({model:e,where:t})=>{M++;let n=M,r=_(e),a=T(r),o=z({model:r,where:t,action:`deleteMany`});d({method:`deleteMany`},`${F(n)} ${I(1,2)}`,`${L(`deleteMany`)} ${R(`DeleteMany`)}:`,{model:a,where:o});let c=await i(`db deleteMany ${a}`,{[s]:`deleteMany`,[g]:a},()=>H.deleteMany({model:a,modelKey:r,where:o}));return d({method:`deleteMany`},`${F(n)} ${I(2,2)}`,`${L(`deleteMany`)} ${R(`DB Result`)}:`,{model:a,data:c}),c},consumeOne:async({model:e,where:t})=>{M++;let n=M,r=_(e),a=T(r),o=z({model:r,where:t,action:`consumeOne`});d({method:`consumeOne`},`${F(n)} ${I(1,3)}`,`${L(`consumeOne`)} ${R(`ConsumeOne`)}:`,{model:a,where:o});let l=await i(`db consumeOne ${a}`,{[s]:`consumeOne`,[g]:a},()=>H.consumeOne?H.consumeOne({model:a,modelKey:r,where:o}):W.consumeOne({model:a,modelKey:r,where:o}));d({method:`consumeOne`},`${F(n)} ${I(2,3)}`,`${L(`consumeOne`)} ${R(`DB Result`)}:`,{model:a,data:l});let u=l;return!c.disableTransformOutput&&l&&(u=await P(l,r,void 0,void 0)),d({method:`consumeOne`},`${F(n)} ${I(3,3)}`,`${L(`consumeOne`)} ${R(`Parsed Result`)}:`,{model:a,data:u}),u},incrementOne:async({model:e,where:t,increment:n,set:r})=>{let a=Object.keys(n).length>0,o=!!r&&Object.keys(r).length>0;if(!a&&!o)throw new v("incrementOne requires a non-empty `increment` or `set`; both were empty.");M++;let l=M,u=_(e),f=T(u),p=z({model:u,where:t,action:`incrementOne`});d({method:`incrementOne`},`${F(l)} ${I(1,3)}`,`${L(`incrementOne`)} ${R(`IncrementOne`)}:`,{model:f,where:p,increment:n,set:r});let m=c.mapKeysTransformInput??{},h={};for(let[e,t]of Object.entries(n))h[m[e]||E({model:u,field:e})]=t;let y;if(y=r&&!c.disableTransformInput?await k(r,u,`update`):r,Object.keys(h).length===0&&(!y||Object.keys(y).length===0))throw new v(`incrementOne resolved to an empty update: every increment/set field was unknown to the schema or transformed away.`);let b=await i(`db incrementOne ${f}`,{[s]:`incrementOne`,[g]:f},()=>H.incrementOne?H.incrementOne({model:f,modelKey:u,where:p,increment:h,set:y}):W.incrementOne({model:f,modelKey:u,where:p,increment:h,set:y}));d({method:`incrementOne`},`${F(l)} ${I(2,3)}`,`${L(`incrementOne`)} ${R(`DB Result`)}:`,{model:f,data:b});let x=b;return!c.disableTransformOutput&&b&&(x=await P(b,u,void 0,void 0)),d({method:`incrementOne`},`${F(l)} ${I(3,3)}`,`${L(`incrementOne`)} ${R(`Parsed Result`)}:`,{model:f,data:x}),x},count:async({model:e,where:t})=>{M++;let n=M,r=_(e),a=T(r),o=z({model:r,where:t,action:`count`});d({method:`count`},`${F(n)} ${I(1,2)}`,`${L(`count`)}:`,{model:a,where:o});let c=await i(`db count ${a}`,{[s]:`count`,[g]:a},()=>H.count({model:a,modelKey:r,where:o}));return d({method:`count`},`${F(n)} ${I(2,2)}`,`${L(`count`)}:`,{model:a,data:c}),c},createSchema:H.createSchema?async(e,t)=>{let n=l(r);return r.secondaryStorage&&!r.session?.storeSessionInDatabase&&delete n.session,H.createSchema({file:t,tables:n})}:void 0,options:{adapterConfig:c,...H.options??{}},id:c.adapterId,...c.debugLogs?.isRunningAdapterTests?{adapterTestDebugLogs:{resetDebugLogs(){j=j.filter(e=>e.instance!==a)},printDebugLogs(){let e=`─`.repeat(80),t=j.filter(e=>e.instance===a);if(t.length===0)return;let n=t.reverse().map(e=>(e.args[0]=`\n${e.args[0]}`,[...e.args,`
|
|
4
|
+
`])).reduce((e,t)=>[...t,...e],[`\n${e}`]);console.log(...n)}}}:{}};return G};function F(e){return f()<8?`#${e}`:`${a.fg.magenta}#${e}${a.reset}`}function I(e,t){return`${a.bg.black}${a.fg.yellow}[${e}/${t}]${a.reset}`}function L(e){return`${a.bright}${e}${a.reset}`}function R(e){return`${a.dim}(${e})${a.reset}`}export{S as n,x as r,P as t};
|
|
5
|
+
//# sourceMappingURL=factory-g3i_Ffi5.js.map
|