@fayz-ai/plugin-forms 0.2.0 → 0.8.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.
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAA;AASnD,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,UAAU,CAAA;AAyCxD,YAAY,EAAE,wBAAwB,EAAE,CAAA;AACxC,OAAO,EAAE,4BAA4B,EAAE,KAAK,kBAAkB,EAAE,KAAK,oBAAoB,EAAE,MAAM,kBAAkB,CAAA;AAEnH,wBAAgB,uBAAuB,CAAC,OAAO,CAAC,EAAE,wBAAwB,GAAG,cAAc,CA6J1F"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAA;AAUnD,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,UAAU,CAAA;AAyCxD,YAAY,EAAE,wBAAwB,EAAE,CAAA;AACxC,OAAO,EAAE,4BAA4B,EAAE,KAAK,kBAAkB,EAAE,KAAK,oBAAoB,EAAE,MAAM,kBAAkB,CAAA;AAEnH,wBAAgB,uBAAuB,CAAC,OAAO,CAAC,EAAE,wBAAwB,GAAG,cAAc,CA6J1F"}
package/dist/index.js CHANGED
@@ -7,6 +7,14 @@ import { FileText, Image, Paperclip, Search, Plus, Pencil, Trash2, ArrowLeft, Lo
7
7
  import { Input, Button, Card, CardContent, Badge, useSaveBar, Dropdown, DropdownTrigger, DropdownContent, DropdownSeparator, DropdownLabel, DropdownItem } from '@fayz-ai/ui';
8
8
  import { jsx, jsxs } from 'react/jsx-runtime';
9
9
 
10
+ // src/data/tables.ts
11
+ var T = {
12
+ documents: "plg_forms_documents",
13
+ templates: "plg_forms_templates",
14
+ documentFiles: "plg_forms_document_files",
15
+ categories: "plg_forms_categories"
16
+ };
17
+
10
18
  // src/data/mock.ts
11
19
  function uuid() {
12
20
  return crypto.randomUUID();
@@ -255,7 +263,7 @@ function createSupabaseFormsProvider() {
255
263
  // ── Templates ──────────────────────────────────────────
256
264
  async getTemplates(query) {
257
265
  const db = getClient();
258
- let qb = db.from("frm_templates").select("*", { count: "exact" }).eq("tenant_id", getTenantId()).eq("is_current", true).eq("is_deleted", false);
266
+ let qb = db.from(T.templates).select("*", { count: "exact" }).eq("tenant_id", getTenantId()).eq("is_current", true).eq("is_deleted", false);
259
267
  if (query.category) qb = qb.eq("category", query.category);
260
268
  if (query.search) qb = qb.ilike("name", `%${query.search}%`);
261
269
  const page = query.page ?? 1;
@@ -267,14 +275,14 @@ function createSupabaseFormsProvider() {
267
275
  },
268
276
  async getTemplateById(id) {
269
277
  const db = getClient();
270
- const { data, error } = await db.from("frm_templates").select("*").eq("id", id).eq("is_deleted", false).single();
278
+ const { data, error } = await db.from(T.templates).select("*").eq("id", id).eq("is_deleted", false).single();
271
279
  if (error || !data) return null;
272
280
  return mapTemplate(data);
273
281
  },
274
282
  async createTemplate(input) {
275
283
  const db = getClient();
276
284
  const tenantId = getTenantId();
277
- const { data, error } = await db.from("frm_templates").insert({
285
+ const { data, error } = await db.from(T.templates).insert({
278
286
  tenant_id: tenantId,
279
287
  name: input.name,
280
288
  description: input.description,
@@ -290,12 +298,12 @@ function createSupabaseFormsProvider() {
290
298
  async updateTemplate(id, input) {
291
299
  const db = getClient();
292
300
  const tenantId = getTenantId();
293
- const { count } = await db.from("frm_documents").select("document_id", { count: "exact", head: true }).eq("template_id", id);
301
+ const { count } = await db.from(T.documents).select("document_id", { count: "exact", head: true }).eq("template_id", id);
294
302
  const hasDocuments = (count ?? 0) > 0;
295
303
  if (hasDocuments && input.schema) {
296
304
  const existing = await this.getTemplateById(id);
297
305
  if (!existing) throw new Error("Template not found");
298
- const { data: newRow, error: insertError } = await db.from("frm_templates").insert({
306
+ const { data: newRow, error: insertError } = await db.from(T.templates).insert({
299
307
  tenant_id: tenantId,
300
308
  name: input.name ?? existing.name,
301
309
  description: input.description ?? existing.description,
@@ -310,7 +318,7 @@ function createSupabaseFormsProvider() {
310
318
  parent_id: existing.parentId ?? existing.id
311
319
  }).select().single();
312
320
  if (insertError) throw new Error(insertError.message);
313
- await db.from("frm_templates").update({ is_current: false, updated_at: (/* @__PURE__ */ new Date()).toISOString() }).eq("id", id);
321
+ await db.from(T.templates).update({ is_current: false, updated_at: (/* @__PURE__ */ new Date()).toISOString() }).eq("id", id);
314
322
  return mapTemplate(newRow);
315
323
  }
316
324
  const updates = { updated_at: (/* @__PURE__ */ new Date()).toISOString() };
@@ -322,16 +330,16 @@ function createSupabaseFormsProvider() {
322
330
  if (input.tags !== void 0) updates.tags = input.tags;
323
331
  if (input.metadata !== void 0) updates.metadata = input.metadata;
324
332
  if (input.isActive !== void 0) updates.is_active = input.isActive;
325
- const { data, error } = await db.from("frm_templates").update(updates).eq("id", id).select().single();
333
+ const { data, error } = await db.from(T.templates).update(updates).eq("id", id).select().single();
326
334
  if (error) throw new Error(error.message);
327
335
  return mapTemplate(data);
328
336
  },
329
337
  async deleteTemplate(id) {
330
338
  const db = getClient();
331
- const { error } = await db.from("frm_templates").update({ is_deleted: true, updated_at: (/* @__PURE__ */ new Date()).toISOString() }).eq("id", id);
339
+ const { error } = await db.from(T.templates).update({ is_deleted: true, updated_at: (/* @__PURE__ */ new Date()).toISOString() }).eq("id", id);
332
340
  if (error) throw new Error(error.message);
333
341
  },
334
- // ── Documents (saas_core.documents + frm_documents extension) ──
342
+ // ── Documents (public.documents + plg_forms_documents extension) ──
335
343
  async getDocuments(query) {
336
344
  const db = getClient();
337
345
  let qb = db.from("v_documents").select("*", { count: "exact" }).eq("tenant_id", getTenantId()).eq("is_active", true);
@@ -358,7 +366,7 @@ function createSupabaseFormsProvider() {
358
366
  async createDocument(input) {
359
367
  const tenantId = getTenantId();
360
368
  const isForm = !!input.templateId;
361
- const { data: coreDoc, error: coreError } = await getClient().from("frm_core_documents").insert({
369
+ const { data: coreDoc, error: coreError } = await getClient().from("documents").insert({
362
370
  tenant_id: tenantId,
363
371
  kind: input.kind ?? (isForm ? "form" : "attachment"),
364
372
  person_id: input.personId,
@@ -373,14 +381,14 @@ function createSupabaseFormsProvider() {
373
381
  if (coreError) throw new Error(coreError.message);
374
382
  if (isForm && input.templateId) {
375
383
  const db = getClient();
376
- const { error: extError } = await db.from("frm_documents").insert({
384
+ const { error: extError } = await db.from(T.documents).insert({
377
385
  document_id: coreDoc.id,
378
386
  tenant_id: tenantId,
379
387
  template_id: input.templateId,
380
388
  data: input.data ?? {}
381
389
  });
382
390
  if (extError) {
383
- await getClient().from("frm_core_documents").delete().eq("id", coreDoc.id);
391
+ await getClient().from("documents").delete().eq("id", coreDoc.id);
384
392
  throw new Error(extError.message);
385
393
  }
386
394
  }
@@ -393,23 +401,23 @@ function createSupabaseFormsProvider() {
393
401
  if (input.status !== void 0) coreUpdates.status = input.status;
394
402
  if (input.title !== void 0) coreUpdates.title = input.title;
395
403
  if (input.notes !== void 0) coreUpdates.notes = input.notes;
396
- const { error: coreError } = await getClient().from("frm_core_documents").update(coreUpdates).eq("id", id);
404
+ const { error: coreError } = await getClient().from("documents").update(coreUpdates).eq("id", id);
397
405
  if (coreError) throw new Error(coreError.message);
398
406
  if (input.data !== void 0) {
399
407
  const db = getClient();
400
- await db.from("frm_documents").update({ data: input.data, updated_at: now2 }).eq("document_id", id);
408
+ await db.from(T.documents).update({ data: input.data, updated_at: now2 }).eq("document_id", id);
401
409
  }
402
410
  const doc = await this.getDocumentById(id);
403
411
  return doc;
404
412
  },
405
413
  async deleteDocument(id) {
406
- const { error } = await getClient().from("frm_core_documents").update({ is_active: false, updated_at: (/* @__PURE__ */ new Date()).toISOString() }).eq("id", id);
414
+ const { error } = await getClient().from("documents").update({ is_active: false, updated_at: (/* @__PURE__ */ new Date()).toISOString() }).eq("id", id);
407
415
  if (error) throw new Error(error.message);
408
416
  },
409
417
  // ── Files ──────────────────────────────────────────────
410
418
  async getDocumentFiles(documentId) {
411
419
  const db = getClient();
412
- const { data, error } = await db.from("frm_document_files").select("*").eq("document_id", documentId).order("sort_order");
420
+ const { data, error } = await db.from(T.documentFiles).select("*").eq("document_id", documentId).order("sort_order");
413
421
  if (error) throw new Error(error.message);
414
422
  return (data ?? []).map(mapFile);
415
423
  },
@@ -421,7 +429,7 @@ function createSupabaseFormsProvider() {
421
429
  const { error: uploadError } = await db.storage.from("documents").upload(storagePath, file, { contentType: file.type });
422
430
  if (uploadError) throw new Error(uploadError.message);
423
431
  const { data: urlData } = db.storage.from("documents").getPublicUrl(storagePath);
424
- const { data, error } = await db.from("frm_document_files").insert({
432
+ const { data, error } = await db.from(T.documentFiles).insert({
425
433
  tenant_id: tenantId,
426
434
  document_id: documentId,
427
435
  field_key: fieldKey,
@@ -435,7 +443,7 @@ function createSupabaseFormsProvider() {
435
443
  },
436
444
  async deleteFile(fileId) {
437
445
  const db = getClient();
438
- const { error } = await db.from("frm_document_files").delete().eq("id", fileId);
446
+ const { error } = await db.from(T.documentFiles).delete().eq("id", fileId);
439
447
  if (error) throw new Error(error.message);
440
448
  }
441
449
  };
@@ -1493,7 +1501,7 @@ function createCustomFormsPlugin(options) {
1493
1501
  { key: "isActive", label: "Active", type: "boolean", showInTable: true, defaultValue: true, inlineToggle: true }
1494
1502
  ],
1495
1503
  data: {
1496
- table: "frm_categories",
1504
+ table: T.categories,
1497
1505
  tenantScoped: true
1498
1506
  }
1499
1507
  },