@vegan-friendly/strapi-plugin-elasticsearch 0.1.0-alpha.2 → 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (77) hide show
  1. package/dist/admin/index.d.ts +8 -0
  2. package/dist/admin/index.js +92 -0
  3. package/dist/admin/pluginId.d.ts +2 -0
  4. package/dist/admin/pluginId.js +8 -0
  5. package/dist/admin/src/components/Initializer/index.js +2 -1
  6. package/dist/admin/src/components/SubNavigation/index.js +10 -8
  7. package/dist/admin/src/pages/ConfigureCollectionList/index.js +40 -28
  8. package/dist/admin/src/pages/Homepage/index.js +20 -21
  9. package/dist/admin/src/pluginId.d.ts +1 -1
  10. package/dist/admin/src/utils/apiUrls.js +1 -0
  11. package/dist/admin/src/utils/axiosInstance.js +1 -2
  12. package/dist/package.json +63 -0
  13. package/dist/server/bootstrap.d.ts +4 -0
  14. package/dist/server/bootstrap.js +3 -3
  15. package/dist/server/config/index.d.ts +5 -0
  16. package/dist/server/config/index.js +2 -1
  17. package/dist/server/content-types/index.d.ts +83 -2
  18. package/dist/server/content-types/index.js +9 -5
  19. package/dist/server/content-types/indexing-logs.d.ts +32 -0
  20. package/dist/server/content-types/indexing-logs.js +22 -24
  21. package/dist/server/content-types/tasks.d.ts +46 -0
  22. package/dist/server/content-types/tasks.js +33 -38
  23. package/dist/server/controllers/configure-indexing.d.ts +11 -0
  24. package/dist/server/controllers/configure-indexing.js +3 -2
  25. package/dist/server/controllers/index.d.ts +33 -5
  26. package/dist/server/controllers/index.js +15 -11
  27. package/dist/server/controllers/log-indexing.d.ts +6 -0
  28. package/dist/server/controllers/log-indexing.js +3 -2
  29. package/dist/server/controllers/perform-indexing.d.ts +8 -0
  30. package/dist/server/controllers/perform-indexing.js +3 -2
  31. package/dist/server/controllers/perform-search.d.ts +4 -1
  32. package/dist/server/controllers/perform-search.js +11 -8
  33. package/dist/server/controllers/setup-info.d.ts +6 -0
  34. package/dist/server/controllers/setup-info.js +2 -1
  35. package/dist/server/destroy.d.ts +4 -0
  36. package/dist/server/destroy.js +2 -1
  37. package/dist/server/index.d.ts +312 -10
  38. package/dist/server/index.js +25 -21
  39. package/dist/server/middlewares/index.d.ts +2 -0
  40. package/dist/server/middlewares/index.js +2 -1
  41. package/dist/server/policies/index.d.ts +2 -0
  42. package/dist/server/policies/index.js +2 -1
  43. package/dist/server/register.d.ts +4 -0
  44. package/dist/server/register.js +2 -1
  45. package/dist/server/routes/configure-indexing.d.ts +12 -0
  46. package/dist/server/routes/configure-indexing.js +2 -1
  47. package/dist/server/routes/index.d.ts +58 -5
  48. package/dist/server/routes/index.js +15 -11
  49. package/dist/server/routes/perform-indexing.d.ts +12 -0
  50. package/dist/server/routes/perform-indexing.js +2 -1
  51. package/dist/server/routes/perform-search.d.ts +12 -0
  52. package/dist/server/routes/perform-search.js +4 -3
  53. package/dist/server/routes/run-log.d.ts +12 -0
  54. package/dist/server/routes/run-log.js +3 -2
  55. package/dist/server/routes/setup-info.d.ts +12 -0
  56. package/dist/server/routes/setup-info.js +3 -2
  57. package/dist/server/services/configure-indexing.d.ts +23 -23
  58. package/dist/server/services/configure-indexing.js +30 -18
  59. package/dist/server/services/es-interface.d.ts +27 -4
  60. package/dist/server/services/es-interface.js +13 -14
  61. package/dist/server/services/helper.d.ts +34 -33
  62. package/dist/server/services/helper.js +31 -23
  63. package/dist/server/services/index.d.ts +124 -7
  64. package/dist/server/services/index.js +19 -15
  65. package/dist/server/services/log-indexing.d.ts +8 -0
  66. package/dist/server/services/log-indexing.js +8 -7
  67. package/dist/server/services/perform-indexing.d.ts +8 -0
  68. package/dist/server/services/perform-indexing.js +29 -16
  69. package/dist/server/services/schedule-indexing.d.ts +19 -0
  70. package/dist/server/services/schedule-indexing.js +13 -12
  71. package/dist/server/services/transform-content.d.ts +7 -2
  72. package/dist/server/services/transform-content.js +4 -3
  73. package/package.json +4 -2
  74. package/dist/strapi-admin.d.ts +0 -0
  75. package/dist/strapi-admin.js +0 -2
  76. package/dist/strapi-server.d.ts +0 -0
  77. package/dist/strapi-server.js +0 -2
