pagiera 0.2.0-alpha.33

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 (192) hide show
  1. package/README.md +528 -0
  2. package/dist/adapters.d.ts +89 -0
  3. package/dist/adapters.d.ts.map +1 -0
  4. package/dist/adapters.js +2 -0
  5. package/dist/adapters.js.map +1 -0
  6. package/dist/client.d.ts +22 -0
  7. package/dist/client.d.ts.map +1 -0
  8. package/dist/client.js +33 -0
  9. package/dist/client.js.map +1 -0
  10. package/dist/data.js +210 -0
  11. package/dist/data.js.map +7 -0
  12. package/dist/document.d.ts +63 -0
  13. package/dist/document.d.ts.map +1 -0
  14. package/dist/document.js +25 -0
  15. package/dist/document.js.map +1 -0
  16. package/dist/editor.d.ts +14 -0
  17. package/dist/editor.d.ts.map +1 -0
  18. package/dist/editor.js +59 -0
  19. package/dist/editor.js.map +1 -0
  20. package/dist/full-editor.d.ts +53 -0
  21. package/dist/full-editor.js +11117 -0
  22. package/dist/full-editor.js.map +7 -0
  23. package/dist/full.css +3498 -0
  24. package/dist/index.d.ts +8 -0
  25. package/dist/index.d.ts.map +1 -0
  26. package/dist/index.js +7 -0
  27. package/dist/index.js.map +1 -0
  28. package/dist/internal/app/api/ai-design/route.d.ts +3 -0
  29. package/dist/internal/app/api/ai-design/route.d.ts.map +1 -0
  30. package/dist/internal/app/api/ai-design/route.js +165 -0
  31. package/dist/internal/app/api/ai-design/route.js.map +1 -0
  32. package/dist/internal/app/p/editor/ai-panel.d.ts +27 -0
  33. package/dist/internal/app/p/editor/ai-panel.d.ts.map +1 -0
  34. package/dist/internal/app/p/editor/ai-panel.js +77 -0
  35. package/dist/internal/app/p/editor/ai-panel.js.map +1 -0
  36. package/dist/internal/app/p/editor/data-modal.d.ts +26 -0
  37. package/dist/internal/app/p/editor/data-modal.d.ts.map +1 -0
  38. package/dist/internal/app/p/editor/data-modal.js +94 -0
  39. package/dist/internal/app/p/editor/data-modal.js.map +1 -0
  40. package/dist/internal/app/p/editor/data-panel.d.ts +18 -0
  41. package/dist/internal/app/p/editor/data-panel.d.ts.map +1 -0
  42. package/dist/internal/app/p/editor/data-panel.js +45 -0
  43. package/dist/internal/app/p/editor/data-panel.js.map +1 -0
  44. package/dist/internal/app/p/editor/editor.d.ts +51 -0
  45. package/dist/internal/app/p/editor/editor.d.ts.map +1 -0
  46. package/dist/internal/app/p/editor/editor.js +1551 -0
  47. package/dist/internal/app/p/editor/editor.js.map +1 -0
  48. package/dist/internal/app/p/editor/fields.d.ts +111 -0
  49. package/dist/internal/app/p/editor/fields.d.ts.map +1 -0
  50. package/dist/internal/app/p/editor/fields.js +141 -0
  51. package/dist/internal/app/p/editor/fields.js.map +1 -0
  52. package/dist/internal/app/p/editor/inspector.d.ts +38 -0
  53. package/dist/internal/app/p/editor/inspector.d.ts.map +1 -0
  54. package/dist/internal/app/p/editor/inspector.js +336 -0
  55. package/dist/internal/app/p/editor/inspector.js.map +1 -0
  56. package/dist/internal/app/p/editor/library.d.ts +18 -0
  57. package/dist/internal/app/p/editor/library.d.ts.map +1 -0
  58. package/dist/internal/app/p/editor/library.js +61 -0
  59. package/dist/internal/app/p/editor/library.js.map +1 -0
  60. package/dist/internal/app/p/editor/parts.d.ts +75 -0
  61. package/dist/internal/app/p/editor/parts.d.ts.map +1 -0
  62. package/dist/internal/app/p/editor/parts.js +261 -0
  63. package/dist/internal/app/p/editor/parts.js.map +1 -0
  64. package/dist/internal/app/p/editor/templates-panel.d.ts +6 -0
  65. package/dist/internal/app/p/editor/templates-panel.d.ts.map +1 -0
  66. package/dist/internal/app/p/editor/templates-panel.js +12 -0
  67. package/dist/internal/app/p/editor/templates-panel.js.map +1 -0
  68. package/dist/internal/app/p/editor/use-canvas-view.d.ts +24 -0
  69. package/dist/internal/app/p/editor/use-canvas-view.d.ts.map +1 -0
  70. package/dist/internal/app/p/editor/use-canvas-view.js +242 -0
  71. package/dist/internal/app/p/editor/use-canvas-view.js.map +1 -0
  72. package/dist/internal/app/p/editor/use-editor.d.ts +48 -0
  73. package/dist/internal/app/p/editor/use-editor.d.ts.map +1 -0
  74. package/dist/internal/app/p/editor/use-editor.js +224 -0
  75. package/dist/internal/app/p/editor/use-editor.js.map +1 -0
  76. package/dist/internal/app/p/editor/variables-panel.d.ts +8 -0
  77. package/dist/internal/app/p/editor/variables-panel.d.ts.map +1 -0
  78. package/dist/internal/app/p/editor/variables-panel.js +52 -0
  79. package/dist/internal/app/p/editor/variables-panel.js.map +1 -0
  80. package/dist/internal/components/ui/select.d.ts +12 -0
  81. package/dist/internal/components/ui/select.d.ts.map +1 -0
  82. package/dist/internal/components/ui/select.js +32 -0
  83. package/dist/internal/components/ui/select.js.map +1 -0
  84. package/dist/internal/drizzle/index.d.ts +6 -0
  85. package/dist/internal/drizzle/index.d.ts.map +1 -0
  86. package/dist/internal/drizzle/index.js +20 -0
  87. package/dist/internal/drizzle/index.js.map +1 -0
  88. package/dist/internal/drizzle/schema.d.ts +405 -0
  89. package/dist/internal/drizzle/schema.d.ts.map +1 -0
  90. package/dist/internal/drizzle/schema.js +70 -0
  91. package/dist/internal/drizzle/schema.js.map +1 -0
  92. package/dist/internal/lib/data/context.d.ts +8 -0
  93. package/dist/internal/lib/data/context.d.ts.map +1 -0
  94. package/dist/internal/lib/data/context.js +17 -0
  95. package/dist/internal/lib/data/context.js.map +1 -0
  96. package/dist/internal/lib/data/source.d.ts +54 -0
  97. package/dist/internal/lib/data/source.d.ts.map +1 -0
  98. package/dist/internal/lib/data/source.js +229 -0
  99. package/dist/internal/lib/data/source.js.map +1 -0
  100. package/dist/internal/lib/editor/ai-types.d.ts +44 -0
  101. package/dist/internal/lib/editor/ai-types.d.ts.map +1 -0
  102. package/dist/internal/lib/editor/ai-types.js +2 -0
  103. package/dist/internal/lib/editor/ai-types.js.map +1 -0
  104. package/dist/internal/lib/editor/arrange.d.ts +12 -0
  105. package/dist/internal/lib/editor/arrange.d.ts.map +1 -0
  106. package/dist/internal/lib/editor/arrange.js +72 -0
  107. package/dist/internal/lib/editor/arrange.js.map +1 -0
  108. package/dist/internal/lib/editor/cascade.d.ts +39 -0
  109. package/dist/internal/lib/editor/cascade.d.ts.map +1 -0
  110. package/dist/internal/lib/editor/cascade.js +86 -0
  111. package/dist/internal/lib/editor/cascade.js.map +1 -0
  112. package/dist/internal/lib/editor/icon.d.ts +6 -0
  113. package/dist/internal/lib/editor/icon.d.ts.map +1 -0
  114. package/dist/internal/lib/editor/icon.js +13 -0
  115. package/dist/internal/lib/editor/icon.js.map +1 -0
  116. package/dist/internal/lib/editor/presets.d.ts +10 -0
  117. package/dist/internal/lib/editor/presets.d.ts.map +1 -0
  118. package/dist/internal/lib/editor/presets.js +83 -0
  119. package/dist/internal/lib/editor/presets.js.map +1 -0
  120. package/dist/internal/lib/editor/showcase.d.ts +14 -0
  121. package/dist/internal/lib/editor/showcase.d.ts.map +1 -0
  122. package/dist/internal/lib/editor/showcase.js +219 -0
  123. package/dist/internal/lib/editor/showcase.js.map +1 -0
  124. package/dist/internal/lib/editor/site-templates.d.ts +4 -0
  125. package/dist/internal/lib/editor/site-templates.d.ts.map +1 -0
  126. package/dist/internal/lib/editor/site-templates.js +156 -0
  127. package/dist/internal/lib/editor/site-templates.js.map +1 -0
  128. package/dist/internal/lib/editor/snap.d.ts +34 -0
  129. package/dist/internal/lib/editor/snap.d.ts.map +1 -0
  130. package/dist/internal/lib/editor/snap.js +70 -0
  131. package/dist/internal/lib/editor/snap.js.map +1 -0
  132. package/dist/internal/lib/editor/style.d.ts +53 -0
  133. package/dist/internal/lib/editor/style.d.ts.map +1 -0
  134. package/dist/internal/lib/editor/style.js +313 -0
  135. package/dist/internal/lib/editor/style.js.map +1 -0
  136. package/dist/internal/lib/editor/tree.d.ts +72 -0
  137. package/dist/internal/lib/editor/tree.d.ts.map +1 -0
  138. package/dist/internal/lib/editor/tree.js +301 -0
  139. package/dist/internal/lib/editor/tree.js.map +1 -0
  140. package/dist/internal/lib/editor/types.d.ts +273 -0
  141. package/dist/internal/lib/editor/types.d.ts.map +1 -0
  142. package/dist/internal/lib/editor/types.js +411 -0
  143. package/dist/internal/lib/editor/types.js.map +1 -0
  144. package/dist/internal/lib/editor/validate.d.ts +20 -0
  145. package/dist/internal/lib/editor/validate.d.ts.map +1 -0
  146. package/dist/internal/lib/editor/validate.js +467 -0
  147. package/dist/internal/lib/editor/validate.js.map +1 -0
  148. package/dist/internal/lib/pages.d.ts +83 -0
  149. package/dist/internal/lib/pages.d.ts.map +1 -0
  150. package/dist/internal/lib/pages.js +294 -0
  151. package/dist/internal/lib/pages.js.map +1 -0
  152. package/dist/internal/lib/render/bind.d.ts +18 -0
  153. package/dist/internal/lib/render/bind.d.ts.map +1 -0
  154. package/dist/internal/lib/render/bind.js +28 -0
  155. package/dist/internal/lib/render/bind.js.map +1 -0
  156. package/dist/internal/lib/render/css.d.ts +31 -0
  157. package/dist/internal/lib/render/css.d.ts.map +1 -0
  158. package/dist/internal/lib/render/css.js +239 -0
  159. package/dist/internal/lib/render/css.js.map +1 -0
  160. package/dist/internal/lib/render/load-data.d.ts +15 -0
  161. package/dist/internal/lib/render/load-data.d.ts.map +1 -0
  162. package/dist/internal/lib/render/load-data.js +39 -0
  163. package/dist/internal/lib/render/load-data.js.map +1 -0
  164. package/dist/internal/lib/render/page-render.d.ts +17 -0
  165. package/dist/internal/lib/render/page-render.d.ts.map +1 -0
  166. package/dist/internal/lib/render/page-render.js +117 -0
  167. package/dist/internal/lib/render/page-render.js.map +1 -0
  168. package/dist/internal/lib/utils.d.ts +3 -0
  169. package/dist/internal/lib/utils.d.ts.map +1 -0
  170. package/dist/internal/lib/utils.js +6 -0
  171. package/dist/internal/lib/utils.js.map +1 -0
  172. package/dist/manrope-data.d.ts +3 -0
  173. package/dist/manrope-data.d.ts.map +1 -0
  174. package/dist/manrope-data.js +3 -0
  175. package/dist/manrope-data.js.map +1 -0
  176. package/dist/page.d.ts +9 -0
  177. package/dist/page.d.ts.map +1 -0
  178. package/dist/page.js +148 -0
  179. package/dist/page.js.map +1 -0
  180. package/dist/provider.d.ts +14 -0
  181. package/dist/provider.d.ts.map +1 -0
  182. package/dist/provider.js +45 -0
  183. package/dist/provider.js.map +1 -0
  184. package/dist/runtime.d.ts +8 -0
  185. package/dist/runtime.js +717 -0
  186. package/dist/runtime.js.map +7 -0
  187. package/dist/server.d.ts +31 -0
  188. package/dist/server.js +2267 -0
  189. package/dist/server.js.map +7 -0
  190. package/dist/styles.css +300 -0
  191. package/package.json +94 -0
  192. package/thumbnail.png +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"select.d.ts","sourceRoot":"","sources":["../../../../src/internal/components/ui/select.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,EAAE,MAAM,IAAI,eAAe,EAAE,MAAM,UAAU,CAAA;AAIpD,QAAA,MAAM,MAAM,uCAAuB,CAAA;AACnC,QAAA,MAAM,WAAW,yGAAwB,CAAA;AACzC,QAAA,MAAM,WAAW,0GAAwB,CAAA;AAEzC,iBAAS,aAAa,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,eAAe,CAAC,OAAO,CAAC,qBAgB7G;AAED,iBAAS,aAAa,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAmB,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,eAAe,CAAC,OAAO,CAAC,qBAsClI;AAED,iBAAS,WAAW,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,eAAe,CAAC,KAAK,CAAC,qBAE/F;AAED,iBAAS,UAAU,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,eAAe,CAAC,IAAI,CAAC,qBAiBvG;AAED,iBAAS,eAAe,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,eAAe,CAAC,SAAS,CAAC,qBAEvG;AAED,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,WAAW,EAAE,UAAU,EAAE,WAAW,EAAE,eAAe,EAAE,aAAa,EAAE,WAAW,EAAE,CAAA"}
