@webiny/api-form-builder-so-ddb-es 5.34.8 → 5.35.0-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (72) hide show
  1. package/configurations.js +0 -11
  2. package/configurations.js.map +1 -1
  3. package/definitions/elasticsearch.js +0 -5
  4. package/definitions/elasticsearch.js.map +1 -1
  5. package/definitions/form.js +0 -5
  6. package/definitions/form.js.map +1 -1
  7. package/definitions/settings.js +0 -5
  8. package/definitions/settings.js.map +1 -1
  9. package/definitions/submission.js +0 -5
  10. package/definitions/submission.js.map +1 -1
  11. package/definitions/system.js +0 -5
  12. package/definitions/system.js.map +1 -1
  13. package/definitions/table.js +0 -3
  14. package/definitions/table.js.map +1 -1
  15. package/definitions/tableElasticsearch.js +0 -3
  16. package/definitions/tableElasticsearch.js.map +1 -1
  17. package/elasticsearch/createElasticsearchIndex.js +0 -11
  18. package/elasticsearch/createElasticsearchIndex.js.map +1 -1
  19. package/elasticsearch/indices/base.js +0 -3
  20. package/elasticsearch/indices/base.js.map +1 -1
  21. package/elasticsearch/indices/index.d.ts +1 -1
  22. package/elasticsearch/indices/index.js +0 -4
  23. package/elasticsearch/indices/index.js.map +1 -1
  24. package/elasticsearch/indices/japanese.js +0 -3
  25. package/elasticsearch/indices/japanese.js.map +1 -1
  26. package/index.d.ts +1 -0
  27. package/index.js +25 -35
  28. package/index.js.map +1 -1
  29. package/operations/form/elasticsearchBody.js +0 -27
  30. package/operations/form/elasticsearchBody.js.map +1 -1
  31. package/operations/form/elasticsearchFields.js +0 -3
  32. package/operations/form/elasticsearchFields.js.map +1 -1
  33. package/operations/form/fields.js +0 -3
  34. package/operations/form/fields.js.map +1 -1
  35. package/operations/form/index.js +2 -103
  36. package/operations/form/index.js.map +1 -1
  37. package/operations/settings/index.js +0 -20
  38. package/operations/settings/index.js.map +1 -1
  39. package/operations/submission/elasticsearchBody.js +0 -29
  40. package/operations/submission/elasticsearchBody.js.map +1 -1
  41. package/operations/submission/elasticsearchFields.js +0 -3
  42. package/operations/submission/elasticsearchFields.js.map +1 -1
  43. package/operations/submission/index.js +1 -49
  44. package/operations/submission/index.js.map +1 -1
  45. package/operations/system/index.js +0 -18
  46. package/operations/system/index.js.map +1 -1
  47. package/package.json +15 -15
  48. package/plugins/FormDynamoDbFieldPlugin.js +0 -5
  49. package/plugins/FormDynamoDbFieldPlugin.js.map +1 -1
  50. package/plugins/FormElasticsearchBodyModifierPlugin.js +0 -5
  51. package/plugins/FormElasticsearchBodyModifierPlugin.js.map +1 -1
  52. package/plugins/FormElasticsearchFieldPlugin.js +0 -5
  53. package/plugins/FormElasticsearchFieldPlugin.js.map +1 -1
  54. package/plugins/FormElasticsearchIndexPlugin.js +0 -5
  55. package/plugins/FormElasticsearchIndexPlugin.js.map +1 -1
  56. package/plugins/FormElasticsearchQueryModifierPlugin.js +0 -5
  57. package/plugins/FormElasticsearchQueryModifierPlugin.js.map +1 -1
  58. package/plugins/FormElasticsearchSortModifierPlugin.js +0 -5
  59. package/plugins/FormElasticsearchSortModifierPlugin.js.map +1 -1
  60. package/plugins/SubmissionElasticsearchBodyModifierPlugin.js +0 -5
  61. package/plugins/SubmissionElasticsearchBodyModifierPlugin.js.map +1 -1
  62. package/plugins/SubmissionElasticsearchFieldPlugin.js +0 -5
  63. package/plugins/SubmissionElasticsearchFieldPlugin.js.map +1 -1
  64. package/plugins/SubmissionElasticsearchQueryModifierPlugin.js +0 -5
  65. package/plugins/SubmissionElasticsearchQueryModifierPlugin.js.map +1 -1
  66. package/plugins/SubmissionElasticsearchSortModifierPlugin.js +0 -5
  67. package/plugins/SubmissionElasticsearchSortModifierPlugin.js.map +1 -1
  68. package/plugins/index.d.ts +10 -0
  69. package/plugins/index.js +115 -0
  70. package/plugins/index.js.map +1 -0
  71. package/types.js +0 -1
  72. package/types.js.map +1 -1
