@webiny/api-form-builder-so-ddb 5.17.4 → 5.18.0-beta.3

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.
@@ -107,5 +107,4 @@ const createFormEntity = params => {
107
107
  });
108
108
  };
109
109
 
110
- exports.createFormEntity = createFormEntity;
111
- //# sourceMappingURL=form.js.map
110
+ exports.createFormEntity = createFormEntity;
@@ -50,5 +50,4 @@ const createSettingsEntity = params => {
50
50
  });
51
51
  };
52
52
 
53
- exports.createSettingsEntity = createSettingsEntity;
54
- //# sourceMappingURL=settings.js.map
53
+ exports.createSettingsEntity = createSettingsEntity;
@@ -71,5 +71,4 @@ const createSubmissionEntity = params => {
71
71
  });
72
72
  };
73
73
 
74
- exports.createSubmissionEntity = createSubmissionEntity;
75
- //# sourceMappingURL=submission.js.map
74
+ exports.createSubmissionEntity = createSubmissionEntity;
@@ -41,5 +41,4 @@ const createSystemEntity = params => {
41
41
  });
42
42
  };
43
43
 
44
- exports.createSystemEntity = createSystemEntity;
45
- //# sourceMappingURL=system.js.map
44
+ exports.createSystemEntity = createSystemEntity;
@@ -26,5 +26,4 @@ const createTable = params => {
26
26
  });
27
27
  };
28
28
 
29
- exports.createTable = createTable;
30
- //# sourceMappingURL=table.js.map
29
+ exports.createTable = createTable;
package/index.js CHANGED
@@ -136,5 +136,4 @@ const createFormBuilderStorageOperations = params => {
136
136
  }));
137
137
  };
138
138
 
139
- exports.createFormBuilderStorageOperations = createFormBuilderStorageOperations;
140
- //# sourceMappingURL=index.js.map
139
+ exports.createFormBuilderStorageOperations = createFormBuilderStorageOperations;
@@ -40,5 +40,4 @@ var _default = () => [new _FormDynamoDbFieldPlugin.FormDynamoDbFieldPlugin({
40
40
  path: "createdBy.id"
41
41
  })];
42
42
 
43
- exports.default = _default;
44
- //# sourceMappingURL=fields.js.map
43
+ exports.default = _default;
@@ -742,5 +742,4 @@ const createFormStorageOperations = params => {
742
742
  };
743
743
  };
744
744
 
745
- exports.createFormStorageOperations = createFormStorageOperations;
746
- //# sourceMappingURL=index.js.map
745
+ exports.createFormStorageOperations = createFormStorageOperations;
@@ -119,5 +119,4 @@ const createSettingsStorageOperations = params => {
119
119
  };
120
120
  };
121
121
 
122
- exports.createSettingsStorageOperations = createSettingsStorageOperations;
123
- //# sourceMappingURL=index.js.map
122
+ exports.createSettingsStorageOperations = createSettingsStorageOperations;
@@ -15,5 +15,4 @@ var _default = () => [new _FormSubmissionDynamoDbFieldPlugin.FormSubmissionDynam
15
15
  type: "date"
16
16
  })];
17
17
 
18
- exports.default = _default;
19
- //# sourceMappingURL=fields.js.map
18
+ exports.default = _default;
@@ -244,5 +244,4 @@ const createSubmissionStorageOperations = params => {
244
244
  };
245
245
  };
246
246
 
247
- exports.createSubmissionStorageOperations = createSubmissionStorageOperations;
248
- //# sourceMappingURL=index.js.map
247
+ exports.createSubmissionStorageOperations = createSubmissionStorageOperations;
@@ -102,5 +102,4 @@ const createSystemStorageOperations = params => {
102
102
  };
103
103
  };
104
104
 
105
- exports.createSystemStorageOperations = createSystemStorageOperations;
106
- //# sourceMappingURL=index.js.map
105
+ exports.createSystemStorageOperations = createSystemStorageOperations;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@webiny/api-form-builder-so-ddb",
3
- "version": "5.17.4",
3
+ "version": "5.18.0-beta.3",
4
4
  "main": "index.js",
5
5
  "keywords": [
6
6
  "@webiny/api-form-builder",
@@ -21,11 +21,11 @@
21
21
  "license": "MIT",
22
22
  "dependencies": {
23
23
  "@babel/runtime": "7.16.3",
24
- "@webiny/api-form-builder": "5.17.4",
25
- "@webiny/db-dynamodb": "5.17.4",
26
- "@webiny/error": "5.17.4",
27
- "@webiny/plugins": "5.17.4",
28
- "@webiny/utils": "5.17.4",
24
+ "@webiny/api-form-builder": "5.18.0-beta.3",
25
+ "@webiny/db-dynamodb": "5.18.0-beta.3",
26
+ "@webiny/error": "5.18.0-beta.3",
27
+ "@webiny/plugins": "5.18.0-beta.3",
28
+ "@webiny/utils": "5.18.0-beta.3",
29
29
  "dynamodb-toolbox": "0.3.5"
30
30
  },
31
31
  "devDependencies": {
@@ -33,9 +33,9 @@
33
33
  "@babel/core": "^7.5.5",
34
34
  "@babel/preset-env": "^7.5.5",
35
35
  "@babel/preset-typescript": "^7.8.3",
36
- "@webiny/cli": "^5.17.4",
37
- "@webiny/handler-db": "^5.17.4",
38
- "@webiny/project-utils": "^5.17.4",
36
+ "@webiny/cli": "^5.18.0-beta.3",
37
+ "@webiny/handler-db": "^5.18.0-beta.3",
38
+ "@webiny/project-utils": "^5.18.0-beta.3",
39
39
  "csvtojson": "^2.0.10",
40
40
  "jest": "^26.6.3",
41
41
  "jest-dynalite": "^3.2.0",
@@ -52,5 +52,5 @@
52
52
  "build": "yarn webiny run build",
53
53
  "watch": "yarn webiny run watch"
54
54
  },
55
- "gitHead": "bdfaa377704bf7f51d73561b4c6129f682bf24d2"
55
+ "gitHead": "9c86670476a62348ce391b091bf768e425ab6ee9"
56
56
  }