@@ -1,27 +1,28 @@
1
1
  "use strict";
2
- module.exports = ({ strapi }) => ({
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.default = ({ strapi }) => ({
3
4
  async recordIndexingPass(message) {
4
5
  const entry = await strapi.entityService.create('plugin::elasticsearch.indexing-log', {
5
6
  data: {
6
7
  status: 'pass',
7
- details: message
8
- }
8
+ details: message,
9
+ },
9
10
  });
10
11
  },
11
12
  async recordIndexingFail(message) {
12
13
  const entry = await strapi.entityService.create('plugin::elasticsearch.indexing-log', {
13
14
  data: {
14
15
  status: 'fail',
15
- details: String(message)
16
- }
16
+ details: String(message),
17
+ },
17
18
  });
18
19
  },
19
20
  async fetchIndexingLogs(count = 50) {
20
21
  const records = await strapi.entityService.findMany('plugin::elasticsearch.indexing-log', {
21
22
  sort: { createdAt: 'DESC' },
22
23
  start: 0,
23
- limit: count
24
+ limit: count,
24
25
  });
25
26
  return records;
26
- }
27
+ },
27
28
  });
@@ -0,0 +1,8 @@
1
+ declare const _default: ({ strapi }: {
2
+ strapi: any;
3
+ }) => {
4
+ rebuildIndex(): Promise<boolean | undefined>;
5
+ indexCollection(collectionName: any, indexName?: null): Promise<boolean>;
6
+ indexPendingData(): Promise<boolean>;
7
+ };
8
+ export default _default;
@@ -1,5 +1,6 @@
1
1
  "use strict";