@@ -0,0 +1,32 @@
1
+ "use client";
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import { IconCheck, IconChevronDown, IconChevronUp } from "@tabler/icons-react";
4
+ import * as React from "react";
5
+ import { Select as SelectPrimitive } from "radix-ui";
6
+ import { cn } from "@/lib/utils";
7
+ const Select = SelectPrimitive.Root;
8
+ const SelectGroup = SelectPrimitive.Group;
9
+ const SelectValue = SelectPrimitive.Value;
10
+ function SelectTrigger({ className, children, ...props }) {
11
+ return (_jsxs(SelectPrimitive.Trigger, { "data-slot": "select-trigger", className: cn("group flex h-8 w-full min-w-36 items-center justify-between gap-2.5 rounded-md border border-ed-border bg-ed-field px-3 text-xs font-medium text-ed-text outline-none transition-colors hover:bg-ed-field-hover focus:border-ed-accent data-[placeholder]:text-ed-muted disabled:cursor-not-allowed disabled:opacity-50", className), ...props, children: [_jsx("span", { className: "truncate", children: children }), _jsx(SelectPrimitive.Icon, { asChild: true, children: _jsx(IconChevronDown, { className: "size-3.5 shrink-0 text-ed-muted transition-transform duration-200 group-data-[state=open]:rotate-180" }) })] }));
12
+ }
13
+ function SelectContent({ className, children, position = "popper", ...props }) {
14
+ const [portalContainer, setPortalContainer] = React.useState(null);
15
+ React.useEffect(() => {
16
+ setPortalContainer(document.querySelector(".pg-editor"));
17
+ }, []);
18
+ return (_jsx(SelectPrimitive.Portal, { container: portalContainer ?? undefined, children: _jsxs(SelectPrimitive.Content, { "data-slot": "select-content", position: position, className: cn("relative z-[9999] max-h-96 min-w-[8rem] overflow-hidden rounded-md border border-ed-border bg-ed-surface text-ed-text shadow-md data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2", position === "popper" &&
19
+ "data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1", className), ...props, children: [_jsx(SelectPrimitive.ScrollUpButton, { className: "flex cursor-default items-center justify-center py-1 text-ed-muted hover:text-ed-text", children: _jsx(IconChevronUp, { className: "size-3.5" }) }), _jsx(SelectPrimitive.Viewport, { className: cn("p-1", position === "popper" &&
20
+ "h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)]"), children: children }), _jsx(SelectPrimitive.ScrollDownButton, { className: "flex cursor-default items-center justify-center py-1 text-ed-muted hover:text-ed-text", children: _jsx(IconChevronDown, { className: "size-3.5" }) })] }) }));
21
+ }
22
+ function SelectLabel({ className, ...props }) {
23
+ return _jsx(SelectPrimitive.Label, { className: cn("px-2.5 py-1.5 text-[11px] font-semibold tracking-wider text-ed-muted uppercase", className), ...props });
24
+ }
25
+ function SelectItem({ className, children, ...props }) {
26
+ return (_jsxs(SelectPrimitive.Item, { className: cn("relative flex w-full cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2.5 text-xs font-medium text-ed-text outline-none transition-colors data-[highlighted]:bg-ed-field-hover data-[highlighted]:text-ed-text data-[disabled]:pointer-events-none data-[disabled]:opacity-50", className), ...props, children: [_jsx("span", { className: "absolute left-2.5 flex size-3.5 items-center justify-center text-ed-accent", children: _jsx(SelectPrimitive.ItemIndicator, { children: _jsx(IconCheck, { className: "size-4" }) }) }), _jsx(SelectPrimitive.ItemText, { children: children })] }));
27
+ }
28
+ function SelectSeparator({ className, ...props }) {
29
+ return _jsx(SelectPrimitive.Separator, { className: cn("-mx-1 my-1 h-px bg-ed-border", className), ...props });
30
+ }
31
+ export { Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectSeparator, SelectTrigger, SelectValue };
32
+ //# sourceMappingURL=select.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"select.js","sourceRoot":"","sources":["../../../../src/internal/components/ui/select.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ import { Pool } from "pg";
2
+ export declare const db: import("drizzle-orm/node-postgres").NodePgDatabase<import("drizzle-orm").EmptyRelations> & {
3
+ $client: Pool;
4
+ };
5
+ export * from "./schema";
6
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/internal/drizzle/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,IAAI,CAAC;AAyB1B,eAAO,MAAM,EAAE;;CAA4B,CAAC;AAE5C,cAAc,UAAU,CAAC"}
@@ -0,0 +1,20 @@
1
+ import { drizzle } from "drizzle-orm/node-postgres";
2
+ import { Pool } from "pg";
3
+ const connectionString = process.env.DATABASE_URL;
4
+ if (!connectionString) {
5
+ throw new Error("DATABASE_URL is not set. Copy .env.example to .env.local and start Postgres with `docker compose up -d`.");
6
+ }
7
+ /**
8
+ * Next's dev server re-evaluates modules on every hot reload, which would open
9
+ * a fresh pool each time and exhaust Postgres connections. Cache it on
10
+ * globalThis so reloads reuse the same pool.
11
+ */
12
+ const globalForDb = globalThis;
13
+ const pool = globalForDb.pagieraPool ??
14
+ new Pool({ connectionString, max: 10, idleTimeoutMillis: 30000 });
15
+ if (process.env.NODE_ENV !== "production") {
16
+ globalForDb.pagieraPool = pool;
17
+ }
18
+ export const db = drizzle({ client: pool });
19
+ export * from "./schema";
20
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/internal/drizzle/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,2BAA2B,CAAC;AACpD,OAAO,EAAE,IAAI,EAAE,MAAM,IAAI,CAAC;AAE1B,MAAM,gBAAgB,GAAG,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC;AAElD,IAAI,CAAC,gBAAgB,EAAE,CAAC;IACpB,MAAM,IAAI,KAAK,CACX,0GAA0G,CAC7G,CAAC;AACN,CAAC;AAED;;;;GAIG;AACH,MAAM,WAAW,GAAG,UAA+C,CAAC;AAEpE,MAAM,IAAI,GACN,WAAW,CAAC,WAAW;IACvB,IAAI,IAAI,CAAC,EAAE,gBAAgB,EAAE,GAAG,EAAE,EAAE,EAAE,iBAAiB,EAAE,KAAM,EAAE,CAAC,CAAC;AAEvE,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,YAAY,EAAE,CAAC;IACxC,WAAW,CAAC,WAAW,GAAG,IAAI,CAAC;AACnC,CAAC;AAED,MAAM,CAAC,MAAM,EAAE,GAAG,OAAO,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;AAE5C,cAAc,UAAU,CAAC"}
@@ -0,0 +1,405 @@
1
+ import { type CanvasElement, type DataSource, type RootStyle } from "../lib/editor/types";
2
+ export declare const sites: import("drizzle-orm/pg-core").PgTableWithColumns<{
3
+ name: "sites";
4
+ schema: undefined;
5
+ columns: {
6
+ id: import("drizzle-orm/pg-core").PgBuildColumn<"sites", import("drizzle-orm/pg-core").SetHasDefault<import("drizzle-orm/pg-core").SetIsPrimaryKey<import("drizzle-orm/pg-core").PgUUIDBuilder>>, {
7
+ name: string;
8
+ tableName: "sites";
9
+ dataType: "string uuid";
10
+ data: string;
11
+ driverParam: string;
12
+ notNull: true;
13
+ hasDefault: true;
14
+ isPrimaryKey: false;
15
+ isAutoincrement: false;
16
+ hasRuntimeDefault: false;
17
+ enumValues: undefined;
18
+ identity: undefined;
19
+ generated: undefined;
20
+ }>;
21
+ name: import("drizzle-orm/pg-core").PgBuildColumn<"sites", import("drizzle-orm/pg-core").SetNotNull<import("drizzle-orm/pg-core").PgTextBuilder<[string, ...string[]]>>, {
22
+ name: string;
23
+ tableName: "sites";
24
+ dataType: "string";
25
+ data: string;
26
+ driverParam: string;
27
+ notNull: true;
28
+ hasDefault: false;
29
+ isPrimaryKey: false;
30
+ isAutoincrement: false;
31
+ hasRuntimeDefault: false;
32
+ enumValues: undefined;
33
+ identity: undefined;
34
+ generated: undefined;
35
+ }>;
36
+ slug: import("drizzle-orm/pg-core").PgBuildColumn<"sites", import("drizzle-orm/pg-core").SetNotNull<import("drizzle-orm/pg-core").PgTextBuilder<[string, ...string[]]>>, {
37
+ name: string;
38
+ tableName: "sites";
39
+ dataType: "string";
40
+ data: string;
41
+ driverParam: string;
42
+ notNull: true;
43
+ hasDefault: false;
44
+ isPrimaryKey: false;
45
+ isAutoincrement: false;
46
+ hasRuntimeDefault: false;
47
+ enumValues: undefined;
48
+ identity: undefined;
49
+ generated: undefined;
50
+ }>;
51
+ createdAt: import("drizzle-orm/pg-core").PgBuildColumn<"sites", import("drizzle-orm/pg-core").SetHasDefault<import("drizzle-orm/pg-core").SetNotNull<import("drizzle-orm/pg-core").PgTimestampBuilder>>, {
52
+ name: string;
53
+ tableName: "sites";
54
+ dataType: "object date";
55
+ data: Date;
56
+ driverParam: string;
57
+ notNull: true;
58
+ hasDefault: true;
59
+ isPrimaryKey: false;
60
+ isAutoincrement: false;
61
+ hasRuntimeDefault: false;
62
+ enumValues: undefined;
63
+ identity: undefined;
64
+ generated: undefined;
65
+ }>;
66
+ updatedAt: import("drizzle-orm/pg-core").PgBuildColumn<"sites", import("drizzle-orm/pg-core").SetHasDefault<import("drizzle-orm/pg-core").SetNotNull<import("drizzle-orm/pg-core").PgTimestampBuilder>>, {
67
+ name: string;
68
+ tableName: "sites";
69
+ dataType: "object date";
70
+ data: Date;
71
+ driverParam: string;
72
+ notNull: true;
73
+ hasDefault: true;
74
+ isPrimaryKey: false;
75
+ isAutoincrement: false;
76
+ hasRuntimeDefault: false;
77
+ enumValues: undefined;
78
+ identity: undefined;
79
+ generated: undefined;
80
+ }>;
81
+ };
82
+ dialect: "pg";
83
+ }>;
84
+ export declare const pages: import("drizzle-orm/pg-core").PgTableWithColumns<{
85
+ name: "pages";
86
+ schema: undefined;
87
+ columns: {
88
+ id: import("drizzle-orm/pg-core").PgBuildColumn<"pages", import("drizzle-orm/pg-core").SetHasDefault<import("drizzle-orm/pg-core").SetIsPrimaryKey<import("drizzle-orm/pg-core").PgUUIDBuilder>>, {
89
+ name: string;
90
+ tableName: "pages";
91
+ dataType: "string uuid";
92
+ data: string;
93
+ driverParam: string;
94
+ notNull: true;
95
+ hasDefault: true;
96
+ isPrimaryKey: false;
97
+ isAutoincrement: false;
98
+ hasRuntimeDefault: false;
99
+ enumValues: undefined;
100
+ identity: undefined;
101
+ generated: undefined;
102
+ }>;
103
+ siteId: import("drizzle-orm/pg-core").PgBuildColumn<"pages", import("drizzle-orm/pg-core").SetNotNull<import("drizzle-orm/pg-core").PgUUIDBuilder>, {
104
+ name: string;
105
+ tableName: "pages";
106
+ dataType: "string uuid";
107
+ data: string;
108
+ driverParam: string;
109
+ notNull: true;
110
+ hasDefault: false;
111
+ isPrimaryKey: false;
112
+ isAutoincrement: false;
113
+ hasRuntimeDefault: false;
114
+ enumValues: undefined;
115
+ identity: undefined;
116
+ generated: undefined;
117
+ }>;
118
+ name: import("drizzle-orm/pg-core").PgBuildColumn<"pages", import("drizzle-orm/pg-core").SetNotNull<import("drizzle-orm/pg-core").PgTextBuilder<[string, ...string[]]>>, {
119
+ name: string;
120
+ tableName: "pages";
121
+ dataType: "string";
122
+ data: string;
123
+ driverParam: string;
124
+ notNull: true;
125
+ hasDefault: false;
126
+ isPrimaryKey: false;
127
+ isAutoincrement: false;
128
+ hasRuntimeDefault: false;
129
+ enumValues: undefined;
130
+ identity: undefined;
131
+ generated: undefined;
132
+ }>;
133
+ slug: import("drizzle-orm/pg-core").PgBuildColumn<"pages", import("drizzle-orm/pg-core").SetNotNull<import("drizzle-orm/pg-core").PgTextBuilder<[string, ...string[]]>>, {
134
+ name: string;
135
+ tableName: "pages";
136
+ dataType: "string";
137
+ data: string;
138
+ driverParam: string;
139
+ notNull: true;
140
+ hasDefault: false;
141
+ isPrimaryKey: false;
142
+ isAutoincrement: false;
143
+ hasRuntimeDefault: false;
144
+ enumValues: undefined;
145
+ identity: undefined;
146
+ generated: undefined;
147
+ }>;
148
+ elements: import("drizzle-orm/pg-core").PgBuildColumn<"pages", import("drizzle-orm/pg-core").SetHasDefault<import("drizzle-orm/pg-core").SetNotNull<import("drizzle-orm/pg-core").Set$Type<import("drizzle-orm/pg-core").PgJsonbBuilder, CanvasElement[]>>>, {
149
+ name: string;
150
+ tableName: "pages";
151
+ dataType: "object json";
152
+ data: CanvasElement[];
153
+ driverParam: unknown;
154
+ notNull: true;
155
+ hasDefault: true;
156
+ isPrimaryKey: false;
157
+ isAutoincrement: false;
158
+ hasRuntimeDefault: false;
159
+ enumValues: undefined;
160
+ identity: undefined;
161
+ generated: undefined;
162
+ }>;
163
+ rootStyle: import("drizzle-orm/pg-core").PgBuildColumn<"pages", import("drizzle-orm/pg-core").SetHasDefault<import("drizzle-orm/pg-core").SetNotNull<import("drizzle-orm/pg-core").Set$Type<import("drizzle-orm/pg-core").PgJsonbBuilder, RootStyle>>>, {
164
+ name: string;
165
+ tableName: "pages";
166
+ dataType: "object json";
167
+ data: RootStyle;
168
+ driverParam: unknown;
169
+ notNull: true;
170
+ hasDefault: true;
171
+ isPrimaryKey: false;
172
+ isAutoincrement: false;
173
+ hasRuntimeDefault: false;
174
+ enumValues: undefined;
175
+ identity: undefined;
176
+ generated: undefined;
177
+ }>;
178
+ dataSources: import("drizzle-orm/pg-core").PgBuildColumn<"pages", import("drizzle-orm/pg-core").SetHasDefault<import("drizzle-orm/pg-core").SetNotNull<import("drizzle-orm/pg-core").Set$Type<import("drizzle-orm/pg-core").PgJsonbBuilder, DataSource[]>>>, {
179
+ name: string;
180
+ tableName: "pages";
181
+ dataType: "object json";
182
+ data: DataSource[];
183
+ driverParam: unknown;
184
+ notNull: true;
185
+ hasDefault: true;
186
+ isPrimaryKey: false;
187
+ isAutoincrement: false;
188
+ hasRuntimeDefault: false;
189
+ enumValues: undefined;
190
+ identity: undefined;
191
+ generated: undefined;
192
+ }>;
193
+ version: import("drizzle-orm/pg-core").PgBuildColumn<"pages", import("drizzle-orm/pg-core").SetHasDefault<import("drizzle-orm/pg-core").SetNotNull<import("drizzle-orm/pg-core").PgIntegerBuilder>>, {
194
+ name: string;
195
+ tableName: "pages";
196
+ dataType: "number int32";
197
+ data: number;
198
+ driverParam: string | number;
199
+ notNull: true;
200
+ hasDefault: true;
201
+ isPrimaryKey: false;
202
+ isAutoincrement: false;
203
+ hasRuntimeDefault: false;
204
+ enumValues: undefined;
205
+ identity: undefined;
206
+ generated: undefined;
207
+ }>;
208
+ publishedElements: import("drizzle-orm/pg-core").PgBuildColumn<"pages", import("drizzle-orm/pg-core").Set$Type<import("drizzle-orm/pg-core").PgJsonbBuilder, CanvasElement[]>, {
209
+ name: string;
210
+ tableName: "pages";
211
+ dataType: "object json";
212
+ data: CanvasElement[];
213
+ driverParam: unknown;
214
+ notNull: false;
215
+ hasDefault: false;
216
+ isPrimaryKey: false;
217
+ isAutoincrement: false;
218
+ hasRuntimeDefault: false;
219
+ enumValues: undefined;
220
+ identity: undefined;
221
+ generated: undefined;
222
+ }>;
223
+ publishedRootStyle: import("drizzle-orm/pg-core").PgBuildColumn<"pages", import("drizzle-orm/pg-core").Set$Type<import("drizzle-orm/pg-core").PgJsonbBuilder, RootStyle>, {
224
+ name: string;
225
+ tableName: "pages";
226
+ dataType: "object json";
227
+ data: RootStyle;
228
+ driverParam: unknown;
229
+ notNull: false;
230
+ hasDefault: false;
231
+ isPrimaryKey: false;
232
+ isAutoincrement: false;
233
+ hasRuntimeDefault: false;
234
+ enumValues: undefined;
235
+ identity: undefined;
236
+ generated: undefined;
237
+ }>;
238
+ publishedDataSources: import("drizzle-orm/pg-core").PgBuildColumn<"pages", import("drizzle-orm/pg-core").Set$Type<import("drizzle-orm/pg-core").PgJsonbBuilder, DataSource[]>, {
239
+ name: string;
240
+ tableName: "pages";
241
+ dataType: "object json";
242
+ data: DataSource[];
243
+ driverParam: unknown;
244
+ notNull: false;
245
+ hasDefault: false;
246
+ isPrimaryKey: false;
247
+ isAutoincrement: false;
248
+ hasRuntimeDefault: false;
249
+ enumValues: undefined;
250
+ identity: undefined;
251
+ generated: undefined;
252
+ }>;
253
+ publishedAt: import("drizzle-orm/pg-core").PgBuildColumn<"pages", import("drizzle-orm/pg-core").PgTimestampBuilder, {
254
+ name: string;
255
+ tableName: "pages";
256
+ dataType: "object date";
257
+ data: Date;
258
+ driverParam: string;
259
+ notNull: false;
260
+ hasDefault: false;
261
+ isPrimaryKey: false;
262
+ isAutoincrement: false;
263
+ hasRuntimeDefault: false;
264
+ enumValues: undefined;
265
+ identity: undefined;
266
+ generated: undefined;
267
+ }>;
268
+ createdAt: import("drizzle-orm/pg-core").PgBuildColumn<"pages", import("drizzle-orm/pg-core").SetHasDefault<import("drizzle-orm/pg-core").SetNotNull<import("drizzle-orm/pg-core").PgTimestampBuilder>>, {
269
+ name: string;
270
+ tableName: "pages";
271
+ dataType: "object date";
272
+ data: Date;
273
+ driverParam: string;
274
+ notNull: true;
275
+ hasDefault: true;
276
+ isPrimaryKey: false;
277
+ isAutoincrement: false;
278
+ hasRuntimeDefault: false;
279
+ enumValues: undefined;
280
+ identity: undefined;
281
+ generated: undefined;
282
+ }>;
283
+ updatedAt: import("drizzle-orm/pg-core").PgBuildColumn<"pages", import("drizzle-orm/pg-core").SetHasDefault<import("drizzle-orm/pg-core").SetNotNull<import("drizzle-orm/pg-core").PgTimestampBuilder>>, {
284
+ name: string;
285
+ tableName: "pages";
286
+ dataType: "object date";
287
+ data: Date;
288
+ driverParam: string;
289
+ notNull: true;
290
+ hasDefault: true;
291
+ isPrimaryKey: false;
292
+ isAutoincrement: false;
293
+ hasRuntimeDefault: false;
294
+ enumValues: undefined;
295
+ identity: undefined;
296
+ generated: undefined;
297
+ }>;
298
+ };
299
+ dialect: "pg";
300
+ }>;
301
+ /**
302
+ * Append-only snapshot taken on each successful save, so undo survives a
303
+ * reload and a bad autosave can be rolled back.
304
+ */
305
+ export declare const pageRevisions: import("drizzle-orm/pg-core").PgTableWithColumns<{
306
+ name: "page_revisions";
307
+ schema: undefined;
308
+ columns: {
309
+ id: import("drizzle-orm/pg-core").PgBuildColumn<"page_revisions", import("drizzle-orm/pg-core").SetHasDefault<import("drizzle-orm/pg-core").SetIsPrimaryKey<import("drizzle-orm/pg-core").PgUUIDBuilder>>, {
310
+ name: string;
311
+ tableName: "page_revisions";
312
+ dataType: "string uuid";
313
+ data: string;
314
+ driverParam: string;
315
+ notNull: true;
316
+ hasDefault: true;
317
+ isPrimaryKey: false;
318
+ isAutoincrement: false;
319
+ hasRuntimeDefault: false;
320
+ enumValues: undefined;
321
+ identity: undefined;
322
+ generated: undefined;
323
+ }>;
324
+ pageId: import("drizzle-orm/pg-core").PgBuildColumn<"page_revisions", import("drizzle-orm/pg-core").SetNotNull<import("drizzle-orm/pg-core").PgUUIDBuilder>, {
325
+ name: string;
326
+ tableName: "page_revisions";
327
+ dataType: "string uuid";
328
+ data: string;
329
+ driverParam: string;
330
+ notNull: true;
331
+ hasDefault: false;
332
+ isPrimaryKey: false;
333
+ isAutoincrement: false;
334
+ hasRuntimeDefault: false;
335
+ enumValues: undefined;
336
+ identity: undefined;
337
+ generated: undefined;
338
+ }>;
339
+ version: import("drizzle-orm/pg-core").PgBuildColumn<"page_revisions", import("drizzle-orm/pg-core").SetNotNull<import("drizzle-orm/pg-core").PgIntegerBuilder>, {
340
+ name: string;
341
+ tableName: "page_revisions";
342
+ dataType: "number int32";
343
+ data: number;
344
+ driverParam: string | number;
345
+ notNull: true;
346
+ hasDefault: false;
347
+ isPrimaryKey: false;
348
+ isAutoincrement: false;
349
+ hasRuntimeDefault: false;
350
+ enumValues: undefined;
351
+ identity: undefined;
352
+ generated: undefined;
353
+ }>;
354
+ elements: import("drizzle-orm/pg-core").PgBuildColumn<"page_revisions", import("drizzle-orm/pg-core").SetNotNull<import("drizzle-orm/pg-core").Set$Type<import("drizzle-orm/pg-core").PgJsonbBuilder, CanvasElement[]>>, {
355
+ name: string;
356
+ tableName: "page_revisions";
357
+ dataType: "object json";
358
+ data: CanvasElement[];
359
+ driverParam: unknown;
360
+ notNull: true;
361
+ hasDefault: false;
362
+ isPrimaryKey: false;
363
+ isAutoincrement: false;
364
+ hasRuntimeDefault: false;
365
+ enumValues: undefined;
366
+ identity: undefined;
367
+ generated: undefined;
368
+ }>;
369
+ rootStyle: import("drizzle-orm/pg-core").PgBuildColumn<"page_revisions", import("drizzle-orm/pg-core").Set$Type<import("drizzle-orm/pg-core").PgJsonbBuilder, RootStyle>, {
370
+ name: string;
371
+ tableName: "page_revisions";
372
+ dataType: "object json";
373
+ data: RootStyle;
374
+ driverParam: unknown;
375
+ notNull: false;
376
+ hasDefault: false;
377
+ isPrimaryKey: false;
378
+ isAutoincrement: false;
379
+ hasRuntimeDefault: false;
380
+ enumValues: undefined;
381
+ identity: undefined;
382
+ generated: undefined;
383
+ }>;
384
+ createdAt: import("drizzle-orm/pg-core").PgBuildColumn<"page_revisions", import("drizzle-orm/pg-core").SetHasDefault<import("drizzle-orm/pg-core").SetNotNull<import("drizzle-orm/pg-core").PgTimestampBuilder>>, {
385
+ name: string;
386
+ tableName: "page_revisions";
387
+ dataType: "object date";
388
+ data: Date;
389
+ driverParam: string;
390
+ notNull: true;
391
+ hasDefault: true;
392
+ isPrimaryKey: false;
393
+ isAutoincrement: false;
394
+ hasRuntimeDefault: false;
395
+ enumValues: undefined;
396
+ identity: undefined;
397
+ generated: undefined;
398
+ }>;
399
+ };
400
+ dialect: "pg";
401
+ }>;
402
+ export type Site = typeof sites.$inferSelect;
403
+ export type Page = typeof pages.$inferSelect;
404
+ export type PageRevision = typeof pageRevisions.$inferSelect;
405
+ //# sourceMappingURL=schema.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../src/internal/drizzle/schema.ts"],"names":[],"mappings":"AAUA,OAAO,EACH,KAAK,aAAa,EAClB,KAAK,UAAU,EAEf,KAAK,SAAS,EACjB,MAAM,qBAAqB,CAAC;AAE7B,eAAO,MAAM,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAcjB,CAAC;AAEF,eAAO,MAAM,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA2CjB,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAezB,CAAC;AAEF,MAAM,MAAM,IAAI,GAAG,OAAO,KAAK,CAAC,YAAY,CAAC;AAC7C,MAAM,MAAM,IAAI,GAAG,OAAO,KAAK,CAAC,YAAY,CAAC;AAC7C,MAAM,MAAM,YAAY,GAAG,OAAO,aAAa,CAAC,YAAY,CAAC"}
@@ -0,0 +1,70 @@
1
+ import { index, integer, jsonb, pgTable, text, timestamp, uniqueIndex, uuid, } from "drizzle-orm/pg-core";
2
+ import { DEFAULT_ROOT_STYLE, } from "../lib/editor/types";
3
+ export const sites = pgTable("sites", {
4
+ id: uuid("id").primaryKey().defaultRandom(),
5
+ name: text("name").notNull(),
6
+ slug: text("slug").notNull(),
7
+ createdAt: timestamp("created_at", { withTimezone: true })
8
+ .notNull()
9
+ .defaultNow(),
10
+ updatedAt: timestamp("updated_at", { withTimezone: true })
11
+ .notNull()
12
+ .defaultNow(),
13
+ }, (t) => [uniqueIndex("sites_slug_key").on(t.slug)]);
14
+ export const pages = pgTable("pages", {
15
+ id: uuid("id").primaryKey().defaultRandom(),
16
+ siteId: uuid("site_id")
17
+ .notNull()
18
+ .references(() => sites.id, { onDelete: "cascade" }),
19
+ name: text("name").notNull(),
20
+ slug: text("slug").notNull(),
21
+ /**
22
+ * Flat list of canvas elements; nesting is expressed through
23
+ * `parentId`, mirroring the editor's in-memory state exactly so a save
24
+ * is a single atomic write instead of a per-element diff.
25
+ */
26
+ elements: jsonb("elements").$type().notNull().default([]),
27
+ /** Page-level container settings: max width, background, root layout. */
28
+ rootStyle: jsonb("root_style")
29
+ .$type()
30
+ .notNull()
31
+ .default(DEFAULT_ROOT_STYLE),
32
+ /** JSON endpoints this page pulls content from. */
33
+ dataSources: jsonb("data_sources").$type().notNull().default([]),
34
+ /** Bumped on every write; used for optimistic concurrency on save. */
35
+ version: integer("version").notNull().default(1),
36
+ /**
37
+ * Snapshot taken by Publish. The public site reads these columns, so
38
+ * drafts never leak before the author is ready.
39
+ */
40
+ publishedElements: jsonb("published_elements").$type(),
41
+ publishedRootStyle: jsonb("published_root_style").$type(),
42
+ publishedDataSources: jsonb("published_data_sources").$type(),
43
+ publishedAt: timestamp("published_at", { withTimezone: true }),
44
+ createdAt: timestamp("created_at", { withTimezone: true })
45
+ .notNull()
46
+ .defaultNow(),
47
+ updatedAt: timestamp("updated_at", { withTimezone: true })
48
+ .notNull()
49
+ .defaultNow(),
50
+ }, (t) => [
51
+ uniqueIndex("pages_site_id_slug_key").on(t.siteId, t.slug),
52
+ index("pages_site_id_idx").on(t.siteId),
53
+ ]);
54
+ /**
55
+ * Append-only snapshot taken on each successful save, so undo survives a
56
+ * reload and a bad autosave can be rolled back.
57
+ */
58
+ export const pageRevisions = pgTable("page_revisions", {
59
+ id: uuid("id").primaryKey().defaultRandom(),
60
+ pageId: uuid("page_id")
61
+ .notNull()
62
+ .references(() => pages.id, { onDelete: "cascade" }),
63
+ version: integer("version").notNull(),
64
+ elements: jsonb("elements").$type().notNull(),
65
+ rootStyle: jsonb("root_style").$type(),
66
+ createdAt: timestamp("created_at", { withTimezone: true })
67
+ .notNull()
68
+ .defaultNow(),
69
+ }, (t) => [index("page_revisions_page_id_created_at_idx").on(t.pageId, t.createdAt)]);
70
+ //# sourceMappingURL=schema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../src/internal/drizzle/schema.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import type { RequestContext } from "@/lib/editor/types";
2
+ /**
3
+ * Narrows Next's `searchParams` into the flat string map a request token can
4
+ * read. Repeated keys collapse to the first value, which is what a template
5
+ * like `{{query.id}}` means.
6
+ */
7
+ export declare function toRequestContext(searchParams: Record<string, string | string[] | undefined>, slug: string, params?: Record<string, string>): RequestContext;
8
+ //# sourceMappingURL=context.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../../../src/internal/lib/data/context.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEzD;;;;GAIG;AACH,wBAAgB,gBAAgB,CAC5B,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,SAAS,CAAC,EAC3D,IAAI,EAAE,MAAM,EACZ,MAAM,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAM,GACpC,cAAc,CAShB"}
@@ -0,0 +1,17 @@
1
+ /**
2
+ * Narrows Next's `searchParams` into the flat string map a request token can
3
+ * read. Repeated keys collapse to the first value, which is what a template
4
+ * like `{{query.id}}` means.
5
+ */
6
+ export function toRequestContext(searchParams, slug, params = {}) {
7
+ const query = {};
8
+ for (const [key, value] of Object.entries(searchParams)) {
9
+ if (typeof value === "string")
10
+ query[key] = value;
11
+ else if (Array.isArray(value) && typeof value[0] === "string") {
12
+ query[key] = value[0];
13
+ }
14
+ }
15
+ return { query, params, page: { slug } };
16
+ }
17
+ //# sourceMappingURL=context.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context.js","sourceRoot":"","sources":["../../../../src/internal/lib/data/context.ts"],"names":[],"mappings":"AAEA;;;;GAIG;AACH,MAAM,UAAU,gBAAgB,CAC5B,YAA2D,EAC3D,IAAY,EACZ,SAAiC,EAAE;IAEnC,MAAM,KAAK,GAA2B,EAAE,CAAC;IACzC,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,CAAC;QACtD,IAAI,OAAO,KAAK,KAAK,QAAQ;YAAE,KAAK,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;aAC7C,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,OAAO,KAAK,CAAC,CAAC,CAAC,KAAK,QAAQ,EAAE,CAAC;YAC5D,KAAK,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QAC1B,CAAC;IACL,CAAC;IACD,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE,CAAC;AAC7C,CAAC"}