@primershop/strapi-plugin-status-manager 0.0.1

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 (153) hide show
  1. package/README.md +52 -0
  2. package/dist/admin/components/Initializer.js +17 -0
  3. package/dist/admin/components/Initializer.js.map +1 -0
  4. package/dist/admin/components/Initializer.mjs +15 -0
  5. package/dist/admin/components/Initializer.mjs.map +1 -0
  6. package/dist/admin/components/PluginIcon.js +9 -0
  7. package/dist/admin/components/PluginIcon.js.map +1 -0
  8. package/dist/admin/components/PluginIcon.mjs +7 -0
  9. package/dist/admin/components/PluginIcon.mjs.map +1 -0
  10. package/dist/admin/components/ProductStatusField.js +104 -0
  11. package/dist/admin/components/ProductStatusField.js.map +1 -0
  12. package/dist/admin/components/ProductStatusField.mjs +102 -0
  13. package/dist/admin/components/ProductStatusField.mjs.map +1 -0
  14. package/dist/admin/components/StatusManager.js +367 -0
  15. package/dist/admin/components/StatusManager.js.map +1 -0
  16. package/dist/admin/components/StatusManager.mjs +365 -0
  17. package/dist/admin/components/StatusManager.mjs.map +1 -0
  18. package/dist/admin/index.js +46 -0
  19. package/dist/admin/index.js.map +1 -0
  20. package/dist/admin/index.mjs +44 -0
  21. package/dist/admin/index.mjs.map +1 -0
  22. package/dist/admin/listView/StatusFilter.js +76 -0
  23. package/dist/admin/listView/StatusFilter.js.map +1 -0
  24. package/dist/admin/listView/StatusFilter.mjs +74 -0
  25. package/dist/admin/listView/StatusFilter.mjs.map +1 -0
  26. package/dist/admin/listView/add-status-column-hook.js +34 -0
  27. package/dist/admin/listView/add-status-column-hook.js.map +1 -0
  28. package/dist/admin/listView/add-status-column-hook.mjs +32 -0
  29. package/dist/admin/listView/add-status-column-hook.mjs.map +1 -0
  30. package/dist/admin/listView/status-cell.js +28 -0
  31. package/dist/admin/listView/status-cell.js.map +1 -0
  32. package/dist/admin/listView/status-cell.mjs +26 -0
  33. package/dist/admin/listView/status-cell.mjs.map +1 -0
  34. package/dist/admin/pages/HomePage.js +51 -0
  35. package/dist/admin/pages/HomePage.js.map +1 -0
  36. package/dist/admin/pages/HomePage.mjs +49 -0
  37. package/dist/admin/pages/HomePage.mjs.map +1 -0
  38. package/dist/admin/pluginId.js +6 -0
  39. package/dist/admin/pluginId.js.map +1 -0
  40. package/dist/admin/pluginId.mjs +4 -0
  41. package/dist/admin/pluginId.mjs.map +1 -0
  42. package/dist/admin/src/components/Initializer.js +13 -0
  43. package/dist/admin/src/components/PluginIcon.js +4 -0
  44. package/dist/admin/src/components/ProductStatusField.js +64 -0
  45. package/dist/admin/src/components/StatusManager.js +239 -0
  46. package/dist/admin/src/index.js +43 -0
  47. package/dist/admin/src/listView/StatusFilter.js +47 -0
  48. package/dist/admin/src/listView/add-status-column-hook.js +18 -0
  49. package/dist/admin/src/listView/status-cell.js +18 -0
  50. package/dist/admin/src/pages/HomePage.js +18 -0
  51. package/dist/admin/src/pluginId.js +1 -0
  52. package/dist/server/bootstrap.js +29 -0
  53. package/dist/server/bootstrap.js.map +1 -0
  54. package/dist/server/bootstrap.mjs +27 -0
  55. package/dist/server/bootstrap.mjs.map +1 -0
  56. package/dist/server/content-types/index.js +16 -0
  57. package/dist/server/content-types/index.js.map +1 -0
  58. package/dist/server/content-types/index.mjs +14 -0
  59. package/dist/server/content-types/index.mjs.map +1 -0
  60. package/dist/server/content-types/status-link.js +43 -0
  61. package/dist/server/content-types/status-link.js.map +1 -0
  62. package/dist/server/content-types/status-link.mjs +41 -0
  63. package/dist/server/content-types/status-link.mjs.map +1 -0
  64. package/dist/server/content-types/status.js +50 -0
  65. package/dist/server/content-types/status.js.map +1 -0
  66. package/dist/server/content-types/status.mjs +48 -0
  67. package/dist/server/content-types/status.mjs.map +1 -0
  68. package/dist/server/controllers/content.js +33 -0
  69. package/dist/server/controllers/content.js.map +1 -0
  70. package/dist/server/controllers/content.mjs +31 -0
  71. package/dist/server/controllers/content.mjs.map +1 -0
  72. package/dist/server/controllers/index.js +12 -0
  73. package/dist/server/controllers/index.js.map +1 -0
  74. package/dist/server/controllers/index.mjs +10 -0
  75. package/dist/server/controllers/index.mjs.map +1 -0
  76. package/dist/server/controllers/status.js +106 -0
  77. package/dist/server/controllers/status.js.map +1 -0
  78. package/dist/server/controllers/status.mjs +104 -0
  79. package/dist/server/controllers/status.mjs.map +1 -0
  80. package/dist/server/index.js +23 -0
  81. package/dist/server/index.js.map +1 -0
  82. package/dist/server/index.mjs +21 -0
  83. package/dist/server/index.mjs.map +1 -0
  84. package/dist/server/middlewares/add-status-field.js +48 -0
  85. package/dist/server/middlewares/add-status-field.js.map +1 -0
  86. package/dist/server/middlewares/add-status-field.mjs +46 -0
  87. package/dist/server/middlewares/add-status-field.mjs.map +1 -0
  88. package/dist/server/middlewares/filter-by-status.js +42 -0
  89. package/dist/server/middlewares/filter-by-status.js.map +1 -0
  90. package/dist/server/middlewares/filter-by-status.mjs +40 -0
  91. package/dist/server/middlewares/filter-by-status.mjs.map +1 -0
  92. package/dist/server/middlewares/filter-published.js +35 -0
  93. package/dist/server/middlewares/filter-published.js.map +1 -0
  94. package/dist/server/middlewares/filter-published.mjs +33 -0
  95. package/dist/server/middlewares/filter-published.mjs.map +1 -0
  96. package/dist/server/permissions.js +46 -0
  97. package/dist/server/permissions.js.map +1 -0
  98. package/dist/server/permissions.mjs +44 -0
  99. package/dist/server/permissions.mjs.map +1 -0
  100. package/dist/server/pluginId.js +6 -0
  101. package/dist/server/pluginId.js.map +1 -0
  102. package/dist/server/pluginId.mjs +4 -0
  103. package/dist/server/pluginId.mjs.map +1 -0
  104. package/dist/server/register.js +27 -0
  105. package/dist/server/register.js.map +1 -0
  106. package/dist/server/register.mjs +25 -0
  107. package/dist/server/register.mjs.map +1 -0
  108. package/dist/server/routes/content-management.js +41 -0
  109. package/dist/server/routes/content-management.js.map +1 -0
  110. package/dist/server/routes/content-management.mjs +39 -0
  111. package/dist/server/routes/content-management.mjs.map +1 -0
  112. package/dist/server/routes/index.js +17 -0
  113. package/dist/server/routes/index.js.map +1 -0
  114. package/dist/server/routes/index.mjs +15 -0
  115. package/dist/server/routes/index.mjs.map +1 -0
  116. package/dist/server/routes/status-management.js +122 -0
  117. package/dist/server/routes/status-management.js.map +1 -0
  118. package/dist/server/routes/status-management.mjs +120 -0
  119. package/dist/server/routes/status-management.mjs.map +1 -0
  120. package/dist/server/services/index.js +12 -0
  121. package/dist/server/services/index.js.map +1 -0
  122. package/dist/server/services/index.mjs +10 -0
  123. package/dist/server/services/index.mjs.map +1 -0
  124. package/dist/server/services/status-link.js +38 -0
  125. package/dist/server/services/status-link.js.map +1 -0
  126. package/dist/server/services/status-link.mjs +36 -0
  127. package/dist/server/services/status-link.mjs.map +1 -0
  128. package/dist/server/services/status.js +110 -0
  129. package/dist/server/services/status.js.map +1 -0
  130. package/dist/server/services/status.mjs +108 -0
  131. package/dist/server/services/status.mjs.map +1 -0
  132. package/dist/server/src/bootstrap.js +32 -0
  133. package/dist/server/src/config/dev.js +13 -0
  134. package/dist/server/src/content-types/index.js +15 -0
  135. package/dist/server/src/content-types/status-link.js +40 -0
  136. package/dist/server/src/content-types/status.js +47 -0
  137. package/dist/server/src/controllers/content.js +44 -0
  138. package/dist/server/src/controllers/index.js +9 -0
  139. package/dist/server/src/controllers/status.js +106 -0
  140. package/dist/server/src/index.js +23 -0
  141. package/dist/server/src/middlewares/add-status-field.js +51 -0
  142. package/dist/server/src/middlewares/filter-by-status.js +44 -0
  143. package/dist/server/src/middlewares/filter-published.js +31 -0
  144. package/dist/server/src/permissions.js +41 -0
  145. package/dist/server/src/pluginId.js +4 -0
  146. package/dist/server/src/register.js +28 -0
  147. package/dist/server/src/routes/content-management.js +34 -0
  148. package/dist/server/src/routes/index.js +15 -0
  149. package/dist/server/src/routes/status-management.js +109 -0
  150. package/dist/server/src/services/index.js +9 -0
  151. package/dist/server/src/services/status-link.js +33 -0
  152. package/dist/server/src/services/status.js +96 -0
  153. package/package.json +104 -0
