@kozou/svelte-ui 0.0.1 → 0.1.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.
Files changed (119) hide show
  1. package/LICENSE +202 -0
  2. package/README.md +108 -1
  3. package/build/client/_app/immutable/assets/0.Cg4B63gQ.css +2 -0
  4. package/build/client/_app/immutable/assets/0.Cg4B63gQ.css.br +0 -0
  5. package/build/client/_app/immutable/assets/0.Cg4B63gQ.css.gz +0 -0
  6. package/build/client/_app/immutable/chunks/BpIM_fT8.js +2 -0
  7. package/build/client/_app/immutable/chunks/BpIM_fT8.js.br +0 -0
  8. package/build/client/_app/immutable/chunks/BpIM_fT8.js.gz +0 -0
  9. package/build/client/_app/immutable/chunks/D4orYVgu.js +4 -0
  10. package/build/client/_app/immutable/chunks/D4orYVgu.js.br +0 -0
  11. package/build/client/_app/immutable/chunks/D4orYVgu.js.gz +0 -0
  12. package/build/client/_app/immutable/chunks/DdEzykkf.js +1 -0
  13. package/build/client/_app/immutable/chunks/DdEzykkf.js.br +0 -0
  14. package/build/client/_app/immutable/chunks/DdEzykkf.js.gz +0 -0
  15. package/build/client/_app/immutable/chunks/Dq0SIjgq.js +214 -0
  16. package/build/client/_app/immutable/chunks/Dq0SIjgq.js.br +0 -0
  17. package/build/client/_app/immutable/chunks/Dq0SIjgq.js.gz +0 -0
  18. package/build/client/_app/immutable/chunks/kNaey6uv.js +1 -0
  19. package/build/client/_app/immutable/chunks/kNaey6uv.js.br +0 -0
  20. package/build/client/_app/immutable/chunks/kNaey6uv.js.gz +0 -0
  21. package/build/client/_app/immutable/chunks/xihTtKlq.js +1 -0
  22. package/build/client/_app/immutable/chunks/xihTtKlq.js.br +1 -0
  23. package/build/client/_app/immutable/chunks/xihTtKlq.js.gz +0 -0
  24. package/build/client/_app/immutable/entry/app.B2E2jsYG.js +2 -0
  25. package/build/client/_app/immutable/entry/app.B2E2jsYG.js.br +0 -0
  26. package/build/client/_app/immutable/entry/app.B2E2jsYG.js.gz +0 -0
  27. package/build/client/_app/immutable/entry/start.Ccv3-hR2.js +1 -0
  28. package/build/client/_app/immutable/entry/start.Ccv3-hR2.js.br +0 -0
  29. package/build/client/_app/immutable/entry/start.Ccv3-hR2.js.gz +0 -0
  30. package/build/client/_app/immutable/nodes/0.C77vZJGR.js +1 -0
  31. package/build/client/_app/immutable/nodes/0.C77vZJGR.js.br +0 -0
  32. package/build/client/_app/immutable/nodes/0.C77vZJGR.js.gz +0 -0
  33. package/build/client/_app/immutable/nodes/1.9-mDK_1B.js +1 -0
  34. package/build/client/_app/immutable/nodes/1.9-mDK_1B.js.br +0 -0
  35. package/build/client/_app/immutable/nodes/1.9-mDK_1B.js.gz +0 -0
  36. package/build/client/_app/immutable/nodes/2.DKSRkbg2.js +1 -0
  37. package/build/client/_app/immutable/nodes/2.DKSRkbg2.js.br +0 -0
  38. package/build/client/_app/immutable/nodes/2.DKSRkbg2.js.gz +0 -0
  39. package/build/client/_app/immutable/nodes/3.BRseKH3J.js +1 -0
  40. package/build/client/_app/immutable/nodes/3.BRseKH3J.js.br +0 -0
  41. package/build/client/_app/immutable/nodes/3.BRseKH3J.js.gz +0 -0
  42. package/build/client/_app/immutable/nodes/4.D1ErMjLn.js +1 -0
  43. package/build/client/_app/immutable/nodes/4.D1ErMjLn.js.br +0 -0
  44. package/build/client/_app/immutable/nodes/4.D1ErMjLn.js.gz +0 -0
  45. package/build/client/_app/immutable/nodes/5.U1CG0AZz.js +1 -0
  46. package/build/client/_app/immutable/nodes/5.U1CG0AZz.js.br +0 -0
  47. package/build/client/_app/immutable/nodes/5.U1CG0AZz.js.gz +0 -0
  48. package/build/client/_app/immutable/nodes/6.BqfsXcpL.js +1 -0
  49. package/build/client/_app/immutable/nodes/6.BqfsXcpL.js.br +0 -0
  50. package/build/client/_app/immutable/nodes/6.BqfsXcpL.js.gz +0 -0
  51. package/build/client/_app/immutable/nodes/7.Bfhyc_gZ.js +1 -0
  52. package/build/client/_app/immutable/nodes/7.Bfhyc_gZ.js.br +0 -0
  53. package/build/client/_app/immutable/nodes/7.Bfhyc_gZ.js.gz +0 -0
  54. package/build/client/_app/version.json +1 -0
  55. package/build/client/_app/version.json.br +0 -0
  56. package/build/client/_app/version.json.gz +0 -0
  57. package/build/env.js +94 -0
  58. package/build/handler.js +1494 -0
  59. package/build/index.js +345 -0
  60. package/build/server/chunks/0-Cpki24QE.js +24 -0
  61. package/build/server/chunks/0-Cpki24QE.js.map +1 -0
  62. package/build/server/chunks/1-C_Zl16E8.js +9 -0
  63. package/build/server/chunks/1-C_Zl16E8.js.map +1 -0
  64. package/build/server/chunks/2-Bb7ROZP0.js +35 -0
  65. package/build/server/chunks/2-Bb7ROZP0.js.map +1 -0
  66. package/build/server/chunks/3-dXQmFZGn.js +71 -0
  67. package/build/server/chunks/3-dXQmFZGn.js.map +1 -0
  68. package/build/server/chunks/4-Dn5qQ29L.js +54 -0
  69. package/build/server/chunks/4-Dn5qQ29L.js.map +1 -0
  70. package/build/server/chunks/5-CKRn1yVS.js +69 -0
  71. package/build/server/chunks/5-CKRn1yVS.js.map +1 -0
  72. package/build/server/chunks/6-C7PGuXlN.js +70 -0
  73. package/build/server/chunks/6-C7PGuXlN.js.map +1 -0
  74. package/build/server/chunks/7-BtKcX-UD.js +66 -0
  75. package/build/server/chunks/7-BtKcX-UD.js.map +1 -0
  76. package/build/server/chunks/_layout.svelte-DcwZs9VT.js +15 -0
  77. package/build/server/chunks/_layout.svelte-DcwZs9VT.js.map +1 -0
  78. package/build/server/chunks/_page.svelte-69okwN_x.js +70 -0
  79. package/build/server/chunks/_page.svelte-69okwN_x.js.map +1 -0
  80. package/build/server/chunks/_page.svelte-7DhzytBp.js +79 -0
  81. package/build/server/chunks/_page.svelte-7DhzytBp.js.map +1 -0
  82. package/build/server/chunks/_page.svelte-BpS5HgaB.js +78 -0
  83. package/build/server/chunks/_page.svelte-BpS5HgaB.js.map +1 -0
  84. package/build/server/chunks/_page.svelte-BywGr3Tk.js +51 -0
  85. package/build/server/chunks/_page.svelte-BywGr3Tk.js.map +1 -0
  86. package/build/server/chunks/_page.svelte-ClFWSFQK.js +70 -0
  87. package/build/server/chunks/_page.svelte-ClFWSFQK.js.map +1 -0
  88. package/build/server/chunks/_page.svelte-Dfaz3pC_.js +86 -0
  89. package/build/server/chunks/_page.svelte-Dfaz3pC_.js.map +1 -0
  90. package/build/server/chunks/adapter-DSZ-_PM_.js +273 -0
  91. package/build/server/chunks/adapter-DSZ-_PM_.js.map +1 -0
  92. package/build/server/chunks/app-C1bzfcjj.js +12 -0
  93. package/build/server/chunks/app-C1bzfcjj.js.map +1 -0
  94. package/build/server/chunks/client-nr13Vsqj.js +69 -0
  95. package/build/server/chunks/client-nr13Vsqj.js.map +1 -0
  96. package/build/server/chunks/dev-yRSoS_kM.js +4498 -0
  97. package/build/server/chunks/dev-yRSoS_kM.js.map +1 -0
  98. package/build/server/chunks/error.svelte-B8LolEv3.js +68 -0
  99. package/build/server/chunks/error.svelte-B8LolEv3.js.map +1 -0
  100. package/build/server/chunks/hooks.server-BgTiHdgV.js +11706 -0
  101. package/build/server/chunks/hooks.server-BgTiHdgV.js.map +1 -0
  102. package/build/server/chunks/index-5kYmxIr9.js +191 -0
  103. package/build/server/chunks/index-5kYmxIr9.js.map +1 -0
  104. package/build/server/chunks/index-DBqjc0Yf.js +77 -0
  105. package/build/server/chunks/index-DBqjc0Yf.js.map +1 -0
  106. package/build/server/chunks/internal-Dtmf8fV4.js +1759 -0
  107. package/build/server/chunks/internal-Dtmf8fV4.js.map +1 -0
  108. package/build/server/chunks/list-params-DjWk7B1o.js +44 -0
  109. package/build/server/chunks/list-params-DjWk7B1o.js.map +1 -0
  110. package/build/server/chunks/widget-registry-Bfc0OPDn.js +242 -0
  111. package/build/server/chunks/widget-registry-Bfc0OPDn.js.map +1 -0
  112. package/build/server/chunks/zod-from-table-HRMJdgEv.js +7936 -0
  113. package/build/server/chunks/zod-from-table-HRMJdgEv.js.map +1 -0
  114. package/build/server/index.js +4447 -0
  115. package/build/server/index.js.map +1 -0
  116. package/build/server/manifest.js +86 -0
  117. package/build/server/manifest.js.map +1 -0
  118. package/build/shims.js +32 -0
  119. package/package.json +65 -4
