dineway 0.1.3

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 (96) hide show
  1. package/LICENSE +9 -0
  2. package/README.md +89 -0
  3. package/dist/adapters-BlzWJG82.d.mts +106 -0
  4. package/dist/apply-CAPvMfoU.mjs +1339 -0
  5. package/dist/astro/index.d.mts +50 -0
  6. package/dist/astro/index.mjs +1326 -0
  7. package/dist/astro/middleware/auth.d.mts +30 -0
  8. package/dist/astro/middleware/auth.mjs +708 -0
  9. package/dist/astro/middleware/redirect.d.mts +21 -0
  10. package/dist/astro/middleware/redirect.mjs +62 -0
  11. package/dist/astro/middleware/request-context.d.mts +17 -0
  12. package/dist/astro/middleware/request-context.mjs +1371 -0
  13. package/dist/astro/middleware/setup.d.mts +19 -0
  14. package/dist/astro/middleware/setup.mjs +46 -0
  15. package/dist/astro/middleware.d.mts +12 -0
  16. package/dist/astro/middleware.mjs +1716 -0
  17. package/dist/astro/types.d.mts +269 -0
  18. package/dist/astro/types.mjs +1 -0
  19. package/dist/base64-F8-DUraK.mjs +58 -0
  20. package/dist/byline-DeWCMU_i.mjs +234 -0
  21. package/dist/bylines-DyqBV9EQ.mjs +137 -0
  22. package/dist/chunk-ClPoSABd.mjs +21 -0
  23. package/dist/cli/index.d.mts +1 -0
  24. package/dist/cli/index.mjs +3987 -0
  25. package/dist/client/external-auth-headers.d.mts +38 -0
  26. package/dist/client/external-auth-headers.mjs +101 -0
  27. package/dist/client/index.d.mts +397 -0
  28. package/dist/client/index.mjs +345 -0
  29. package/dist/config-Cq8H0SfX.mjs +46 -0
  30. package/dist/connection-C9pxzuag.mjs +52 -0
  31. package/dist/content-zSgdNmnt.mjs +836 -0
  32. package/dist/db/index.d.mts +4 -0
  33. package/dist/db/index.mjs +62 -0
  34. package/dist/db/libsql.d.mts +10 -0
  35. package/dist/db/libsql.mjs +21 -0
  36. package/dist/db/postgres.d.mts +10 -0
  37. package/dist/db/postgres.mjs +29 -0
  38. package/dist/db/sqlite.d.mts +10 -0
  39. package/dist/db/sqlite.mjs +15 -0
  40. package/dist/default-WYlzADZL.mjs +80 -0
  41. package/dist/dialect-helpers-B9uSp2GJ.mjs +89 -0
  42. package/dist/error-DrxtnGPg.mjs +26 -0
  43. package/dist/index-C-jx21qs.d.mts +4771 -0
  44. package/dist/index.d.mts +16 -0
  45. package/dist/index.mjs +30 -0
  46. package/dist/load-C6FCD1FU.mjs +27 -0
  47. package/dist/loader-qKmo0wAY.mjs +446 -0
  48. package/dist/manifest-schema-CTSEyIJ3.mjs +186 -0
  49. package/dist/media/index.d.mts +25 -0
  50. package/dist/media/index.mjs +54 -0
  51. package/dist/media/local-runtime.d.mts +38 -0
  52. package/dist/media/local-runtime.mjs +132 -0
  53. package/dist/media-DMTr80Gv.mjs +199 -0
  54. package/dist/mode-BlyYtIFO.mjs +22 -0
  55. package/dist/page/index.d.mts +148 -0
  56. package/dist/page/index.mjs +419 -0
  57. package/dist/placeholder-B3knXwNc.mjs +267 -0
  58. package/dist/placeholder-bOx1xCTY.d.mts +283 -0
  59. package/dist/plugin-utils.d.mts +57 -0
  60. package/dist/plugin-utils.mjs +77 -0
  61. package/dist/plugins/adapt-sandbox-entry.d.mts +21 -0
  62. package/dist/plugins/adapt-sandbox-entry.mjs +112 -0
  63. package/dist/query-BiaPl_g2.mjs +459 -0
  64. package/dist/redirect-JPqLAbxa.mjs +328 -0
  65. package/dist/registry-DSd1GWB8.mjs +851 -0
  66. package/dist/request-context.d.mts +49 -0
  67. package/dist/request-context.mjs +42 -0
  68. package/dist/runner-B5l1JfOj.d.mts +26 -0
  69. package/dist/runner-BGUGywgG.mjs +1529 -0
  70. package/dist/runtime.d.mts +25 -0
  71. package/dist/runtime.mjs +41 -0
  72. package/dist/search-BNruJHDL.mjs +11054 -0
  73. package/dist/seed/index.d.mts +3 -0
  74. package/dist/seed/index.mjs +15 -0
  75. package/dist/seo/index.d.mts +69 -0
  76. package/dist/seo/index.mjs +69 -0
  77. package/dist/storage/local.d.mts +38 -0
  78. package/dist/storage/local.mjs +165 -0
  79. package/dist/storage/s3.d.mts +31 -0
  80. package/dist/storage/s3.mjs +174 -0
  81. package/dist/tokens-4vgYuXsZ.mjs +170 -0
  82. package/dist/transport-C5FYnid7.mjs +417 -0
  83. package/dist/transport-gIL-e43D.d.mts +41 -0
  84. package/dist/types-BawVha09.mjs +30 -0
  85. package/dist/types-BgQeVaPj.d.mts +192 -0
  86. package/dist/types-CLLdsG3g.d.mts +103 -0
  87. package/dist/types-D38djUXv.d.mts +1196 -0
  88. package/dist/types-DShnjzb6.mjs +15 -0
  89. package/dist/types-DkvMXalq.d.mts +425 -0
  90. package/dist/types-DuNbGKjF.mjs +74 -0
  91. package/dist/types-ju-_ORz7.d.mts +182 -0
  92. package/dist/validate-CXnRKfJK.mjs +327 -0
  93. package/dist/validate-CqRJb_xU.mjs +96 -0
  94. package/dist/validate-DVKJJ-M_.d.mts +377 -0
  95. package/locals.d.ts +47 -0
  96. package/package.json +313 -0