@@ -0,0 +1,96 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.statusService = void 0;
4
+ const statusService = ({ strapi }) => ({
5
+ async isValidStatus(code) {
6
+ try {
7
+ const row = await strapi.db
8
+ .query("plugin::primershop-status-manager.status")
9
+ .findOne({ where: { name: code }, select: ["id"] });
10
+ return !!row;
11
+ }
12
+ catch {
13
+ return false;
14
+ }
15
+ },
16
+ async getStatusByName(name) {
17
+ return strapi.db
18
+ .query("plugin::primershop-status-manager.status")
19
+ .findOne({ where: { name } });
20
+ },
21
+ isStatusEnabledFor(uid) {
22
+ return !!strapi.getModel(uid);
23
+ },
24
+ async find() {
25
+ const result = await strapi.db
26
+ .query("plugin::primershop-status-manager.status")
27
+ .findMany({
28
+ orderBy: { order: "asc" },
29
+ });
30
+ return result;
31
+ },
32
+ async findOne(id) {
33
+ const result = await strapi.db
34
+ .query("plugin::primershop-status-manager.status")
35
+ .findOne({
36
+ where: { id },
37
+ });
38
+ return result;
39
+ },
40
+ async createStatus(data) {
41
+ var _a, _b;
42
+ const result = await strapi.db
43
+ .query("plugin::primershop-status-manager.status")
44
+ .create({
45
+ data: {
46
+ name: data.name,
47
+ published: (_a = data.published) !== null && _a !== void 0 ? _a : false,
48
+ order: (_b = data.order) !== null && _b !== void 0 ? _b : 0,
49
+ },
50
+ });
51
+ return result;
52
+ },
53
+ async findProductsByStatus(statusId) {
54
+ return strapi.db.query("api::product.product").findMany({
55
+ where: { status: statusId },
56
+ });
57
+ },
58
+ async updateProductStatus(productId, statusId) {
59
+ return strapi.db.query("api::product.product").update({
60
+ where: { id: productId },
61
+ data: { status: statusId },
62
+ });
63
+ },
64
+ async delete(id) {
65
+ return strapi.db.query("plugin::primershop-status-manager.status").delete({
66
+ where: { id },
67
+ });
68
+ },
69
+ async deleteStatus(statusId, replacementId) {
70
+ // Find status by documentId
71
+ const status = await strapi.db
72
+ .query("plugin::primershop-status-manager.status")
73
+ .findOne({
74
+ where: { documentId: statusId },
75
+ });
76
+ if (!status) {
77
+ throw new Error("Status not found");
78
+ }
79
+ if (replacementId) {
80
+ const replacementStatus = await strapi.db
81
+ .query("plugin::primershop-status-manager.status")
82
+ .findOne({
83
+ where: { documentId: replacementId },
84
+ });
85
+ if (!replacementStatus) {
86
+ throw new Error("Replacement status not found");
87
+ }
88
+ }
89
+ // Delete the status
90
+ await strapi.db.query("plugin::primershop-status-manager.status").delete({
91
+ where: { documentId: statusId },
92
+ });
93
+ return true;
94
+ },
95
+ });
96
+ exports.statusService = statusService;
package/package.json ADDED
@@ -0,0 +1,104 @@
1
+ {
2
+ "name": "@primershop/strapi-plugin-status-manager",
3
+ "version": "0.0.1",
4
+ "description": "Enables more status variations for Strapi",
5
+ "exports": {
6
+ "./strapi-admin": {
7
+ "source": "./admin/src/index.ts",
8
+ "import": "./dist/admin/index.mjs",
9
+ "require": "./dist/admin/index.js",
10
+ "default": "./dist/admin/index.js"
11
+ },
12
+ "./strapi-server": {
13
+ "source": "./server/src/index.ts",
14
+ "import": "./dist/server/index.mjs",
15
+ "require": "./dist/server/index.js",
16
+ "default": "./dist/server/index.js"
17
+ },
18
+ "./package.json": "./package.json"
19
+ },
20
+ "files": [
21
+ "dist/",
22
+ "strapi-server.js"
23
+ ],
24
+ "scripts": {
25
+ "build": "npm-run-all clean --parallel build:code build:types",
26
+ "build:code": "rollup -c",
27
+ "build:dev": "rollup -c rollup.config.dev.mjs",
28
+ "build:types": "run-p build:types:server build:types:admin",
29
+ "build:types:server": "tsc -p server/tsconfig.build.json ",
30
+ "build:types:admin": "tsc -p admin/tsconfig.build.json ",
31
+ "clean": "rimraf ./dist",
32
+ "lint": "eslint .",
33
+ "test:front": "cross-env IS_EE=true jest --config ./jest.config.front.js",
34
+ "test:ts:front": "tsc -p admin/tsconfig.json",
35
+ "test:unit": "jest",
36
+ "test:unit:watch": "jest --watch",
37
+ "watch": "rollup -c -w",
38
+ "dev": "NODE_ENV=development DEBUG=true rollup -c rollup.config.dev.mjs -w",
39
+ "test:debug": "NODE_ENV=development DEBUG=true node test-debug.js"
40
+ },
41
+ "keywords": [
42
+ "strapi",
43
+ "plugin",
44
+ "status",
45
+ "manager"
46
+ ],
47
+ "author": "Magda Odrowaz-Zelezik <magda.zelezik@gmail.com>",
48
+ "license": "MIT",
49
+ "repository": {
50
+ "type": "git",
51
+ "url": "https://github.com/magdazelena/primer.git",
52
+ "directory": "packages/strapi-plugin-status-manager"
53
+ },
54
+ "bugs": {
55
+ "url": "https://github.com/magdazelena/primer/issues"
56
+ },
57
+ "homepage": "https://github.com/magdazelena/primer/tree/main/packages/strapi-plugin-status-manager#readme",
58
+ "peerDependencies": {
59
+ "@strapi/strapi": "^5.29.0"
60
+ },
61
+ "devDependencies": {
62
+ "@atlaskit/pragmatic-drag-and-drop": "^1.7.7",
63
+ "@atlaskit/pragmatic-drag-and-drop-hitbox": "^1.0.3",
64
+ "@eslint/eslintrc": "^3.3.1",
65
+ "@eslint/js": "^9.35.0",
66
+ "@rollup/plugin-commonjs": "^29.0.0",
67
+ "@rollup/plugin-dynamic-import-vars": "^2.1.5",
68
+ "@rollup/plugin-json": "^6.1.0",
69
+ "@rollup/plugin-node-resolve": "^16.0.1",
70
+ "@rollup/plugin-swc": "^0.4.0",
71
+ "@strapi/admin": "^5.29.0",
72
+ "@strapi/content-manager": "^5.29.0",
73
+ "@strapi/types": "^5.29.0",
74
+ "@types/react": "^18.3.1",
75
+ "@types/react-dom": "^18.3.1",
76
+ "@types/node": "^25.0.2",
77
+ "cross-env": "^10.0.0",
78
+ "eslint": "9.39.2",
79
+ "jest": "^30.2.0",
80
+ "npm-run-all": "^4.1.5",
81
+ "rimraf": "^6.0.1",
82
+ "rollup": "^4.52.4",
83
+ "typescript": "^5.3.3"
84
+ },
85
+ "engines": {
86
+ "node": ">=18.0.0",
87
+ "npm": ">=6.0.0"
88
+ },
89
+ "strapi": {
90
+ "kind": "plugin",
91
+ "name": "primershop-status-manager",
92
+ "displayName": "Status Manager",
93
+ "description": "Manages content statuses"
94
+ },
95
+ "dependencies": {
96
+ "@strapi/design-system": "^2.0.0-rc.27",
97
+ "@strapi/icons": "^2.0.0-rc.27",
98
+ "@strapi/utils": "^5.29.0",
99
+ "react": "18.3.1",
100
+ "react-dom": "18.3.1",
101
+ "react-router-dom": "6.22.3",
102
+ "styled-components": "^6.1.19"
103
+ }
104
+ }