@kozou/svelte-ui 0.2.1 → 1.0.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/README.md +3 -5
- package/build/client/_app/immutable/chunks/BatBMP3E.js +4 -0
- package/build/client/_app/immutable/chunks/BatBMP3E.js.br +0 -0
- package/build/client/_app/immutable/chunks/BatBMP3E.js.gz +0 -0
- package/build/client/_app/immutable/chunks/{CLOztVuN.js → DhQvJhgX.js} +1 -1
- package/build/client/_app/immutable/chunks/DhQvJhgX.js.br +0 -0
- package/build/client/_app/immutable/chunks/DhQvJhgX.js.gz +0 -0
- package/build/client/_app/immutable/chunks/{CNJ9qNKc.js → Ds-FbTMg.js} +1 -1
- package/build/client/_app/immutable/chunks/Ds-FbTMg.js.br +0 -0
- package/build/client/_app/immutable/chunks/Ds-FbTMg.js.gz +0 -0
- package/build/client/_app/immutable/chunks/y9cSQmno.js +1 -0
- package/build/client/_app/immutable/chunks/y9cSQmno.js.br +0 -0
- package/build/client/_app/immutable/chunks/y9cSQmno.js.gz +0 -0
- package/build/client/_app/immutable/entry/{app.Bv8sjgxu.js → app.CZ136DH2.js} +2 -2
- package/build/client/_app/immutable/entry/app.CZ136DH2.js.br +0 -0
- package/build/client/_app/immutable/entry/app.CZ136DH2.js.gz +0 -0
- package/build/client/_app/immutable/entry/start.B2SCrcq3.js +1 -0
- package/build/client/_app/immutable/entry/start.B2SCrcq3.js.br +0 -0
- package/build/client/_app/immutable/entry/start.B2SCrcq3.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{1.B_iETXYV.js → 1.C6AP-LKV.js} +1 -1
- package/build/client/_app/immutable/nodes/1.C6AP-LKV.js.br +0 -0
- package/build/client/_app/immutable/nodes/1.C6AP-LKV.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{3.CL9ksnmY.js → 3.C2gCkFBC.js} +1 -1
- package/build/client/_app/immutable/nodes/3.C2gCkFBC.js.br +0 -0
- package/build/client/_app/immutable/nodes/3.C2gCkFBC.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{4.wRTS68Ip.js → 4.BT4cE3lU.js} +1 -1
- package/build/client/_app/immutable/nodes/4.BT4cE3lU.js.br +0 -0
- package/build/client/_app/immutable/nodes/4.BT4cE3lU.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{5.sOvoAy14.js → 5.q_Qsfmij.js} +1 -1
- package/build/client/_app/immutable/nodes/5.q_Qsfmij.js.br +0 -0
- package/build/client/_app/immutable/nodes/5.q_Qsfmij.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{6.QhxyVDh4.js → 6.Ca5RA2Y5.js} +1 -1
- package/build/client/_app/immutable/nodes/6.Ca5RA2Y5.js.br +0 -0
- package/build/client/_app/immutable/nodes/6.Ca5RA2Y5.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{7.zir-jrfl.js → 7.mp1zOZZv.js} +1 -1
- package/build/client/_app/immutable/nodes/7.mp1zOZZv.js.br +1 -0
- package/build/client/_app/immutable/nodes/7.mp1zOZZv.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/{1-BYbo_Ryk.js → 1-HR1yd0wU.js} +3 -3
- package/build/server/chunks/{1-BYbo_Ryk.js.map → 1-HR1yd0wU.js.map} +1 -1
- package/build/server/chunks/{3-C50aWcyD.js → 3-BfIWDc-d.js} +5 -5
- package/build/server/chunks/3-BfIWDc-d.js.map +1 -0
- package/build/server/chunks/{4-C8kXW-9J.js → 4-Dqn3l8BI.js} +11 -8
- package/build/server/chunks/4-Dqn3l8BI.js.map +1 -0
- package/build/server/chunks/{5-D-0L-X8y.js → 5-DA-bCkUw.js} +14 -11
- package/build/server/chunks/5-DA-bCkUw.js.map +1 -0
- package/build/server/chunks/{6-D-SbXeTH.js → 6-DEjxcpBy.js} +10 -11
- package/build/server/chunks/6-DEjxcpBy.js.map +1 -0
- package/build/server/chunks/{7-BAhFrC8Z.js → 7-BFDTBBBE.js} +5 -5
- package/build/server/chunks/7-BFDTBBBE.js.map +1 -0
- package/build/server/chunks/{ListTable-BxIw_RVF.js → ListTable-CkfkQNdN.js} +3 -7
- package/build/server/chunks/ListTable-CkfkQNdN.js.map +1 -0
- package/build/server/chunks/{_page.svelte-rW7yzEet.js → _page.svelte-CYEmRGgG.js} +4 -4
- package/build/server/chunks/{_page.svelte-rW7yzEet.js.map → _page.svelte-CYEmRGgG.js.map} +1 -1
- package/build/server/chunks/{_page.svelte-hNlfE_-R.js → _page.svelte-CyAlYQ7a.js} +3 -3
- package/build/server/chunks/{_page.svelte-hNlfE_-R.js.map → _page.svelte-CyAlYQ7a.js.map} +1 -1
- package/build/server/chunks/{_page.svelte-CUhqt56V.js → _page.svelte-Dabtpyl9.js} +3 -2
- package/build/server/chunks/{_page.svelte-CUhqt56V.js.map → _page.svelte-Dabtpyl9.js.map} +1 -1
- package/build/server/chunks/{_page.svelte-6neDahmr.js → _page.svelte-NvCEA5JB.js} +4 -4
- package/build/server/chunks/{_page.svelte-6neDahmr.js.map → _page.svelte-NvCEA5JB.js.map} +1 -1
- package/build/server/chunks/{_page.svelte-CRH5Ib1y.js → _page.svelte-j2Tqrjlb.js} +3 -2
- package/build/server/chunks/{_page.svelte-CRH5Ib1y.js.map → _page.svelte-j2Tqrjlb.js.map} +1 -1
- package/build/server/chunks/{adapter-BGid8Q1v.js → adapter-1jZYeJkL.js} +83 -12
- package/build/server/chunks/adapter-1jZYeJkL.js.map +1 -0
- package/build/server/chunks/{client-PK7K0DFj.js → client-B9o82f8t.js} +2 -2
- package/build/server/chunks/{client-PK7K0DFj.js.map → client-B9o82f8t.js.map} +1 -1
- package/build/server/chunks/{error.svelte-CKswtdNj.js → error.svelte-CCf63hYR.js} +3 -3
- package/build/server/chunks/{error.svelte-CKswtdNj.js.map → error.svelte-CCf63hYR.js.map} +1 -1
- package/build/server/chunks/{hooks.server-_7e7MfY9.js → hooks.server-gNQ4wkwm.js} +27 -18
- package/build/server/chunks/hooks.server-gNQ4wkwm.js.map +1 -0
- package/build/server/chunks/{internal-BERZdLJL.js → internal-CCj4Us-1.js} +3 -3
- package/build/server/chunks/{internal-BERZdLJL.js.map → internal-CCj4Us-1.js.map} +1 -1
- package/build/server/chunks/resource-id-PDcQeAnc.js +41 -0
- package/build/server/chunks/resource-id-PDcQeAnc.js.map +1 -0
- package/build/server/chunks/{zod-from-table-CCy3rZQi.js → zod-from-table-D-zpiAdX.js} +3 -3
- package/build/server/chunks/{zod-from-table-CCy3rZQi.js.map → zod-from-table-D-zpiAdX.js.map} +1 -1
- package/build/server/index.js +1 -1
- package/build/server/manifest.js +7 -7
- package/build/server/manifest.js.map +1 -1
- package/package.json +5 -5
- package/build/client/_app/immutable/chunks/CLOztVuN.js.br +0 -0
- package/build/client/_app/immutable/chunks/CLOztVuN.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CNJ9qNKc.js.br +0 -0
- package/build/client/_app/immutable/chunks/CNJ9qNKc.js.gz +0 -0
- package/build/client/_app/immutable/chunks/Cj8LiudX.js +0 -1
- 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/nlrTAAdT.js +0 -4
- package/build/client/_app/immutable/chunks/nlrTAAdT.js.br +0 -0
- package/build/client/_app/immutable/chunks/nlrTAAdT.js.gz +0 -0
- package/build/client/_app/immutable/entry/app.Bv8sjgxu.js.br +0 -0
- package/build/client/_app/immutable/entry/app.Bv8sjgxu.js.gz +0 -0
- package/build/client/_app/immutable/entry/start.mcTncYkV.js +0 -1
- package/build/client/_app/immutable/entry/start.mcTncYkV.js.br +0 -0
- package/build/client/_app/immutable/entry/start.mcTncYkV.js.gz +0 -0
- package/build/client/_app/immutable/nodes/1.B_iETXYV.js.br +0 -2
- package/build/client/_app/immutable/nodes/1.B_iETXYV.js.gz +0 -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.wRTS68Ip.js.br +0 -0
- package/build/client/_app/immutable/nodes/4.wRTS68Ip.js.gz +0 -0
- package/build/client/_app/immutable/nodes/5.sOvoAy14.js.br +0 -0
- package/build/client/_app/immutable/nodes/5.sOvoAy14.js.gz +0 -0
- package/build/client/_app/immutable/nodes/6.QhxyVDh4.js.br +0 -0
- package/build/client/_app/immutable/nodes/6.QhxyVDh4.js.gz +0 -0
- package/build/client/_app/immutable/nodes/7.zir-jrfl.js.br +0 -4
- package/build/client/_app/immutable/nodes/7.zir-jrfl.js.gz +0 -0
- package/build/server/chunks/3-C50aWcyD.js.map +0 -1
- package/build/server/chunks/4-C8kXW-9J.js.map +0 -1
- package/build/server/chunks/5-D-0L-X8y.js.map +0 -1
- package/build/server/chunks/6-D-SbXeTH.js.map +0 -1
- package/build/server/chunks/7-BAhFrC8Z.js.map +0 -1
- package/build/server/chunks/ListTable-BxIw_RVF.js.map +0 -1
- package/build/server/chunks/adapter-BGid8Q1v.js.map +0 -1
- package/build/server/chunks/hooks.server-_7e7MfY9.js.map +0 -1
|
@@ -1,12 +1,13 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
1
|
+
import { r as rowIdSegment } from './resource-id-PDcQeAnc.js';
|
|
2
|
+
import { g as getAdapter } from './adapter-1jZYeJkL.js';
|
|
3
|
+
import { a as superValidate, z as zod, c as zodFromTable, b as buildMutationPayload } from './zod-from-table-D-zpiAdX.js';
|
|
3
4
|
import { e as error, f as fail, r as redirect } from './index-5kYmxIr9.js';
|
|
4
|
-
import './internal-
|
|
5
|
+
import './internal-CCj4Us-1.js';
|
|
5
6
|
import 'node:module';
|
|
6
7
|
import './dev-yFiAtg5l.js';
|
|
7
8
|
import 'clsx';
|
|
8
9
|
import './index-DBqjc0Yf.js';
|
|
9
|
-
import './client-
|
|
10
|
+
import './client-B9o82f8t.js';
|
|
10
11
|
import './app-DST8OmzT.js';
|
|
11
12
|
import 'zod/v4/core';
|
|
12
13
|
import 'zod';
|
|
@@ -46,10 +47,8 @@ var actions = { default: async ({ request, params, locals }) => {
|
|
|
46
47
|
const form = await superValidate(request, zod(zodFromTable(table)));
|
|
47
48
|
if (!form.valid) return fail(400, { form });
|
|
48
49
|
const payload = buildMutationPayload(table, form.data);
|
|
49
|
-
const
|
|
50
|
-
|
|
51
|
-
const id = pkField !== void 0 && created[pkField] !== void 0 ? String(created[pkField]) : "";
|
|
52
|
-
throw redirect(303, id.length > 0 ? `/tables/${table.qualifiedName}/${id}` : `/tables/${table.qualifiedName}`);
|
|
50
|
+
const segment = rowIdSegment(await getAdapter(locals.schema).create(table.qualifiedName, payload), table.primaryKey);
|
|
51
|
+
throw redirect(303, segment !== null ? `/tables/${table.qualifiedName}/${segment}` : `/tables/${table.qualifiedName}`);
|
|
53
52
|
} };
|
|
54
53
|
|
|
55
54
|
var _page_server_ts = /*#__PURE__*/Object.freeze({
|
|
@@ -60,11 +59,11 @@ var _page_server_ts = /*#__PURE__*/Object.freeze({
|
|
|
60
59
|
|
|
61
60
|
const index = 6;
|
|
62
61
|
let component_cache;
|
|
63
|
-
const component = async () => component_cache ??= (await import('./_page.svelte-
|
|
62
|
+
const component = async () => component_cache ??= (await import('./_page.svelte-CYEmRGgG.js')).default;
|
|
64
63
|
const server_id = "src/routes/tables/[table]/new/+page.server.ts";
|
|
65
|
-
const imports = ["_app/immutable/nodes/6.
|
|
64
|
+
const imports = ["_app/immutable/nodes/6.Ca5RA2Y5.js","_app/immutable/chunks/1PNfJiP5.js","_app/immutable/chunks/DhQvJhgX.js","_app/immutable/chunks/BatBMP3E.js","_app/immutable/chunks/Ds-FbTMg.js","_app/immutable/chunks/xihTtKlq.js"];
|
|
66
65
|
const stylesheets = [];
|
|
67
66
|
const fonts = [];
|
|
68
67
|
|
|
69
68
|
export { component, fonts, imports, index, _page_server_ts as server, server_id, stylesheets };
|
|
70
|
-
//# sourceMappingURL=6-
|
|
69
|
+
//# sourceMappingURL=6-DEjxcpBy.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"6-DEjxcpBy.js","sources":["../../../.svelte-kit/adapter-node/entries/pages/tables/_table_/new/_page.server.ts.js","../../../.svelte-kit/adapter-node/nodes/6.js"],"sourcesContent":["import { r as rowIdSegment } from \"../../../../../chunks/resource-id.js\";\nimport { t as getAdapter } from \"../../../../../chunks/adapter.js\";\nimport { t as superValidate } from \"../../../../../chunks/dist.js\";\nimport { n as buildMutationPayload, r as zod, t as zodFromTable } from \"../../../../../chunks/zod-from-table.js\";\nimport { error, fail, redirect } from \"@sveltejs/kit\";\n//#region src/routes/tables/[table]/new/+page.server.ts\nfunction findTable(tables, slug) {\n\treturn tables.find((t) => t.qualifiedName === slug) ?? null;\n}\nfunction tableViewModel(table) {\n\treturn {\n\t\tqualifiedName: table.qualifiedName,\n\t\tlabel: table.label,\n\t\tprimaryKey: table.primaryKey,\n\t\tcolumns: table.columns.map((c) => ({\n\t\t\tname: c.name,\n\t\t\tlabel: c.label,\n\t\t\twidget: c.widget,\n\t\t\tenumValues: c.enumValues ?? [],\n\t\t\tnullable: c.nullable,\n\t\t\treadonly: c.readonly || c.isPrimaryKey && c.defaultExpr !== null,\n\t\t\tisPrimaryKey: c.isPrimaryKey\n\t\t}))\n\t};\n}\nvar load = async ({ params, locals }) => {\n\tconst table = findTable(locals.schema.tables, params.table);\n\tif (!table) throw error(404, `Unknown table: ${params.table}`);\n\tconst form = await superValidate(zod(zodFromTable(table)));\n\treturn {\n\t\ttable: tableViewModel(table),\n\t\tform\n\t};\n};\nvar actions = { default: async ({ request, params, locals }) => {\n\tconst table = findTable(locals.schema.tables, params.table);\n\tif (!table) throw error(404, `Unknown table: ${params.table}`);\n\tconst form = await superValidate(request, zod(zodFromTable(table)));\n\tif (!form.valid) return fail(400, { form });\n\tconst payload = buildMutationPayload(table, form.data);\n\tconst segment = rowIdSegment(await getAdapter(locals.schema).create(table.qualifiedName, payload), table.primaryKey);\n\tthrow redirect(303, segment !== null ? `/tables/${table.qualifiedName}/${segment}` : `/tables/${table.qualifiedName}`);\n} };\n//#endregion\nexport { actions, load };\n","import * as server from '../entries/pages/tables/_table_/new/_page.server.ts.js';\n\nexport const index = 6;\nlet component_cache;\nexport const component = async () => component_cache ??= (await import('../entries/pages/tables/_table_/new/_page.svelte.js')).default;\nexport { server };\nexport const server_id = \"src/routes/tables/[table]/new/+page.server.ts\";\nexport const imports = [\"_app/immutable/nodes/6.Ca5RA2Y5.js\",\"_app/immutable/chunks/1PNfJiP5.js\",\"_app/immutable/chunks/DhQvJhgX.js\",\"_app/immutable/chunks/BatBMP3E.js\",\"_app/immutable/chunks/Ds-FbTMg.js\",\"_app/immutable/chunks/xihTtKlq.js\"];\nexport const stylesheets = [];\nexport const fonts = [];\n"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { p as parseListParamsFromUrl } from './list-params-Cw6PMHbk.js';
|
|
2
|
-
import { g as getAdapter } from './adapter-
|
|
2
|
+
import { g as getAdapter } from './adapter-1jZYeJkL.js';
|
|
3
3
|
import { e as error } from './index-5kYmxIr9.js';
|
|
4
4
|
import './index-DBqjc0Yf.js';
|
|
5
5
|
|
|
@@ -29,7 +29,7 @@ var load = async ({ params, locals, url }) => {
|
|
|
29
29
|
url,
|
|
30
30
|
searchFields: pickViewSearchFields(view)
|
|
31
31
|
});
|
|
32
|
-
const result = await getAdapter().list(view.qualifiedName, listParams);
|
|
32
|
+
const result = await getAdapter(locals.schema).list(view.qualifiedName, listParams);
|
|
33
33
|
return {
|
|
34
34
|
view: {
|
|
35
35
|
qualifiedName: view.qualifiedName,
|
|
@@ -56,11 +56,11 @@ var _page_server_ts = /*#__PURE__*/Object.freeze({
|
|
|
56
56
|
|
|
57
57
|
const index = 7;
|
|
58
58
|
let component_cache;
|
|
59
|
-
const component = async () => component_cache ??= (await import('./_page.svelte-
|
|
59
|
+
const component = async () => component_cache ??= (await import('./_page.svelte-Dabtpyl9.js')).default;
|
|
60
60
|
const server_id = "src/routes/views/[view]/+page.server.ts";
|
|
61
|
-
const imports = ["_app/immutable/nodes/7.
|
|
61
|
+
const imports = ["_app/immutable/nodes/7.mp1zOZZv.js","_app/immutable/chunks/1PNfJiP5.js","_app/immutable/chunks/xihTtKlq.js","_app/immutable/chunks/y9cSQmno.js"];
|
|
62
62
|
const stylesheets = [];
|
|
63
63
|
const fonts = [];
|
|
64
64
|
|
|
65
65
|
export { component, fonts, imports, index, _page_server_ts as server, server_id, stylesheets };
|
|
66
|
-
//# sourceMappingURL=7-
|
|
66
|
+
//# sourceMappingURL=7-BFDTBBBE.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"7-BFDTBBBE.js","sources":["../../../.svelte-kit/adapter-node/entries/pages/views/_view_/_page.server.ts.js","../../../.svelte-kit/adapter-node/nodes/7.js"],"sourcesContent":["import { t as parseListParamsFromUrl } from \"../../../../chunks/list-params.js\";\nimport { t as getAdapter } from \"../../../../chunks/adapter.js\";\nimport { error } from \"@sveltejs/kit\";\n//#region src/lib/view/columns.ts\nvar DISPLAY_COLUMN_LIMIT = 5;\nvar TEXT_LIKE_TYPE_PREFIXES = [\n\t\"text\",\n\t\"character\",\n\t\"varchar\",\n\t\"citext\",\n\t\"name\",\n\t\"uuid\"\n];\nfunction pickViewDisplayColumns(view) {\n\treturn view.columns.slice(0, DISPLAY_COLUMN_LIMIT);\n}\nfunction pickViewSearchFields(view) {\n\treturn view.columns.filter((c) => TEXT_LIKE_TYPE_PREFIXES.some((prefix) => c.dataType.toLowerCase().startsWith(prefix))).map((c) => c.name);\n}\n//#endregion\n//#region src/routes/views/[view]/+page.server.ts\nvar load = async ({ params, locals, url }) => {\n\tconst view = locals.schema.views.find((v) => v.qualifiedName === params.view);\n\tif (!view) throw error(404, `Unknown view: ${params.view}`);\n\tconst displayColumns = pickViewDisplayColumns(view);\n\tconst listParams = parseListParamsFromUrl({\n\t\turl,\n\t\tsearchFields: pickViewSearchFields(view)\n\t});\n\tconst result = await getAdapter(locals.schema).list(view.qualifiedName, listParams);\n\treturn {\n\t\tview: {\n\t\t\tqualifiedName: view.qualifiedName,\n\t\t\tlabel: view.label,\n\t\t\tcolumns: displayColumns.map((c) => ({\n\t\t\t\tname: c.name,\n\t\t\t\tlabel: c.label\n\t\t\t}))\n\t\t},\n\t\tlist: result,\n\t\tlistParams: {\n\t\t\tsearch: listParams.search,\n\t\t\tsort: listParams.sort,\n\t\t\tpage: listParams.page,\n\t\t\tpageSize: listParams.pageSize\n\t\t}\n\t};\n};\n//#endregion\nexport { load };\n","import * as server from '../entries/pages/views/_view_/_page.server.ts.js';\n\nexport const index = 7;\nlet component_cache;\nexport const component = async () => component_cache ??= (await import('../entries/pages/views/_view_/_page.svelte.js')).default;\nexport { server };\nexport const server_id = \"src/routes/views/[view]/+page.server.ts\";\nexport const imports = [\"_app/immutable/nodes/7.mp1zOZZv.js\",\"_app/immutable/chunks/1PNfJiP5.js\",\"_app/immutable/chunks/xihTtKlq.js\",\"_app/immutable/chunks/y9cSQmno.js\"];\nexport const stylesheets = [];\nexport const fonts = [];\n"],"names":[],"mappings":";;;;;AAGA;AACA,IAAI,oBAAoB,GAAG,CAAC;AAC5B,IAAI,uBAAuB,GAAG;AAC9B,CAAC,MAAM;AACP,CAAC,WAAW;AACZ,CAAC,SAAS;AACV,CAAC,QAAQ;AACT,CAAC,MAAM;AACP,CAAC;AACD,CAAC;AACD,SAAS,sBAAsB,CAAC,IAAI,EAAE;AACtC,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,oBAAoB,CAAC;AACnD;AACA,SAAS,oBAAoB,CAAC,IAAI,EAAE;AACpC,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,uBAAuB,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC;AAC5I;AACA;AACA;AACA,IAAI,IAAI,GAAG,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK;AAC9C,CAAC,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,aAAa,KAAK,MAAM,CAAC,IAAI,CAAC;AAC9E,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,KAAK,CAAC,GAAG,EAAE,CAAC,cAAc,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;AAC5D,CAAC,MAAM,cAAc,GAAG,sBAAsB,CAAC,IAAI,CAAC;AACpD,CAAC,MAAM,UAAU,GAAG,sBAAsB,CAAC;AAC3C,EAAE,GAAG;AACL,EAAE,YAAY,EAAE,oBAAoB,CAAC,IAAI;AACzC,EAAE,CAAC;AACH,CAAC,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,UAAU,CAAC;AACpF,CAAC,OAAO;AACR,EAAE,IAAI,EAAE;AACR,GAAG,aAAa,EAAE,IAAI,CAAC,aAAa;AACpC,GAAG,KAAK,EAAE,IAAI,CAAC,KAAK;AACpB,GAAG,OAAO,EAAE,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM;AACvC,IAAI,IAAI,EAAE,CAAC,CAAC,IAAI;AAChB,IAAI,KAAK,EAAE,CAAC,CAAC;AACb,IAAI,CAAC;AACL,GAAG;AACH,EAAE,IAAI,EAAE,MAAM;AACd,EAAE,UAAU,EAAE;AACd,GAAG,MAAM,EAAE,UAAU,CAAC,MAAM;AAC5B,GAAG,IAAI,EAAE,UAAU,CAAC,IAAI;AACxB,GAAG,IAAI,EAAE,UAAU,CAAC,IAAI;AACxB,GAAG,QAAQ,EAAE,UAAU,CAAC;AACxB;AACA,EAAE;AACF,CAAC;;;;;;;AC7CW,MAAC,KAAK,GAAG;AACrB,IAAI,eAAe;AACP,MAAC,SAAS,GAAG,YAAY,eAAe,KAAK,CAAC,MAAM,OAAO,4BAA+C,CAAC,EAAE;AAE7G,MAAC,SAAS,GAAG;AACb,MAAC,OAAO,GAAG,CAAC,oCAAoC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC;AAC5J,MAAC,WAAW,GAAG;AACf,MAAC,KAAK,GAAG;;;;"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { q as escape_html, d as attr, o as ensure_array_like, m as derived } from './dev-yFiAtg5l.js';
|
|
2
|
+
import { r as rowIdSegment } from './resource-id-PDcQeAnc.js';
|
|
2
3
|
|
|
3
4
|
//#region src/lib/list/list-href.ts
|
|
4
5
|
/** Rebuild the current list URL with `overrides` applied (a `null`
|
|
@@ -46,12 +47,7 @@ function ListTable($$renderer, $$props) {
|
|
|
46
47
|
const sortLookup = derived(() => new Map(listParams.sort.map((s) => [s.field, s.order])));
|
|
47
48
|
const totalPages = derived(() => Math.max(1, Math.ceil(total / listParams.pageSize)));
|
|
48
49
|
function rowKey(row, idx) {
|
|
49
|
-
|
|
50
|
-
if (pkField !== void 0) {
|
|
51
|
-
const pkValue = row[pkField];
|
|
52
|
-
if (pkValue !== void 0 && pkValue !== null) return String(pkValue);
|
|
53
|
-
}
|
|
54
|
-
return String(idx);
|
|
50
|
+
return rowIdSegment(row, primaryKey) ?? String(idx);
|
|
55
51
|
}
|
|
56
52
|
$$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> `);
|
|
57
53
|
if (!readonly && basePath) {
|
|
@@ -114,4 +110,4 @@ function ListTable($$renderer, $$props) {
|
|
|
114
110
|
}
|
|
115
111
|
|
|
116
112
|
export { ListTable as L };
|
|
117
|
-
//# sourceMappingURL=ListTable-
|
|
113
|
+
//# sourceMappingURL=ListTable-CkfkQNdN.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ListTable-CkfkQNdN.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\";\nimport { r as rowIdSegment } from \"./resource-id.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\treturn rowIdSegment(row, primaryKey) ?? 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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"}
|
|
@@ -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-D-zpiAdX.js';
|
|
3
3
|
import { r as resolveWidget } from './widget-registry-CYJ6dCZP.js';
|
|
4
4
|
import 'clsx';
|
|
5
|
-
import './internal-
|
|
5
|
+
import './internal-CCj4Us-1.js';
|
|
6
6
|
import 'node:module';
|
|
7
7
|
import './index-DBqjc0Yf.js';
|
|
8
|
-
import './client-
|
|
8
|
+
import './client-B9o82f8t.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-CYEmRGgG.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"_page.svelte-
|
|
1
|
+
{"version":3,"file":"_page.svelte-CYEmRGgG.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,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-CCj4Us-1.js';
|
|
3
|
+
import './client-B9o82f8t.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-CyAlYQ7a.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"_page.svelte-
|
|
1
|
+
{"version":3,"file":"_page.svelte-CyAlYQ7a.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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"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import 'clsx';
|
|
2
|
-
import { L as ListTable } from './ListTable-
|
|
2
|
+
import { L as ListTable } from './ListTable-CkfkQNdN.js';
|
|
3
3
|
import './dev-yFiAtg5l.js';
|
|
4
|
+
import './resource-id-PDcQeAnc.js';
|
|
4
5
|
|
|
5
6
|
//#region src/routes/views/[view]/+page.svelte
|
|
6
7
|
function _page($$renderer, $$props) {
|
|
@@ -19,4 +20,4 @@ function _page($$renderer, $$props) {
|
|
|
19
20
|
}
|
|
20
21
|
|
|
21
22
|
export { _page as default };
|
|
22
|
-
//# sourceMappingURL=_page.svelte-
|
|
23
|
+
//# sourceMappingURL=_page.svelte-Dabtpyl9.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"_page.svelte-
|
|
1
|
+
{"version":3,"file":"_page.svelte-Dabtpyl9.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-D-zpiAdX.js';
|
|
3
3
|
import { r as resolveWidget } from './widget-registry-CYJ6dCZP.js';
|
|
4
4
|
import 'clsx';
|
|
5
|
-
import './internal-
|
|
5
|
+
import './internal-CCj4Us-1.js';
|
|
6
6
|
import 'node:module';
|
|
7
7
|
import './index-DBqjc0Yf.js';
|
|
8
|
-
import './client-
|
|
8
|
+
import './client-B9o82f8t.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-NvCEA5JB.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"_page.svelte-
|
|
1
|
+
{"version":3,"file":"_page.svelte-NvCEA5JB.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":"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"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import 'clsx';
|
|
2
|
-
import { L as ListTable } from './ListTable-
|
|
2
|
+
import { L as ListTable } from './ListTable-CkfkQNdN.js';
|
|
3
3
|
import './dev-yFiAtg5l.js';
|
|
4
|
+
import './resource-id-PDcQeAnc.js';
|
|
4
5
|
|
|
5
6
|
//#region src/routes/tables/[table]/+page.svelte
|
|
6
7
|
function _page($$renderer, $$props) {
|
|
@@ -20,4 +21,4 @@ function _page($$renderer, $$props) {
|
|
|
20
21
|
}
|
|
21
22
|
|
|
22
23
|
export { _page as default };
|
|
23
|
-
//# sourceMappingURL=_page.svelte-
|
|
24
|
+
//# sourceMappingURL=_page.svelte-j2Tqrjlb.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"_page.svelte-
|
|
1
|
+
{"version":3,"file":"_page.svelte-j2Tqrjlb.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;;;;"}
|
|
@@ -20,6 +20,18 @@ var DEFAULT_SCHEMA = "public";
|
|
|
20
20
|
var DEFAULT_PRIMARY_KEY = "id";
|
|
21
21
|
var DEFAULT_RELATION_LIMIT$1 = 20;
|
|
22
22
|
var OR_FILTER_KEY$1 = "__or";
|
|
23
|
+
var FILTER_OPERATORS = new Set([
|
|
24
|
+
"eq",
|
|
25
|
+
"neq",
|
|
26
|
+
"gt",
|
|
27
|
+
"gte",
|
|
28
|
+
"lt",
|
|
29
|
+
"lte",
|
|
30
|
+
"like",
|
|
31
|
+
"ilike",
|
|
32
|
+
"in",
|
|
33
|
+
"is"
|
|
34
|
+
]);
|
|
23
35
|
var PostgrestAdapterError = class extends AdapterError {
|
|
24
36
|
constructor(init) {
|
|
25
37
|
super(init);
|
|
@@ -73,9 +85,8 @@ var PostgrestDataAdapter = class {
|
|
|
73
85
|
}
|
|
74
86
|
async get(resource, id) {
|
|
75
87
|
const { schema, table } = splitResource(resource, this.defaultSchema);
|
|
76
|
-
const primaryKey = this.resolvePrimaryKey(resource);
|
|
77
88
|
const query = new URLSearchParams();
|
|
78
|
-
|
|
89
|
+
this.appendKeyEquals(query, resource, id);
|
|
79
90
|
query.set("limit", "1");
|
|
80
91
|
const url = `${this.baseUrl}/${encodeURIComponent(table)}?${query.toString()}`;
|
|
81
92
|
const headers = {
|
|
@@ -97,9 +108,8 @@ var PostgrestDataAdapter = class {
|
|
|
97
108
|
}
|
|
98
109
|
async update(resource, id, data) {
|
|
99
110
|
const { schema, table } = splitResource(resource, this.defaultSchema);
|
|
100
|
-
const primaryKey = this.resolvePrimaryKey(resource);
|
|
101
111
|
const query = new URLSearchParams();
|
|
102
|
-
|
|
112
|
+
this.appendKeyEquals(query, resource, id);
|
|
103
113
|
const url = `${this.baseUrl}/${encodeURIComponent(table)}?${query.toString()}`;
|
|
104
114
|
const headers = this.mutationHeaders(schema);
|
|
105
115
|
const response = await this.send("PATCH", url, headers, JSON.stringify(data));
|
|
@@ -108,9 +118,8 @@ var PostgrestDataAdapter = class {
|
|
|
108
118
|
}
|
|
109
119
|
async delete(resource, id) {
|
|
110
120
|
const { schema, table } = splitResource(resource, this.defaultSchema);
|
|
111
|
-
const primaryKey = this.resolvePrimaryKey(resource);
|
|
112
121
|
const query = new URLSearchParams();
|
|
113
|
-
|
|
122
|
+
this.appendKeyEquals(query, resource, id);
|
|
114
123
|
const url = `${this.baseUrl}/${encodeURIComponent(table)}?${query.toString()}`;
|
|
115
124
|
const headers = { ...this.staticHeaders };
|
|
116
125
|
addProfileHeader(headers, schema, this.defaultSchema, "write");
|
|
@@ -118,7 +127,7 @@ var PostgrestDataAdapter = class {
|
|
|
118
127
|
}
|
|
119
128
|
async searchRelation(resource, params) {
|
|
120
129
|
const { schema, table } = splitResource(resource, this.defaultSchema);
|
|
121
|
-
const primaryKey = this.resolvePrimaryKey(resource);
|
|
130
|
+
const primaryKey = keyColumns(this.resolvePrimaryKey(resource))[0];
|
|
122
131
|
const limit = params.limit ?? DEFAULT_RELATION_LIMIT$1;
|
|
123
132
|
const query = new URLSearchParams();
|
|
124
133
|
query.set("select", `${primaryKey},${params.labelField}`);
|
|
@@ -140,6 +149,21 @@ var PostgrestDataAdapter = class {
|
|
|
140
149
|
label: String(row[params.labelField] ?? "")
|
|
141
150
|
}));
|
|
142
151
|
}
|
|
152
|
+
/**
|
|
153
|
+
* Append the per-column equality filters that address a row by id. A
|
|
154
|
+
* composite key expands to `?col0=eq.v0&col1=eq.v1` in `primaryKey`
|
|
155
|
+
* declaration order (Kozou v1.0 dev spec §3.7); a single-column key keeps
|
|
156
|
+
* the `?col=eq.value` form. The id component count must match the key
|
|
157
|
+
* arity (else a config error, surfacing a wiring mismatch).
|
|
158
|
+
*/
|
|
159
|
+
appendKeyEquals(query, resource, id) {
|
|
160
|
+
const columns = keyColumns(this.resolvePrimaryKey(resource));
|
|
161
|
+
const values = asResourceIdArray(id);
|
|
162
|
+
if (columns.length !== values.length) throw adapterConfigError(`PostgrestDataAdapter: resource "${resource}" has a ${columns.length}-column primary key (${columns.join(", ")}) but ${values.length} id component(s) were supplied.`);
|
|
163
|
+
columns.forEach((column, i) => {
|
|
164
|
+
query.set(column, `eq.${serializeFilterValue(values[i])}`);
|
|
165
|
+
});
|
|
166
|
+
}
|
|
143
167
|
mutationHeaders(schema) {
|
|
144
168
|
const headers = {
|
|
145
169
|
...this.staticHeaders,
|
|
@@ -176,6 +200,14 @@ function makePrimaryKeyResolver(pk) {
|
|
|
176
200
|
if (typeof pk === "function") return pk;
|
|
177
201
|
return () => pk;
|
|
178
202
|
}
|
|
203
|
+
/** Normalize a resolver result to the ordered list of key columns. */
|
|
204
|
+
function keyColumns(pk) {
|
|
205
|
+
return Array.isArray(pk) ? pk : [pk];
|
|
206
|
+
}
|
|
207
|
+
/** Normalize a ResourceId to the ordered list of key values. */
|
|
208
|
+
function asResourceIdArray(id) {
|
|
209
|
+
return Array.isArray(id) ? id : [id];
|
|
210
|
+
}
|
|
179
211
|
function splitResource(resource, defaultSchema) {
|
|
180
212
|
const idx = resource.indexOf(".");
|
|
181
213
|
if (idx === -1) return {
|
|
@@ -195,9 +227,19 @@ function appendFilters$1(query, filters) {
|
|
|
195
227
|
query.set("or", `(${serializeOrExpression(value)})`);
|
|
196
228
|
continue;
|
|
197
229
|
}
|
|
230
|
+
if (typeof value === "string" && hasOperatorPrefix(value)) {
|
|
231
|
+
query.set(key, value);
|
|
232
|
+
continue;
|
|
233
|
+
}
|
|
198
234
|
query.set(key, `eq.${serializeFilterValue(value)}`);
|
|
199
235
|
}
|
|
200
236
|
}
|
|
237
|
+
/** Whether a filter value begins with a `<op>.` prefix from the known
|
|
238
|
+
* operator set. Split on the first `.` via indexOf (no regex, ReDoS-safe). */
|
|
239
|
+
function hasOperatorPrefix(value) {
|
|
240
|
+
const dot = value.indexOf(".");
|
|
241
|
+
return dot > 0 && FILTER_OPERATORS.has(value.slice(0, dot));
|
|
242
|
+
}
|
|
201
243
|
function serializeOrExpression(value) {
|
|
202
244
|
if (typeof value === "string") return value;
|
|
203
245
|
if (Array.isArray(value)) return value.map(String).join(",");
|
|
@@ -334,7 +376,8 @@ var KozouApiDataAdapter = class {
|
|
|
334
376
|
return Array.isArray(body.options) ? body.options : [];
|
|
335
377
|
}
|
|
336
378
|
itemUrl(resource, id) {
|
|
337
|
-
|
|
379
|
+
const segment = Array.isArray(id) ? id.map((part) => encodeURIComponent(String(part))).join(",") : encodeURIComponent(String(id));
|
|
380
|
+
return `${this.baseUrl}/${encodeResource(resource)}/${segment}`;
|
|
338
381
|
}
|
|
339
382
|
async getJson(url) {
|
|
340
383
|
const headers = {
|
|
@@ -433,17 +476,45 @@ function configError(message) {
|
|
|
433
476
|
var DEFAULT_POSTGREST_URL = "http://localhost:3000";
|
|
434
477
|
var DEFAULT_API_URL = "http://localhost:3335";
|
|
435
478
|
var cached = null;
|
|
436
|
-
|
|
437
|
-
|
|
479
|
+
var cachedSchema = null;
|
|
480
|
+
/**
|
|
481
|
+
* Resolve the configured DataAdapter.
|
|
482
|
+
*
|
|
483
|
+
* The in-house API adapter resolves primary keys server-side, so it ignores
|
|
484
|
+
* `schema`. The REST adapter must address rows by their actual key columns
|
|
485
|
+
* (a composite key expands to per-column filters), so it is wired with a
|
|
486
|
+
* resolver derived from the live SchemaContext. The singleton is rebuilt when
|
|
487
|
+
* the schema identity changes — the schema cache hands out a new object on its
|
|
488
|
+
* TTL refresh — so the resolver tracks DDL changes.
|
|
489
|
+
*/
|
|
490
|
+
function getAdapter(schema) {
|
|
491
|
+
const nextSchema = schema ?? null;
|
|
492
|
+
if (cached !== null && cachedSchema === nextSchema) return cached;
|
|
493
|
+
cachedSchema = nextSchema;
|
|
494
|
+
if ((process.env.KOZOU_ADAPTER_KIND ?? "postgrest") === "api") {
|
|
438
495
|
const baseUrl = process.env.KOZOU_ADAPTER_URL ?? DEFAULT_API_URL;
|
|
439
496
|
const token = process.env.KOZOU_ADAPTER_TOKEN;
|
|
440
497
|
cached = new KozouApiDataAdapter({
|
|
441
498
|
baseUrl,
|
|
442
499
|
headers: token !== void 0 && token.length > 0 ? { Authorization: `Bearer ${token}` } : void 0
|
|
443
500
|
});
|
|
444
|
-
} else cached = new PostgrestDataAdapter({
|
|
501
|
+
} else cached = new PostgrestDataAdapter({
|
|
502
|
+
baseUrl: process.env.KOZOU_ADAPTER_URL ?? DEFAULT_POSTGREST_URL,
|
|
503
|
+
primaryKey: primaryKeyResolver(schema)
|
|
504
|
+
});
|
|
445
505
|
return cached;
|
|
446
506
|
}
|
|
507
|
+
/** Build a primary-key resolver from the schema: each resource maps to its
|
|
508
|
+
* ordered key columns. Falls back to the adapter default ('id') for unknown
|
|
509
|
+
* resources or when no schema is available. */
|
|
510
|
+
function primaryKeyResolver(schema) {
|
|
511
|
+
if (schema === void 0) return void 0;
|
|
512
|
+
return (resource) => {
|
|
513
|
+
const table = schema.tables.find((t) => t.qualifiedName === resource);
|
|
514
|
+
if (table !== void 0 && table.primaryKey.length > 0) return table.primaryKey;
|
|
515
|
+
return "id";
|
|
516
|
+
};
|
|
517
|
+
}
|
|
447
518
|
|
|
448
519
|
export { getAdapter as g };
|
|
449
|
-
//# sourceMappingURL=adapter-
|
|
520
|
+
//# sourceMappingURL=adapter-1jZYeJkL.js.map
|