package/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"names":["reservedFields","isReserved","name","includes","WebinyError","createFormBuilderStorageOperations","params","attributes","table","tableName","esTable","esTableName","documentClient","elasticsearch","plugins","userPlugins","Object","values","forEach","attrs","keys","PluginsContainer","submissionElasticsearchFields","formElasticsearchFields","dynamoDbValueFilters","getElasticsearchOperators","elasticsearchIndexPlugins","createTable","createElasticsearchTable","entities","form","createFormEntity","entityName","ENTITIES","FORM","submission","createSubmissionEntity","SUBMISSION","system","createSystemEntity","SYSTEM","settings","createSettingsEntity","SETTINGS","esForm","createElasticsearchEntity","ES_FORM","esSubmission","ES_SUBMISSION","init","context","i18n","locales","onLocaleBeforeCreate","subscribe","locale","tenant","createElasticsearchIndex","code","upgrade","getTable","getEsTable","getEntities","createSystemStorageOperations","entity","createSettingsStorageOperations","createFormStorageOperations","esEntity","createSubmissionStorageOperations"],"sources":["index.ts"],"sourcesContent":["import dynamoDbValueFilters from \"@webiny/db-dynamodb/plugins/filters\";\nimport formElasticsearchFields from \"./operations/form/elasticsearchFields\";\nimport submissionElasticsearchFields from \"./operations/submission/elasticsearchFields\";\nimport WebinyError from \"@webiny/error\";\nimport { FormBuilderStorageOperationsFactory, ENTITIES } from \"~/types\";\nimport { createTable } from \"~/definitions/table\";\nimport { createFormEntity } from \"~/definitions/form\";\nimport { createSubmissionEntity } from \"~/definitions/submission\";\nimport { createSystemEntity } from \"~/definitions/system\";\nimport { createSettingsEntity } from \"~/definitions/settings\";\nimport { createSystemStorageOperations } from \"~/operations/system\";\nimport { createSubmissionStorageOperations } from \"~/operations/submission\";\nimport { createSettingsStorageOperations } from \"~/operations/settings\";\nimport { createFormStorageOperations } from \"~/operations/form\";\nimport { createElasticsearchTable } from \"~/definitions/tableElasticsearch\";\nimport { PluginsContainer } from \"@webiny/plugins\";\nimport { createElasticsearchEntity } from \"~/definitions/elasticsearch\";\nimport { getElasticsearchOperators } from \"@webiny/api-elasticsearch\";\nimport { elasticsearchIndexPlugins } from \"~/elasticsearch/indices\";\nimport { createElasticsearchIndex } from \"~/elasticsearch/createElasticsearchIndex\";\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: userPlugins\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 userPlugins || [],\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 * Built-in Elasticsearch index plugins\n */\n elasticsearchIndexPlugins()\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 ? attributes[ENTITIES.FORM] : {}\n }),\n submission: createSubmissionEntity({\n entityName: ENTITIES.SUBMISSION,\n table,\n attributes: attributes ? attributes[ENTITIES.SUBMISSION] : {}\n }),\n system: createSystemEntity({\n entityName: ENTITIES.SYSTEM,\n table,\n attributes: attributes ? attributes[ENTITIES.SYSTEM] : {}\n }),\n settings: createSettingsEntity({\n entityName: ENTITIES.SETTINGS,\n table,\n attributes: attributes ? attributes[ENTITIES.SETTINGS] : {}\n }),\n /**\n * Elasticsearch entities.\n */\n esForm: createElasticsearchEntity({\n entityName: ENTITIES.ES_FORM,\n table: esTable,\n attributes: attributes ? attributes[ENTITIES.ES_FORM] : {}\n }),\n esSubmission: createElasticsearchEntity({\n entityName: ENTITIES.ES_SUBMISSION,\n table: esTable,\n attributes: attributes ? attributes[ENTITIES.ES_SUBMISSION] : {}\n })\n };\n\n return {\n init: async context => {\n context.i18n.locales.onLocaleBeforeCreate.subscribe(async ({ locale, tenant }) => {\n await createElasticsearchIndex({\n elasticsearch,\n plugins,\n tenant,\n locale: locale.code\n });\n });\n },\n upgrade: null,\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"],"mappings":"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"}
1
+ {"version":3,"names":["reservedFields","isReserved","name","includes","WebinyError","createFormBuilderStorageOperations","params","attributes","table","tableName","esTable","esTableName","documentClient","elasticsearch","plugins","userPlugins","Object","values","forEach","attrs","keys","PluginsContainer","submissionElasticsearchFields","formElasticsearchFields","dynamoDbValueFilters","elasticsearchIndexPlugins","createTable","createElasticsearchTable","entities","form","createFormEntity","entityName","ENTITIES","FORM","submission","createSubmissionEntity","SUBMISSION","system","createSystemEntity","SYSTEM","settings","createSettingsEntity","SETTINGS","esForm","createElasticsearchEntity","ES_FORM","esSubmission","ES_SUBMISSION","beforeInit","context","types","CompressionPlugin","type","ElasticsearchQueryBuilderOperatorPlugin","FormDynamoDbFieldPlugin","FormElasticsearchBodyModifierPlugin","FormElasticsearchFieldPlugin","FormElasticsearchIndexPlugin","FormElasticsearchQueryModifierPlugin","FormElasticsearchSortModifierPlugin","SubmissionElasticsearchBodyModifierPlugin","SubmissionElasticsearchFieldPlugin","SubmissionElasticsearchQueryModifierPlugin","SubmissionElasticsearchSortModifierPlugin","mergeByType","init","i18n","locales","onLocaleBeforeCreate","subscribe","locale","tenant","createElasticsearchIndex","code","getTable","getEsTable","getEntities","createSystemStorageOperations","entity","createSettingsStorageOperations","createFormStorageOperations","esEntity","createSubmissionStorageOperations"],"sources":["index.ts"],"sourcesContent":["import dynamoDbValueFilters from \"@webiny/db-dynamodb/plugins/filters\";\nimport formElasticsearchFields from \"./operations/form/elasticsearchFields\";\nimport submissionElasticsearchFields from \"./operations/submission/elasticsearchFields\";\nimport WebinyError from \"@webiny/error\";\nimport { FormBuilderStorageOperationsFactory, ENTITIES } from \"~/types\";\nimport { createTable } from \"~/definitions/table\";\nimport { createFormEntity } from \"~/definitions/form\";\nimport { createSubmissionEntity } from \"~/definitions/submission\";\nimport { createSystemEntity } from \"~/definitions/system\";\nimport { createSettingsEntity } from \"~/definitions/settings\";\nimport { createSystemStorageOperations } from \"~/operations/system\";\nimport { createSubmissionStorageOperations } from \"~/operations/submission\";\nimport { createSettingsStorageOperations } from \"~/operations/settings\";\nimport { createFormStorageOperations } from \"~/operations/form\";\nimport { createElasticsearchTable } from \"~/definitions/tableElasticsearch\";\nimport { PluginsContainer } from \"@webiny/plugins\";\nimport { createElasticsearchEntity } from \"~/definitions/elasticsearch\";\nimport {\n CompressionPlugin,\n ElasticsearchQueryBuilderOperatorPlugin\n} from \"@webiny/api-elasticsearch\";\nimport { elasticsearchIndexPlugins } from \"~/elasticsearch/indices\";\nimport { createElasticsearchIndex } from \"~/elasticsearch/createElasticsearchIndex\";\nimport { FormBuilderContext } from \"@webiny/api-form-builder/types\";\nimport {\n FormDynamoDbFieldPlugin,\n FormElasticsearchBodyModifierPlugin,\n FormElasticsearchFieldPlugin,\n FormElasticsearchIndexPlugin,\n FormElasticsearchQueryModifierPlugin,\n FormElasticsearchSortModifierPlugin,\n SubmissionElasticsearchBodyModifierPlugin,\n SubmissionElasticsearchFieldPlugin,\n SubmissionElasticsearchQueryModifierPlugin,\n SubmissionElasticsearchSortModifierPlugin\n} from \"~/plugins\";\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 * from \"./plugins\";\n\nexport const createFormBuilderStorageOperations: FormBuilderStorageOperationsFactory = params => {\n const {\n attributes,\n table: tableName,\n esTable: esTableName,\n documentClient,\n elasticsearch,\n plugins: userPlugins\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 userPlugins || [],\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 * Built-in Elasticsearch index plugins\n */\n elasticsearchIndexPlugins()\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 ? attributes[ENTITIES.FORM] : {}\n }),\n submission: createSubmissionEntity({\n entityName: ENTITIES.SUBMISSION,\n table,\n attributes: attributes ? attributes[ENTITIES.SUBMISSION] : {}\n }),\n system: createSystemEntity({\n entityName: ENTITIES.SYSTEM,\n table,\n attributes: attributes ? attributes[ENTITIES.SYSTEM] : {}\n }),\n settings: createSettingsEntity({\n entityName: ENTITIES.SETTINGS,\n table,\n attributes: attributes ? attributes[ENTITIES.SETTINGS] : {}\n }),\n /**\n * Elasticsearch entities.\n */\n esForm: createElasticsearchEntity({\n entityName: ENTITIES.ES_FORM,\n table: esTable,\n attributes: attributes ? attributes[ENTITIES.ES_FORM] : {}\n }),\n esSubmission: createElasticsearchEntity({\n entityName: ENTITIES.ES_SUBMISSION,\n table: esTable,\n attributes: attributes ? attributes[ENTITIES.ES_SUBMISSION] : {}\n })\n };\n\n return {\n beforeInit: async (context: FormBuilderContext) => {\n const types: string[] = [\n // Elasticsearch\n CompressionPlugin.type,\n ElasticsearchQueryBuilderOperatorPlugin.type,\n // Form Builder\n FormDynamoDbFieldPlugin.type,\n FormElasticsearchBodyModifierPlugin.type,\n FormElasticsearchFieldPlugin.type,\n FormElasticsearchIndexPlugin.type,\n FormElasticsearchQueryModifierPlugin.type,\n FormElasticsearchSortModifierPlugin.type,\n SubmissionElasticsearchBodyModifierPlugin.type,\n SubmissionElasticsearchFieldPlugin.type,\n SubmissionElasticsearchQueryModifierPlugin.type,\n SubmissionElasticsearchSortModifierPlugin.type\n ];\n for (const type of types) {\n plugins.mergeByType(context.plugins, type);\n }\n },\n init: async (context: FormBuilderContext) => {\n context.i18n.locales.onLocaleBeforeCreate.subscribe(async ({ locale, tenant }) => {\n await createElasticsearchIndex({\n elasticsearch,\n plugins,\n tenant,\n locale: locale.code\n });\n });\n },\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"],"mappings":"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"}
@@ -1,30 +1,20 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
-
5
4
  Object.defineProperty(exports, "__esModule", {
6
5
  value: true
7
6
  });