@@ -0,0 +1,377 @@
1
+ import { t as Database } from "./types-DkvMXalq.mjs";
2
+ import { u as FieldType } from "./types-BgQeVaPj.mjs";
3
+ import { d as Storage } from "./types-ju-_ORz7.mjs";
4
+ import { Kysely } from "kysely";
5
+
6
+ //#region src/settings/types.d.ts
7
+ /**
8
+ * Site Settings Types
9
+ *
10
+ * Global configuration for the site (title, logo, social links, etc.)
11
+ */
12
+ /** Media reference for logo/favicon */
13
+ interface MediaReference {
14
+ mediaId: string;
15
+ alt?: string;
16
+ }
17
+ /** Site-level SEO settings */
18
+ interface SeoSettings {
19
+ /** Separator between page title and site title (e.g., " | ", " — ") */
20
+ titleSeparator?: string;
21
+ /** Default OG image when content has no seo_image */
22
+ defaultOgImage?: MediaReference;
23
+ /** Custom robots.txt content. If unset, a default is generated. */
24
+ robotsTxt?: string;
25
+ /** Google Search Console verification meta tag content */
26
+ googleVerification?: string;
27
+ /** Bing Webmaster Tools verification meta tag content */
28
+ bingVerification?: string;
29
+ }
30
+ /** Site settings schema */
31
+ interface SiteSettings {
32
+ title: string;
33
+ tagline?: string;
34
+ logo?: MediaReference;
35
+ favicon?: MediaReference;
36
+ url?: string;
37
+ postsPerPage: number;
38
+ dateFormat: string;
39
+ timezone: string;
40
+ social?: {
41
+ twitter?: string;
42
+ github?: string;
43
+ facebook?: string;
44
+ instagram?: string;
45
+ linkedin?: string;
46
+ youtube?: string;
47
+ };
48
+ seo?: SeoSettings;
49
+ }
50
+ /** Keys that are valid site settings */
51
+ type SiteSettingKey = keyof SiteSettings;
52
+ //#endregion
53
+ //#region src/seed/types.d.ts
54
+ /**
55
+ * Root seed file structure
56
+ */
57
+ interface SeedFile {
58
+ /** JSON schema reference (optional) */
59
+ $schema?: string;
60
+ /** Seed format version */
61
+ version: "1";
62
+ /** Metadata about the seed */
63
+ meta?: {
64
+ name?: string;
65
+ description?: string;
66
+ author?: string;
67
+ };
68
+ /** Site settings */
69
+ settings?: Partial<SiteSettings>;
70
+ /** Collection definitions */
71
+ collections?: SeedCollection[];
72
+ /** Taxonomy definitions */
73
+ taxonomies?: SeedTaxonomy[];
74
+ /** Navigation menus */
75
+ menus?: SeedMenu[];
76
+ /** Redirect rules */
77
+ redirects?: SeedRedirect[];
78
+ /** Widget areas */
79
+ widgetAreas?: SeedWidgetArea[];
80
+ /** Sections (reusable content blocks, like WP patterns/reusable blocks) */
81
+ sections?: SeedSection[];
82
+ /** Bylines used for presentation credits */
83
+ bylines?: SeedByline[];
84
+ /** Sample content (organized by collection) */
85
+ content?: Record<string, SeedContentEntry[]>;
86
+ }
87
+ /**
88
+ * Collection definition in seed
89
+ */
90
+ interface SeedCollection {
91
+ slug: string;
92
+ label: string;
93
+ labelSingular?: string;
94
+ description?: string;
95
+ icon?: string;
96
+ supports?: ("drafts" | "revisions" | "preview" | "scheduling" | "search" | "seo")[];
97
+ urlPattern?: string;
98
+ /** Enable comments on this collection */
99
+ commentsEnabled?: boolean;
100
+ fields: SeedField[];
101
+ }
102
+ /**
103
+ * Field definition in seed
104
+ */
105
+ interface SeedField {
106
+ slug: string;
107
+ label: string;
108
+ type: FieldType;
109
+ required?: boolean;
110
+ unique?: boolean;
111
+ searchable?: boolean;
112
+ defaultValue?: unknown;
113
+ validation?: Record<string, unknown>;
114
+ widget?: string;
115
+ options?: Record<string, unknown>;
116
+ }
117
+ /**
118
+ * Taxonomy definition in seed
119
+ */
120
+ interface SeedTaxonomy {
121
+ name: string;
122
+ label: string;
123
+ labelSingular?: string;
124
+ hierarchical: boolean;
125
+ collections: string[];
126
+ terms?: SeedTaxonomyTerm[];
127
+ }
128
+ /**
129
+ * Taxonomy term in seed
130
+ */
131
+ interface SeedTaxonomyTerm {
132
+ slug: string;
133
+ label: string;
134
+ description?: string;
135
+ parent?: string;
136
+ }
137
+ /**
138
+ * Menu definition in seed
139
+ */
140
+ interface SeedMenu {
141
+ name: string;
142
+ label: string;
143
+ items: SeedMenuItem[];
144
+ }
145
+ /**
146
+ * Menu item in seed
147
+ */
148
+ interface SeedMenuItem {
149
+ type: string;
150
+ label?: string;
151
+ url?: string;
152
+ ref?: string;
153
+ collection?: string;
154
+ target?: "_blank" | "_self";
155
+ titleAttr?: string;
156
+ cssClasses?: string;
157
+ children?: SeedMenuItem[];
158
+ }
159
+ /**
160
+ * Redirect definition in seed
161
+ */
162
+ interface SeedRedirect {
163
+ source: string;
164
+ destination: string;
165
+ type?: 301 | 302 | 307 | 308;
166
+ enabled?: boolean;
167
+ groupName?: string | null;
168
+ }
169
+ /**
170
+ * Widget area definition in seed
171
+ */
172
+ interface SeedWidgetArea {
173
+ name: string;
174
+ label: string;
175
+ description?: string;
176
+ widgets: SeedWidget[];
177
+ }
178
+ /**
179
+ * Widget in seed
180
+ */
181
+ interface SeedWidget {
182
+ type: "content" | "menu" | "component";
183
+ title?: string;
184
+ content?: Array<{
185
+ _type: string;
186
+ _key?: string;
187
+ [key: string]: unknown;
188
+ }>;
189
+ menuName?: string;
190
+ componentId?: string;
191
+ props?: Record<string, unknown>;
192
+ }
193
+ /**
194
+ * Section (reusable content block) in seed
195
+ */
196
+ interface SeedSection {
197
+ slug: string;
198
+ title: string;
199
+ description?: string;
200
+ /** Search keywords */
201
+ keywords?: string[];
202
+ /** Portable Text content */
203
+ content: Array<{
204
+ _type: string;
205
+ _key?: string;
206
+ [key: string]: unknown;
207
+ }>;
208
+ /** Source: "theme" for seed-provided, "import" for WP imports */
209
+ source?: "theme" | "import";
210
+ }
211
+ /**
212
+ * Byline profile in seed
213
+ */
214
+ interface SeedByline {
215
+ /** Seed-local ID for byline references in content entries */
216
+ id: string;
217
+ slug: string;
218
+ displayName: string;
219
+ bio?: string;
220
+ websiteUrl?: string;
221
+ isGuest?: boolean;
222
+ }
223
+ /**
224
+ * Content entry in seed
225
+ */
226
+ interface SeedContentEntry {
227
+ /** Seed-local ID for $ref resolution */
228
+ id: string;
229
+ /** URL slug */
230
+ slug: string;
231
+ /** Publication status */
232
+ status?: "published" | "draft";
233
+ /** Content data (field slug -> value) */
234
+ data: Record<string, unknown>;
235
+ /** Taxonomy term assignments (taxonomy name -> term slugs) */
236
+ taxonomies?: Record<string, string[]>;
237
+ /** Ordered byline credits for this entry */
238
+ bylines?: SeedBylineCredit[];
239
+ /** BCP 47 locale code. When omitted, defaults to defaultLocale. */
240
+ locale?: string;
241
+ /**
242
+ * Seed-local ID of the source content entry this translates.
243
+ * Must reference another entry's `id` in the same collection.
244
+ */
245
+ translationOf?: string;
246
+ }
247
+ interface SeedBylineCredit {
248
+ /** Seed byline ID from root `bylines[]` */
249
+ byline: string;
250
+ roleLabel?: string;
251
+ }
252
+ /**
253
+ * Options for applying a seed
254
+ */
255
+ interface SeedApplyOptions {
256
+ /** Include sample content (default: false) */
257
+ includeContent?: boolean;
258
+ /** How to handle conflicts (default: "skip") */
259
+ onConflict?: "skip" | "update" | "error";
260
+ /** Base path for local media files (for $media.file resolution) */
261
+ mediaBasePath?: string;
262
+ /**
263
+ * Storage adapter for media uploads.
264
+ * Required if seed contains $media references with URLs.
265
+ */
266
+ storage?: Storage;
267
+ /**
268
+ * Skip downloading and storing media for $media references.
269
+ *
270
+ * When true, $media references are resolved to a MediaValue
271
+ * that uses the original external URL directly as the `src`,
272
+ * with provider set to "external". No storage adapter is needed.
273
+ *
274
+ * Useful for playground/demo environments where media storage
275
+ * is unavailable or undesirable.
276
+ */
277
+ skipMediaDownload?: boolean;
278
+ }
279
+ /**
280
+ * Result of applying a seed
281
+ */
282
+ interface SeedApplyResult {
283
+ collections: {
284
+ created: number;
285
+ skipped: number;
286
+ updated: number;
287
+ };
288
+ fields: {
289
+ created: number;
290
+ skipped: number;
291
+ updated: number;
292
+ };
293
+ taxonomies: {
294
+ created: number;
295
+ terms: number;
296
+ };
297
+ bylines: {
298
+ created: number;
299
+ skipped: number;
300
+ updated: number;
301
+ };
302
+ menus: {
303
+ created: number;
304
+ items: number;
305
+ };
306
+ redirects: {
307
+ created: number;
308
+ skipped: number;
309
+ updated: number;
310
+ };
311
+ widgetAreas: {
312
+ created: number;
313
+ widgets: number;
314
+ };
315
+ sections: {
316
+ created: number;
317
+ skipped: number;
318
+ updated: number;
319
+ };
320
+ settings: {
321
+ applied: number;
322
+ };
323
+ content: {
324
+ created: number;
325
+ skipped: number;
326
+ updated: number;
327
+ };
328
+ media: {
329
+ created: number;
330
+ skipped: number;
331
+ };
332
+ }
333
+ /**
334
+ * Validation result
335
+ */
336
+ interface ValidationResult {
337
+ valid: boolean;
338
+ errors: string[];
339
+ warnings: string[];
340
+ }
341
+ //#endregion
342
+ //#region src/seed/apply.d.ts
343
+ /**
344
+ * Apply a seed file to the database
345
+ *
346
+ * This function is idempotent - safe to run multiple times.
347
+ *
348
+ * @param db - Kysely database instance
349
+ * @param seed - Seed file to apply
350
+ * @param options - Application options
351
+ * @returns Result summary
352
+ */
353
+ declare function applySeed(db: Kysely<Database>, seed: SeedFile, options?: SeedApplyOptions): Promise<SeedApplyResult>;
354
+ //#endregion
355
+ //#region src/seed/default.d.ts
356
+ declare const defaultSeed: SeedFile;
357
+ //#endregion
358
+ //#region src/seed/load.d.ts
359
+ /**
360
+ * Load the seed file (user seed or default).
361
+ */
362
+ declare function loadSeed(): Promise<SeedFile>;
363
+ /**
364
+ * Load the user's seed file, or null if none exists.
365
+ */
366
+ declare function loadUserSeed(): Promise<SeedFile | null>;
367
+ //#endregion
368
+ //#region src/seed/validate.d.ts
369
+ /**
370
+ * Validate a seed file
371
+ *
372
+ * @param data - Unknown data to validate as a seed file
373
+ * @returns Validation result with errors and warnings
374
+ */
375
+ declare function validateSeed(data: unknown): ValidationResult;
376
+ //#endregion
377
+ export { SiteSettingKey as C, SeoSettings as S, SeedTaxonomyTerm as _, applySeed as a, ValidationResult as b, SeedCollection as c, SeedFile as d, SeedMenu as f, SeedTaxonomy as g, SeedSection as h, defaultSeed as i, SeedContentEntry as l, SeedRedirect as m, loadSeed as n, SeedApplyOptions as o, SeedMenuItem as p, loadUserSeed as r, SeedApplyResult as s, validateSeed as t, SeedField as u, SeedWidget as v, SiteSettings as w, MediaReference as x, SeedWidgetArea as y };
package/locals.d.ts ADDED
@@ -0,0 +1,47 @@
1
+ /**
2
+ * Dineway Astro type declarations
3
+ *
4
+ * Augments App.Locals with Dineway types.
5
+ * Referenced via triple-slash directive in the generated dineway-env.d.ts.
6
+ */
7
+
8
+ import type { User } from "@dineway-ai/auth";
9
+
10
+ import type { DinewayHandlers, DinewayManifest } from "./dist/types.d.mts";
11
+
12
+ declare global {
13
+ namespace App {
14
+ interface Locals {
15
+ /**
16
+ * Dineway API handlers - available on /_dineway/* routes
17
+ */
18
+ dineway: DinewayHandlers;
19
+
20
+ /**
21
+ * Dineway manifest - the serialized admin configuration
22
+ */
23
+ dinewayManifest: DinewayManifest;
24
+
25
+ /**
26
+ * Authenticated user - set by auth middleware when a valid session exists
27
+ */
28
+ user?: User;
29
+
30
+ /**
31
+ * Request-scoped database override for sidecar and playground flows.
32
+ *
33
+ * Set by external middleware when a request should render against an
34
+ * isolated session database instead of the primary site database.
35
+ * Read by the runtime middleware and request-context middleware to set
36
+ * the database in ALS for the current request.
37
+ *
38
+ * This exists because Vite SSR loads two copies of request-context.ts
39
+ * (dist for integration middleware, source for the loader). locals
40
+ * bridges the DB across that module boundary.
41
+ */
42
+ __dinewayRequestDb?: unknown;
43
+ }
44
+ }
45
+ }
46
+
47
+ export {};