2
- module.exports = ({ strapi }) => ({
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.default = ({ strapi }) => ({
3
4
  async rebuildIndex() {
4
5
  const helper = strapi.plugins['elasticsearch'].services.helper;
5
6
  const esInterface = strapi.plugins['elasticsearch'].services.esInterface;
@@ -25,7 +26,6 @@ module.exports = ({ strapi }) => ({
25
26
  console.log('strapi-plugin-elasticsearch : Indexing of data into the new index complete.');
26
27
  //Step 4 : Move the alias to this new index
27
28
  await esInterface.attachAliasToIndex(newIndexName);
28
- ;
29
29
  console.log('strapi-plugin-elasticsearch : Attaching the newly created index to the alias.');
30
30
  //Step 3 : Update the search-indexing-name
31
31
  await helper.storeCurrentIndexName(newIndexName);
@@ -61,9 +61,9 @@ module.exports = ({ strapi }) => ({
61
61
  populate: populateAttrib['populate'],
62
62
  filters: {
63
63
  publishedAt: {
64
- $notNull: true
65
- }
66
- }
64
+ $notNull: true,
65
+ },
66
+ },
67
67
  });
68
68
  }
69
69
  else {
@@ -75,10 +75,17 @@ module.exports = ({ strapi }) => ({
75
75
  if (entries) {
76
76
  for (let s = 0; s < entries.length; s++) {
77
77
  const item = entries[s];
78
- const indexItemId = helper.getIndexItemId({ collectionName: collectionName, itemId: item.id });
79
- const collectionConfig = await configureIndexingService.getCollectionConfig({ collectionName });
78
+ const indexItemId = helper.getIndexItemId({
79
+ collectionName: collectionName,
80
+ itemId: item.id,
81
+ });
82
+ const collectionConfig = await configureIndexingService.getCollectionConfig({
83
+ collectionName,
84
+ });
80
85
  const dataToIndex = await helper.extractDataToIndex({
81
- collectionName, data: item, collectionConfig
86
+ collectionName,
87
+ data: item,
88
+ collectionConfig,
82
89
  });
83
90
  await esInterface.indexDataToSpecificIndex({ itemId: indexItemId, itemData: dataToIndex }, indexName);
84
91
  }
@@ -92,7 +99,7 @@ module.exports = ({ strapi }) => ({
92
99
  const esInterface = strapi.plugins['elasticsearch'].services.esInterface;
93
100
  const helper = strapi.plugins['elasticsearch'].services.helper;
94
101
  const recs = await scheduleIndexingService.getItemsPendingToBeIndexed();
95
- const fullSiteIndexing = recs.filter(r => r.full_site_indexing === true).length > 0;
102
+ const fullSiteIndexing = recs.filter((r) => r.full_site_indexing === true).length > 0;
96
103
  if (fullSiteIndexing) {
97
104
  await this.rebuildIndex();
98
105
  for (let r = 0; r < recs.length; r++)
@@ -108,24 +115,30 @@ module.exports = ({ strapi }) => ({
108
115
  if (recs[r].indexing_type !== 'remove-from-index') {
109
116
  const populateAttrib = helper.getPopulateAttribute({ collectionName: col });
110
117
  const item = await strapi.entityService.findOne(col, recs[r].item_id, {
111
- populate: populateAttrib['populate']
118
+ populate: populateAttrib['populate'],
112
119
  });
113
120
  const indexItemId = helper.getIndexItemId({ collectionName: col, itemId: item.id });
114
- const collectionConfig = await configureIndexingService.getCollectionConfig({ collectionName: col });
121
+ const collectionConfig = await configureIndexingService.getCollectionConfig({
122
+ collectionName: col,
123
+ });
115
124
  const dataToIndex = await helper.extractDataToIndex({
116
- collectionName: col, data: item, collectionConfig
125
+ collectionName: col,
126
+ data: item,
127
+ collectionConfig,
117
128
  });
118
129
  await esInterface.indexData({ itemId: indexItemId, itemData: dataToIndex });
119
130
  await scheduleIndexingService.markIndexingTaskComplete(recs[r].id);
120
131
  }
121
132
  else {
122
- const indexItemId = helper.getIndexItemId({ collectionName: col, itemId: recs[r].item_id });
133
+ const indexItemId = helper.getIndexItemId({
134
+ collectionName: col,
135
+ itemId: recs[r].item_id,
136
+ });
123
137
  await esInterface.removeItemFromIndex({ itemId: indexItemId });
124
138
  await scheduleIndexingService.markIndexingTaskComplete(recs[r].id);
125
139
  }
126
- }
127
- else //index the entire collection
128
- {
140
+ } //index the entire collection
141
+ else {
129
142
  //PENDING : Index an entire collection
130
143
  await this.indexCollection(col);
131
144
  await scheduleIndexingService.markIndexingTaskComplete(recs[r].id);
@@ -0,0 +1,19 @@
1
+ declare const _default: ({ strapi }: {
2
+ strapi: any;
3
+ }) => {
4
+ addFullSiteIndexingTask(): Promise<any>;
5
+ addCollectionToIndex({ collectionUid }: {
6
+ collectionUid: any;
7
+ }): Promise<any>;
8
+ addItemToIndex({ collectionUid, recordId }: {
9
+ collectionUid: any;
10
+ recordId: any;
11
+ }): Promise<any>;
12
+ removeItemFromIndex({ collectionUid, recordId }: {
13
+ collectionUid: any;
14
+ recordId: any;
15
+ }): Promise<void>;
16
+ getItemsPendingToBeIndexed(): Promise<any>;
17
+ markIndexingTaskComplete(recId: any): Promise<void>;
18
+ };
19
+ export default _default;
@@ -1,13 +1,14 @@
1
1
  "use strict";
2
- module.exports = ({ strapi }) => ({
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.default = ({ strapi }) => ({
3
4
  async addFullSiteIndexingTask() {
4
5
  const data = await strapi.entityService.create('plugin::elasticsearch.task', {
5
6
  data: {
6
7
  collection_name: '',
7
8
  indexing_status: 'to-be-done',
8
9
  full_site_indexing: true,
9
- indexing_type: "add-to-index"
10
- }
10
+ indexing_type: 'add-to-index',
11
+ },
11
12
  });
12
13
  return data;
13
14
  },
@@ -17,8 +18,8 @@ module.exports = ({ strapi }) => ({
17
18
  collection_name: collectionUid,
18
19
  indexing_status: 'to-be-done',
19
20
  full_site_indexing: false,
20
- indexing_type: "add-to-index"
21
- }
21
+ indexing_type: 'add-to-index',
22
+ },
22
23
  });
23
24
  return data;
24
25
  },
@@ -29,8 +30,8 @@ module.exports = ({ strapi }) => ({
29
30
  collection_name: collectionUid,
30
31
  indexing_status: 'to-be-done',
31
32
  full_site_indexing: false,
32
- indexing_type: "add-to-index"
33
- }
33
+ indexing_type: 'add-to-index',
34
+ },
34
35
  });
35
36
  return data;
36
37
  },
@@ -41,8 +42,8 @@ module.exports = ({ strapi }) => ({
41
42
  collection_name: collectionUid,
42
43
  indexing_status: 'to-be-done',
43
44
  full_site_indexing: false,
44
- indexing_type: "remove-from-index"
45
- }
45
+ indexing_type: 'remove-from-index',
46
+ },
46
47
  });
47
48
  },
48
49
  async getItemsPendingToBeIndexed() {
@@ -54,8 +55,8 @@ module.exports = ({ strapi }) => ({
54
55
  async markIndexingTaskComplete(recId) {
55
56
  const entries = await strapi.entityService.update('plugin::elasticsearch.task', recId, {
56
57
  data: {
57
- 'indexing_status': 'done'
58
- }
58
+ indexing_status: 'done',
59
+ },
59
60
  });
60
- }
61
+ },
61
62
  });
@@ -1,2 +1,7 @@
1
- declare const markdownToTxt: any;
2
- declare function transformMarkdownToText(md: any): any;
1
+ declare const _default: {
2
+ transform({ content, from }: {
3
+ content: any;
4
+ from: any;
5
+ }): any;
6
+ };
7
+ export default _default;
@@ -1,9 +1,10 @@
1
1
  "use strict";
2
- const { markdownToTxt } = require('markdown-to-txt');
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const markdown_to_txt_1 = require("markdown-to-txt");
3
4
  function transformMarkdownToText(md) {
4
5
  let text = md;
5
6
  try {
6
- text = markdownToTxt(md);
7
+ text = (0, markdown_to_txt_1.markdownToTxt)(md);
7
8
  }
8
9
  catch (err) {
9
10
  console.error('strapi-plugin-elasticsearch : Error while transforming markdown to text.');
@@ -11,7 +12,7 @@ function transformMarkdownToText(md) {
11
12
  }
12
13
  return text;
13
14
  }
14
- module.exports = {
15
+ exports.default = {
15
16
  transform({ content, from }) {
16
17
  if (from === 'markdown')
17
18
  return transformMarkdownToText(content);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vegan-friendly/strapi-plugin-elasticsearch",
3
- "version": "0.1.0-alpha.2",
3
+ "version": "0.1.0",
4
4
  "description": "A Strapi plugin to enable using Elasticsearch with Strapi CMS.",
5
5
  "homepage": "https://github.com/vegan-friendly/strapi-plugin-elasticsearch",
6
6
  "strapi": {
@@ -36,6 +36,7 @@
36
36
  },
37
37
  "dependencies": {
38
38
  "@elastic/elasticsearch": "^8.9.0",
39
+ "@strapi/design-system": "^1.19.0",
39
40
  "markdown-to-txt": "^2.0.1"
40
41
  },
41
42
  "peerDependencies": {
@@ -54,8 +55,9 @@
54
55
  },
55
56
  "license": "MIT",
56
57
  "devDependencies": {
58
+ "@strapi/typescript-utils": "^5.12.5",
57
59
  "@types/node": "^22.14.1",
58
60
  "ts-node": "^10.9.2",
59
61
  "typescript": "^5.8.3"
60
62
  }
61
- }
63
+ }
File without changes
@@ -1,2 +0,0 @@
1
- 'use strict';
2
- module.exports = require('./admin/src').default;
File without changes
@@ -1,2 +0,0 @@
1
- 'use strict';
2
- module.exports = require('./server');