8
7
  exports.createFormElasticType = exports.createElasticsearchBody = void 0;
9
-
10
8
  var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
11
-
12
9
  var _apiElasticsearch = require("@webiny/api-elasticsearch");
13
-
14
10
  var _FormElasticsearchFieldPlugin = require("../../plugins/FormElasticsearchFieldPlugin");
15
-
16
11
  var _FormElasticsearchSortModifierPlugin = require("../../plugins/FormElasticsearchSortModifierPlugin");
17
-
18
12
  var _FormElasticsearchBodyModifierPlugin = require("../../plugins/FormElasticsearchBodyModifierPlugin");
19
-
20
13
  var _FormElasticsearchQueryModifierPlugin = require("../../plugins/FormElasticsearchQueryModifierPlugin");
21
-
22
14
  const createFormElasticType = () => {
23
15
  return "fb.form";
24
16
  };
25
-
26
17
  exports.createFormElasticType = createFormElasticType;
27
-
28
18
  const createInitialQueryValue = () => {
29
19
  return {
30
20
  must: [
@@ -41,7 +31,6 @@ const createInitialQueryValue = () => {
41
31
  filter: []
42
32
  };
43
33
  };
44
-
45
34
  const createElasticsearchQuery = params => {
46
35
  const {
47
36
  plugins,
@@ -52,7 +41,6 @@ const createElasticsearchQuery = params => {
52
41
  /**
53
42
  * Be aware that, if having more registered operator plugins of same type, the last one will be used.
54
43
  */
55
-
56
44
  const operatorPlugins = (0, _apiElasticsearch.getElasticsearchOperatorPluginsByLocale)(plugins, initialWhere.locale);
57
45
  const where = (0, _objectSpread2.default)({}, initialWhere);
58
46
  /**
@@ -61,9 +49,7 @@ const createElasticsearchQuery = params => {
61
49
  * When ES index is shared between tenants, we need to filter records by tenant ID.
62
50
  * No need for the tenant filtering otherwise as each index is for single tenant.
63
51
  */
64
-
65
52
  const sharedIndex = process.env.ELASTICSEARCH_SHARED_INDEXES === "true";
66
-
67
53
  if (sharedIndex && where.tenant) {
68
54
  query.must.push({
69
55
  term: {
@@ -75,13 +61,10 @@ const createElasticsearchQuery = params => {
75
61
  * Remove tenant so it is not applied again later.
76
62
  * Possibly tenant is not defined, but just in case, remove it.
77
63
  */
78
-
79
-
80
64
  delete where.tenant;
81
65
  /**
82
66
  * Add the locale to filtering.
83
67
  */
84
-
85
68
  query.must.push({
86
69
  term: {
87
70
  "locale.keyword": where.locale
@@ -91,7 +74,6 @@ const createElasticsearchQuery = params => {
91
74
  /**
92
75
  * We apply other conditions as they are passed via the where value.
93
76
  */
94
-
95
77
  (0, _apiElasticsearch.applyWhere)({
96
78
  query,
97
79
  where,
@@ -100,7 +82,6 @@ const createElasticsearchQuery = params => {
100
82
  });
101
83
  return query;
102
84
  };
103
-
104
85
  const createElasticsearchBody = params => {
105
86
  const {
106
87
  plugins,
@@ -122,22 +103,18 @@ const createElasticsearchBody = params => {
122
103
  fieldPlugins
123
104
  });
124
105
  const queryModifiers = plugins.byType(_FormElasticsearchQueryModifierPlugin.FormElasticsearchQueryModifierPlugin.type);
125
-
126
106
  for (const plugin of queryModifiers) {
127
107
  plugin.modifyQuery({
128
108
  query,
129
109
  where
130
110
  });
131
111
  }
132
-
133
112
  const sortModifiers = plugins.byType(_FormElasticsearchSortModifierPlugin.FormElasticsearchSortModifierPlugin.type);
134
-
135
113
  for (const plugin of sortModifiers) {
136
114
  plugin.modifySort({
137
115
  sort
138
116
  });
139
117
  }
140
-
141
118
  const body = {
142
119
  query: {
143
120
  constant_score: {
@@ -147,7 +124,6 @@ const createElasticsearchBody = params => {
147
124
  }
148
125
  },
149
126
  size: limit + 1,
150
-
151
127
  /**
152
128
  * Casting as any is required due to search_after is accepting an array of values.
153
129
  * Which is correct in some cases. In our case, it is not.
@@ -157,14 +133,11 @@ const createElasticsearchBody = params => {
157
133
  sort
158
134
  };
159
135
  const bodyModifiers = plugins.byType(_FormElasticsearchBodyModifierPlugin.FormElasticsearchBodyModifierPlugin.type);
160
-
161
136
  for (const plugin of bodyModifiers) {
162
137
  plugin.modifyBody({
163
138
  body
164
139
  });
165
140
  }
166
-
167
141
  return body;
168
142
  };
169
-
170
143
  exports.createElasticsearchBody = createElasticsearchBody;
@@ -1 +1 @@
1
- {"version":3,"names":["createFormElasticType","createInitialQueryValue","must","term","must_not","should","filter","createElasticsearchQuery","params","plugins","where","initialWhere","fieldPlugins","query","operatorPlugins","getElasticsearchOperatorPluginsByLocale","locale","sharedIndex","process","env","ELASTICSEARCH_SHARED_INDEXES","tenant","push","applyWhere","fields","operators","createElasticsearchBody","limit","initialLimit","sort","initialSort","after","byType","FormElasticsearchFieldPlugin","type","reduce","acc","plugin","field","createLimit","createSort","queryModifiers","FormElasticsearchQueryModifierPlugin","modifyQuery","sortModifiers","FormElasticsearchSortModifierPlugin","modifySort","body","constant_score","bool","size","search_after","decodeCursor","bodyModifiers","FormElasticsearchBodyModifierPlugin","modifyBody"],"sources":["elasticsearchBody.ts"],"sourcesContent":["import { SearchBody as esSearchBody } from \"elastic-ts\";\nimport {\n decodeCursor,\n getElasticsearchOperatorPluginsByLocale,\n applyWhere,\n createLimit,\n createSort\n} from \"@webiny/api-elasticsearch\";\nimport { ElasticsearchBoolQueryConfig } from \"@webiny/api-elasticsearch/types\";\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\";\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 = getElasticsearchOperatorPluginsByLocale(plugins, initialWhere.locale);\n\n const where: Partial<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 && where.tenant) {\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 as string\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 = plugins\n .byType<FormElasticsearchFieldPlugin>(FormElasticsearchFieldPlugin.type)\n .reduce((acc, plugin) => {\n acc[plugin.field] = plugin;\n return acc;\n }, {} as Record<string, FormElasticsearchFieldPlugin>);\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"],"mappings":"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"}
1
+ {"version":3,"names":["createFormElasticType","createInitialQueryValue","must","term","must_not","should","filter","createElasticsearchQuery","params","plugins","where","initialWhere","fieldPlugins","query","operatorPlugins","getElasticsearchOperatorPluginsByLocale","locale","sharedIndex","process","env","ELASTICSEARCH_SHARED_INDEXES","tenant","push","applyWhere","fields","operators","createElasticsearchBody","limit","initialLimit","sort","initialSort","after","byType","FormElasticsearchFieldPlugin","type","reduce","acc","plugin","field","createLimit","createSort","queryModifiers","FormElasticsearchQueryModifierPlugin","modifyQuery","sortModifiers","FormElasticsearchSortModifierPlugin","modifySort","body","constant_score","bool","size","search_after","decodeCursor","bodyModifiers","FormElasticsearchBodyModifierPlugin","modifyBody"],"sources":["elasticsearchBody.ts"],"sourcesContent":["import { SearchBody as esSearchBody } from \"elastic-ts\";\nimport {\n decodeCursor,\n getElasticsearchOperatorPluginsByLocale,\n applyWhere,\n createLimit,\n createSort\n} from \"@webiny/api-elasticsearch\";\nimport { ElasticsearchBoolQueryConfig } from \"@webiny/api-elasticsearch/types\";\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\";\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 = getElasticsearchOperatorPluginsByLocale(plugins, initialWhere.locale);\n\n const where: Partial<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 && where.tenant) {\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 as string\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 = plugins\n .byType<FormElasticsearchFieldPlugin>(FormElasticsearchFieldPlugin.type)\n .reduce((acc, plugin) => {\n acc[plugin.field] = plugin;\n return acc;\n }, {} as Record<string, FormElasticsearchFieldPlugin>);\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"],"mappings":"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"}
@@ -4,9 +4,7 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = void 0;
7
-
8
7
  var _FormElasticsearchFieldPlugin = require("../../plugins/FormElasticsearchFieldPlugin");
9
-
10
8
  var _default = () => [new _FormElasticsearchFieldPlugin.FormElasticsearchFieldPlugin({
11
9
  field: "createdOn",
12
10
  unmappedType: "date"
@@ -29,5 +27,4 @@ var _default = () => [new _FormElasticsearchFieldPlugin.FormElasticsearchFieldPl
29
27
  new _FormElasticsearchFieldPlugin.FormElasticsearchFieldPlugin({
30
28
  field: _FormElasticsearchFieldPlugin.FormElasticsearchFieldPlugin.ALL
31
29
  })];
32
-
33
30
  exports.default = _default;
@@ -1 +1 @@
1
- {"version":3,"names":["FormElasticsearchFieldPlugin","field","unmappedType","path","ALL"],"sources":["elasticsearchFields.ts"],"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"],"mappings":";;;;;;;AAAA;;eAEe,MAAM,CACjB,IAAIA,0DAAJ,CAAiC;EAC7BC,KAAK,EAAE,WADsB;EAE7BC,YAAY,EAAE;AAFe,CAAjC,CADiB,EAKjB,IAAIF,0DAAJ,CAAiC;EAC7BC,KAAK,EAAE,SADsB;EAE7BC,YAAY,EAAE;AAFe,CAAjC,CALiB,EASjB,IAAIF,0DAAJ,CAAiC;EAC7BC,KAAK,EAAE,aADsB;EAE7BC,YAAY,EAAE;AAFe,CAAjC,CATiB,EAajB,IAAIF,0DAAJ,CAAiC;EAC7BC,KAAK,EAAE,SADsB;EAE7BE,IAAI,EAAE;AAFuB,CAAjC,CAbiB,EAiBjB,IAAIH,0DAAJ,CAAiC;EAC7BC,KAAK,EAAE,WADsB;EAE7BE,IAAI,EAAE;AAFuB,CAAjC,CAjBiB;AAqBjB;AACJ;AACA;AACI,IAAIH,0DAAJ,CAAiC;EAC7BC,KAAK,EAAED,0DAAA,CAA6BI;AADP,CAAjC,CAxBiB,C"}
1
+ {"version":3,"names":["FormElasticsearchFieldPlugin","field","unmappedType","path","ALL"],"sources":["elasticsearchFields.ts"],"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"],"mappings":";;;;;;AAAA;AAAsF,eAEvE,MAAM,CACjB,IAAIA,0DAA4B,CAAC;EAC7BC,KAAK,EAAE,WAAW;EAClBC,YAAY,EAAE;AAClB,CAAC,CAAC,EACF,IAAIF,0DAA4B,CAAC;EAC7BC,KAAK,EAAE,SAAS;EAChBC,YAAY,EAAE;AAClB,CAAC,CAAC,EACF,IAAIF,0DAA4B,CAAC;EAC7BC,KAAK,EAAE,aAAa;EACpBC,YAAY,EAAE;AAClB,CAAC,CAAC,EACF,IAAIF,0DAA4B,CAAC;EAC7BC,KAAK,EAAE,SAAS;EAChBE,IAAI,EAAE;AACV,CAAC,CAAC,EACF,IAAIH,0DAA4B,CAAC;EAC7BC,KAAK,EAAE,WAAW;EAClBE,IAAI,EAAE;AACV,CAAC,CAAC;AACF;AACJ;AACA;AACI,IAAIH,0DAA4B,CAAC;EAC7BC,KAAK,EAAED,0DAA4B,CAACI;AACxC,CAAC,CAAC,CACL;AAAA"}
@@ -4,12 +4,9 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = void 0;
7
-
8
7
  var _FormDynamoDbFieldPlugin = require("../../plugins/FormDynamoDbFieldPlugin");
9
-
10
8
  var _default = () => [new _FormDynamoDbFieldPlugin.FormDynamoDbFieldPlugin({
11
9
  field: "publishedOn",
12
10
  type: "date"
13
11
  })];
14
-
15
12
  exports.default = _default;
@@ -1 +1 @@
1
- {"version":3,"names":["FormDynamoDbFieldPlugin","field","type"],"sources":["fields.ts"],"sourcesContent":["import { FormDynamoDbFieldPlugin } from \"~/plugins/FormDynamoDbFieldPlugin\";\n\nexport default () => [\n new FormDynamoDbFieldPlugin({\n field: \"publishedOn\",\n type: \"date\"\n })\n];\n"],"mappings":";;;;;;;AAAA;;eAEe,MAAM,CACjB,IAAIA,gDAAJ,CAA4B;EACxBC,KAAK,EAAE,aADiB;EAExBC,IAAI,EAAE;AAFkB,CAA5B,CADiB,C"}
1
+ {"version":3,"names":["FormDynamoDbFieldPlugin","field","type"],"sources":["fields.ts"],"sourcesContent":["import { FormDynamoDbFieldPlugin } from \"~/plugins/FormDynamoDbFieldPlugin\";\n\nexport default () => [\n new FormDynamoDbFieldPlugin({\n field: \"publishedOn\",\n type: \"date\"\n })\n];\n"],"mappings":";;;;;;AAAA;AAA4E,eAE7D,MAAM,CACjB,IAAIA,gDAAuB,CAAC;EACxBC,KAAK,EAAE,aAAa;EACpBC,IAAI,EAAE;AACV,CAAC,CAAC,CACL;AAAA"}