@@ -0,0 +1 @@
1
+ {"version":3,"file":"_page.svelte-ClFWSFQK.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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"}
@@ -0,0 +1,86 @@
1
+ import { q as escape_html, d as attr, o as ensure_array_like, m as derived } from './dev-yRSoS_kM.js';
2
+ import 'clsx';
3
+
4
+ //#region src/routes/tables/[table]/+page.svelte
5
+ function _page($$renderer, $$props) {
6
+ $$renderer.component(($$renderer) => {
7
+ let { data } = $$props;
8
+ const sortLookup = derived(() => new Map(data.listParams.sort.map((s) => [s.field, s.order])));
9
+ const totalPages = derived(() => Math.max(1, Math.ceil(data.list.total / data.list.pageSize)));
10
+ function buildHref(overrides) {
11
+ const params = new URLSearchParams();
12
+ if (data.listParams.search.length > 0) params.set("q", data.listParams.search);
13
+ if (data.listParams.sort.length > 0) params.set("sort", data.listParams.sort.map((s) => `${s.field}:${s.order}`).join(","));
14
+ if (data.listParams.page > 1) params.set("page", String(data.listParams.page));
15
+ if (data.listParams.pageSize !== 50) params.set("pageSize", String(data.listParams.pageSize));
16
+ for (const [key, value] of Object.entries(overrides)) if (value === null) params.delete(key);
17
+ else params.set(key, value);
18
+ const query = params.toString();
19
+ return query.length > 0 ? `?${query}` : ".";
20
+ }
21
+ function buildSortHref(field) {
22
+ return buildHref({
23
+ sort: `${field}:${sortLookup().get(field) === "asc" ? "desc" : "asc"}`,
24
+ page: null
25
+ });
26
+ }
27
+ function formatCell(value) {
28
+ if (value === null || value === void 0) return "";
29
+ if (typeof value === "object") return JSON.stringify(value);
30
+ return String(value);
31
+ }
32
+ function rowKey(row, idx) {
33
+ const pkField = data.table.primaryKey[0];
34
+ if (pkField !== void 0) {
35
+ const pkValue = row[pkField];
36
+ if (pkValue !== void 0 && pkValue !== null) return String(pkValue);
37
+ }
38
+ return String(idx);
39
+ }
40
+ $$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)}</p> <form method="GET" class="mb-4 flex flex-wrap items-center gap-2"><input type="text" name="q"${attr("value", data.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> <a${attr("href", `/tables/${data.table.qualifiedName}/new`)} class="rounded-md border border-border px-4 py-2 text-sm font-medium">+ New</a></form> <div class="overflow-x-auto rounded-md border border-border"><table class="min-w-full text-sm"><thead class="bg-muted"><tr><!--[-->`);
41
+ const each_array = ensure_array_like(data.table.columns);
42
+ for (let $$index = 0, $$length = each_array.length; $$index < $$length; $$index++) {
43
+ let col = each_array[$$index];
44
+ $$renderer.push(`<th class="px-3 py-2 text-left font-medium"><a${attr("href", buildSortHref(col.name))} class="hover:underline">${escape_html(col.label)} `);
45
+ if (sortLookup().has(col.name)) {
46
+ $$renderer.push("<!--[0-->");
47
+ $$renderer.push(`<span aria-hidden="true">${escape_html(sortLookup().get(col.name) === "asc" ? "↑" : "↓")}</span>`);
48
+ } else $$renderer.push("<!--[-1-->");
49
+ $$renderer.push(`<!--]--></a></th>`);
50
+ }
51
+ $$renderer.push(`<!--]--><th class="px-3 py-2 text-left font-medium">Actions</th></tr></thead><tbody>`);
52
+ if (data.list.rows.length === 0) {
53
+ $$renderer.push("<!--[0-->");
54
+ $$renderer.push(`<tr><td${attr("colspan", data.table.columns.length + 1)} class="px-3 py-6 text-center text-muted-foreground">No rows.</td></tr>`);
55
+ } else {
56
+ $$renderer.push("<!--[-1-->");
57
+ $$renderer.push(`<!--[-->`);
58
+ const each_array_1 = ensure_array_like(data.list.rows);
59
+ for (let idx = 0, $$length = each_array_1.length; idx < $$length; idx++) {
60
+ let row = each_array_1[idx];
61
+ $$renderer.push(`<tr class="border-t border-border"><!--[-->`);
62
+ const each_array_2 = ensure_array_like(data.table.columns);
63
+ for (let $$index_1 = 0, $$length = each_array_2.length; $$index_1 < $$length; $$index_1++) {
64
+ let col = each_array_2[$$index_1];
65
+ $$renderer.push(`<td class="px-3 py-2">${escape_html(formatCell(row[col.name]))}</td>`);
66
+ }
67
+ $$renderer.push(`<!--]--><td class="px-3 py-2"><a${attr("href", `/tables/${data.table.qualifiedName}/${rowKey(row, idx)}`)} class="text-primary underline">View</a></td></tr>`);
68
+ }
69
+ $$renderer.push(`<!--]-->`);
70
+ }
71
+ $$renderer.push(`<!--]--></tbody></table></div> <nav class="mt-4 flex items-center justify-between text-sm"><span class="text-muted-foreground">Page ${escape_html(data.listParams.page)} of ${escape_html(totalPages())} (${escape_html(data.list.total)} total)</span> <div class="flex gap-2">`);
72
+ if (data.listParams.page > 1) {
73
+ $$renderer.push("<!--[0-->");
74
+ $$renderer.push(`<a${attr("href", buildHref({ page: String(data.listParams.page - 1) }))} class="rounded-md border border-border px-3 py-1">← Prev</a>`);
75
+ } else $$renderer.push("<!--[-1-->");
76
+ $$renderer.push(`<!--]--> `);
77
+ if (data.listParams.page < totalPages()) {
78
+ $$renderer.push("<!--[0-->");
79
+ $$renderer.push(`<a${attr("href", buildHref({ page: String(data.listParams.page + 1) }))} class="rounded-md border border-border px-3 py-1">Next →</a>`);
80
+ } else $$renderer.push("<!--[-1-->");
81
+ $$renderer.push(`<!--]--></div></nav>`);
82
+ });
83
+ }
84
+
85
+ export { _page as default };
86
+ //# sourceMappingURL=_page.svelte-Dfaz3pC_.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"_page.svelte-Dfaz3pC_.js","sources":["../../../.svelte-kit/adapter-node/entries/pages/tables/_table_/_page.svelte.js"],"sourcesContent":["import { H as escape_html, V as attr, i as ensure_array_like, r as derived } from \"../../../../chunks/dev.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\tconst sortLookup = derived(() => new Map(data.listParams.sort.map((s) => [s.field, s.order])));\n\t\tconst totalPages = derived(() => Math.max(1, Math.ceil(data.list.total / data.list.pageSize)));\n\t\tfunction buildHref(overrides) {\n\t\t\tconst params = new URLSearchParams();\n\t\t\tif (data.listParams.search.length > 0) params.set(\"q\", data.listParams.search);\n\t\t\tif (data.listParams.sort.length > 0) params.set(\"sort\", data.listParams.sort.map((s) => `${s.field}:${s.order}`).join(\",\"));\n\t\t\tif (data.listParams.page > 1) params.set(\"page\", String(data.listParams.page));\n\t\t\tif (data.listParams.pageSize !== 50) params.set(\"pageSize\", String(data.listParams.pageSize));\n\t\t\tfor (const [key, value] of Object.entries(overrides)) if (value === null) params.delete(key);\n\t\t\telse params.set(key, value);\n\t\t\tconst query = params.toString();\n\t\t\treturn query.length > 0 ? `?${query}` : \".\";\n\t\t}\n\t\tfunction buildSortHref(field) {\n\t\t\treturn buildHref({\n\t\t\t\tsort: `${field}:${sortLookup().get(field) === \"asc\" ? \"desc\" : \"asc\"}`,\n\t\t\t\tpage: null\n\t\t\t});\n\t\t}\n\t\tfunction formatCell(value) {\n\t\t\tif (value === null || value === void 0) return \"\";\n\t\t\tif (typeof value === \"object\") return JSON.stringify(value);\n\t\t\treturn String(value);\n\t\t}\n\t\tfunction rowKey(row, idx) {\n\t\t\tconst pkField = data.table.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(data.table.label)}</h1> <p class=\"mb-6 text-sm text-muted-foreground\">${escape_html(data.table.qualifiedName)}</p> <form method=\"GET\" class=\"mb-4 flex flex-wrap items-center gap-2\"><input type=\"text\" name=\"q\"${attr(\"value\", data.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> <a${attr(\"href\", `/tables/${data.table.qualifiedName}/new`)} class=\"rounded-md border border-border px-4 py-2 text-sm font-medium\">+ New</a></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(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\t$$renderer.push(`<th class=\"px-3 py-2 text-left font-medium\"><a${attr(\"href\", buildSortHref(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(`<!--]--><th class=\"px-3 py-2 text-left font-medium\">Actions</th></tr></thead><tbody>`);\n\t\tif (data.list.rows.length === 0) {\n\t\t\t$$renderer.push(\"<!--[0-->\");\n\t\t\t$$renderer.push(`<tr><td${attr(\"colspan\", data.table.columns.length + 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(data.list.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(data.table.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(`<!--]--><td class=\"px-3 py-2\"><a${attr(\"href\", `/tables/${data.table.qualifiedName}/${rowKey(row, idx)}`)} class=\"text-primary underline\">View</a></td></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(data.listParams.page)} of ${escape_html(totalPages())} (${escape_html(data.list.total)} total)</span> <div class=\"flex gap-2\">`);\n\t\tif (data.listParams.page > 1) {\n\t\t\t$$renderer.push(\"<!--[0-->\");\n\t\t\t$$renderer.push(`<a${attr(\"href\", buildHref({ page: String(data.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 (data.listParams.page < totalPages()) {\n\t\t\t$$renderer.push(\"<!--[0-->\");\n\t\t\t$$renderer.push(`<a${attr(\"href\", buildHref({ page: String(data.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 { _page as default };\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,273 @@
1
+ //#region src/lib/adapter/errors.ts
2
+ var AdapterError = class extends Error {
3
+ status;
4
+ url;
5
+ responseBody;
6
+ code;
7
+ constructor(init) {
8
+ super(init.message);
9
+ this.name = "AdapterError";
10
+ this.status = init.status;
11
+ this.url = init.url;
12
+ this.responseBody = init.responseBody;
13
+ this.code = init.code;
14
+ }
15
+ };
16
+ //#endregion
17
+ //#region src/lib/adapter/postgrest.ts
18
+ var DEFAULT_PAGE_SIZE = 50;
19
+ var DEFAULT_SCHEMA = "public";
20
+ var DEFAULT_PRIMARY_KEY = "id";
21
+ var DEFAULT_RELATION_LIMIT = 20;
22
+ var OR_FILTER_KEY = "__or";
23
+ var PostgrestAdapterError = class extends AdapterError {
24
+ constructor(init) {
25
+ super(init);
26
+ this.name = "PostgrestAdapterError";
27
+ }
28
+ };
29
+ var PostgrestDataAdapter = class {
30
+ baseUrl;
31
+ defaultSchema;
32
+ resolvePrimaryKey;
33
+ staticHeaders;
34
+ fetchImpl;
35
+ defaultPageSize;
36
+ constructor(opts) {
37
+ if (typeof opts.baseUrl !== "string" || opts.baseUrl.length === 0) throw adapterConfigError("PostgrestDataAdapter: `baseUrl` is required.");
38
+ this.baseUrl = stripTrailingSlash(opts.baseUrl);
39
+ this.defaultSchema = opts.defaultSchema ?? DEFAULT_SCHEMA;
40
+ this.resolvePrimaryKey = makePrimaryKeyResolver(opts.primaryKey);
41
+ this.staticHeaders = { ...opts.headers ?? {} };
42
+ this.defaultPageSize = opts.defaultPageSize ?? DEFAULT_PAGE_SIZE;
43
+ const resolvedFetch = opts.fetch ?? globalThis.fetch;
44
+ if (typeof resolvedFetch !== "function") throw adapterConfigError("PostgrestDataAdapter: a `fetch` implementation is required (none injected, none on globalThis).");
45
+ this.fetchImpl = resolvedFetch;
46
+ }
47
+ async list(resource, params) {
48
+ const { schema, table } = splitResource(resource, this.defaultSchema);
49
+ const pageSize = params.pageSize ?? this.defaultPageSize;
50
+ const page = params.page ?? 1;
51
+ const offset = (page - 1) * pageSize;
52
+ const query = new URLSearchParams();
53
+ appendFilters(query, params.filters);
54
+ appendOrder(query, params.sort);
55
+ query.set("limit", String(pageSize));
56
+ query.set("offset", String(offset));
57
+ const url = `${this.baseUrl}/${encodeURIComponent(table)}?${query.toString()}`;
58
+ const headers = {
59
+ ...this.staticHeaders,
60
+ Accept: "application/json",
61
+ Prefer: "count=exact"
62
+ };
63
+ addProfileHeader(headers, schema, this.defaultSchema, "read");
64
+ const response = await this.send("GET", url, headers, void 0);
65
+ await assertOk(response, url);
66
+ const rows = await readJson(response, url);
67
+ return {
68
+ rows,
69
+ total: parseContentRangeTotal(response.headers.get("content-range"), rows.length),
70
+ page,
71
+ pageSize
72
+ };
73
+ }
74
+ async get(resource, id) {
75
+ const { schema, table } = splitResource(resource, this.defaultSchema);
76
+ const primaryKey = this.resolvePrimaryKey(resource);
77
+ const query = new URLSearchParams();
78
+ query.set(primaryKey, `eq.${id}`);
79
+ query.set("limit", "1");
80
+ const url = `${this.baseUrl}/${encodeURIComponent(table)}?${query.toString()}`;
81
+ const headers = {
82
+ ...this.staticHeaders,
83
+ Accept: "application/vnd.pgrst.object+json"
84
+ };
85
+ addProfileHeader(headers, schema, this.defaultSchema, "read");
86
+ const response = await this.send("GET", url, headers, void 0);
87
+ await assertOk(response, url);
88
+ return await readJson(response, url);
89
+ }
90
+ async create(resource, data) {
91
+ const { schema, table } = splitResource(resource, this.defaultSchema);
92
+ const url = `${this.baseUrl}/${encodeURIComponent(table)}`;
93
+ const headers = this.mutationHeaders(schema);
94
+ const response = await this.send("POST", url, headers, JSON.stringify(data));
95
+ await assertOk(response, url);
96
+ return await readJson(response, url);
97
+ }
98
+ async update(resource, id, data) {
99
+ const { schema, table } = splitResource(resource, this.defaultSchema);
100
+ const primaryKey = this.resolvePrimaryKey(resource);
101
+ const query = new URLSearchParams();
102
+ query.set(primaryKey, `eq.${id}`);
103
+ const url = `${this.baseUrl}/${encodeURIComponent(table)}?${query.toString()}`;
104
+ const headers = this.mutationHeaders(schema);
105
+ const response = await this.send("PATCH", url, headers, JSON.stringify(data));
106
+ await assertOk(response, url);
107
+ return await readJson(response, url);
108
+ }
109
+ async delete(resource, id) {
110
+ const { schema, table } = splitResource(resource, this.defaultSchema);
111
+ const primaryKey = this.resolvePrimaryKey(resource);
112
+ const query = new URLSearchParams();
113
+ query.set(primaryKey, `eq.${id}`);
114
+ const url = `${this.baseUrl}/${encodeURIComponent(table)}?${query.toString()}`;
115
+ const headers = { ...this.staticHeaders };
116
+ addProfileHeader(headers, schema, this.defaultSchema, "write");
117
+ await assertOk(await this.send("DELETE", url, headers, void 0), url);
118
+ }
119
+ async searchRelation(resource, params) {
120
+ const { schema, table } = splitResource(resource, this.defaultSchema);
121
+ const primaryKey = this.resolvePrimaryKey(resource);
122
+ const limit = params.limit ?? DEFAULT_RELATION_LIMIT;
123
+ const query = new URLSearchParams();
124
+ query.set("select", `${primaryKey},${params.labelField}`);
125
+ if (params.query.length > 0 && params.searchFields.length > 0) {
126
+ const orExpr = params.searchFields.map((field) => `${field}.ilike.*${params.query}*`).join(",");
127
+ query.set("or", `(${orExpr})`);
128
+ }
129
+ query.set("limit", String(limit));
130
+ const url = `${this.baseUrl}/${encodeURIComponent(table)}?${query.toString()}`;
131
+ const headers = {
132
+ ...this.staticHeaders,
133
+ Accept: "application/json"
134
+ };
135
+ addProfileHeader(headers, schema, this.defaultSchema, "read");
136
+ const response = await this.send("GET", url, headers, void 0);
137
+ await assertOk(response, url);
138
+ return (await readJson(response, url)).map((row) => ({
139
+ id: row[primaryKey],
140
+ label: String(row[params.labelField] ?? "")
141
+ }));
142
+ }
143
+ mutationHeaders(schema) {
144
+ const headers = {
145
+ ...this.staticHeaders,
146
+ Accept: "application/vnd.pgrst.object+json",
147
+ "Content-Type": "application/json",
148
+ Prefer: "return=representation"
149
+ };
150
+ addProfileHeader(headers, schema, this.defaultSchema, "write");
151
+ return headers;
152
+ }
153
+ async send(method, url, headers, body) {
154
+ try {
155
+ return await this.fetchImpl(url, {
156
+ method,
157
+ headers,
158
+ body
159
+ });
160
+ } catch (cause) {
161
+ throw new PostgrestAdapterError({
162
+ message: `PostgrestDataAdapter: ${method} ${url} failed before reaching the server: ${cause.message}`,
163
+ status: 0,
164
+ url,
165
+ responseBody: null,
166
+ code: "network"
167
+ });
168
+ }
169
+ }
170
+ };
171
+ function stripTrailingSlash(url) {
172
+ return url.endsWith("/") ? url.slice(0, -1) : url;
173
+ }
174
+ function makePrimaryKeyResolver(pk) {
175
+ if (pk === void 0) return () => DEFAULT_PRIMARY_KEY;
176
+ if (typeof pk === "function") return pk;
177
+ return () => pk;
178
+ }
179
+ function splitResource(resource, defaultSchema) {
180
+ const idx = resource.indexOf(".");
181
+ if (idx === -1) return {
182
+ schema: defaultSchema,
183
+ table: resource
184
+ };
185
+ return {
186
+ schema: resource.slice(0, idx),
187
+ table: resource.slice(idx + 1)
188
+ };
189
+ }
190
+ function appendFilters(query, filters) {
191
+ if (!filters) return;
192
+ for (const [key, value] of Object.entries(filters)) {
193
+ if (value === void 0) continue;
194
+ if (key === OR_FILTER_KEY) {
195
+ query.set("or", `(${serializeOrExpression(value)})`);
196
+ continue;
197
+ }
198
+ query.set(key, `eq.${serializeFilterValue(value)}`);
199
+ }
200
+ }
201
+ function serializeOrExpression(value) {
202
+ if (typeof value === "string") return value;
203
+ if (Array.isArray(value)) return value.map(String).join(",");
204
+ return String(value);
205
+ }
206
+ function serializeFilterValue(value) {
207
+ if (value === null) return "null";
208
+ if (typeof value === "string") return value;
209
+ return String(value);
210
+ }
211
+ function appendOrder(query, sort) {
212
+ if (!sort || sort.length === 0) return;
213
+ query.set("order", sort.map((s) => `${s.field}.${s.order}`).join(","));
214
+ }
215
+ function addProfileHeader(headers, schema, defaultSchema, direction) {
216
+ if (schema === defaultSchema) return;
217
+ headers[direction === "read" ? "Accept-Profile" : "Content-Profile"] = schema;
218
+ }
219
+ function parseContentRangeTotal(header, fallback) {
220
+ if (!header) return fallback;
221
+ const match = header.match(/\/(\d+)$/);
222
+ if (!match) return fallback;
223
+ return Number(match[1]);
224
+ }
225
+ async function readJson(response, url) {
226
+ try {
227
+ return await response.json();
228
+ } catch (cause) {
229
+ throw new PostgrestAdapterError({
230
+ message: `PostgrestDataAdapter: failed to parse JSON response from ${url}: ${cause.message}`,
231
+ status: response.status,
232
+ url,
233
+ responseBody: null,
234
+ code: "parse"
235
+ });
236
+ }
237
+ }
238
+ async function assertOk(response, url) {
239
+ if (response.ok) return;
240
+ let body = null;
241
+ try {
242
+ body = await response.text();
243
+ } catch {
244
+ body = null;
245
+ }
246
+ throw new PostgrestAdapterError({
247
+ message: `PostgrestDataAdapter: request to ${url} failed with status ${response.status}`,
248
+ status: response.status,
249
+ url,
250
+ responseBody: body,
251
+ code: "http"
252
+ });
253
+ }
254
+ function adapterConfigError(message) {
255
+ return new PostgrestAdapterError({
256
+ message,
257
+ status: 0,
258
+ url: "",
259
+ responseBody: null,
260
+ code: "config"
261
+ });
262
+ }
263
+ //#endregion
264
+ //#region src/lib/server/adapter.ts
265
+ var DEFAULT_ADAPTER_URL = "http://localhost:3000";
266
+ var cached = null;
267
+ function getAdapter() {
268
+ if (cached === null) cached = new PostgrestDataAdapter({ baseUrl: process.env.KOZOU_ADAPTER_URL ?? DEFAULT_ADAPTER_URL });
269
+ return cached;
270
+ }
271
+
272
+ export { getAdapter as g };
273
+ //# sourceMappingURL=adapter-DSZ-_PM_.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"adapter-DSZ-_PM_.js","sources":["../../../.svelte-kit/adapter-node/chunks/adapter.js"],"sourcesContent":["//#region src/lib/adapter/errors.ts\nvar AdapterError = class extends Error {\n\tstatus;\n\turl;\n\tresponseBody;\n\tcode;\n\tconstructor(init) {\n\t\tsuper(init.message);\n\t\tthis.name = \"AdapterError\";\n\t\tthis.status = init.status;\n\t\tthis.url = init.url;\n\t\tthis.responseBody = init.responseBody;\n\t\tthis.code = init.code;\n\t}\n};\n//#endregion\n//#region src/lib/adapter/postgrest.ts\nvar DEFAULT_PAGE_SIZE = 50;\nvar DEFAULT_SCHEMA = \"public\";\nvar DEFAULT_PRIMARY_KEY = \"id\";\nvar DEFAULT_RELATION_LIMIT = 20;\nvar OR_FILTER_KEY = \"__or\";\nvar PostgrestAdapterError = class extends AdapterError {\n\tconstructor(init) {\n\t\tsuper(init);\n\t\tthis.name = \"PostgrestAdapterError\";\n\t}\n};\nvar PostgrestDataAdapter = class {\n\tbaseUrl;\n\tdefaultSchema;\n\tresolvePrimaryKey;\n\tstaticHeaders;\n\tfetchImpl;\n\tdefaultPageSize;\n\tconstructor(opts) {\n\t\tif (typeof opts.baseUrl !== \"string\" || opts.baseUrl.length === 0) throw adapterConfigError(\"PostgrestDataAdapter: `baseUrl` is required.\");\n\t\tthis.baseUrl = stripTrailingSlash(opts.baseUrl);\n\t\tthis.defaultSchema = opts.defaultSchema ?? DEFAULT_SCHEMA;\n\t\tthis.resolvePrimaryKey = makePrimaryKeyResolver(opts.primaryKey);\n\t\tthis.staticHeaders = { ...opts.headers ?? {} };\n\t\tthis.defaultPageSize = opts.defaultPageSize ?? DEFAULT_PAGE_SIZE;\n\t\tconst resolvedFetch = opts.fetch ?? globalThis.fetch;\n\t\tif (typeof resolvedFetch !== \"function\") throw adapterConfigError(\"PostgrestDataAdapter: a `fetch` implementation is required (none injected, none on globalThis).\");\n\t\tthis.fetchImpl = resolvedFetch;\n\t}\n\tasync list(resource, params) {\n\t\tconst { schema, table } = splitResource(resource, this.defaultSchema);\n\t\tconst pageSize = params.pageSize ?? this.defaultPageSize;\n\t\tconst page = params.page ?? 1;\n\t\tconst offset = (page - 1) * pageSize;\n\t\tconst query = new URLSearchParams();\n\t\tappendFilters(query, params.filters);\n\t\tappendOrder(query, params.sort);\n\t\tquery.set(\"limit\", String(pageSize));\n\t\tquery.set(\"offset\", String(offset));\n\t\tconst url = `${this.baseUrl}/${encodeURIComponent(table)}?${query.toString()}`;\n\t\tconst headers = {\n\t\t\t...this.staticHeaders,\n\t\t\tAccept: \"application/json\",\n\t\t\tPrefer: \"count=exact\"\n\t\t};\n\t\taddProfileHeader(headers, schema, this.defaultSchema, \"read\");\n\t\tconst response = await this.send(\"GET\", url, headers, void 0);\n\t\tawait assertOk(response, url);\n\t\tconst rows = await readJson(response, url);\n\t\treturn {\n\t\t\trows,\n\t\t\ttotal: parseContentRangeTotal(response.headers.get(\"content-range\"), rows.length),\n\t\t\tpage,\n\t\t\tpageSize\n\t\t};\n\t}\n\tasync get(resource, id) {\n\t\tconst { schema, table } = splitResource(resource, this.defaultSchema);\n\t\tconst primaryKey = this.resolvePrimaryKey(resource);\n\t\tconst query = new URLSearchParams();\n\t\tquery.set(primaryKey, `eq.${id}`);\n\t\tquery.set(\"limit\", \"1\");\n\t\tconst url = `${this.baseUrl}/${encodeURIComponent(table)}?${query.toString()}`;\n\t\tconst headers = {\n\t\t\t...this.staticHeaders,\n\t\t\tAccept: \"application/vnd.pgrst.object+json\"\n\t\t};\n\t\taddProfileHeader(headers, schema, this.defaultSchema, \"read\");\n\t\tconst response = await this.send(\"GET\", url, headers, void 0);\n\t\tawait assertOk(response, url);\n\t\treturn await readJson(response, url);\n\t}\n\tasync create(resource, data) {\n\t\tconst { schema, table } = splitResource(resource, this.defaultSchema);\n\t\tconst url = `${this.baseUrl}/${encodeURIComponent(table)}`;\n\t\tconst headers = this.mutationHeaders(schema);\n\t\tconst response = await this.send(\"POST\", url, headers, JSON.stringify(data));\n\t\tawait assertOk(response, url);\n\t\treturn await readJson(response, url);\n\t}\n\tasync update(resource, id, data) {\n\t\tconst { schema, table } = splitResource(resource, this.defaultSchema);\n\t\tconst primaryKey = this.resolvePrimaryKey(resource);\n\t\tconst query = new URLSearchParams();\n\t\tquery.set(primaryKey, `eq.${id}`);\n\t\tconst url = `${this.baseUrl}/${encodeURIComponent(table)}?${query.toString()}`;\n\t\tconst headers = this.mutationHeaders(schema);\n\t\tconst response = await this.send(\"PATCH\", url, headers, JSON.stringify(data));\n\t\tawait assertOk(response, url);\n\t\treturn await readJson(response, url);\n\t}\n\tasync delete(resource, id) {\n\t\tconst { schema, table } = splitResource(resource, this.defaultSchema);\n\t\tconst primaryKey = this.resolvePrimaryKey(resource);\n\t\tconst query = new URLSearchParams();\n\t\tquery.set(primaryKey, `eq.${id}`);\n\t\tconst url = `${this.baseUrl}/${encodeURIComponent(table)}?${query.toString()}`;\n\t\tconst headers = { ...this.staticHeaders };\n\t\taddProfileHeader(headers, schema, this.defaultSchema, \"write\");\n\t\tawait assertOk(await this.send(\"DELETE\", url, headers, void 0), url);\n\t}\n\tasync searchRelation(resource, params) {\n\t\tconst { schema, table } = splitResource(resource, this.defaultSchema);\n\t\tconst primaryKey = this.resolvePrimaryKey(resource);\n\t\tconst limit = params.limit ?? DEFAULT_RELATION_LIMIT;\n\t\tconst query = new URLSearchParams();\n\t\tquery.set(\"select\", `${primaryKey},${params.labelField}`);\n\t\tif (params.query.length > 0 && params.searchFields.length > 0) {\n\t\t\tconst orExpr = params.searchFields.map((field) => `${field}.ilike.*${params.query}*`).join(\",\");\n\t\t\tquery.set(\"or\", `(${orExpr})`);\n\t\t}\n\t\tquery.set(\"limit\", String(limit));\n\t\tconst url = `${this.baseUrl}/${encodeURIComponent(table)}?${query.toString()}`;\n\t\tconst headers = {\n\t\t\t...this.staticHeaders,\n\t\t\tAccept: \"application/json\"\n\t\t};\n\t\taddProfileHeader(headers, schema, this.defaultSchema, \"read\");\n\t\tconst response = await this.send(\"GET\", url, headers, void 0);\n\t\tawait assertOk(response, url);\n\t\treturn (await readJson(response, url)).map((row) => ({\n\t\t\tid: row[primaryKey],\n\t\t\tlabel: String(row[params.labelField] ?? \"\")\n\t\t}));\n\t}\n\tmutationHeaders(schema) {\n\t\tconst headers = {\n\t\t\t...this.staticHeaders,\n\t\t\tAccept: \"application/vnd.pgrst.object+json\",\n\t\t\t\"Content-Type\": \"application/json\",\n\t\t\tPrefer: \"return=representation\"\n\t\t};\n\t\taddProfileHeader(headers, schema, this.defaultSchema, \"write\");\n\t\treturn headers;\n\t}\n\tasync send(method, url, headers, body) {\n\t\ttry {\n\t\t\treturn await this.fetchImpl(url, {\n\t\t\t\tmethod,\n\t\t\t\theaders,\n\t\t\t\tbody\n\t\t\t});\n\t\t} catch (cause) {\n\t\t\tthrow new PostgrestAdapterError({\n\t\t\t\tmessage: `PostgrestDataAdapter: ${method} ${url} failed before reaching the server: ${cause.message}`,\n\t\t\t\tstatus: 0,\n\t\t\t\turl,\n\t\t\t\tresponseBody: null,\n\t\t\t\tcode: \"network\"\n\t\t\t});\n\t\t}\n\t}\n};\nfunction stripTrailingSlash(url) {\n\treturn url.endsWith(\"/\") ? url.slice(0, -1) : url;\n}\nfunction makePrimaryKeyResolver(pk) {\n\tif (pk === void 0) return () => DEFAULT_PRIMARY_KEY;\n\tif (typeof pk === \"function\") return pk;\n\treturn () => pk;\n}\nfunction splitResource(resource, defaultSchema) {\n\tconst idx = resource.indexOf(\".\");\n\tif (idx === -1) return {\n\t\tschema: defaultSchema,\n\t\ttable: resource\n\t};\n\treturn {\n\t\tschema: resource.slice(0, idx),\n\t\ttable: resource.slice(idx + 1)\n\t};\n}\nfunction appendFilters(query, filters) {\n\tif (!filters) return;\n\tfor (const [key, value] of Object.entries(filters)) {\n\t\tif (value === void 0) continue;\n\t\tif (key === OR_FILTER_KEY) {\n\t\t\tquery.set(\"or\", `(${serializeOrExpression(value)})`);\n\t\t\tcontinue;\n\t\t}\n\t\tquery.set(key, `eq.${serializeFilterValue(value)}`);\n\t}\n}\nfunction serializeOrExpression(value) {\n\tif (typeof value === \"string\") return value;\n\tif (Array.isArray(value)) return value.map(String).join(\",\");\n\treturn String(value);\n}\nfunction serializeFilterValue(value) {\n\tif (value === null) return \"null\";\n\tif (typeof value === \"string\") return value;\n\treturn String(value);\n}\nfunction appendOrder(query, sort) {\n\tif (!sort || sort.length === 0) return;\n\tquery.set(\"order\", sort.map((s) => `${s.field}.${s.order}`).join(\",\"));\n}\nfunction addProfileHeader(headers, schema, defaultSchema, direction) {\n\tif (schema === defaultSchema) return;\n\theaders[direction === \"read\" ? \"Accept-Profile\" : \"Content-Profile\"] = schema;\n}\nfunction parseContentRangeTotal(header, fallback) {\n\tif (!header) return fallback;\n\tconst match = header.match(/\\/(\\d+)$/);\n\tif (!match) return fallback;\n\treturn Number(match[1]);\n}\nasync function readJson(response, url) {\n\ttry {\n\t\treturn await response.json();\n\t} catch (cause) {\n\t\tthrow new PostgrestAdapterError({\n\t\t\tmessage: `PostgrestDataAdapter: failed to parse JSON response from ${url}: ${cause.message}`,\n\t\t\tstatus: response.status,\n\t\t\turl,\n\t\t\tresponseBody: null,\n\t\t\tcode: \"parse\"\n\t\t});\n\t}\n}\nasync function assertOk(response, url) {\n\tif (response.ok) return;\n\tlet body = null;\n\ttry {\n\t\tbody = await response.text();\n\t} catch {\n\t\tbody = null;\n\t}\n\tthrow new PostgrestAdapterError({\n\t\tmessage: `PostgrestDataAdapter: request to ${url} failed with status ${response.status}`,\n\t\tstatus: response.status,\n\t\turl,\n\t\tresponseBody: body,\n\t\tcode: \"http\"\n\t});\n}\nfunction adapterConfigError(message) {\n\treturn new PostgrestAdapterError({\n\t\tmessage,\n\t\tstatus: 0,\n\t\turl: \"\",\n\t\tresponseBody: null,\n\t\tcode: \"config\"\n\t});\n}\n//#endregion\n//#region src/lib/server/adapter.ts\nvar DEFAULT_ADAPTER_URL = \"http://localhost:3000\";\nvar cached = null;\nfunction getAdapter() {\n\tif (cached === null) cached = new PostgrestDataAdapter({ baseUrl: process.env.KOZOU_ADAPTER_URL ?? DEFAULT_ADAPTER_URL });\n\treturn cached;\n}\n//#endregion\nexport { getAdapter as t };\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ //#region ../../node_modules/.pnpm/@sveltejs+kit@2.61.1_@sveltejs+vite-plugin-svelte@7.1.2_svelte@5.55.9_vite@8.0.14_@type_260c3daced0e24b679dd557260bbc4f1/node_modules/@sveltejs/kit/src/runtime/server/app.js
2
+ /** @type {{ decoders: Record<string, (data: any) => any> }} */
3
+ var app;
4
+ /**
5
+ * @param {{ decoders: Record<string, (data: any) => any> }} value
6
+ */
7
+ function set_app(value) {
8
+ app = value;
9
+ }
10
+
11
+ export { app as a, set_app as s };
12
+ //# sourceMappingURL=app-C1bzfcjj.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"app-C1bzfcjj.js","sources":["../../../.svelte-kit/adapter-node/chunks/app.js"],"sourcesContent":["//#region ../../node_modules/.pnpm/@sveltejs+kit@2.61.1_@sveltejs+vite-plugin-svelte@7.1.2_svelte@5.55.9_vite@8.0.14_@type_260c3daced0e24b679dd557260bbc4f1/node_modules/@sveltejs/kit/src/runtime/server/app.js\n/** @type {{ decoders: Record<string, (data: any) => any> }} */\nvar app;\n/**\n* @param {{ decoders: Record<string, (data: any) => any> }} value\n*/\nfunction set_app(value) {\n\tapp = value;\n}\n//#endregion\nexport { set_app as n, app as t };\n"],"names":[],"mappings":"AAAA;AACA;AACG,IAAC;AACJ;AACA;AACA;AACA,SAAS,OAAO,CAAC,KAAK,EAAE;AACxB,CAAC,GAAG,GAAG,KAAK;AACZ;;;;"}
@@ -0,0 +1,69 @@
1
+ import { y as index_server_exports } from './internal-Dtmf8fV4.js';
2
+ import { U as noop } from './dev-yRSoS_kM.js';
3
+
4
+ var is_legacy = noop.toString().includes("$$") || /function \w+\(\) \{\}/.test(noop.toString());
5
+ var placeholder_url = "a:";
6
+ if (is_legacy) {
7
+ ({
8
+ data: {},
9
+ form: null,
10
+ error: null,
11
+ params: {},
12
+ route: { id: null },
13
+ state: {},
14
+ status: -1,
15
+ url: new URL(placeholder_url)
16
+ });
17
+ }
18
+ //#endregion
19
+ //#region ../../node_modules/.pnpm/@sveltejs+kit@2.61.1_@sveltejs+vite-plugin-svelte@7.1.2_svelte@5.55.9_vite@8.0.14_@type_260c3daced0e24b679dd557260bbc4f1/node_modules/@sveltejs/kit/src/runtime/client/client.js
20
+ /** @import { CacheEntry } from './remote-functions/cache.svelte.js' */
21
+ /** @import { Query } from './remote-functions/query/instance.svelte.js' */
22
+ /** @import { LiveQuery } from './remote-functions/query-live/instance.svelte.js' */
23
+ var { onMount, tick } = index_server_exports;
24
+ /** @type {Set<(navigation: import('@sveltejs/kit').AfterNavigate) => void>} */
25
+ var after_navigate_callbacks = /* @__PURE__ */ new Set();
26
+ /**
27
+ * @template {Function} T
28
+ * @param {Set<T>} callbacks
29
+ * @param {T} callback
30
+ */
31
+ function add_navigation_callback(callbacks, callback) {
32
+ onMount(() => {
33
+ callbacks.add(callback);
34
+ return () => {
35
+ callbacks.delete(callback);
36
+ };
37
+ });
38
+ }
39
+ /**
40
+ * A lifecycle function that runs the supplied `callback` when the current component mounts, and also whenever we navigate to a URL.
41
+ *
42
+ * `afterNavigate` must be called during a component initialization. It remains active as long as the component is mounted.
43
+ * @param {(navigation: import('@sveltejs/kit').AfterNavigate) => void} callback
44
+ * @returns {void}
45
+ */
46
+ function afterNavigate(callback) {
47
+ add_navigation_callback(after_navigate_callbacks, callback);
48
+ }
49
+ /**
50
+ * Causes all `load` and `query` functions belonging to the currently active page to re-run. Returns a `Promise` that resolves when the page is subsequently updated.
51
+ * @returns {Promise<void>}
52
+ */
53
+ function invalidateAll() {
54
+ throw new Error("Cannot call invalidateAll() on the server");
55
+ }
56
+ /**
57
+ * This action updates the `form` property of the current page with the given data and updates `page.status`.
58
+ * In case of an error, it redirects to the nearest error page.
59
+ * @template {Record<string, unknown> | undefined} Success
60
+ * @template {Record<string, unknown> | undefined} Failure
61
+ * @param {import('@sveltejs/kit').ActionResult<Success, Failure>} result
62
+ * @returns {Promise<void>}
63
+ */
64
+ async function applyAction(result) {
65
+ throw new Error("Cannot call applyAction(...) on the server");
66
+ }
67
+
68
+ export { afterNavigate as a, applyAction as b, invalidateAll as i };
69
+ //# sourceMappingURL=client-nr13Vsqj.js.map