@23blocks/block-forms 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.
Files changed (37) hide show
  1. package/dist/index.js +7 -0
  2. package/dist/index.js.map +1 -0
  3. package/dist/lib/forms.block.js +22 -0
  4. package/dist/lib/forms.block.js.map +1 -0
  5. package/dist/lib/mappers/form-instance.mapper.js +20 -0
  6. package/dist/lib/mappers/form-instance.mapper.js.map +1 -0
  7. package/dist/lib/mappers/form-schema.mapper.js +22 -0
  8. package/dist/lib/mappers/form-schema.mapper.js.map +1 -0
  9. package/dist/lib/mappers/form-set.mapper.js +19 -0
  10. package/dist/lib/mappers/form-set.mapper.js.map +1 -0
  11. package/dist/lib/mappers/form.mapper.js +19 -0
  12. package/dist/lib/mappers/form.mapper.js.map +1 -0
  13. package/dist/lib/mappers/index.js +7 -0
  14. package/dist/lib/mappers/index.js.map +1 -0
  15. package/dist/lib/mappers/utils.js +75 -0
  16. package/dist/lib/mappers/utils.js.map +1 -0
  17. package/dist/lib/services/form-instances.service.js +99 -0
  18. package/dist/lib/services/form-instances.service.js.map +1 -0
  19. package/dist/lib/services/form-schemas.service.js +67 -0
  20. package/dist/lib/services/form-schemas.service.js.map +1 -0
  21. package/dist/lib/services/form-sets.service.js +58 -0
  22. package/dist/lib/services/form-sets.service.js.map +1 -0
  23. package/dist/lib/services/forms.service.js +59 -0
  24. package/dist/lib/services/forms.service.js.map +1 -0
  25. package/dist/lib/services/index.js +6 -0
  26. package/dist/lib/services/index.js.map +1 -0
  27. package/dist/lib/types/form-instance.js +3 -0
  28. package/dist/lib/types/form-instance.js.map +1 -0
  29. package/dist/lib/types/form-schema.js +3 -0
  30. package/dist/lib/types/form-schema.js.map +1 -0
  31. package/dist/lib/types/form-set.js +3 -0
  32. package/dist/lib/types/form-set.js.map +1 -0
  33. package/dist/lib/types/form.js +3 -0
  34. package/dist/lib/types/form.js.map +1 -0
  35. package/dist/lib/types/index.js +6 -0
  36. package/dist/lib/types/index.js.map +1 -0
  37. package/package.json +64 -0
