@fragno-dev/forms 0.1.0 → 0.1.2

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.
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","names":[],"sources":["../../../src/models.ts","../../../src/definition.ts","../../../src/index.ts"],"sourcesContent":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","names":[],"sources":["../../../src/models.ts","../../../src/definition.ts","../../../src/index.ts"],"sourcesContent":[],"mappings":"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"}
@@ -27,22 +27,18 @@ const asExternalResponse = (response) => ({
27
27
  id: response.id.externalId,
28
28
  data: response.data
29
29
  });
30
- const formsFragmentDef = defineFragment("forms").extend(withDatabase(formsSchema)).withDependencies(({ db }) => ({ db })).providesBaseService(({ deps }) => {
31
- return {
32
- createForm: async (input) => {
33
- return (await deps.db.create("form", input)).externalId;
34
- },
35
- getForm: async (id) => {
36
- const form = await deps.db.findFirst("form", (b) => b.whereIndex("primary", (eb) => eb("id", "=", id)));
37
- return form ? asExternalForm(form) : null;
38
- },
39
- getFormBySlug: async (slug) => {
40
- const form = await deps.db.findFirst("form", (b) => b.whereIndex("idx_form_slug", (eb) => eb("slug", "=", slug)));
41
- return form ? asExternalForm(form) : null;
42
- },
43
- updateForm: async (id, input) => {
44
- const uow = deps.db.createUnitOfWork().find("form", (b) => b.whereIndex("primary", (eb) => eb("id", "=", id)));
45
- const [currentForms] = await uow.executeRetrieve();
30
+ const formsFragmentDef = defineFragment("forms").extend(withDatabase(formsSchema)).providesBaseService(({ defineService }) => defineService({
31
+ createForm: function(input) {
32
+ return this.serviceTx(formsSchema).mutate(({ uow }) => uow.create("form", input)).transform(({ mutateResult }) => mutateResult.externalId).build();
33
+ },
34
+ getForm: function(id) {
35
+ return this.serviceTx(formsSchema).retrieve((uow) => uow.findFirst("form", (b) => b.whereIndex("primary", (eb) => eb("id", "=", id)))).transformRetrieve(([form]) => form ? asExternalForm(form) : null).build();
36
+ },
37
+ getFormBySlug: function(slug) {
38
+ return this.serviceTx(formsSchema).retrieve((uow) => uow.findFirst("form", (b) => b.whereIndex("idx_form_slug", (eb) => eb("slug", "=", slug)))).transformRetrieve(([form]) => form ? asExternalForm(form) : null).build();
39
+ },
40
+ updateForm: function(id, input) {
41
+ return this.serviceTx(formsSchema).retrieve((uow) => uow.find("form", (b) => b.whereIndex("primary", (eb) => eb("id", "=", id)))).mutate(({ uow, retrieveResult: [currentForms] }) => {
46
42
  if (currentForms.length === 0) return { success: false };
47
43
  const currentForm = currentForms[0];
48
44
  const newVersion = input.dataSchema ? currentForm.version + 1 : currentForm.version;
@@ -53,58 +49,55 @@ const formsFragmentDef = defineFragment("forms").extend(withDatabase(formsSchema
53
49
  updatedAt: new Date()
54
50
  }).check();
55
51
  });
56
- return uow.executeMutations();
57
- },
58
- listForms: async () => {
59
- const forms = await deps.db.find("form", (b) => b.whereIndex("primary"));
60
- return forms.map(asExternalForm);
61
- },
62
- deleteForm: async (id) => {
63
- await deps.db.delete("form", id);
64
- },
65
- validateData: (schema$1, data) => {
66
- const zodSchema = z.fromJSONSchema(schema$1);
67
- const result = zodSchema.safeParse(data);
68
- if (result.success) return {
69
- success: true,
70
- data: result.data
71
- };
72
- return {
73
- success: false,
74
- error: {
75
- message: "Validation failed",
76
- errors: result.error.issues.map((e) => ({
77
- instancePath: "/" + e.path.join("/"),
78
- message: e.message
79
- }))
80
- }
81
- };
82
- },
83
- createResponse: async (formId, formVersion, data, metadata) => {
84
- return (await deps.db.create("response", {
85
- formId,
86
- formVersion,
87
- data,
88
- ip: metadata?.ip ?? null,
89
- userAgent: metadata?.userAgent ?? null
90
- })).externalId;
91
- },
92
- getResponse: async (id) => {
93
- const response = await deps.db.findFirst("response", (b) => b.whereIndex("primary", (eb) => eb("id", "=", id)));
94
- return response ? asExternalResponse(response) : null;
95
- },
96
- listResponses: async (formId, sort = {
97
- field: "submittedAt",
98
- order: "desc"
99
- }) => {
100
- const responses = await deps.db.find("response", (b) => b.whereIndex("idx_response_form", (eb) => eb("formId", "=", formId)).orderByIndex("idx_response_submitted_at", sort.order));
101
- return responses.map(asExternalResponse);
102
- },
103
- deleteResponse: async (id) => {
104
- return await deps.db.delete("response", id);
105
- }
106
- };
107
- }).build();
52
+ return { success: true };
53
+ }).build();
54
+ },
55
+ listForms: function() {
56
+ return this.serviceTx(formsSchema).retrieve((uow) => uow.find("form", (b) => b.whereIndex("primary"))).transformRetrieve(([forms]) => forms.map(asExternalForm)).build();
57
+ },
58
+ deleteForm: function(id) {
59
+ return this.serviceTx(formsSchema).mutate(({ uow }) => uow.delete("form", id)).build();
60
+ },
61
+ validateData: (schema$1, data) => {
62
+ const zodSchema = z.fromJSONSchema(schema$1);
63
+ const result = zodSchema.safeParse(data);
64
+ if (result.success) return {
65
+ success: true,
66
+ data: result.data
67
+ };
68
+ return {
69
+ success: false,
70
+ error: {
71
+ message: "Validation failed",
72
+ errors: result.error.issues.map((e) => ({
73
+ instancePath: "/" + e.path.join("/"),
74
+ message: e.message
75
+ }))
76
+ }
77
+ };
78
+ },
79
+ createResponse: function(formId, formVersion, data, metadata) {
80
+ return this.serviceTx(formsSchema).mutate(({ uow }) => uow.create("response", {
81
+ formId,
82
+ formVersion,
83
+ data,
84
+ ip: metadata?.ip ?? null,
85
+ userAgent: metadata?.userAgent ?? null
86
+ })).transform(({ mutateResult }) => mutateResult.externalId).build();
87
+ },
88
+ getResponse: function(id) {
89
+ return this.serviceTx(formsSchema).retrieve((uow) => uow.findFirst("response", (b) => b.whereIndex("primary", (eb) => eb("id", "=", id)))).transformRetrieve(([response]) => response ? asExternalResponse(response) : null).build();
90
+ },
91
+ listResponses: function(formId, sort = {
92
+ field: "submittedAt",
93
+ order: "desc"
94
+ }) {
95
+ return this.serviceTx(formsSchema).retrieve((uow) => uow.find("response", (b) => b.whereIndex("idx_response_form", (eb) => eb("formId", "=", formId)).orderByIndex("idx_response_submitted_at", sort.order))).transformRetrieve(([responses]) => responses.map(asExternalResponse)).build();
96
+ },
97
+ deleteResponse: function(id) {
98
+ return this.serviceTx(formsSchema).mutate(({ uow }) => uow.delete("response", id)).build();
99
+ }
100
+ })).build();
108
101
 
109
102
  //#endregion
110
103
  //#region src/models.ts
