@webiny/api-form-builder-so-ddb-es 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.
Files changed (62) hide show
  1. package/configurations.js +1 -2
  2. package/definitions/elasticsearch.js +1 -2
  3. package/definitions/form.js +1 -2
  4. package/definitions/settings.js +1 -2
  5. package/definitions/submission.js +1 -2
  6. package/definitions/system.js +1 -2
  7. package/definitions/table.js +1 -2
  8. package/definitions/tableElasticsearch.js +1 -2
  9. package/index.js +1 -2
  10. package/operations/form/elasticsearchBody.js +1 -2
  11. package/operations/form/elasticsearchFields.js +1 -2
  12. package/operations/form/fields.js +1 -2
  13. package/operations/form/index.js +1 -2
  14. package/operations/settings/index.js +1 -2
  15. package/operations/submission/elasticsearchBody.js +1 -2
  16. package/operations/submission/elasticsearchFields.js +1 -2
  17. package/operations/submission/index.js +1 -2
  18. package/operations/system/createElasticsearchIndex.js +1 -2
  19. package/operations/system/index.js +1 -2
  20. package/package.json +17 -17
  21. package/plugins/FormDynamoDbFieldPlugin.js +1 -2
  22. package/plugins/FormElasticsearchBodyModifierPlugin.js +1 -2
  23. package/plugins/FormElasticsearchFieldPlugin.js +1 -2
  24. package/plugins/FormElasticsearchQueryModifierPlugin.js +1 -2
  25. package/plugins/FormElasticsearchSortModifierPlugin.js +1 -2
  26. package/plugins/SubmissionElasticsearchBodyModifierPlugin.js +1 -2
  27. package/plugins/SubmissionElasticsearchFieldPlugin.js +1 -2
  28. package/plugins/SubmissionElasticsearchQueryModifierPlugin.js +1 -2
  29. package/plugins/SubmissionElasticsearchSortModifierPlugin.js +1 -2
  30. package/types.d.ts +1 -1
  31. package/types.js +1 -2
  32. package/upgrades/5.16.0/index.js +1 -2
  33. package/configurations.js.map +0 -1
  34. package/definitions/elasticsearch.js.map +0 -1
  35. package/definitions/form.js.map +0 -1
  36. package/definitions/settings.js.map +0 -1
  37. package/definitions/submission.js.map +0 -1
  38. package/definitions/system.js.map +0 -1
  39. package/definitions/table.js.map +0 -1
  40. package/definitions/tableElasticsearch.js.map +0 -1
  41. package/index.js.map +0 -1
  42. package/operations/form/elasticsearchBody.js.map +0 -1
  43. package/operations/form/elasticsearchFields.js.map +0 -1
  44. package/operations/form/fields.js.map +0 -1
  45. package/operations/form/index.js.map +0 -1
  46. package/operations/settings/index.js.map +0 -1
  47. package/operations/submission/elasticsearchBody.js.map +0 -1
  48. package/operations/submission/elasticsearchFields.js.map +0 -1
  49. package/operations/submission/index.js.map +0 -1
  50. package/operations/system/createElasticsearchIndex.js.map +0 -1
  51. package/operations/system/index.js.map +0 -1
  52. package/plugins/FormDynamoDbFieldPlugin.js.map +0 -1
  53. package/plugins/FormElasticsearchBodyModifierPlugin.js.map +0 -1
  54. package/plugins/FormElasticsearchFieldPlugin.js.map +0 -1
  55. package/plugins/FormElasticsearchQueryModifierPlugin.js.map +0 -1
  56. package/plugins/FormElasticsearchSortModifierPlugin.js.map +0 -1
  57. package/plugins/SubmissionElasticsearchBodyModifierPlugin.js.map +0 -1
  58. package/plugins/SubmissionElasticsearchFieldPlugin.js.map +0 -1
  59. package/plugins/SubmissionElasticsearchQueryModifierPlugin.js.map +0 -1
  60. package/plugins/SubmissionElasticsearchSortModifierPlugin.js.map +0 -1
  61. package/types.js.map +0 -1
  62. package/upgrades/5.16.0/index.js.map +0 -1
package/configurations.js CHANGED
@@ -25,5 +25,4 @@ var _default = {
25
25
  }
26
26
 
27
27
  };
28
- exports.default = _default;
29
- //# sourceMappingURL=configurations.js.map
28
+ exports.default = _default;
@@ -44,5 +44,4 @@ const createElasticsearchEntity = params => {
44
44
  });
45
45
  };
46
46
 
47
- exports.createElasticsearchEntity = createElasticsearchEntity;
48
- //# sourceMappingURL=elasticsearch.js.map
47
+ exports.createElasticsearchEntity = createElasticsearchEntity;
@@ -101,5 +101,4 @@ const createFormEntity = params => {
101
101
  });
102
102
  };
103
103
 
104
- exports.createFormEntity = createFormEntity;
105
- //# sourceMappingURL=form.js.map
104
+ 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;
@@ -20,5 +20,4 @@ const createTable = params => {
20
20
  });
21
21
  };
22
22
 
23
- exports.createTable = createTable;
24
- //# sourceMappingURL=table.js.map
23
+ exports.createTable = createTable;
@@ -20,5 +20,4 @@ const createElasticsearchTable = params => {
20
20
  });
21
21
  };
22
22
 
23
- exports.createElasticsearchTable = createElasticsearchTable;
24
- //# sourceMappingURL=tableElasticsearch.js.map
23
+ exports.createElasticsearchTable = createElasticsearchTable;
package/index.js CHANGED
@@ -185,5 +185,4 @@ const createFormBuilderStorageOperations = params => {
185
185
  }));
186
186
  };
187
187
 
188
- exports.createFormBuilderStorageOperations = createFormBuilderStorageOperations;
189
- //# sourceMappingURL=index.js.map
188
+ exports.createFormBuilderStorageOperations = createFormBuilderStorageOperations;
@@ -184,5 +184,4 @@ const createElasticsearchBody = params => {
184
184
  return body;
185
185
  };
186
186
 
187
- exports.createElasticsearchBody = createElasticsearchBody;
188
- //# sourceMappingURL=elasticsearchBody.js.map
187
+ exports.createElasticsearchBody = createElasticsearchBody;
@@ -30,5 +30,4 @@ new _FormElasticsearchFieldPlugin.FormElasticsearchFieldPlugin({
30
30
  field: _FormElasticsearchFieldPlugin.FormElasticsearchFieldPlugin.ALL
31
31
  })];
32
32
 
33
- exports.default = _default;
34
- //# sourceMappingURL=elasticsearchFields.js.map
33
+ exports.default = _default;
@@ -12,5 +12,4 @@ var _default = () => [new _FormDynamoDbFieldPlugin.FormDynamoDbFieldPlugin({
12
12
  type: "date"
13
13
  })];
14
14
 
15
- exports.default = _default;
16
- //# sourceMappingURL=fields.js.map
15
+ exports.default = _default;
@@ -900,5 +900,4 @@ const createFormStorageOperations = params => {
900
900
  };
901
901
  };
902
902
 
903
- exports.createFormStorageOperations = createFormStorageOperations;
904
- //# sourceMappingURL=index.js.map
903
+ 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;
@@ -194,5 +194,4 @@ const createElasticsearchBody = params => {
194
194
  return body;
195
195
  };
196
196
 
197
- exports.createElasticsearchBody = createElasticsearchBody;
198
- //# sourceMappingURL=elasticsearchBody.js.map
197
+ exports.createElasticsearchBody = createElasticsearchBody;
@@ -27,5 +27,4 @@ new _SubmissionElasticsearchFieldPlugin.SubmissionElasticsearchFieldPlugin({
27
27
  field: _SubmissionElasticsearchFieldPlugin.SubmissionElasticsearchFieldPlugin.ALL
28
28
  })];
29
29
 
30
- exports.default = _default;
31
- //# sourceMappingURL=elasticsearchFields.js.map
30
+ exports.default = _default;
@@ -337,5 +337,4 @@ const createSubmissionStorageOperations = params => {
337
337
  };
338
338
  };
339
339
 
340
- exports.createSubmissionStorageOperations = createSubmissionStorageOperations;
341
- //# sourceMappingURL=index.js.map
340
+ exports.createSubmissionStorageOperations = createSubmissionStorageOperations;
@@ -67,5 +67,4 @@ const createElasticsearchIndex = async params => {
67
67
  }));
68
68
  };
69
69
 
70
- exports.createElasticsearchIndex = createElasticsearchIndex;
71
- //# sourceMappingURL=createElasticsearchIndex.js.map
70
+ exports.createElasticsearchIndex = createElasticsearchIndex;
@@ -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-es",
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",
@@ -23,17 +23,17 @@
23
23
  "dependencies": {
24
24
  "@babel/runtime": "7.16.3",
25
25
  "@elastic/elasticsearch": "7.12.0",
26
- "@webiny/api-elasticsearch": "5.17.4",
27
- "@webiny/api-form-builder": "5.17.4",
28
- "@webiny/api-i18n": "5.17.4",
29
- "@webiny/api-tenancy": "5.17.4",
30
- "@webiny/api-upgrade": "5.17.4",
31
- "@webiny/db-dynamodb": "5.17.4",
32
- "@webiny/error": "5.17.4",
33
- "@webiny/handler": "5.17.4",
34
- "@webiny/handler-aws": "5.17.4",
35
- "@webiny/plugins": "5.17.4",
36
- "@webiny/utils": "5.17.4",
26
+ "@webiny/api-elasticsearch": "5.18.0-beta.3",
27
+ "@webiny/api-form-builder": "5.18.0-beta.3",
28
+ "@webiny/api-i18n": "5.18.0-beta.3",
29
+ "@webiny/api-tenancy": "5.18.0-beta.3",
30
+ "@webiny/api-upgrade": "5.18.0-beta.3",
31
+ "@webiny/db-dynamodb": "5.18.0-beta.3",
32
+ "@webiny/error": "5.18.0-beta.3",
33
+ "@webiny/handler": "5.18.0-beta.3",
34
+ "@webiny/handler-aws": "5.18.0-beta.3",
35
+ "@webiny/plugins": "5.18.0-beta.3",
36
+ "@webiny/utils": "5.18.0-beta.3",
37
37
  "dynamodb-toolbox": "0.3.5",
38
38
  "elastic-ts": "0.7.0"
39
39
  },
@@ -43,10 +43,10 @@
43
43
  "@babel/preset-env": "^7.5.5",
44
44
  "@babel/preset-typescript": "^7.8.3",
45
45
  "@shelf/jest-elasticsearch": "^1.0.0",
46
- "@webiny/api-dynamodb-to-elasticsearch": "^5.17.4",
47
- "@webiny/cli": "^5.17.4",
48
- "@webiny/handler-db": "^5.17.4",
49
- "@webiny/project-utils": "^5.17.4",
46
+ "@webiny/api-dynamodb-to-elasticsearch": "^5.18.0-beta.3",
47
+ "@webiny/cli": "^5.18.0-beta.3",
48
+ "@webiny/handler-db": "^5.18.0-beta.3",
49
+ "@webiny/project-utils": "^5.18.0-beta.3",
50
50
  "csvtojson": "^2.0.10",
