@webiny/api-headless-cms-ddb-es 6.2.0 → 6.3.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.
- package/features/CmsEntryOpenSearchFieldIndex/feature.d.ts +4 -1
- package/features/CmsEntryOpenSearchFilter/feature.d.ts +4 -1
- package/features/CmsEntryOpenSearchIndex/feature.d.ts +4 -1
- package/features/CmsEntryOpenSearchValueSearch/feature.d.ts +4 -1
- package/helpers/entryIndexHelpers.js.map +1 -1
- package/operations/entry/transformations/index.js.map +1 -1
- package/package.json +23 -24
|
@@ -1 +1,4 @@
|
|
|
1
|
-
export declare const CmsEntryOpenSearchFieldIndexFeature:
|
|
1
|
+
export declare const CmsEntryOpenSearchFieldIndexFeature: {
|
|
2
|
+
name: string;
|
|
3
|
+
register(container: import("@webiny/di").Container): void;
|
|
4
|
+
};
|
|
@@ -1 +1,4 @@
|
|
|
1
|
-
export declare const CmsEntryOpenSearchValueSearchFeature:
|
|
1
|
+
export declare const CmsEntryOpenSearchValueSearchFeature: {
|
|
2
|
+
name: string;
|
|
3
|
+
register(container: import("@webiny/di").Container): void;
|
|
4
|
+
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["WebinyError","getFieldIdentifier","getFieldIdentifiers","prepareEntryToIndex","params","fieldRegistry","fieldIndexRegistry","storageEntry","entry","model","getFieldIndex","type","fieldIndexing","get","getDefault","values","rawValues","field","fields","identifier","fieldIndex","value","rawValue","toIndex","extractEntriesFromIndex","entries","list","indexValues","fieldType","identifiers","key","valueIdentifier","rawKey","rawValueIdentifier","fromIndex","ex","message","code","newEntry","push"],"sources":["entryIndexHelpers.ts"],"sourcesContent":["import { WebinyError } from \"@webiny/error\";\nimport type { CmsEntry, CmsEntryValues, CmsModel } from \"@webiny/api-headless-cms/types/index.js\";\nimport type { CmsIndexEntry } from \"~/types.js\";\nimport { getFieldIdentifier, getFieldIdentifiers } from \"~/helpers/fieldIdentifier.js\";\nimport type { CmsModelFieldToGraphQLRegistry } from \"@webiny/api-headless-cms/exports/api/cms/graphql.js\";\nimport type {\n CmsEntryOpenSearchFieldIndex,\n CmsEntryOpenSearchFieldIndexRegistry\n} from \"~/features/CmsEntryOpenSearchFieldIndex/index.js\";\n\ninterface SetupEntriesIndexHelpersParams {\n fieldRegistry: CmsModelFieldToGraphQLRegistry.Interface;\n fieldIndexRegistry: CmsEntryOpenSearchFieldIndexRegistry.Interface;\n}\n\ninterface ExtractEntriesFromIndexParams
|
|
1
|
+
{"version":3,"names":["WebinyError","getFieldIdentifier","getFieldIdentifiers","prepareEntryToIndex","params","fieldRegistry","fieldIndexRegistry","storageEntry","entry","model","getFieldIndex","type","fieldIndexing","get","getDefault","values","rawValues","field","fields","identifier","fieldIndex","value","rawValue","toIndex","extractEntriesFromIndex","entries","list","indexValues","fieldType","identifiers","key","valueIdentifier","rawKey","rawValueIdentifier","fromIndex","ex","message","code","newEntry","push"],"sources":["entryIndexHelpers.ts"],"sourcesContent":["import { WebinyError } from \"@webiny/error\";\nimport type { CmsEntry, CmsEntryValues, CmsModel } from \"@webiny/api-headless-cms/types/index.js\";\nimport type { CmsIndexEntry } from \"~/types.js\";\nimport { getFieldIdentifier, getFieldIdentifiers } from \"~/helpers/fieldIdentifier.js\";\nimport type { CmsModelFieldToGraphQLRegistry } from \"@webiny/api-headless-cms/exports/api/cms/graphql.js\";\nimport type {\n CmsEntryOpenSearchFieldIndex,\n CmsEntryOpenSearchFieldIndexRegistry\n} from \"~/features/CmsEntryOpenSearchFieldIndex/index.js\";\n\ninterface SetupEntriesIndexHelpersParams {\n fieldRegistry: CmsModelFieldToGraphQLRegistry.Interface;\n fieldIndexRegistry: CmsEntryOpenSearchFieldIndexRegistry.Interface;\n}\n\ninterface ExtractEntriesFromIndexParams<\n T extends CmsEntryValues = CmsEntryValues\n> extends SetupEntriesIndexHelpersParams {\n model: CmsModel;\n entries: CmsIndexEntry<T>[];\n}\n\ninterface PrepareElasticsearchDataParams<\n T extends CmsEntryValues = CmsEntryValues\n> extends SetupEntriesIndexHelpersParams {\n model: CmsModel;\n entry: CmsEntry<T>;\n storageEntry: CmsEntry<T>;\n}\n\nexport const prepareEntryToIndex = <T extends CmsEntryValues = CmsEntryValues>(\n params: PrepareElasticsearchDataParams<T>\n): CmsIndexEntry<T> => {\n const { fieldRegistry, fieldIndexRegistry, storageEntry, entry, model } = params;\n\n function getFieldIndex(type: string): CmsEntryOpenSearchFieldIndex.Interface {\n const fieldIndexing = fieldIndexRegistry.get(type);\n if (fieldIndexing) {\n return fieldIndexing;\n }\n return fieldIndexRegistry.getDefault();\n }\n\n // These objects will contain values processed by field index implementations\n const values: T = {} as T;\n const rawValues: T = {} as T;\n\n // We're only interested in current model fields.\n for (const field of model.fields) {\n const identifier = getFieldIdentifier(storageEntry.values, field) as keyof T;\n if (!identifier) {\n continue;\n }\n\n const fieldIndex = getFieldIndex(field.type);\n\n const { value, rawValue } = fieldIndex.toIndex({\n fieldRegistry,\n model,\n field,\n rawValue: entry.values[identifier],\n value: storageEntry.values[identifier],\n getFieldIndex\n });\n\n if (typeof value !== \"undefined\") {\n values[identifier] = value;\n }\n\n if (typeof rawValue !== \"undefined\") {\n rawValues[identifier] = rawValue;\n }\n }\n return {\n ...storageEntry,\n values,\n rawValues\n };\n};\n\nexport const extractEntriesFromIndex = <T extends CmsEntryValues = CmsEntryValues>({\n fieldRegistry,\n fieldIndexRegistry,\n entries,\n model\n}: ExtractEntriesFromIndexParams<T>): CmsEntry<T>[] => {\n function getFieldIndex(type: string): CmsEntryOpenSearchFieldIndex.Interface {\n const fieldIndex = fieldIndexRegistry.get(type);\n if (fieldIndex) {\n return fieldIndex;\n }\n return fieldIndexRegistry.getDefault();\n }\n\n const list: CmsEntry<T>[] = [];\n\n for (const entry of entries) {\n // This object will contain values processed by field index plugins\n const indexValues: T = {} as T;\n\n // We only consider fields that are present in the model\n for (const field of model.fields) {\n const fieldType = fieldRegistry.get(field.type);\n if (!fieldType) {\n throw new WebinyError(\n `Missing field type \"${field.type}\". Extract entries from index.`\n );\n }\n\n const fieldIndex = getFieldIndex(field.type);\n /**\n * We can safely cast as the code will not continue in case of no identifiers.\n */\n const identifiers = getFieldIdentifiers(entry.values, entry.rawValues, field);\n if (!identifiers) {\n continue;\n }\n try {\n const key = identifiers.valueIdentifier as keyof T;\n const rawKey = identifiers.rawValueIdentifier as keyof T;\n indexValues[key] = fieldIndex.fromIndex({\n fieldRegistry,\n model,\n field,\n getFieldIndex,\n value: entry.values[key || rawKey],\n /**\n * Possibly no rawValues so we must check for the existence of the field.\n */\n rawValue: entry.rawValues ? entry.rawValues[rawKey || key] : null\n });\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not transform entry field from index.\",\n ex.code || \"FIELD_FROM_INDEX_ERROR\",\n {\n field,\n entry\n }\n );\n }\n }\n /**\n * Let's have a new entry so we do not modify the original one.\n */\n const newEntry: CmsEntry<T> = {\n ...entry,\n values: indexValues\n };\n /**\n * If we want to remove the rawValues, TYPE, latest, published and __type, we must make them optional or ignore them.\n */\n // @ts-expect-error\n delete newEntry[\"rawValues\"];\n // @ts-expect-error\n delete newEntry[\"TYPE\"];\n // @ts-expect-error\n delete newEntry[\"__type\"];\n // @ts-expect-error\n delete newEntry[\"latest\"];\n // @ts-expect-error\n delete newEntry[\"published\"];\n list.push({\n ...newEntry\n });\n }\n\n return list;\n};\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["transformEntryKeys","transformEntryToIndex","modifyEntryValues","modifyEntryValuesCallable","createLatestRecordType","createPublishedRecordType","WebinyError","createTransformer","params","model","fieldRegistry","fieldIndexRegistry","entry","baseEntry","storageEntry","baseStorageEntry","transformedToIndex","initialTransformedEntryToIndex","undefined","compressionHandler","valuesModifiers","transformedEntryKeys","transformedEntryToIndex","modifiedEntryValues","elasticsearchLatestEntry","elasticsearchPublishedEntry","applicableModifiers","filter","m","canModify","modelId","modifiedEntry","modifiers","modifiedStorageEntry","transformToIndex","length","result","getElasticsearchLatestEntryData","compress","latest","TYPE","__type","getElasticsearchPublishedEntryData","published"],"sources":["index.ts"],"sourcesContent":["import type {\n CmsEntry,\n CmsEntryValues,\n CmsStorageEntry,\n StorageOperationsCmsModel\n} from \"@webiny/api-headless-cms/types/index.js\";\nimport { transformEntryKeys } from \"./transformEntryKeys.js\";\nimport type { CmsIndexEntry } from \"~/types.js\";\nimport { transformEntryToIndex } from \"~/operations/entry/transformations/transformEntryToIndex.js\";\nimport type { CmsEntryOpenSearchValuesModifier } from \"~/features/CmsEntryOpenSearchValuesModifier/index.js\";\nimport { modifyEntryValues as modifyEntryValuesCallable } from \"~/operations/entry/transformations/modifyEntryValues.js\";\nimport {\n createLatestRecordType,\n createPublishedRecordType\n} from \"~/operations/entry/recordType.js\";\nimport WebinyError from \"@webiny/error\";\nimport type { CmsModelFieldToGraphQLRegistry } from \"@webiny/api-headless-cms/features/graphql/index.js\";\nimport { CompressionHandler } from \"@webiny/utils/features/compression/abstractions/CompressionHandler.js\";\nimport { CmsEntryOpenSearchFieldIndexRegistry } from \"~/features/CmsEntryOpenSearchFieldIndex/index.js\";\n\ninterface BaseTransformerParams<T extends CmsEntryValues = CmsEntryValues> {\n model: StorageOperationsCmsModel<T>;\n fieldRegistry: CmsModelFieldToGraphQLRegistry.Interface;\n fieldIndexRegistry: CmsEntryOpenSearchFieldIndexRegistry.Interface;\n compressionHandler: Pick<CompressionHandler.Interface, \"compress\">;\n valuesModifiers: CmsEntryOpenSearchValuesModifier.Interface[];\n}\n\ninterface EntryTransformerParams<T extends CmsEntryValues = CmsEntryValues>\n extends BaseTransformerParams<T> {\n entry: CmsEntry<T>;\n storageEntry: CmsEntry<T>;\n transformedToIndex?: never;\n}\n\ninterface TransformedEntryTransformerParams<T extends CmsEntryValues = CmsEntryValues>\n extends BaseTransformerParams<T> {\n entry?: never;\n storageEntry?: never;\n transformedToIndex: CmsIndexEntry<T>;\n}\n\ninterface TransformedKeysEntry<T extends CmsEntryValues = CmsEntryValues> {\n entry: CmsEntry<T>;\n storageEntry: CmsEntry<T>;\n}\n\ninterface ModifiedEntryValues<T extends CmsEntryValues = CmsEntryValues> {\n entry: CmsEntry<T>;\n storageEntry: CmsEntry<T>;\n}\n\ninterface TransformerResult<T extends CmsEntryValues = CmsEntryValues> {\n transformEntryKeys: () => TransformedKeysEntry<T>;\n transformToIndex: () => CmsIndexEntry<T>;\n getElasticsearchLatestEntryData: () => Promise<Record<string, any>>;\n getElasticsearchPublishedEntryData: () => Promise<Record<string, any>>;\n}\n\nexport const createTransformer = <T extends CmsEntryValues = CmsEntryValues>(\n params: EntryTransformerParams<T> | TransformedEntryTransformerParams<T>\n): TransformerResult<T> => {\n const {\n model,\n fieldRegistry,\n fieldIndexRegistry,\n entry: baseEntry,\n storageEntry: baseStorageEntry,\n transformedToIndex: initialTransformedEntryToIndex = undefined,\n compressionHandler,\n valuesModifiers\n } = params;\n\n let transformedEntryKeys: TransformedKeysEntry<T> | undefined = undefined;\n let transformedEntryToIndex: CmsIndexEntry<T> | undefined = initialTransformedEntryToIndex;\n let modifiedEntryValues: ModifiedEntryValues<T> | undefined = undefined;\n let elasticsearchLatestEntry: any = undefined;\n let elasticsearchPublishedEntry: any = undefined;\n\n const applicableModifiers = valuesModifiers.filter(m => m.canModify(model.modelId));\n\n const modifyEntryValues = () => {\n if (initialTransformedEntryToIndex || !baseEntry) {\n throw new WebinyError(\n `Should not call the \"modifyEntryValues\" when \"transformedToIndex\" is provided.`,\n \"METHOD_NOT_ALLOWED\",\n {\n entry: initialTransformedEntryToIndex\n }\n );\n }\n if (modifiedEntryValues) {\n return modifiedEntryValues;\n }\n const modifiedEntry = modifyEntryValuesCallable<T>({\n modifiers: applicableModifiers,\n model,\n entry: baseEntry\n });\n const modifiedStorageEntry = modifyEntryValuesCallable<T>({\n modifiers: applicableModifiers,\n model,\n entry: baseStorageEntry\n });\n\n return (modifiedEntryValues = transformEntryKeys<T>({\n model,\n entry: modifiedEntry,\n storageEntry: modifiedStorageEntry\n }));\n };\n\n return {\n transformEntryKeys: function () {\n if (initialTransformedEntryToIndex || !baseEntry) {\n throw new WebinyError(\n `Should not call the \"modifyEntryValues\" when \"transformedToIndex\" is provided.`,\n \"METHOD_NOT_ALLOWED\",\n {\n entry: initialTransformedEntryToIndex\n }\n );\n }\n if (transformedEntryKeys) {\n return transformedEntryKeys;\n }\n return (transformedEntryKeys = transformEntryKeys({\n model,\n entry: baseEntry,\n storageEntry: baseStorageEntry\n }));\n },\n transformToIndex: function () {\n if (transformedEntryToIndex) {\n return transformedEntryToIndex;\n }\n let entry: CmsEntry<T>;\n let storageEntry: CmsStorageEntry<T>;\n /**\n * In case there are value modifier plugins, we need to\n * - run modifiers\n * - transform keys\n */\n if (applicableModifiers.length > 0) {\n const result = modifyEntryValues();\n entry = result.entry;\n storageEntry = result.storageEntry;\n }\n // In case there are no modifier plugins, just transform the keys - or used already transformed.\n else {\n const result = this.transformEntryKeys();\n entry = result.entry;\n storageEntry = result.storageEntry;\n }\n return (transformedEntryToIndex = transformEntryToIndex<T>({\n model,\n entry,\n storageEntry,\n fieldRegistry,\n fieldIndexRegistry\n }));\n },\n getElasticsearchLatestEntryData: async function () {\n if (elasticsearchLatestEntry) {\n return elasticsearchLatestEntry;\n }\n const entry = this.transformToIndex();\n\n return (elasticsearchLatestEntry = await compressionHandler.compress({\n ...entry,\n latest: true,\n TYPE: createLatestRecordType(),\n __type: createLatestRecordType()\n }));\n },\n getElasticsearchPublishedEntryData: async function () {\n if (elasticsearchPublishedEntry) {\n return elasticsearchPublishedEntry;\n }\n const entry = this.transformToIndex();\n\n return (elasticsearchPublishedEntry = await compressionHandler.compress({\n ...entry,\n published: true,\n TYPE: createPublishedRecordType(),\n __type: createPublishedRecordType()\n }));\n }\n };\n};\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["transformEntryKeys","transformEntryToIndex","modifyEntryValues","modifyEntryValuesCallable","createLatestRecordType","createPublishedRecordType","WebinyError","createTransformer","params","model","fieldRegistry","fieldIndexRegistry","entry","baseEntry","storageEntry","baseStorageEntry","transformedToIndex","initialTransformedEntryToIndex","undefined","compressionHandler","valuesModifiers","transformedEntryKeys","transformedEntryToIndex","modifiedEntryValues","elasticsearchLatestEntry","elasticsearchPublishedEntry","applicableModifiers","filter","m","canModify","modelId","modifiedEntry","modifiers","modifiedStorageEntry","transformToIndex","length","result","getElasticsearchLatestEntryData","compress","latest","TYPE","__type","getElasticsearchPublishedEntryData","published"],"sources":["index.ts"],"sourcesContent":["import type {\n CmsEntry,\n CmsEntryValues,\n CmsStorageEntry,\n StorageOperationsCmsModel\n} from \"@webiny/api-headless-cms/types/index.js\";\nimport { transformEntryKeys } from \"./transformEntryKeys.js\";\nimport type { CmsIndexEntry } from \"~/types.js\";\nimport { transformEntryToIndex } from \"~/operations/entry/transformations/transformEntryToIndex.js\";\nimport type { CmsEntryOpenSearchValuesModifier } from \"~/features/CmsEntryOpenSearchValuesModifier/index.js\";\nimport { modifyEntryValues as modifyEntryValuesCallable } from \"~/operations/entry/transformations/modifyEntryValues.js\";\nimport {\n createLatestRecordType,\n createPublishedRecordType\n} from \"~/operations/entry/recordType.js\";\nimport WebinyError from \"@webiny/error\";\nimport type { CmsModelFieldToGraphQLRegistry } from \"@webiny/api-headless-cms/features/graphql/index.js\";\nimport { CompressionHandler } from \"@webiny/utils/features/compression/abstractions/CompressionHandler.js\";\nimport { CmsEntryOpenSearchFieldIndexRegistry } from \"~/features/CmsEntryOpenSearchFieldIndex/index.js\";\n\ninterface BaseTransformerParams<T extends CmsEntryValues = CmsEntryValues> {\n model: StorageOperationsCmsModel<T>;\n fieldRegistry: CmsModelFieldToGraphQLRegistry.Interface;\n fieldIndexRegistry: CmsEntryOpenSearchFieldIndexRegistry.Interface;\n compressionHandler: Pick<CompressionHandler.Interface, \"compress\">;\n valuesModifiers: CmsEntryOpenSearchValuesModifier.Interface[];\n}\n\ninterface EntryTransformerParams<\n T extends CmsEntryValues = CmsEntryValues\n> extends BaseTransformerParams<T> {\n entry: CmsEntry<T>;\n storageEntry: CmsEntry<T>;\n transformedToIndex?: never;\n}\n\ninterface TransformedEntryTransformerParams<\n T extends CmsEntryValues = CmsEntryValues\n> extends BaseTransformerParams<T> {\n entry?: never;\n storageEntry?: never;\n transformedToIndex: CmsIndexEntry<T>;\n}\n\ninterface TransformedKeysEntry<T extends CmsEntryValues = CmsEntryValues> {\n entry: CmsEntry<T>;\n storageEntry: CmsEntry<T>;\n}\n\ninterface ModifiedEntryValues<T extends CmsEntryValues = CmsEntryValues> {\n entry: CmsEntry<T>;\n storageEntry: CmsEntry<T>;\n}\n\ninterface TransformerResult<T extends CmsEntryValues = CmsEntryValues> {\n transformEntryKeys: () => TransformedKeysEntry<T>;\n transformToIndex: () => CmsIndexEntry<T>;\n getElasticsearchLatestEntryData: () => Promise<Record<string, any>>;\n getElasticsearchPublishedEntryData: () => Promise<Record<string, any>>;\n}\n\nexport const createTransformer = <T extends CmsEntryValues = CmsEntryValues>(\n params: EntryTransformerParams<T> | TransformedEntryTransformerParams<T>\n): TransformerResult<T> => {\n const {\n model,\n fieldRegistry,\n fieldIndexRegistry,\n entry: baseEntry,\n storageEntry: baseStorageEntry,\n transformedToIndex: initialTransformedEntryToIndex = undefined,\n compressionHandler,\n valuesModifiers\n } = params;\n\n let transformedEntryKeys: TransformedKeysEntry<T> | undefined = undefined;\n let transformedEntryToIndex: CmsIndexEntry<T> | undefined = initialTransformedEntryToIndex;\n let modifiedEntryValues: ModifiedEntryValues<T> | undefined = undefined;\n let elasticsearchLatestEntry: any = undefined;\n let elasticsearchPublishedEntry: any = undefined;\n\n const applicableModifiers = valuesModifiers.filter(m => m.canModify(model.modelId));\n\n const modifyEntryValues = () => {\n if (initialTransformedEntryToIndex || !baseEntry) {\n throw new WebinyError(\n `Should not call the \"modifyEntryValues\" when \"transformedToIndex\" is provided.`,\n \"METHOD_NOT_ALLOWED\",\n {\n entry: initialTransformedEntryToIndex\n }\n );\n }\n if (modifiedEntryValues) {\n return modifiedEntryValues;\n }\n const modifiedEntry = modifyEntryValuesCallable<T>({\n modifiers: applicableModifiers,\n model,\n entry: baseEntry\n });\n const modifiedStorageEntry = modifyEntryValuesCallable<T>({\n modifiers: applicableModifiers,\n model,\n entry: baseStorageEntry\n });\n\n return (modifiedEntryValues = transformEntryKeys<T>({\n model,\n entry: modifiedEntry,\n storageEntry: modifiedStorageEntry\n }));\n };\n\n return {\n transformEntryKeys: function () {\n if (initialTransformedEntryToIndex || !baseEntry) {\n throw new WebinyError(\n `Should not call the \"modifyEntryValues\" when \"transformedToIndex\" is provided.`,\n \"METHOD_NOT_ALLOWED\",\n {\n entry: initialTransformedEntryToIndex\n }\n );\n }\n if (transformedEntryKeys) {\n return transformedEntryKeys;\n }\n return (transformedEntryKeys = transformEntryKeys({\n model,\n entry: baseEntry,\n storageEntry: baseStorageEntry\n }));\n },\n transformToIndex: function () {\n if (transformedEntryToIndex) {\n return transformedEntryToIndex;\n }\n let entry: CmsEntry<T>;\n let storageEntry: CmsStorageEntry<T>;\n /**\n * In case there are value modifier plugins, we need to\n * - run modifiers\n * - transform keys\n */\n if (applicableModifiers.length > 0) {\n const result = modifyEntryValues();\n entry = result.entry;\n storageEntry = result.storageEntry;\n }\n // In case there are no modifier plugins, just transform the keys - or used already transformed.\n else {\n const result = this.transformEntryKeys();\n entry = result.entry;\n storageEntry = result.storageEntry;\n }\n return (transformedEntryToIndex = transformEntryToIndex<T>({\n model,\n entry,\n storageEntry,\n fieldRegistry,\n fieldIndexRegistry\n }));\n },\n getElasticsearchLatestEntryData: async function () {\n if (elasticsearchLatestEntry) {\n return elasticsearchLatestEntry;\n }\n const entry = this.transformToIndex();\n\n return (elasticsearchLatestEntry = await compressionHandler.compress({\n ...entry,\n latest: true,\n TYPE: createLatestRecordType(),\n __type: createLatestRecordType()\n }));\n },\n getElasticsearchPublishedEntryData: async function () {\n if (elasticsearchPublishedEntry) {\n return elasticsearchPublishedEntry;\n }\n const entry = this.transformToIndex();\n\n return (elasticsearchPublishedEntry = await compressionHandler.compress({\n ...entry,\n published: true,\n TYPE: createPublishedRecordType(),\n __type: createPublishedRecordType()\n }));\n }\n };\n};\n"],"mappings":"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","ignoreList":[]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@webiny/api-headless-cms-ddb-es",
|
|
3
|
-
"version": "6.
|
|
3
|
+
"version": "6.3.0-beta.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"main": "index.js",
|
|
6
6
|
"keywords": [
|
|
@@ -27,41 +27,40 @@
|
|
|
27
27
|
],
|
|
28
28
|
"license": "MIT",
|
|
29
29
|
"dependencies": {
|
|
30
|
-
"@webiny/api": "6.
|
|
31
|
-
"@webiny/api-elasticsearch-tasks": "6.
|
|
32
|
-
"@webiny/api-headless-cms": "6.
|
|
33
|
-
"@webiny/api-opensearch": "6.
|
|
34
|
-
"@webiny/aws-sdk": "6.
|
|
35
|
-
"@webiny/db-dynamodb": "6.
|
|
36
|
-
"@webiny/error": "6.
|
|
37
|
-
"@webiny/feature": "6.
|
|
38
|
-
"@webiny/handler-db": "6.
|
|
39
|
-
"@webiny/plugins": "6.
|
|
40
|
-
"@webiny/utils": "6.
|
|
30
|
+
"@webiny/api": "6.3.0-beta.0",
|
|
31
|
+
"@webiny/api-elasticsearch-tasks": "6.3.0-beta.0",
|
|
32
|
+
"@webiny/api-headless-cms": "6.3.0-beta.0",
|
|
33
|
+
"@webiny/api-opensearch": "6.3.0-beta.0",
|
|
34
|
+
"@webiny/aws-sdk": "6.3.0-beta.0",
|
|
35
|
+
"@webiny/db-dynamodb": "6.3.0-beta.0",
|
|
36
|
+
"@webiny/error": "6.3.0-beta.0",
|
|
37
|
+
"@webiny/feature": "6.3.0-beta.0",
|
|
38
|
+
"@webiny/handler-db": "6.3.0-beta.0",
|
|
39
|
+
"@webiny/plugins": "6.3.0-beta.0",
|
|
40
|
+
"@webiny/utils": "6.3.0-beta.0",
|
|
41
41
|
"dataloader": "2.2.3",
|
|
42
42
|
"lodash": "4.18.1"
|
|
43
43
|
},
|
|
44
44
|
"devDependencies": {
|
|
45
45
|
"@types/jsonpack": "1.1.6",
|
|
46
|
-
"@webiny/api-core": "6.
|
|
47
|
-
"@webiny/api-dynamodb-to-elasticsearch": "6.
|
|
48
|
-
"@webiny/build-tools": "6.
|
|
46
|
+
"@webiny/api-core": "6.3.0-beta.0",
|
|
47
|
+
"@webiny/api-dynamodb-to-elasticsearch": "6.3.0-beta.0",
|
|
48
|
+
"@webiny/build-tools": "6.3.0-beta.0",
|
|
49
49
|
"@webiny/di": "0.2.3",
|
|
50
|
-
"@webiny/handler": "6.
|
|
51
|
-
"@webiny/handler-aws": "6.
|
|
52
|
-
"@webiny/handler-graphql": "6.
|
|
53
|
-
"@webiny/project-utils": "6.
|
|
54
|
-
"@webiny/tasks": "6.
|
|
55
|
-
"@webiny/wcp": "6.
|
|
50
|
+
"@webiny/handler": "6.3.0-beta.0",
|
|
51
|
+
"@webiny/handler-aws": "6.3.0-beta.0",
|
|
52
|
+
"@webiny/handler-graphql": "6.3.0-beta.0",
|
|
53
|
+
"@webiny/project-utils": "6.3.0-beta.0",
|
|
54
|
+
"@webiny/tasks": "6.3.0-beta.0",
|
|
55
|
+
"@webiny/wcp": "6.3.0-beta.0",
|
|
56
56
|
"jest-dynalite": "3.6.1",
|
|
57
|
-
"prettier": "3.6.2",
|
|
58
57
|
"rimraf": "6.1.3",
|
|
59
|
-
"typescript": "
|
|
58
|
+
"typescript": "6.0.3",
|
|
60
59
|
"vitest": "4.1.4"
|
|
61
60
|
},
|
|
62
61
|
"publishConfig": {
|
|
63
62
|
"access": "public",
|
|
64
63
|
"directory": "dist"
|
|
65
64
|
},
|
|
66
|
-
"gitHead": "
|
|
65
|
+
"gitHead": "94c21e58aebc9855bf1ae972423281faa0f5c135"
|
|
67
66
|
}
|