@fragno-dev/forms 0.0.3 → 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +159 -25
- package/dist/browser/client/react.d.ts +143 -94
- package/dist/browser/client/react.js +1 -1
- package/dist/browser/client/solid.d.ts +143 -94
- package/dist/browser/client/solid.js +1 -1
- package/dist/browser/client/svelte.d.ts +143 -94
- package/dist/browser/client/svelte.d.ts.map +1 -1
- package/dist/browser/client/svelte.js +1 -1
- package/dist/browser/client/vanilla.d.ts +143 -94
- package/dist/browser/client/vanilla.d.ts.map +1 -1
- package/dist/browser/client/vanilla.js +1 -1
- package/dist/browser/client/vue.d.ts +65 -16
- package/dist/browser/client/vue.js +15 -1
- package/dist/browser/client/vue.js.map +1 -1
- package/dist/browser/index.d.ts +332 -243
- package/dist/browser/index.d.ts.map +1 -1
- package/dist/browser/index.js +1 -1
- package/dist/browser/{src-DbMX_NY6.js → src-BBaSaf29.js} +193 -18
- package/dist/browser/src-BBaSaf29.js.map +1 -0
- package/dist/node/index.d.ts +163 -74
- package/dist/node/index.d.ts.map +1 -1
- package/dist/node/index.js +60 -23
- package/dist/node/index.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -0
- package/package.json +8 -9
- package/dist/browser/src-DbMX_NY6.js.map +0 -1
package/dist/node/index.d.ts.map
CHANGED
|
@@ -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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"}
|
package/dist/node/index.js
CHANGED
|
@@ -3,12 +3,11 @@ import { defineFragment, defineRoutes, instantiate } from "@fragno-dev/core";
|
|
|
3
3
|
import { z } from "zod";
|
|
4
4
|
import { withDatabase } from "@fragno-dev/db";
|
|
5
5
|
import { column, idColumn, schema } from "@fragno-dev/db/schema";
|
|
6
|
-
import { Validator } from "@cfworker/json-schema";
|
|
7
6
|
|
|
8
7
|
//#region src/schema.ts
|
|
9
|
-
const formsSchema = schema((s) => {
|
|
8
|
+
const formsSchema = schema("forms", (s) => {
|
|
10
9
|
return s.addTable("form", (t) => {
|
|
11
|
-
return t.addColumn("id", idColumn()).addColumn("title", column("string")).addColumn("description", column("string").nullable()).addColumn("slug", column("string")).addColumn("status", column("string").defaultTo(() => "draft")).addColumn("dataSchema", column("json")).addColumn("uiSchema", column("json")).addColumn("version", column("integer").defaultTo(() => 1)).addColumn("createdAt", column("timestamp").defaultTo((b) => b.now())).addColumn("updatedAt", column("timestamp").defaultTo((b) => b.now())).createIndex("idx_form_status", ["status"]).createIndex("idx_form_slug", ["slug"], { unique: true });
|
|
10
|
+
return t.addColumn("id", idColumn()).addColumn("title", column("string")).addColumn("description", column("string").nullable()).addColumn("slug", column("string")).addColumn("status", column("string").defaultTo(() => "draft")).addColumn("dataSchema", column("json")).addColumn("uiSchema", column("json").nullable()).addColumn("version", column("integer").defaultTo(() => 1)).addColumn("createdAt", column("timestamp").defaultTo((b) => b.now())).addColumn("updatedAt", column("timestamp").defaultTo((b) => b.now())).createIndex("idx_form_status", ["status"]).createIndex("idx_form_slug", ["slug"], { unique: true });
|
|
12
11
|
}).addTable("response", (t) => {
|
|
13
12
|
return t.addColumn("id", idColumn()).addColumn("formId", column("string")).addColumn("formVersion", column("integer")).addColumn("data", column("json")).addColumn("submittedAt", column("timestamp").defaultTo((b) => b.now())).addColumn("userAgent", column("string").nullable()).addColumn("ip", column("string").nullable()).createIndex("idx_response_form", ["formId"]).createIndex("idx_response_submitted_at", ["submittedAt"]);
|
|
14
13
|
});
|
|
@@ -64,20 +63,19 @@ const formsFragmentDef = defineFragment("forms").extend(withDatabase(formsSchema
|
|
|
64
63
|
await deps.db.delete("form", id);
|
|
65
64
|
},
|
|
66
65
|
validateData: (schema$1, data) => {
|
|
67
|
-
const
|
|
68
|
-
const result =
|
|
69
|
-
if (result.
|
|
66
|
+
const zodSchema = z.fromJSONSchema(schema$1);
|
|
67
|
+
const result = zodSchema.safeParse(data);
|
|
68
|
+
if (result.success) return {
|
|
70
69
|
success: true,
|
|
71
|
-
data
|
|
70
|
+
data: result.data
|
|
72
71
|
};
|
|
73
|
-
console.error("ERROR", JSON.stringify(result.errors));
|
|
74
72
|
return {
|
|
75
73
|
success: false,
|
|
76
74
|
error: {
|
|
77
75
|
message: "Validation failed",
|
|
78
|
-
errors: result.
|
|
79
|
-
|
|
80
|
-
message: e.
|
|
76
|
+
errors: result.error.issues.map((e) => ({
|
|
77
|
+
instancePath: "/" + e.path.join("/"),
|
|
78
|
+
message: e.message
|
|
81
79
|
}))
|
|
82
80
|
}
|
|
83
81
|
};
|
|
@@ -121,11 +119,11 @@ const FormStatusSchema = z.enum([
|
|
|
121
119
|
const FormSchema = z.object({
|
|
122
120
|
id: z.string(),
|
|
123
121
|
title: z.string(),
|
|
124
|
-
description: z.string().nullable(),
|
|
125
|
-
slug: z.string(),
|
|
122
|
+
description: z.string().nullable().optional(),
|
|
123
|
+
slug: z.string().min(1).max(255).toLowerCase().trim(),
|
|
126
124
|
status: FormStatusSchema,
|
|
127
125
|
dataSchema: JSONSchemaSchema,
|
|
128
|
-
uiSchema: UISchemaElementSchema,
|
|
126
|
+
uiSchema: UISchemaElementSchema.optional(),
|
|
129
127
|
version: z.number(),
|
|
130
128
|
createdAt: z.date(),
|
|
131
129
|
updatedAt: z.date()
|
|
@@ -141,7 +139,7 @@ const ResponseMetadataSchema = z.object({
|
|
|
141
139
|
ip: z.union([z.ipv4(), z.ipv6()]).nullable(),
|
|
142
140
|
userAgent: z.string().max(4096).nullable()
|
|
143
141
|
});
|
|
144
|
-
const
|
|
142
|
+
const FormResponseSchema = z.object({
|
|
145
143
|
id: z.string(),
|
|
146
144
|
formId: z.string().nullable().describe("Form ID (static form ID or database form external ID)"),
|
|
147
145
|
formVersion: z.number(),
|
|
@@ -150,7 +148,7 @@ const ResponseSchema = z.object({
|
|
|
150
148
|
ip: z.string().max(45).nullable(),
|
|
151
149
|
userAgent: z.string().max(512).nullable()
|
|
152
150
|
});
|
|
153
|
-
const
|
|
151
|
+
const NewFormResponseSchema = FormResponseSchema.omit({
|
|
154
152
|
id: true,
|
|
155
153
|
submittedAt: true,
|
|
156
154
|
formId: true,
|
|
@@ -205,7 +203,7 @@ const publicRoutes = defineRoutes(formsFragmentDef).create(({ services, defineRo
|
|
|
205
203
|
}), defineRoute({
|
|
206
204
|
method: "POST",
|
|
207
205
|
path: "/:slug/submit",
|
|
208
|
-
inputSchema:
|
|
206
|
+
inputSchema: NewFormResponseSchema,
|
|
209
207
|
outputSchema: z.string(),
|
|
210
208
|
errorCodes: [
|
|
211
209
|
"NOT_FOUND",
|
|
@@ -259,14 +257,39 @@ const adminRoutes = defineRoutes(formsFragmentDef).create(({ services, defineRou
|
|
|
259
257
|
return json([...staticForms, ...dbForms]);
|
|
260
258
|
}
|
|
261
259
|
}),
|
|
260
|
+
defineRoute({
|
|
261
|
+
method: "GET",
|
|
262
|
+
path: "/admin/forms/:id",
|
|
263
|
+
outputSchema: FormSchema,
|
|
264
|
+
errorCodes: ["NOT_FOUND"],
|
|
265
|
+
handler: async ({ pathParams }, { json, error }) => {
|
|
266
|
+
const staticForm = config.staticForms?.find((f) => f.id === pathParams.id);
|
|
267
|
+
if (staticForm) return json(staticAsRegularForm(staticForm));
|
|
268
|
+
const form = await services.getForm(pathParams.id);
|
|
269
|
+
if (!form) return error({
|
|
270
|
+
message: "Form not found",
|
|
271
|
+
code: "NOT_FOUND"
|
|
272
|
+
}, 404);
|
|
273
|
+
return json(form);
|
|
274
|
+
}
|
|
275
|
+
}),
|
|
262
276
|
defineRoute({
|
|
263
277
|
method: "POST",
|
|
264
278
|
path: "/admin/forms",
|
|
265
279
|
inputSchema: NewFormSchema,
|
|
266
280
|
outputSchema: z.string(),
|
|
267
|
-
errorCodes: ["CREATE_FAILED"],
|
|
268
|
-
handler: async ({ input }, { json }) => {
|
|
281
|
+
errorCodes: ["CREATE_FAILED", "INVALID_JSON_SCHEMA"],
|
|
282
|
+
handler: async ({ input }, { json, error }) => {
|
|
269
283
|
const data = await input.valid();
|
|
284
|
+
try {
|
|
285
|
+
z.fromJSONSchema(data.dataSchema);
|
|
286
|
+
} catch (e) {
|
|
287
|
+
const message = e instanceof Error ? e.message : "Invalid JSON Schema";
|
|
288
|
+
return error({
|
|
289
|
+
message,
|
|
290
|
+
code: "INVALID_JSON_SCHEMA"
|
|
291
|
+
}, 400);
|
|
292
|
+
}
|
|
270
293
|
const formId = await services.createForm(data);
|
|
271
294
|
if (config.onFormCreated) await config.onFormCreated({
|
|
272
295
|
...data,
|
|
@@ -279,7 +302,11 @@ const adminRoutes = defineRoutes(formsFragmentDef).create(({ services, defineRou
|
|
|
279
302
|
method: "PUT",
|
|
280
303
|
path: "/admin/forms/:id",
|
|
281
304
|
inputSchema: UpdateFormSchema,
|
|
282
|
-
errorCodes: [
|
|
305
|
+
errorCodes: [
|
|
306
|
+
"NOT_FOUND",
|
|
307
|
+
"STATIC_FORM_READ_ONLY",
|
|
308
|
+
"INVALID_JSON_SCHEMA"
|
|
309
|
+
],
|
|
283
310
|
handler: async ({ input, pathParams }, { json, error }) => {
|
|
284
311
|
const isStatic = config.staticForms?.some((f) => f.id === pathParams.id);
|
|
285
312
|
if (isStatic) return error({
|
|
@@ -287,12 +314,21 @@ const adminRoutes = defineRoutes(formsFragmentDef).create(({ services, defineRou
|
|
|
287
314
|
code: "STATIC_FORM_READ_ONLY"
|
|
288
315
|
}, 403);
|
|
289
316
|
const data = await input.valid();
|
|
317
|
+
if (data.dataSchema) try {
|
|
318
|
+
z.fromJSONSchema(data.dataSchema);
|
|
319
|
+
} catch (e) {
|
|
320
|
+
const message = e instanceof Error ? e.message : "Invalid JSON Schema";
|
|
321
|
+
return error({
|
|
322
|
+
message,
|
|
323
|
+
code: "INVALID_JSON_SCHEMA"
|
|
324
|
+
}, 400);
|
|
325
|
+
}
|
|
290
326
|
const { success } = await services.updateForm(pathParams.id, data);
|
|
291
327
|
if (!success) return error({
|
|
292
328
|
message: "Form not found",
|
|
293
329
|
code: "NOT_FOUND"
|
|
294
330
|
}, 404);
|
|
295
|
-
return json(
|
|
331
|
+
return json(true);
|
|
296
332
|
}
|
|
297
333
|
}),
|
|
298
334
|
defineRoute({
|
|
@@ -313,7 +349,7 @@ const adminRoutes = defineRoutes(formsFragmentDef).create(({ services, defineRou
|
|
|
313
349
|
method: "GET",
|
|
314
350
|
path: "/admin/forms/:id/submissions",
|
|
315
351
|
queryParameters: ["sortOrder"],
|
|
316
|
-
outputSchema: z.array(
|
|
352
|
+
outputSchema: z.array(FormResponseSchema),
|
|
317
353
|
handler: async ({ pathParams, query }, { json }) => {
|
|
318
354
|
const sortOrder = query.get("sortOrder") === "asc" ? "asc" : "desc";
|
|
319
355
|
const responses = await services.listResponses(pathParams.id, {
|
|
@@ -326,7 +362,7 @@ const adminRoutes = defineRoutes(formsFragmentDef).create(({ services, defineRou
|
|
|
326
362
|
defineRoute({
|
|
327
363
|
method: "GET",
|
|
328
364
|
path: "/admin/submissions/:id",
|
|
329
|
-
outputSchema:
|
|
365
|
+
outputSchema: FormResponseSchema,
|
|
330
366
|
errorCodes: ["NOT_FOUND"],
|
|
331
367
|
handler: async ({ pathParams }, { json, error }) => {
|
|
332
368
|
const response = await services.getResponse(pathParams.id);
|
|
@@ -361,6 +397,7 @@ function createFormsClients(fragnoConfig) {
|
|
|
361
397
|
useForm: b.createHook("/:slug"),
|
|
362
398
|
useSubmitForm: b.createMutator("POST", "/:slug/submit"),
|
|
363
399
|
useForms: b.createHook("/admin/forms"),
|
|
400
|
+
useFormById: b.createHook("/admin/forms/:id"),
|
|
364
401
|
useCreateForm: b.createMutator("POST", "/admin/forms"),
|
|
365
402
|
useUpdateForm: b.createMutator("PUT", "/admin/forms/:id"),
|
|
366
403
|
useDeleteForm: b.createMutator("DELETE", "/admin/forms/:id"),
|
package/dist/node/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["form: T","response: T","input: NewForm","id: string","slug: string","input: UpdateForm","schema: Schema","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((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\"))\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 { formsSchema } from \"./schema\";\nimport type { FormsConfig } from \".\";\nimport type { JSONSchema, NewForm, UpdateForm, FormStatus, UIElementSchema } from \"./models\";\nimport { Validator, type Schema } from \"@cfworker/json-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<{ path: 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: Schema, data: Record<string, unknown>): ValidationResult => {\n const validator = new Validator(schema);\n const result = validator.validate(data);\n\n if (result.valid) {\n return { success: true, data: data as ValidatedData };\n }\n console.error(\"ERROR\", JSON.stringify(result.errors));\n return {\n success: false,\n // TODO: better error type for validation errors?\n // see: https://jsonforms.io/docs/validation/#external-validation-errors\n error: {\n message: \"Validation failed\",\n errors: result.errors.map((e) => ({\n path: e.instanceLocation || \"\",\n message: e.error ?? \"Invalid value\",\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(),\n slug: z.string(),\n status: FormStatusSchema,\n dataSchema: JSONSchemaSchema,\n uiSchema: UISchemaElementSchema,\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 ResponseSchema = 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 NewResponseSchema = ResponseSchema.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 NewResponse = z.infer<typeof NewResponseSchema>;\nexport type Response = z.infer<typeof ResponseSchema>;\nexport type ResponseMetadata = 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 type { Schema } from \"@cfworker/json-schema\";\nimport { z } from \"zod\";\nimport { formsFragmentDef } from \"./definition\";\nimport {\n FormSchema,\n NewFormSchema,\n NewResponseSchema,\n ResponseMetadataSchema,\n ResponseSchema,\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: NewResponseSchema,\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 as Schema, 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: \"POST\",\n path: \"/admin/forms\",\n inputSchema: NewFormSchema,\n outputSchema: z.string(),\n errorCodes: [\"CREATE_FAILED\"] as const,\n handler: async ({ input }, { json }) => {\n const data = await input.valid();\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\"] 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 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(success);\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(ResponseSchema),\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: ResponseSchema,\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, Response } 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 | null;\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: Response) => 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 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\";\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","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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"}
|