package/dist/index.js ADDED
@@ -0,0 +1,7 @@
1
+ // Block factory and metadata
2
+ export { createFormsBlock, formsBlockMetadata } from './lib/forms.block';
3
+ export { createFormsService, createFormSchemasService, createFormInstancesService, createFormSetsService } from './lib/services';
4
+ // Mappers (for advanced use cases)
5
+ export { formMapper, formSchemaMapper, formInstanceMapper, formSetMapper } from './lib/mappers';
6
+
7
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/index.ts"],"sourcesContent":["// Block factory and metadata\nexport { createFormsBlock, formsBlockMetadata } from './lib/forms.block';\nexport type { FormsBlock, FormsBlockConfig } from './lib/forms.block';\n\n// Types\nexport type {\n // Form types\n Form,\n CreateFormRequest,\n UpdateFormRequest,\n ListFormsParams,\n // Form Schema types\n FormSchema,\n CreateFormSchemaRequest,\n UpdateFormSchemaRequest,\n ListFormSchemasParams,\n // Form Instance types\n FormInstance,\n CreateFormInstanceRequest,\n UpdateFormInstanceRequest,\n SubmitFormInstanceRequest,\n ListFormInstancesParams,\n // Form Set types\n FormSet,\n FormReference,\n CreateFormSetRequest,\n UpdateFormSetRequest,\n ListFormSetsParams,\n} from './lib/types';\n\n// Services\nexport type {\n FormsService,\n FormSchemasService,\n FormInstancesService,\n FormSetsService,\n} from './lib/services';\n\nexport {\n createFormsService,\n createFormSchemasService,\n createFormInstancesService,\n createFormSetsService,\n} from './lib/services';\n\n// Mappers (for advanced use cases)\nexport {\n formMapper,\n formSchemaMapper,\n formInstanceMapper,\n formSetMapper,\n} from './lib/mappers';\n"],"names":["createFormsBlock","formsBlockMetadata","createFormsService","createFormSchemasService","createFormInstancesService","createFormSetsService","formMapper","formSchemaMapper","formInstanceMapper","formSetMapper"],"rangeMappings":";;;;","mappings":"AAAA,6BAA6B;AAC7B,SAASA,gBAAgB,EAAEC,kBAAkB,QAAQ,oBAAoB;AAqCzE,SACEC,kBAAkB,EAClBC,wBAAwB,EACxBC,0BAA0B,EAC1BC,qBAAqB,QAChB,iBAAiB;AAExB,mCAAmC;AACnC,SACEC,UAAU,EACVC,gBAAgB,EAChBC,kBAAkB,EAClBC,aAAa,QACR,gBAAgB"}
@@ -0,0 +1,22 @@
1
+ import { createFormsService, createFormSchemasService, createFormInstancesService, createFormSetsService } from './services';
2
+ export function createFormsBlock(transport, config) {
3
+ return {
4
+ forms: createFormsService(transport, config),
5
+ schemas: createFormSchemasService(transport, config),
6
+ instances: createFormInstancesService(transport, config),
7
+ sets: createFormSetsService(transport, config)
8
+ };
9
+ }
10
+ export const formsBlockMetadata = {
11
+ name: 'forms',
12
+ version: '0.1.0',
13
+ description: 'Dynamic forms, schemas, submissions, and form management',
14
+ resourceTypes: [
15
+ 'Form',
16
+ 'FormSchema',
17
+ 'FormInstance',
18
+ 'FormSet'
19
+ ]
20
+ };
21
+
22
+ //# sourceMappingURL=forms.block.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/lib/forms.block.ts"],"sourcesContent":["import type { Transport, BlockConfig, BlockMetadata } from '@23blocks/contracts';\nimport {\n createFormsService,\n createFormSchemasService,\n createFormInstancesService,\n createFormSetsService,\n type FormsService,\n type FormSchemasService,\n type FormInstancesService,\n type FormSetsService,\n} from './services';\n\nexport interface FormsBlockConfig extends BlockConfig {\n appId: string;\n tenantId?: string;\n}\n\nexport interface FormsBlock {\n forms: FormsService;\n schemas: FormSchemasService;\n instances: FormInstancesService;\n sets: FormSetsService;\n}\n\nexport function createFormsBlock(\n transport: Transport,\n config: FormsBlockConfig\n): FormsBlock {\n return {\n forms: createFormsService(transport, config),\n schemas: createFormSchemasService(transport, config),\n instances: createFormInstancesService(transport, config),\n sets: createFormSetsService(transport, config),\n };\n}\n\nexport const formsBlockMetadata: BlockMetadata = {\n name: 'forms',\n version: '0.1.0',\n description: 'Dynamic forms, schemas, submissions, and form management',\n resourceTypes: [\n 'Form',\n 'FormSchema',\n 'FormInstance',\n 'FormSet',\n ],\n};\n"],"names":["createFormsService","createFormSchemasService","createFormInstancesService","createFormSetsService","createFormsBlock","transport","config","forms","schemas","instances","sets","formsBlockMetadata","name","version","description","resourceTypes"],"rangeMappings":";;;;;;;;;;;;;;;;;;;","mappings":"AACA,SACEA,kBAAkB,EAClBC,wBAAwB,EACxBC,0BAA0B,EAC1BC,qBAAqB,QAKhB,aAAa;AAcpB,OAAO,SAASC,iBACdC,SAAoB,EACpBC,MAAwB;IAExB,OAAO;QACLC,OAAOP,mBAAmBK,WAAWC;QACrCE,SAASP,yBAAyBI,WAAWC;QAC7CG,WAAWP,2BAA2BG,WAAWC;QACjDI,MAAMP,sBAAsBE,WAAWC;IACzC;AACF;AAEA,OAAO,MAAMK,qBAAoC;IAC/CC,MAAM;IACNC,SAAS;IACTC,aAAa;IACbC,eAAe;QACb;QACA;QACA;QACA;KACD;AACH,EAAE"}
@@ -0,0 +1,20 @@
1
+ import { parseString, parseDate, parseBoolean, parseNumber, parseStatus } from './utils';
2
+ export const formInstanceMapper = {
3
+ type: 'FormInstance',
4
+ map: (resource)=>({
5
+ id: resource.id,
6
+ uniqueId: parseString(resource.attributes['unique_id']) || resource.id,
7
+ createdAt: parseDate(resource.attributes['created_at']) || new Date(),
8
+ updatedAt: parseDate(resource.attributes['updated_at']) || new Date(),
9
+ formSchemaUniqueId: parseString(resource.attributes['form_schema_unique_id']) || '',
10
+ formSchemaVersion: parseNumber(resource.attributes['form_schema_version']),
11
+ userUniqueId: parseString(resource.attributes['user_unique_id']),
12
+ data: resource.attributes['data'] || {},
13
+ status: parseStatus(resource.attributes['status']),
14
+ enabled: parseBoolean(resource.attributes['enabled']),
15
+ submittedAt: parseDate(resource.attributes['submitted_at']),
16
+ payload: resource.attributes['payload']
17
+ })
18
+ };
19
+
20
+ //# sourceMappingURL=form-instance.mapper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/lib/mappers/form-instance.mapper.ts"],"sourcesContent":["import type { ResourceMapper } from '@23blocks/jsonapi-codec';\nimport type { FormInstance } from '../types/form-instance';\nimport { parseString, parseDate, parseBoolean, parseNumber, parseStatus } from './utils';\n\nexport const formInstanceMapper: ResourceMapper<FormInstance> = {\n type: 'FormInstance',\n map: (resource) => ({\n id: resource.id,\n uniqueId: parseString(resource.attributes['unique_id']) || resource.id,\n createdAt: parseDate(resource.attributes['created_at']) || new Date(),\n updatedAt: parseDate(resource.attributes['updated_at']) || new Date(),\n\n formSchemaUniqueId: parseString(resource.attributes['form_schema_unique_id']) || '',\n formSchemaVersion: parseNumber(resource.attributes['form_schema_version']),\n userUniqueId: parseString(resource.attributes['user_unique_id']),\n data: (resource.attributes['data'] as Record<string, unknown>) || {},\n status: parseStatus(resource.attributes['status']),\n enabled: parseBoolean(resource.attributes['enabled']),\n submittedAt: parseDate(resource.attributes['submitted_at']),\n payload: resource.attributes['payload'] as Record<string, unknown> | undefined,\n }),\n};\n"],"names":["parseString","parseDate","parseBoolean","parseNumber","parseStatus","formInstanceMapper","type","map","resource","id","uniqueId","attributes","createdAt","Date","updatedAt","formSchemaUniqueId","formSchemaVersion","userUniqueId","data","status","enabled","submittedAt","payload"],"rangeMappings":";;;;;;;;;;;;;;;;;","mappings":"AAEA,SAASA,WAAW,EAAEC,SAAS,EAAEC,YAAY,EAAEC,WAAW,EAAEC,WAAW,QAAQ,UAAU;AAEzF,OAAO,MAAMC,qBAAmD;IAC9DC,MAAM;IACNC,KAAK,CAACC,WAAc,CAAA;YAClBC,IAAID,SAASC,EAAE;YACfC,UAAUV,YAAYQ,SAASG,UAAU,CAAC,YAAY,KAAKH,SAASC,EAAE;YACtEG,WAAWX,UAAUO,SAASG,UAAU,CAAC,aAAa,KAAK,IAAIE;YAC/DC,WAAWb,UAAUO,SAASG,UAAU,CAAC,aAAa,KAAK,IAAIE;YAE/DE,oBAAoBf,YAAYQ,SAASG,UAAU,CAAC,wBAAwB,KAAK;YACjFK,mBAAmBb,YAAYK,SAASG,UAAU,CAAC,sBAAsB;YACzEM,cAAcjB,YAAYQ,SAASG,UAAU,CAAC,iBAAiB;YAC/DO,MAAM,AAACV,SAASG,UAAU,CAAC,OAAO,IAAgC,CAAC;YACnEQ,QAAQf,YAAYI,SAASG,UAAU,CAAC,SAAS;YACjDS,SAASlB,aAAaM,SAASG,UAAU,CAAC,UAAU;YACpDU,aAAapB,UAAUO,SAASG,UAAU,CAAC,eAAe;YAC1DW,SAASd,SAASG,UAAU,CAAC,UAAU;QACzC,CAAA;AACF,EAAE"}
@@ -0,0 +1,22 @@
1
+ import { parseString, parseDate, parseBoolean, parseNumber, parseStatus } from './utils';
2
+ export const formSchemaMapper = {
3
+ type: 'FormSchema',
4
+ map: (resource)=>({
5
+ id: resource.id,
6
+ uniqueId: parseString(resource.attributes['unique_id']) || resource.id,
7
+ createdAt: parseDate(resource.attributes['created_at']) || new Date(),
8
+ updatedAt: parseDate(resource.attributes['updated_at']) || new Date(),
9
+ formUniqueId: parseString(resource.attributes['form_unique_id']) || '',
10
+ code: parseString(resource.attributes['code']) || '',
11
+ name: parseString(resource.attributes['name']) || '',
12
+ description: parseString(resource.attributes['description']),
13
+ version: parseNumber(resource.attributes['version']),
14
+ schema: resource.attributes['schema'] || {},
15
+ uiSchema: resource.attributes['ui_schema'],
16
+ status: parseStatus(resource.attributes['status']),
17
+ enabled: parseBoolean(resource.attributes['enabled']),
18
+ payload: resource.attributes['payload']
19
+ })
20
+ };
21
+
22
+ //# sourceMappingURL=form-schema.mapper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/lib/mappers/form-schema.mapper.ts"],"sourcesContent":["import type { ResourceMapper } from '@23blocks/jsonapi-codec';\nimport type { FormSchema } from '../types/form-schema';\nimport { parseString, parseDate, parseBoolean, parseNumber, parseStatus } from './utils';\n\nexport const formSchemaMapper: ResourceMapper<FormSchema> = {\n type: 'FormSchema',\n map: (resource) => ({\n id: resource.id,\n uniqueId: parseString(resource.attributes['unique_id']) || resource.id,\n createdAt: parseDate(resource.attributes['created_at']) || new Date(),\n updatedAt: parseDate(resource.attributes['updated_at']) || new Date(),\n\n formUniqueId: parseString(resource.attributes['form_unique_id']) || '',\n code: parseString(resource.attributes['code']) || '',\n name: parseString(resource.attributes['name']) || '',\n description: parseString(resource.attributes['description']),\n version: parseNumber(resource.attributes['version']),\n schema: (resource.attributes['schema'] as Record<string, unknown>) || {},\n uiSchema: resource.attributes['ui_schema'] as Record<string, unknown> | undefined,\n status: parseStatus(resource.attributes['status']),\n enabled: parseBoolean(resource.attributes['enabled']),\n payload: resource.attributes['payload'] as Record<string, unknown> | undefined,\n }),\n};\n"],"names":["parseString","parseDate","parseBoolean","parseNumber","parseStatus","formSchemaMapper","type","map","resource","id","uniqueId","attributes","createdAt","Date","updatedAt","formUniqueId","code","name","description","version","schema","uiSchema","status","enabled","payload"],"rangeMappings":";;;;;;;;;;;;;;;;;;;","mappings":"AAEA,SAASA,WAAW,EAAEC,SAAS,EAAEC,YAAY,EAAEC,WAAW,EAAEC,WAAW,QAAQ,UAAU;AAEzF,OAAO,MAAMC,mBAA+C;IAC1DC,MAAM;IACNC,KAAK,CAACC,WAAc,CAAA;YAClBC,IAAID,SAASC,EAAE;YACfC,UAAUV,YAAYQ,SAASG,UAAU,CAAC,YAAY,KAAKH,SAASC,EAAE;YACtEG,WAAWX,UAAUO,SAASG,UAAU,CAAC,aAAa,KAAK,IAAIE;YAC/DC,WAAWb,UAAUO,SAASG,UAAU,CAAC,aAAa,KAAK,IAAIE;YAE/DE,cAAcf,YAAYQ,SAASG,UAAU,CAAC,iBAAiB,KAAK;YACpEK,MAAMhB,YAAYQ,SAASG,UAAU,CAAC,OAAO,KAAK;YAClDM,MAAMjB,YAAYQ,SAASG,UAAU,CAAC,OAAO,KAAK;YAClDO,aAAalB,YAAYQ,SAASG,UAAU,CAAC,cAAc;YAC3DQ,SAAShB,YAAYK,SAASG,UAAU,CAAC,UAAU;YACnDS,QAAQ,AAACZ,SAASG,UAAU,CAAC,SAAS,IAAgC,CAAC;YACvEU,UAAUb,SAASG,UAAU,CAAC,YAAY;YAC1CW,QAAQlB,YAAYI,SAASG,UAAU,CAAC,SAAS;YACjDY,SAASrB,aAAaM,SAASG,UAAU,CAAC,UAAU;YACpDa,SAAShB,SAASG,UAAU,CAAC,UAAU;QACzC,CAAA;AACF,EAAE"}
@@ -0,0 +1,19 @@
1
+ import { parseString, parseDate, parseBoolean, parseStatus } from './utils';
2
+ export const formSetMapper = {
3
+ type: 'FormSet',
4
+ map: (resource)=>({
5
+ id: resource.id,
6
+ uniqueId: parseString(resource.attributes['unique_id']) || resource.id,
7
+ createdAt: parseDate(resource.attributes['created_at']) || new Date(),
8
+ updatedAt: parseDate(resource.attributes['updated_at']) || new Date(),
9
+ code: parseString(resource.attributes['code']) || '',
10
+ name: parseString(resource.attributes['name']) || '',
11
+ description: parseString(resource.attributes['description']),
12
+ forms: resource.attributes['forms'] || [],
13
+ status: parseStatus(resource.attributes['status']),
14
+ enabled: parseBoolean(resource.attributes['enabled']),
15
+ payload: resource.attributes['payload']
16
+ })
17
+ };
18
+
19
+ //# sourceMappingURL=form-set.mapper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/lib/mappers/form-set.mapper.ts"],"sourcesContent":["import type { ResourceMapper } from '@23blocks/jsonapi-codec';\nimport type { FormSet, FormReference } from '../types/form-set';\nimport { parseString, parseDate, parseBoolean, parseStatus } from './utils';\n\nexport const formSetMapper: ResourceMapper<FormSet> = {\n type: 'FormSet',\n map: (resource) => ({\n id: resource.id,\n uniqueId: parseString(resource.attributes['unique_id']) || resource.id,\n createdAt: parseDate(resource.attributes['created_at']) || new Date(),\n updatedAt: parseDate(resource.attributes['updated_at']) || new Date(),\n\n code: parseString(resource.attributes['code']) || '',\n name: parseString(resource.attributes['name']) || '',\n description: parseString(resource.attributes['description']),\n forms: (resource.attributes['forms'] as FormReference[]) || [],\n status: parseStatus(resource.attributes['status']),\n enabled: parseBoolean(resource.attributes['enabled']),\n payload: resource.attributes['payload'] as Record<string, unknown> | undefined,\n }),\n};\n"],"names":["parseString","parseDate","parseBoolean","parseStatus","formSetMapper","type","map","resource","id","uniqueId","attributes","createdAt","Date","updatedAt","code","name","description","forms","status","enabled","payload"],"rangeMappings":";;;;;;;;;;;;;;;;","mappings":"AAEA,SAASA,WAAW,EAAEC,SAAS,EAAEC,YAAY,EAAEC,WAAW,QAAQ,UAAU;AAE5E,OAAO,MAAMC,gBAAyC;IACpDC,MAAM;IACNC,KAAK,CAACC,WAAc,CAAA;YAClBC,IAAID,SAASC,EAAE;YACfC,UAAUT,YAAYO,SAASG,UAAU,CAAC,YAAY,KAAKH,SAASC,EAAE;YACtEG,WAAWV,UAAUM,SAASG,UAAU,CAAC,aAAa,KAAK,IAAIE;YAC/DC,WAAWZ,UAAUM,SAASG,UAAU,CAAC,aAAa,KAAK,IAAIE;YAE/DE,MAAMd,YAAYO,SAASG,UAAU,CAAC,OAAO,KAAK;YAClDK,MAAMf,YAAYO,SAASG,UAAU,CAAC,OAAO,KAAK;YAClDM,aAAahB,YAAYO,SAASG,UAAU,CAAC,cAAc;YAC3DO,OAAO,AAACV,SAASG,UAAU,CAAC,QAAQ,IAAwB,EAAE;YAC9DQ,QAAQf,YAAYI,SAASG,UAAU,CAAC,SAAS;YACjDS,SAASjB,aAAaK,SAASG,UAAU,CAAC,UAAU;YACpDU,SAASb,SAASG,UAAU,CAAC,UAAU;QACzC,CAAA;AACF,EAAE"}
@@ -0,0 +1,19 @@
1
+ import { parseString, parseDate, parseBoolean, parseStatus } from './utils';
2
+ export const formMapper = {
3
+ type: 'Form',
4
+ map: (resource)=>({
5
+ id: resource.id,
6
+ uniqueId: parseString(resource.attributes['unique_id']) || resource.id,
7
+ createdAt: parseDate(resource.attributes['created_at']) || new Date(),
8
+ updatedAt: parseDate(resource.attributes['updated_at']) || new Date(),
9
+ code: parseString(resource.attributes['code']) || '',
10
+ name: parseString(resource.attributes['name']) || '',
11
+ description: parseString(resource.attributes['description']),
12
+ formType: parseString(resource.attributes['form_type']),
13
+ status: parseStatus(resource.attributes['status']),
14
+ enabled: parseBoolean(resource.attributes['enabled']),
15
+ payload: resource.attributes['payload']
16
+ })
17
+ };
18
+
19
+ //# sourceMappingURL=form.mapper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/lib/mappers/form.mapper.ts"],"sourcesContent":["import type { ResourceMapper } from '@23blocks/jsonapi-codec';\nimport type { Form } from '../types/form';\nimport { parseString, parseDate, parseBoolean, parseStatus } from './utils';\n\nexport const formMapper: ResourceMapper<Form> = {\n type: 'Form',\n map: (resource) => ({\n id: resource.id,\n uniqueId: parseString(resource.attributes['unique_id']) || resource.id,\n createdAt: parseDate(resource.attributes['created_at']) || new Date(),\n updatedAt: parseDate(resource.attributes['updated_at']) || new Date(),\n\n code: parseString(resource.attributes['code']) || '',\n name: parseString(resource.attributes['name']) || '',\n description: parseString(resource.attributes['description']),\n formType: parseString(resource.attributes['form_type']),\n status: parseStatus(resource.attributes['status']),\n enabled: parseBoolean(resource.attributes['enabled']),\n payload: resource.attributes['payload'] as Record<string, unknown> | undefined,\n }),\n};\n"],"names":["parseString","parseDate","parseBoolean","parseStatus","formMapper","type","map","resource","id","uniqueId","attributes","createdAt","Date","updatedAt","code","name","description","formType","status","enabled","payload"],"rangeMappings":";;;;;;;;;;;;;;;;","mappings":"AAEA,SAASA,WAAW,EAAEC,SAAS,EAAEC,YAAY,EAAEC,WAAW,QAAQ,UAAU;AAE5E,OAAO,MAAMC,aAAmC;IAC9CC,MAAM;IACNC,KAAK,CAACC,WAAc,CAAA;YAClBC,IAAID,SAASC,EAAE;YACfC,UAAUT,YAAYO,SAASG,UAAU,CAAC,YAAY,KAAKH,SAASC,EAAE;YACtEG,WAAWV,UAAUM,SAASG,UAAU,CAAC,aAAa,KAAK,IAAIE;YAC/DC,WAAWZ,UAAUM,SAASG,UAAU,CAAC,aAAa,KAAK,IAAIE;YAE/DE,MAAMd,YAAYO,SAASG,UAAU,CAAC,OAAO,KAAK;YAClDK,MAAMf,YAAYO,SAASG,UAAU,CAAC,OAAO,KAAK;YAClDM,aAAahB,YAAYO,SAASG,UAAU,CAAC,cAAc;YAC3DO,UAAUjB,YAAYO,SAASG,UAAU,CAAC,YAAY;YACtDQ,QAAQf,YAAYI,SAASG,UAAU,CAAC,SAAS;YACjDS,SAASjB,aAAaK,SAASG,UAAU,CAAC,UAAU;YACpDU,SAASb,SAASG,UAAU,CAAC,UAAU;QACzC,CAAA;AACF,EAAE"}
@@ -0,0 +1,7 @@
1
+ export * from './form.mapper';
2
+ export * from './form-schema.mapper';
3
+ export * from './form-instance.mapper';
4
+ export * from './form-set.mapper';
5
+ export * from './utils';
6
+
7
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/lib/mappers/index.ts"],"sourcesContent":["export * from './form.mapper';\nexport * from './form-schema.mapper';\nexport * from './form-instance.mapper';\nexport * from './form-set.mapper';\nexport * from './utils';\n"],"names":[],"rangeMappings":";;;;","mappings":"AAAA,cAAc,gBAAgB;AAC9B,cAAc,uBAAuB;AACrC,cAAc,yBAAyB;AACvC,cAAc,oBAAoB;AAClC,cAAc,UAAU"}
@@ -0,0 +1,75 @@
1
+ /**
2
+ * Parse a string value, returning undefined for empty/undefined
3
+ */ export function parseString(value) {
4
+ if (value === null || value === undefined) {
5
+ return undefined;
6
+ }
7
+ const str = String(value);
8
+ return str.length > 0 ? str : undefined;
9
+ }
10
+ /**
11
+ * Parse a date value
12
+ */ export function parseDate(value) {
13
+ if (value === null || value === undefined) {
14
+ return undefined;
15
+ }
16
+ if (value instanceof Date) {
17
+ return value;
18
+ }
19
+ if (typeof value === 'string' || typeof value === 'number') {
20
+ const date = new Date(value);
21
+ return isNaN(date.getTime()) ? undefined : date;
22
+ }
23
+ return undefined;
24
+ }
25
+ /**
26
+ * Parse a boolean value
27
+ */ export function parseBoolean(value) {
28
+ if (typeof value === 'boolean') {
29
+ return value;
30
+ }
31
+ if (value === 'true' || value === '1' || value === 1) {
32
+ return true;
33
+ }
34
+ return false;
35
+ }
36
+ /**
37
+ * Parse an array of strings
38
+ */ export function parseStringArray(value) {
39
+ if (value === null || value === undefined) {
40
+ return undefined;
41
+ }
42
+ if (Array.isArray(value)) {
43
+ return value.map(String);
44
+ }
45
+ return undefined;
46
+ }
47
+ /**
48
+ * Parse a number value
49
+ */ export function parseNumber(value) {
50
+ if (value === null || value === undefined) {
51
+ return 0;
52
+ }
53
+ const num = Number(value);
54
+ return isNaN(num) ? 0 : num;
55
+ }
56
+ /**
57
+ * Parse an optional number value
58
+ */ export function parseOptionalNumber(value) {
59
+ if (value === null || value === undefined) {
60
+ return undefined;
61
+ }
62
+ const num = Number(value);
63
+ return isNaN(num) ? undefined : num;
64
+ }
65
+ /**
66
+ * Parse entity status
67
+ */ export function parseStatus(value) {
68
+ const status = parseString(value);
69
+ if (status === 'active' || status === 'inactive' || status === 'pending' || status === 'archived' || status === 'deleted') {
70
+ return status;
71
+ }
72
+ return 'active';
73
+ }
74
+
75
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/lib/mappers/utils.ts"],"sourcesContent":["/**\n * Parse a string value, returning undefined for empty/undefined\n */\nexport function parseString(value: unknown): string | undefined {\n if (value === null || value === undefined) {\n return undefined;\n }\n const str = String(value);\n return str.length > 0 ? str : undefined;\n}\n\n/**\n * Parse a date value\n */\nexport function parseDate(value: unknown): Date | undefined {\n if (value === null || value === undefined) {\n return undefined;\n }\n\n if (value instanceof Date) {\n return value;\n }\n\n if (typeof value === 'string' || typeof value === 'number') {\n const date = new Date(value);\n return isNaN(date.getTime()) ? undefined : date;\n }\n\n return undefined;\n}\n\n/**\n * Parse a boolean value\n */\nexport function parseBoolean(value: unknown): boolean {\n if (typeof value === 'boolean') {\n return value;\n }\n if (value === 'true' || value === '1' || value === 1) {\n return true;\n }\n return false;\n}\n\n/**\n * Parse an array of strings\n */\nexport function parseStringArray(value: unknown): string[] | undefined {\n if (value === null || value === undefined) {\n return undefined;\n }\n if (Array.isArray(value)) {\n return value.map(String);\n }\n return undefined;\n}\n\n/**\n * Parse a number value\n */\nexport function parseNumber(value: unknown): number {\n if (value === null || value === undefined) {\n return 0;\n }\n const num = Number(value);\n return isNaN(num) ? 0 : num;\n}\n\n/**\n * Parse an optional number value\n */\nexport function parseOptionalNumber(value: unknown): number | undefined {\n if (value === null || value === undefined) {\n return undefined;\n }\n const num = Number(value);\n return isNaN(num) ? undefined : num;\n}\n\n/**\n * Parse entity status\n */\nexport function parseStatus(value: unknown): 'active' | 'inactive' | 'pending' | 'archived' | 'deleted' {\n const status = parseString(value);\n if (status === 'active' || status === 'inactive' || status === 'pending' || status === 'archived' || status === 'deleted') {\n return status;\n }\n return 'active';\n}\n"],"names":["parseString","value","undefined","str","String","length","parseDate","Date","date","isNaN","getTime","parseBoolean","parseStringArray","Array","isArray","map","parseNumber","num","Number","parseOptionalNumber","parseStatus","status"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AAAA;;CAEC,GACD,OAAO,SAASA,YAAYC,KAAc;IACxC,IAAIA,UAAU,QAAQA,UAAUC,WAAW;QACzC,OAAOA;IACT;IACA,MAAMC,MAAMC,OAAOH;IACnB,OAAOE,IAAIE,MAAM,GAAG,IAAIF,MAAMD;AAChC;AAEA;;CAEC,GACD,OAAO,SAASI,UAAUL,KAAc;IACtC,IAAIA,UAAU,QAAQA,UAAUC,WAAW;QACzC,OAAOA;IACT;IAEA,IAAID,iBAAiBM,MAAM;QACzB,OAAON;IACT;IAEA,IAAI,OAAOA,UAAU,YAAY,OAAOA,UAAU,UAAU;QAC1D,MAAMO,OAAO,IAAID,KAAKN;QACtB,OAAOQ,MAAMD,KAAKE,OAAO,MAAMR,YAAYM;IAC7C;IAEA,OAAON;AACT;AAEA;;CAEC,GACD,OAAO,SAASS,aAAaV,KAAc;IACzC,IAAI,OAAOA,UAAU,WAAW;QAC9B,OAAOA;IACT;IACA,IAAIA,UAAU,UAAUA,UAAU,OAAOA,UAAU,GAAG;QACpD,OAAO;IACT;IACA,OAAO;AACT;AAEA;;CAEC,GACD,OAAO,SAASW,iBAAiBX,KAAc;IAC7C,IAAIA,UAAU,QAAQA,UAAUC,WAAW;QACzC,OAAOA;IACT;IACA,IAAIW,MAAMC,OAAO,CAACb,QAAQ;QACxB,OAAOA,MAAMc,GAAG,CAACX;IACnB;IACA,OAAOF;AACT;AAEA;;CAEC,GACD,OAAO,SAASc,YAAYf,KAAc;IACxC,IAAIA,UAAU,QAAQA,UAAUC,WAAW;QACzC,OAAO;IACT;IACA,MAAMe,MAAMC,OAAOjB;IACnB,OAAOQ,MAAMQ,OAAO,IAAIA;AAC1B;AAEA;;CAEC,GACD,OAAO,SAASE,oBAAoBlB,KAAc;IAChD,IAAIA,UAAU,QAAQA,UAAUC,WAAW;QACzC,OAAOA;IACT;IACA,MAAMe,MAAMC,OAAOjB;IACnB,OAAOQ,MAAMQ,OAAOf,YAAYe;AAClC;AAEA;;CAEC,GACD,OAAO,SAASG,YAAYnB,KAAc;IACxC,MAAMoB,SAASrB,YAAYC;IAC3B,IAAIoB,WAAW,YAAYA,WAAW,cAAcA,WAAW,aAAaA,WAAW,cAAcA,WAAW,WAAW;QACzH,OAAOA;IACT;IACA,OAAO;AACT"}
@@ -0,0 +1,99 @@
1
+ import { decodeOne, decodePageResult } from '@23blocks/jsonapi-codec';
2
+ import { formInstanceMapper } from '../mappers/form-instance.mapper';
3
+ export function createFormInstancesService(transport, _config) {
4
+ return {
5
+ async list (params) {
6
+ const queryParams = {};
7
+ if (params == null ? void 0 : params.page) queryParams['page'] = String(params.page);
8
+ if (params == null ? void 0 : params.perPage) queryParams['records'] = String(params.perPage);
9
+ if (params == null ? void 0 : params.formSchemaUniqueId) queryParams['form_schema_unique_id'] = params.formSchemaUniqueId;
10
+ if (params == null ? void 0 : params.userUniqueId) queryParams['user_unique_id'] = params.userUniqueId;
11
+ if (params == null ? void 0 : params.status) queryParams['status'] = params.status;
12
+ if (params == null ? void 0 : params.sortBy) queryParams['sort'] = params.sortOrder === 'desc' ? `-${params.sortBy}` : params.sortBy;
13
+ const response = await transport.get('/form_instances', {
14
+ params: queryParams
15
+ });
16
+ return decodePageResult(response, formInstanceMapper);
17
+ },
18
+ async get (uniqueId) {
19
+ const response = await transport.get(`/form_instances/${uniqueId}`);
20
+ return decodeOne(response, formInstanceMapper);
21
+ },
22
+ async create (data) {
23
+ const response = await transport.post('/form_instances', {
24
+ data: {
25
+ type: 'FormInstance',
26
+ attributes: {
27
+ form_schema_unique_id: data.formSchemaUniqueId,
28
+ form_schema_version: data.formSchemaVersion,
29
+ user_unique_id: data.userUniqueId,
30
+ data: data.data,
31
+ payload: data.payload
32
+ }
33
+ }
34
+ });
35
+ return decodeOne(response, formInstanceMapper);
36
+ },
37
+ async update (uniqueId, data) {
38
+ const response = await transport.put(`/form_instances/${uniqueId}`, {
39
+ data: {
40
+ type: 'FormInstance',
41
+ attributes: {
42
+ data: data.data,
43
+ enabled: data.enabled,
44
+ status: data.status,
45
+ payload: data.payload
46
+ }
47
+ }
48
+ });
49
+ return decodeOne(response, formInstanceMapper);
50
+ },
51
+ async delete (uniqueId) {
52
+ await transport.delete(`/form_instances/${uniqueId}`);
53
+ },
54
+ async submit (data) {
55
+ const response = await transport.post('/form_instances/submit', {
56
+ data: {
57
+ type: 'FormInstance',
58
+ attributes: {
59
+ form_schema_unique_id: data.formSchemaUniqueId,
60
+ form_schema_version: data.formSchemaVersion,
61
+ data: data.data,
62
+ payload: data.payload
63
+ }
64
+ }
65
+ });
66
+ return decodeOne(response, formInstanceMapper);
67
+ },
68
+ async listByUser (userUniqueId, params) {
69
+ const queryParams = {
70
+ user_unique_id: userUniqueId
71
+ };
72
+ if (params == null ? void 0 : params.page) queryParams['page'] = String(params.page);
73
+ if (params == null ? void 0 : params.perPage) queryParams['records'] = String(params.perPage);
74
+ if (params == null ? void 0 : params.formSchemaUniqueId) queryParams['form_schema_unique_id'] = params.formSchemaUniqueId;
75
+ if (params == null ? void 0 : params.status) queryParams['status'] = params.status;
76
+ if (params == null ? void 0 : params.sortBy) queryParams['sort'] = params.sortOrder === 'desc' ? `-${params.sortBy}` : params.sortBy;
77
+ const response = await transport.get(`/users/${userUniqueId}/form_instances`, {
78
+ params: queryParams
79
+ });
80
+ return decodePageResult(response, formInstanceMapper);
81
+ },
82
+ async listBySchema (formSchemaUniqueId, params) {
83
+ const queryParams = {
84
+ form_schema_unique_id: formSchemaUniqueId
85
+ };
86
+ if (params == null ? void 0 : params.page) queryParams['page'] = String(params.page);
87
+ if (params == null ? void 0 : params.perPage) queryParams['records'] = String(params.perPage);
88
+ if (params == null ? void 0 : params.userUniqueId) queryParams['user_unique_id'] = params.userUniqueId;
89
+ if (params == null ? void 0 : params.status) queryParams['status'] = params.status;
90
+ if (params == null ? void 0 : params.sortBy) queryParams['sort'] = params.sortOrder === 'desc' ? `-${params.sortBy}` : params.sortBy;
91
+ const response = await transport.get(`/form_schemas/${formSchemaUniqueId}/instances`, {
92
+ params: queryParams
93
+ });
94
+ return decodePageResult(response, formInstanceMapper);
95
+ }
96
+ };
97
+ }
98
+
99
+ //# sourceMappingURL=form-instances.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/lib/services/form-instances.service.ts"],"sourcesContent":["import type { Transport, PageResult } from '@23blocks/contracts';\nimport { decodeOne, decodePageResult } from '@23blocks/jsonapi-codec';\nimport type {\n FormInstance,\n CreateFormInstanceRequest,\n UpdateFormInstanceRequest,\n SubmitFormInstanceRequest,\n ListFormInstancesParams,\n} from '../types/form-instance';\nimport { formInstanceMapper } from '../mappers/form-instance.mapper';\n\nexport interface FormInstancesService {\n list(params?: ListFormInstancesParams): Promise<PageResult<FormInstance>>;\n get(uniqueId: string): Promise<FormInstance>;\n create(data: CreateFormInstanceRequest): Promise<FormInstance>;\n update(uniqueId: string, data: UpdateFormInstanceRequest): Promise<FormInstance>;\n delete(uniqueId: string): Promise<void>;\n submit(data: SubmitFormInstanceRequest): Promise<FormInstance>;\n listByUser(userUniqueId: string, params?: ListFormInstancesParams): Promise<PageResult<FormInstance>>;\n listBySchema(formSchemaUniqueId: string, params?: ListFormInstancesParams): Promise<PageResult<FormInstance>>;\n}\n\nexport function createFormInstancesService(transport: Transport, _config: { appId: string }): FormInstancesService {\n return {\n async list(params?: ListFormInstancesParams): Promise<PageResult<FormInstance>> {\n const queryParams: Record<string, string> = {};\n if (params?.page) queryParams['page'] = String(params.page);\n if (params?.perPage) queryParams['records'] = String(params.perPage);\n if (params?.formSchemaUniqueId) queryParams['form_schema_unique_id'] = params.formSchemaUniqueId;\n if (params?.userUniqueId) queryParams['user_unique_id'] = params.userUniqueId;\n if (params?.status) queryParams['status'] = params.status;\n if (params?.sortBy) queryParams['sort'] = params.sortOrder === 'desc' ? `-${params.sortBy}` : params.sortBy;\n\n const response = await transport.get<unknown>('/form_instances', { params: queryParams });\n return decodePageResult(response, formInstanceMapper);\n },\n\n async get(uniqueId: string): Promise<FormInstance> {\n const response = await transport.get<unknown>(`/form_instances/${uniqueId}`);\n return decodeOne(response, formInstanceMapper);\n },\n\n async create(data: CreateFormInstanceRequest): Promise<FormInstance> {\n const response = await transport.post<unknown>('/form_instances', {\n data: {\n type: 'FormInstance',\n attributes: {\n form_schema_unique_id: data.formSchemaUniqueId,\n form_schema_version: data.formSchemaVersion,\n user_unique_id: data.userUniqueId,\n data: data.data,\n payload: data.payload,\n },\n },\n });\n return decodeOne(response, formInstanceMapper);\n },\n\n async update(uniqueId: string, data: UpdateFormInstanceRequest): Promise<FormInstance> {\n const response = await transport.put<unknown>(`/form_instances/${uniqueId}`, {\n data: {\n type: 'FormInstance',\n attributes: {\n data: data.data,\n enabled: data.enabled,\n status: data.status,\n payload: data.payload,\n },\n },\n });\n return decodeOne(response, formInstanceMapper);\n },\n\n async delete(uniqueId: string): Promise<void> {\n await transport.delete(`/form_instances/${uniqueId}`);\n },\n\n async submit(data: SubmitFormInstanceRequest): Promise<FormInstance> {\n const response = await transport.post<unknown>('/form_instances/submit', {\n data: {\n type: 'FormInstance',\n attributes: {\n form_schema_unique_id: data.formSchemaUniqueId,\n form_schema_version: data.formSchemaVersion,\n data: data.data,\n payload: data.payload,\n },\n },\n });\n return decodeOne(response, formInstanceMapper);\n },\n\n async listByUser(userUniqueId: string, params?: ListFormInstancesParams): Promise<PageResult<FormInstance>> {\n const queryParams: Record<string, string> = { user_unique_id: userUniqueId };\n if (params?.page) queryParams['page'] = String(params.page);\n if (params?.perPage) queryParams['records'] = String(params.perPage);\n if (params?.formSchemaUniqueId) queryParams['form_schema_unique_id'] = params.formSchemaUniqueId;\n if (params?.status) queryParams['status'] = params.status;\n if (params?.sortBy) queryParams['sort'] = params.sortOrder === 'desc' ? `-${params.sortBy}` : params.sortBy;\n\n const response = await transport.get<unknown>(`/users/${userUniqueId}/form_instances`, { params: queryParams });\n return decodePageResult(response, formInstanceMapper);\n },\n\n async listBySchema(formSchemaUniqueId: string, params?: ListFormInstancesParams): Promise<PageResult<FormInstance>> {\n const queryParams: Record<string, string> = { form_schema_unique_id: formSchemaUniqueId };\n if (params?.page) queryParams['page'] = String(params.page);\n if (params?.perPage) queryParams['records'] = String(params.perPage);\n if (params?.userUniqueId) queryParams['user_unique_id'] = params.userUniqueId;\n if (params?.status) queryParams['status'] = params.status;\n if (params?.sortBy) queryParams['sort'] = params.sortOrder === 'desc' ? `-${params.sortBy}` : params.sortBy;\n\n const response = await transport.get<unknown>(`/form_schemas/${formSchemaUniqueId}/instances`, { params: queryParams });\n return decodePageResult(response, formInstanceMapper);\n },\n };\n}\n"],"names":["decodeOne","decodePageResult","formInstanceMapper","createFormInstancesService","transport","_config","list","params","queryParams","page","String","perPage","formSchemaUniqueId","userUniqueId","status","sortBy","sortOrder","response","get","uniqueId","create","data","post","type","attributes","form_schema_unique_id","form_schema_version","formSchemaVersion","user_unique_id","payload","update","put","enabled","delete","submit","listByUser","listBySchema"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
@@ -0,0 +1,67 @@
1
+ import { decodeOne, decodePageResult } from '@23blocks/jsonapi-codec';
2
+ import { formSchemaMapper } from '../mappers/form-schema.mapper';
3
+ export function createFormSchemasService(transport, _config) {
4
+ return {
5
+ async list (params) {
6
+ const queryParams = {};
7
+ if (params == null ? void 0 : params.page) queryParams['page'] = String(params.page);
8
+ if (params == null ? void 0 : params.perPage) queryParams['records'] = String(params.perPage);
9
+ if (params == null ? void 0 : params.formUniqueId) queryParams['form_unique_id'] = params.formUniqueId;
10
+ if (params == null ? void 0 : params.status) queryParams['status'] = params.status;
11
+ if (params == null ? void 0 : params.version) queryParams['version'] = String(params.version);
12
+ if (params == null ? void 0 : params.sortBy) queryParams['sort'] = params.sortOrder === 'desc' ? `-${params.sortBy}` : params.sortBy;
13
+ const response = await transport.get('/form_schemas', {
14
+ params: queryParams
15
+ });
16
+ return decodePageResult(response, formSchemaMapper);
17
+ },
18
+ async get (uniqueId) {
19
+ const response = await transport.get(`/form_schemas/${uniqueId}`);
20
+ return decodeOne(response, formSchemaMapper);
21
+ },
22
+ async create (data) {
23
+ const response = await transport.post('/form_schemas', {
24
+ data: {
25
+ type: 'FormSchema',
26
+ attributes: {
27
+ form_unique_id: data.formUniqueId,
28
+ code: data.code,
29
+ name: data.name,
30
+ description: data.description,
31
+ version: data.version,
32
+ schema: data.schema,
33
+ ui_schema: data.uiSchema,
34
+ payload: data.payload
35
+ }
36
+ }
37
+ });
38
+ return decodeOne(response, formSchemaMapper);
39
+ },
40
+ async update (uniqueId, data) {
41
+ const response = await transport.put(`/form_schemas/${uniqueId}`, {
42
+ data: {
43
+ type: 'FormSchema',
44
+ attributes: {
45
+ name: data.name,
46
+ description: data.description,
47
+ schema: data.schema,
48
+ ui_schema: data.uiSchema,
49
+ enabled: data.enabled,
50
+ status: data.status,
51
+ payload: data.payload
52
+ }
53
+ }
54
+ });
55
+ return decodeOne(response, formSchemaMapper);
56
+ },
57
+ async delete (uniqueId) {
58
+ await transport.delete(`/form_schemas/${uniqueId}`);
59
+ },
60
+ async getLatestVersion (formUniqueId) {
61
+ const response = await transport.get(`/forms/${formUniqueId}/schemas/latest`);
62
+ return decodeOne(response, formSchemaMapper);
63
+ }
64
+ };
65
+ }
66
+
67
+ //# sourceMappingURL=form-schemas.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/lib/services/form-schemas.service.ts"],"sourcesContent":["import type { Transport, PageResult } from '@23blocks/contracts';\nimport { decodeOne, decodePageResult } from '@23blocks/jsonapi-codec';\nimport type {\n FormSchema,\n CreateFormSchemaRequest,\n UpdateFormSchemaRequest,\n ListFormSchemasParams,\n} from '../types/form-schema';\nimport { formSchemaMapper } from '../mappers/form-schema.mapper';\n\nexport interface FormSchemasService {\n list(params?: ListFormSchemasParams): Promise<PageResult<FormSchema>>;\n get(uniqueId: string): Promise<FormSchema>;\n create(data: CreateFormSchemaRequest): Promise<FormSchema>;\n update(uniqueId: string, data: UpdateFormSchemaRequest): Promise<FormSchema>;\n delete(uniqueId: string): Promise<void>;\n getLatestVersion(formUniqueId: string): Promise<FormSchema>;\n}\n\nexport function createFormSchemasService(transport: Transport, _config: { appId: string }): FormSchemasService {\n return {\n async list(params?: ListFormSchemasParams): Promise<PageResult<FormSchema>> {\n const queryParams: Record<string, string> = {};\n if (params?.page) queryParams['page'] = String(params.page);\n if (params?.perPage) queryParams['records'] = String(params.perPage);\n if (params?.formUniqueId) queryParams['form_unique_id'] = params.formUniqueId;\n if (params?.status) queryParams['status'] = params.status;\n if (params?.version) queryParams['version'] = String(params.version);\n if (params?.sortBy) queryParams['sort'] = params.sortOrder === 'desc' ? `-${params.sortBy}` : params.sortBy;\n\n const response = await transport.get<unknown>('/form_schemas', { params: queryParams });\n return decodePageResult(response, formSchemaMapper);\n },\n\n async get(uniqueId: string): Promise<FormSchema> {\n const response = await transport.get<unknown>(`/form_schemas/${uniqueId}`);\n return decodeOne(response, formSchemaMapper);\n },\n\n async create(data: CreateFormSchemaRequest): Promise<FormSchema> {\n const response = await transport.post<unknown>('/form_schemas', {\n data: {\n type: 'FormSchema',\n attributes: {\n form_unique_id: data.formUniqueId,\n code: data.code,\n name: data.name,\n description: data.description,\n version: data.version,\n schema: data.schema,\n ui_schema: data.uiSchema,\n payload: data.payload,\n },\n },\n });\n return decodeOne(response, formSchemaMapper);\n },\n\n async update(uniqueId: string, data: UpdateFormSchemaRequest): Promise<FormSchema> {\n const response = await transport.put<unknown>(`/form_schemas/${uniqueId}`, {\n data: {\n type: 'FormSchema',\n attributes: {\n name: data.name,\n description: data.description,\n schema: data.schema,\n ui_schema: data.uiSchema,\n enabled: data.enabled,\n status: data.status,\n payload: data.payload,\n },\n },\n });\n return decodeOne(response, formSchemaMapper);\n },\n\n async delete(uniqueId: string): Promise<void> {\n await transport.delete(`/form_schemas/${uniqueId}`);\n },\n\n async getLatestVersion(formUniqueId: string): Promise<FormSchema> {\n const response = await transport.get<unknown>(`/forms/${formUniqueId}/schemas/latest`);\n return decodeOne(response, formSchemaMapper);\n },\n };\n}\n"],"names":["decodeOne","decodePageResult","formSchemaMapper","createFormSchemasService","transport","_config","list","params","queryParams","page","String","perPage","formUniqueId","status","version","sortBy","sortOrder","response","get","uniqueId","create","data","post","type","attributes","form_unique_id","code","name","description","schema","ui_schema","uiSchema","payload","update","put","enabled","delete","getLatestVersion"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AACA,SAASA,SAAS,EAAEC,gBAAgB,QAAQ,0BAA0B;AAOtE,SAASC,gBAAgB,QAAQ,gCAAgC;AAWjE,OAAO,SAASC,yBAAyBC,SAAoB,EAAEC,OAA0B;IACvF,OAAO;QACL,MAAMC,MAAKC,MAA8B;YACvC,MAAMC,cAAsC,CAAC;YAC7C,IAAID,0BAAAA,OAAQE,IAAI,EAAED,WAAW,CAAC,OAAO,GAAGE,OAAOH,OAAOE,IAAI;YAC1D,IAAIF,0BAAAA,OAAQI,OAAO,EAAEH,WAAW,CAAC,UAAU,GAAGE,OAAOH,OAAOI,OAAO;YACnE,IAAIJ,0BAAAA,OAAQK,YAAY,EAAEJ,WAAW,CAAC,iBAAiB,GAAGD,OAAOK,YAAY;YAC7E,IAAIL,0BAAAA,OAAQM,MAAM,EAAEL,WAAW,CAAC,SAAS,GAAGD,OAAOM,MAAM;YACzD,IAAIN,0BAAAA,OAAQO,OAAO,EAAEN,WAAW,CAAC,UAAU,GAAGE,OAAOH,OAAOO,OAAO;YACnE,IAAIP,0BAAAA,OAAQQ,MAAM,EAAEP,WAAW,CAAC,OAAO,GAAGD,OAAOS,SAAS,KAAK,SAAS,CAAC,CAAC,EAAET,OAAOQ,MAAM,CAAC,CAAC,GAAGR,OAAOQ,MAAM;YAE3G,MAAME,WAAW,MAAMb,UAAUc,GAAG,CAAU,iBAAiB;gBAAEX,QAAQC;YAAY;YACrF,OAAOP,iBAAiBgB,UAAUf;QACpC;QAEA,MAAMgB,KAAIC,QAAgB;YACxB,MAAMF,WAAW,MAAMb,UAAUc,GAAG,CAAU,CAAC,cAAc,EAAEC,SAAS,CAAC;YACzE,OAAOnB,UAAUiB,UAAUf;QAC7B;QAEA,MAAMkB,QAAOC,IAA6B;YACxC,MAAMJ,WAAW,MAAMb,UAAUkB,IAAI,CAAU,iBAAiB;gBAC9DD,MAAM;oBACJE,MAAM;oBACNC,YAAY;wBACVC,gBAAgBJ,KAAKT,YAAY;wBACjCc,MAAML,KAAKK,IAAI;wBACfC,MAAMN,KAAKM,IAAI;wBACfC,aAAaP,KAAKO,WAAW;wBAC7Bd,SAASO,KAAKP,OAAO;wBACrBe,QAAQR,KAAKQ,MAAM;wBACnBC,WAAWT,KAAKU,QAAQ;wBACxBC,SAASX,KAAKW,OAAO;oBACvB;gBACF;YACF;YACA,OAAOhC,UAAUiB,UAAUf;QAC7B;QAEA,MAAM+B,QAAOd,QAAgB,EAAEE,IAA6B;YAC1D,MAAMJ,WAAW,MAAMb,UAAU8B,GAAG,CAAU,CAAC,cAAc,EAAEf,SAAS,CAAC,EAAE;gBACzEE,MAAM;oBACJE,MAAM;oBACNC,YAAY;wBACVG,MAAMN,KAAKM,IAAI;wBACfC,aAAaP,KAAKO,WAAW;wBAC7BC,QAAQR,KAAKQ,MAAM;wBACnBC,WAAWT,KAAKU,QAAQ;wBACxBI,SAASd,KAAKc,OAAO;wBACrBtB,QAAQQ,KAAKR,MAAM;wBACnBmB,SAASX,KAAKW,OAAO;oBACvB;gBACF;YACF;YACA,OAAOhC,UAAUiB,UAAUf;QAC7B;QAEA,MAAMkC,QAAOjB,QAAgB;YAC3B,MAAMf,UAAUgC,MAAM,CAAC,CAAC,cAAc,EAAEjB,SAAS,CAAC;QACpD;QAEA,MAAMkB,kBAAiBzB,YAAoB;YACzC,MAAMK,WAAW,MAAMb,UAAUc,GAAG,CAAU,CAAC,OAAO,EAAEN,aAAa,eAAe,CAAC;YACrF,OAAOZ,UAAUiB,UAAUf;QAC7B;IACF;AACF"}
@@ -0,0 +1,58 @@
1
+ import { decodeOne, decodePageResult } from '@23blocks/jsonapi-codec';
2
+ import { formSetMapper } from '../mappers/form-set.mapper';
3
+ export function createFormSetsService(transport, _config) {
4
+ return {
5
+ async list (params) {
6
+ const queryParams = {};
7
+ if (params == null ? void 0 : params.page) queryParams['page'] = String(params.page);
8
+ if (params == null ? void 0 : params.perPage) queryParams['records'] = String(params.perPage);
9
+ if (params == null ? void 0 : params.status) queryParams['status'] = params.status;
10
+ if (params == null ? void 0 : params.search) queryParams['search'] = params.search;
11
+ if (params == null ? void 0 : params.sortBy) queryParams['sort'] = params.sortOrder === 'desc' ? `-${params.sortBy}` : params.sortBy;
12
+ const response = await transport.get('/form_sets', {
13
+ params: queryParams
14
+ });
15
+ return decodePageResult(response, formSetMapper);
16
+ },
17
+ async get (uniqueId) {
18
+ const response = await transport.get(`/form_sets/${uniqueId}`);
19
+ return decodeOne(response, formSetMapper);
20
+ },
21
+ async create (data) {
22
+ const response = await transport.post('/form_sets', {
23
+ data: {
24
+ type: 'FormSet',
25
+ attributes: {
26
+ code: data.code,
27
+ name: data.name,
28
+ description: data.description,
29
+ forms: data.forms,
30
+ payload: data.payload
31
+ }
32
+ }
33
+ });
34
+ return decodeOne(response, formSetMapper);
35
+ },
36
+ async update (uniqueId, data) {
37
+ const response = await transport.put(`/form_sets/${uniqueId}`, {
38
+ data: {
39
+ type: 'FormSet',
40
+ attributes: {
41
+ name: data.name,
42
+ description: data.description,
43
+ forms: data.forms,
44
+ enabled: data.enabled,
45
+ status: data.status,
46
+ payload: data.payload
47
+ }
48
+ }
49
+ });
50
+ return decodeOne(response, formSetMapper);
51
+ },
52
+ async delete (uniqueId) {
53
+ await transport.delete(`/form_sets/${uniqueId}`);
54
+ }
55
+ };
56
+ }
57
+
58
+ //# sourceMappingURL=form-sets.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/lib/services/form-sets.service.ts"],"sourcesContent":["import type { Transport, PageResult } from '@23blocks/contracts';\nimport { decodeOne, decodePageResult } from '@23blocks/jsonapi-codec';\nimport type {\n FormSet,\n CreateFormSetRequest,\n UpdateFormSetRequest,\n ListFormSetsParams,\n} from '../types/form-set';\nimport { formSetMapper } from '../mappers/form-set.mapper';\n\nexport interface FormSetsService {\n list(params?: ListFormSetsParams): Promise<PageResult<FormSet>>;\n get(uniqueId: string): Promise<FormSet>;\n create(data: CreateFormSetRequest): Promise<FormSet>;\n update(uniqueId: string, data: UpdateFormSetRequest): Promise<FormSet>;\n delete(uniqueId: string): Promise<void>;\n}\n\nexport function createFormSetsService(transport: Transport, _config: { appId: string }): FormSetsService {\n return {\n async list(params?: ListFormSetsParams): Promise<PageResult<FormSet>> {\n const queryParams: Record<string, string> = {};\n if (params?.page) queryParams['page'] = String(params.page);\n if (params?.perPage) queryParams['records'] = String(params.perPage);\n if (params?.status) queryParams['status'] = params.status;\n if (params?.search) queryParams['search'] = params.search;\n if (params?.sortBy) queryParams['sort'] = params.sortOrder === 'desc' ? `-${params.sortBy}` : params.sortBy;\n\n const response = await transport.get<unknown>('/form_sets', { params: queryParams });\n return decodePageResult(response, formSetMapper);\n },\n\n async get(uniqueId: string): Promise<FormSet> {\n const response = await transport.get<unknown>(`/form_sets/${uniqueId}`);\n return decodeOne(response, formSetMapper);\n },\n\n async create(data: CreateFormSetRequest): Promise<FormSet> {\n const response = await transport.post<unknown>('/form_sets', {\n data: {\n type: 'FormSet',\n attributes: {\n code: data.code,\n name: data.name,\n description: data.description,\n forms: data.forms,\n payload: data.payload,\n },\n },\n });\n return decodeOne(response, formSetMapper);\n },\n\n async update(uniqueId: string, data: UpdateFormSetRequest): Promise<FormSet> {\n const response = await transport.put<unknown>(`/form_sets/${uniqueId}`, {\n data: {\n type: 'FormSet',\n attributes: {\n name: data.name,\n description: data.description,\n forms: data.forms,\n enabled: data.enabled,\n status: data.status,\n payload: data.payload,\n },\n },\n });\n return decodeOne(response, formSetMapper);\n },\n\n async delete(uniqueId: string): Promise<void> {\n await transport.delete(`/form_sets/${uniqueId}`);\n },\n };\n}\n"],"names":["decodeOne","decodePageResult","formSetMapper","createFormSetsService","transport","_config","list","params","queryParams","page","String","perPage","status","search","sortBy","sortOrder","response","get","uniqueId","create","data","post","type","attributes","code","name","description","forms","payload","update","put","enabled","delete"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AACA,SAASA,SAAS,EAAEC,gBAAgB,QAAQ,0BAA0B;AAOtE,SAASC,aAAa,QAAQ,6BAA6B;AAU3D,OAAO,SAASC,sBAAsBC,SAAoB,EAAEC,OAA0B;IACpF,OAAO;QACL,MAAMC,MAAKC,MAA2B;YACpC,MAAMC,cAAsC,CAAC;YAC7C,IAAID,0BAAAA,OAAQE,IAAI,EAAED,WAAW,CAAC,OAAO,GAAGE,OAAOH,OAAOE,IAAI;YAC1D,IAAIF,0BAAAA,OAAQI,OAAO,EAAEH,WAAW,CAAC,UAAU,GAAGE,OAAOH,OAAOI,OAAO;YACnE,IAAIJ,0BAAAA,OAAQK,MAAM,EAAEJ,WAAW,CAAC,SAAS,GAAGD,OAAOK,MAAM;YACzD,IAAIL,0BAAAA,OAAQM,MAAM,EAAEL,WAAW,CAAC,SAAS,GAAGD,OAAOM,MAAM;YACzD,IAAIN,0BAAAA,OAAQO,MAAM,EAAEN,WAAW,CAAC,OAAO,GAAGD,OAAOQ,SAAS,KAAK,SAAS,CAAC,CAAC,EAAER,OAAOO,MAAM,CAAC,CAAC,GAAGP,OAAOO,MAAM;YAE3G,MAAME,WAAW,MAAMZ,UAAUa,GAAG,CAAU,cAAc;gBAAEV,QAAQC;YAAY;YAClF,OAAOP,iBAAiBe,UAAUd;QACpC;QAEA,MAAMe,KAAIC,QAAgB;YACxB,MAAMF,WAAW,MAAMZ,UAAUa,GAAG,CAAU,CAAC,WAAW,EAAEC,SAAS,CAAC;YACtE,OAAOlB,UAAUgB,UAAUd;QAC7B;QAEA,MAAMiB,QAAOC,IAA0B;YACrC,MAAMJ,WAAW,MAAMZ,UAAUiB,IAAI,CAAU,cAAc;gBAC3DD,MAAM;oBACJE,MAAM;oBACNC,YAAY;wBACVC,MAAMJ,KAAKI,IAAI;wBACfC,MAAML,KAAKK,IAAI;wBACfC,aAAaN,KAAKM,WAAW;wBAC7BC,OAAOP,KAAKO,KAAK;wBACjBC,SAASR,KAAKQ,OAAO;oBACvB;gBACF;YACF;YACA,OAAO5B,UAAUgB,UAAUd;QAC7B;QAEA,MAAM2B,QAAOX,QAAgB,EAAEE,IAA0B;YACvD,MAAMJ,WAAW,MAAMZ,UAAU0B,GAAG,CAAU,CAAC,WAAW,EAAEZ,SAAS,CAAC,EAAE;gBACtEE,MAAM;oBACJE,MAAM;oBACNC,YAAY;wBACVE,MAAML,KAAKK,IAAI;wBACfC,aAAaN,KAAKM,WAAW;wBAC7BC,OAAOP,KAAKO,KAAK;wBACjBI,SAASX,KAAKW,OAAO;wBACrBnB,QAAQQ,KAAKR,MAAM;wBACnBgB,SAASR,KAAKQ,OAAO;oBACvB;gBACF;YACF;YACA,OAAO5B,UAAUgB,UAAUd;QAC7B;QAEA,MAAM8B,QAAOd,QAAgB;YAC3B,MAAMd,UAAU4B,MAAM,CAAC,CAAC,WAAW,EAAEd,SAAS,CAAC;QACjD;IACF;AACF"}
@@ -0,0 +1,59 @@
1
+ import { decodeOne, decodePageResult } from '@23blocks/jsonapi-codec';
2
+ import { formMapper } from '../mappers/form.mapper';
3
+ export function createFormsService(transport, _config) {
4
+ return {
5
+ async list (params) {
6
+ const queryParams = {};
7
+ if (params == null ? void 0 : params.page) queryParams['page'] = String(params.page);
8
+ if (params == null ? void 0 : params.perPage) queryParams['records'] = String(params.perPage);
9
+ if (params == null ? void 0 : params.status) queryParams['status'] = params.status;
10
+ if (params == null ? void 0 : params.formType) queryParams['form_type'] = params.formType;
11
+ if (params == null ? void 0 : params.search) queryParams['search'] = params.search;
12
+ if (params == null ? void 0 : params.sortBy) queryParams['sort'] = params.sortOrder === 'desc' ? `-${params.sortBy}` : params.sortBy;
13
+ const response = await transport.get('/forms', {
14
+ params: queryParams
15
+ });
16
+ return decodePageResult(response, formMapper);
17
+ },
18
+ async get (uniqueId) {
19
+ const response = await transport.get(`/forms/${uniqueId}`);
20
+ return decodeOne(response, formMapper);
21
+ },
22
+ async create (data) {
23
+ const response = await transport.post('/forms', {
24
+ data: {
25
+ type: 'Form',
26
+ attributes: {
27
+ code: data.code,
28
+ name: data.name,
29
+ description: data.description,
30
+ form_type: data.formType,
31
+ payload: data.payload
32
+ }
33
+ }
34
+ });
35
+ return decodeOne(response, formMapper);
36
+ },
37
+ async update (uniqueId, data) {
38
+ const response = await transport.put(`/forms/${uniqueId}`, {
39
+ data: {
40
+ type: 'Form',
41
+ attributes: {
42
+ name: data.name,
43
+ description: data.description,
44
+ form_type: data.formType,
45
+ enabled: data.enabled,
46
+ status: data.status,
47
+ payload: data.payload
48
+ }
49
+ }
50
+ });
51
+ return decodeOne(response, formMapper);
52
+ },
53
+ async delete (uniqueId) {
54
+ await transport.delete(`/forms/${uniqueId}`);
55
+ }
56
+ };
57
+ }
58
+
59
+ //# sourceMappingURL=forms.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/lib/services/forms.service.ts"],"sourcesContent":["import type { Transport, PageResult } from '@23blocks/contracts';\nimport { decodeOne, decodePageResult } from '@23blocks/jsonapi-codec';\nimport type {\n Form,\n CreateFormRequest,\n UpdateFormRequest,\n ListFormsParams,\n} from '../types/form';\nimport { formMapper } from '../mappers/form.mapper';\n\nexport interface FormsService {\n list(params?: ListFormsParams): Promise<PageResult<Form>>;\n get(uniqueId: string): Promise<Form>;\n create(data: CreateFormRequest): Promise<Form>;\n update(uniqueId: string, data: UpdateFormRequest): Promise<Form>;\n delete(uniqueId: string): Promise<void>;\n}\n\nexport function createFormsService(transport: Transport, _config: { appId: string }): FormsService {\n return {\n async list(params?: ListFormsParams): Promise<PageResult<Form>> {\n const queryParams: Record<string, string> = {};\n if (params?.page) queryParams['page'] = String(params.page);\n if (params?.perPage) queryParams['records'] = String(params.perPage);\n if (params?.status) queryParams['status'] = params.status;\n if (params?.formType) queryParams['form_type'] = params.formType;\n if (params?.search) queryParams['search'] = params.search;\n if (params?.sortBy) queryParams['sort'] = params.sortOrder === 'desc' ? `-${params.sortBy}` : params.sortBy;\n\n const response = await transport.get<unknown>('/forms', { params: queryParams });\n return decodePageResult(response, formMapper);\n },\n\n async get(uniqueId: string): Promise<Form> {\n const response = await transport.get<unknown>(`/forms/${uniqueId}`);\n return decodeOne(response, formMapper);\n },\n\n async create(data: CreateFormRequest): Promise<Form> {\n const response = await transport.post<unknown>('/forms', {\n data: {\n type: 'Form',\n attributes: {\n code: data.code,\n name: data.name,\n description: data.description,\n form_type: data.formType,\n payload: data.payload,\n },\n },\n });\n return decodeOne(response, formMapper);\n },\n\n async update(uniqueId: string, data: UpdateFormRequest): Promise<Form> {\n const response = await transport.put<unknown>(`/forms/${uniqueId}`, {\n data: {\n type: 'Form',\n attributes: {\n name: data.name,\n description: data.description,\n form_type: data.formType,\n enabled: data.enabled,\n status: data.status,\n payload: data.payload,\n },\n },\n });\n return decodeOne(response, formMapper);\n },\n\n async delete(uniqueId: string): Promise<void> {\n await transport.delete(`/forms/${uniqueId}`);\n },\n };\n}\n"],"names":["decodeOne","decodePageResult","formMapper","createFormsService","transport","_config","list","params","queryParams","page","String","perPage","status","formType","search","sortBy","sortOrder","response","get","uniqueId","create","data","post","type","attributes","code","name","description","form_type","payload","update","put","enabled","delete"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AACA,SAASA,SAAS,EAAEC,gBAAgB,QAAQ,0BAA0B;AAOtE,SAASC,UAAU,QAAQ,yBAAyB;AAUpD,OAAO,SAASC,mBAAmBC,SAAoB,EAAEC,OAA0B;IACjF,OAAO;QACL,MAAMC,MAAKC,MAAwB;YACjC,MAAMC,cAAsC,CAAC;YAC7C,IAAID,0BAAAA,OAAQE,IAAI,EAAED,WAAW,CAAC,OAAO,GAAGE,OAAOH,OAAOE,IAAI;YAC1D,IAAIF,0BAAAA,OAAQI,OAAO,EAAEH,WAAW,CAAC,UAAU,GAAGE,OAAOH,OAAOI,OAAO;YACnE,IAAIJ,0BAAAA,OAAQK,MAAM,EAAEJ,WAAW,CAAC,SAAS,GAAGD,OAAOK,MAAM;YACzD,IAAIL,0BAAAA,OAAQM,QAAQ,EAAEL,WAAW,CAAC,YAAY,GAAGD,OAAOM,QAAQ;YAChE,IAAIN,0BAAAA,OAAQO,MAAM,EAAEN,WAAW,CAAC,SAAS,GAAGD,OAAOO,MAAM;YACzD,IAAIP,0BAAAA,OAAQQ,MAAM,EAAEP,WAAW,CAAC,OAAO,GAAGD,OAAOS,SAAS,KAAK,SAAS,CAAC,CAAC,EAAET,OAAOQ,MAAM,CAAC,CAAC,GAAGR,OAAOQ,MAAM;YAE3G,MAAME,WAAW,MAAMb,UAAUc,GAAG,CAAU,UAAU;gBAAEX,QAAQC;YAAY;YAC9E,OAAOP,iBAAiBgB,UAAUf;QACpC;QAEA,MAAMgB,KAAIC,QAAgB;YACxB,MAAMF,WAAW,MAAMb,UAAUc,GAAG,CAAU,CAAC,OAAO,EAAEC,SAAS,CAAC;YAClE,OAAOnB,UAAUiB,UAAUf;QAC7B;QAEA,MAAMkB,QAAOC,IAAuB;YAClC,MAAMJ,WAAW,MAAMb,UAAUkB,IAAI,CAAU,UAAU;gBACvDD,MAAM;oBACJE,MAAM;oBACNC,YAAY;wBACVC,MAAMJ,KAAKI,IAAI;wBACfC,MAAML,KAAKK,IAAI;wBACfC,aAAaN,KAAKM,WAAW;wBAC7BC,WAAWP,KAAKR,QAAQ;wBACxBgB,SAASR,KAAKQ,OAAO;oBACvB;gBACF;YACF;YACA,OAAO7B,UAAUiB,UAAUf;QAC7B;QAEA,MAAM4B,QAAOX,QAAgB,EAAEE,IAAuB;YACpD,MAAMJ,WAAW,MAAMb,UAAU2B,GAAG,CAAU,CAAC,OAAO,EAAEZ,SAAS,CAAC,EAAE;gBAClEE,MAAM;oBACJE,MAAM;oBACNC,YAAY;wBACVE,MAAML,KAAKK,IAAI;wBACfC,aAAaN,KAAKM,WAAW;wBAC7BC,WAAWP,KAAKR,QAAQ;wBACxBmB,SAASX,KAAKW,OAAO;wBACrBpB,QAAQS,KAAKT,MAAM;wBACnBiB,SAASR,KAAKQ,OAAO;oBACvB;gBACF;YACF;YACA,OAAO7B,UAAUiB,UAAUf;QAC7B;QAEA,MAAM+B,QAAOd,QAAgB;YAC3B,MAAMf,UAAU6B,MAAM,CAAC,CAAC,OAAO,EAAEd,SAAS,CAAC;QAC7C;IACF;AACF"}
@@ -0,0 +1,6 @@
1
+ export * from './forms.service';
2
+ export * from './form-schemas.service';
3
+ export * from './form-instances.service';
4
+ export * from './form-sets.service';
5
+
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/lib/services/index.ts"],"sourcesContent":["export * from './forms.service';\nexport * from './form-schemas.service';\nexport * from './form-instances.service';\nexport * from './form-sets.service';\n"],"names":[],"rangeMappings":";;;","mappings":"AAAA,cAAc,kBAAkB;AAChC,cAAc,yBAAyB;AACvC,cAAc,2BAA2B;AACzC,cAAc,sBAAsB"}
@@ -0,0 +1,3 @@
1
+ export { };
2
+
3
+ //# sourceMappingURL=form-instance.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/lib/types/form-instance.ts"],"sourcesContent":["import type { IdentityCore, EntityStatus } from '@23blocks/contracts';\n\nexport interface FormInstance extends IdentityCore {\n formSchemaUniqueId: string;\n formSchemaVersion: number;\n userUniqueId?: string;\n data: Record<string, unknown>; // Form submission data\n status: EntityStatus;\n enabled: boolean;\n submittedAt?: Date;\n payload?: Record<string, unknown>;\n}\n\nexport interface CreateFormInstanceRequest {\n formSchemaUniqueId: string;\n formSchemaVersion?: number;\n userUniqueId?: string;\n data: Record<string, unknown>;\n payload?: Record<string, unknown>;\n}\n\nexport interface UpdateFormInstanceRequest {\n data?: Record<string, unknown>;\n enabled?: boolean;\n status?: EntityStatus;\n payload?: Record<string, unknown>;\n}\n\nexport interface SubmitFormInstanceRequest {\n formSchemaUniqueId: string;\n formSchemaVersion?: number;\n data: Record<string, unknown>;\n payload?: Record<string, unknown>;\n}\n\nexport interface ListFormInstancesParams {\n page?: number;\n perPage?: number;\n formSchemaUniqueId?: string;\n userUniqueId?: string;\n status?: EntityStatus;\n sortBy?: string;\n sortOrder?: 'asc' | 'desc';\n}\n"],"names":[],"rangeMappings":"","mappings":"AAmCA,WAQC"}
@@ -0,0 +1,3 @@
1
+ export { };
2
+
3
+ //# sourceMappingURL=form-schema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/lib/types/form-schema.ts"],"sourcesContent":["import type { IdentityCore, EntityStatus } from '@23blocks/contracts';\n\nexport interface FormSchema extends IdentityCore {\n formUniqueId: string;\n code: string;\n name: string;\n description?: string;\n version: number;\n schema: Record<string, unknown>; // JSON Schema definition\n uiSchema?: Record<string, unknown>; // UI Schema for rendering\n status: EntityStatus;\n enabled: boolean;\n payload?: Record<string, unknown>;\n}\n\nexport interface CreateFormSchemaRequest {\n formUniqueId: string;\n code: string;\n name: string;\n description?: string;\n version?: number;\n schema: Record<string, unknown>;\n uiSchema?: Record<string, unknown>;\n payload?: Record<string, unknown>;\n}\n\nexport interface UpdateFormSchemaRequest {\n name?: string;\n description?: string;\n schema?: Record<string, unknown>;\n uiSchema?: Record<string, unknown>;\n enabled?: boolean;\n status?: EntityStatus;\n payload?: Record<string, unknown>;\n}\n\nexport interface ListFormSchemasParams {\n page?: number;\n perPage?: number;\n formUniqueId?: string;\n status?: EntityStatus;\n version?: number;\n sortBy?: string;\n sortOrder?: 'asc' | 'desc';\n}\n"],"names":[],"rangeMappings":"","mappings":"AAoCA,WAQC"}
@@ -0,0 +1,3 @@
1
+ export { };
2
+
3
+ //# sourceMappingURL=form-set.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/lib/types/form-set.ts"],"sourcesContent":["import type { IdentityCore, EntityStatus } from '@23blocks/contracts';\n\nexport interface FormSet extends IdentityCore {\n code: string;\n name: string;\n description?: string;\n forms: FormReference[]; // List of form references\n status: EntityStatus;\n enabled: boolean;\n payload?: Record<string, unknown>;\n}\n\nexport interface FormReference {\n formUniqueId: string;\n formCode?: string;\n formName?: string;\n displayOrder?: number;\n required?: boolean;\n}\n\nexport interface CreateFormSetRequest {\n code: string;\n name: string;\n description?: string;\n forms?: FormReference[];\n payload?: Record<string, unknown>;\n}\n\nexport interface UpdateFormSetRequest {\n name?: string;\n description?: string;\n forms?: FormReference[];\n enabled?: boolean;\n status?: EntityStatus;\n payload?: Record<string, unknown>;\n}\n\nexport interface ListFormSetsParams {\n page?: number;\n perPage?: number;\n status?: EntityStatus;\n search?: string;\n sortBy?: string;\n sortOrder?: 'asc' | 'desc';\n}\n"],"names":[],"rangeMappings":"","mappings":"AAqCA,WAOC"}
@@ -0,0 +1,3 @@
1
+ export { };
2
+
3
+ //# sourceMappingURL=form.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/lib/types/form.ts"],"sourcesContent":["import type { IdentityCore, EntityStatus } from '@23blocks/contracts';\n\nexport interface Form extends IdentityCore {\n code: string;\n name: string;\n description?: string;\n formType?: string;\n status: EntityStatus;\n enabled: boolean;\n payload?: Record<string, unknown>;\n}\n\nexport interface CreateFormRequest {\n code: string;\n name: string;\n description?: string;\n formType?: string;\n payload?: Record<string, unknown>;\n}\n\nexport interface UpdateFormRequest {\n name?: string;\n description?: string;\n formType?: string;\n enabled?: boolean;\n status?: EntityStatus;\n payload?: Record<string, unknown>;\n}\n\nexport interface ListFormsParams {\n page?: number;\n perPage?: number;\n status?: EntityStatus;\n formType?: string;\n search?: string;\n sortBy?: string;\n sortOrder?: 'asc' | 'desc';\n}\n"],"names":[],"rangeMappings":"","mappings":"AA6BA,WAQC"}
@@ -0,0 +1,6 @@
1
+ export * from './form';
2
+ export * from './form-schema';
3
+ export * from './form-instance';
4
+ export * from './form-set';
5
+
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/lib/types/index.ts"],"sourcesContent":["export * from './form';\nexport * from './form-schema';\nexport * from './form-instance';\nexport * from './form-set';\n"],"names":[],"rangeMappings":";;;","mappings":"AAAA,cAAc,SAAS;AACvB,cAAc,gBAAgB;AAC9B,cAAc,kBAAkB;AAChC,cAAc,aAAa"}
package/package.json ADDED
@@ -0,0 +1,64 @@
1
+ {
2
+ "name": "@23blocks/block-forms",
3
+ "version": "0.1.0",
4
+ "description": "Forms block for 23blocks SDK - dynamic forms, schemas, submissions, and form management",
5
+ "license": "MIT",
6
+ "author": "23blocks <hello@23blocks.com>",
7
+ "repository": {
8
+ "type": "git",
9
+ "url": "https://github.com/23blocks-OS/frontend-sdk.git",
10
+ "directory": "packages/block-forms"
11
+ },
12
+ "homepage": "https://github.com/23blocks-OS/frontend-sdk/tree/main/packages/block-forms",
13
+ "bugs": {
14
+ "url": "https://github.com/23blocks-OS/frontend-sdk/issues"
15
+ },
16
+ "keywords": [
17
+ "23blocks",
18
+ "sdk",
19
+ "forms",
20
+ "schema",
21
+ "submissions",
22
+ "dynamic-forms",
23
+ "json-schema"
24
+ ],
25
+ "type": "module",
26
+ "main": "./dist/index.js",
27
+ "module": "./dist/index.js",
28
+ "types": "./dist/index.d.ts",
29
+ "exports": {
30
+ "./package.json": "./package.json",
31
+ ".": {
32
+ "types": "./dist/index.d.ts",
33
+ "import": "./dist/index.js",
34
+ "default": "./dist/index.js"
35
+ }
36
+ },
37
+ "files": [
38
+ "dist",
39
+ "!**/*.tsbuildinfo"
40
+ ],
41
+ "nx": {
42
+ "sourceRoot": "packages/block-forms/src",
43
+ "targets": {
44
+ "build": {
45
+ "executor": "@nx/js:swc",
46
+ "outputs": [
47
+ "{options.outputPath}"
48
+ ],
49
+ "options": {
50
+ "outputPath": "packages/block-forms/dist",
51
+ "main": "packages/block-forms/src/index.ts",
52
+ "tsConfig": "packages/block-forms/tsconfig.lib.json",
53
+ "skipTypeCheck": true,
54
+ "stripLeadingPaths": true
55
+ }
56
+ }
57
+ }
58
+ },
59
+ "dependencies": {
60
+ "@23blocks/contracts": "*",
61
+ "@23blocks/jsonapi-codec": "*",
62
+ "@swc/helpers": "~0.5.11"
63
+ }
64
+ }