51
51
  "jest": "^26.6.3",
52
52
  "jest-dynalite": "^3.2.0",
@@ -63,5 +63,5 @@
63
63
  "build": "yarn webiny run build",
64
64
  "watch": "yarn webiny run watch"
65
65
  },
66
- "gitHead": "bdfaa377704bf7f51d73561b4c6129f682bf24d2"
66
+ "gitHead": "9c86670476a62348ce391b091bf768e425ab6ee9"
67
67
  }
@@ -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 _ElasticsearchBodyModifierPlugin = require("@webiny/api-elasticsearch/plugin
14
14
  class FormElasticsearchBodyModifierPlugin extends _ElasticsearchBodyModifierPlugin.ElasticsearchBodyModifierPlugin {}
15
15
 
16
16
  exports.FormElasticsearchBodyModifierPlugin = FormElasticsearchBodyModifierPlugin;
17
- (0, _defineProperty2.default)(FormElasticsearchBodyModifierPlugin, "type", "formBuilder.elasticsearch.modifier.body.form");
18
- //# sourceMappingURL=FormElasticsearchBodyModifierPlugin.js.map
17
+ (0, _defineProperty2.default)(FormElasticsearchBodyModifierPlugin, "type", "formBuilder.elasticsearch.modifier.body.form");
@@ -14,5 +14,4 @@ var _ElasticsearchFieldPlugin = require("@webiny/api-elasticsearch/plugins/defin
14
14
  class FormElasticsearchFieldPlugin extends _ElasticsearchFieldPlugin.ElasticsearchFieldPlugin {}
15
15
 
16
16
  exports.FormElasticsearchFieldPlugin = FormElasticsearchFieldPlugin;
17
- (0, _defineProperty2.default)(FormElasticsearchFieldPlugin, "type", "formBuilder.elasticsearch.fieldDefinition.form");
18
- //# sourceMappingURL=FormElasticsearchFieldPlugin.js.map
17
+ (0, _defineProperty2.default)(FormElasticsearchFieldPlugin, "type", "formBuilder.elasticsearch.fieldDefinition.form");
@@ -14,5 +14,4 @@ var _ElasticsearchQueryModifierPlugin = require("@webiny/api-elasticsearch/plugi
14
14
  class FormElasticsearchQueryModifierPlugin extends _ElasticsearchQueryModifierPlugin.ElasticsearchQueryModifierPlugin {}
15
15
 
16
16
  exports.FormElasticsearchQueryModifierPlugin = FormElasticsearchQueryModifierPlugin;
17
- (0, _defineProperty2.default)(FormElasticsearchQueryModifierPlugin, "type", "formBuilder.elasticsearch.modifier.query.form");
18
- //# sourceMappingURL=FormElasticsearchQueryModifierPlugin.js.map
17
+ (0, _defineProperty2.default)(FormElasticsearchQueryModifierPlugin, "type", "formBuilder.elasticsearch.modifier.query.form");
@@ -14,5 +14,4 @@ var _ElasticsearchSortModifierPlugin = require("@webiny/api-elasticsearch/plugin
14
14
  class FormElasticsearchSortModifierPlugin extends _ElasticsearchSortModifierPlugin.ElasticsearchSortModifierPlugin {}
15
15
 
16
16
  exports.FormElasticsearchSortModifierPlugin = FormElasticsearchSortModifierPlugin;
17
- (0, _defineProperty2.default)(FormElasticsearchSortModifierPlugin, "type", "formBuilder.elasticsearch.modifier.sort.form");
18
- //# sourceMappingURL=FormElasticsearchSortModifierPlugin.js.map
17
+ (0, _defineProperty2.default)(FormElasticsearchSortModifierPlugin, "type", "formBuilder.elasticsearch.modifier.sort.form");
@@ -14,5 +14,4 @@ var _ElasticsearchBodyModifierPlugin = require("@webiny/api-elasticsearch/plugin
14
14
  class SubmissionElasticsearchBodyModifierPlugin extends _ElasticsearchBodyModifierPlugin.ElasticsearchBodyModifierPlugin {}
15
15
 
16
16
  exports.SubmissionElasticsearchBodyModifierPlugin = SubmissionElasticsearchBodyModifierPlugin;
17
- (0, _defineProperty2.default)(SubmissionElasticsearchBodyModifierPlugin, "type", "formBuilder.elasticsearch.modifier.body.submission");
18
- //# sourceMappingURL=SubmissionElasticsearchBodyModifierPlugin.js.map
17
+ (0, _defineProperty2.default)(SubmissionElasticsearchBodyModifierPlugin, "type", "formBuilder.elasticsearch.modifier.body.submission");
@@ -14,5 +14,4 @@ var _ElasticsearchFieldPlugin = require("@webiny/api-elasticsearch/plugins/defin
14
14
  class SubmissionElasticsearchFieldPlugin extends _ElasticsearchFieldPlugin.ElasticsearchFieldPlugin {}
15
15
 
16
16
  exports.SubmissionElasticsearchFieldPlugin = SubmissionElasticsearchFieldPlugin;
17
- (0, _defineProperty2.default)(SubmissionElasticsearchFieldPlugin, "type", "formBuilder.elasticsearch.fieldDefinition.submission");
18
- //# sourceMappingURL=SubmissionElasticsearchFieldPlugin.js.map
17
+ (0, _defineProperty2.default)(SubmissionElasticsearchFieldPlugin, "type", "formBuilder.elasticsearch.fieldDefinition.submission");
@@ -14,5 +14,4 @@ var _ElasticsearchQueryModifierPlugin = require("@webiny/api-elasticsearch/plugi
14
14
  class SubmissionElasticsearchQueryModifierPlugin extends _ElasticsearchQueryModifierPlugin.ElasticsearchQueryModifierPlugin {}
15
15
 
16
16
  exports.SubmissionElasticsearchQueryModifierPlugin = SubmissionElasticsearchQueryModifierPlugin;
17
- (0, _defineProperty2.default)(SubmissionElasticsearchQueryModifierPlugin, "type", "formBuilder.elasticsearch.modifier.query.submission");
18
- //# sourceMappingURL=SubmissionElasticsearchQueryModifierPlugin.js.map
17
+ (0, _defineProperty2.default)(SubmissionElasticsearchQueryModifierPlugin, "type", "formBuilder.elasticsearch.modifier.query.submission");
@@ -14,5 +14,4 @@ var _ElasticsearchSortModifierPlugin = require("@webiny/api-elasticsearch/plugin
14
14
  class SubmissionElasticsearchSortModifierPlugin extends _ElasticsearchSortModifierPlugin.ElasticsearchSortModifierPlugin {}
15
15
 
16
16
  exports.SubmissionElasticsearchSortModifierPlugin = SubmissionElasticsearchSortModifierPlugin;
17
- (0, _defineProperty2.default)(SubmissionElasticsearchSortModifierPlugin, "type", "formBuilder.elasticsearch.modifier.sort.submission");
18
- //# sourceMappingURL=SubmissionElasticsearchSortModifierPlugin.js.map
17
+ (0, _defineProperty2.default)(SubmissionElasticsearchSortModifierPlugin, "type", "formBuilder.elasticsearch.modifier.sort.submission");
package/types.d.ts CHANGED
@@ -21,7 +21,7 @@ export interface FormBuilderStorageOperationsFactoryParams {
21
21
  table?: string;
22
22
  esTable?: string;
23
23
  attributes?: Record<ENTITIES, Attributes>;
24
- plugins?: Plugin;
24
+ plugins?: Plugin[];
25
25
  }
26
26
  export interface FormBuilderSystemCreateKeysParams {
27
27
  tenant: string;
package/types.js CHANGED
@@ -14,5 +14,4 @@ exports.ENTITIES = ENTITIES;
14
14
  ENTITIES["ES_SUBMISSION"] = "FormBuilderSubmissionEs";
15
15
  ENTITIES["SYSTEM"] = "FormBuilderSystem";
16
16
  ENTITIES["SETTINGS"] = "FormBuilderSettings";
17
- })(ENTITIES || (exports.ENTITIES = ENTITIES = {}));
18
- //# sourceMappingURL=types.js.map
17
+ })(ENTITIES || (exports.ENTITIES = ENTITIES = {}));
@@ -138,5 +138,4 @@ var _default = () => {
138
138
  };
139
139
  };
140
140
 
141
- exports.default = _default;
142
- //# sourceMappingURL=index.js.map
141
+ exports.default = _default;
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/configurations.ts"],"names":["es","params","tenant","sharedIndex","process","env","ELASTICSEARCH_SHARED_INDEXES","index","prefix","ELASTIC_SEARCH_INDEX_PREFIX"],"mappings":";;;;;;eAIe;AACXA,EAAAA,EAAE,CAACC,MAAD,EAAoC;AAClC,UAAM;AAAEC,MAAAA;AAAF,QAAaD,MAAnB;AAEA,UAAME,WAAW,GAAGC,OAAO,CAACC,GAAR,CAAYC,4BAAZ,KAA6C,MAAjE;AACA,UAAMC,KAAK,GAAI,GAAEJ,WAAW,GAAG,MAAH,GAAYD,MAAO,eAA/C;AAEA,UAAMM,MAAM,GAAGJ,OAAO,CAACC,GAAR,CAAYI,2BAA3B;;AACA,QAAID,MAAJ,EAAY;AACR,aAAO;AAAED,QAAAA,KAAK,EAAEC,MAAM,GAAGD;AAAlB,OAAP;AACH;;AACD,WAAO;AAAEA,MAAAA;AAAF,KAAP;AACH;;AAZU,C","sourcesContent":["export interface ElasticsearchConfigParams {\n tenant: string;\n}\n\nexport default {\n es(params: ElasticsearchConfigParams) {\n const { tenant } = params;\n\n const sharedIndex = process.env.ELASTICSEARCH_SHARED_INDEXES === \"true\";\n const index = `${sharedIndex ? \"root\" : tenant}-form-builder`;\n\n const prefix = process.env.ELASTIC_SEARCH_INDEX_PREFIX;\n if (prefix) {\n return { index: prefix + index };\n }\n return { index };\n }\n};\n"],"file":"configurations.js"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/definitions/elasticsearch.ts"],"names":["createElasticsearchEntity","params","table","entityName","attributes","Entity","name","PK","partitionKey","SK","sortKey","index","type","data","TYPE"],"mappings":";;;;;;;;;;;AAAA;;;;;;AASO,MAAMA,yBAAyB,GAAIC,MAAD,IAAoB;AACzD,QAAM;AAAEC,IAAAA,KAAF;AAASC,IAAAA,UAAT;AAAqBC,IAAAA;AAArB,MAAoCH,MAA1C;AACA,SAAO,IAAII,uBAAJ,CAAW;AACdC,IAAAA,IAAI,EAAEH,UADQ;AAEdD,IAAAA,KAFc;AAGdE,IAAAA,UAAU;AACNG,MAAAA,EAAE,EAAE;AACAC,QAAAA,YAAY,EAAE;AADd,OADE;AAINC,MAAAA,EAAE,EAAE;AACAC,QAAAA,OAAO,EAAE;AADT,OAJE;AAONC,MAAAA,KAAK,EAAE;AACHC,QAAAA,IAAI,EAAE;AADH,OAPD;AAUNC,MAAAA,IAAI,EAAE;AACFD,QAAAA,IAAI,EAAE;AADJ,OAVA;AAaNE,MAAAA,IAAI,EAAE;AACFF,QAAAA,IAAI,EAAE;AADJ;AAbA,OAiBFR,UAAU,IAAI,EAjBZ;AAHI,GAAX,CAAP;AAuBH,CAzBM","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 createElasticsearchEntity = (params: Params) => {\n const { table, entityName, attributes } = 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 index: {\n type: \"string\"\n },\n data: {\n type: \"map\"\n },\n TYPE: {\n type: \"string\"\n },\n\n ...(attributes || {})\n }\n });\n};\n"],"file":"elasticsearch.js"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/definitions/form.ts"],"names":["createFormEntity","params","table","entityName","attributes","Entity","name","PK","partitionKey","SK","sortKey","TYPE","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,IAAI,EAAE;AACFC,QAAAA,IAAI,EAAE;AADJ,OAPA;AAUNC,MAAAA,EAAE,EAAE;AACAD,QAAAA,IAAI,EAAE;AADN,OAVE;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,OAnBF;AAsBNK,MAAAA,SAAS,EAAE;AACPL,QAAAA,IAAI,EAAE;AADC,OAtBL;AAyBNM,MAAAA,OAAO,EAAE;AACLN,QAAAA,IAAI,EAAE;AADD,OAzBH;AA4BNO,MAAAA,OAAO,EAAE;AACLP,QAAAA,IAAI,EAAE;AADD,OA5BH;AA+BNQ,MAAAA,SAAS,EAAE;AACPR,QAAAA,IAAI,EAAE;AADC,OA/BL;AAkCNN,MAAAA,IAAI,EAAE;AACFM,QAAAA,IAAI,EAAE;AADJ,OAlCA;AAqCNS,MAAAA,IAAI,EAAE;AACFT,QAAAA,IAAI,EAAE;AADJ,OArCA;AAwCNU,MAAAA,OAAO,EAAE;AACLV,QAAAA,IAAI,EAAE;AADD,OAxCH;AA2CNW,MAAAA,MAAM,EAAE;AACJX,QAAAA,IAAI,EAAE;AADF,OA3CF;AA8CNY,MAAAA,SAAS,EAAE;AACPZ,QAAAA,IAAI,EAAE;AADC,OA9CL;AAiDNa,MAAAA,WAAW,EAAE;AACTb,QAAAA,IAAI,EAAE;AADG,OAjDP;AAoDNc,MAAAA,MAAM,EAAE;AACJd,QAAAA,IAAI,EAAE;AADF,OApDF;AAuDNe,MAAAA,MAAM,EAAE;AACJf,QAAAA,IAAI,EAAE;AADF,OAvDF;AA0DNgB,MAAAA,MAAM,EAAE;AACJhB,QAAAA,IAAI,EAAE;AADF,OA1DF;AA6DNiB,MAAAA,KAAK,EAAE;AACHjB,QAAAA,IAAI,EAAE;AADH,OA7DD;AAgENkB,MAAAA,QAAQ,EAAE;AACNlB,QAAAA,IAAI,EAAE;AADA,OAhEJ;AAmENmB,MAAAA,QAAQ,EAAE;AACNnB,QAAAA,IAAI,EAAE;AADA,OAnEJ;AAsENoB,MAAAA,aAAa,EAAE;AACXpB,QAAAA,IAAI,EAAE;AADK;AAtET,OAyEFR,UAAU,IAAI,EAzEZ;AAHI,GAAX,CAAP;AA+EH,CAjFM","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 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"],"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;AAJH,GAAV,CAAP;AAMH,CATM","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 });\n};\n"],"file":"table.js"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/definitions/tableElasticsearch.ts"],"names":["createElasticsearchTable","params","tableName","documentClient","Table","name","process","env","DB_TABLE_ELASTICSEARCH","partitionKey","sortKey","DocumentClient"],"mappings":";;;;;;;AAAA;;AAQO,MAAMA,wBAAwB,GAAIC,MAAD,IAA2B;AAC/D,QAAM;AAAEC,IAAAA,SAAF;AAAaC,IAAAA;AAAb,MAAgCF,MAAtC;AACA,SAAO,IAAIG,sBAAJ,CAAU;AACbC,IAAAA,IAAI,EAAEH,SAAS,IAAII,OAAO,CAACC,GAAR,CAAYC,sBADlB;AAEbC,IAAAA,YAAY,EAAE,IAFD;AAGbC,IAAAA,OAAO,EAAE,IAHI;AAIbC,IAAAA,cAAc,EAAER;AAJH,GAAV,CAAP;AAMH,CARM","sourcesContent":["import { Table } from \"dynamodb-toolbox\";\nimport { DocumentClient } from \"aws-sdk/clients/dynamodb\";\n\nexport interface Params {\n documentClient: DocumentClient;\n tableName?: string;\n}\n\nexport const createElasticsearchTable = (params: Params): Table => {\n const { tableName, documentClient } = params;\n return new Table({\n name: tableName || process.env.DB_TABLE_ELASTICSEARCH,\n partitionKey: \"PK\",\n sortKey: \"SK\",\n DocumentClient: documentClient\n });\n};\n"],"file":"tableElasticsearch.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","esTable","esTableName","documentClient","elasticsearch","plugins","pluginsInput","Object","values","forEach","attrs","keys","PluginsContainer","entities","form","entityName","ENTITIES","FORM","submission","SUBMISSION","system","SYSTEM","settings","SETTINGS","esForm","ES_FORM","esSubmission","ES_SUBMISSION","init","formBuilder","onAfterInstall","subscribe","tenant","upgrade","getTable","getEsTable","getEntities","entity","esEntity"],"mappings":"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","sourcesContent":["import { FormBuilderStorageOperationsFactory, ENTITIES } from \"~/types\";\nimport WebinyError from \"@webiny/error\";\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 { createElasticsearchIndex } from \"~/operations/system/createElasticsearchIndex\";\nimport { createElasticsearchTable } from \"~/definitions/tableElasticsearch\";\nimport { PluginsContainer } from \"@webiny/plugins\";\nimport { createElasticsearchEntity } from \"~/definitions/elasticsearch\";\nimport submissionElasticsearchFields from \"./operations/submission/elasticsearchFields\";\nimport formElasticsearchFields from \"./operations/form/elasticsearchFields\";\nimport dynamoDbValueFilters from \"@webiny/db-dynamodb/plugins/filters\";\nimport { getElasticsearchOperators } from \"@webiny/api-elasticsearch/operators\";\n\nimport upgrade5160 from \"./upgrades/5.16.0\";\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 {\n attributes = {},\n table: tableName,\n esTable: esTableName,\n documentClient,\n elasticsearch,\n plugins: pluginsInput\n } = 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 * Elasticsearch field definitions for the submission record.\n */\n submissionElasticsearchFields(),\n /**\n * Elasticsearch field definitions for the form record.\n */\n formElasticsearchFields(),\n /**\n * DynamoDB filter plugins for the where conditions.\n */\n dynamoDbValueFilters(),\n /**\n * Elasticsearch operators.\n */\n getElasticsearchOperators()\n ]);\n\n const table = createTable({\n tableName,\n documentClient\n });\n\n const esTable = createElasticsearchTable({\n tableName: esTableName,\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 * Elasticsearch entities.\n */\n esForm: createElasticsearchEntity({\n entityName: ENTITIES.ES_FORM,\n table: esTable,\n attributes: attributes[ENTITIES.ES_FORM]\n }),\n esSubmission: createElasticsearchEntity({\n entityName: ENTITIES.ES_SUBMISSION,\n table: esTable,\n attributes: attributes[ENTITIES.ES_SUBMISSION]\n })\n };\n\n return {\n init: async formBuilder => {\n formBuilder.onAfterInstall.subscribe(async ({ tenant }) => {\n await createElasticsearchIndex({\n elasticsearch,\n tenant\n });\n });\n },\n upgrade: upgrade5160(),\n getTable: () => table,\n getEsTable: () => esTable,\n getEntities: () => entities,\n ...createSystemStorageOperations({\n table,\n entity: entities.system\n }),\n ...createSettingsStorageOperations({\n table,\n entity: entities.settings\n }),\n ...createFormStorageOperations({\n elasticsearch,\n table,\n entity: entities.form,\n esEntity: entities.esForm,\n plugins\n }),\n ...createSubmissionStorageOperations({\n elasticsearch,\n table,\n entity: entities.submission,\n esEntity: entities.esSubmission,\n plugins\n })\n };\n};\n"],"file":"index.js"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/operations/form/elasticsearchBody.ts"],"names":["createFormElasticType","createInitialQueryValue","must","term","must_not","should","filter","createElasticsearchQuery","params","plugins","where","initialWhere","fieldPlugins","query","operatorPlugins","byType","ElasticsearchQueryBuilderOperatorPlugin","type","reduce","acc","plugin","getOperator","sharedIndex","process","env","ELASTICSEARCH_SHARED_INDEXES","push","tenant","locale","fields","operators","createElasticsearchBody","limit","initialLimit","sort","initialSort","after","FormElasticsearchFieldPlugin","field","queryModifiers","FormElasticsearchQueryModifierPlugin","modifyQuery","sortModifiers","FormElasticsearchSortModifierPlugin","modifySort","body","constant_score","bool","size","search_after","bodyModifiers","FormElasticsearchBodyModifierPlugin","modifyBody"],"mappings":"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","sourcesContent":["import { SearchBody as esSearchBody } from \"elastic-ts\";\nimport { decodeCursor } from \"@webiny/api-elasticsearch/cursors\";\nimport { ElasticsearchBoolQueryConfig } from \"@webiny/api-elasticsearch/types\";\nimport { createSort } from \"@webiny/api-elasticsearch/sort\";\nimport { createLimit } from \"@webiny/api-elasticsearch/limit\";\nimport { ElasticsearchQueryBuilderOperatorPlugin } from \"@webiny/api-elasticsearch/plugins/definition/ElasticsearchQueryBuilderOperatorPlugin\";\nimport { FormElasticsearchFieldPlugin } from \"~/plugins/FormElasticsearchFieldPlugin\";\nimport { FormElasticsearchSortModifierPlugin } from \"~/plugins/FormElasticsearchSortModifierPlugin\";\nimport { FormElasticsearchBodyModifierPlugin } from \"~/plugins/FormElasticsearchBodyModifierPlugin\";\nimport { FormBuilderStorageOperationsListFormsParams } from \"@webiny/api-form-builder/types\";\nimport { FormElasticsearchQueryModifierPlugin } from \"~/plugins/FormElasticsearchQueryModifierPlugin\";\nimport { PluginsContainer } from \"@webiny/plugins\";\nimport { applyWhere } from \"@webiny/api-elasticsearch/where\";\n\nexport const createFormElasticType = (): string => {\n return \"fb.form\";\n};\n\nconst createInitialQueryValue = (): ElasticsearchBoolQueryConfig => {\n return {\n must: [\n /**\n * We add the __type filtering in the initial query because it must be applied.\n */\n {\n term: {\n \"__type.keyword\": createFormElasticType()\n }\n }\n ],\n must_not: [],\n should: [],\n filter: []\n };\n};\n\ninterface CreateElasticsearchQueryParams extends CreateElasticsearchBodyParams {\n fieldPlugins: Record<string, FormElasticsearchFieldPlugin>;\n}\n\nconst createElasticsearchQuery = (params: CreateElasticsearchQueryParams) => {\n const { plugins, where: initialWhere, fieldPlugins } = params;\n const query = createInitialQueryValue();\n /**\n * Be aware that, if having more registered operator plugins of same type, the last one will be used.\n */\n const operatorPlugins: Record<string, ElasticsearchQueryBuilderOperatorPlugin> = plugins\n .byType<ElasticsearchQueryBuilderOperatorPlugin>(\n ElasticsearchQueryBuilderOperatorPlugin.type\n )\n .reduce((acc, plugin) => {\n acc[plugin.getOperator()] = plugin;\n return acc;\n }, {});\n\n const where: FormBuilderStorageOperationsListFormsParams[\"where\"] = {\n ...initialWhere\n };\n /**\n * !!! IMPORTANT !!! There are few specific cases where we hardcode the query conditions.\n *\n * When ES index is shared between tenants, we need to filter records by tenant ID.\n * No need for the tenant filtering otherwise as each index is for single tenant.\n */\n const sharedIndex = process.env.ELASTICSEARCH_SHARED_INDEXES === \"true\";\n if (sharedIndex) {\n query.must.push({\n term: {\n \"tenant.keyword\": where.tenant\n }\n });\n }\n /**\n * Remove tenant so it is not applied again later.\n * Possibly tenant is not defined, but just in case, remove it.\n */\n delete where.tenant;\n /**\n * Add the locale to filtering.\n */\n query.must.push({\n term: {\n \"locale.keyword\": where.locale\n }\n });\n delete where.locale;\n /**\n * We apply other conditions as they are passed via the where value.\n */\n applyWhere({\n query,\n where,\n fields: fieldPlugins,\n operators: operatorPlugins\n });\n\n return query;\n};\n\ninterface CreateElasticsearchBodyParams {\n plugins: PluginsContainer;\n where: FormBuilderStorageOperationsListFormsParams[\"where\"];\n limit: number;\n after?: string;\n sort: string[];\n}\n\nexport const createElasticsearchBody = (params: CreateElasticsearchBodyParams): esSearchBody => {\n const { plugins, where, limit: initialLimit, sort: initialSort, after } = params;\n\n const fieldPlugins: Record<string, FormElasticsearchFieldPlugin> = plugins\n .byType<FormElasticsearchFieldPlugin>(FormElasticsearchFieldPlugin.type)\n .reduce((acc, plugin) => {\n acc[plugin.field] = plugin;\n return acc;\n }, {});\n\n const limit = createLimit(initialLimit, 100);\n\n const query = createElasticsearchQuery({\n ...params,\n fieldPlugins\n });\n\n const sort = createSort({\n sort: initialSort,\n fieldPlugins\n });\n\n const queryModifiers = plugins.byType<FormElasticsearchQueryModifierPlugin>(\n FormElasticsearchQueryModifierPlugin.type\n );\n\n for (const plugin of queryModifiers) {\n plugin.modifyQuery({\n query,\n where\n });\n }\n\n const sortModifiers = plugins.byType<FormElasticsearchSortModifierPlugin>(\n FormElasticsearchSortModifierPlugin.type\n );\n\n for (const plugin of sortModifiers) {\n plugin.modifySort({\n sort\n });\n }\n\n const body = {\n query: {\n constant_score: {\n filter: {\n bool: {\n ...query\n }\n }\n }\n },\n size: limit + 1,\n /**\n * Casting as any is required due to search_after is accepting an array of values.\n * Which is correct in some cases. In our case, it is not.\n * https://www.elastic.co/guide/en/elasticsearch/reference/7.13/paginate-search-results.html\n */\n search_after: decodeCursor(after) as any,\n sort\n };\n\n const bodyModifiers = plugins.byType<FormElasticsearchBodyModifierPlugin>(\n FormElasticsearchBodyModifierPlugin.type\n );\n\n for (const plugin of bodyModifiers) {\n plugin.modifyBody({\n body\n });\n }\n\n return body;\n};\n"],"file":"elasticsearchBody.js"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/operations/form/elasticsearchFields.ts"],"names":["FormElasticsearchFieldPlugin","field","unmappedType","path","ALL"],"mappings":";;;;;;;AAAA;;eAEe,MAAM,CACjB,IAAIA,0DAAJ,CAAiC;AAC7BC,EAAAA,KAAK,EAAE,WADsB;AAE7BC,EAAAA,YAAY,EAAE;AAFe,CAAjC,CADiB,EAKjB,IAAIF,0DAAJ,CAAiC;AAC7BC,EAAAA,KAAK,EAAE,SADsB;AAE7BC,EAAAA,YAAY,EAAE;AAFe,CAAjC,CALiB,EASjB,IAAIF,0DAAJ,CAAiC;AAC7BC,EAAAA,KAAK,EAAE,aADsB;AAE7BC,EAAAA,YAAY,EAAE;AAFe,CAAjC,CATiB,EAajB,IAAIF,0DAAJ,CAAiC;AAC7BC,EAAAA,KAAK,EAAE,SADsB;AAE7BE,EAAAA,IAAI,EAAE;AAFuB,CAAjC,CAbiB,EAiBjB,IAAIH,0DAAJ,CAAiC;AAC7BC,EAAAA,KAAK,EAAE,WADsB;AAE7BE,EAAAA,IAAI,EAAE;AAFuB,CAAjC,CAjBiB;AAqBjB;AACJ;AACA;AACI,IAAIH,0DAAJ,CAAiC;AAC7BC,EAAAA,KAAK,EAAED,2DAA6BI;AADP,CAAjC,CAxBiB,C","sourcesContent":["import { FormElasticsearchFieldPlugin } from \"~/plugins/FormElasticsearchFieldPlugin\";\n\nexport default () => [\n new FormElasticsearchFieldPlugin({\n field: \"createdOn\",\n unmappedType: \"date\"\n }),\n new FormElasticsearchFieldPlugin({\n field: \"savedOn\",\n unmappedType: \"date\"\n }),\n new FormElasticsearchFieldPlugin({\n field: \"publishedOn\",\n unmappedType: \"date\"\n }),\n new FormElasticsearchFieldPlugin({\n field: \"ownedBy\",\n path: \"ownedBy.id\"\n }),\n new FormElasticsearchFieldPlugin({\n field: \"createdBy\",\n path: \"createdBy.id\"\n }),\n /**\n * Always add the ALL fields plugin because of the keyword/path build.\n */\n new FormElasticsearchFieldPlugin({\n field: FormElasticsearchFieldPlugin.ALL\n })\n];\n"],"file":"elasticsearchFields.js"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/operations/form/fields.ts"],"names":["FormDynamoDbFieldPlugin","field","type"],"mappings":";;;;;;;AAAA;;eAEe,MAAM,CACjB,IAAIA,gDAAJ,CAA4B;AACxBC,EAAAA,KAAK,EAAE,aADiB;AAExBC,EAAAA,IAAI,EAAE;AAFkB,CAA5B,CADiB,C","sourcesContent":["import { FormDynamoDbFieldPlugin } from \"~/plugins/FormDynamoDbFieldPlugin\";\n\nexport default () => [\n new FormDynamoDbFieldPlugin({\n field: \"publishedOn\",\n type: \"date\"\n })\n];\n"],"file":"fields.js"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/operations/form/index.ts"],"names":["getESDataForLatestRevision","form","__type","id","createdOn","savedOn","name","slug","published","publishedOn","version","locked","status","createdBy","ownedBy","tenant","locale","webinyVersion","formId","createFormStorageOperations","params","entity","esEntity","table","plugins","elasticsearch","formDynamoDbFields","createFormPartitionKey","targetId","createRevisionSortKey","value","Number","createLatestSortKey","createLatestPublishedSortKey","createFormType","createFormLatestType","createFormLatestPublishedType","createForm","revisionKeys","PK","SK","latestKeys","items","putBatch","TYPE","ex","WebinyError","message","code","index","configurations","es","put","data","createFormFrom","original","latest","updateForm","latestForm","getForm","where","isLatestForm","push","sortKey","keys","result","get","Item","listForms","sort","limit","after","body","esConfig","query","response","search","hits","total","map","item","_source","hasMoreItems","length","pop","meta","totalCount","cursor","listFormRevisions","initialWhere","queryAllParams","partitionKey","options","beginsWith","undefined","filteredItems","fields","Array","isArray","deleteForm","gte","deleteItems","deleteBatch","delete","deleteFormRevision","revisions","previous","latestPublishedForm","find","rev","isLatest","isLatestPublished","esDataItem","previouslyPublishedForm","filter","f","a","b","Date","getTime","shift","publishForm","latestPublishedKeys","esData","unpublishForm","version_not","publishedOn_not","previouslyPublishedRevision"],"mappings":"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","sourcesContent":["import {\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 { Client } from \"@elastic/elasticsearch\";\nimport { queryAll, QueryAllParams } from \"@webiny/db-dynamodb/utils/query\";\nimport WebinyError from \"@webiny/error\";\nimport { cleanupItem } from \"@webiny/db-dynamodb/utils/cleanup\";\nimport { batchWriteAll } from \"@webiny/db-dynamodb/utils/batchWrite\";\nimport configurations from \"~/configurations\";\nimport { filterItems } from \"@webiny/db-dynamodb/utils/filter\";\nimport fields from \"./fields\";\nimport { sortItems } from \"@webiny/db-dynamodb/utils/sort\";\nimport { parseIdentifier, zeroPad } from \"@webiny/utils\";\nimport { createElasticsearchBody, createFormElasticType } from \"./elasticsearchBody\";\nimport { decodeCursor, encodeCursor } from \"@webiny/api-elasticsearch/cursors\";\nimport { PluginsContainer } from \"@webiny/plugins\";\nimport { FormBuilderFormCreateKeyParams, FormBuilderFormStorageOperations } from \"~/types\";\n\nexport type DbRecord<T = any> = T & {\n PK: string;\n SK: string;\n TYPE: string;\n};\n\nexport interface Params {\n entity: Entity<any>;\n esEntity: Entity<any>;\n table: Table;\n elasticsearch: Client;\n plugins: PluginsContainer;\n}\n\ntype FbFormElastic = Omit<FbForm, \"triggers\" | \"fields\" | \"settings\" | \"layout\" | \"stats\"> & {\n __type: string;\n};\n\nconst getESDataForLatestRevision = (form: FbForm): FbFormElastic => ({\n __type: createFormElasticType(),\n id: form.id,\n createdOn: form.createdOn,\n savedOn: form.savedOn,\n name: form.name,\n slug: form.slug,\n published: form.published,\n publishedOn: form.publishedOn,\n version: form.version,\n locked: form.locked,\n status: form.status,\n createdBy: form.createdBy,\n ownedBy: form.ownedBy,\n tenant: form.tenant,\n locale: form.locale,\n webinyVersion: form.webinyVersion,\n formId: form.formId\n});\n\nexport const createFormStorageOperations = (params: Params): FormBuilderFormStorageOperations => {\n const { entity, esEntity, table, plugins, elasticsearch } = params;\n\n const formDynamoDbFields = fields();\n\n const createFormPartitionKey = (params: FormBuilderFormCreateKeyParams): string => {\n const { tenant, locale, id: targetId } = params;\n\n const { id } = parseIdentifier(targetId);\n\n return `T#${tenant}#L#${locale}#FB#F#${id}`;\n };\n\n const createRevisionSortKey = (value: string | number): string => {\n const version = typeof value === \"number\" ? Number(value) : parseIdentifier(value).version;\n return `REV#${zeroPad(version)}`;\n };\n\n const createLatestSortKey = (): string => {\n return \"L\";\n };\n\n const createLatestPublishedSortKey = (): string => {\n return \"LP\";\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 createForm = async (\n params: FormBuilderStorageOperationsCreateFormParams\n ): Promise<FbForm> => {\n const { form } = params;\n\n const revisionKeys = {\n PK: createFormPartitionKey(form),\n SK: createRevisionSortKey(form.id)\n };\n const latestKeys = {\n PK: createFormPartitionKey(form),\n SK: createLatestSortKey()\n };\n\n const items = [\n entity.putBatch({\n ...form,\n TYPE: createFormType(),\n ...revisionKeys\n }),\n entity.putBatch({\n ...form,\n TYPE: createFormLatestType(),\n ...latestKeys\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 regular table.\",\n ex.code || \"CREATE_FORM_ERROR\",\n {\n revisionKeys,\n latestKeys,\n form\n }\n );\n }\n try {\n const { index } = configurations.es({\n tenant: form.tenant\n });\n await esEntity.put({\n index,\n data: getESDataForLatestRevision(form),\n TYPE: createFormType(),\n ...latestKeys\n });\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not insert form data into Elasticsearch table.\",\n ex.code || \"CREATE_FORM_ERROR\",\n {\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 = {\n PK: createFormPartitionKey(form),\n SK: createRevisionSortKey(form.version)\n };\n\n const latestKeys = {\n PK: createFormPartitionKey(form),\n SK: createLatestSortKey()\n };\n\n const items = [\n entity.putBatch({\n ...form,\n ...revisionKeys,\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 ||\n \"Could not create form data in the regular 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 try {\n const { index } = configurations.es({\n tenant: form.tenant\n });\n await esEntity.put({\n index,\n data: getESDataForLatestRevision(form),\n TYPE: createFormLatestType(),\n ...latestKeys\n });\n } catch (ex) {\n throw new WebinyError(\n ex.message ||\n \"Could not create form in the Elasticsearch table, from existing form.\",\n ex.code || \"CREATE_FORM_FROM_ERROR\",\n {\n latestKeys,\n form,\n latest,\n original\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 = {\n PK: createFormPartitionKey(form),\n SK: createRevisionSortKey(form.id)\n };\n const latestKeys = {\n PK: createFormPartitionKey(form),\n SK: createLatestSortKey()\n };\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 TYPE: createFormType(),\n ...revisionKeys\n })\n ];\n if (isLatestForm) {\n items.push(\n entity.putBatch({\n ...form,\n TYPE: createFormLatestType(),\n ...latestKeys\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 regular table.\",\n ex.code || \"UPDATE_FORM_ERROR\",\n {\n revisionKeys,\n latestKeys,\n original,\n form,\n latestForm\n }\n );\n }\n /**\n * No need to go further if its not latest form.\n */\n if (!isLatestForm) {\n return form;\n }\n\n try {\n const { index } = configurations.es({\n tenant: form.tenant\n });\n await esEntity.put({\n index,\n data: getESDataForLatestRevision(form),\n TYPE: createFormLatestType(),\n ...latestKeys\n });\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not update form data in the Elasticsearch table.\",\n ex.code || \"UPDATE_FORM_ERROR\",\n {\n latestKeys,\n form,\n latestForm,\n original\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, tenant, locale } = where;\n if (latest && published) {\n throw new WebinyError(\"Cannot have both latest and published params.\");\n }\n let sortKey: string;\n if (latest) {\n sortKey = createLatestSortKey();\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 sortKey = createLatestPublishedSortKey();\n } else if (id || version) {\n sortKey = createRevisionSortKey(version || id);\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: createFormPartitionKey({\n tenant,\n locale,\n id: formId || id\n }),\n SK: sortKey\n };\n\n try {\n const result = await entity.get(keys);\n if (!result || !result.Item) {\n return null;\n }\n return cleanupItem(entity, result.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, after } = params;\n\n const body = createElasticsearchBody({\n plugins,\n sort,\n limit: limit + 1,\n where,\n after: decodeCursor(after) as any\n });\n\n const esConfig = configurations.es({\n tenant: where.tenant\n });\n\n const query = {\n ...esConfig,\n body\n };\n\n let response;\n try {\n response = await elasticsearch.search(query);\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could list forms.\",\n ex.code || \"LIST_FORMS_ERROR\",\n {\n where,\n query\n }\n );\n }\n\n const { hits, total } = response.body.hits;\n const items = hits.map(item => item._source);\n\n const hasMoreItems = items.length > limit;\n if (hasMoreItems) {\n /**\n * Remove the last item from results, we don't want to include it.\n */\n items.pop();\n }\n /**\n * Cursor is the `sort` value of the last item in the array.\n * https://www.elastic.co/guide/en/elasticsearch/reference/current/paginate-search-results.html#search-after\n */\n\n const meta = {\n hasMoreItems,\n totalCount: total.value,\n cursor: items.length > 0 ? encodeCursor(hits[items.length - 1].sort) : null\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 const queryAllParams: QueryAllParams = {\n entity,\n partitionKey: createFormPartitionKey({\n tenant,\n locale,\n id: id || formId\n }),\n options: {\n beginsWith: \"REV#\"\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 id: undefined,\n formId: undefined\n };\n const filteredItems = filterItems({\n plugins,\n items,\n where,\n fields: formDynamoDbFields\n });\n if (Array.isArray(sort) === false || sort.length === 0) {\n return filteredItems;\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 const deleteItems = items.map(item => {\n return entity.deleteBatch({\n PK: item.PK,\n SK: item.SK\n });\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\n const latestKeys = {\n PK: createFormPartitionKey(form),\n SK: createLatestSortKey()\n };\n try {\n await esEntity.delete(latestKeys);\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not delete latest form record from Elasticsearch.\",\n ex.code || \"DELETE_FORM_ERROR\",\n {\n latestKeys\n }\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 = {\n PK: createFormPartitionKey(form),\n SK: createRevisionSortKey(form.id)\n };\n\n const latestKeys = {\n PK: createFormPartitionKey(form),\n SK: createLatestSortKey()\n };\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 let esDataItem = undefined;\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 PK: createFormPartitionKey(previouslyPublishedForm),\n SK: createLatestPublishedSortKey(),\n TYPE: createFormLatestPublishedType()\n })\n );\n } else {\n items.push(\n entity.deleteBatch({\n PK: createFormPartitionKey(previouslyPublishedForm),\n SK: createLatestPublishedSortKey()\n })\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 TYPE: createFormLatestType()\n })\n );\n\n const { index } = configurations.es({\n tenant: previous.tenant\n });\n\n esDataItem = {\n index,\n ...latestKeys,\n data: getESDataForLatestRevision(previous)\n };\n }\n }\n /**\n * Now save the batch data.\n */\n try {\n await batchWriteAll({\n table,\n items\n });\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not delete form revision from regular table.\",\n ex.code || \"DELETE_FORM_REVISION_ERROR\",\n {\n form,\n latestForm,\n revisionKeys,\n latestKeys\n }\n );\n }\n /**\n * And then the Elasticsearch data, if any.\n */\n if (!esDataItem) {\n return form;\n }\n try {\n await esEntity.put(esDataItem);\n return form;\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not delete form from to the Elasticsearch 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 = {\n PK: createFormPartitionKey(form),\n SK: createRevisionSortKey(form.version)\n };\n\n const latestKeys = {\n PK: createFormPartitionKey(form),\n SK: createLatestSortKey()\n };\n\n const latestPublishedKeys = {\n PK: createFormPartitionKey(form),\n SK: createLatestPublishedSortKey()\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 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 if (!isLatestForm) {\n return form;\n }\n const { index } = configurations.es({\n tenant: form.tenant\n });\n const esData = getESDataForLatestRevision(form);\n try {\n await esEntity.put({\n ...latestKeys,\n index,\n TYPE: createFormLatestType(),\n data: esData\n });\n return form;\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not publish form to the Elasticsearch.\",\n ex.code || \"PUBLISH_FORM_ERROR\",\n {\n form,\n original,\n latestForm,\n revisionKeys,\n latestKeys,\n latestPublishedKeys\n }\n );\n }\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 = {\n PK: createFormPartitionKey(form),\n SK: createRevisionSortKey(form.version)\n };\n\n const latestKeys = {\n PK: createFormPartitionKey(form),\n SK: createLatestSortKey()\n };\n\n const latestPublishedKeys = {\n PK: createFormPartitionKey(form),\n SK: createLatestPublishedSortKey()\n };\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 TYPE: createFormType()\n })\n ];\n let esData: any = undefined;\n if (isLatest) {\n esData = getESDataForLatestRevision(form);\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 } 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 * No need to go further in case of non-existing Elasticsearch data.\n */\n if (!esData) {\n return form;\n }\n const { index } = configurations.es({\n tenant: form.tenant\n });\n try {\n await esEntity.put({\n ...latestKeys,\n index,\n TYPE: createFormLatestType(),\n data: esData\n });\n return form;\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not unpublish form from the Elasticsearch.\",\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","result","get","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\";\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 result = await entity.get(keys);\n if (!result || !result.Item) {\n return null;\n }\n return cleanupItem(entity, result.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/elasticsearchBody.ts"],"names":["createInitialQueryValue","must","term","must_not","should","filter","createSubmissionElasticType","createElasticsearchQuery","params","plugins","where","initialWhere","fieldPlugins","query","operatorPlugins","byType","ElasticsearchQueryBuilderOperatorPlugin","type","reduce","acc","plugin","getOperator","sharedIndex","process","env","ELASTICSEARCH_SHARED_INDEXES","push","tenant","locale","formId","fields","operators","createElasticsearchBody","limit","initialLimit","sort","initialSort","after","SubmissionElasticsearchFieldPlugin","field","queryModifiers","SubmissionElasticsearchQueryModifierPlugin","modifyQuery","sortModifiers","SubmissionElasticsearchSortModifierPlugin","modifySort","body","constant_score","bool","size","search_after","bodyModifiers","SubmissionElasticsearchBodyModifierPlugin","modifyBody"],"mappings":"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","sourcesContent":["import { SearchBody as esSearchBody } from \"elastic-ts\";\nimport { decodeCursor } from \"@webiny/api-elasticsearch/cursors\";\nimport { ElasticsearchBoolQueryConfig } from \"@webiny/api-elasticsearch/types\";\nimport { createSort } from \"@webiny/api-elasticsearch/sort\";\nimport { createLimit } from \"@webiny/api-elasticsearch/limit\";\nimport { ElasticsearchQueryBuilderOperatorPlugin } from \"@webiny/api-elasticsearch/plugins/definition/ElasticsearchQueryBuilderOperatorPlugin\";\nimport { SubmissionElasticsearchFieldPlugin } from \"~/plugins/SubmissionElasticsearchFieldPlugin\";\nimport { SubmissionElasticsearchSortModifierPlugin } from \"~/plugins/SubmissionElasticsearchSortModifierPlugin\";\nimport { SubmissionElasticsearchBodyModifierPlugin } from \"~/plugins/SubmissionElasticsearchBodyModifierPlugin\";\nimport { FormBuilderStorageOperationsListSubmissionsParams } from \"@webiny/api-form-builder/types\";\nimport { SubmissionElasticsearchQueryModifierPlugin } from \"~/plugins/SubmissionElasticsearchQueryModifierPlugin\";\nimport { PluginsContainer } from \"@webiny/plugins\";\nimport { applyWhere } from \"@webiny/api-elasticsearch/where\";\n\nconst createInitialQueryValue = (): ElasticsearchBoolQueryConfig => {\n return {\n must: [\n /**\n * We add the __type filtering in the initial query because it must be applied.\n */\n {\n term: {\n \"__type.keyword\": \"fb.submission\"\n }\n }\n ],\n must_not: [],\n should: [],\n filter: []\n };\n};\n\nexport const createSubmissionElasticType = (): string => {\n return \"fb.submission\";\n};\n\ninterface CreateElasticsearchQueryParams extends CreateElasticsearchBodyParams {\n fieldPlugins: Record<string, SubmissionElasticsearchFieldPlugin>;\n}\n\nconst createElasticsearchQuery = (params: CreateElasticsearchQueryParams) => {\n const { plugins, where: initialWhere, fieldPlugins } = params;\n const query = createInitialQueryValue();\n /**\n * Be aware that, if having more registered operator plugins of same type, the last one will be used.\n */\n const operatorPlugins: Record<string, ElasticsearchQueryBuilderOperatorPlugin> = plugins\n .byType<ElasticsearchQueryBuilderOperatorPlugin>(\n ElasticsearchQueryBuilderOperatorPlugin.type\n )\n .reduce((acc, plugin) => {\n acc[plugin.getOperator()] = plugin;\n return acc;\n }, {});\n\n const where: FormBuilderStorageOperationsListSubmissionsParams[\"where\"] = {\n ...initialWhere\n };\n /**\n * !!! IMPORTANT !!! There are few specific cases where we hardcode the query conditions.\n *\n * When ES index is shared between tenants, we need to filter records by tenant ID.\n * No need for the tenant filtering otherwise as each index is for single tenant.\n */\n const sharedIndex = process.env.ELASTICSEARCH_SHARED_INDEXES === \"true\";\n if (sharedIndex) {\n query.must.push({\n term: {\n \"tenant.keyword\": where.tenant\n }\n });\n }\n /**\n * Remove tenant so it is not applied again later.\n * Possibly tenant is not defined, but just in case, remove it.\n */\n delete where.tenant;\n /**\n * Add the locale to filtering.\n */\n query.must.push({\n term: {\n \"locale.keyword\": where.locale\n }\n });\n delete where.locale;\n /**\n * And add the parent (form) to the filtering, if it exists.\n */\n query.must.push({\n term: {\n \"form.parent.keyword\": where.formId\n }\n });\n delete where.formId;\n /**\n * We apply other conditions as they are passed via the where value.\n */\n applyWhere({\n query,\n where,\n fields: fieldPlugins,\n operators: operatorPlugins\n });\n\n return query;\n};\n\ninterface CreateElasticsearchBodyParams {\n plugins: PluginsContainer;\n where: FormBuilderStorageOperationsListSubmissionsParams[\"where\"];\n limit: number;\n after?: string;\n sort: string[];\n}\n\nexport const createElasticsearchBody = (params: CreateElasticsearchBodyParams): esSearchBody => {\n const { plugins, where, limit: initialLimit, sort: initialSort, after } = params;\n\n const fieldPlugins: Record<string, SubmissionElasticsearchFieldPlugin> = plugins\n .byType<SubmissionElasticsearchFieldPlugin>(SubmissionElasticsearchFieldPlugin.type)\n .reduce((acc, plugin) => {\n acc[plugin.field] = plugin;\n return acc;\n }, {});\n\n const limit = createLimit(initialLimit, 100);\n\n const query = createElasticsearchQuery({\n ...params,\n fieldPlugins\n });\n\n const sort = createSort({\n sort: initialSort,\n fieldPlugins\n });\n\n const queryModifiers = plugins.byType<SubmissionElasticsearchQueryModifierPlugin>(\n SubmissionElasticsearchQueryModifierPlugin.type\n );\n\n for (const plugin of queryModifiers) {\n plugin.modifyQuery({\n query,\n where\n });\n }\n\n const sortModifiers = plugins.byType<SubmissionElasticsearchSortModifierPlugin>(\n SubmissionElasticsearchSortModifierPlugin.type\n );\n\n for (const plugin of sortModifiers) {\n plugin.modifySort({\n sort\n });\n }\n\n const body = {\n query: {\n constant_score: {\n filter: {\n bool: {\n ...query\n }\n }\n }\n },\n size: limit + 1,\n /**\n * Casting as any is required due to search_after is accepting an array of values.\n * Which is correct in some cases. In our case, it is not.\n * https://www.elastic.co/guide/en/elasticsearch/reference/7.13/paginate-search-results.html\n */\n search_after: decodeCursor(after) as any,\n sort\n };\n\n const bodyModifiers = plugins.byType<SubmissionElasticsearchBodyModifierPlugin>(\n SubmissionElasticsearchBodyModifierPlugin.type\n );\n\n for (const plugin of bodyModifiers) {\n plugin.modifyBody({\n body\n });\n }\n\n return body;\n};\n"],"file":"elasticsearchBody.js"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/operations/submission/elasticsearchFields.ts"],"names":["SubmissionElasticsearchFieldPlugin","field","path","unmappedType","ALL"],"mappings":";;;;;;;AAAA;;eAEe,MAAM,CACjB,IAAIA,sEAAJ,CAAuC;AACnCC,EAAAA,KAAK,EAAE,QAD4B;AAEnCC,EAAAA,IAAI,EAAE;AAF6B,CAAvC,CADiB,EAKjB,IAAIF,sEAAJ,CAAuC;AACnCC,EAAAA,KAAK,EAAE,SAD4B;AAEnCC,EAAAA,IAAI,EAAE;AAF6B,CAAvC,CALiB,EASjB,IAAIF,sEAAJ,CAAuC;AACnCC,EAAAA,KAAK,EAAE,WAD4B;AAEnCE,EAAAA,YAAY,EAAE;AAFqB,CAAvC,CATiB,EAajB,IAAIH,sEAAJ,CAAuC;AACnCC,EAAAA,KAAK,EAAE,SAD4B;AAEnCE,EAAAA,YAAY,EAAE;AAFqB,CAAvC,CAbiB;AAiBjB;AACJ;AACA;AACI,IAAIH,sEAAJ,CAAuC;AACnCC,EAAAA,KAAK,EAAED,uEAAmCI;AADP,CAAvC,CApBiB,C","sourcesContent":["import { SubmissionElasticsearchFieldPlugin } from \"~/plugins/SubmissionElasticsearchFieldPlugin\";\n\nexport default () => [\n new SubmissionElasticsearchFieldPlugin({\n field: \"parent\",\n path: \"form.parent\"\n }),\n new SubmissionElasticsearchFieldPlugin({\n field: \"ownedBy\",\n path: \"ownedBy.id\"\n }),\n new SubmissionElasticsearchFieldPlugin({\n field: \"createdOn\",\n unmappedType: \"date\"\n }),\n new SubmissionElasticsearchFieldPlugin({\n field: \"savedOn\",\n unmappedType: \"date\"\n }),\n /**\n * Always add the ALL fields plugin because of the keyword/path build.\n */\n new SubmissionElasticsearchFieldPlugin({\n field: SubmissionElasticsearchFieldPlugin.ALL\n })\n];\n"],"file":"elasticsearchFields.js"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/operations/submission/index.ts"],"names":["createSubmissionStorageOperations","params","entity","esEntity","table","elasticsearch","plugins","createSubmissionPartitionKey","tenant","locale","formId","id","createSubmissionSortKey","createSubmissionType","createSubmission","submission","form","keys","PK","SK","put","TYPE","ex","WebinyError","message","code","index","configurations","es","data","__type","updateSubmission","original","deleteSubmission","delete","listSubmissionsByIds","where","sort","items","id_in","map","getBatch","results","submissions","filter","Boolean","fields","listSubmissions","limit","initialLimit","after","meta","hasMoreItems","cursor","totalCount","length","body","esConfig","query","response","search","hits","total","item","_source","pop","value","getSubmission","result","get","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 { Client } from \"@elastic/elasticsearch\";\nimport WebinyError from \"@webiny/error\";\nimport { batchReadAll } from \"@webiny/db-dynamodb/utils/batchRead\";\nimport { sortItems } from \"@webiny/db-dynamodb/utils/sort\";\nimport { createLimit } from \"@webiny/api-elasticsearch/limit\";\nimport {\n createElasticsearchBody,\n createSubmissionElasticType\n} from \"~/operations/submission/elasticsearchBody\";\nimport { PluginsContainer } from \"@webiny/plugins\";\nimport {\n FormBuilderSubmissionStorageOperations,\n FormBuilderSubmissionStorageOperationsCreatePartitionKeyParams\n} from \"~/types\";\nimport configurations from \"~/configurations\";\nimport { cleanupItem } from \"@webiny/db-dynamodb/utils/cleanup\";\nimport { parseIdentifier } from \"@webiny/utils\";\nimport { decodeCursor, encodeCursor } from \"@webiny/api-elasticsearch/cursors\";\n\nexport interface Params {\n entity: Entity<any>;\n esEntity: Entity<any>;\n table: Table;\n elasticsearch: Client;\n plugins: PluginsContainer;\n}\n\nexport const createSubmissionStorageOperations = (\n params: Params\n): FormBuilderSubmissionStorageOperations => {\n const { entity, esEntity, table, elasticsearch, 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#F#${id}`;\n };\n const createSubmissionSortKey = (id: string) => {\n return `FS#${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 try {\n const { index } = configurations.es({\n tenant: form.tenant\n });\n await esEntity.put({\n index,\n data: {\n ...submission,\n __type: createSubmissionElasticType()\n },\n TYPE: createSubmissionType(),\n ...keys\n });\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not create form submission in the Elasticsearch.\",\n ex.code || \"UPDATE_FORM_SUBMISSION_ERROR\",\n {\n submission,\n form,\n keys\n }\n );\n }\n\n return submission;\n };\n /**\n * We do not save the data in the Elasticsearch because there is no need for that.\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 try {\n await esEntity.delete(keys);\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not delete form submission from Elasticsearch.\",\n ex.code || \"DELETE_FORM_SUBMISSION_ERROR\",\n {\n submission,\n form,\n keys\n }\n );\n }\n\n return submission;\n };\n\n /**\n *\n * We are using this method because it is faster to fetch the exact data from the DynamoDB than Elasticsearch.\n *\n * @internal\n */\n const listSubmissionsByIds = async (\n params: FormBuilderStorageOperationsListSubmissionsParams\n ): Promise<FbSubmission[]> => {\n const { where, sort } = params;\n const items = where.id_in.map(id => {\n return entity.getBatch({\n PK: createSubmissionPartitionKey({\n ...where\n }),\n SK: createSubmissionSortKey(id)\n });\n });\n\n let results: FbSubmission[] = [];\n\n try {\n results = await batchReadAll<FbSubmission>({\n table,\n items\n });\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not batch read form submissions.\",\n ex.code || \"BATCH_READ_SUBMISSIONS_ERROR\",\n {\n where,\n sort\n }\n );\n }\n /**\n * We need to remove empty results because it is a possibility that batch read returned null for non-existing record.\n */\n const submissions = results.filter(Boolean).map(submission => {\n return cleanupItem(entity, submission);\n });\n if (!sort) {\n return submissions;\n }\n return sortItems<FbSubmission>({\n items: submissions,\n sort,\n fields: []\n });\n };\n\n const listSubmissions = async (\n params: FormBuilderStorageOperationsListSubmissionsParams\n ): Promise<FormBuilderStorageOperationsListSubmissionsResponse> => {\n const { where, sort, limit: initialLimit, after } = params;\n\n if (where.id_in) {\n const items = await listSubmissionsByIds(params);\n\n return {\n items,\n meta: {\n hasMoreItems: false,\n cursor: null,\n totalCount: items.length\n }\n };\n }\n\n const limit = createLimit(initialLimit);\n\n const body = createElasticsearchBody({\n plugins,\n sort,\n limit: limit + 1,\n where,\n after: decodeCursor(after) as any\n });\n\n const esConfig = configurations.es({\n tenant: where.tenant\n });\n\n const query = {\n ...esConfig,\n body\n };\n\n let response;\n try {\n response = await elasticsearch.search(query);\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could list form submissions.\",\n ex.code || \"LIST_SUBMISSIONS_ERROR\",\n {\n where,\n query\n }\n );\n }\n\n const { hits, total } = response.body.hits;\n const items = hits.map(item => item._source);\n\n const hasMoreItems = items.length > limit;\n if (hasMoreItems) {\n /**\n * Remove the last item from results, we don't want to include it.\n */\n items.pop();\n }\n /**\n * Cursor is the `sort` value of the last item in the array.\n * https://www.elastic.co/guide/en/elasticsearch/reference/current/paginate-search-results.html#search-after\n */\n const meta = {\n hasMoreItems,\n totalCount: total.value,\n cursor: items.length > 0 ? encodeCursor(hits[items.length - 1].sort) : null\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({\n ...where,\n formId: where.formId as string\n }),\n SK: createSubmissionSortKey(where.id)\n };\n\n try {\n const result = await entity.get(keys);\n\n if (!result || !result.Item) {\n return null;\n }\n\n return cleanupItem(entity, result.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/createElasticsearchIndex.ts"],"names":["createElasticsearchIndex","params","tenant","elasticsearch","esIndex","configurations","es","body","exists","indices","create","settings","analysis","analyzer","lowercase_analyzer","type","filter","tokenizer","mappings","properties","property","fields","keyword","ignore_above"],"mappings":";;;;;;;;;;;AACA;;;;;;AAOO,MAAMA,wBAAwB,GAAG,MAAOC,MAAP,IAA0B;AAC9D,QAAM;AAAEC,IAAAA,MAAF;AAAUC,IAAAA;AAAV,MAA4BF,MAAlC;;AAEA,QAAMG,OAAO,GAAGC,wBAAeC,EAAf,CAAkB;AAC9BJ,IAAAA;AAD8B,GAAlB,CAAhB;;AAIA,QAAM;AAAEK,IAAAA,IAAI,EAAEC;AAAR,MAAmB,MAAML,aAAa,CAACM,OAAd,CAAsBD,MAAtB,CAA6BJ,OAA7B,CAA/B;;AACA,MAAII,MAAJ,EAAY;AACR;AACH;;AACD,QAAML,aAAa,CAACM,OAAd,CAAsBC,MAAtB,iCACCN,OADD;AAEFG,IAAAA,IAAI,EAAE;AACF;AACZ;AACA;AACYI,MAAAA,QAAQ,EAAE;AACNC,QAAAA,QAAQ,EAAE;AACNC,UAAAA,QAAQ,EAAE;AACNC,YAAAA,kBAAkB,EAAE;AAChBC,cAAAA,IAAI,EAAE,QADU;AAEhBC,cAAAA,MAAM,EAAE,CAAC,WAAD,EAAc,MAAd,CAFQ;AAGhBC,cAAAA,SAAS,EAAE;AAHK;AADd;AADJ;AADJ,OAJR;AAeFC,MAAAA,QAAQ,EAAE;AACNC,QAAAA,UAAU,EAAE;AACRC,UAAAA,QAAQ,EAAE;AACNL,YAAAA,IAAI,EAAE,MADA;AAENM,YAAAA,MAAM,EAAE;AACJC,cAAAA,OAAO,EAAE;AACLP,gBAAAA,IAAI,EAAE,SADD;AAELQ,gBAAAA,YAAY,EAAE;AAFT;AADL,aAFF;AAQNV,YAAAA,QAAQ,EAAE;AARJ;AADF;AADN;AAfR;AAFJ,KAAN;AAiCH,CA5CM","sourcesContent":["import { Client } from \"@elastic/elasticsearch\";\nimport configurations from \"~/configurations\";\n\nexport interface Params {\n elasticsearch: Client;\n tenant: string;\n}\n\nexport const createElasticsearchIndex = async (params: Params) => {\n const { tenant, elasticsearch } = params;\n\n const esIndex = configurations.es({\n tenant\n });\n\n const { body: exists } = await elasticsearch.indices.exists(esIndex);\n if (exists) {\n return;\n }\n await elasticsearch.indices.create({\n ...esIndex,\n body: {\n /**\n * need this part for sorting to work on text fields\n */\n settings: {\n analysis: {\n analyzer: {\n lowercase_analyzer: {\n type: \"custom\",\n filter: [\"lowercase\", \"trim\"],\n tokenizer: \"keyword\"\n }\n }\n }\n },\n mappings: {\n properties: {\n property: {\n type: \"text\",\n fields: {\n keyword: {\n type: \"keyword\",\n ignore_above: 256\n }\n },\n analyzer: \"lowercase_analyzer\"\n }\n }\n }\n }\n });\n};\n"],"file":"createElasticsearchIndex.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","result","get","Item","updateSystem","original"],"mappings":";;;;;;;;;;;AAQA;;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,MAAM,GAAG,MAAMhB,MAAM,CAACiB,GAAP,CAAWR,IAAX,CAArB;;AACA,UAAI,CAACO,MAAD,IAAW,CAACA,MAAM,CAACE,IAAvB,EAA6B;AACzB,eAAO,IAAP;AACH;;AACD,aAAO,0BAAYlB,MAAZ,EAAoBgB,MAAM,CAACE,IAA3B,CAAP;AACH,KAND,CAME,OAAOP,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,GApBD;;AAsBA,QAAMU,YAAY,GAAG,MACjBpB,MADiB,IAEC;AAClB,UAAM;AAAES,MAAAA,MAAF;AAAUY,MAAAA;AAAV,QAAuBrB,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;AAEIW,QAAAA,QAFJ;AAGIZ,QAAAA;AAHJ,OAHE,CAAN;AASH;AACJ,GAvBD;;AAyBA,SAAO;AACHD,IAAAA,YADG;AAEHQ,IAAAA,SAFG;AAGHI,IAAAA,YAHG;AAIHlB,IAAAA,wBAJG;AAKHE,IAAAA;AALG,GAAP;AAOH,CAlGM","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\";\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 result = await entity.get(keys);\n if (!result || !result.Item) {\n return null;\n }\n return cleanupItem(entity, result.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/FormElasticsearchBodyModifierPlugin.ts"],"names":["FormElasticsearchBodyModifierPlugin","ElasticsearchBodyModifierPlugin"],"mappings":";;;;;;;;;;;AAAA;;AAEO,MAAMA,mCAAN,SAAkDC,gEAAlD,CAAkF;;;8BAA5ED,mC,UAC6B,8C","sourcesContent":["import { ElasticsearchBodyModifierPlugin } from \"@webiny/api-elasticsearch/plugins/definition/ElasticsearchBodyModifierPlugin\";\n\nexport class FormElasticsearchBodyModifierPlugin extends ElasticsearchBodyModifierPlugin {\n public static readonly type: string = \"formBuilder.elasticsearch.modifier.body.form\";\n}\n"],"file":"FormElasticsearchBodyModifierPlugin.js"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/plugins/FormElasticsearchFieldPlugin.ts"],"names":["FormElasticsearchFieldPlugin","ElasticsearchFieldPlugin"],"mappings":";;;;;;;;;;;AAAA;;AAEO,MAAMA,4BAAN,SAA2CC,kDAA3C,CAAoE;;;8BAA9DD,4B,UAC6B,gD","sourcesContent":["import { ElasticsearchFieldPlugin } from \"@webiny/api-elasticsearch/plugins/definition/ElasticsearchFieldPlugin\";\n\nexport class FormElasticsearchFieldPlugin extends ElasticsearchFieldPlugin {\n public static readonly type: string = \"formBuilder.elasticsearch.fieldDefinition.form\";\n}\n"],"file":"FormElasticsearchFieldPlugin.js"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/plugins/FormElasticsearchQueryModifierPlugin.ts"],"names":["FormElasticsearchQueryModifierPlugin","ElasticsearchQueryModifierPlugin"],"mappings":";;;;;;;;;;;AAAA;;AAEO,MAAMA,oCAAN,SAAmDC,kEAAnD,CAAoF;;;8BAA9ED,oC,UAC6B,+C","sourcesContent":["import { ElasticsearchQueryModifierPlugin } from \"@webiny/api-elasticsearch/plugins/definition/ElasticsearchQueryModifierPlugin\";\n\nexport class FormElasticsearchQueryModifierPlugin extends ElasticsearchQueryModifierPlugin {\n public static readonly type: string = \"formBuilder.elasticsearch.modifier.query.form\";\n}\n"],"file":"FormElasticsearchQueryModifierPlugin.js"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/plugins/FormElasticsearchSortModifierPlugin.ts"],"names":["FormElasticsearchSortModifierPlugin","ElasticsearchSortModifierPlugin"],"mappings":";;;;;;;;;;;AAAA;;AAEO,MAAMA,mCAAN,SAAkDC,gEAAlD,CAAkF;;;8BAA5ED,mC,UAC6B,8C","sourcesContent":["import { ElasticsearchSortModifierPlugin } from \"@webiny/api-elasticsearch/plugins/definition/ElasticsearchSortModifierPlugin\";\n\nexport class FormElasticsearchSortModifierPlugin extends ElasticsearchSortModifierPlugin {\n public static readonly type: string = \"formBuilder.elasticsearch.modifier.sort.form\";\n}\n"],"file":"FormElasticsearchSortModifierPlugin.js"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/plugins/SubmissionElasticsearchBodyModifierPlugin.ts"],"names":["SubmissionElasticsearchBodyModifierPlugin","ElasticsearchBodyModifierPlugin"],"mappings":";;;;;;;;;;;AAAA;;AAEO,MAAMA,yCAAN,SAAwDC,gEAAxD,CAAwF;;;8BAAlFD,yC,UAC6B,oD","sourcesContent":["import { ElasticsearchBodyModifierPlugin } from \"@webiny/api-elasticsearch/plugins/definition/ElasticsearchBodyModifierPlugin\";\n\nexport class SubmissionElasticsearchBodyModifierPlugin extends ElasticsearchBodyModifierPlugin {\n public static readonly type: string = \"formBuilder.elasticsearch.modifier.body.submission\";\n}\n"],"file":"SubmissionElasticsearchBodyModifierPlugin.js"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/plugins/SubmissionElasticsearchFieldPlugin.ts"],"names":["SubmissionElasticsearchFieldPlugin","ElasticsearchFieldPlugin"],"mappings":";;;;;;;;;;;AAAA;;AAEO,MAAMA,kCAAN,SAAiDC,kDAAjD,CAA0E;;;8BAApED,kC,UAC6B,sD","sourcesContent":["import { ElasticsearchFieldPlugin } from \"@webiny/api-elasticsearch/plugins/definition/ElasticsearchFieldPlugin\";\n\nexport class SubmissionElasticsearchFieldPlugin extends ElasticsearchFieldPlugin {\n public static readonly type: string = \"formBuilder.elasticsearch.fieldDefinition.submission\";\n}\n"],"file":"SubmissionElasticsearchFieldPlugin.js"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/plugins/SubmissionElasticsearchQueryModifierPlugin.ts"],"names":["SubmissionElasticsearchQueryModifierPlugin","ElasticsearchQueryModifierPlugin"],"mappings":";;;;;;;;;;;AAAA;;AAEO,MAAMA,0CAAN,SAAyDC,kEAAzD,CAA0F;;;8BAApFD,0C,UAC6B,qD","sourcesContent":["import { ElasticsearchQueryModifierPlugin } from \"@webiny/api-elasticsearch/plugins/definition/ElasticsearchQueryModifierPlugin\";\n\nexport class SubmissionElasticsearchQueryModifierPlugin extends ElasticsearchQueryModifierPlugin {\n public static readonly type: string = \"formBuilder.elasticsearch.modifier.query.submission\";\n}\n"],"file":"SubmissionElasticsearchQueryModifierPlugin.js"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/plugins/SubmissionElasticsearchSortModifierPlugin.ts"],"names":["SubmissionElasticsearchSortModifierPlugin","ElasticsearchSortModifierPlugin"],"mappings":";;;;;;;;;;;AAAA;;AAEO,MAAMA,yCAAN,SAAwDC,gEAAxD,CAAwF;;;8BAAlFD,yC,UAC6B,oD","sourcesContent":["import { ElasticsearchSortModifierPlugin } from \"@webiny/api-elasticsearch/plugins/definition/ElasticsearchSortModifierPlugin\";\n\nexport class SubmissionElasticsearchSortModifierPlugin extends ElasticsearchSortModifierPlugin {\n public static readonly type: string = \"formBuilder.elasticsearch.modifier.sort.submission\";\n}\n"],"file":"SubmissionElasticsearchSortModifierPlugin.js"}
package/types.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/types.ts"],"names":["ENTITIES"],"mappings":";;;;;;IAqBYA,Q;;;WAAAA,Q;AAAAA,EAAAA,Q;AAAAA,EAAAA,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 { Client } from \"@elastic/elasticsearch\";\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 ES_FORM = \"FormBuilderFormEs\",\n SUBMISSION = \"FormBuilderSubmission\",\n ES_SUBMISSION = \"FormBuilderSubmissionEs\",\n SYSTEM = \"FormBuilderSystem\",\n SETTINGS = \"FormBuilderSettings\"\n}\n\nexport interface FormBuilderStorageOperationsFactoryParams {\n documentClient: DocumentClient;\n elasticsearch: Client;\n table?: string;\n esTable?: 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 FormBuilderFormCreateKeyParams {\n id: string;\n tenant: string;\n locale: string;\n}\n\nexport interface FormBuilderFormStorageOperations extends BaseFormBuilderFormStorageOperations {\n createFormPartitionKey: (params: FormBuilderFormCreateKeyParams) => 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\" | \"esForm\" | \"submission\" | \"esSubmission\" | \"system\" | \"settings\";\n\nexport interface FormBuilderStorageOperations\n extends BaseFormBuilderStorageOperations,\n FormBuilderSettingsStorageOperations,\n FormBuilderSubmissionStorageOperations,\n FormBuilderFormStorageOperations,\n FormBuilderSystemStorageOperations {\n getTable(): Table;\n getEsTable(): Table;\n getEntities(): Record<Entities, Entity<any>>;\n}\n\nexport interface FormBuilderStorageOperationsFactory {\n (params: FormBuilderStorageOperationsFactoryParams): FormBuilderStorageOperations;\n}\n"],"file":"types.js"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/upgrades/5.16.0/index.ts"],"names":["upgradeForms","params","storageOperations","tenant","locale","webinyVersion","forms","items","listForms","where","latest","id","code","after","limit","sort","ex","console","log","message","length","entity","getEntities","form","formId","formRecords","partitionKey","createFormPartitionKey","record","PK","SK","push","putBatch","table","WebinyError","error","type","app","version","apply","context","tenancy","getCurrentTenant","i18nContent","getLocale","formBuilder","WEBINY_VERSION"],"mappings":"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","sourcesContent":["import { UpgradePlugin } from \"@webiny/api-upgrade/types\";\nimport { FormBuilderContext } from \"@webiny/api-form-builder/types\";\nimport { FormBuilderStorageOperations } from \"~/types\";\nimport { queryAll } from \"@webiny/db-dynamodb/utils/query\";\nimport { I18NLocale } from \"@webiny/api-i18n/types\";\nimport { Tenant } from \"@webiny/api-tenancy/types\";\nimport { parseIdentifier } from \"@webiny/utils\";\nimport { batchWriteAll } from \"@webiny/db-dynamodb/utils/batchWrite\";\nimport WebinyError from \"@webiny/error\";\n\ninterface Params {\n storageOperations: FormBuilderStorageOperations;\n tenant: Tenant;\n locale: I18NLocale;\n webinyVersion: string;\n}\n\nconst upgradeForms = async (params: Params): Promise<void> => {\n const { storageOperations, tenant, locale, webinyVersion } = params;\n /**\n * We need all of the forms from the database.\n * We are getting them from the Elasticsearch because there is no general PK for the forms.\n */\n let forms: any[] = [];\n try {\n const { items } = await storageOperations.listForms({\n where: {\n latest: true,\n tenant: tenant.id,\n locale: locale.code\n },\n after: null,\n limit: 10000,\n sort: [\"createdOn_DESC\"]\n });\n forms = items;\n } catch (ex) {\n console.log(ex.message);\n return;\n }\n\n if (forms.length === 0) {\n return;\n }\n\n const entity = storageOperations.getEntities().form;\n const items: any[] = [];\n /**\n * ## Regular DynamoDB table.\n * We need to get all the records from all of the forms.\n * Unfortunately, we need to query in a loop to be able to get those forms.\n */\n for (const form of forms) {\n const { id: formId } = parseIdentifier(form.id);\n\n const formRecords: any[] = await queryAll({\n entity,\n partitionKey: storageOperations.createFormPartitionKey({\n id: form.id,\n tenant: tenant.id,\n locale: locale.code\n })\n });\n\n for (const record of formRecords) {\n /**\n * Checks for \"just in case\".\n */\n if (!record || !record.PK || !record.SK) {\n continue;\n }\n items.push(\n entity.putBatch({\n ...record,\n formId,\n webinyVersion\n })\n );\n }\n }\n /**\n * And finally write all the records to the database again.\n */\n try {\n await batchWriteAll({\n table: entity.table,\n items\n });\n } catch (ex) {\n throw new WebinyError(\"Could not update all form records.\", \"UPGRADE_FORM_RECORDS_ERROR\", {\n error: ex\n });\n }\n /**\n * ## Elasticsearch DynamoDB table.\n */\n};\n/**\n * This upgrade adds:\n * - formId (first part of the id) and webinyVersion to the form records\n */\nexport default (): UpgradePlugin<FormBuilderContext> => {\n return {\n type: \"api-upgrade\",\n app: \"form-builder\",\n version: \"5.16.0\",\n apply: async context => {\n const tenant = context.tenancy.getCurrentTenant();\n const locale = context.i18nContent.getLocale();\n const storageOperations = context.formBuilder\n .storageOperations as FormBuilderStorageOperations;\n\n await upgradeForms({\n storageOperations,\n tenant,\n locale,\n webinyVersion: context.WEBINY_VERSION\n });\n }\n };\n};\n"],"file":"index.js"}