@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.
- package/dist/index.js +7 -0
- package/dist/index.js.map +1 -0
- package/dist/lib/forms.block.js +22 -0
- package/dist/lib/forms.block.js.map +1 -0
- package/dist/lib/mappers/form-instance.mapper.js +20 -0
- package/dist/lib/mappers/form-instance.mapper.js.map +1 -0
- package/dist/lib/mappers/form-schema.mapper.js +22 -0
- package/dist/lib/mappers/form-schema.mapper.js.map +1 -0
- package/dist/lib/mappers/form-set.mapper.js +19 -0
- package/dist/lib/mappers/form-set.mapper.js.map +1 -0
- package/dist/lib/mappers/form.mapper.js +19 -0
- package/dist/lib/mappers/form.mapper.js.map +1 -0
- package/dist/lib/mappers/index.js +7 -0
- package/dist/lib/mappers/index.js.map +1 -0
- package/dist/lib/mappers/utils.js +75 -0
- package/dist/lib/mappers/utils.js.map +1 -0
- package/dist/lib/services/form-instances.service.js +99 -0
- package/dist/lib/services/form-instances.service.js.map +1 -0
- package/dist/lib/services/form-schemas.service.js +67 -0
- package/dist/lib/services/form-schemas.service.js.map +1 -0
- package/dist/lib/services/form-sets.service.js +58 -0
- package/dist/lib/services/form-sets.service.js.map +1 -0
- package/dist/lib/services/forms.service.js +59 -0
- package/dist/lib/services/forms.service.js.map +1 -0
- package/dist/lib/services/index.js +6 -0
- package/dist/lib/services/index.js.map +1 -0
- package/dist/lib/types/form-instance.js +3 -0
- package/dist/lib/types/form-instance.js.map +1 -0
- package/dist/lib/types/form-schema.js +3 -0
- package/dist/lib/types/form-schema.js.map +1 -0
- package/dist/lib/types/form-set.js +3 -0
- package/dist/lib/types/form-set.js.map +1 -0
- package/dist/lib/types/form.js +3 -0
- package/dist/lib/types/form.js.map +1 -0
- package/dist/lib/types/index.js +6 -0
- package/dist/lib/types/index.js.map +1 -0
- 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 @@
|
|
|
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 @@
|
|
|
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 @@
|
|
|
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 @@
|
|
|
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 @@
|
|
|
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 @@
|
|
|
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 @@
|
|
|
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
|
+
}
|