@@ -190,10 +183,10 @@ const publicRoutes = defineRoutes(formsFragmentDef).create(({ services, defineRo
190
183
  path: "/:slug",
191
184
  outputSchema: FormSchema,
192
185
  errorCodes: ["NOT_FOUND"],
193
- handler: async ({ pathParams }, { json, error }) => {
186
+ handler: async function({ pathParams }, { json, error }) {
194
187
  const staticForm = config.staticForms?.find((f) => f.slug === pathParams.slug);
195
188
  if (staticForm) return json(staticAsRegularForm(staticForm));
196
- const form = await services.getFormBySlug(pathParams.slug);
189
+ const form = await this.handlerTx().withServiceCalls(() => [services.getFormBySlug(pathParams.slug)]).transform(({ serviceResult: [result] }) => result).execute();
197
190
  if (!form) return error({
198
191
  message: "Form not found",
199
192
  code: "NOT_FOUND"
@@ -210,10 +203,10 @@ const publicRoutes = defineRoutes(formsFragmentDef).create(({ services, defineRo
210
203
  "VALIDATION_ERROR",
211
204
  "FORM_NOT_OPEN"
212
205
  ],
213
- handler: async ({ input, pathParams, headers }, { json, error }) => {
206
+ handler: async function({ input, pathParams, headers }, { json, error }) {
214
207
  const { data } = await input.valid();
215
208
  const staticFormConfig = config.staticForms?.find((f) => f.slug === pathParams.slug);
216
- const form = staticFormConfig ? staticAsRegularForm(staticFormConfig) : await services.getFormBySlug(pathParams.slug);
209
+ const form = staticFormConfig ? staticAsRegularForm(staticFormConfig) : await this.handlerTx().withServiceCalls(() => [services.getFormBySlug(pathParams.slug)]).transform(({ serviceResult: [result$1] }) => result$1).execute();
217
210
  if (!form) return error({
218
211
  message: "Form not found",
219
212
  code: "NOT_FOUND"
@@ -231,7 +224,7 @@ const publicRoutes = defineRoutes(formsFragmentDef).create(({ services, defineRo
231
224
  }, 400);
232
225
  }
233
226
  const metadata = extractRequestMetadata(headers);
234
- const responseId = await services.createResponse(form.id, form.version, result.data, metadata);
227
+ const responseId = await this.handlerTx().withServiceCalls(() => [services.createResponse(form.id, form.version, result.data, metadata)]).transform(({ serviceResult: [result$1] }) => result$1).execute();
235
228
  if (config.onResponseSubmitted) await config.onResponseSubmitted({
236
229
  id: responseId,
237
230
  formId: form.id,
@@ -251,8 +244,8 @@ const adminRoutes = defineRoutes(formsFragmentDef).create(({ services, defineRou
251
244
  method: "GET",
252
245
  path: "/admin/forms",
253
246
  outputSchema: z.array(FormSchema),
254
- handler: async (_ctx, { json }) => {
255
- const dbForms = await services.listForms();
247
+ handler: async function(_ctx, { json }) {
248
+ const dbForms = await this.handlerTx().withServiceCalls(() => [services.listForms()]).transform(({ serviceResult: [result] }) => result).execute();
256
249
  const staticForms = (config.staticForms ?? []).map(staticAsRegularForm);
257
250
  return json([...staticForms, ...dbForms]);
258
251
  }
@@ -262,10 +255,10 @@ const adminRoutes = defineRoutes(formsFragmentDef).create(({ services, defineRou
262
255
  path: "/admin/forms/:id",
263
256
  outputSchema: FormSchema,
264
257
  errorCodes: ["NOT_FOUND"],
265
- handler: async ({ pathParams }, { json, error }) => {
258
+ handler: async function({ pathParams }, { json, error }) {
266
259
  const staticForm = config.staticForms?.find((f) => f.id === pathParams.id);
267
260
  if (staticForm) return json(staticAsRegularForm(staticForm));
268
- const form = await services.getForm(pathParams.id);
261
+ const form = await this.handlerTx().withServiceCalls(() => [services.getForm(pathParams.id)]).transform(({ serviceResult: [result] }) => result).execute();
269
262
  if (!form) return error({
270
263
  message: "Form not found",
271
264
  code: "NOT_FOUND"
@@ -279,7 +272,7 @@ const adminRoutes = defineRoutes(formsFragmentDef).create(({ services, defineRou
279
272
  inputSchema: NewFormSchema,
280
273
  outputSchema: z.string(),
281
274
  errorCodes: ["CREATE_FAILED", "INVALID_JSON_SCHEMA"],
282
- handler: async ({ input }, { json, error }) => {
275
+ handler: async function({ input }, { json, error }) {
283
276
  const data = await input.valid();
284
277
  try {
285
278
  z.fromJSONSchema(data.dataSchema);
@@ -290,7 +283,7 @@ const adminRoutes = defineRoutes(formsFragmentDef).create(({ services, defineRou
290
283
  code: "INVALID_JSON_SCHEMA"
291
284
  }, 400);
292
285
  }
293
- const formId = await services.createForm(data);
286
+ const formId = await this.handlerTx().withServiceCalls(() => [services.createForm(data)]).transform(({ serviceResult: [result] }) => result).execute();
294
287
  if (config.onFormCreated) await config.onFormCreated({
295
288
  ...data,
296
289
  id: formId
@@ -307,7 +300,7 @@ const adminRoutes = defineRoutes(formsFragmentDef).create(({ services, defineRou
307
300
  "STATIC_FORM_READ_ONLY",
308
301
  "INVALID_JSON_SCHEMA"
309
302
  ],
310
- handler: async ({ input, pathParams }, { json, error }) => {
303
+ handler: async function({ input, pathParams }, { json, error }) {
311
304
  const isStatic = config.staticForms?.some((f) => f.id === pathParams.id);
312
305
  if (isStatic) return error({
313
306
  message: "Static forms cannot be modified",
@@ -323,7 +316,7 @@ const adminRoutes = defineRoutes(formsFragmentDef).create(({ services, defineRou
323
316
  code: "INVALID_JSON_SCHEMA"
324
317
  }, 400);
325
318
  }
326
- const { success } = await services.updateForm(pathParams.id, data);
319
+ const { success } = await this.handlerTx().withServiceCalls(() => [services.updateForm(pathParams.id, data)]).transform(({ serviceResult: [result] }) => result).execute();
327
320
  if (!success) return error({
328
321
  message: "Form not found",
329
322
  code: "NOT_FOUND"
@@ -335,13 +328,13 @@ const adminRoutes = defineRoutes(formsFragmentDef).create(({ services, defineRou
335
328
  method: "DELETE",
336
329
  path: "/admin/forms/:id",
337
330
  errorCodes: ["NOT_FOUND", "STATIC_FORM_READ_ONLY"],
338
- handler: async ({ pathParams }, { json, error }) => {
331
+ handler: async function({ pathParams }, { json, error }) {
339
332
  const isStatic = config.staticForms?.some((f) => f.id === pathParams.id);
340
333
  if (isStatic) return error({
341
334
  message: "Static forms cannot be deleted",
342
335
  code: "STATIC_FORM_READ_ONLY"
343
336
  }, 403);
344
- await services.deleteForm(pathParams.id);
337
+ await this.handlerTx().withServiceCalls(() => [services.deleteForm(pathParams.id)]).execute();
345
338
  return json(true);
346
339
  }
347
340
  }),
@@ -350,12 +343,12 @@ const adminRoutes = defineRoutes(formsFragmentDef).create(({ services, defineRou
350
343
  path: "/admin/forms/:id/submissions",
351
344
  queryParameters: ["sortOrder"],
352
345
  outputSchema: z.array(FormResponseSchema),
353
- handler: async ({ pathParams, query }, { json }) => {
346
+ handler: async function({ pathParams, query }, { json }) {
354
347
  const sortOrder = query.get("sortOrder") === "asc" ? "asc" : "desc";
355
- const responses = await services.listResponses(pathParams.id, {
348
+ const responses = await this.handlerTx().withServiceCalls(() => [services.listResponses(pathParams.id, {
356
349
  field: "submittedAt",
357
350
  order: sortOrder
358
- });
351
+ })]).transform(({ serviceResult: [result] }) => result).execute();
359
352
  return json(responses);
360
353
  }
361
354
  }),
@@ -364,8 +357,8 @@ const adminRoutes = defineRoutes(formsFragmentDef).create(({ services, defineRou
364
357
  path: "/admin/submissions/:id",
365
358
  outputSchema: FormResponseSchema,
366
359
  errorCodes: ["NOT_FOUND"],
367
- handler: async ({ pathParams }, { json, error }) => {
368
- const response = await services.getResponse(pathParams.id);
360
+ handler: async function({ pathParams }, { json, error }) {
361
+ const response = await this.handlerTx().withServiceCalls(() => [services.getResponse(pathParams.id)]).transform(({ serviceResult: [result] }) => result).execute();
369
362
  if (!response) return error({
370
363
  message: "Submission not found",
371
364
  code: "NOT_FOUND"
@@ -377,8 +370,8 @@ const adminRoutes = defineRoutes(formsFragmentDef).create(({ services, defineRou
377
370
  method: "DELETE",
378
371
  path: "/admin/submissions/:id",
379
372
  errorCodes: ["NOT_FOUND"],
380
- handler: async ({ pathParams }, { json }) => {
381
- await services.deleteResponse(pathParams.id);
373
+ handler: async function({ pathParams }, { json }) {
374
+ await this.handlerTx().withServiceCalls(() => [services.deleteResponse(pathParams.id)]).execute();
382
375
  return json(true);
383
376
  }
384
377
  })
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["form: T","response: T","input: NewForm","id: string","slug: string","input: UpdateForm","schema: JSONSchema","data: Record<string, unknown>","schema","formId: string","formVersion: number","data: ValidatedData","metadata?: { ip?: string | null; userAgent?: string | null }","sort: SubmissionSortOptions","headers: Headers","sf: StaticForm","config: FormsConfig","options: FragnoPublicConfigWithDatabase","fragnoConfig: FragnoPublicClientConfig"],"sources":["../../src/schema.ts","../../src/definition.ts","../../src/models.ts","../../src/routes.ts","../../src/index.ts"],"sourcesContent":["import { column, idColumn, schema } from \"@fragno-dev/db/schema\";\n\nexport const formsSchema = schema(\"forms\", (s) => {\n return s\n .addTable(\"form\", (t) => {\n return t\n .addColumn(\"id\", idColumn())\n .addColumn(\"title\", column(\"string\"))\n .addColumn(\"description\", column(\"string\").nullable())\n .addColumn(\"slug\", column(\"string\"))\n .addColumn(\n \"status\",\n column(\"string\").defaultTo(() => \"draft\"),\n )\n .addColumn(\"dataSchema\", column(\"json\"))\n .addColumn(\"uiSchema\", column(\"json\").nullable())\n .addColumn(\n \"version\",\n column(\"integer\").defaultTo(() => 1),\n )\n .addColumn(\n \"createdAt\",\n column(\"timestamp\").defaultTo((b) => b.now()),\n )\n .addColumn(\n \"updatedAt\",\n column(\"timestamp\").defaultTo((b) => b.now()),\n )\n .createIndex(\"idx_form_status\", [\"status\"])\n .createIndex(\"idx_form_slug\", [\"slug\"], { unique: true });\n })\n .addTable(\"response\", (t) => {\n return t\n .addColumn(\"id\", idColumn())\n .addColumn(\"formId\", column(\"string\"))\n .addColumn(\"formVersion\", column(\"integer\"))\n .addColumn(\"data\", column(\"json\"))\n .addColumn(\n \"submittedAt\",\n column(\"timestamp\").defaultTo((b) => b.now()),\n )\n .addColumn(\"userAgent\", column(\"string\").nullable())\n .addColumn(\"ip\", column(\"string\").nullable())\n .createIndex(\"idx_response_form\", [\"formId\"])\n .createIndex(\"idx_response_submitted_at\", [\"submittedAt\"]);\n });\n});\n","import { defineFragment } from \"@fragno-dev/core\";\nimport { withDatabase } from \"@fragno-dev/db\";\nimport { z } from \"zod\";\nimport { formsSchema } from \"./schema\";\nimport type { FormsConfig } from \".\";\nimport type { JSONSchema, NewForm, UpdateForm, FormStatus, UIElementSchema } from \"./models\";\n\nexport type ValidatedData<T = Record<string, unknown>> = T;\nexport type ValidationResult =\n | { success: true; data: ValidatedData }\n | {\n success: false;\n error: { message: string; errors: Array<{ instancePath: string; message: string }> };\n };\n\n// External to this fragment\nconst asExternalForm = <\n T extends { id: { externalId: string }; status: string; dataSchema: unknown; uiSchema: unknown },\n>(\n form: T,\n) => ({\n ...form,\n id: form.id.externalId,\n status: form.status as FormStatus,\n dataSchema: form.dataSchema as JSONSchema,\n uiSchema: form.uiSchema as UIElementSchema,\n});\n\nconst asExternalResponse = <\n T extends {\n id: { externalId: string };\n formId: string | null;\n data: unknown;\n ip: string | null;\n userAgent: string | null;\n },\n>(\n response: T,\n) => ({\n ...response,\n id: response.id.externalId,\n data: response.data as Record<string, unknown>,\n});\n\nexport interface SubmissionSortOptions {\n field: \"submittedAt\";\n order: \"asc\" | \"desc\";\n}\n\nexport const formsFragmentDef = defineFragment<FormsConfig>(\"forms\")\n .extend(withDatabase(formsSchema))\n .withDependencies(({ db }) => ({ db }))\n .providesBaseService(({ deps }) => {\n return {\n createForm: async (input: NewForm) => {\n return (await deps.db.create(\"form\", input)).externalId;\n },\n\n getForm: async (id: string) => {\n const form = await deps.db.findFirst(\"form\", (b) =>\n b.whereIndex(\"primary\", (eb) => eb(\"id\", \"=\", id)),\n );\n return form ? asExternalForm(form) : null;\n },\n\n getFormBySlug: async (slug: string) => {\n const form = await deps.db.findFirst(\"form\", (b) =>\n b.whereIndex(\"idx_form_slug\", (eb) => eb(\"slug\", \"=\", slug)),\n );\n return form ? asExternalForm(form) : null;\n },\n\n updateForm: async (id: string, input: UpdateForm) => {\n const uow = deps.db\n .createUnitOfWork()\n .find(\"form\", (b) => b.whereIndex(\"primary\", (eb) => eb(\"id\", \"=\", id)));\n\n const [currentForms] = await uow.executeRetrieve();\n\n if (currentForms.length === 0) {\n return { success: false };\n }\n // TODO: length > 1 ?\n\n const currentForm = currentForms[0];\n\n // Only increment version if changing data schema\n const newVersion = input.dataSchema ? currentForm.version + 1 : currentForm.version;\n\n uow.update(\"form\", currentForm.id, (b) => {\n b.set({ ...input, version: newVersion, updatedAt: new Date() }).check();\n });\n return uow.executeMutations();\n },\n\n listForms: async () => {\n const forms = await deps.db.find(\"form\", (b) => b.whereIndex(\"primary\"));\n return forms.map(asExternalForm);\n },\n\n deleteForm: async (id: string) => {\n await deps.db.delete(\"form\", id);\n },\n\n validateData: (schema: JSONSchema, data: Record<string, unknown>): ValidationResult => {\n const zodSchema = z.fromJSONSchema(schema);\n const result = zodSchema.safeParse(data);\n\n if (result.success) {\n return { success: true, data: result.data as ValidatedData };\n }\n return {\n success: false,\n\n error: {\n message: \"Validation failed\",\n errors: result.error.issues.map((e) => ({\n instancePath: \"/\" + e.path.join(\"/\"),\n message: e.message,\n })),\n },\n };\n },\n\n createResponse: async (\n formId: string,\n formVersion: number,\n data: ValidatedData,\n metadata?: { ip?: string | null; userAgent?: string | null },\n ) => {\n return (\n await deps.db.create(\"response\", {\n formId,\n formVersion,\n data,\n ip: metadata?.ip ?? null,\n userAgent: metadata?.userAgent ?? null,\n })\n ).externalId;\n },\n\n getResponse: async (id: string) => {\n const response = await deps.db.findFirst(\"response\", (b) =>\n b.whereIndex(\"primary\", (eb) => eb(\"id\", \"=\", id)),\n );\n return response ? asExternalResponse(response) : null;\n },\n\n listResponses: async (\n formId: string,\n sort: SubmissionSortOptions = { field: \"submittedAt\", order: \"desc\" },\n ) => {\n const responses = await deps.db.find(\"response\", (b) =>\n b\n .whereIndex(\"idx_response_form\", (eb) => eb(\"formId\", \"=\", formId))\n .orderByIndex(\"idx_response_submitted_at\", sort.order),\n );\n return responses.map(asExternalResponse);\n },\n\n deleteResponse: async (id: string) => {\n return await deps.db.delete(\"response\", id);\n },\n };\n })\n .build();\n","import { z } from \"zod\";\n\nexport const JSONSchemaSchema = z.record(z.string(), z.unknown());\nexport const UISchemaElementSchema = z.record(z.string(), z.unknown());\n\nexport const FormStatusSchema = z.enum([\"draft\", \"open\", \"closed\", \"static\"]);\n\nexport const FormSchema = z.object({\n id: z.string(),\n title: z.string(),\n description: z.string().nullable().optional(),\n slug: z.string().min(1).max(255).toLowerCase().trim(),\n status: FormStatusSchema,\n dataSchema: JSONSchemaSchema,\n uiSchema: UISchemaElementSchema.optional(),\n version: z.number(),\n createdAt: z.date(),\n updatedAt: z.date(),\n});\n\nexport const NewFormSchema = FormSchema.omit({\n id: true,\n createdAt: true,\n updatedAt: true,\n version: true,\n});\n\nexport const UpdateFormSchema = NewFormSchema.partial();\n\nexport const ResponseMetadataSchema = z.object({\n ip: z.union([z.ipv4(), z.ipv6()]).nullable(),\n userAgent: z.string().max(4096).nullable(),\n});\n\nexport const FormResponseSchema = z.object({\n id: z.string(),\n formId: z.string().nullable().describe(\"Form ID (static form ID or database form external ID)\"),\n formVersion: z.number(),\n data: z.record(z.string(), z.unknown()),\n submittedAt: z.date(),\n ip: z.string().max(45).nullable(),\n userAgent: z.string().max(512).nullable(),\n});\n\nexport const NewFormResponseSchema = FormResponseSchema.omit({\n id: true,\n submittedAt: true,\n formId: true,\n formVersion: true,\n ip: true,\n userAgent: true,\n}).extend({\n securityToken: z.string().optional(),\n});\n\nexport type NewForm = z.infer<typeof NewFormSchema>;\nexport type UpdateForm = z.infer<typeof UpdateFormSchema>;\nexport type Form = z.infer<typeof FormSchema>;\nexport type NewFormResponse = z.infer<typeof NewFormResponseSchema>;\nexport type FormResponse = z.infer<typeof FormResponseSchema>;\nexport type FormResponseMetadata = z.infer<typeof ResponseMetadataSchema>;\nexport type FormStatus = z.infer<typeof FormStatusSchema>;\nexport type JSONSchema = z.infer<typeof JSONSchemaSchema>;\nexport type UIElementSchema = z.infer<typeof UISchemaElementSchema>;\n","import { defineRoutes } from \"@fragno-dev/core\";\nimport { z } from \"zod\";\nimport { formsFragmentDef } from \"./definition\";\nimport {\n FormSchema,\n NewFormSchema,\n NewFormResponseSchema,\n ResponseMetadataSchema,\n FormResponseSchema,\n UpdateFormSchema,\n} from \"./models\";\nimport type { Form } from \"./models\";\nimport type { StaticForm } from \".\";\n\n/** Extract and validate request metadata from headers (untrusted input) */\nfunction extractRequestMetadata(headers: Headers) {\n const rawUserAgent = headers.get(\"User-Agent\");\n const rawIp =\n headers.get(\"CF-Connecting-IP\") ||\n headers.get(\"X-Forwarded-For\")?.split(\",\")[0].trim() ||\n headers.get(\"X-Real-IP\") ||\n null;\n const result = ResponseMetadataSchema.safeParse({\n ip: rawIp,\n userAgent: rawUserAgent,\n });\n\n // Return validated data or null values if validation fails\n return result.success ? result.data : { ip: null, userAgent: null };\n}\n\nconst staticAsRegularForm = (sf: StaticForm): Form => ({\n id: sf.id,\n title: sf.title,\n description: sf.description,\n slug: sf.slug,\n status: \"static\",\n dataSchema: sf.dataSchema,\n uiSchema: sf.uiSchema as unknown as Form[\"uiSchema\"],\n version: sf.version,\n createdAt: new Date(),\n updatedAt: new Date(),\n});\n\n// Public routes\nexport const publicRoutes = defineRoutes(formsFragmentDef).create(\n ({ services, defineRoute, config }) => {\n return [\n defineRoute({\n method: \"GET\",\n path: \"/:slug\",\n outputSchema: FormSchema,\n errorCodes: [\"NOT_FOUND\"] as const,\n handler: async ({ pathParams }, { json, error }) => {\n // Check static forms first\n const staticForm = config.staticForms?.find((f) => f.slug === pathParams.slug);\n if (staticForm) {\n return json(staticAsRegularForm(staticForm));\n }\n\n const form = await services.getFormBySlug(pathParams.slug);\n if (!form) {\n return error({ message: \"Form not found\", code: \"NOT_FOUND\" }, 404);\n }\n\n return json(form);\n },\n }),\n\n defineRoute({\n method: \"POST\",\n path: \"/:slug/submit\",\n inputSchema: NewFormResponseSchema,\n outputSchema: z.string(),\n errorCodes: [\"NOT_FOUND\", \"VALIDATION_ERROR\", \"FORM_NOT_OPEN\"] as const,\n handler: async ({ input, pathParams, headers }, { json, error }) => {\n const { data } = await input.valid();\n\n // Check static forms first\n const staticFormConfig = config.staticForms?.find((f) => f.slug === pathParams.slug);\n const form = staticFormConfig\n ? staticAsRegularForm(staticFormConfig)\n : await services.getFormBySlug(pathParams.slug);\n\n if (!form) {\n return error({ message: \"Form not found\", code: \"NOT_FOUND\" }, 404);\n }\n\n // Static forms and open forms accept submissions\n if (form.status !== \"open\" && form.status !== \"static\") {\n return error(\n { message: \"Form is not open, has status \" + form.status, code: \"FORM_NOT_OPEN\" },\n 400,\n );\n }\n\n // Form validation\n const result = services.validateData(form.dataSchema, data);\n\n if (!result.success) {\n const message = result.error.errors.map((e) => e.message).join(\" \");\n return error({ message, code: \"VALIDATION_ERROR\" }, 400);\n }\n\n // Extract and validate request metadata from headers\n const metadata = extractRequestMetadata(headers);\n\n const responseId = await services.createResponse(\n form.id,\n form.version,\n result.data,\n metadata,\n );\n\n if (config.onResponseSubmitted) {\n await config.onResponseSubmitted({\n id: responseId,\n formId: form.id,\n formVersion: form.version,\n data,\n submittedAt: new Date(),\n ip: metadata?.ip,\n userAgent: metadata?.userAgent,\n });\n }\n\n return json(responseId);\n },\n }),\n ];\n },\n);\n\n// Admin routes\nexport const adminRoutes = defineRoutes(formsFragmentDef).create(\n ({ services, defineRoute, config }) => {\n return [\n defineRoute({\n method: \"GET\",\n path: \"/admin/forms\",\n outputSchema: z.array(FormSchema),\n handler: async (_ctx, { json }) => {\n const dbForms = await services.listForms();\n const staticForms = (config.staticForms ?? []).map(staticAsRegularForm);\n return json([...staticForms, ...dbForms]);\n },\n }),\n\n defineRoute({\n method: \"GET\",\n path: \"/admin/forms/:id\",\n outputSchema: FormSchema,\n errorCodes: [\"NOT_FOUND\"] as const,\n handler: async ({ pathParams }, { json, error }) => {\n // Check static forms first\n const staticForm = config.staticForms?.find((f) => f.id === pathParams.id);\n if (staticForm) {\n return json(staticAsRegularForm(staticForm));\n }\n\n const form = await services.getForm(pathParams.id);\n if (!form) {\n return error({ message: \"Form not found\", code: \"NOT_FOUND\" }, 404);\n }\n\n return json(form);\n },\n }),\n\n defineRoute({\n method: \"POST\",\n path: \"/admin/forms\",\n inputSchema: NewFormSchema,\n outputSchema: z.string(),\n errorCodes: [\"CREATE_FAILED\", \"INVALID_JSON_SCHEMA\"] as const,\n handler: async ({ input }, { json, error }) => {\n const data = await input.valid();\n\n // Validate that dataSchema is valid JSON Schema\n try {\n z.fromJSONSchema(data.dataSchema);\n } catch (e) {\n const message = e instanceof Error ? e.message : \"Invalid JSON Schema\";\n return error({ message, code: \"INVALID_JSON_SCHEMA\" }, 400);\n }\n\n const formId = await services.createForm(data);\n if (config.onFormCreated) {\n await config.onFormCreated({ ...data, id: formId });\n }\n return json(formId);\n },\n }),\n\n defineRoute({\n method: \"PUT\",\n path: \"/admin/forms/:id\",\n inputSchema: UpdateFormSchema,\n errorCodes: [\"NOT_FOUND\", \"STATIC_FORM_READ_ONLY\", \"INVALID_JSON_SCHEMA\"] as const,\n handler: async ({ input, pathParams }, { json, error }) => {\n const isStatic = config.staticForms?.some((f) => f.id === pathParams.id);\n if (isStatic) {\n return error(\n { message: \"Static forms cannot be modified\", code: \"STATIC_FORM_READ_ONLY\" },\n 403,\n );\n }\n const data = await input.valid();\n\n // Validate that dataSchema is valid JSON Schema (if provided)\n if (data.dataSchema) {\n try {\n z.fromJSONSchema(data.dataSchema);\n } catch (e) {\n const message = e instanceof Error ? e.message : \"Invalid JSON Schema\";\n return error({ message, code: \"INVALID_JSON_SCHEMA\" }, 400);\n }\n }\n\n const { success } = await services.updateForm(pathParams.id, data);\n if (!success) {\n return error({ message: \"Form not found\", code: \"NOT_FOUND\" }, 404);\n }\n return json(true);\n },\n }),\n\n defineRoute({\n method: \"DELETE\",\n path: \"/admin/forms/:id\",\n errorCodes: [\"NOT_FOUND\", \"STATIC_FORM_READ_ONLY\"] as const,\n handler: async ({ pathParams }, { json, error }) => {\n const isStatic = config.staticForms?.some((f) => f.id === pathParams.id);\n if (isStatic) {\n return error(\n { message: \"Static forms cannot be deleted\", code: \"STATIC_FORM_READ_ONLY\" },\n 403,\n );\n }\n await services.deleteForm(pathParams.id);\n // TODO: 404 when form not found\n // if (!deleted) {\n // return error({ message: \"Form not found\", code: \"NOT_FOUND\" }, 404);\n // }\n return json(true);\n },\n }),\n\n defineRoute({\n method: \"GET\",\n path: \"/admin/forms/:id/submissions\",\n queryParameters: [\"sortOrder\"] as const,\n outputSchema: z.array(FormResponseSchema),\n handler: async ({ pathParams, query }, { json }) => {\n const sortOrder = query.get(\"sortOrder\") === \"asc\" ? \"asc\" : \"desc\";\n const responses = await services.listResponses(pathParams.id, {\n field: \"submittedAt\",\n order: sortOrder,\n });\n return json(responses);\n },\n }),\n\n defineRoute({\n method: \"GET\",\n path: \"/admin/submissions/:id\",\n outputSchema: FormResponseSchema,\n errorCodes: [\"NOT_FOUND\"] as const,\n handler: async ({ pathParams }, { json, error }) => {\n const response = await services.getResponse(pathParams.id);\n if (!response) {\n return error({ message: \"Submission not found\", code: \"NOT_FOUND\" }, 404);\n }\n return json(response);\n },\n }),\n\n defineRoute({\n method: \"DELETE\",\n path: \"/admin/submissions/:id\",\n errorCodes: [\"NOT_FOUND\"] as const,\n handler: async ({ pathParams }, { json }) => {\n await services.deleteResponse(pathParams.id);\n // TODO: 404 when response not found\n // if (!deleted) {\n // return error({ message: \"Submission not found\", code: \"NOT_FOUND\" }, 404);\n // }\n return json(true);\n },\n }),\n ];\n },\n);\n","import { createClientBuilder } from \"@fragno-dev/core/client\";\nimport type { FragnoPublicClientConfig } from \"@fragno-dev/core/client\";\nimport type { FragnoPublicConfigWithDatabase } from \"@fragno-dev/db\";\nimport { instantiate } from \"@fragno-dev/core\";\nimport { publicRoutes, adminRoutes } from \"./routes\";\nimport { formsFragmentDef } from \"./definition\";\nimport type { Form, JSONSchema, FormResponse } from \"./models\";\nimport type { UISchemaElement } from \"@jsonforms/core\";\n\n// Forms that exist in code, but submissions are stored in the DB\n// Static forms always have status: \"static\" and accept submissions\nexport interface StaticForm {\n id: string;\n title: string;\n description?: string;\n slug: string;\n dataSchema: JSONSchema;\n uiSchema?: UISchemaElement;\n version: number;\n}\n\nexport interface FormsConfig {\n onFormCreated?: (form: Omit<Form, \"version\" | \"createdAt\" | \"updatedAt\">) => Promise<void>;\n onResponseSubmitted?: (response: FormResponse) => Promise<void>;\n staticForms?: StaticForm[];\n}\n\nexport const routes = [publicRoutes, adminRoutes] as const;\n\nexport function createFormsFragment(\n config: FormsConfig = {},\n options: FragnoPublicConfigWithDatabase,\n) {\n return instantiate(formsFragmentDef)\n .withConfig(config)\n .withRoutes(routes)\n .withOptions(options)\n .build();\n}\n\nexport function createFormsClients(fragnoConfig: FragnoPublicClientConfig) {\n const b = createClientBuilder(formsFragmentDef, fragnoConfig, routes);\n\n return {\n // Public\n useForm: b.createHook(\"/:slug\"),\n useSubmitForm: b.createMutator(\"POST\", \"/:slug/submit\"),\n\n // Admin - Forms\n useForms: b.createHook(\"/admin/forms\"),\n useFormById: b.createHook(\"/admin/forms/:id\"),\n useCreateForm: b.createMutator(\"POST\", \"/admin/forms\"),\n useUpdateForm: b.createMutator(\"PUT\", \"/admin/forms/:id\"),\n useDeleteForm: b.createMutator(\"DELETE\", \"/admin/forms/:id\"),\n\n // Admin - Submissions\n useSubmissions: b.createHook(\"/admin/forms/:id/submissions\"),\n useSubmission: b.createHook(\"/admin/submissions/:id\"),\n useDeleteSubmission: b.createMutator(\"DELETE\", \"/admin/submissions/:id\"),\n };\n}\n\nexport { formsFragmentDef } from \"./definition\";\nexport type { SubmissionSortOptions } from \"./definition\";\nexport type { FragnoRouteConfig } from \"@fragno-dev/core\";\nexport type {\n NewForm,\n UpdateForm,\n Form,\n NewFormResponse,\n FormResponse,\n FormResponseMetadata,\n FormStatus,\n} from \"./models\";\n"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","names":["form: T","response: T","input: NewForm","id: string","slug: string","input: UpdateForm","schema: JSONSchema","data: Record<string, unknown>","schema","formId: string","formVersion: number","data: ValidatedData","metadata?: { ip?: string | null; userAgent?: string | null }","sort: SubmissionSortOptions","headers: Headers","sf: StaticForm","result","config: FormsConfig","options: FragnoPublicConfigWithDatabase","fragnoConfig: FragnoPublicClientConfig"],"sources":["../../src/schema.ts","../../src/definition.ts","../../src/models.ts","../../src/routes.ts","../../src/index.ts"],"sourcesContent":["import { column, idColumn, schema } from \"@fragno-dev/db/schema\";\n\nexport const formsSchema = schema(\"forms\", (s) => {\n return s\n .addTable(\"form\", (t) => {\n return t\n .addColumn(\"id\", idColumn())\n .addColumn(\"title\", column(\"string\"))\n .addColumn(\"description\", column(\"string\").nullable())\n .addColumn(\"slug\", column(\"string\"))\n .addColumn(\n \"status\",\n column(\"string\").defaultTo(() => \"draft\"),\n )\n .addColumn(\"dataSchema\", column(\"json\"))\n .addColumn(\"uiSchema\", column(\"json\").nullable())\n .addColumn(\n \"version\",\n column(\"integer\").defaultTo(() => 1),\n )\n .addColumn(\n \"createdAt\",\n column(\"timestamp\").defaultTo((b) => b.now()),\n )\n .addColumn(\n \"updatedAt\",\n column(\"timestamp\").defaultTo((b) => b.now()),\n )\n .createIndex(\"idx_form_status\", [\"status\"])\n .createIndex(\"idx_form_slug\", [\"slug\"], { unique: true });\n })\n .addTable(\"response\", (t) => {\n return t\n .addColumn(\"id\", idColumn())\n .addColumn(\"formId\", column(\"string\"))\n .addColumn(\"formVersion\", column(\"integer\"))\n .addColumn(\"data\", column(\"json\"))\n .addColumn(\n \"submittedAt\",\n column(\"timestamp\").defaultTo((b) => b.now()),\n )\n .addColumn(\"userAgent\", column(\"string\").nullable())\n .addColumn(\"ip\", column(\"string\").nullable())\n .createIndex(\"idx_response_form\", [\"formId\"])\n .createIndex(\"idx_response_submitted_at\", [\"submittedAt\"]);\n });\n});\n","import { z } from \"zod\";\n\nimport { defineFragment } from \"@fragno-dev/core\";\nimport { withDatabase } from \"@fragno-dev/db\";\n\nimport type { FormsConfig } from \".\";\nimport type { JSONSchema, NewForm, UpdateForm, FormStatus, UIElementSchema } from \"./models\";\nimport { formsSchema } from \"./schema\";\n\nexport type ValidatedData<T = Record<string, unknown>> = T;\nexport type ValidationResult =\n | { success: true; data: ValidatedData }\n | {\n success: false;\n error: { message: string; errors: Array<{ instancePath: string; message: string }> };\n };\n\n// External to this fragment\nconst asExternalForm = <\n T extends { id: { externalId: string }; status: string; dataSchema: unknown; uiSchema: unknown },\n>(\n form: T,\n) => ({\n ...form,\n id: form.id.externalId,\n status: form.status as FormStatus,\n dataSchema: form.dataSchema as JSONSchema,\n uiSchema: form.uiSchema as UIElementSchema,\n});\n\nconst asExternalResponse = <\n T extends {\n id: { externalId: string };\n formId: string | null;\n data: unknown;\n ip: string | null;\n userAgent: string | null;\n },\n>(\n response: T,\n) => ({\n ...response,\n id: response.id.externalId,\n data: response.data as Record<string, unknown>,\n});\n\nexport interface SubmissionSortOptions {\n field: \"submittedAt\";\n order: \"asc\" | \"desc\";\n}\n\nexport const formsFragmentDef = defineFragment<FormsConfig>(\"forms\")\n .extend(withDatabase(formsSchema))\n .providesBaseService(({ defineService }) =>\n defineService({\n createForm: function (input: NewForm) {\n return this.serviceTx(formsSchema)\n .mutate(({ uow }) => uow.create(\"form\", input))\n .transform(({ mutateResult }) => mutateResult.externalId)\n .build();\n },\n\n getForm: function (id: string) {\n return this.serviceTx(formsSchema)\n .retrieve((uow) =>\n uow.findFirst(\"form\", (b) => b.whereIndex(\"primary\", (eb) => eb(\"id\", \"=\", id))),\n )\n .transformRetrieve(([form]) => (form ? asExternalForm(form) : null))\n .build();\n },\n\n getFormBySlug: function (slug: string) {\n return this.serviceTx(formsSchema)\n .retrieve((uow) =>\n uow.findFirst(\"form\", (b) =>\n b.whereIndex(\"idx_form_slug\", (eb) => eb(\"slug\", \"=\", slug)),\n ),\n )\n .transformRetrieve(([form]) => (form ? asExternalForm(form) : null))\n .build();\n },\n\n updateForm: function (id: string, input: UpdateForm) {\n return this.serviceTx(formsSchema)\n .retrieve((uow) =>\n uow.find(\"form\", (b) => b.whereIndex(\"primary\", (eb) => eb(\"id\", \"=\", id))),\n )\n .mutate(({ uow, retrieveResult: [currentForms] }) => {\n if (currentForms.length === 0) {\n return { success: false };\n }\n // TODO: length > 1 ?\n\n const currentForm = currentForms[0];\n\n // Only increment version if changing data schema\n const newVersion = input.dataSchema ? currentForm.version + 1 : currentForm.version;\n\n uow.update(\"form\", currentForm.id, (b) => {\n b.set({ ...input, version: newVersion, updatedAt: new Date() }).check();\n });\n\n return { success: true };\n })\n .build();\n },\n\n listForms: function () {\n return this.serviceTx(formsSchema)\n .retrieve((uow) => uow.find(\"form\", (b) => b.whereIndex(\"primary\")))\n .transformRetrieve(([forms]) => forms.map(asExternalForm))\n .build();\n },\n\n deleteForm: function (id: string) {\n return this.serviceTx(formsSchema)\n .mutate(({ uow }) => uow.delete(\"form\", id))\n .build();\n },\n\n validateData: (schema: JSONSchema, data: Record<string, unknown>): ValidationResult => {\n const zodSchema = z.fromJSONSchema(schema);\n const result = zodSchema.safeParse(data);\n\n if (result.success) {\n return { success: true, data: result.data as ValidatedData };\n }\n return {\n success: false,\n\n error: {\n message: \"Validation failed\",\n errors: result.error.issues.map((e) => ({\n instancePath: \"/\" + e.path.join(\"/\"),\n message: e.message,\n })),\n },\n };\n },\n\n createResponse: function (\n formId: string,\n formVersion: number,\n data: ValidatedData,\n metadata?: { ip?: string | null; userAgent?: string | null },\n ) {\n return this.serviceTx(formsSchema)\n .mutate(({ uow }) =>\n uow.create(\"response\", {\n formId,\n formVersion,\n data,\n ip: metadata?.ip ?? null,\n userAgent: metadata?.userAgent ?? null,\n }),\n )\n .transform(({ mutateResult }) => mutateResult.externalId)\n .build();\n },\n\n getResponse: function (id: string) {\n return this.serviceTx(formsSchema)\n .retrieve((uow) =>\n uow.findFirst(\"response\", (b) => b.whereIndex(\"primary\", (eb) => eb(\"id\", \"=\", id))),\n )\n .transformRetrieve(([response]) => (response ? asExternalResponse(response) : null))\n .build();\n },\n\n listResponses: function (\n formId: string,\n sort: SubmissionSortOptions = { field: \"submittedAt\", order: \"desc\" },\n ) {\n return this.serviceTx(formsSchema)\n .retrieve((uow) =>\n uow.find(\"response\", (b) =>\n b\n .whereIndex(\"idx_response_form\", (eb) => eb(\"formId\", \"=\", formId))\n .orderByIndex(\"idx_response_submitted_at\", sort.order),\n ),\n )\n .transformRetrieve(([responses]) => responses.map(asExternalResponse))\n .build();\n },\n\n deleteResponse: function (id: string) {\n return this.serviceTx(formsSchema)\n .mutate(({ uow }) => uow.delete(\"response\", id))\n .build();\n },\n }),\n )\n .build();\n","import { z } from \"zod\";\n\nexport const JSONSchemaSchema = z.record(z.string(), z.unknown());\nexport const UISchemaElementSchema = z.record(z.string(), z.unknown());\n\nexport const FormStatusSchema = z.enum([\"draft\", \"open\", \"closed\", \"static\"]);\n\nexport const FormSchema = z.object({\n id: z.string(),\n title: z.string(),\n description: z.string().nullable().optional(),\n slug: z.string().min(1).max(255).toLowerCase().trim(),\n status: FormStatusSchema,\n dataSchema: JSONSchemaSchema,\n uiSchema: UISchemaElementSchema.optional(),\n version: z.number(),\n createdAt: z.date(),\n updatedAt: z.date(),\n});\n\nexport const NewFormSchema = FormSchema.omit({\n id: true,\n createdAt: true,\n updatedAt: true,\n version: true,\n});\n\nexport const UpdateFormSchema = NewFormSchema.partial();\n\nexport const ResponseMetadataSchema = z.object({\n ip: z.union([z.ipv4(), z.ipv6()]).nullable(),\n userAgent: z.string().max(4096).nullable(),\n});\n\nexport const FormResponseSchema = z.object({\n id: z.string(),\n formId: z.string().nullable().describe(\"Form ID (static form ID or database form external ID)\"),\n formVersion: z.number(),\n data: z.record(z.string(), z.unknown()),\n submittedAt: z.date(),\n ip: z.string().max(45).nullable(),\n userAgent: z.string().max(512).nullable(),\n});\n\nexport const NewFormResponseSchema = FormResponseSchema.omit({\n id: true,\n submittedAt: true,\n formId: true,\n formVersion: true,\n ip: true,\n userAgent: true,\n}).extend({\n securityToken: z.string().optional(),\n});\n\nexport type NewForm = z.infer<typeof NewFormSchema>;\nexport type UpdateForm = z.infer<typeof UpdateFormSchema>;\nexport type Form = z.infer<typeof FormSchema>;\nexport type NewFormResponse = z.infer<typeof NewFormResponseSchema>;\nexport type FormResponse = z.infer<typeof FormResponseSchema>;\nexport type FormResponseMetadata = z.infer<typeof ResponseMetadataSchema>;\nexport type FormStatus = z.infer<typeof FormStatusSchema>;\nexport type JSONSchema = z.infer<typeof JSONSchemaSchema>;\nexport type UIElementSchema = z.infer<typeof UISchemaElementSchema>;\n","import { z } from \"zod\";\n\nimport { defineRoutes } from \"@fragno-dev/core\";\n\nimport type { StaticForm } from \".\";\nimport { formsFragmentDef } from \"./definition\";\nimport {\n FormSchema,\n NewFormSchema,\n NewFormResponseSchema,\n ResponseMetadataSchema,\n FormResponseSchema,\n UpdateFormSchema,\n} from \"./models\";\nimport type { Form } from \"./models\";\n\n/** Extract and validate request metadata from headers (untrusted input) */\nfunction extractRequestMetadata(headers: Headers) {\n const rawUserAgent = headers.get(\"User-Agent\");\n const rawIp =\n headers.get(\"CF-Connecting-IP\") ||\n headers.get(\"X-Forwarded-For\")?.split(\",\")[0].trim() ||\n headers.get(\"X-Real-IP\") ||\n null;\n const result = ResponseMetadataSchema.safeParse({\n ip: rawIp,\n userAgent: rawUserAgent,\n });\n\n // Return validated data or null values if validation fails\n return result.success ? result.data : { ip: null, userAgent: null };\n}\n\nconst staticAsRegularForm = (sf: StaticForm): Form => ({\n id: sf.id,\n title: sf.title,\n description: sf.description,\n slug: sf.slug,\n status: \"static\",\n dataSchema: sf.dataSchema,\n uiSchema: sf.uiSchema as unknown as Form[\"uiSchema\"],\n version: sf.version,\n createdAt: new Date(),\n updatedAt: new Date(),\n});\n\n// Public routes\nexport const publicRoutes = defineRoutes(formsFragmentDef).create(\n ({ services, defineRoute, config }) => {\n return [\n defineRoute({\n method: \"GET\",\n path: \"/:slug\",\n outputSchema: FormSchema,\n errorCodes: [\"NOT_FOUND\"] as const,\n handler: async function ({ pathParams }, { json, error }) {\n // Check static forms first\n const staticForm = config.staticForms?.find((f) => f.slug === pathParams.slug);\n if (staticForm) {\n return json(staticAsRegularForm(staticForm));\n }\n\n const form = await this.handlerTx()\n .withServiceCalls(() => [services.getFormBySlug(pathParams.slug)] as const)\n .transform(({ serviceResult: [result] }) => result)\n .execute();\n if (!form) {\n return error({ message: \"Form not found\", code: \"NOT_FOUND\" }, 404);\n }\n\n return json(form);\n },\n }),\n\n defineRoute({\n method: \"POST\",\n path: \"/:slug/submit\",\n inputSchema: NewFormResponseSchema,\n outputSchema: z.string(),\n errorCodes: [\"NOT_FOUND\", \"VALIDATION_ERROR\", \"FORM_NOT_OPEN\"] as const,\n handler: async function ({ input, pathParams, headers }, { json, error }) {\n const { data } = await input.valid();\n\n // Check static forms first\n const staticFormConfig = config.staticForms?.find((f) => f.slug === pathParams.slug);\n const form = staticFormConfig\n ? staticAsRegularForm(staticFormConfig)\n : await this.handlerTx()\n .withServiceCalls(() => [services.getFormBySlug(pathParams.slug)] as const)\n .transform(({ serviceResult: [result] }) => result)\n .execute();\n\n if (!form) {\n return error({ message: \"Form not found\", code: \"NOT_FOUND\" }, 404);\n }\n\n // Static forms and open forms accept submissions\n if (form.status !== \"open\" && form.status !== \"static\") {\n return error(\n { message: \"Form is not open, has status \" + form.status, code: \"FORM_NOT_OPEN\" },\n 400,\n );\n }\n\n // Form validation\n const result = services.validateData(form.dataSchema, data);\n\n if (!result.success) {\n const message = result.error.errors.map((e) => e.message).join(\" \");\n return error({ message, code: \"VALIDATION_ERROR\" }, 400);\n }\n\n // Extract and validate request metadata from headers\n const metadata = extractRequestMetadata(headers);\n\n const responseId = await this.handlerTx()\n .withServiceCalls(\n () =>\n [services.createResponse(form.id, form.version, result.data, metadata)] as const,\n )\n .transform(({ serviceResult: [result] }) => result)\n .execute();\n\n if (config.onResponseSubmitted) {\n await config.onResponseSubmitted({\n id: responseId,\n formId: form.id,\n formVersion: form.version,\n data,\n submittedAt: new Date(),\n ip: metadata?.ip,\n userAgent: metadata?.userAgent,\n });\n }\n\n return json(responseId);\n },\n }),\n ];\n },\n);\n\n// Admin routes\nexport const adminRoutes = defineRoutes(formsFragmentDef).create(\n ({ services, defineRoute, config }) => {\n return [\n defineRoute({\n method: \"GET\",\n path: \"/admin/forms\",\n outputSchema: z.array(FormSchema),\n handler: async function (_ctx, { json }) {\n const dbForms = await this.handlerTx()\n .withServiceCalls(() => [services.listForms()] as const)\n .transform(({ serviceResult: [result] }) => result)\n .execute();\n const staticForms = (config.staticForms ?? []).map(staticAsRegularForm);\n return json([...staticForms, ...dbForms]);\n },\n }),\n\n defineRoute({\n method: \"GET\",\n path: \"/admin/forms/:id\",\n outputSchema: FormSchema,\n errorCodes: [\"NOT_FOUND\"] as const,\n handler: async function ({ pathParams }, { json, error }) {\n // Check static forms first\n const staticForm = config.staticForms?.find((f) => f.id === pathParams.id);\n if (staticForm) {\n return json(staticAsRegularForm(staticForm));\n }\n\n const form = await this.handlerTx()\n .withServiceCalls(() => [services.getForm(pathParams.id)] as const)\n .transform(({ serviceResult: [result] }) => result)\n .execute();\n if (!form) {\n return error({ message: \"Form not found\", code: \"NOT_FOUND\" }, 404);\n }\n\n return json(form);\n },\n }),\n\n defineRoute({\n method: \"POST\",\n path: \"/admin/forms\",\n inputSchema: NewFormSchema,\n outputSchema: z.string(),\n errorCodes: [\"CREATE_FAILED\", \"INVALID_JSON_SCHEMA\"] as const,\n handler: async function ({ input }, { json, error }) {\n const data = await input.valid();\n\n // Validate that dataSchema is valid JSON Schema\n try {\n z.fromJSONSchema(data.dataSchema);\n } catch (e) {\n const message = e instanceof Error ? e.message : \"Invalid JSON Schema\";\n return error({ message, code: \"INVALID_JSON_SCHEMA\" }, 400);\n }\n\n const formId = await this.handlerTx()\n .withServiceCalls(() => [services.createForm(data)] as const)\n .transform(({ serviceResult: [result] }) => result)\n .execute();\n if (config.onFormCreated) {\n await config.onFormCreated({ ...data, id: formId });\n }\n return json(formId);\n },\n }),\n\n defineRoute({\n method: \"PUT\",\n path: \"/admin/forms/:id\",\n inputSchema: UpdateFormSchema,\n errorCodes: [\"NOT_FOUND\", \"STATIC_FORM_READ_ONLY\", \"INVALID_JSON_SCHEMA\"] as const,\n handler: async function ({ input, pathParams }, { json, error }) {\n const isStatic = config.staticForms?.some((f) => f.id === pathParams.id);\n if (isStatic) {\n return error(\n { message: \"Static forms cannot be modified\", code: \"STATIC_FORM_READ_ONLY\" },\n 403,\n );\n }\n const data = await input.valid();\n\n // Validate that dataSchema is valid JSON Schema (if provided)\n if (data.dataSchema) {\n try {\n z.fromJSONSchema(data.dataSchema);\n } catch (e) {\n const message = e instanceof Error ? e.message : \"Invalid JSON Schema\";\n return error({ message, code: \"INVALID_JSON_SCHEMA\" }, 400);\n }\n }\n\n const { success } = await this.handlerTx()\n .withServiceCalls(() => [services.updateForm(pathParams.id, data)] as const)\n .transform(({ serviceResult: [result] }) => result)\n .execute();\n if (!success) {\n return error({ message: \"Form not found\", code: \"NOT_FOUND\" }, 404);\n }\n return json(true);\n },\n }),\n\n defineRoute({\n method: \"DELETE\",\n path: \"/admin/forms/:id\",\n errorCodes: [\"NOT_FOUND\", \"STATIC_FORM_READ_ONLY\"] as const,\n handler: async function ({ pathParams }, { json, error }) {\n const isStatic = config.staticForms?.some((f) => f.id === pathParams.id);\n if (isStatic) {\n return error(\n { message: \"Static forms cannot be deleted\", code: \"STATIC_FORM_READ_ONLY\" },\n 403,\n );\n }\n await this.handlerTx()\n .withServiceCalls(() => [services.deleteForm(pathParams.id)] as const)\n .execute();\n // TODO: 404 when form not found\n // if (!deleted) {\n // return error({ message: \"Form not found\", code: \"NOT_FOUND\" }, 404);\n // }\n return json(true);\n },\n }),\n\n defineRoute({\n method: \"GET\",\n path: \"/admin/forms/:id/submissions\",\n queryParameters: [\"sortOrder\"] as const,\n outputSchema: z.array(FormResponseSchema),\n handler: async function ({ pathParams, query }, { json }) {\n const sortOrder = query.get(\"sortOrder\") === \"asc\" ? \"asc\" : \"desc\";\n const responses = await this.handlerTx()\n .withServiceCalls(\n () =>\n [\n services.listResponses(pathParams.id, {\n field: \"submittedAt\",\n order: sortOrder,\n }),\n ] as const,\n )\n .transform(({ serviceResult: [result] }) => result)\n .execute();\n return json(responses);\n },\n }),\n\n defineRoute({\n method: \"GET\",\n path: \"/admin/submissions/:id\",\n outputSchema: FormResponseSchema,\n errorCodes: [\"NOT_FOUND\"] as const,\n handler: async function ({ pathParams }, { json, error }) {\n const response = await this.handlerTx()\n .withServiceCalls(() => [services.getResponse(pathParams.id)] as const)\n .transform(({ serviceResult: [result] }) => result)\n .execute();\n if (!response) {\n return error({ message: \"Submission not found\", code: \"NOT_FOUND\" }, 404);\n }\n return json(response);\n },\n }),\n\n defineRoute({\n method: \"DELETE\",\n path: \"/admin/submissions/:id\",\n errorCodes: [\"NOT_FOUND\"] as const,\n handler: async function ({ pathParams }, { json }) {\n await this.handlerTx()\n .withServiceCalls(() => [services.deleteResponse(pathParams.id)] as const)\n .execute();\n // TODO: 404 when response not found\n // if (!deleted) {\n // return error({ message: \"Submission not found\", code: \"NOT_FOUND\" }, 404);\n // }\n return json(true);\n },\n }),\n ];\n },\n);\n","import { createClientBuilder } from \"@fragno-dev/core/client\";\nimport type { FragnoPublicClientConfig } from \"@fragno-dev/core/client\";\n\nimport { instantiate } from \"@fragno-dev/core\";\nimport type { FragnoPublicConfigWithDatabase } from \"@fragno-dev/db\";\n\nimport type { UISchemaElement } from \"@jsonforms/core\";\n\nimport { formsFragmentDef } from \"./definition\";\nimport type { Form, JSONSchema, FormResponse } from \"./models\";\nimport { publicRoutes, adminRoutes } from \"./routes\";\n\n// Forms that exist in code, but submissions are stored in the DB\n// Static forms always have status: \"static\" and accept submissions\nexport interface StaticForm {\n id: string;\n title: string;\n description?: string;\n slug: string;\n dataSchema: JSONSchema;\n uiSchema?: UISchemaElement;\n version: number;\n}\n\nexport interface FormsConfig {\n onFormCreated?: (form: Omit<Form, \"version\" | \"createdAt\" | \"updatedAt\">) => Promise<void>;\n onResponseSubmitted?: (response: FormResponse) => Promise<void>;\n staticForms?: StaticForm[];\n}\n\nexport const routes = [publicRoutes, adminRoutes] as const;\n\nexport function createFormsFragment(\n config: FormsConfig = {},\n options: FragnoPublicConfigWithDatabase,\n) {\n return instantiate(formsFragmentDef)\n .withConfig(config)\n .withRoutes(routes)\n .withOptions(options)\n .build();\n}\n\nexport function createFormsClients(fragnoConfig: FragnoPublicClientConfig) {\n const b = createClientBuilder(formsFragmentDef, fragnoConfig, routes);\n\n return {\n // Public\n useForm: b.createHook(\"/:slug\"),\n useSubmitForm: b.createMutator(\"POST\", \"/:slug/submit\"),\n\n // Admin - Forms\n useForms: b.createHook(\"/admin/forms\"),\n useFormById: b.createHook(\"/admin/forms/:id\"),\n useCreateForm: b.createMutator(\"POST\", \"/admin/forms\"),\n useUpdateForm: b.createMutator(\"PUT\", \"/admin/forms/:id\"),\n useDeleteForm: b.createMutator(\"DELETE\", \"/admin/forms/:id\"),\n\n // Admin - Submissions\n useSubmissions: b.createHook(\"/admin/forms/:id/submissions\"),\n useSubmission: b.createHook(\"/admin/submissions/:id\"),\n useDeleteSubmission: b.createMutator(\"DELETE\", \"/admin/submissions/:id\"),\n };\n}\n\nexport { formsFragmentDef } from \"./definition\";\nexport type { SubmissionSortOptions } from \"./definition\";\nexport type { FragnoRouteConfig } from \"@fragno-dev/core\";\nexport type {\n NewForm,\n UpdateForm,\n Form,\n NewFormResponse,\n FormResponse,\n FormResponseMetadata,\n FormStatus,\n} from \"./models\";\n"],"mappings":";;;;;;;AAEA,MAAa,cAAc,OAAO,SAAS,CAAC,MAAM;AAChD,QAAO,EACJ,SAAS,QAAQ,CAAC,MAAM;AACvB,SAAO,EACJ,UAAU,MAAM,UAAU,CAAC,CAC3B,UAAU,SAAS,OAAO,SAAS,CAAC,CACpC,UAAU,eAAe,OAAO,SAAS,CAAC,UAAU,CAAC,CACrD,UAAU,QAAQ,OAAO,SAAS,CAAC,CACnC,UACC,UACA,OAAO,SAAS,CAAC,UAAU,MAAM,QAAQ,CAC1C,CACA,UAAU,cAAc,OAAO,OAAO,CAAC,CACvC,UAAU,YAAY,OAAO,OAAO,CAAC,UAAU,CAAC,CAChD,UACC,WACA,OAAO,UAAU,CAAC,UAAU,MAAM,EAAE,CACrC,CACA,UACC,aACA,OAAO,YAAY,CAAC,UAAU,CAAC,MAAM,EAAE,KAAK,CAAC,CAC9C,CACA,UACC,aACA,OAAO,YAAY,CAAC,UAAU,CAAC,MAAM,EAAE,KAAK,CAAC,CAC9C,CACA,YAAY,mBAAmB,CAAC,QAAS,EAAC,CAC1C,YAAY,iBAAiB,CAAC,MAAO,GAAE,EAAE,QAAQ,KAAM,EAAC;CAC5D,EAAC,CACD,SAAS,YAAY,CAAC,MAAM;AAC3B,SAAO,EACJ,UAAU,MAAM,UAAU,CAAC,CAC3B,UAAU,UAAU,OAAO,SAAS,CAAC,CACrC,UAAU,eAAe,OAAO,UAAU,CAAC,CAC3C,UAAU,QAAQ,OAAO,OAAO,CAAC,CACjC,UACC,eACA,OAAO,YAAY,CAAC,UAAU,CAAC,MAAM,EAAE,KAAK,CAAC,CAC9C,CACA,UAAU,aAAa,OAAO,SAAS,CAAC,UAAU,CAAC,CACnD,UAAU,MAAM,OAAO,SAAS,CAAC,UAAU,CAAC,CAC5C,YAAY,qBAAqB,CAAC,QAAS,EAAC,CAC5C,YAAY,6BAA6B,CAAC,aAAc,EAAC;CAC7D,EAAC;AACL,EAAC;;;;AC5BF,MAAM,iBAAiB,CAGrBA,UACI;CACJ,GAAG;CACH,IAAI,KAAK,GAAG;CACZ,QAAQ,KAAK;CACb,YAAY,KAAK;CACjB,UAAU,KAAK;AAChB;AAED,MAAM,qBAAqB,CASzBC,cACI;CACJ,GAAG;CACH,IAAI,SAAS,GAAG;CAChB,MAAM,SAAS;AAChB;AAOD,MAAa,mBAAmB,eAA4B,QAAQ,CACjE,OAAO,aAAa,YAAY,CAAC,CACjC,oBAAoB,CAAC,EAAE,eAAe,KACrC,cAAc;CACZ,YAAY,SAAUC,OAAgB;AACpC,SAAO,KAAK,UAAU,YAAY,CAC/B,OAAO,CAAC,EAAE,KAAK,KAAK,IAAI,OAAO,QAAQ,MAAM,CAAC,CAC9C,UAAU,CAAC,EAAE,cAAc,KAAK,aAAa,WAAW,CACxD,OAAO;CACX;CAED,SAAS,SAAUC,IAAY;AAC7B,SAAO,KAAK,UAAU,YAAY,CAC/B,SAAS,CAAC,QACT,IAAI,UAAU,QAAQ,CAAC,MAAM,EAAE,WAAW,WAAW,CAAC,OAAO,GAAG,MAAM,KAAK,GAAG,CAAC,CAAC,CACjF,CACA,kBAAkB,CAAC,CAAC,KAAK,KAAM,OAAO,eAAe,KAAK,GAAG,KAAM,CACnE,OAAO;CACX;CAED,eAAe,SAAUC,MAAc;AACrC,SAAO,KAAK,UAAU,YAAY,CAC/B,SAAS,CAAC,QACT,IAAI,UAAU,QAAQ,CAAC,MACrB,EAAE,WAAW,iBAAiB,CAAC,OAAO,GAAG,QAAQ,KAAK,KAAK,CAAC,CAC7D,CACF,CACA,kBAAkB,CAAC,CAAC,KAAK,KAAM,OAAO,eAAe,KAAK,GAAG,KAAM,CACnE,OAAO;CACX;CAED,YAAY,SAAUD,IAAYE,OAAmB;AACnD,SAAO,KAAK,UAAU,YAAY,CAC/B,SAAS,CAAC,QACT,IAAI,KAAK,QAAQ,CAAC,MAAM,EAAE,WAAW,WAAW,CAAC,OAAO,GAAG,MAAM,KAAK,GAAG,CAAC,CAAC,CAC5E,CACA,OAAO,CAAC,EAAE,KAAK,gBAAgB,CAAC,aAAa,EAAE,KAAK;AACnD,OAAI,aAAa,WAAW,EAC1B,QAAO,EAAE,SAAS,MAAO;GAI3B,MAAM,cAAc,aAAa;GAGjC,MAAM,aAAa,MAAM,aAAa,YAAY,UAAU,IAAI,YAAY;AAE5E,OAAI,OAAO,QAAQ,YAAY,IAAI,CAAC,MAAM;AACxC,MAAE,IAAI;KAAE,GAAG;KAAO,SAAS;KAAY,WAAW,IAAI;IAAQ,EAAC,CAAC,OAAO;GACxE,EAAC;AAEF,UAAO,EAAE,SAAS,KAAM;EACzB,EAAC,CACD,OAAO;CACX;CAED,WAAW,WAAY;AACrB,SAAO,KAAK,UAAU,YAAY,CAC/B,SAAS,CAAC,QAAQ,IAAI,KAAK,QAAQ,CAAC,MAAM,EAAE,WAAW,UAAU,CAAC,CAAC,CACnE,kBAAkB,CAAC,CAAC,MAAM,KAAK,MAAM,IAAI,eAAe,CAAC,CACzD,OAAO;CACX;CAED,YAAY,SAAUF,IAAY;AAChC,SAAO,KAAK,UAAU,YAAY,CAC/B,OAAO,CAAC,EAAE,KAAK,KAAK,IAAI,OAAO,QAAQ,GAAG,CAAC,CAC3C,OAAO;CACX;CAED,cAAc,CAACG,UAAoBC,SAAoD;EACrF,MAAM,YAAY,EAAE,eAAeC,SAAO;EAC1C,MAAM,SAAS,UAAU,UAAU,KAAK;AAExC,MAAI,OAAO,QACT,QAAO;GAAE,SAAS;GAAM,MAAM,OAAO;EAAuB;AAE9D,SAAO;GACL,SAAS;GAET,OAAO;IACL,SAAS;IACT,QAAQ,OAAO,MAAM,OAAO,IAAI,CAAC,OAAO;KACtC,cAAc,MAAM,EAAE,KAAK,KAAK,IAAI;KACpC,SAAS,EAAE;IACZ,GAAE;GACJ;EACF;CACF;CAED,gBAAgB,SACdC,QACAC,aACAC,MACAC,UACA;AACA,SAAO,KAAK,UAAU,YAAY,CAC/B,OAAO,CAAC,EAAE,KAAK,KACd,IAAI,OAAO,YAAY;GACrB;GACA;GACA;GACA,IAAI,UAAU,MAAM;GACpB,WAAW,UAAU,aAAa;EACnC,EAAC,CACH,CACA,UAAU,CAAC,EAAE,cAAc,KAAK,aAAa,WAAW,CACxD,OAAO;CACX;CAED,aAAa,SAAUT,IAAY;AACjC,SAAO,KAAK,UAAU,YAAY,CAC/B,SAAS,CAAC,QACT,IAAI,UAAU,YAAY,CAAC,MAAM,EAAE,WAAW,WAAW,CAAC,OAAO,GAAG,MAAM,KAAK,GAAG,CAAC,CAAC,CACrF,CACA,kBAAkB,CAAC,CAAC,SAAS,KAAM,WAAW,mBAAmB,SAAS,GAAG,KAAM,CACnF,OAAO;CACX;CAED,eAAe,SACbM,QACAI,OAA8B;EAAE,OAAO;EAAe,OAAO;CAAQ,GACrE;AACA,SAAO,KAAK,UAAU,YAAY,CAC/B,SAAS,CAAC,QACT,IAAI,KAAK,YAAY,CAAC,MACpB,EACG,WAAW,qBAAqB,CAAC,OAAO,GAAG,UAAU,KAAK,OAAO,CAAC,CAClE,aAAa,6BAA6B,KAAK,MAAM,CACzD,CACF,CACA,kBAAkB,CAAC,CAAC,UAAU,KAAK,UAAU,IAAI,mBAAmB,CAAC,CACrE,OAAO;CACX;CAED,gBAAgB,SAAUV,IAAY;AACpC,SAAO,KAAK,UAAU,YAAY,CAC/B,OAAO,CAAC,EAAE,KAAK,KAAK,IAAI,OAAO,YAAY,GAAG,CAAC,CAC/C,OAAO;CACX;AACF,EAAC,CACH,CACA,OAAO;;;;AC9LV,MAAa,mBAAmB,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,SAAS,CAAC;AACjE,MAAa,wBAAwB,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,SAAS,CAAC;AAEtE,MAAa,mBAAmB,EAAE,KAAK;CAAC;CAAS;CAAQ;CAAU;AAAS,EAAC;AAE7E,MAAa,aAAa,EAAE,OAAO;CACjC,IAAI,EAAE,QAAQ;CACd,OAAO,EAAE,QAAQ;CACjB,aAAa,EAAE,QAAQ,CAAC,UAAU,CAAC,UAAU;CAC7C,MAAM,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM;CACrD,QAAQ;CACR,YAAY;CACZ,UAAU,sBAAsB,UAAU;CAC1C,SAAS,EAAE,QAAQ;CACnB,WAAW,EAAE,MAAM;CACnB,WAAW,EAAE,MAAM;AACpB,EAAC;AAEF,MAAa,gBAAgB,WAAW,KAAK;CAC3C,IAAI;CACJ,WAAW;CACX,WAAW;CACX,SAAS;AACV,EAAC;AAEF,MAAa,mBAAmB,cAAc,SAAS;AAEvD,MAAa,yBAAyB,EAAE,OAAO;CAC7C,IAAI,EAAE,MAAM,CAAC,EAAE,MAAM,EAAE,EAAE,MAAM,AAAC,EAAC,CAAC,UAAU;CAC5C,WAAW,EAAE,QAAQ,CAAC,IAAI,KAAK,CAAC,UAAU;AAC3C,EAAC;AAEF,MAAa,qBAAqB,EAAE,OAAO;CACzC,IAAI,EAAE,QAAQ;CACd,QAAQ,EAAE,QAAQ,CAAC,UAAU,CAAC,SAAS,wDAAwD;CAC/F,aAAa,EAAE,QAAQ;CACvB,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,SAAS,CAAC;CACvC,aAAa,EAAE,MAAM;CACrB,IAAI,EAAE,QAAQ,CAAC,IAAI,GAAG,CAAC,UAAU;CACjC,WAAW,EAAE,QAAQ,CAAC,IAAI,IAAI,CAAC,UAAU;AAC1C,EAAC;AAEF,MAAa,wBAAwB,mBAAmB,KAAK;CAC3D,IAAI;CACJ,aAAa;CACb,QAAQ;CACR,aAAa;CACb,IAAI;CACJ,WAAW;AACZ,EAAC,CAAC,OAAO,EACR,eAAe,EAAE,QAAQ,CAAC,UAAU,CACrC,EAAC;;;;;ACpCF,SAAS,uBAAuBW,SAAkB;CAChD,MAAM,eAAe,QAAQ,IAAI,aAAa;CAC9C,MAAM,QACJ,QAAQ,IAAI,mBAAmB,IAC/B,QAAQ,IAAI,kBAAkB,EAAE,MAAM,IAAI,CAAC,GAAG,MAAM,IACpD,QAAQ,IAAI,YAAY,IACxB;CACF,MAAM,SAAS,uBAAuB,UAAU;EAC9C,IAAI;EACJ,WAAW;CACZ,EAAC;AAGF,QAAO,OAAO,UAAU,OAAO,OAAO;EAAE,IAAI;EAAM,WAAW;CAAM;AACpE;AAED,MAAM,sBAAsB,CAACC,QAA0B;CACrD,IAAI,GAAG;CACP,OAAO,GAAG;CACV,aAAa,GAAG;CAChB,MAAM,GAAG;CACT,QAAQ;CACR,YAAY,GAAG;CACf,UAAU,GAAG;CACb,SAAS,GAAG;CACZ,WAAW,IAAI;CACf,WAAW,IAAI;AAChB;AAGD,MAAa,eAAe,aAAa,iBAAiB,CAAC,OACzD,CAAC,EAAE,UAAU,aAAa,QAAQ,KAAK;AACrC,QAAO,CACL,YAAY;EACV,QAAQ;EACR,MAAM;EACN,cAAc;EACd,YAAY,CAAC,WAAY;EACzB,SAAS,eAAgB,EAAE,YAAY,EAAE,EAAE,MAAM,OAAO,EAAE;GAExD,MAAM,aAAa,OAAO,aAAa,KAAK,CAAC,MAAM,EAAE,SAAS,WAAW,KAAK;AAC9E,OAAI,WACF,QAAO,KAAK,oBAAoB,WAAW,CAAC;GAG9C,MAAM,OAAO,MAAM,KAAK,WAAW,CAChC,iBAAiB,MAAM,CAAC,SAAS,cAAc,WAAW,KAAK,AAAC,EAAU,CAC1E,UAAU,CAAC,EAAE,eAAe,CAAC,OAAO,EAAE,KAAK,OAAO,CAClD,SAAS;AACZ,QAAK,KACH,QAAO,MAAM;IAAE,SAAS;IAAkB,MAAM;GAAa,GAAE,IAAI;AAGrE,UAAO,KAAK,KAAK;EAClB;CACF,EAAC,EAEF,YAAY;EACV,QAAQ;EACR,MAAM;EACN,aAAa;EACb,cAAc,EAAE,QAAQ;EACxB,YAAY;GAAC;GAAa;GAAoB;EAAgB;EAC9D,SAAS,eAAgB,EAAE,OAAO,YAAY,SAAS,EAAE,EAAE,MAAM,OAAO,EAAE;GACxE,MAAM,EAAE,MAAM,GAAG,MAAM,MAAM,OAAO;GAGpC,MAAM,mBAAmB,OAAO,aAAa,KAAK,CAAC,MAAM,EAAE,SAAS,WAAW,KAAK;GACpF,MAAM,OAAO,mBACT,oBAAoB,iBAAiB,GACrC,MAAM,KAAK,WAAW,CACnB,iBAAiB,MAAM,CAAC,SAAS,cAAc,WAAW,KAAK,AAAC,EAAU,CAC1E,UAAU,CAAC,EAAE,eAAe,CAACC,SAAO,EAAE,KAAKA,SAAO,CAClD,SAAS;AAEhB,QAAK,KACH,QAAO,MAAM;IAAE,SAAS;IAAkB,MAAM;GAAa,GAAE,IAAI;AAIrE,OAAI,KAAK,WAAW,UAAU,KAAK,WAAW,SAC5C,QAAO,MACL;IAAE,SAAS,kCAAkC,KAAK;IAAQ,MAAM;GAAiB,GACjF,IACD;GAIH,MAAM,SAAS,SAAS,aAAa,KAAK,YAAY,KAAK;AAE3D,QAAK,OAAO,SAAS;IACnB,MAAM,UAAU,OAAO,MAAM,OAAO,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,KAAK,IAAI;AACnE,WAAO,MAAM;KAAE;KAAS,MAAM;IAAoB,GAAE,IAAI;GACzD;GAGD,MAAM,WAAW,uBAAuB,QAAQ;GAEhD,MAAM,aAAa,MAAM,KAAK,WAAW,CACtC,iBACC,MACE,CAAC,SAAS,eAAe,KAAK,IAAI,KAAK,SAAS,OAAO,MAAM,SAAS,AAAC,EAC1E,CACA,UAAU,CAAC,EAAE,eAAe,CAACA,SAAO,EAAE,KAAKA,SAAO,CAClD,SAAS;AAEZ,OAAI,OAAO,oBACT,OAAM,OAAO,oBAAoB;IAC/B,IAAI;IACJ,QAAQ,KAAK;IACb,aAAa,KAAK;IAClB;IACA,aAAa,IAAI;IACjB,IAAI,UAAU;IACd,WAAW,UAAU;GACtB,EAAC;AAGJ,UAAO,KAAK,WAAW;EACxB;CACF,EAAC,AACH;AACF,EACF;AAGD,MAAa,cAAc,aAAa,iBAAiB,CAAC,OACxD,CAAC,EAAE,UAAU,aAAa,QAAQ,KAAK;AACrC,QAAO;EACL,YAAY;GACV,QAAQ;GACR,MAAM;GACN,cAAc,EAAE,MAAM,WAAW;GACjC,SAAS,eAAgB,MAAM,EAAE,MAAM,EAAE;IACvC,MAAM,UAAU,MAAM,KAAK,WAAW,CACnC,iBAAiB,MAAM,CAAC,SAAS,WAAW,AAAC,EAAU,CACvD,UAAU,CAAC,EAAE,eAAe,CAAC,OAAO,EAAE,KAAK,OAAO,CAClD,SAAS;IACZ,MAAM,cAAc,CAAC,OAAO,eAAe,CAAE,GAAE,IAAI,oBAAoB;AACvE,WAAO,KAAK,CAAC,GAAG,aAAa,GAAG,OAAQ,EAAC;GAC1C;EACF,EAAC;EAEF,YAAY;GACV,QAAQ;GACR,MAAM;GACN,cAAc;GACd,YAAY,CAAC,WAAY;GACzB,SAAS,eAAgB,EAAE,YAAY,EAAE,EAAE,MAAM,OAAO,EAAE;IAExD,MAAM,aAAa,OAAO,aAAa,KAAK,CAAC,MAAM,EAAE,OAAO,WAAW,GAAG;AAC1E,QAAI,WACF,QAAO,KAAK,oBAAoB,WAAW,CAAC;IAG9C,MAAM,OAAO,MAAM,KAAK,WAAW,CAChC,iBAAiB,MAAM,CAAC,SAAS,QAAQ,WAAW,GAAG,AAAC,EAAU,CAClE,UAAU,CAAC,EAAE,eAAe,CAAC,OAAO,EAAE,KAAK,OAAO,CAClD,SAAS;AACZ,SAAK,KACH,QAAO,MAAM;KAAE,SAAS;KAAkB,MAAM;IAAa,GAAE,IAAI;AAGrE,WAAO,KAAK,KAAK;GAClB;EACF,EAAC;EAEF,YAAY;GACV,QAAQ;GACR,MAAM;GACN,aAAa;GACb,cAAc,EAAE,QAAQ;GACxB,YAAY,CAAC,iBAAiB,qBAAsB;GACpD,SAAS,eAAgB,EAAE,OAAO,EAAE,EAAE,MAAM,OAAO,EAAE;IACnD,MAAM,OAAO,MAAM,MAAM,OAAO;AAGhC,QAAI;AACF,OAAE,eAAe,KAAK,WAAW;IAClC,SAAQ,GAAG;KACV,MAAM,UAAU,aAAa,QAAQ,EAAE,UAAU;AACjD,YAAO,MAAM;MAAE;MAAS,MAAM;KAAuB,GAAE,IAAI;IAC5D;IAED,MAAM,SAAS,MAAM,KAAK,WAAW,CAClC,iBAAiB,MAAM,CAAC,SAAS,WAAW,KAAK,AAAC,EAAU,CAC5D,UAAU,CAAC,EAAE,eAAe,CAAC,OAAO,EAAE,KAAK,OAAO,CAClD,SAAS;AACZ,QAAI,OAAO,cACT,OAAM,OAAO,cAAc;KAAE,GAAG;KAAM,IAAI;IAAQ,EAAC;AAErD,WAAO,KAAK,OAAO;GACpB;EACF,EAAC;EAEF,YAAY;GACV,QAAQ;GACR,MAAM;GACN,aAAa;GACb,YAAY;IAAC;IAAa;IAAyB;GAAsB;GACzE,SAAS,eAAgB,EAAE,OAAO,YAAY,EAAE,EAAE,MAAM,OAAO,EAAE;IAC/D,MAAM,WAAW,OAAO,aAAa,KAAK,CAAC,MAAM,EAAE,OAAO,WAAW,GAAG;AACxE,QAAI,SACF,QAAO,MACL;KAAE,SAAS;KAAmC,MAAM;IAAyB,GAC7E,IACD;IAEH,MAAM,OAAO,MAAM,MAAM,OAAO;AAGhC,QAAI,KAAK,WACP,KAAI;AACF,OAAE,eAAe,KAAK,WAAW;IAClC,SAAQ,GAAG;KACV,MAAM,UAAU,aAAa,QAAQ,EAAE,UAAU;AACjD,YAAO,MAAM;MAAE;MAAS,MAAM;KAAuB,GAAE,IAAI;IAC5D;IAGH,MAAM,EAAE,SAAS,GAAG,MAAM,KAAK,WAAW,CACvC,iBAAiB,MAAM,CAAC,SAAS,WAAW,WAAW,IAAI,KAAK,AAAC,EAAU,CAC3E,UAAU,CAAC,EAAE,eAAe,CAAC,OAAO,EAAE,KAAK,OAAO,CAClD,SAAS;AACZ,SAAK,QACH,QAAO,MAAM;KAAE,SAAS;KAAkB,MAAM;IAAa,GAAE,IAAI;AAErE,WAAO,KAAK,KAAK;GAClB;EACF,EAAC;EAEF,YAAY;GACV,QAAQ;GACR,MAAM;GACN,YAAY,CAAC,aAAa,uBAAwB;GAClD,SAAS,eAAgB,EAAE,YAAY,EAAE,EAAE,MAAM,OAAO,EAAE;IACxD,MAAM,WAAW,OAAO,aAAa,KAAK,CAAC,MAAM,EAAE,OAAO,WAAW,GAAG;AACxE,QAAI,SACF,QAAO,MACL;KAAE,SAAS;KAAkC,MAAM;IAAyB,GAC5E,IACD;AAEH,UAAM,KAAK,WAAW,CACnB,iBAAiB,MAAM,CAAC,SAAS,WAAW,WAAW,GAAG,AAAC,EAAU,CACrE,SAAS;AAKZ,WAAO,KAAK,KAAK;GAClB;EACF,EAAC;EAEF,YAAY;GACV,QAAQ;GACR,MAAM;GACN,iBAAiB,CAAC,WAAY;GAC9B,cAAc,EAAE,MAAM,mBAAmB;GACzC,SAAS,eAAgB,EAAE,YAAY,OAAO,EAAE,EAAE,MAAM,EAAE;IACxD,MAAM,YAAY,MAAM,IAAI,YAAY,KAAK,QAAQ,QAAQ;IAC7D,MAAM,YAAY,MAAM,KAAK,WAAW,CACrC,iBACC,MACE,CACE,SAAS,cAAc,WAAW,IAAI;KACpC,OAAO;KACP,OAAO;IACR,EAAC,AACH,EACJ,CACA,UAAU,CAAC,EAAE,eAAe,CAAC,OAAO,EAAE,KAAK,OAAO,CAClD,SAAS;AACZ,WAAO,KAAK,UAAU;GACvB;EACF,EAAC;EAEF,YAAY;GACV,QAAQ;GACR,MAAM;GACN,cAAc;GACd,YAAY,CAAC,WAAY;GACzB,SAAS,eAAgB,EAAE,YAAY,EAAE,EAAE,MAAM,OAAO,EAAE;IACxD,MAAM,WAAW,MAAM,KAAK,WAAW,CACpC,iBAAiB,MAAM,CAAC,SAAS,YAAY,WAAW,GAAG,AAAC,EAAU,CACtE,UAAU,CAAC,EAAE,eAAe,CAAC,OAAO,EAAE,KAAK,OAAO,CAClD,SAAS;AACZ,SAAK,SACH,QAAO,MAAM;KAAE,SAAS;KAAwB,MAAM;IAAa,GAAE,IAAI;AAE3E,WAAO,KAAK,SAAS;GACtB;EACF,EAAC;EAEF,YAAY;GACV,QAAQ;GACR,MAAM;GACN,YAAY,CAAC,WAAY;GACzB,SAAS,eAAgB,EAAE,YAAY,EAAE,EAAE,MAAM,EAAE;AACjD,UAAM,KAAK,WAAW,CACnB,iBAAiB,MAAM,CAAC,SAAS,eAAe,WAAW,GAAG,AAAC,EAAU,CACzE,SAAS;AAKZ,WAAO,KAAK,KAAK;GAClB;EACF,EAAC;CACH;AACF,EACF;;;;AC1SD,MAAa,SAAS,CAAC,cAAc,WAAY;AAEjD,SAAgB,oBACdC,SAAsB,CAAE,GACxBC,SACA;AACA,QAAO,YAAY,iBAAiB,CACjC,WAAW,OAAO,CAClB,WAAW,OAAO,CAClB,YAAY,QAAQ,CACpB,OAAO;AACX;AAED,SAAgB,mBAAmBC,cAAwC;CACzE,MAAM,IAAI,oBAAoB,kBAAkB,cAAc,OAAO;AAErE,QAAO;EAEL,SAAS,EAAE,WAAW,SAAS;EAC/B,eAAe,EAAE,cAAc,QAAQ,gBAAgB;EAGvD,UAAU,EAAE,WAAW,eAAe;EACtC,aAAa,EAAE,WAAW,mBAAmB;EAC7C,eAAe,EAAE,cAAc,QAAQ,eAAe;EACtD,eAAe,EAAE,cAAc,OAAO,mBAAmB;EACzD,eAAe,EAAE,cAAc,UAAU,mBAAmB;EAG5D,gBAAgB,EAAE,WAAW,+BAA+B;EAC5D,eAAe,EAAE,WAAW,yBAAyB;EACrD,qBAAqB,EAAE,cAAc,UAAU,yBAAyB;CACzE;AACF"}