@@ -14,5 +14,4 @@ var _FieldPlugin = require("@webiny/db-dynamodb/plugins/definitions/FieldPlugin"
14
14
  class FormDynamoDbFieldPlugin extends _FieldPlugin.FieldPlugin {}
15
15
 
16
16
  exports.FormDynamoDbFieldPlugin = FormDynamoDbFieldPlugin;
17
- (0, _defineProperty2.default)(FormDynamoDbFieldPlugin, "type", "formBuilder.dynamodb.field.form");
18
- //# sourceMappingURL=FormDynamoDbFieldPlugin.js.map
17
+ (0, _defineProperty2.default)(FormDynamoDbFieldPlugin, "type", "formBuilder.dynamodb.field.form");
@@ -14,5 +14,4 @@ var _FieldPlugin = require("@webiny/db-dynamodb/plugins/definitions/FieldPlugin"
14
14
  class FormSubmissionDynamoDbFieldPlugin extends _FieldPlugin.FieldPlugin {}
15
15
 
16
16
  exports.FormSubmissionDynamoDbFieldPlugin = FormSubmissionDynamoDbFieldPlugin;
17
- (0, _defineProperty2.default)(FormSubmissionDynamoDbFieldPlugin, "type", "formBuilder.dynamodb.field.formSubmission");
18
- //# sourceMappingURL=FormSubmissionDynamoDbFieldPlugin.js.map
17
+ (0, _defineProperty2.default)(FormSubmissionDynamoDbFieldPlugin, "type", "formBuilder.dynamodb.field.formSubmission");
package/types.js CHANGED
@@ -12,5 +12,4 @@ exports.ENTITIES = ENTITIES;
12
12
  ENTITIES["SUBMISSION"] = "FormBuilderSubmission";
13
13
  ENTITIES["SYSTEM"] = "FormBuilderSystem";
14
14
  ENTITIES["SETTINGS"] = "FormBuilderSettings";
15
- })(ENTITIES || (exports.ENTITIES = ENTITIES = {}));
16
- //# sourceMappingURL=types.js.map
15
+ })(ENTITIES || (exports.ENTITIES = ENTITIES = {}));
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/definitions/form.ts"],"names":["createFormEntity","params","table","entityName","attributes","Entity","name","PK","partitionKey","SK","sortKey","GSI1_PK","type","GSI1_SK","TYPE","id","formId","tenant","locale","createdBy","ownedBy","savedOn","createdOn","slug","version","locked","published","publishedOn","status","fields","layout","stats","settings","triggers","webinyVersion"],"mappings":";;;;;;;;;;;AAAA;;;;;;AASO,MAAMA,gBAAgB,GAAIC,MAAD,IAAiC;AAC7D,QAAM;AAAEC,IAAAA,KAAF;AAASC,IAAAA,UAAT;AAAqBC,IAAAA;AAArB,MAAoCH,MAA1C;AACA,SAAO,IAAII,uBAAJ,CAAW;AACdH,IAAAA,KADc;AAEdI,IAAAA,IAAI,EAAEH,UAFQ;AAGdC,IAAAA,UAAU;AACNG,MAAAA,EAAE,EAAE;AACAC,QAAAA,YAAY,EAAE;AADd,OADE;AAINC,MAAAA,EAAE,EAAE;AACAC,QAAAA,OAAO,EAAE;AADT,OAJE;AAONC,MAAAA,OAAO,EAAE;AACLC,QAAAA,IAAI,EAAE;AADD,OAPH;AAUNC,MAAAA,OAAO,EAAE;AACLD,QAAAA,IAAI,EAAE;AADD,OAVH;AAaNE,MAAAA,IAAI,EAAE;AACFF,QAAAA,IAAI,EAAE;AADJ,OAbA;AAgBNG,MAAAA,EAAE,EAAE;AACAH,QAAAA,IAAI,EAAE;AADN,OAhBE;AAmBNI,MAAAA,MAAM,EAAE;AACJJ,QAAAA,IAAI,EAAE;AADF,OAnBF;AAsBNK,MAAAA,MAAM,EAAE;AACJL,QAAAA,IAAI,EAAE;AADF,OAtBF;AAyBNM,MAAAA,MAAM,EAAE;AACJN,QAAAA,IAAI,EAAE;AADF,OAzBF;AA4BNO,MAAAA,SAAS,EAAE;AACPP,QAAAA,IAAI,EAAE;AADC,OA5BL;AA+BNQ,MAAAA,OAAO,EAAE;AACLR,QAAAA,IAAI,EAAE;AADD,OA/BH;AAkCNS,MAAAA,OAAO,EAAE;AACLT,QAAAA,IAAI,EAAE;AADD,OAlCH;AAqCNU,MAAAA,SAAS,EAAE;AACPV,QAAAA,IAAI,EAAE;AADC,OArCL;AAwCNN,MAAAA,IAAI,EAAE;AACFM,QAAAA,IAAI,EAAE;AADJ,OAxCA;AA2CNW,MAAAA,IAAI,EAAE;AACFX,QAAAA,IAAI,EAAE;AADJ,OA3CA;AA8CNY,MAAAA,OAAO,EAAE;AACLZ,QAAAA,IAAI,EAAE;AADD,OA9CH;AAiDNa,MAAAA,MAAM,EAAE;AACJb,QAAAA,IAAI,EAAE;AADF,OAjDF;AAoDNc,MAAAA,SAAS,EAAE;AACPd,QAAAA,IAAI,EAAE;AADC,OApDL;AAuDNe,MAAAA,WAAW,EAAE;AACTf,QAAAA,IAAI,EAAE;AADG,OAvDP;AA0DNgB,MAAAA,MAAM,EAAE;AACJhB,QAAAA,IAAI,EAAE;AADF,OA1DF;AA6DNiB,MAAAA,MAAM,EAAE;AACJjB,QAAAA,IAAI,EAAE;AADF,OA7DF;AAgENkB,MAAAA,MAAM,EAAE;AACJlB,QAAAA,IAAI,EAAE;AADF,OAhEF;AAmENmB,MAAAA,KAAK,EAAE;AACHnB,QAAAA,IAAI,EAAE;AADH,OAnED;AAsENoB,MAAAA,QAAQ,EAAE;AACNpB,QAAAA,IAAI,EAAE;AADA,OAtEJ;AAyENqB,MAAAA,QAAQ,EAAE;AACNrB,QAAAA,IAAI,EAAE;AADA,OAzEJ;AA4ENsB,MAAAA,aAAa,EAAE;AACXtB,QAAAA,IAAI,EAAE;AADK;AA5ET,OA+EFR,UAAU,IAAI,EA/EZ;AAHI,GAAX,CAAP;AAqFH,CAvFM","sourcesContent":["import { Entity, Table } from \"dynamodb-toolbox\";\nimport { Attributes } from \"~/types\";\n\nexport interface Params {\n table: Table;\n entityName: string;\n attributes: Attributes;\n}\n\nexport const createFormEntity = (params: Params): Entity<any> => {\n const { table, entityName, attributes } = params;\n return new Entity({\n table,\n name: entityName,\n attributes: {\n PK: {\n partitionKey: true\n },\n SK: {\n sortKey: true\n },\n GSI1_PK: {\n type: \"string\"\n },\n GSI1_SK: {\n type: \"string\"\n },\n TYPE: {\n type: \"string\"\n },\n id: {\n type: \"string\"\n },\n formId: {\n type: \"string\"\n },\n tenant: {\n type: \"string\"\n },\n locale: {\n type: \"string\"\n },\n createdBy: {\n type: \"map\"\n },\n ownedBy: {\n type: \"map\"\n },\n savedOn: {\n type: \"string\"\n },\n createdOn: {\n type: \"string\"\n },\n name: {\n type: \"string\"\n },\n slug: {\n type: \"string\"\n },\n version: {\n type: \"number\"\n },\n locked: {\n type: \"boolean\"\n },\n published: {\n type: \"boolean\"\n },\n publishedOn: {\n type: \"string\"\n },\n status: {\n type: \"string\"\n },\n fields: {\n type: \"list\"\n },\n layout: {\n type: \"list\"\n },\n stats: {\n type: \"map\"\n },\n settings: {\n type: \"map\"\n },\n triggers: {\n type: \"map\"\n },\n webinyVersion: {\n type: \"string\"\n },\n ...(attributes || {})\n }\n });\n};\n"],"file":"form.js"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/definitions/settings.ts"],"names":["createSettingsEntity","params","entityName","attributes","table","Entity","name","PK","partitionKey","SK","sortKey","TYPE","type","reCaptcha","domain","tenant","locale"],"mappings":";;;;;;;;;;;AAAA;;;;;;AASO,MAAMA,oBAAoB,GAAIC,MAAD,IAAiC;AACjE,QAAM;AAAEC,IAAAA,UAAF;AAAcC,IAAAA,UAAd;AAA0BC,IAAAA;AAA1B,MAAoCH,MAA1C;AACA,SAAO,IAAII,uBAAJ,CAAW;AACdC,IAAAA,IAAI,EAAEJ,UADQ;AAEdE,IAAAA,KAFc;AAGdD,IAAAA,UAAU;AACNI,MAAAA,EAAE,EAAE;AACAC,QAAAA,YAAY,EAAE;AADd,OADE;AAINC,MAAAA,EAAE,EAAE;AACAC,QAAAA,OAAO,EAAE;AADT,OAJE;AAONC,MAAAA,IAAI,EAAE;AACFC,QAAAA,IAAI,EAAE;AADJ,OAPA;AAUNC,MAAAA,SAAS,EAAE;AACPD,QAAAA,IAAI,EAAE;AADC,OAVL;AAaNE,MAAAA,MAAM,EAAE;AACJF,QAAAA,IAAI,EAAE;AADF,OAbF;AAgBNG,MAAAA,MAAM,EAAE;AACJH,QAAAA,IAAI,EAAE;AADF,OAhBF;AAmBNI,MAAAA,MAAM,EAAE;AACJJ,QAAAA,IAAI,EAAE;AADF;AAnBF,OAsBFT,UAAU,IAAI,EAtBZ;AAHI,GAAX,CAAP;AA4BH,CA9BM","sourcesContent":["import { Entity, Table } from \"dynamodb-toolbox\";\nimport { Attributes } from \"~/types\";\n\nexport interface Params {\n table: Table;\n entityName: string;\n attributes: Attributes;\n}\n\nexport const createSettingsEntity = (params: Params): Entity<any> => {\n const { entityName, attributes, table } = params;\n return new Entity({\n name: entityName,\n table,\n attributes: {\n PK: {\n partitionKey: true\n },\n SK: {\n sortKey: true\n },\n TYPE: {\n type: \"string\"\n },\n reCaptcha: {\n type: \"map\"\n },\n domain: {\n type: \"string\"\n },\n tenant: {\n type: \"string\"\n },\n locale: {\n type: \"string\"\n },\n ...(attributes || {})\n }\n });\n};\n"],"file":"settings.js"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/definitions/submission.ts"],"names":["createSubmissionEntity","params","table","entityName","attributes","Entity","name","PK","partitionKey","SK","sortKey","id","type","TYPE","data","meta","form","logs","createdOn","savedOn","ownedBy","tenant","locale","webinyVersion"],"mappings":";;;;;;;;;;;AAAA;;;;;;AASO,MAAMA,sBAAsB,GAAIC,MAAD,IAAiC;AACnE,QAAM;AAAEC,IAAAA,KAAF;AAASC,IAAAA,UAAT;AAAqBC,IAAAA;AAArB,MAAoCH,MAA1C;AACA,SAAO,IAAII,uBAAJ,CAAW;AACdH,IAAAA,KADc;AAEdI,IAAAA,IAAI,EAAEH,UAFQ;AAGdC,IAAAA,UAAU;AACNG,MAAAA,EAAE,EAAE;AACAC,QAAAA,YAAY,EAAE;AADd,OADE;AAINC,MAAAA,EAAE,EAAE;AACAC,QAAAA,OAAO,EAAE;AADT,OAJE;AAONC,MAAAA,EAAE,EAAE;AACAC,QAAAA,IAAI,EAAE;AADN,OAPE;AAUNC,MAAAA,IAAI,EAAE;AACFD,QAAAA,IAAI,EAAE;AADJ,OAVA;AAaNE,MAAAA,IAAI,EAAE;AACFF,QAAAA,IAAI,EAAE;AADJ,OAbA;AAgBNG,MAAAA,IAAI,EAAE;AACFH,QAAAA,IAAI,EAAE;AADJ,OAhBA;AAmBNI,MAAAA,IAAI,EAAE;AACFJ,QAAAA,IAAI,EAAE;AADJ,OAnBA;AAsBNK,MAAAA,IAAI,EAAE;AACFL,QAAAA,IAAI,EAAE;AADJ,OAtBA;AAyBNM,MAAAA,SAAS,EAAE;AACPN,QAAAA,IAAI,EAAE;AADC,OAzBL;AA4BNO,MAAAA,OAAO,EAAE;AACLP,QAAAA,IAAI,EAAE;AADD,OA5BH;AA+BNQ,MAAAA,OAAO,EAAE;AACLR,QAAAA,IAAI,EAAE;AADD,OA/BH;AAkCNS,MAAAA,MAAM,EAAE;AACJT,QAAAA,IAAI,EAAE;AADF,OAlCF;AAqCNU,MAAAA,MAAM,EAAE;AACJV,QAAAA,IAAI,EAAE;AADF,OArCF;AAwCNW,MAAAA,aAAa,EAAE;AACXX,QAAAA,IAAI,EAAE;AADK;AAxCT,OA2CFR,UAAU,IAAI,EA3CZ;AAHI,GAAX,CAAP;AAiDH,CAnDM","sourcesContent":["import { Entity, Table } from \"dynamodb-toolbox\";\nimport { Attributes } from \"~/types\";\n\nexport interface Params {\n table: Table;\n entityName: string;\n attributes: Attributes;\n}\n\nexport const createSubmissionEntity = (params: Params): Entity<any> => {\n const { table, entityName, attributes } = params;\n return new Entity({\n table,\n name: entityName,\n attributes: {\n PK: {\n partitionKey: true\n },\n SK: {\n sortKey: true\n },\n id: {\n type: \"string\"\n },\n TYPE: {\n type: \"string\"\n },\n data: {\n type: \"map\"\n },\n meta: {\n type: \"map\"\n },\n form: {\n type: \"map\"\n },\n logs: {\n type: \"list\"\n },\n createdOn: {\n type: \"string\"\n },\n savedOn: {\n type: \"string\"\n },\n ownedBy: {\n type: \"map\"\n },\n tenant: {\n type: \"string\"\n },\n locale: {\n type: \"string\"\n },\n webinyVersion: {\n type: \"string\"\n },\n ...(attributes || {})\n }\n });\n};\n"],"file":"submission.js"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/definitions/system.ts"],"names":["createSystemEntity","params","entityName","attributes","table","Entity","name","PK","partitionKey","SK","sortKey","version","type","tenant"],"mappings":";;;;;;;;;;;AAAA;;;;;;AASO,MAAMA,kBAAkB,GAAIC,MAAD,IAAiC;AAC/D,QAAM;AAAEC,IAAAA,UAAF;AAAcC,IAAAA,UAAd;AAA0BC,IAAAA;AAA1B,MAAoCH,MAA1C;AACA,SAAO,IAAII,uBAAJ,CAAW;AACdC,IAAAA,IAAI,EAAEJ,UADQ;AAEdE,IAAAA,KAFc;AAGdD,IAAAA,UAAU;AACNI,MAAAA,EAAE,EAAE;AACAC,QAAAA,YAAY,EAAE;AADd,OADE;AAINC,MAAAA,EAAE,EAAE;AACAC,QAAAA,OAAO,EAAE;AADT,OAJE;AAONC,MAAAA,OAAO,EAAE;AACLC,QAAAA,IAAI,EAAE;AADD,OAPH;AAUNC,MAAAA,MAAM,EAAE;AACJD,QAAAA,IAAI,EAAE;AADF;AAVF,OAaFT,UAAU,IAAI,EAbZ;AAHI,GAAX,CAAP;AAmBH,CArBM","sourcesContent":["import { Entity, Table } from \"dynamodb-toolbox\";\nimport { Attributes } from \"~/types\";\n\nexport interface Params {\n table: Table;\n entityName: string;\n attributes: Attributes;\n}\n\nexport const createSystemEntity = (params: Params): Entity<any> => {\n const { entityName, attributes, table } = params;\n return new Entity({\n name: entityName,\n table,\n attributes: {\n PK: {\n partitionKey: true\n },\n SK: {\n sortKey: true\n },\n version: {\n type: \"string\"\n },\n tenant: {\n type: \"string\"\n },\n ...(attributes || {})\n }\n });\n};\n"],"file":"system.js"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/definitions/table.ts"],"names":["createTable","params","tableName","documentClient","Table","name","process","env","DB_TABLE","partitionKey","sortKey","DocumentClient","indexes","GSI1"],"mappings":";;;;;;;AACA;;AAOO,MAAMA,WAAW,GAAIC,MAAD,IAA2B;AAClD,QAAM;AAAEC,IAAAA,SAAF;AAAaC,IAAAA;AAAb,MAAgCF,MAAtC;AAEA,SAAO,IAAIG,sBAAJ,CAAU;AACbC,IAAAA,IAAI,EAAEH,SAAS,IAAII,OAAO,CAACC,GAAR,CAAYC,QADlB;AAEbC,IAAAA,YAAY,EAAE,IAFD;AAGbC,IAAAA,OAAO,EAAE,IAHI;AAIbC,IAAAA,cAAc,EAAER,cAJH;AAKbS,IAAAA,OAAO,EAAE;AACLC,MAAAA,IAAI,EAAE;AACFJ,QAAAA,YAAY,EAAE,SADZ;AAEFC,QAAAA,OAAO,EAAE;AAFP;AADD;AALI,GAAV,CAAP;AAYH,CAfM","sourcesContent":["import { DocumentClient } from \"aws-sdk/clients/dynamodb\";\nimport { Table } from \"dynamodb-toolbox\";\n\nexport interface Params {\n tableName: string;\n documentClient: DocumentClient;\n}\n\nexport const createTable = (params: Params): Table => {\n const { tableName, documentClient } = params;\n\n return new Table({\n name: tableName || process.env.DB_TABLE,\n partitionKey: \"PK\",\n sortKey: \"SK\",\n DocumentClient: documentClient,\n indexes: {\n GSI1: {\n partitionKey: \"GSI1_PK\",\n sortKey: \"GSI1_SK\"\n }\n }\n });\n};\n"],"file":"table.js"}
package/index.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/index.ts"],"names":["reservedFields","isReserved","name","includes","WebinyError","createFormBuilderStorageOperations","params","attributes","table","tableName","documentClient","plugins","pluginsInput","Object","values","forEach","attrs","keys","PluginsContainer","entities","form","entityName","ENTITIES","FORM","submission","SUBMISSION","system","SYSTEM","settings","SETTINGS","upgrade","getTable","getEntities","entity"],"mappings":"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","sourcesContent":["import { FormBuilderStorageOperationsFactory, ENTITIES } from \"~/types\";\nimport { createTable } from \"~/definitions/table\";\nimport { createFormEntity } from \"~/definitions/form\";\nimport { createSubmissionEntity } from \"~/definitions/submission\";\nimport { createSystemEntity } from \"~/definitions/system\";\nimport { createSettingsEntity } from \"~/definitions/settings\";\nimport { createSystemStorageOperations } from \"~/operations/system\";\nimport { createSubmissionStorageOperations } from \"~/operations/submission\";\nimport { createSettingsStorageOperations } from \"~/operations/settings\";\nimport { createFormStorageOperations } from \"~/operations/form\";\nimport { PluginsContainer } from \"@webiny/plugins\";\nimport dynamoDbValueFilters from \"@webiny/db-dynamodb/plugins/filters\";\nimport formSubmissionFields from \"~/operations/submission/fields\";\nimport formFields from \"~/operations/form/fields\";\nimport WebinyError from \"@webiny/error\";\n\nconst reservedFields = [\"PK\", \"SK\", \"index\", \"data\", \"TYPE\", \"__type\", \"GSI1_PK\", \"GSI1_SK\"];\n\nconst isReserved = (name: string): void => {\n if (reservedFields.includes(name) === false) {\n return;\n }\n throw new WebinyError(`Attribute name \"${name}\" is not allowed.`, \"ATTRIBUTE_NOT_ALLOWED\", {\n name\n });\n};\n\nexport const createFormBuilderStorageOperations: FormBuilderStorageOperationsFactory = params => {\n const { attributes = {}, table: tableName, documentClient, plugins: pluginsInput } = params;\n\n if (attributes) {\n Object.values(attributes).forEach(attrs => {\n Object.keys(attrs).forEach(isReserved);\n });\n }\n\n const plugins = new PluginsContainer([\n /**\n * User defined plugins.\n */\n pluginsInput || [],\n /**\n * Form submission DynamoDB fields.\n */\n formSubmissionFields(),\n /**\n * Form DynamoDB fields.\n */\n formFields(),\n\n /**\n * DynamoDB filter plugins for the where conditions.\n */\n dynamoDbValueFilters()\n ]);\n\n const table = createTable({\n tableName,\n documentClient\n });\n\n const entities = {\n /**\n * Regular entities.\n */\n form: createFormEntity({\n entityName: ENTITIES.FORM,\n table,\n attributes: attributes[ENTITIES.FORM]\n }),\n submission: createSubmissionEntity({\n entityName: ENTITIES.SUBMISSION,\n table,\n attributes: attributes[ENTITIES.SUBMISSION]\n }),\n system: createSystemEntity({\n entityName: ENTITIES.SYSTEM,\n table,\n attributes: attributes[ENTITIES.SYSTEM]\n }),\n settings: createSettingsEntity({\n entityName: ENTITIES.SETTINGS,\n table,\n attributes: attributes[ENTITIES.SETTINGS]\n })\n };\n\n return {\n upgrade: null,\n getTable: () => table,\n getEntities: () => entities,\n ...createSystemStorageOperations({\n table,\n entity: entities.system\n }),\n ...createSettingsStorageOperations({\n table,\n entity: entities.settings\n }),\n ...createFormStorageOperations({\n table,\n entity: entities.form,\n plugins\n }),\n ...createSubmissionStorageOperations({\n table,\n entity: entities.submission,\n plugins\n })\n };\n};\n"],"file":"index.js"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/operations/form/fields.ts"],"names":["FormDynamoDbFieldPlugin","field","type","path"],"mappings":";;;;;;;AAAA;;eAEe,MAAM,CACjB,IAAIA,gDAAJ,CAA4B;AACxBC,EAAAA,KAAK,EAAE,aADiB;AAExBC,EAAAA,IAAI,EAAE;AAFkB,CAA5B,CADiB,EAKjB,IAAIF,gDAAJ,CAA4B;AACxBC,EAAAA,KAAK,EAAE,WADiB;AAExBC,EAAAA,IAAI,EAAE;AAFkB,CAA5B,CALiB,EASjB,IAAIF,gDAAJ,CAA4B;AACxBC,EAAAA,KAAK,EAAE,SADiB;AAExBC,EAAAA,IAAI,EAAE;AAFkB,CAA5B,CATiB,EAajB,IAAIF,gDAAJ,CAA4B;AACxBC,EAAAA,KAAK,EAAE;AADiB,CAA5B,CAbiB,EAgBjB,IAAID,gDAAJ,CAA4B;AACxBC,EAAAA,KAAK,EAAE;AADiB,CAA5B,CAhBiB,EAmBjB,IAAID,gDAAJ,CAA4B;AACxBC,EAAAA,KAAK,EAAE;AADiB,CAA5B,CAnBiB,EAsBjB,IAAID,gDAAJ,CAA4B;AACxBC,EAAAA,KAAK,EAAE;AADiB,CAA5B,CAtBiB,EAyBjB,IAAID,gDAAJ,CAA4B;AACxBC,EAAAA,KAAK,EAAE,WADiB;AAExBC,EAAAA,IAAI,EAAE;AAFkB,CAA5B,CAzBiB,EA6BjB,IAAIF,gDAAJ,CAA4B;AACxBC,EAAAA,KAAK,EAAE;AADiB,CAA5B,CA7BiB,EAgCjB,IAAID,gDAAJ,CAA4B;AACxBC,EAAAA,KAAK,EAAE,SADiB;AAExBC,EAAAA,IAAI,EAAE;AAFkB,CAA5B,CAhCiB,EAoCjB,IAAIF,gDAAJ,CAA4B;AACxBC,EAAAA,KAAK,EAAE,SADiB;AAExBE,EAAAA,IAAI,EAAE;AAFkB,CAA5B,CApCiB,EAwCjB,IAAIH,gDAAJ,CAA4B;AACxBC,EAAAA,KAAK,EAAE,WADiB;AAExBE,EAAAA,IAAI,EAAE;AAFkB,CAA5B,CAxCiB,C","sourcesContent":["import { FormDynamoDbFieldPlugin } from \"~/plugins/FormDynamoDbFieldPlugin\";\n\nexport default () => [\n new FormDynamoDbFieldPlugin({\n field: \"publishedOn\",\n type: \"date\"\n }),\n new FormDynamoDbFieldPlugin({\n field: \"createdOn\",\n type: \"date\"\n }),\n new FormDynamoDbFieldPlugin({\n field: \"savedOn\",\n type: \"date\"\n }),\n new FormDynamoDbFieldPlugin({\n field: \"name\"\n }),\n new FormDynamoDbFieldPlugin({\n field: \"slug\"\n }),\n new FormDynamoDbFieldPlugin({\n field: \"locale\"\n }),\n new FormDynamoDbFieldPlugin({\n field: \"tenant\"\n }),\n new FormDynamoDbFieldPlugin({\n field: \"published\",\n type: \"boolean\"\n }),\n new FormDynamoDbFieldPlugin({\n field: \"status\"\n }),\n new FormDynamoDbFieldPlugin({\n field: \"version\",\n type: \"number\"\n }),\n new FormDynamoDbFieldPlugin({\n field: \"ownedBy\",\n path: \"ownedBy.id\"\n }),\n new FormDynamoDbFieldPlugin({\n field: \"createdBy\",\n path: \"createdBy.id\"\n })\n];\n"],"file":"fields.js"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/operations/form/index.ts"],"names":["createFormStorageOperations","params","entity","table","plugins","formDynamoDbFields","byType","FormDynamoDbFieldPlugin","type","createFormPartitionKey","tenant","locale","createFormLatestPartitionKey","createFormLatestPublishedPartitionKey","createFormGSIPartitionKey","id","targetId","createRevisionSortKey","createFormLatestSortKey","formId","value","createLatestPublishedSortKey","createGSISortKey","version","createFormType","createFormLatestType","createFormLatestPublishedType","createRevisionKeys","form","PK","SK","createLatestKeys","createLatestPublishedKeys","createGSIKeys","GSI1_PK","GSI1_SK","createForm","revisionKeys","latestKeys","gsiKeys","items","putBatch","TYPE","ex","WebinyError","message","code","createFormFrom","original","latest","updateForm","latestForm","getForm","where","isLatestForm","push","published","partitionKey","sortKey","keys","item","listForms","sort","limit","initialWhere","after","queryAllParams","options","gte","results","totalCount","length","filteredItems","fields","sortedItems","start","hasMoreItems","end","undefined","slice","cursor","meta","listFormRevisions","index","deleteForm","hasLatestPublishedRecord","deleteItems","map","deleteBatch","deleteFormRevision","revisions","previous","latestPublishedForm","find","rev","isLatest","isLatestPublished","previouslyPublishedForm","filter","f","publishedOn","a","b","Date","getTime","shift","publishForm","latestPublishedKeys","unpublishForm","version_not","publishedOn_not","previouslyPublishedRevision"],"mappings":"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","sourcesContent":["import WebinyError from \"@webiny/error\";\nimport {\n FbForm,\n FormBuilderStorageOperationsCreateFormFromParams,\n FormBuilderStorageOperationsCreateFormParams,\n FormBuilderStorageOperationsDeleteFormParams,\n FormBuilderStorageOperationsDeleteFormRevisionParams,\n FormBuilderStorageOperationsGetFormParams,\n FormBuilderStorageOperationsListFormRevisionsParams,\n FormBuilderStorageOperationsListFormsParams,\n FormBuilderStorageOperationsListFormsResponse,\n FormBuilderStorageOperationsPublishFormParams,\n FormBuilderStorageOperationsUnpublishFormParams,\n FormBuilderStorageOperationsUpdateFormParams\n} from \"@webiny/api-form-builder/types\";\nimport { Entity, Table } from \"dynamodb-toolbox\";\nimport { queryAll, QueryAllParams } from \"@webiny/db-dynamodb/utils/query\";\nimport { cleanupItem } from \"@webiny/db-dynamodb/utils/cleanup\";\nimport { batchWriteAll } from \"@webiny/db-dynamodb/utils/batchWrite\";\nimport { filterItems } from \"@webiny/db-dynamodb/utils/filter\";\nimport { sortItems } from \"@webiny/db-dynamodb/utils/sort\";\nimport { createIdentifier, parseIdentifier } from \"@webiny/utils\";\nimport { PluginsContainer } from \"@webiny/plugins\";\nimport {\n FormBuilderFormCreateGSIPartitionKeyParams,\n FormBuilderFormCreatePartitionKeyParams,\n FormBuilderFormStorageOperations\n} from \"~/types\";\nimport { FormDynamoDbFieldPlugin } from \"~/plugins/FormDynamoDbFieldPlugin\";\nimport { decodeCursor, encodeCursor } from \"@webiny/db-dynamodb/utils/cursor\";\nimport { get } from \"@webiny/db-dynamodb/utils/get\";\n\ntype DbRecord<T = any> = T & {\n PK: string;\n SK: string;\n TYPE: string;\n};\n\ninterface Keys {\n PK: string;\n SK: string;\n}\n\ninterface FormLatestSortKeyParams {\n id?: string;\n formId?: string;\n}\n\ninterface GsiKeys {\n GSI1_PK: string;\n GSI1_SK: string;\n}\n\nexport interface Params {\n entity: Entity<any>;\n table: Table;\n plugins: PluginsContainer;\n}\n\nexport const createFormStorageOperations = (params: Params): FormBuilderFormStorageOperations => {\n const { entity, table, plugins } = params;\n\n const formDynamoDbFields = plugins.byType<FormDynamoDbFieldPlugin>(\n FormDynamoDbFieldPlugin.type\n );\n\n const createFormPartitionKey = (params: FormBuilderFormCreatePartitionKeyParams): string => {\n const { tenant, locale } = params;\n\n return `T#${tenant}#L#${locale}#FB#F`;\n };\n\n const createFormLatestPartitionKey = (\n params: FormBuilderFormCreatePartitionKeyParams\n ): string => {\n return `${createFormPartitionKey(params)}#L`;\n };\n\n const createFormLatestPublishedPartitionKey = (\n params: FormBuilderFormCreatePartitionKeyParams\n ): string => {\n return `${createFormPartitionKey(params)}#LP`;\n };\n\n const createFormGSIPartitionKey = (\n params: FormBuilderFormCreateGSIPartitionKeyParams\n ): string => {\n const { tenant, locale, id: targetId } = params;\n const { id } = parseIdentifier(targetId);\n\n return `T#${tenant}#L#${locale}#FB#F#${id}`;\n };\n\n const createRevisionSortKey = ({ id }: { id: string }): string => {\n return `${id}`;\n };\n\n const createFormLatestSortKey = ({ id, formId }: FormLatestSortKeyParams): string => {\n const value = parseIdentifier(id || formId);\n return value.id;\n };\n\n const createLatestPublishedSortKey = ({ id, formId }: FormLatestSortKeyParams): string => {\n const value = parseIdentifier(id || formId);\n return value.id;\n };\n\n const createGSISortKey = (version: number) => {\n return `${version}`;\n };\n\n const createFormType = (): string => {\n return \"fb.form\";\n };\n\n const createFormLatestType = (): string => {\n return \"fb.form.latest\";\n };\n\n const createFormLatestPublishedType = (): string => {\n return \"fb.form.latestPublished\";\n };\n\n const createRevisionKeys = (form: FbForm): Keys => {\n return {\n PK: createFormPartitionKey(form),\n SK: createRevisionSortKey(form)\n };\n };\n\n const createLatestKeys = (form: FbForm): Keys => {\n return {\n PK: createFormLatestPartitionKey(form),\n SK: createFormLatestSortKey(form)\n };\n };\n\n const createLatestPublishedKeys = (form: FbForm): Keys => {\n return {\n PK: createFormLatestPublishedPartitionKey(form),\n SK: createLatestPublishedSortKey(form)\n };\n };\n\n const createGSIKeys = (form: FbForm): GsiKeys => {\n return {\n GSI1_PK: createFormGSIPartitionKey(form),\n GSI1_SK: createGSISortKey(form.version)\n };\n };\n\n const createForm = async (\n params: FormBuilderStorageOperationsCreateFormParams\n ): Promise<FbForm> => {\n const { form } = params;\n\n const revisionKeys = createRevisionKeys(form);\n const latestKeys = createLatestKeys(form);\n const gsiKeys = createGSIKeys(form);\n\n const items = [\n entity.putBatch({\n ...form,\n ...revisionKeys,\n ...gsiKeys,\n TYPE: createFormType()\n }),\n entity.putBatch({\n ...form,\n ...latestKeys,\n TYPE: createFormLatestType()\n })\n ];\n\n try {\n await batchWriteAll({\n table,\n items\n });\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not insert form data into table.\",\n ex.code || \"CREATE_FORM_ERROR\",\n {\n revisionKeys,\n latestKeys,\n form\n }\n );\n }\n return form;\n };\n\n const createFormFrom = async (\n params: FormBuilderStorageOperationsCreateFormFromParams\n ): Promise<FbForm> => {\n const { form, original, latest } = params;\n\n const revisionKeys = createRevisionKeys(form);\n const latestKeys = createLatestKeys(form);\n const gsiKeys = createGSIKeys(form);\n\n const items = [\n entity.putBatch({\n ...form,\n ...revisionKeys,\n ...gsiKeys,\n TYPE: createFormType()\n }),\n entity.putBatch({\n ...form,\n ...latestKeys,\n TYPE: createFormLatestType()\n })\n ];\n\n try {\n await batchWriteAll({\n table,\n items\n });\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not create form data in the table, from existing form.\",\n ex.code || \"CREATE_FORM_FROM_ERROR\",\n {\n revisionKeys,\n latestKeys,\n original,\n form,\n latest\n }\n );\n }\n\n return form;\n };\n\n const updateForm = async (\n params: FormBuilderStorageOperationsUpdateFormParams\n ): Promise<FbForm> => {\n const { form, original } = params;\n\n const revisionKeys = createRevisionKeys(form);\n const latestKeys = createLatestKeys(form);\n const gsiKeys = createGSIKeys(form);\n\n const { formId, tenant, locale } = form;\n\n const latestForm = await getForm({\n where: {\n formId,\n tenant,\n locale,\n latest: true\n }\n });\n const isLatestForm = latestForm ? latestForm.id === form.id : false;\n\n const items = [\n entity.putBatch({\n ...form,\n ...revisionKeys,\n ...gsiKeys,\n TYPE: createFormType()\n })\n ];\n if (isLatestForm) {\n items.push(\n entity.putBatch({\n ...form,\n ...latestKeys,\n TYPE: createFormLatestType()\n })\n );\n }\n try {\n await batchWriteAll({\n table,\n items\n });\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not update form data in the table.\",\n ex.code || \"UPDATE_FORM_ERROR\",\n {\n revisionKeys,\n latestKeys,\n original,\n form,\n latestForm\n }\n );\n }\n\n return form;\n };\n\n const getForm = async (params: FormBuilderStorageOperationsGetFormParams): Promise<FbForm> => {\n const { where } = params;\n const { id, formId, latest, published, version } = where;\n if (latest && published) {\n throw new WebinyError(\"Cannot have both latest and published params.\");\n }\n let partitionKey: string;\n let sortKey: string;\n if (latest) {\n partitionKey = createFormLatestPartitionKey(where);\n sortKey = createFormLatestSortKey(where);\n } else if (published && !version) {\n /**\n * Because of the specifics how DynamoDB works, we must not load the published record if version is sent.\n */\n partitionKey = createFormLatestPublishedPartitionKey(where);\n sortKey = createLatestPublishedSortKey(where);\n } else if (id || version) {\n partitionKey = createFormPartitionKey(where);\n sortKey = createRevisionSortKey({\n id:\n id ||\n createIdentifier({\n id: formId,\n version\n })\n });\n } else {\n throw new WebinyError(\n \"Missing parameter to create a sort key.\",\n \"MISSING_WHERE_PARAMETER\",\n {\n where\n }\n );\n }\n\n const keys = {\n PK: partitionKey,\n SK: sortKey\n };\n\n try {\n const item = await get<FbForm>({ entity, keys });\n return cleanupItem(entity, item);\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not get form by keys.\",\n ex.code || \"GET_FORM_ERROR\",\n {\n keys\n }\n );\n }\n };\n\n const listForms = async (\n params: FormBuilderStorageOperationsListFormsParams\n ): Promise<FormBuilderStorageOperationsListFormsResponse> => {\n const { sort, limit, where: initialWhere, after } = params;\n\n const queryAllParams: QueryAllParams = {\n entity,\n partitionKey: createFormLatestPartitionKey(initialWhere),\n options: {\n gte: \" \"\n }\n };\n\n let results;\n try {\n results = await queryAll<FbForm>(queryAllParams);\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could list forms.\",\n ex.code || \"LIST_FORMS_ERROR\",\n {\n where: initialWhere,\n partitionKey: queryAllParams.partitionKey\n }\n );\n }\n const totalCount = results.length;\n\n const where = {\n ...initialWhere\n };\n /**\n * We need to remove conditions so we do not filter by them again.\n */\n delete where.tenant;\n delete where.locale;\n\n const filteredItems = filterItems({\n plugins,\n items: results,\n where,\n fields: formDynamoDbFields\n });\n\n const sortedItems = sortItems({\n items: filteredItems,\n sort,\n fields: formDynamoDbFields\n });\n\n const start = decodeCursor(after) || 0;\n const hasMoreItems = totalCount > start + limit;\n const end = limit > totalCount + start + limit ? undefined : start + limit;\n const items = sortedItems.slice(start, end);\n /**\n * Although we do not need a cursor here, we will use it as such to keep it standardized.\n * Number is simply encoded.\n */\n const cursor = items.length > 0 ? encodeCursor(start + limit) : null;\n\n const meta = {\n hasMoreItems,\n totalCount,\n cursor\n };\n\n return {\n items,\n meta\n };\n };\n\n const listFormRevisions = async (\n params: FormBuilderStorageOperationsListFormRevisionsParams\n ): Promise<FbForm[]> => {\n const { where: initialWhere, sort } = params;\n const { id, formId, tenant, locale } = initialWhere;\n\n const queryAllParams: QueryAllParams = {\n entity,\n partitionKey: createFormGSIPartitionKey({\n tenant,\n locale,\n id: formId || id\n }),\n options: {\n index: \"GSI1\",\n gte: \" \"\n }\n };\n\n let items: FbForm[] = [];\n try {\n items = await queryAll<FbForm>(queryAllParams);\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not query forms by given params.\",\n ex.code || \"QUERY_FORMS_ERROR\",\n {\n partitionKey: queryAllParams.partitionKey,\n options: queryAllParams.options\n }\n );\n }\n const where = {\n ...initialWhere\n };\n /**\n * We need to remove conditions so we do not filter by them again.\n */\n delete where.id;\n delete where.formId;\n delete where.tenant;\n delete where.locale;\n\n const filteredItems = filterItems({\n plugins,\n items,\n where,\n fields: formDynamoDbFields\n });\n return sortItems({\n items: filteredItems,\n sort,\n fields: formDynamoDbFields\n });\n };\n\n const deleteForm = async (\n params: FormBuilderStorageOperationsDeleteFormParams\n ): Promise<FbForm> => {\n const { form } = params;\n let items: any[];\n /**\n * This will find all form and submission records.\n */\n const queryAllParams = {\n entity,\n partitionKey: createFormPartitionKey(form),\n options: {\n gte: \" \"\n }\n };\n try {\n items = await queryAll<DbRecord>(queryAllParams);\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not query forms and submissions by given params.\",\n ex.code || \"QUERY_FORM_AND_SUBMISSIONS_ERROR\",\n {\n partitionKey: queryAllParams.partitionKey,\n options: queryAllParams.options\n }\n );\n }\n\n let hasLatestPublishedRecord = false;\n\n const deleteItems = items.map(item => {\n if (!hasLatestPublishedRecord && item.published) {\n hasLatestPublishedRecord = true;\n }\n return entity.deleteBatch({\n PK: item.PK,\n SK: item.SK\n });\n });\n if (hasLatestPublishedRecord) {\n deleteItems.push(entity.deleteBatch(createLatestPublishedKeys(items[0])));\n }\n\n deleteItems.push(entity.deleteBatch(createLatestKeys(items[0])));\n\n try {\n await batchWriteAll({\n table,\n items: deleteItems\n });\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not delete form and it's submissions.\",\n ex.code || \"DELETE_FORM_AND_SUBMISSIONS_ERROR\"\n );\n }\n return form;\n };\n /**\n * We need to:\n * - delete current revision\n * - get previously published revision and update the record if it exists or delete if it does not\n * - update latest record if current one is the latest\n */\n const deleteFormRevision = async (\n params: FormBuilderStorageOperationsDeleteFormRevisionParams\n ): Promise<FbForm> => {\n const { form, revisions, previous } = params;\n\n const revisionKeys = createRevisionKeys(form);\n const latestKeys = createLatestKeys(form);\n\n const latestForm = revisions[0];\n const latestPublishedForm = revisions.find(rev => rev.published === true);\n\n const isLatest = latestForm ? latestForm.id === form.id : false;\n const isLatestPublished = latestPublishedForm ? latestPublishedForm.id === form.id : false;\n\n const items = [entity.deleteBatch(revisionKeys)];\n\n if (isLatest || isLatestPublished) {\n /**\n * Sort out the latest published record.\n */\n if (isLatestPublished) {\n const previouslyPublishedForm = revisions\n .filter(f => !!f.publishedOn && f.version !== form.version)\n .sort((a, b) => {\n return (\n new Date(b.publishedOn).getTime() - new Date(a.publishedOn).getTime()\n );\n })\n .shift();\n if (previouslyPublishedForm) {\n items.push(\n entity.putBatch({\n ...previouslyPublishedForm,\n ...createLatestPublishedKeys(previouslyPublishedForm),\n GSI1_PK: null,\n GSI1_SK: null,\n TYPE: createFormLatestPublishedType()\n })\n );\n } else {\n items.push(\n entity.deleteBatch(createLatestPublishedKeys(previouslyPublishedForm))\n );\n }\n }\n /**\n * Sort out the latest record.\n */\n if (isLatest) {\n items.push(\n entity.putBatch({\n ...previous,\n ...latestKeys,\n GSI1_PK: null,\n GSI1_SK: null,\n TYPE: createFormLatestType()\n })\n );\n }\n }\n /**\n * Now save the batch data.\n */\n try {\n await batchWriteAll({\n table,\n items\n });\n return form;\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not delete form revision from table.\",\n ex.code || \"DELETE_FORM_REVISION_ERROR\",\n {\n form,\n latestForm,\n revisionKeys,\n latestKeys\n }\n );\n }\n };\n\n /**\n * We need to save form in:\n * - regular form record\n * - latest published form record\n * - latest form record - if form is latest one\n * - elasticsearch latest form record\n */\n const publishForm = async (\n params: FormBuilderStorageOperationsPublishFormParams\n ): Promise<FbForm> => {\n const { form, original } = params;\n\n const revisionKeys = createRevisionKeys(form);\n\n const latestKeys = createLatestKeys(form);\n\n const latestPublishedKeys = createLatestPublishedKeys(form);\n\n const gsiKeys = {\n GSI1_PK: createFormGSIPartitionKey(form),\n GSI1_SK: createGSISortKey(form.version)\n };\n\n const { locale, tenant, formId } = form;\n\n const latestForm = await getForm({\n where: {\n formId,\n tenant,\n locale,\n latest: true\n }\n });\n\n const isLatestForm = latestForm ? latestForm.id === form.id : false;\n /**\n * Update revision and latest published records\n */\n const items = [\n entity.putBatch({\n ...form,\n ...revisionKeys,\n ...gsiKeys,\n TYPE: createFormType()\n }),\n entity.putBatch({\n ...form,\n ...latestPublishedKeys,\n TYPE: createFormLatestPublishedType()\n })\n ];\n /**\n * Update the latest form as well\n */\n if (isLatestForm) {\n items.push(\n entity.putBatch({\n ...form,\n ...latestKeys,\n TYPE: createFormLatestType()\n })\n );\n }\n\n try {\n await batchWriteAll({\n table,\n items\n });\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not publish form.\",\n ex.code || \"PUBLISH_FORM_ERROR\",\n {\n form,\n original,\n latestForm,\n revisionKeys,\n latestKeys,\n latestPublishedKeys\n }\n );\n }\n return form;\n };\n\n /**\n * We need to:\n * - update form revision record\n * - if latest published (LP) is current form, find the previously published record and update LP if there is some previously published, delete otherwise\n * - if is latest update the Elasticsearch record\n */\n const unpublishForm = async (\n params: FormBuilderStorageOperationsUnpublishFormParams\n ): Promise<FbForm> => {\n const { form, original } = params;\n\n const revisionKeys = createRevisionKeys(form);\n const latestKeys = createLatestKeys(form);\n const latestPublishedKeys = createLatestPublishedKeys(form);\n const gsiKeys = createGSIKeys(form);\n\n const { formId, tenant, locale } = form;\n\n const latestForm = await getForm({\n where: {\n formId,\n tenant,\n locale,\n latest: true\n }\n });\n\n const latestPublishedForm = await getForm({\n where: {\n formId,\n tenant,\n locale,\n published: true\n }\n });\n\n const isLatest = latestForm ? latestForm.id === form.id : false;\n const isLatestPublished = latestPublishedForm ? latestPublishedForm.id === form.id : false;\n\n const items = [\n entity.putBatch({\n ...form,\n ...revisionKeys,\n ...gsiKeys,\n TYPE: createFormType()\n })\n ];\n\n if (isLatest) {\n entity.putBatch({\n ...form,\n ...latestKeys,\n TYPE: createFormLatestType()\n });\n }\n /**\n * In case previously published revision exists, replace current one with that one.\n * And if it does not, delete the record.\n */\n if (isLatestPublished) {\n const revisions = await listFormRevisions({\n where: {\n formId,\n tenant,\n locale,\n version_not: form.version,\n publishedOn_not: null\n },\n sort: [\"savedOn_DESC\"]\n });\n\n const previouslyPublishedRevision = revisions.shift();\n if (previouslyPublishedRevision) {\n items.push(\n entity.putBatch({\n ...previouslyPublishedRevision,\n ...latestPublishedKeys,\n TYPE: createFormLatestPublishedType()\n })\n );\n } else {\n items.push(entity.deleteBatch(latestPublishedKeys));\n }\n }\n\n try {\n await batchWriteAll({\n table,\n items\n });\n return form;\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not unpublish form.\",\n ex.code || \"UNPUBLISH_FORM_ERROR\",\n {\n form,\n original,\n latestForm,\n revisionKeys,\n latestKeys,\n latestPublishedKeys\n }\n );\n }\n };\n\n return {\n createForm,\n createFormFrom,\n updateForm,\n listForms,\n listFormRevisions,\n getForm,\n deleteForm,\n deleteFormRevision,\n publishForm,\n unpublishForm,\n createFormPartitionKey\n };\n};\n"],"file":"index.js"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/operations/settings/index.ts"],"names":["createSettingsStorageOperations","params","entity","createSettingsPartitionKey","tenant","locale","createSettingsSortKey","createKeys","PK","SK","createSettings","settings","keys","put","ex","WebinyError","message","code","getSettings","item","updateSettings","original","deleteSettings","delete"],"mappings":"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","sourcesContent":["import {\n FormBuilderStorageOperationsCreateSettingsParams,\n FormBuilderStorageOperationsDeleteSettingsParams,\n FormBuilderStorageOperationsGetSettingsParams,\n FormBuilderStorageOperationsUpdateSettingsParams,\n Settings\n} from \"@webiny/api-form-builder/types\";\nimport { Entity, Table } from \"dynamodb-toolbox\";\nimport {\n FormBuilderSettingsStorageOperations,\n FormBuilderSettingsStorageOperationsCreatePartitionKeyParams\n} from \"~/types\";\nimport WebinyError from \"@webiny/error\";\nimport { cleanupItem } from \"@webiny/db-dynamodb/utils/cleanup\";\nimport { get } from \"@webiny/db-dynamodb/utils/get\";\n\nexport interface Params {\n entity: Entity<any>;\n table: Table;\n}\n\nexport const createSettingsStorageOperations = (\n params: Params\n): FormBuilderSettingsStorageOperations => {\n const { entity } = params;\n\n const createSettingsPartitionKey = ({\n tenant,\n locale\n }: FormBuilderSettingsStorageOperationsCreatePartitionKeyParams): string => {\n return `T#${tenant}#L#${locale}#FB#SETTINGS`;\n };\n\n const createSettingsSortKey = (): string => {\n return \"default\";\n };\n\n const createKeys = (params: FormBuilderSettingsStorageOperationsCreatePartitionKeyParams) => {\n return {\n PK: createSettingsPartitionKey(params),\n SK: createSettingsSortKey()\n };\n };\n\n const createSettings = async (\n params: FormBuilderStorageOperationsCreateSettingsParams\n ): Promise<Settings> => {\n const { settings } = params;\n const keys = createKeys(settings);\n\n try {\n await entity.put({\n ...settings,\n ...keys\n });\n return settings;\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not create the settings record by given keys.\",\n ex.code || \"CREATE_SETTINGS_ERROR\",\n {\n keys,\n settings\n }\n );\n }\n };\n\n const getSettings = async (\n params: FormBuilderStorageOperationsGetSettingsParams\n ): Promise<Settings> => {\n const keys = createKeys(params);\n\n try {\n const item = await get<Settings>({ entity, keys });\n return cleanupItem(entity, item);\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not get the settings record by given keys.\",\n ex.code || \"LOAD_SETTINGS_ERROR\",\n {\n keys\n }\n );\n }\n };\n\n const updateSettings = async (\n params: FormBuilderStorageOperationsUpdateSettingsParams\n ): Promise<Settings> => {\n const { settings, original } = params;\n const keys = createKeys(settings);\n\n try {\n await entity.put({\n ...settings,\n ...keys\n });\n return settings;\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not update the settings record by given keys.\",\n ex.code || \"UPDATE_SETTINGS_ERROR\",\n {\n keys,\n original,\n settings\n }\n );\n }\n };\n\n const deleteSettings = async (\n params: FormBuilderStorageOperationsDeleteSettingsParams\n ): Promise<void> => {\n const { settings } = params;\n const keys = createKeys(settings);\n try {\n await entity.delete();\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not delete the settings record by given keys.\",\n ex.code || \"DELETE_SETTINGS_ERROR\",\n {\n keys\n }\n );\n }\n };\n\n return {\n createSettings,\n getSettings,\n updateSettings,\n deleteSettings,\n createSettingsPartitionKey,\n createSettingsSortKey\n };\n};\n"],"file":"index.js"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/operations/submission/fields.ts"],"names":["FormSubmissionDynamoDbFieldPlugin","field","type"],"mappings":";;;;;;;AAAA;;eAEe,MAAM,CACjB,IAAIA,oEAAJ,CAAsC;AAClCC,EAAAA,KAAK,EAAE,WAD2B;AAElCC,EAAAA,IAAI,EAAE;AAF4B,CAAtC,CADiB,EAKjB,IAAIF,oEAAJ,CAAsC;AAClCC,EAAAA,KAAK,EAAE,SAD2B;AAElCC,EAAAA,IAAI,EAAE;AAF4B,CAAtC,CALiB,C","sourcesContent":["import { FormSubmissionDynamoDbFieldPlugin } from \"~/plugins/FormSubmissionDynamoDbFieldPlugin\";\n\nexport default () => [\n new FormSubmissionDynamoDbFieldPlugin({\n field: \"createdOn\",\n type: \"date\"\n }),\n new FormSubmissionDynamoDbFieldPlugin({\n field: \"savedOn\",\n type: \"date\"\n })\n];\n"],"file":"fields.js"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/operations/submission/index.ts"],"names":["createSubmissionStorageOperations","params","entity","plugins","createSubmissionPartitionKey","tenant","locale","formId","id","createSubmissionSortKey","createSubmissionType","createSubmission","submission","form","keys","PK","SK","put","TYPE","ex","WebinyError","message","code","updateSubmission","original","deleteSubmission","delete","listSubmissions","where","initialWhere","sort","limit","after","queryAllParams","partitionKey","options","gte","reverse","results","fields","byType","FormSubmissionDynamoDbFieldPlugin","type","filteredSubmissions","items","sortedSubmissions","totalCount","length","start","hasMoreItems","end","undefined","slice","cursor","meta","getSubmission","item"],"mappings":"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","sourcesContent":["import {\n FbSubmission,\n FormBuilderStorageOperationsCreateSubmissionParams,\n FormBuilderStorageOperationsDeleteSubmissionParams,\n FormBuilderStorageOperationsGetSubmissionParams,\n FormBuilderStorageOperationsListSubmissionsParams,\n FormBuilderStorageOperationsListSubmissionsResponse,\n FormBuilderStorageOperationsUpdateSubmissionParams\n} from \"@webiny/api-form-builder/types\";\nimport { Entity, Table } from \"dynamodb-toolbox\";\nimport WebinyError from \"@webiny/error\";\nimport { PluginsContainer } from \"@webiny/plugins\";\nimport {\n FormBuilderSubmissionStorageOperations,\n FormBuilderSubmissionStorageOperationsCreatePartitionKeyParams\n} from \"~/types\";\nimport { cleanupItem } from \"@webiny/db-dynamodb/utils/cleanup\";\nimport { parseIdentifier } from \"@webiny/utils\";\nimport { queryAll, QueryAllParams } from \"@webiny/db-dynamodb/utils/query\";\nimport { decodeCursor, encodeCursor } from \"@webiny/db-dynamodb/utils/cursor\";\nimport { sortItems } from \"@webiny/db-dynamodb/utils/sort\";\nimport { filterItems } from \"@webiny/db-dynamodb/utils/filter\";\nimport { FormSubmissionDynamoDbFieldPlugin } from \"~/plugins/FormSubmissionDynamoDbFieldPlugin\";\nimport { get } from \"@webiny/db-dynamodb/utils/get\";\n\nexport interface Params {\n entity: Entity<any>;\n table: Table;\n plugins: PluginsContainer;\n}\n\nexport const createSubmissionStorageOperations = (\n params: Params\n): FormBuilderSubmissionStorageOperations => {\n const { entity, plugins } = params;\n\n const createSubmissionPartitionKey = (\n params: FormBuilderSubmissionStorageOperationsCreatePartitionKeyParams\n ) => {\n const { tenant, locale, formId } = params;\n\n const { id } = parseIdentifier(formId);\n\n return `T#${tenant}#L#${locale}#FB#FS#${id}`;\n };\n const createSubmissionSortKey = (id: string) => {\n return id;\n };\n\n const createSubmissionType = () => {\n return \"fb.formSubmission\";\n };\n\n const createSubmission = async (\n params: FormBuilderStorageOperationsCreateSubmissionParams\n ): Promise<FbSubmission> => {\n const { submission, form } = params;\n const keys = {\n PK: createSubmissionPartitionKey(form),\n SK: createSubmissionSortKey(submission.id)\n };\n\n try {\n await entity.put({\n ...submission,\n ...keys,\n TYPE: createSubmissionType()\n });\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not create form submission in the DynamoDB.\",\n ex.code || \"UPDATE_FORM_SUBMISSION_ERROR\",\n {\n submission,\n form,\n keys\n }\n );\n }\n\n return submission;\n };\n\n const updateSubmission = async (\n params: FormBuilderStorageOperationsUpdateSubmissionParams\n ): Promise<FbSubmission> => {\n const { submission, form, original } = params;\n const keys = {\n PK: createSubmissionPartitionKey(form),\n SK: createSubmissionSortKey(submission.id)\n };\n\n try {\n await entity.put({\n ...submission,\n ...keys,\n TYPE: createSubmissionType()\n });\n return submission;\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not update form submission in the DynamoDB.\",\n ex.code || \"UPDATE_FORM_SUBMISSION_ERROR\",\n {\n submission,\n original,\n form,\n keys\n }\n );\n }\n };\n\n const deleteSubmission = async (\n params: FormBuilderStorageOperationsDeleteSubmissionParams\n ): Promise<FbSubmission> => {\n const { submission, form } = params;\n\n const keys = {\n PK: createSubmissionPartitionKey(form),\n SK: createSubmissionSortKey(submission.id)\n };\n\n try {\n await entity.delete(keys);\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not delete form submission from DynamoDB.\",\n ex.code || \"DELETE_FORM_SUBMISSION_ERROR\",\n {\n submission,\n form,\n keys\n }\n );\n }\n\n return submission;\n };\n\n const listSubmissions = async (\n params: FormBuilderStorageOperationsListSubmissionsParams\n ): Promise<FormBuilderStorageOperationsListSubmissionsResponse> => {\n const { where: initialWhere, sort, limit = 100000, after } = params;\n\n const where = {\n ...initialWhere\n };\n const { tenant, locale, formId } = where;\n /**\n * We need to remove conditions so we do not filter by them again.\n */\n delete where.tenant;\n delete where.locale;\n delete where.formId;\n\n const queryAllParams: QueryAllParams = {\n entity,\n partitionKey: createSubmissionPartitionKey({\n tenant,\n locale,\n formId\n }),\n options: {\n gte: \" \",\n reverse: true\n }\n };\n\n let results;\n try {\n results = await queryAll<FbSubmission>(queryAllParams);\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could list form submissions.\",\n ex.code || \"LIST_SUBMISSIONS_ERROR\",\n {\n where: initialWhere,\n partitionKey: queryAllParams.partitionKey\n }\n );\n }\n\n const fields = plugins.byType<FormSubmissionDynamoDbFieldPlugin>(\n FormSubmissionDynamoDbFieldPlugin.type\n );\n\n const filteredSubmissions = filterItems({\n plugins,\n items: results,\n where,\n fields\n });\n\n const sortedSubmissions = sortItems({\n items: filteredSubmissions,\n sort,\n fields\n });\n\n const totalCount = sortedSubmissions.length;\n const start = decodeCursor(after) || 0;\n const hasMoreItems = totalCount > start + limit;\n const end = limit > totalCount + start + limit ? undefined : start + limit;\n const items = sortedSubmissions.slice(start, end);\n /**\n * Although we do not need a cursor here, we will use it as such to keep it standardized.\n * Number is simply encoded.\n */\n const cursor = items.length > 0 ? encodeCursor(start + limit) : null;\n\n const meta = {\n hasMoreItems,\n totalCount,\n cursor\n };\n\n return {\n items,\n meta\n };\n };\n\n const getSubmission = async (\n params: FormBuilderStorageOperationsGetSubmissionParams\n ): Promise<FbSubmission> => {\n const { where } = params;\n\n const keys = {\n PK: createSubmissionPartitionKey(where),\n SK: createSubmissionSortKey(where.id)\n };\n\n try {\n const item = await get<FbSubmission>({ entity, keys });\n return cleanupItem(entity, item);\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not oad submission.\",\n ex.code || \"GET_SUBMISSION_ERROR\",\n {\n where,\n keys\n }\n );\n }\n };\n\n return {\n createSubmission,\n deleteSubmission,\n updateSubmission,\n listSubmissions,\n getSubmission,\n createSubmissionPartitionKey,\n createSubmissionSortKey\n };\n};\n"],"file":"index.js"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/operations/system/index.ts"],"names":["createSystemStorageOperations","params","entity","createSystemPartitionKey","tenant","createSystemSortKey","createKeys","PK","SK","createSystem","system","keys","put","ex","WebinyError","message","code","getSystem","item","updateSystem","original"],"mappings":";;;;;;;;;;;AAQA;;AACA;;AACA;;;;;;AAOO,MAAMA,6BAA6B,GACtCC,MADyC,IAEJ;AACrC,QAAM;AAAEC,IAAAA;AAAF,MAAaD,MAAnB;;AAEA,QAAME,wBAAwB,GAAG,CAAC;AAAEC,IAAAA;AAAF,GAAD,KAA2D;AACxF,WAAQ,KAAIA,MAAO,SAAnB;AACH,GAFD;;AAIA,QAAMC,mBAAmB,GAAG,MAAc;AACtC,WAAO,IAAP;AACH,GAFD;;AAIA,QAAMC,UAAU,GAAIL,MAAD,IAA+C;AAC9D,WAAO;AACHM,MAAAA,EAAE,EAAEJ,wBAAwB,CAACF,MAAD,CADzB;AAEHO,MAAAA,EAAE,EAAEH,mBAAmB;AAFpB,KAAP;AAIH,GALD;;AAOA,QAAMI,YAAY,GAAG,MACjBR,MADiB,IAEC;AAClB,UAAM;AAAES,MAAAA;AAAF,QAAaT,MAAnB;AACA,UAAMU,IAAI,GAAGL,UAAU,CAACI,MAAD,CAAvB;;AAEA,QAAI;AACA,YAAMR,MAAM,CAACU,GAAP,iCACCF,MADD,GAECC,IAFD,EAAN;AAIA,aAAOD,MAAP;AACH,KAND,CAME,OAAOG,EAAP,EAAW;AACT,YAAM,IAAIC,cAAJ,CACFD,EAAE,CAACE,OAAH,IAAc,mDADZ,EAEFF,EAAE,CAACG,IAAH,IAAW,qBAFT,EAGF;AACIL,QAAAA,IADJ;AAEID,QAAAA;AAFJ,OAHE,CAAN;AAQH;AACJ,GAtBD;;AAwBA,QAAMO,SAAS,GAAG,MACdhB,MADc,IAEI;AAClB,UAAMU,IAAI,GAAGL,UAAU,CAACL,MAAD,CAAvB;;AAEA,QAAI;AACA,YAAMiB,IAAI,GAAG,MAAM,cAAY;AAAEhB,QAAAA,MAAF;AAAUS,QAAAA;AAAV,OAAZ,CAAnB;AACA,aAAO,0BAAYT,MAAZ,EAAoBgB,IAApB,CAAP;AACH,KAHD,CAGE,OAAOL,EAAP,EAAW;AACT,YAAM,IAAIC,cAAJ,CACFD,EAAE,CAACE,OAAH,IAAc,gDADZ,EAEFF,EAAE,CAACG,IAAH,IAAW,mBAFT,EAGF;AACIL,QAAAA;AADJ,OAHE,CAAN;AAOH;AACJ,GAjBD;;AAmBA,QAAMQ,YAAY,GAAG,MACjBlB,MADiB,IAEC;AAClB,UAAM;AAAES,MAAAA,MAAF;AAAUU,MAAAA;AAAV,QAAuBnB,MAA7B;AACA,UAAMU,IAAI,GAAGL,UAAU,CAACI,MAAD,CAAvB;;AAEA,QAAI;AACA,YAAMR,MAAM,CAACU,GAAP,iCACCF,MADD,GAECC,IAFD,EAAN;AAIA,aAAOD,MAAP;AACH,KAND,CAME,OAAOG,EAAP,EAAW;AACT,YAAM,IAAIC,cAAJ,CACFD,EAAE,CAACE,OAAH,IAAc,mDADZ,EAEFF,EAAE,CAACG,IAAH,IAAW,qBAFT,EAGF;AACIL,QAAAA,IADJ;AAEIS,QAAAA,QAFJ;AAGIV,QAAAA;AAHJ,OAHE,CAAN;AASH;AACJ,GAvBD;;AAyBA,SAAO;AACHD,IAAAA,YADG;AAEHQ,IAAAA,SAFG;AAGHE,IAAAA,YAHG;AAIHhB,IAAAA,wBAJG;AAKHE,IAAAA;AALG,GAAP;AAOH,CA/FM","sourcesContent":["import {\n FormBuilderStorageOperationsCreateSystemParams,\n FormBuilderStorageOperationsGetSystemParams,\n FormBuilderStorageOperationsUpdateSystemParams,\n System\n} from \"@webiny/api-form-builder/types\";\nimport { Entity, Table } from \"dynamodb-toolbox\";\nimport { FormBuilderSystemCreateKeysParams, FormBuilderSystemStorageOperations } from \"~/types\";\nimport { cleanupItem } from \"@webiny/db-dynamodb/utils/cleanup\";\nimport WebinyError from \"@webiny/error\";\nimport { get } from \"@webiny/db-dynamodb/utils/get\";\n\nexport interface Params {\n entity: Entity<any>;\n table: Table;\n}\n\nexport const createSystemStorageOperations = (\n params: Params\n): FormBuilderSystemStorageOperations => {\n const { entity } = params;\n\n const createSystemPartitionKey = ({ tenant }: FormBuilderSystemCreateKeysParams): string => {\n return `T#${tenant}#SYSTEM`;\n };\n\n const createSystemSortKey = (): string => {\n return \"FB\";\n };\n\n const createKeys = (params: FormBuilderSystemCreateKeysParams) => {\n return {\n PK: createSystemPartitionKey(params),\n SK: createSystemSortKey()\n };\n };\n\n const createSystem = async (\n params: FormBuilderStorageOperationsCreateSystemParams\n ): Promise<System> => {\n const { system } = params;\n const keys = createKeys(system);\n\n try {\n await entity.put({\n ...system,\n ...keys\n });\n return system;\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not create the system record by given keys.\",\n ex.code || \"CREATE_SYSTEM_ERROR\",\n {\n keys,\n system\n }\n );\n }\n };\n\n const getSystem = async (\n params: FormBuilderStorageOperationsGetSystemParams\n ): Promise<System> => {\n const keys = createKeys(params);\n\n try {\n const item = await get<System>({ entity, keys });\n return cleanupItem(entity, item);\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not get the system record by given keys.\",\n ex.code || \"LOAD_SYSTEM_ERROR\",\n {\n keys\n }\n );\n }\n };\n\n const updateSystem = async (\n params: FormBuilderStorageOperationsUpdateSystemParams\n ): Promise<System> => {\n const { system, original } = params;\n const keys = createKeys(system);\n\n try {\n await entity.put({\n ...system,\n ...keys\n });\n return system;\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not update the system record by given keys.\",\n ex.code || \"UPDATE_SYSTEM_ERROR\",\n {\n keys,\n original,\n system\n }\n );\n }\n };\n\n return {\n createSystem,\n getSystem,\n updateSystem,\n createSystemPartitionKey,\n createSystemSortKey\n };\n};\n"],"file":"index.js"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/plugins/FormDynamoDbFieldPlugin.ts"],"names":["FormDynamoDbFieldPlugin","FieldPlugin"],"mappings":";;;;;;;;;;;AAAA;;AAEO,MAAMA,uBAAN,SAAsCC,wBAAtC,CAAkD;;;8BAA5CD,uB,UAC6B,iC","sourcesContent":["import { FieldPlugin } from \"@webiny/db-dynamodb/plugins/definitions/FieldPlugin\";\n\nexport class FormDynamoDbFieldPlugin extends FieldPlugin {\n public static readonly type: string = \"formBuilder.dynamodb.field.form\";\n}\n"],"file":"FormDynamoDbFieldPlugin.js"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/plugins/FormSubmissionDynamoDbFieldPlugin.ts"],"names":["FormSubmissionDynamoDbFieldPlugin","FieldPlugin"],"mappings":";;;;;;;;;;;AAAA;;AAEO,MAAMA,iCAAN,SAAgDC,wBAAhD,CAA4D;;;8BAAtDD,iC,UAC6B,2C","sourcesContent":["import { FieldPlugin } from \"@webiny/db-dynamodb/plugins/definitions/FieldPlugin\";\n\nexport class FormSubmissionDynamoDbFieldPlugin extends FieldPlugin {\n public static readonly type: string = \"formBuilder.dynamodb.field.formSubmission\";\n}\n"],"file":"FormSubmissionDynamoDbFieldPlugin.js"}
package/types.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/types.ts"],"names":["ENTITIES"],"mappings":";;;;;;IAoBYA,Q;;;WAAAA,Q;AAAAA,EAAAA,Q;AAAAA,EAAAA,Q;AAAAA,EAAAA,Q;AAAAA,EAAAA,Q;GAAAA,Q,wBAAAA,Q","sourcesContent":["import {\n FormBuilderStorageOperations as BaseFormBuilderStorageOperations,\n FormBuilderSystemStorageOperations as BaseFormBuilderSystemStorageOperations,\n FormBuilderSubmissionStorageOperations as BaseFormBuilderSubmissionStorageOperations,\n FormBuilderSettingsStorageOperations as BaseFormBuilderSettingsStorageOperations,\n FormBuilderFormStorageOperations as BaseFormBuilderFormStorageOperations\n} from \"@webiny/api-form-builder/types\";\nimport { DocumentClient } from \"aws-sdk/clients/dynamodb\";\nimport { Table, Entity } from \"dynamodb-toolbox\";\nimport { DynamoDBTypes } from \"dynamodb-toolbox/dist/classes/Table\";\nimport {\n EntityAttributeConfig,\n EntityCompositeAttributes\n} from \"dynamodb-toolbox/dist/classes/Entity\";\nimport { Plugin } from \"@webiny/plugins\";\n\nexport type AttributeDefinition = DynamoDBTypes | EntityAttributeConfig | EntityCompositeAttributes;\n\nexport type Attributes = Record<string, AttributeDefinition>;\n\nexport enum ENTITIES {\n FORM = \"FormBuilderForm\",\n SUBMISSION = \"FormBuilderSubmission\",\n SYSTEM = \"FormBuilderSystem\",\n SETTINGS = \"FormBuilderSettings\"\n}\n\nexport interface FormBuilderStorageOperationsFactoryParams {\n documentClient: DocumentClient;\n table?: string;\n attributes?: Record<ENTITIES, Attributes>;\n plugins?: Plugin;\n}\n\nexport interface FormBuilderSystemCreateKeysParams {\n tenant: string;\n}\n\nexport interface FormBuilderSystemStorageOperations extends BaseFormBuilderSystemStorageOperations {\n createSystemPartitionKey: (params: FormBuilderSystemCreateKeysParams) => string;\n createSystemSortKey: () => string;\n}\n\nexport interface FormBuilderFormCreatePartitionKeyParams {\n tenant: string;\n locale: string;\n}\n\nexport interface FormBuilderFormCreateGSIPartitionKeyParams {\n id?: string;\n formId?: string;\n tenant: string;\n locale: string;\n}\n\nexport interface FormBuilderFormStorageOperations extends BaseFormBuilderFormStorageOperations {\n createFormPartitionKey: (params: FormBuilderFormCreatePartitionKeyParams) => string;\n}\n\nexport interface FormBuilderSubmissionStorageOperationsCreatePartitionKeyParams {\n tenant: string;\n locale: string;\n formId: string;\n}\n\nexport interface FormBuilderSubmissionStorageOperations\n extends BaseFormBuilderSubmissionStorageOperations {\n createSubmissionPartitionKey: (\n params: FormBuilderSubmissionStorageOperationsCreatePartitionKeyParams\n ) => string;\n createSubmissionSortKey: (id: string) => string;\n}\n\nexport interface FormBuilderSettingsStorageOperationsCreatePartitionKeyParams {\n tenant: string;\n locale: string;\n}\n\nexport interface FormBuilderSettingsStorageOperations\n extends BaseFormBuilderSettingsStorageOperations {\n createSettingsPartitionKey: (\n params: FormBuilderSettingsStorageOperationsCreatePartitionKeyParams\n ) => string;\n createSettingsSortKey: () => string;\n}\n\nexport type Entities = \"form\" | \"submission\" | \"system\" | \"settings\";\n\nexport interface FormBuilderStorageOperations\n extends BaseFormBuilderStorageOperations,\n FormBuilderSettingsStorageOperations,\n FormBuilderSubmissionStorageOperations,\n FormBuilderFormStorageOperations,\n FormBuilderSystemStorageOperations {\n getTable(): Table;\n getEntities(): Record<Entities, Entity<any>>;\n}\n\nexport interface FormBuilderStorageOperationsFactory {\n (params: FormBuilderStorageOperationsFactoryParams): FormBuilderStorageOperations;\n}\n"],"file":"types.js"}