@kozou/svelte-ui 0.1.1 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/client/_app/immutable/assets/0.B45CfnXC.css +2 -0
- package/build/client/_app/immutable/assets/0.B45CfnXC.css.br +0 -0
- package/build/client/_app/immutable/assets/0.B45CfnXC.css.gz +0 -0
- package/build/client/_app/immutable/chunks/{BpIM_fT8.js → 1PNfJiP5.js} +1 -1
- package/build/client/_app/immutable/chunks/1PNfJiP5.js.br +0 -0
- package/build/client/_app/immutable/chunks/1PNfJiP5.js.gz +0 -0
- package/build/client/_app/immutable/chunks/{DQLVkJ9E.js → BGlZ6pi5.js} +1 -1
- package/build/client/_app/immutable/chunks/BGlZ6pi5.js.br +0 -0
- package/build/client/_app/immutable/chunks/BGlZ6pi5.js.gz +0 -0
- package/build/client/_app/immutable/chunks/{Cu9GwMht.js → BtuhG-H4.js} +3 -3
- package/build/client/_app/immutable/chunks/BtuhG-H4.js.br +0 -0
- package/build/client/_app/immutable/chunks/BtuhG-H4.js.gz +0 -0
- package/build/client/_app/immutable/chunks/Cj8LiudX.js +1 -0
- package/build/client/_app/immutable/chunks/Cj8LiudX.js.br +0 -0
- package/build/client/_app/immutable/chunks/Cj8LiudX.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DBEFBeMj.js +4 -0
- package/build/client/_app/immutable/chunks/DBEFBeMj.js.br +0 -0
- package/build/client/_app/immutable/chunks/DBEFBeMj.js.gz +0 -0
- package/build/client/_app/immutable/entry/app.Bvag4tCl.js +2 -0
- package/build/client/_app/immutable/entry/app.Bvag4tCl.js.br +0 -0
- package/build/client/_app/immutable/entry/app.Bvag4tCl.js.gz +0 -0
- package/build/client/_app/immutable/entry/start.LblF-EQS.js +1 -0
- package/build/client/_app/immutable/entry/start.LblF-EQS.js.br +0 -0
- package/build/client/_app/immutable/entry/start.LblF-EQS.js.gz +0 -0
- package/build/client/_app/immutable/nodes/0.DAriStmJ.js +1 -0
- package/build/client/_app/immutable/nodes/0.DAriStmJ.js.br +0 -0
- package/build/client/_app/immutable/nodes/0.DAriStmJ.js.gz +0 -0
- package/build/client/_app/immutable/nodes/1.BsPFUf94.js +1 -0
- package/build/client/_app/immutable/nodes/1.BsPFUf94.js.br +0 -0
- package/build/client/_app/immutable/nodes/1.BsPFUf94.js.gz +0 -0
- package/build/client/_app/immutable/nodes/2.C3ChRVrO.js +1 -0
- package/build/client/_app/immutable/nodes/2.C3ChRVrO.js.br +0 -0
- package/build/client/_app/immutable/nodes/2.C3ChRVrO.js.gz +0 -0
- package/build/client/_app/immutable/nodes/3.CL9ksnmY.js +1 -0
- package/build/client/_app/immutable/nodes/3.CL9ksnmY.js.br +0 -0
- package/build/client/_app/immutable/nodes/3.CL9ksnmY.js.gz +0 -0
- package/build/client/_app/immutable/nodes/4.DtLS6k2o.js +1 -0
- package/build/client/_app/immutable/nodes/4.DtLS6k2o.js.br +0 -0
- package/build/client/_app/immutable/nodes/4.DtLS6k2o.js.gz +0 -0
- package/build/client/_app/immutable/nodes/5.KZ-_jwmy.js +1 -0
- package/build/client/_app/immutable/nodes/5.KZ-_jwmy.js.br +0 -0
- package/build/client/_app/immutable/nodes/5.KZ-_jwmy.js.gz +0 -0
- package/build/client/_app/immutable/nodes/6.CU--nLo8.js +1 -0
- package/build/client/_app/immutable/nodes/6.CU--nLo8.js.br +0 -0
- package/build/client/_app/immutable/nodes/6.CU--nLo8.js.gz +0 -0
- package/build/client/_app/immutable/nodes/7.zir-jrfl.js +1 -0
- package/build/client/_app/immutable/nodes/7.zir-jrfl.js.br +4 -0
- package/build/client/_app/immutable/nodes/7.zir-jrfl.js.gz +0 -0
- package/build/client/_app/version.json +1 -1
- package/build/client/_app/version.json.br +0 -0
- package/build/client/_app/version.json.gz +0 -0
- package/build/server/chunks/{0-BFDPzvW-.js → 0-D3i8OEah.js} +3 -3
- package/build/server/chunks/{0-BFDPzvW-.js.map → 0-D3i8OEah.js.map} +1 -1
- package/build/server/chunks/{1-Dmzzx_Xf.js → 1-DzxHUU9X.js} +3 -3
- package/build/server/chunks/{1-Dmzzx_Xf.js.map → 1-DzxHUU9X.js.map} +1 -1
- package/build/server/chunks/{2-B1IcZygX.js → 2-CE6m9qid.js} +2 -2
- package/build/server/chunks/{2-B1IcZygX.js.map → 2-CE6m9qid.js.map} +1 -1
- package/build/server/chunks/{3-BVIqnkRy.js → 3-C50aWcyD.js} +5 -5
- package/build/server/chunks/3-C50aWcyD.js.map +1 -0
- package/build/server/chunks/{4-BeHrsGek.js → 4-CemFHSpb.js} +4 -4
- package/build/server/chunks/{4-BeHrsGek.js.map → 4-CemFHSpb.js.map} +1 -1
- package/build/server/chunks/{5-Cw01QEjm.js → 5-7pEUMjiC.js} +7 -7
- package/build/server/chunks/{5-Cw01QEjm.js.map → 5-7pEUMjiC.js.map} +1 -1
- package/build/server/chunks/{6-DdCU04G4.js → 6-D9GQm8YW.js} +7 -7
- package/build/server/chunks/{6-DdCU04G4.js.map → 6-D9GQm8YW.js.map} +1 -1
- package/build/server/chunks/{7-BJeosbkA.js → 7-BAhFrC8Z.js} +5 -5
- package/build/server/chunks/7-BAhFrC8Z.js.map +1 -0
- package/build/server/chunks/ListTable-BxIw_RVF.js +117 -0
- package/build/server/chunks/ListTable-BxIw_RVF.js.map +1 -0
- package/build/server/chunks/_page.svelte-CRH5Ib1y.js +23 -0
- package/build/server/chunks/_page.svelte-CRH5Ib1y.js.map +1 -0
- package/build/server/chunks/_page.svelte-CUhqt56V.js +22 -0
- package/build/server/chunks/_page.svelte-CUhqt56V.js.map +1 -0
- package/build/server/chunks/{_page.svelte-DYlwwhHn.js → _page.svelte-Cb1PRFXV.js} +4 -4
- package/build/server/chunks/{_page.svelte-DYlwwhHn.js.map → _page.svelte-Cb1PRFXV.js.map} +1 -1
- package/build/server/chunks/{_page.svelte-DHhstcmi.js → _page.svelte-DZ1za0Cu.js} +4 -4
- package/build/server/chunks/{_page.svelte-DHhstcmi.js.map → _page.svelte-DZ1za0Cu.js.map} +1 -1
- package/build/server/chunks/{_page.svelte-DKhYDtNl.js → _page.svelte-HcBHNRCj.js} +3 -3
- package/build/server/chunks/{_page.svelte-DKhYDtNl.js.map → _page.svelte-HcBHNRCj.js.map} +1 -1
- package/build/server/chunks/{adapter-DSZ-_PM_.js → adapter-BGid8Q1v.js} +202 -26
- package/build/server/chunks/adapter-BGid8Q1v.js.map +1 -0
- package/build/server/chunks/{client-Bcpj9QFB.js → client-C1WmpErn.js} +2 -2
- package/build/server/chunks/{client-Bcpj9QFB.js.map → client-C1WmpErn.js.map} +1 -1
- package/build/server/chunks/{error.svelte-1lnafu4q.js → error.svelte-19koGrze.js} +3 -3
- package/build/server/chunks/{error.svelte-1lnafu4q.js.map → error.svelte-19koGrze.js.map} +1 -1
- package/build/server/chunks/{hooks.server-BBW_dqIs.js → hooks.server-CDtUSdHp.js} +7 -2
- package/build/server/chunks/hooks.server-CDtUSdHp.js.map +1 -0
- package/build/server/chunks/{internal-BrzrGF6g.js → internal-BE2MZeJV.js} +3 -3
- package/build/server/chunks/{internal-BrzrGF6g.js.map → internal-BE2MZeJV.js.map} +1 -1
- package/build/server/chunks/{list-params-DjWk7B1o.js → list-params-Cw6PMHbk.js} +2 -3
- package/build/server/chunks/list-params-Cw6PMHbk.js.map +1 -0
- package/build/server/chunks/{zod-from-table-Cqu9YCfY.js → zod-from-table-Cy0Gx9lc.js} +3 -3
- package/build/server/chunks/{zod-from-table-Cqu9YCfY.js.map → zod-from-table-Cy0Gx9lc.js.map} +1 -1
- package/build/server/index.js +1 -1
- package/build/server/manifest.js +9 -9
- package/build/server/manifest.js.map +1 -1
- package/package.json +7 -5
- package/build/client/_app/immutable/assets/0.CZsFVllx.css +0 -2
- package/build/client/_app/immutable/assets/0.CZsFVllx.css.br +0 -0
- package/build/client/_app/immutable/assets/0.CZsFVllx.css.gz +0 -0
- package/build/client/_app/immutable/chunks/BpIM_fT8.js.br +0 -0
- package/build/client/_app/immutable/chunks/BpIM_fT8.js.gz +0 -0
- package/build/client/_app/immutable/chunks/C4vVozd5.js +0 -4
- package/build/client/_app/immutable/chunks/C4vVozd5.js.br +0 -0
- package/build/client/_app/immutable/chunks/C4vVozd5.js.gz +0 -0
- package/build/client/_app/immutable/chunks/Cu9GwMht.js.br +0 -0
- package/build/client/_app/immutable/chunks/Cu9GwMht.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DQLVkJ9E.js.br +0 -0
- package/build/client/_app/immutable/chunks/DQLVkJ9E.js.gz +0 -0
- package/build/client/_app/immutable/entry/app.D4C-SzYE.js +0 -2
- package/build/client/_app/immutable/entry/app.D4C-SzYE.js.br +0 -0
- package/build/client/_app/immutable/entry/app.D4C-SzYE.js.gz +0 -0
- package/build/client/_app/immutable/entry/start.BgPykZWX.js +0 -1
- package/build/client/_app/immutable/entry/start.BgPykZWX.js.br +0 -0
- package/build/client/_app/immutable/entry/start.BgPykZWX.js.gz +0 -0
- package/build/client/_app/immutable/nodes/0.Ct90k1ZK.js +0 -1
- package/build/client/_app/immutable/nodes/0.Ct90k1ZK.js.br +0 -0
- package/build/client/_app/immutable/nodes/0.Ct90k1ZK.js.gz +0 -0
- package/build/client/_app/immutable/nodes/1.ByzpIkVa.js +0 -1
- package/build/client/_app/immutable/nodes/1.ByzpIkVa.js.br +0 -0
- package/build/client/_app/immutable/nodes/1.ByzpIkVa.js.gz +0 -0
- package/build/client/_app/immutable/nodes/2.DKSRkbg2.js +0 -1
- package/build/client/_app/immutable/nodes/2.DKSRkbg2.js.br +0 -0
- package/build/client/_app/immutable/nodes/2.DKSRkbg2.js.gz +0 -0
- package/build/client/_app/immutable/nodes/3.BRseKH3J.js +0 -1
- package/build/client/_app/immutable/nodes/3.BRseKH3J.js.br +0 -0
- package/build/client/_app/immutable/nodes/3.BRseKH3J.js.gz +0 -0
- package/build/client/_app/immutable/nodes/4.hHssvcSO.js +0 -1
- package/build/client/_app/immutable/nodes/4.hHssvcSO.js.br +0 -0
- package/build/client/_app/immutable/nodes/4.hHssvcSO.js.gz +0 -0
- package/build/client/_app/immutable/nodes/5.CfrPDIy5.js +0 -1
- package/build/client/_app/immutable/nodes/5.CfrPDIy5.js.br +0 -0
- package/build/client/_app/immutable/nodes/5.CfrPDIy5.js.gz +0 -0
- package/build/client/_app/immutable/nodes/6.nxvsG8yx.js +0 -1
- package/build/client/_app/immutable/nodes/6.nxvsG8yx.js.br +0 -3
- package/build/client/_app/immutable/nodes/6.nxvsG8yx.js.gz +0 -0
- package/build/client/_app/immutable/nodes/7.Bfhyc_gZ.js +0 -1
- package/build/client/_app/immutable/nodes/7.Bfhyc_gZ.js.br +0 -0
- package/build/client/_app/immutable/nodes/7.Bfhyc_gZ.js.gz +0 -0
- package/build/server/chunks/3-BVIqnkRy.js.map +0 -1
- package/build/server/chunks/7-BJeosbkA.js.map +0 -1
- package/build/server/chunks/_page.svelte-B8Bnkzob.js +0 -78
- package/build/server/chunks/_page.svelte-B8Bnkzob.js.map +0 -1
- package/build/server/chunks/_page.svelte-Bu4SlGir.js +0 -86
- package/build/server/chunks/_page.svelte-Bu4SlGir.js.map +0 -1
- package/build/server/chunks/adapter-DSZ-_PM_.js.map +0 -1
- package/build/server/chunks/hooks.server-BBW_dqIs.js.map +0 -1
- package/build/server/chunks/list-params-DjWk7B1o.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ListTable-BxIw_RVF.js","sources":["../../../.svelte-kit/adapter-node/chunks/ListTable.js"],"sourcesContent":["import { H as escape_html, V as attr, i as ensure_array_like, r as derived } from \"./dev.js\";\n//#region src/lib/list/list-href.ts\n/** Rebuild the current list URL with `overrides` applied (a `null`\n* override deletes that key). Mirrors the wire format parsed by\n* `parseListParamsFromUrl`; returns `.` when no params remain so the\n* link points at the bare route. */\nfunction buildHref(params, overrides = {}) {\n\tconst sp = new URLSearchParams();\n\tif (params.search.length > 0) sp.set(\"q\", params.search);\n\tif (params.sort.length > 0) sp.set(\"sort\", params.sort.map((s) => `${s.field}:${s.order}`).join(\",\"));\n\tif (params.page > 1) sp.set(\"page\", String(params.page));\n\tif (params.pageSize !== 50) sp.set(\"pageSize\", String(params.pageSize));\n\tfor (const [key, value] of Object.entries(overrides)) if (value === null) sp.delete(key);\n\telse sp.set(key, value);\n\tconst query = sp.toString();\n\treturn query.length > 0 ? `?${query}` : \".\";\n}\n/** Header link target that toggles the sort order for `field` (asc <->\n* desc, defaulting to asc) and resets back to page 1. */\nfunction buildSortHref(params, field) {\n\treturn buildHref(params, {\n\t\tsort: `${field}:${params.sort.find((s) => s.field === field)?.order === \"asc\" ? \"desc\" : \"asc\"}`,\n\t\tpage: null\n\t});\n}\n/** Stringify a cell value for the list table: objects render as JSON,\n* `null` / `undefined` render as the empty string. */\nfunction formatCell(value) {\n\tif (value === null || value === void 0) return \"\";\n\tif (typeof value === \"object\") return JSON.stringify(value);\n\treturn String(value);\n}\n//#endregion\n//#region src/lib/list/ListTable.svelte\nfunction ListTable($$renderer, $$props) {\n\t$$renderer.component(($$renderer) => {\n\t\t/** Heading text (table / view label). */\n\t\t/** `schema.name`, shown under the heading. */\n\t\t/** Views render read-only: no \"+ New\", per-row links, or Actions\n\t\t* column. */\n\t\t/** Route base for the \"+ New\" and per-row links (e.g. `/tables/<qn>`);\n\t\t* used only when `readonly` is false. */\n\t\t/** Primary-key column names used to build the per-row link target. */\n\t\tlet { title, qualifiedName, columns, rows, total, listParams, readonly = false, basePath, primaryKey = [] } = $$props;\n\t\tconst sortLookup = derived(() => new Map(listParams.sort.map((s) => [s.field, s.order])));\n\t\tconst totalPages = derived(() => Math.max(1, Math.ceil(total / listParams.pageSize)));\n\t\tfunction rowKey(row, idx) {\n\t\t\tconst pkField = primaryKey[0];\n\t\t\tif (pkField !== void 0) {\n\t\t\t\tconst pkValue = row[pkField];\n\t\t\t\tif (pkValue !== void 0 && pkValue !== null) return String(pkValue);\n\t\t\t}\n\t\t\treturn String(idx);\n\t\t}\n\t\t$$renderer.push(`<h1 class=\"mb-1 text-2xl font-semibold\">${escape_html(title)}</h1> <p class=\"mb-6 text-sm text-muted-foreground\">${escape_html(qualifiedName)}</p> <form method=\"GET\" class=\"mb-4 flex flex-wrap items-center gap-2\"><input type=\"text\" name=\"q\"${attr(\"value\", listParams.search)} placeholder=\"Search…\" class=\"min-w-0 flex-1 rounded-md border border-input bg-background px-3 py-2 text-sm\"/> <button type=\"submit\" class=\"rounded-md bg-primary px-4 py-2 text-sm font-medium text-primary-foreground\">Search</button> `);\n\t\tif (!readonly && basePath) {\n\t\t\t$$renderer.push(\"<!--[0-->\");\n\t\t\t$$renderer.push(`<a${attr(\"href\", `${basePath}/new`)} class=\"rounded-md border border-border px-4 py-2 text-sm font-medium\">+ New</a>`);\n\t\t} else $$renderer.push(\"<!--[-1-->\");\n\t\t$$renderer.push(`<!--]--></form> <div class=\"overflow-x-auto rounded-md border border-border\"><table class=\"min-w-full text-sm\"><thead class=\"bg-muted\"><tr><!--[-->`);\n\t\tconst each_array = ensure_array_like(columns);\n\t\tfor (let $$index = 0, $$length = each_array.length; $$index < $$length; $$index++) {\n\t\t\tlet col = each_array[$$index];\n\t\t\t$$renderer.push(`<th class=\"px-3 py-2 text-left font-medium\"><a${attr(\"href\", buildSortHref(listParams, col.name))} class=\"hover:underline\">${escape_html(col.label)} `);\n\t\t\tif (sortLookup().has(col.name)) {\n\t\t\t\t$$renderer.push(\"<!--[0-->\");\n\t\t\t\t$$renderer.push(`<span aria-hidden=\"true\">${escape_html(sortLookup().get(col.name) === \"asc\" ? \"↑\" : \"↓\")}</span>`);\n\t\t\t} else $$renderer.push(\"<!--[-1-->\");\n\t\t\t$$renderer.push(`<!--]--></a></th>`);\n\t\t}\n\t\t$$renderer.push(`<!--]-->`);\n\t\tif (!readonly) {\n\t\t\t$$renderer.push(\"<!--[0-->\");\n\t\t\t$$renderer.push(`<th class=\"px-3 py-2 text-left font-medium\">Actions</th>`);\n\t\t} else $$renderer.push(\"<!--[-1-->\");\n\t\t$$renderer.push(`<!--]--></tr></thead><tbody>`);\n\t\tif (rows.length === 0) {\n\t\t\t$$renderer.push(\"<!--[0-->\");\n\t\t\t$$renderer.push(`<tr><td${attr(\"colspan\", columns.length + (readonly ? 0 : 1))} class=\"px-3 py-6 text-center text-muted-foreground\">No rows.</td></tr>`);\n\t\t} else {\n\t\t\t$$renderer.push(\"<!--[-1-->\");\n\t\t\t$$renderer.push(`<!--[-->`);\n\t\t\tconst each_array_1 = ensure_array_like(rows);\n\t\t\tfor (let idx = 0, $$length = each_array_1.length; idx < $$length; idx++) {\n\t\t\t\tlet row = each_array_1[idx];\n\t\t\t\t$$renderer.push(`<tr class=\"border-t border-border\"><!--[-->`);\n\t\t\t\tconst each_array_2 = ensure_array_like(columns);\n\t\t\t\tfor (let $$index_1 = 0, $$length = each_array_2.length; $$index_1 < $$length; $$index_1++) {\n\t\t\t\t\tlet col = each_array_2[$$index_1];\n\t\t\t\t\t$$renderer.push(`<td class=\"px-3 py-2\">${escape_html(formatCell(row[col.name]))}</td>`);\n\t\t\t\t}\n\t\t\t\t$$renderer.push(`<!--]-->`);\n\t\t\t\tif (!readonly && basePath) {\n\t\t\t\t\t$$renderer.push(\"<!--[0-->\");\n\t\t\t\t\t$$renderer.push(`<td class=\"px-3 py-2\"><a${attr(\"href\", `${basePath}/${rowKey(row, idx)}`)} class=\"text-primary underline\">View</a></td>`);\n\t\t\t\t} else $$renderer.push(\"<!--[-1-->\");\n\t\t\t\t$$renderer.push(`<!--]--></tr>`);\n\t\t\t}\n\t\t\t$$renderer.push(`<!--]-->`);\n\t\t}\n\t\t$$renderer.push(`<!--]--></tbody></table></div> <nav class=\"mt-4 flex items-center justify-between text-sm\"><span class=\"text-muted-foreground\">Page ${escape_html(listParams.page)} of ${escape_html(totalPages())} (${escape_html(total)} total)</span> <div class=\"flex gap-2\">`);\n\t\tif (listParams.page > 1) {\n\t\t\t$$renderer.push(\"<!--[0-->\");\n\t\t\t$$renderer.push(`<a${attr(\"href\", buildHref(listParams, { page: String(listParams.page - 1) }))} class=\"rounded-md border border-border px-3 py-1\">← Prev</a>`);\n\t\t} else $$renderer.push(\"<!--[-1-->\");\n\t\t$$renderer.push(`<!--]--> `);\n\t\tif (listParams.page < totalPages()) {\n\t\t\t$$renderer.push(\"<!--[0-->\");\n\t\t\t$$renderer.push(`<a${attr(\"href\", buildHref(listParams, { page: String(listParams.page + 1) }))} class=\"rounded-md border border-border px-3 py-1\">Next →</a>`);\n\t\t} else $$renderer.push(\"<!--[-1-->\");\n\t\t$$renderer.push(`<!--]--></div></nav>`);\n\t});\n}\n//#endregion\nexport { ListTable as t };\n"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import 'clsx';
|
|
2
|
+
import { L as ListTable } from './ListTable-BxIw_RVF.js';
|
|
3
|
+
import './dev-yFiAtg5l.js';
|
|
4
|
+
|
|
5
|
+
//#region src/routes/tables/[table]/+page.svelte
|
|
6
|
+
function _page($$renderer, $$props) {
|
|
7
|
+
$$renderer.component(($$renderer) => {
|
|
8
|
+
let { data } = $$props;
|
|
9
|
+
ListTable($$renderer, {
|
|
10
|
+
title: data.table.label,
|
|
11
|
+
qualifiedName: data.table.qualifiedName,
|
|
12
|
+
columns: data.table.columns,
|
|
13
|
+
rows: data.list.rows,
|
|
14
|
+
total: data.list.total,
|
|
15
|
+
listParams: data.listParams,
|
|
16
|
+
basePath: `/tables/${data.table.qualifiedName}`,
|
|
17
|
+
primaryKey: data.table.primaryKey
|
|
18
|
+
});
|
|
19
|
+
});
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
export { _page as default };
|
|
23
|
+
//# sourceMappingURL=_page.svelte-CRH5Ib1y.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"_page.svelte-CRH5Ib1y.js","sources":["../../../.svelte-kit/adapter-node/entries/pages/tables/_table_/_page.svelte.js"],"sourcesContent":["import \"../../../../chunks/dev.js\";\nimport { t as ListTable } from \"../../../../chunks/ListTable.js\";\n//#region src/routes/tables/[table]/+page.svelte\nfunction _page($$renderer, $$props) {\n\t$$renderer.component(($$renderer) => {\n\t\tlet { data } = $$props;\n\t\tListTable($$renderer, {\n\t\t\ttitle: data.table.label,\n\t\t\tqualifiedName: data.table.qualifiedName,\n\t\t\tcolumns: data.table.columns,\n\t\t\trows: data.list.rows,\n\t\t\ttotal: data.list.total,\n\t\t\tlistParams: data.listParams,\n\t\t\tbasePath: `/tables/${data.table.qualifiedName}`,\n\t\t\tprimaryKey: data.table.primaryKey\n\t\t});\n\t});\n}\n//#endregion\nexport { _page as default };\n"],"names":[],"mappings":";;;;AAEA;AACA,SAAS,KAAK,CAAC,UAAU,EAAE,OAAO,EAAE;AACpC,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,UAAU,KAAK;AACtC,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,OAAO;AACxB,EAAE,SAAS,CAAC,UAAU,EAAE;AACxB,GAAG,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK;AAC1B,GAAG,aAAa,EAAE,IAAI,CAAC,KAAK,CAAC,aAAa;AAC1C,GAAG,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO;AAC9B,GAAG,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI;AACvB,GAAG,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK;AACzB,GAAG,UAAU,EAAE,IAAI,CAAC,UAAU;AAC9B,GAAG,QAAQ,EAAE,CAAC,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;AAClD,GAAG,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC;AAC1B,GAAG,CAAC;AACJ,CAAC,CAAC,CAAC;AACH;;;;"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import 'clsx';
|
|
2
|
+
import { L as ListTable } from './ListTable-BxIw_RVF.js';
|
|
3
|
+
import './dev-yFiAtg5l.js';
|
|
4
|
+
|
|
5
|
+
//#region src/routes/views/[view]/+page.svelte
|
|
6
|
+
function _page($$renderer, $$props) {
|
|
7
|
+
$$renderer.component(($$renderer) => {
|
|
8
|
+
let { data } = $$props;
|
|
9
|
+
ListTable($$renderer, {
|
|
10
|
+
title: data.view.label,
|
|
11
|
+
qualifiedName: data.view.qualifiedName,
|
|
12
|
+
columns: data.view.columns,
|
|
13
|
+
rows: data.list.rows,
|
|
14
|
+
total: data.list.total,
|
|
15
|
+
listParams: data.listParams,
|
|
16
|
+
readonly: true
|
|
17
|
+
});
|
|
18
|
+
});
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
export { _page as default };
|
|
22
|
+
//# sourceMappingURL=_page.svelte-CUhqt56V.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"_page.svelte-CUhqt56V.js","sources":["../../../.svelte-kit/adapter-node/entries/pages/views/_view_/_page.svelte.js"],"sourcesContent":["import \"../../../../chunks/dev.js\";\nimport { t as ListTable } from \"../../../../chunks/ListTable.js\";\n//#region src/routes/views/[view]/+page.svelte\nfunction _page($$renderer, $$props) {\n\t$$renderer.component(($$renderer) => {\n\t\tlet { data } = $$props;\n\t\tListTable($$renderer, {\n\t\t\ttitle: data.view.label,\n\t\t\tqualifiedName: data.view.qualifiedName,\n\t\t\tcolumns: data.view.columns,\n\t\t\trows: data.list.rows,\n\t\t\ttotal: data.list.total,\n\t\t\tlistParams: data.listParams,\n\t\t\treadonly: true\n\t\t});\n\t});\n}\n//#endregion\nexport { _page as default };\n"],"names":[],"mappings":";;;;AAEA;AACA,SAAS,KAAK,CAAC,UAAU,EAAE,OAAO,EAAE;AACpC,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,UAAU,KAAK;AACtC,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,OAAO;AACxB,EAAE,SAAS,CAAC,UAAU,EAAE;AACxB,GAAG,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK;AACzB,GAAG,aAAa,EAAE,IAAI,CAAC,IAAI,CAAC,aAAa;AACzC,GAAG,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO;AAC7B,GAAG,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI;AACvB,GAAG,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK;AACzB,GAAG,UAAU,EAAE,IAAI,CAAC,UAAU;AAC9B,GAAG,QAAQ,EAAE;AACb,GAAG,CAAC;AACJ,CAAC,CAAC,CAAC;AACH;;;;"}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { q as escape_html, o as ensure_array_like, a7 as store_mutate, a6 as store_get, d as attr, ab as unsubscribe_stores } from './dev-yFiAtg5l.js';
|
|
2
|
-
import { s as superForm } from './zod-from-table-
|
|
2
|
+
import { s as superForm } from './zod-from-table-Cy0Gx9lc.js';
|
|
3
3
|
import { r as resolveWidget } from './widget-registry-CYJ6dCZP.js';
|
|
4
4
|
import 'clsx';
|
|
5
|
-
import './internal-
|
|
5
|
+
import './internal-BE2MZeJV.js';
|
|
6
6
|
import 'node:module';
|
|
7
7
|
import './index-DBqjc0Yf.js';
|
|
8
|
-
import './client-
|
|
8
|
+
import './client-C1WmpErn.js';
|
|
9
9
|
import './app-DST8OmzT.js';
|
|
10
10
|
import './index-5kYmxIr9.js';
|
|
11
11
|
import 'zod/v4/core';
|
|
@@ -67,4 +67,4 @@ function _page($$renderer, $$props) {
|
|
|
67
67
|
}
|
|
68
68
|
|
|
69
69
|
export { _page as default };
|
|
70
|
-
//# sourceMappingURL=_page.svelte-
|
|
70
|
+
//# sourceMappingURL=_page.svelte-Cb1PRFXV.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"_page.svelte-
|
|
1
|
+
{"version":3,"file":"_page.svelte-Cb1PRFXV.js","sources":["../../../.svelte-kit/adapter-node/entries/pages/tables/_table_/new/_page.svelte.js"],"sourcesContent":["import { H as escape_html, V as attr, c as unsubscribe_stores, i as ensure_array_like, o as store_get, s as store_mutate } from \"../../../../../chunks/dev.js\";\nimport { r as superForm } from \"../../../../../chunks/dist.js\";\nimport { t as resolveWidget } from \"../../../../../chunks/widget-registry.js\";\n//#region src/routes/tables/[table]/new/+page.svelte\nfunction _page($$renderer, $$props) {\n\t$$renderer.component(($$renderer) => {\n\t\tvar $$store_subs;\n\t\tlet { data } = $$props;\n\t\tconst { form, errors, enhance, submitting } = superForm(data.form, { dataType: \"json\" });\n\t\tlet $$settled = true;\n\t\tlet $$inner_renderer;\n\t\tfunction $$render_inner($$renderer) {\n\t\t\t$$renderer.push(`<h1 class=\"mb-1 text-2xl font-semibold\">New ${escape_html(data.table.label)}</h1> <p class=\"mb-6 text-sm text-muted-foreground\">${escape_html(data.table.qualifiedName)}</p> <form method=\"POST\" class=\"space-y-4\"><!--[-->`);\n\t\t\tconst each_array = ensure_array_like(data.table.columns);\n\t\t\tfor (let $$index = 0, $$length = each_array.length; $$index < $$length; $$index++) {\n\t\t\t\tlet col = each_array[$$index];\n\t\t\t\tconst Widget = resolveWidget(col.widget);\n\t\t\t\t$$renderer.push(`<div>`);\n\t\t\t\tif (Widget) {\n\t\t\t\t\t$$renderer.push(\"<!--[-->\");\n\t\t\t\t\tWidget($$renderer, {\n\t\t\t\t\t\tname: col.name,\n\t\t\t\t\t\tlabel: col.label,\n\t\t\t\t\t\toptions: col.enumValues,\n\t\t\t\t\t\trequired: !col.nullable && !col.readonly && !col.isPrimaryKey,\n\t\t\t\t\t\treadonly: col.readonly,\n\t\t\t\t\t\tget value() {\n\t\t\t\t\t\t\treturn store_get($$store_subs ??= {}, \"$form\", form)[col.name];\n\t\t\t\t\t\t},\n\t\t\t\t\t\tset value($$value) {\n\t\t\t\t\t\t\tstore_mutate($$store_subs ??= {}, \"$form\", form, store_get($$store_subs ??= {}, \"$form\", form)[col.name] = $$value);\n\t\t\t\t\t\t\t$$settled = false;\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t\t$$renderer.push(\"<!--]-->\");\n\t\t\t\t} else {\n\t\t\t\t\t$$renderer.push(\"<!--[!-->\");\n\t\t\t\t\t$$renderer.push(\"<!--]-->\");\n\t\t\t\t}\n\t\t\t\t$$renderer.push(` `);\n\t\t\t\tif (store_get($$store_subs ??= {}, \"$errors\", errors)[col.name]) {\n\t\t\t\t\t$$renderer.push(\"<!--[0-->\");\n\t\t\t\t\t$$renderer.push(`<p class=\"mt-1 text-sm text-destructive\">${escape_html(store_get($$store_subs ??= {}, \"$errors\", errors)[col.name])}</p>`);\n\t\t\t\t} else $$renderer.push(\"<!--[-1-->\");\n\t\t\t\t$$renderer.push(`<!--]--></div>`);\n\t\t\t}\n\t\t\t$$renderer.push(`<!--]--> <div class=\"flex gap-3\"><button type=\"submit\"${attr(\"disabled\", store_get($$store_subs ??= {}, \"$submitting\", submitting), true)} class=\"rounded-md bg-primary px-4 py-2 text-sm font-medium text-primary-foreground disabled:opacity-50\">${escape_html(store_get($$store_subs ??= {}, \"$submitting\", submitting) ? \"Saving…\" : \"Save\")}</button> <a${attr(\"href\", `/tables/${data.table.qualifiedName}`)} class=\"rounded-md border border-border px-4 py-2 text-sm font-medium\">Cancel</a></div></form>`);\n\t\t}\n\t\tdo {\n\t\t\t$$settled = true;\n\t\t\t$$inner_renderer = $$renderer.copy();\n\t\t\t$$render_inner($$inner_renderer);\n\t\t} while (!$$settled);\n\t\t$$renderer.subsume($$inner_renderer);\n\t\tif ($$store_subs) unsubscribe_stores($$store_subs);\n\t});\n}\n//#endregion\nexport { _page as default };\n"],"names":[],"mappings":"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"}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { q as escape_html, o as ensure_array_like, a7 as store_mutate, a6 as store_get, d as attr, ab as unsubscribe_stores } from './dev-yFiAtg5l.js';
|
|
2
|
-
import { s as superForm } from './zod-from-table-
|
|
2
|
+
import { s as superForm } from './zod-from-table-Cy0Gx9lc.js';
|
|
3
3
|
import { r as resolveWidget } from './widget-registry-CYJ6dCZP.js';
|
|
4
4
|
import 'clsx';
|
|
5
|
-
import './internal-
|
|
5
|
+
import './internal-BE2MZeJV.js';
|
|
6
6
|
import 'node:module';
|
|
7
7
|
import './index-DBqjc0Yf.js';
|
|
8
|
-
import './client-
|
|
8
|
+
import './client-C1WmpErn.js';
|
|
9
9
|
import './app-DST8OmzT.js';
|
|
10
10
|
import './index-5kYmxIr9.js';
|
|
11
11
|
import 'zod/v4/core';
|
|
@@ -67,4 +67,4 @@ function _page($$renderer, $$props) {
|
|
|
67
67
|
}
|
|
68
68
|
|
|
69
69
|
export { _page as default };
|
|
70
|
-
//# sourceMappingURL=_page.svelte-
|
|
70
|
+
//# sourceMappingURL=_page.svelte-DZ1za0Cu.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"_page.svelte-
|
|
1
|
+
{"version":3,"file":"_page.svelte-DZ1za0Cu.js","sources":["../../../.svelte-kit/adapter-node/entries/pages/tables/_table_/_id_/edit/_page.svelte.js"],"sourcesContent":["import { H as escape_html, V as attr, c as unsubscribe_stores, i as ensure_array_like, o as store_get, s as store_mutate } from \"../../../../../../chunks/dev.js\";\nimport { r as superForm } from \"../../../../../../chunks/dist.js\";\nimport { t as resolveWidget } from \"../../../../../../chunks/widget-registry.js\";\n//#region src/routes/tables/[table]/[id]/edit/+page.svelte\nfunction _page($$renderer, $$props) {\n\t$$renderer.component(($$renderer) => {\n\t\tvar $$store_subs;\n\t\tlet { data } = $$props;\n\t\tconst { form, errors, enhance, submitting } = superForm(data.form, { dataType: \"json\" });\n\t\tlet $$settled = true;\n\t\tlet $$inner_renderer;\n\t\tfunction $$render_inner($$renderer) {\n\t\t\t$$renderer.push(`<h1 class=\"mb-1 text-2xl font-semibold\">Edit ${escape_html(data.table.label)}</h1> <p class=\"mb-6 text-sm text-muted-foreground\">${escape_html(data.table.qualifiedName)} / ${escape_html(data.id)}</p> <form method=\"POST\" class=\"space-y-4\"><!--[-->`);\n\t\t\tconst each_array = ensure_array_like(data.table.columns);\n\t\t\tfor (let $$index = 0, $$length = each_array.length; $$index < $$length; $$index++) {\n\t\t\t\tlet col = each_array[$$index];\n\t\t\t\tconst Widget = resolveWidget(col.widget);\n\t\t\t\t$$renderer.push(`<div>`);\n\t\t\t\tif (Widget) {\n\t\t\t\t\t$$renderer.push(\"<!--[-->\");\n\t\t\t\t\tWidget($$renderer, {\n\t\t\t\t\t\tname: col.name,\n\t\t\t\t\t\tlabel: col.label,\n\t\t\t\t\t\toptions: col.enumValues,\n\t\t\t\t\t\trequired: !col.nullable && !col.readonly && !col.isPrimaryKey,\n\t\t\t\t\t\treadonly: col.readonly,\n\t\t\t\t\t\tget value() {\n\t\t\t\t\t\t\treturn store_get($$store_subs ??= {}, \"$form\", form)[col.name];\n\t\t\t\t\t\t},\n\t\t\t\t\t\tset value($$value) {\n\t\t\t\t\t\t\tstore_mutate($$store_subs ??= {}, \"$form\", form, store_get($$store_subs ??= {}, \"$form\", form)[col.name] = $$value);\n\t\t\t\t\t\t\t$$settled = false;\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t\t$$renderer.push(\"<!--]-->\");\n\t\t\t\t} else {\n\t\t\t\t\t$$renderer.push(\"<!--[!-->\");\n\t\t\t\t\t$$renderer.push(\"<!--]-->\");\n\t\t\t\t}\n\t\t\t\t$$renderer.push(` `);\n\t\t\t\tif (store_get($$store_subs ??= {}, \"$errors\", errors)[col.name]) {\n\t\t\t\t\t$$renderer.push(\"<!--[0-->\");\n\t\t\t\t\t$$renderer.push(`<p class=\"mt-1 text-sm text-destructive\">${escape_html(store_get($$store_subs ??= {}, \"$errors\", errors)[col.name])}</p>`);\n\t\t\t\t} else $$renderer.push(\"<!--[-1-->\");\n\t\t\t\t$$renderer.push(`<!--]--></div>`);\n\t\t\t}\n\t\t\t$$renderer.push(`<!--]--> <div class=\"flex gap-3\"><button type=\"submit\"${attr(\"disabled\", store_get($$store_subs ??= {}, \"$submitting\", submitting), true)} class=\"rounded-md bg-primary px-4 py-2 text-sm font-medium text-primary-foreground disabled:opacity-50\">${escape_html(store_get($$store_subs ??= {}, \"$submitting\", submitting) ? \"Saving…\" : \"Save\")}</button> <a${attr(\"href\", `/tables/${data.table.qualifiedName}/${data.id}`)} class=\"rounded-md border border-border px-4 py-2 text-sm font-medium\">Cancel</a></div></form>`);\n\t\t}\n\t\tdo {\n\t\t\t$$settled = true;\n\t\t\t$$inner_renderer = $$renderer.copy();\n\t\t\t$$render_inner($$inner_renderer);\n\t\t} while (!$$settled);\n\t\t$$renderer.subsume($$inner_renderer);\n\t\tif ($$store_subs) unsubscribe_stores($$store_subs);\n\t});\n}\n//#endregion\nexport { _page as default };\n"],"names":[],"mappings":";;;;;;;;;;;;;AAGA;AACA,SAAS,KAAK,CAAC,UAAU,EAAE,OAAO,EAAE;AACpC,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,UAAU,KAAK;AACtC,EAAE,IAAI,YAAY;AAClB,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,OAAO;AACxB,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAW,UAAU,EAAE,GAAG,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC;AAC1F,EAAE,IAAI,SAAS,GAAG,IAAI;AACtB,EAAE,IAAI,gBAAgB;AACtB,EAAE,SAAS,cAAc,CAAC,UAAU,EAAE;AACtC,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,6CAA6C,EAAE,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,oDAAoD,EAAE,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,GAAG,EAAE,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,mDAAmD,CAAC,CAAC;AAC5Q,GAAG,MAAM,UAAU,GAAG,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC;AAC3D,GAAG,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,QAAQ,GAAG,UAAU,CAAC,MAAM,EAAE,OAAO,GAAG,QAAQ,EAAE,OAAO,EAAE,EAAE;AACtF,IAAI,IAAI,GAAG,GAAG,UAAU,CAAC,OAAO,CAAC;AACjC,IAAI,MAAM,MAAM,GAAG,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC;AAC5C,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC;AAC5B,IAAI,IAAI,MAAM,EAAE;AAChB,KAAK,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC;AAChC,KAAK,MAAM,CAAC,UAAU,EAAE;AACxB,MAAM,IAAI,EAAE,GAAG,CAAC,IAAI;AACpB,MAAM,KAAK,EAAE,GAAG,CAAC,KAAK;AACtB,MAAM,OAAO,EAAE,GAAG,CAAC,UAAU;AAC7B,MAAM,QAAQ,EAAE,CAAC,GAAG,CAAC,QAAQ,IAAI,CAAC,GAAG,CAAC,QAAQ,IAAI,CAAC,GAAG,CAAC,YAAY;AACnE,MAAM,QAAQ,EAAE,GAAG,CAAC,QAAQ;AAC5B,MAAM,IAAI,KAAK,GAAG;AAClB,OAAO,OAAO,SAAS,CAAC,YAAY,KAAK,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC;AACrE,MAAM,CAAC;AACP,MAAM,IAAI,KAAK,CAAC,OAAO,EAAE;AACzB,OAAO,YAAY,CAAC,YAAY,KAAK,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,CAAC,YAAY,KAAK,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC;AAC1H,OAAO,SAAS,GAAG,KAAK;AACxB,MAAM;AACN,MAAM,CAAC;AACP,KAAK,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC;AAChC,IAAI,CAAC,MAAM;AACX,KAAK,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC;AACjC,KAAK,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC;AAChC,IAAI;AACJ,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;AACxB,IAAI,IAAI,SAAS,CAAC,YAAY,KAAK,EAAE,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;AACrE,KAAK,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC;AACjC,KAAK,UAAU,CAAC,IAAI,CAAC,CAAC,yCAAyC,EAAE,WAAW,CAAC,SAAS,CAAC,YAAY,KAAK,EAAE,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AAChJ,IAAI,CAAC,MAAM,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC;AACxC,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC,cAAc,CAAC,CAAC;AACrC,GAAG;AACH,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,sDAAsD,EAAE,IAAI,CAAC,UAAU,EAAE,SAAS,CAAC,YAAY,KAAK,EAAE,EAAE,aAAa,EAAE,UAAU,CAAC,EAAE,IAAI,CAAC,CAAC,yGAAyG,EAAE,WAAW,CAAC,SAAS,CAAC,YAAY,KAAK,EAAE,EAAE,aAAa,EAAE,UAAU,CAAC,GAAG,SAAS,GAAG,MAAM,CAAC,CAAC,YAAY,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,8FAA8F,CAAC,CAAC;AAClhB,EAAE;AACF,EAAE,GAAG;AACL,GAAG,SAAS,GAAG,IAAI;AACnB,GAAG,gBAAgB,GAAG,UAAU,CAAC,IAAI,EAAE;AACvC,GAAG,cAAc,CAAC,gBAAgB,CAAC;AACnC,EAAE,CAAC,QAAQ,CAAC,SAAS;AACrB,EAAE,UAAU,CAAC,OAAO,CAAC,gBAAgB,CAAC;AACtC,EAAE,IAAI,YAAY,EAAE,kBAAkB,CAAC,YAAY,CAAC;AACpD,CAAC,CAAC,CAAC;AACH;;;;"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { q as escape_html, o as ensure_array_like, d as attr } from './dev-yFiAtg5l.js';
|
|
2
|
-
import './internal-
|
|
3
|
-
import './client-
|
|
2
|
+
import './internal-BE2MZeJV.js';
|
|
3
|
+
import './client-C1WmpErn.js';
|
|
4
4
|
import 'clsx';
|
|
5
5
|
import 'node:module';
|
|
6
6
|
import './index-DBqjc0Yf.js';
|
|
@@ -83,4 +83,4 @@ function _page($$renderer, $$props) {
|
|
|
83
83
|
}
|
|
84
84
|
|
|
85
85
|
export { _page as default };
|
|
86
|
-
//# sourceMappingURL=_page.svelte-
|
|
86
|
+
//# sourceMappingURL=_page.svelte-HcBHNRCj.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"_page.svelte-
|
|
1
|
+
{"version":3,"file":"_page.svelte-HcBHNRCj.js","sources":["../../../.svelte-kit/adapter-node/entries/pages/tables/_table_/_id_/_page.svelte.js"],"sourcesContent":["import { H as escape_html, V as attr, i as ensure_array_like } from \"../../../../../chunks/dev.js\";\nimport \"../../../../../chunks/forms.js\";\n//#region src/lib/detail/format-cell.ts\nfunction formatCellValue(input) {\n\tconst { value, widget } = input;\n\tif (value === null || value === void 0) return \"\";\n\tswitch (widget) {\n\t\tcase \"boolean\": return value ? \"Yes\" : \"No\";\n\t\tcase \"date\": return formatDate(value);\n\t\tcase \"datetime\": return formatDateTime(value);\n\t\tcase \"json\":\n\t\t\tif (typeof value === \"object\") try {\n\t\t\t\treturn JSON.stringify(value, null, 2);\n\t\t\t} catch {\n\t\t\t\treturn String(value);\n\t\t\t}\n\t\t\treturn String(value);\n\t\tdefault:\n\t\t\tif (typeof value === \"object\") try {\n\t\t\t\treturn JSON.stringify(value);\n\t\t\t} catch {\n\t\t\t\treturn String(value);\n\t\t\t}\n\t\t\treturn String(value);\n\t}\n}\nfunction formatDate(value) {\n\tconst d = new Date(value);\n\tif (Number.isNaN(d.getTime())) return String(value);\n\treturn d.toISOString().slice(0, 10);\n}\nfunction formatDateTime(value) {\n\tconst d = new Date(value);\n\tif (Number.isNaN(d.getTime())) return String(value);\n\treturn d.toISOString().replace(\"T\", \" \").slice(0, 19);\n}\n//#endregion\n//#region src/routes/tables/[table]/[id]/+page.svelte\nfunction _page($$renderer, $$props) {\n\t$$renderer.component(($$renderer) => {\n\t\tlet { data } = $$props;\n\t\t$$renderer.push(`<h1 class=\"mb-1 text-2xl font-semibold\">${escape_html(data.table.label)}</h1> <p class=\"mb-6 text-sm text-muted-foreground\">${escape_html(data.table.qualifiedName)} / ${escape_html(data.id)}</p> <dl class=\"space-y-4\"><!--[-->`);\n\t\tconst each_array = ensure_array_like(data.table.columns);\n\t\tfor (let $$index = 0, $$length = each_array.length; $$index < $$length; $$index++) {\n\t\t\tlet col = each_array[$$index];\n\t\t\tconst rawValue = data.row[col.name];\n\t\t\tconst fkLabel = data.fkLabels[col.name];\n\t\t\t$$renderer.push(`<div><dt class=\"text-sm font-medium text-muted-foreground\">${escape_html(col.label)}</dt> <dd class=\"mt-1 text-sm\">`);\n\t\t\tif (col.widget === \"json\") {\n\t\t\t\t$$renderer.push(\"<!--[0-->\");\n\t\t\t\t$$renderer.push(`<pre class=\"overflow-x-auto rounded-md bg-muted p-2 font-mono text-xs\">${escape_html(formatCellValue({\n\t\t\t\t\tvalue: rawValue,\n\t\t\t\t\twidget: col.widget\n\t\t\t\t}))}</pre>`);\n\t\t\t} else if (col.widget === \"image-url\" && rawValue) {\n\t\t\t\t$$renderer.push(\"<!--[1-->\");\n\t\t\t\t$$renderer.push(`<img${attr(\"src\", String(rawValue))}${attr(\"alt\", col.label)} class=\"max-h-48 rounded-md border border-border object-contain\" loading=\"lazy\"/>`);\n\t\t\t} else if (rawValue === null || rawValue === void 0) {\n\t\t\t\t$$renderer.push(\"<!--[2-->\");\n\t\t\t\t$$renderer.push(`<span class=\"text-muted-foreground\">—</span>`);\n\t\t\t} else if (fkLabel !== void 0 && fkLabel.label !== null) {\n\t\t\t\t$$renderer.push(\"<!--[3-->\");\n\t\t\t\t$$renderer.push(`<a${attr(\"href\", `/tables/${fkLabel.referencedQualifiedName}/${fkLabel.value}`)} class=\"text-primary underline\">${escape_html(fkLabel.label)}</a> <span class=\"ml-1 text-xs text-muted-foreground\">(${escape_html(formatCellValue({\n\t\t\t\t\tvalue: rawValue,\n\t\t\t\t\twidget: col.widget\n\t\t\t\t}))})</span>`);\n\t\t\t} else {\n\t\t\t\t$$renderer.push(\"<!--[-1-->\");\n\t\t\t\t$$renderer.push(`${escape_html(formatCellValue({\n\t\t\t\t\tvalue: rawValue,\n\t\t\t\t\twidget: col.widget\n\t\t\t\t}))}`);\n\t\t\t}\n\t\t\t$$renderer.push(`<!--]--></dd></div>`);\n\t\t}\n\t\t$$renderer.push(`<!--]--></dl> <div class=\"mt-8 flex flex-wrap gap-3\"><a${attr(\"href\", `/tables/${data.table.qualifiedName}/${data.id}/edit`)} class=\"rounded-md bg-primary px-4 py-2 text-sm font-medium text-primary-foreground\">Edit</a> <form method=\"POST\" action=\"?/delete\"><button type=\"submit\" class=\"rounded-md border border-destructive px-4 py-2 text-sm font-medium text-destructive\">Delete</button></form> <a${attr(\"href\", `/tables/${data.table.qualifiedName}`)} class=\"rounded-md border border-border px-4 py-2 text-sm font-medium\">Back</a></div>`);\n\t});\n}\n//#endregion\nexport { _page as default };\n"],"names":[],"mappings":"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"}
|
|
@@ -15,11 +15,11 @@ var AdapterError = class extends Error {
|
|
|
15
15
|
};
|
|
16
16
|
//#endregion
|
|
17
17
|
//#region src/lib/adapter/postgrest.ts
|
|
18
|
-
var DEFAULT_PAGE_SIZE = 50;
|
|
18
|
+
var DEFAULT_PAGE_SIZE$1 = 50;
|
|
19
19
|
var DEFAULT_SCHEMA = "public";
|
|
20
20
|
var DEFAULT_PRIMARY_KEY = "id";
|
|
21
|
-
var DEFAULT_RELATION_LIMIT = 20;
|
|
22
|
-
var OR_FILTER_KEY = "__or";
|
|
21
|
+
var DEFAULT_RELATION_LIMIT$1 = 20;
|
|
22
|
+
var OR_FILTER_KEY$1 = "__or";
|
|
23
23
|
var PostgrestAdapterError = class extends AdapterError {
|
|
24
24
|
constructor(init) {
|
|
25
25
|
super(init);
|
|
@@ -35,11 +35,11 @@ var PostgrestDataAdapter = class {
|
|
|
35
35
|
defaultPageSize;
|
|
36
36
|
constructor(opts) {
|
|
37
37
|
if (typeof opts.baseUrl !== "string" || opts.baseUrl.length === 0) throw adapterConfigError("PostgrestDataAdapter: `baseUrl` is required.");
|
|
38
|
-
this.baseUrl = stripTrailingSlash(opts.baseUrl);
|
|
38
|
+
this.baseUrl = stripTrailingSlash$1(opts.baseUrl);
|
|
39
39
|
this.defaultSchema = opts.defaultSchema ?? DEFAULT_SCHEMA;
|
|
40
40
|
this.resolvePrimaryKey = makePrimaryKeyResolver(opts.primaryKey);
|
|
41
41
|
this.staticHeaders = { ...opts.headers ?? {} };
|
|
42
|
-
this.defaultPageSize = opts.defaultPageSize ?? DEFAULT_PAGE_SIZE;
|
|
42
|
+
this.defaultPageSize = opts.defaultPageSize ?? DEFAULT_PAGE_SIZE$1;
|
|
43
43
|
const resolvedFetch = opts.fetch ?? globalThis.fetch;
|
|
44
44
|
if (typeof resolvedFetch !== "function") throw adapterConfigError("PostgrestDataAdapter: a `fetch` implementation is required (none injected, none on globalThis).");
|
|
45
45
|
this.fetchImpl = resolvedFetch;
|
|
@@ -50,7 +50,7 @@ var PostgrestDataAdapter = class {
|
|
|
50
50
|
const page = params.page ?? 1;
|
|
51
51
|
const offset = (page - 1) * pageSize;
|
|
52
52
|
const query = new URLSearchParams();
|
|
53
|
-
appendFilters(query, params.filters);
|
|
53
|
+
appendFilters$1(query, params.filters);
|
|
54
54
|
appendOrder(query, params.sort);
|
|
55
55
|
query.set("limit", String(pageSize));
|
|
56
56
|
query.set("offset", String(offset));
|
|
@@ -62,8 +62,8 @@ var PostgrestDataAdapter = class {
|
|
|
62
62
|
};
|
|
63
63
|
addProfileHeader(headers, schema, this.defaultSchema, "read");
|
|
64
64
|
const response = await this.send("GET", url, headers, void 0);
|
|
65
|
-
await assertOk(response, url);
|
|
66
|
-
const rows = await readJson(response, url);
|
|
65
|
+
await assertOk$1(response, url);
|
|
66
|
+
const rows = await readJson$1(response, url);
|
|
67
67
|
return {
|
|
68
68
|
rows,
|
|
69
69
|
total: parseContentRangeTotal(response.headers.get("content-range"), rows.length),
|
|
@@ -84,16 +84,16 @@ var PostgrestDataAdapter = class {
|
|
|
84
84
|
};
|
|
85
85
|
addProfileHeader(headers, schema, this.defaultSchema, "read");
|
|
86
86
|
const response = await this.send("GET", url, headers, void 0);
|
|
87
|
-
await assertOk(response, url);
|
|
88
|
-
return await readJson(response, url);
|
|
87
|
+
await assertOk$1(response, url);
|
|
88
|
+
return await readJson$1(response, url);
|
|
89
89
|
}
|
|
90
90
|
async create(resource, data) {
|
|
91
91
|
const { schema, table } = splitResource(resource, this.defaultSchema);
|
|
92
92
|
const url = `${this.baseUrl}/${encodeURIComponent(table)}`;
|
|
93
93
|
const headers = this.mutationHeaders(schema);
|
|
94
94
|
const response = await this.send("POST", url, headers, JSON.stringify(data));
|
|
95
|
-
await assertOk(response, url);
|
|
96
|
-
return await readJson(response, url);
|
|
95
|
+
await assertOk$1(response, url);
|
|
96
|
+
return await readJson$1(response, url);
|
|
97
97
|
}
|
|
98
98
|
async update(resource, id, data) {
|
|
99
99
|
const { schema, table } = splitResource(resource, this.defaultSchema);
|
|
@@ -103,8 +103,8 @@ var PostgrestDataAdapter = class {
|
|
|
103
103
|
const url = `${this.baseUrl}/${encodeURIComponent(table)}?${query.toString()}`;
|
|
104
104
|
const headers = this.mutationHeaders(schema);
|
|
105
105
|
const response = await this.send("PATCH", url, headers, JSON.stringify(data));
|
|
106
|
-
await assertOk(response, url);
|
|
107
|
-
return await readJson(response, url);
|
|
106
|
+
await assertOk$1(response, url);
|
|
107
|
+
return await readJson$1(response, url);
|
|
108
108
|
}
|
|
109
109
|
async delete(resource, id) {
|
|
110
110
|
const { schema, table } = splitResource(resource, this.defaultSchema);
|
|
@@ -114,12 +114,12 @@ var PostgrestDataAdapter = class {
|
|
|
114
114
|
const url = `${this.baseUrl}/${encodeURIComponent(table)}?${query.toString()}`;
|
|
115
115
|
const headers = { ...this.staticHeaders };
|
|
116
116
|
addProfileHeader(headers, schema, this.defaultSchema, "write");
|
|
117
|
-
await assertOk(await this.send("DELETE", url, headers, void 0), url);
|
|
117
|
+
await assertOk$1(await this.send("DELETE", url, headers, void 0), url);
|
|
118
118
|
}
|
|
119
119
|
async searchRelation(resource, params) {
|
|
120
120
|
const { schema, table } = splitResource(resource, this.defaultSchema);
|
|
121
121
|
const primaryKey = this.resolvePrimaryKey(resource);
|
|
122
|
-
const limit = params.limit ?? DEFAULT_RELATION_LIMIT;
|
|
122
|
+
const limit = params.limit ?? DEFAULT_RELATION_LIMIT$1;
|
|
123
123
|
const query = new URLSearchParams();
|
|
124
124
|
query.set("select", `${primaryKey},${params.labelField}`);
|
|
125
125
|
if (params.query.length > 0 && params.searchFields.length > 0) {
|
|
@@ -134,8 +134,8 @@ var PostgrestDataAdapter = class {
|
|
|
134
134
|
};
|
|
135
135
|
addProfileHeader(headers, schema, this.defaultSchema, "read");
|
|
136
136
|
const response = await this.send("GET", url, headers, void 0);
|
|
137
|
-
await assertOk(response, url);
|
|
138
|
-
return (await readJson(response, url)).map((row) => ({
|
|
137
|
+
await assertOk$1(response, url);
|
|
138
|
+
return (await readJson$1(response, url)).map((row) => ({
|
|
139
139
|
id: row[primaryKey],
|
|
140
140
|
label: String(row[params.labelField] ?? "")
|
|
141
141
|
}));
|
|
@@ -168,7 +168,7 @@ var PostgrestDataAdapter = class {
|
|
|
168
168
|
}
|
|
169
169
|
}
|
|
170
170
|
};
|
|
171
|
-
function stripTrailingSlash(url) {
|
|
171
|
+
function stripTrailingSlash$1(url) {
|
|
172
172
|
return url.endsWith("/") ? url.slice(0, -1) : url;
|
|
173
173
|
}
|
|
174
174
|
function makePrimaryKeyResolver(pk) {
|
|
@@ -187,11 +187,11 @@ function splitResource(resource, defaultSchema) {
|
|
|
187
187
|
table: resource.slice(idx + 1)
|
|
188
188
|
};
|
|
189
189
|
}
|
|
190
|
-
function appendFilters(query, filters) {
|
|
190
|
+
function appendFilters$1(query, filters) {
|
|
191
191
|
if (!filters) return;
|
|
192
192
|
for (const [key, value] of Object.entries(filters)) {
|
|
193
193
|
if (value === void 0) continue;
|
|
194
|
-
if (key === OR_FILTER_KEY) {
|
|
194
|
+
if (key === OR_FILTER_KEY$1) {
|
|
195
195
|
query.set("or", `(${serializeOrExpression(value)})`);
|
|
196
196
|
continue;
|
|
197
197
|
}
|
|
@@ -222,7 +222,7 @@ function parseContentRangeTotal(header, fallback) {
|
|
|
222
222
|
if (!match) return fallback;
|
|
223
223
|
return Number(match[1]);
|
|
224
224
|
}
|
|
225
|
-
async function readJson(response, url) {
|
|
225
|
+
async function readJson$1(response, url) {
|
|
226
226
|
try {
|
|
227
227
|
return await response.json();
|
|
228
228
|
} catch (cause) {
|
|
@@ -235,7 +235,7 @@ async function readJson(response, url) {
|
|
|
235
235
|
});
|
|
236
236
|
}
|
|
237
237
|
}
|
|
238
|
-
async function assertOk(response, url) {
|
|
238
|
+
async function assertOk$1(response, url) {
|
|
239
239
|
if (response.ok) return;
|
|
240
240
|
let body = null;
|
|
241
241
|
try {
|
|
@@ -261,13 +261,189 @@ function adapterConfigError(message) {
|
|
|
261
261
|
});
|
|
262
262
|
}
|
|
263
263
|
//#endregion
|
|
264
|
+
//#region src/lib/adapter/kozou-api.ts
|
|
265
|
+
var DEFAULT_PAGE_SIZE = 50;
|
|
266
|
+
var DEFAULT_RELATION_LIMIT = 20;
|
|
267
|
+
var OR_FILTER_KEY = "__or";
|
|
268
|
+
var KozouApiAdapterError = class extends AdapterError {
|
|
269
|
+
constructor(init) {
|
|
270
|
+
super(init);
|
|
271
|
+
this.name = "KozouApiAdapterError";
|
|
272
|
+
}
|
|
273
|
+
};
|
|
274
|
+
var KozouApiDataAdapter = class {
|
|
275
|
+
baseUrl;
|
|
276
|
+
staticHeaders;
|
|
277
|
+
fetchImpl;
|
|
278
|
+
defaultPageSize;
|
|
279
|
+
constructor(opts) {
|
|
280
|
+
if (typeof opts.baseUrl !== "string" || opts.baseUrl.length === 0) throw configError("KozouApiDataAdapter: `baseUrl` is required.");
|
|
281
|
+
this.baseUrl = stripTrailingSlash(opts.baseUrl);
|
|
282
|
+
this.staticHeaders = { ...opts.headers ?? {} };
|
|
283
|
+
this.defaultPageSize = opts.defaultPageSize ?? DEFAULT_PAGE_SIZE;
|
|
284
|
+
const resolvedFetch = opts.fetch ?? globalThis.fetch;
|
|
285
|
+
if (typeof resolvedFetch !== "function") throw configError("KozouApiDataAdapter: a `fetch` implementation is required (none injected, none on globalThis).");
|
|
286
|
+
this.fetchImpl = resolvedFetch;
|
|
287
|
+
}
|
|
288
|
+
async list(resource, params) {
|
|
289
|
+
const page = params.page ?? 1;
|
|
290
|
+
const pageSize = params.pageSize ?? this.defaultPageSize;
|
|
291
|
+
const query = new URLSearchParams();
|
|
292
|
+
query.set("page", String(page));
|
|
293
|
+
query.set("pageSize", String(pageSize));
|
|
294
|
+
appendSort(query, params.sort);
|
|
295
|
+
if (params.search !== void 0 && params.search.length > 0) query.set("search", params.search);
|
|
296
|
+
appendFilters(query, params.filters);
|
|
297
|
+
const url = `${this.baseUrl}/${encodeResource(resource)}?${query.toString()}`;
|
|
298
|
+
const body = await this.getJson(url);
|
|
299
|
+
return {
|
|
300
|
+
rows: Array.isArray(body.rows) ? body.rows : [],
|
|
301
|
+
total: typeof body.total === "number" ? body.total : body.rows?.length ?? 0,
|
|
302
|
+
page: typeof body.page === "number" ? body.page : page,
|
|
303
|
+
pageSize: typeof body.pageSize === "number" ? body.pageSize : pageSize
|
|
304
|
+
};
|
|
305
|
+
}
|
|
306
|
+
async get(resource, id) {
|
|
307
|
+
const url = this.itemUrl(resource, id);
|
|
308
|
+
return await this.getJson(url);
|
|
309
|
+
}
|
|
310
|
+
async create(resource, data) {
|
|
311
|
+
const url = `${this.baseUrl}/${encodeResource(resource)}`;
|
|
312
|
+
return await this.sendJson("POST", url, data);
|
|
313
|
+
}
|
|
314
|
+
async update(resource, id, data) {
|
|
315
|
+
return await this.sendJson("PATCH", this.itemUrl(resource, id), data);
|
|
316
|
+
}
|
|
317
|
+
async delete(resource, id) {
|
|
318
|
+
const url = this.itemUrl(resource, id);
|
|
319
|
+
const headers = {
|
|
320
|
+
...this.staticHeaders,
|
|
321
|
+
Accept: "application/json"
|
|
322
|
+
};
|
|
323
|
+
await assertOk(await this.send("DELETE", url, headers, void 0), url);
|
|
324
|
+
}
|
|
325
|
+
async searchRelation(resource, params) {
|
|
326
|
+
const query = new URLSearchParams();
|
|
327
|
+
query.set("as", "options");
|
|
328
|
+
query.set("label", params.labelField);
|
|
329
|
+
if (params.searchFields.length > 0) query.set("fields", params.searchFields.join(","));
|
|
330
|
+
if (params.query.length > 0) query.set("q", params.query);
|
|
331
|
+
query.set("limit", String(params.limit ?? DEFAULT_RELATION_LIMIT));
|
|
332
|
+
const url = `${this.baseUrl}/${encodeResource(resource)}?${query.toString()}`;
|
|
333
|
+
const body = await this.getJson(url);
|
|
334
|
+
return Array.isArray(body.options) ? body.options : [];
|
|
335
|
+
}
|
|
336
|
+
itemUrl(resource, id) {
|
|
337
|
+
return `${this.baseUrl}/${encodeResource(resource)}/${encodeURIComponent(String(id))}`;
|
|
338
|
+
}
|
|
339
|
+
async getJson(url) {
|
|
340
|
+
const headers = {
|
|
341
|
+
...this.staticHeaders,
|
|
342
|
+
Accept: "application/json"
|
|
343
|
+
};
|
|
344
|
+
const response = await this.send("GET", url, headers, void 0);
|
|
345
|
+
await assertOk(response, url);
|
|
346
|
+
return readJson(response, url);
|
|
347
|
+
}
|
|
348
|
+
async sendJson(method, url, data) {
|
|
349
|
+
const headers = {
|
|
350
|
+
...this.staticHeaders,
|
|
351
|
+
Accept: "application/json",
|
|
352
|
+
"Content-Type": "application/json"
|
|
353
|
+
};
|
|
354
|
+
const response = await this.send(method, url, headers, JSON.stringify(data));
|
|
355
|
+
await assertOk(response, url);
|
|
356
|
+
return readJson(response, url);
|
|
357
|
+
}
|
|
358
|
+
async send(method, url, headers, body) {
|
|
359
|
+
try {
|
|
360
|
+
return await this.fetchImpl(url, {
|
|
361
|
+
method,
|
|
362
|
+
headers,
|
|
363
|
+
body
|
|
364
|
+
});
|
|
365
|
+
} catch (cause) {
|
|
366
|
+
throw new KozouApiAdapterError({
|
|
367
|
+
message: `KozouApiDataAdapter: ${method} ${url} failed before reaching the server: ${cause.message}`,
|
|
368
|
+
status: 0,
|
|
369
|
+
url,
|
|
370
|
+
responseBody: null,
|
|
371
|
+
code: "network"
|
|
372
|
+
});
|
|
373
|
+
}
|
|
374
|
+
}
|
|
375
|
+
};
|
|
376
|
+
function stripTrailingSlash(url) {
|
|
377
|
+
return url.endsWith("/") ? url.slice(0, -1) : url;
|
|
378
|
+
}
|
|
379
|
+
function encodeResource(resource) {
|
|
380
|
+
return encodeURIComponent(resource);
|
|
381
|
+
}
|
|
382
|
+
function appendSort(query, sort) {
|
|
383
|
+
if (!sort || sort.length === 0) return;
|
|
384
|
+
query.set("sort", sort.map((s) => `${s.field}.${s.order}`).join(","));
|
|
385
|
+
}
|
|
386
|
+
function appendFilters(query, filters) {
|
|
387
|
+
if (!filters) return;
|
|
388
|
+
for (const [key, value] of Object.entries(filters)) {
|
|
389
|
+
if (value === void 0 || key === OR_FILTER_KEY) continue;
|
|
390
|
+
query.set(key, String(value));
|
|
391
|
+
}
|
|
392
|
+
}
|
|
393
|
+
async function readJson(response, url) {
|
|
394
|
+
try {
|
|
395
|
+
return await response.json();
|
|
396
|
+
} catch (cause) {
|
|
397
|
+
throw new KozouApiAdapterError({
|
|
398
|
+
message: `KozouApiDataAdapter: failed to parse JSON response from ${url}: ${cause.message}`,
|
|
399
|
+
status: response.status,
|
|
400
|
+
url,
|
|
401
|
+
responseBody: null,
|
|
402
|
+
code: "parse"
|
|
403
|
+
});
|
|
404
|
+
}
|
|
405
|
+
}
|
|
406
|
+
async function assertOk(response, url) {
|
|
407
|
+
if (response.ok) return;
|
|
408
|
+
let body = null;
|
|
409
|
+
try {
|
|
410
|
+
body = await response.text();
|
|
411
|
+
} catch {
|
|
412
|
+
body = null;
|
|
413
|
+
}
|
|
414
|
+
throw new KozouApiAdapterError({
|
|
415
|
+
message: `KozouApiDataAdapter: request to ${url} failed with status ${response.status}`,
|
|
416
|
+
status: response.status,
|
|
417
|
+
url,
|
|
418
|
+
responseBody: body,
|
|
419
|
+
code: "http"
|
|
420
|
+
});
|
|
421
|
+
}
|
|
422
|
+
function configError(message) {
|
|
423
|
+
return new KozouApiAdapterError({
|
|
424
|
+
message,
|
|
425
|
+
status: 0,
|
|
426
|
+
url: "",
|
|
427
|
+
responseBody: null,
|
|
428
|
+
code: "config"
|
|
429
|
+
});
|
|
430
|
+
}
|
|
431
|
+
//#endregion
|
|
264
432
|
//#region src/lib/server/adapter.ts
|
|
265
|
-
var
|
|
433
|
+
var DEFAULT_POSTGREST_URL = "http://localhost:3000";
|
|
434
|
+
var DEFAULT_API_URL = "http://localhost:3335";
|
|
266
435
|
var cached = null;
|
|
267
436
|
function getAdapter() {
|
|
268
|
-
if (cached === null)
|
|
437
|
+
if (cached === null) if ((process.env.KOZOU_ADAPTER_KIND ?? "postgrest") === "api") {
|
|
438
|
+
const baseUrl = process.env.KOZOU_ADAPTER_URL ?? DEFAULT_API_URL;
|
|
439
|
+
const token = process.env.KOZOU_ADAPTER_TOKEN;
|
|
440
|
+
cached = new KozouApiDataAdapter({
|
|
441
|
+
baseUrl,
|
|
442
|
+
headers: token !== void 0 && token.length > 0 ? { Authorization: `Bearer ${token}` } : void 0
|
|
443
|
+
});
|
|
444
|
+
} else cached = new PostgrestDataAdapter({ baseUrl: process.env.KOZOU_ADAPTER_URL ?? DEFAULT_POSTGREST_URL });
|
|
269
445
|
return cached;
|
|
270
446
|
}
|
|
271
447
|
|
|
272
448
|
export { getAdapter as g };
|
|
273
|
-
//# sourceMappingURL=adapter-
|
|
449
|
+
//# sourceMappingURL=adapter-BGid8Q1v.js.map
|