@ittinc/strapi-plugin-kanban-board 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 (68) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +74 -0
  3. package/admin/custom.d.ts +2 -0
  4. package/admin/src/components/Initializer.tsx +19 -0
  5. package/admin/src/components/KanbanInput/index.tsx +605 -0
  6. package/admin/src/components/PluginIcon.tsx +5 -0
  7. package/admin/src/index.ts +136 -0
  8. package/admin/src/pages/App.tsx +15 -0
  9. package/admin/src/pages/HomePage.tsx +398 -0
  10. package/admin/src/pluginId.ts +1 -0
  11. package/admin/src/translations/en.json +5 -0
  12. package/admin/src/translations/ru.json +5 -0
  13. package/admin/src/utils/getTranslation.ts +5 -0
  14. package/admin/tsconfig.build.json +10 -0
  15. package/admin/tsconfig.json +8 -0
  16. package/dist/_chunks/App-BEiW65up.js +343 -0
  17. package/dist/_chunks/App-DXTlN9Fm.mjs +341 -0
  18. package/dist/_chunks/en-C0sbENwZ.js +8 -0
  19. package/dist/_chunks/en-CHHvJuav.mjs +8 -0
  20. package/dist/_chunks/index-9nQMm6ez.js +465 -0
  21. package/dist/_chunks/index-DI_QN_uF.mjs +463 -0
  22. package/dist/_chunks/ru-B7uE6tx_.mjs +8 -0
  23. package/dist/_chunks/ru-Bl2jLOwG.js +8 -0
  24. package/dist/admin/index.js +156 -0
  25. package/dist/admin/index.mjs +157 -0
  26. package/dist/admin/src/components/Initializer.d.ts +5 -0
  27. package/dist/admin/src/components/KanbanInput/index.d.ts +33 -0
  28. package/dist/admin/src/components/PluginIcon.d.ts +2 -0
  29. package/dist/admin/src/index.d.ts +10 -0
  30. package/dist/admin/src/pages/App.d.ts +2 -0
  31. package/dist/admin/src/pages/HomePage.d.ts +2 -0
  32. package/dist/admin/src/pluginId.d.ts +1 -0
  33. package/dist/admin/src/utils/getTranslation.d.ts +2 -0
  34. package/dist/server/index.js +73 -0
  35. package/dist/server/index.mjs +74 -0
  36. package/dist/server/src/bootstrap.d.ts +5 -0
  37. package/dist/server/src/config/index.d.ts +5 -0
  38. package/dist/server/src/content-types/index.d.ts +2 -0
  39. package/dist/server/src/controllers/controller.d.ts +7 -0
  40. package/dist/server/src/controllers/index.d.ts +2 -0
  41. package/dist/server/src/destroy.d.ts +5 -0
  42. package/dist/server/src/index.d.ts +2 -0
  43. package/dist/server/src/middlewares/index.d.ts +2 -0
  44. package/dist/server/src/policies/index.d.ts +2 -0
  45. package/dist/server/src/register.d.ts +5 -0
  46. package/dist/server/src/routes/admin/index.d.ts +5 -0
  47. package/dist/server/src/routes/content-api/index.d.ts +12 -0
  48. package/dist/server/src/routes/index.d.ts +18 -0
  49. package/dist/server/src/services/index.d.ts +2 -0
  50. package/dist/server/src/services/service.d.ts +7 -0
  51. package/package.json +101 -0
  52. package/server/src/bootstrap.ts +7 -0
  53. package/server/src/config/index.ts +4 -0
  54. package/server/src/content-types/index.ts +1 -0
  55. package/server/src/controllers/controller.ts +13 -0
  56. package/server/src/controllers/index.ts +5 -0
  57. package/server/src/destroy.ts +7 -0
  58. package/server/src/index.ts +30 -0
  59. package/server/src/middlewares/index.ts +1 -0
  60. package/server/src/policies/index.ts +1 -0
  61. package/server/src/register.ts +13 -0
  62. package/server/src/routes/admin/index.ts +4 -0
  63. package/server/src/routes/content-api/index.ts +14 -0
  64. package/server/src/routes/index.ts +9 -0
  65. package/server/src/services/index.ts +5 -0
  66. package/server/src/services/service.ts +9 -0
  67. package/server/tsconfig.build.json +10 -0
  68. package/server/tsconfig.json +8 -0
@@ -0,0 +1,157 @@
1
+ import { useRef, useEffect } from "react";
2
+ import { jsx } from "react/jsx-runtime";
3
+ import { PuzzlePiece } from "@strapi/icons";
4
+ const __variableDynamicImportRuntimeHelper = (glob, path, segs) => {
5
+ const v = glob[path];
6
+ if (v) {
7
+ return typeof v === "function" ? v() : Promise.resolve(v);
8
+ }
9
+ return new Promise((_, reject) => {
10
+ (typeof queueMicrotask === "function" ? queueMicrotask : setTimeout)(
11
+ reject.bind(
12
+ null,
13
+ new Error(
14
+ "Unknown variable dynamic import: " + path + (path.split("/").length !== segs ? ". Note that variables only represent file names one level deep." : "")
15
+ )
16
+ )
17
+ );
18
+ });
19
+ };
20
+ const PLUGIN_ID = "kanban-board";
21
+ const Initializer = ({ setPlugin }) => {
22
+ const ref = useRef(setPlugin);
23
+ useEffect(() => {
24
+ ref.current(PLUGIN_ID);
25
+ }, []);
26
+ return null;
27
+ };
28
+ const PluginIcon = () => /* @__PURE__ */ jsx(PuzzlePiece, {});
29
+ const index = {
30
+ register(app) {
31
+ app.addMenuLink({
32
+ to: `plugins/${PLUGIN_ID}`,
33
+ icon: PluginIcon,
34
+ intlLabel: {
35
+ id: `${PLUGIN_ID}.plugin.name`,
36
+ defaultMessage: PLUGIN_ID
37
+ },
38
+ Component: async () => {
39
+ const { App } = await import("../_chunks/App-DXTlN9Fm.mjs");
40
+ return App;
41
+ }
42
+ });
43
+ app.registerPlugin({
44
+ id: PLUGIN_ID,
45
+ initializer: Initializer,
46
+ isReady: false,
47
+ name: PLUGIN_ID
48
+ });
49
+ app.customFields.register({
50
+ name: "kanban-board",
51
+ pluginId: PLUGIN_ID,
52
+ type: "json",
53
+ intlLabel: {
54
+ id: `${PLUGIN_ID}.kanban-board.label`,
55
+ defaultMessage: "Kanban Board"
56
+ },
57
+ intlDescription: {
58
+ id: `${PLUGIN_ID}.kanban-board.description`,
59
+ defaultMessage: "Drag and drop items between columns"
60
+ },
61
+ icon: PluginIcon,
62
+ components: {
63
+ Input: async () => import("../_chunks/index-DI_QN_uF.mjs").then((module) => ({
64
+ default: module.KanbanInput
65
+ }))
66
+ },
67
+ options: {
68
+ base: [
69
+ {
70
+ sectionTitle: {
71
+ id: "kanban-plugin.section.settings",
72
+ defaultMessage: "Board Configuration"
73
+ },
74
+ items: [
75
+ {
76
+ intlLabel: {
77
+ id: "kanban-plugin.options.defaultColumns",
78
+ defaultMessage: "Default Columns (JSON Array)"
79
+ },
80
+ intlDescription: {
81
+ id: "kanban-plugin.options.defaultColumns.desc",
82
+ defaultMessage: 'e.g. ["To Do", "In Progress", "Done"]'
83
+ },
84
+ name: "options.defaultColumns",
85
+ type: "text",
86
+ defaultValue: '[{"code": "todo", "name": "To Do"}, {"code": "in-progress", "name": "In Progress"}, {"code": "done", "name": "Done"}]'
87
+ },
88
+ {
89
+ intlLabel: {
90
+ id: "kanban-plugin.options.itemSchema",
91
+ defaultMessage: "Item Schema (JSON Array)"
92
+ },
93
+ intlDescription: {
94
+ id: "kanban-plugin.options.itemSchema.desc",
95
+ defaultMessage: 'Define fields: [{"name": "title", "label": "Title", "type": "text", "required": true}]'
96
+ },
97
+ name: "options.itemSchema",
98
+ type: "text",
99
+ defaultValue: '[{"name": "title", "label": "Title", "type": "text", "required": true}, {"name": "subtitle", "label": "Subtitle", "type": "text"}]'
100
+ }
101
+ ]
102
+ },
103
+ {
104
+ sectionTitle: {
105
+ id: "kanban-plugin.section.permissions",
106
+ defaultMessage: "Permissions"
107
+ },
108
+ items: [
109
+ {
110
+ intlLabel: {
111
+ id: "kanban-plugin.options.canAddColumns",
112
+ defaultMessage: "Allow Adding Columns"
113
+ },
114
+ name: "options.canAddColumns",
115
+ type: "checkbox",
116
+ defaultValue: true
117
+ },
118
+ {
119
+ intlLabel: {
120
+ id: "kanban-plugin.options.canDeleteColumns",
121
+ defaultMessage: "Allow Deleting Columns"
122
+ },
123
+ name: "options.canDeleteColumns",
124
+ type: "checkbox",
125
+ defaultValue: true
126
+ },
127
+ {
128
+ intlLabel: {
129
+ id: "kanban-plugin.options.canRenameColumns",
130
+ defaultMessage: "Allow Renaming Columns"
131
+ },
132
+ name: "options.canRenameColumns",
133
+ type: "checkbox",
134
+ defaultValue: true
135
+ }
136
+ ]
137
+ }
138
+ ]
139
+ }
140
+ });
141
+ },
142
+ async registerTrads({ locales }) {
143
+ return Promise.all(
144
+ locales.map(async (locale) => {
145
+ try {
146
+ const { default: data } = await __variableDynamicImportRuntimeHelper(/* @__PURE__ */ Object.assign({ "./translations/en.json": () => import("../_chunks/en-CHHvJuav.mjs"), "./translations/ru.json": () => import("../_chunks/ru-B7uE6tx_.mjs") }), `./translations/${locale}.json`, 3);
147
+ return { data, locale };
148
+ } catch {
149
+ return { data: {}, locale };
150
+ }
151
+ })
152
+ );
153
+ }
154
+ };
155
+ export {
156
+ index as default
157
+ };
@@ -0,0 +1,5 @@
1
+ type InitializerProps = {
2
+ setPlugin: (id: string) => void;
3
+ };
4
+ declare const Initializer: ({ setPlugin }: InitializerProps) => null;
5
+ export { Initializer };
@@ -0,0 +1,33 @@
1
+ interface Item extends Record<string, any> {
2
+ id: string;
3
+ }
4
+ interface ColumnData {
5
+ id: string;
6
+ title: string;
7
+ code?: string;
8
+ items: Item[];
9
+ }
10
+ interface KanbanInputProps {
11
+ name: string;
12
+ value?: string | ColumnData[];
13
+ onChange: (event: {
14
+ target: {
15
+ name: string;
16
+ value: string | ColumnData[];
17
+ type?: string;
18
+ };
19
+ }) => void;
20
+ attribute: {
21
+ options?: {
22
+ defaultColumns?: string | string[];
23
+ itemSchema?: string | any[];
24
+ canAddColumns?: boolean;
25
+ canDeleteColumns?: boolean;
26
+ canRenameColumns?: boolean;
27
+ };
28
+ [key: string]: any;
29
+ };
30
+ intlLabel: any;
31
+ }
32
+ export declare const KanbanInput: ({ name, value, onChange, intlLabel, attribute }: KanbanInputProps) => import("react/jsx-runtime").JSX.Element;
33
+ export {};
@@ -0,0 +1,2 @@
1
+ declare const PluginIcon: () => import("react/jsx-runtime").JSX.Element;
2
+ export { PluginIcon };
@@ -0,0 +1,10 @@
1
+ declare const _default: {
2
+ register(app: any): void;
3
+ registerTrads({ locales }: {
4
+ locales: string[];
5
+ }): Promise<{
6
+ data: any;
7
+ locale: string;
8
+ }[]>;
9
+ };
10
+ export default _default;
@@ -0,0 +1,2 @@
1
+ declare const App: () => import("react/jsx-runtime").JSX.Element;
2
+ export { App };
@@ -0,0 +1,2 @@
1
+ declare const HomePage: () => import("react/jsx-runtime").JSX.Element;
2
+ export { HomePage };
@@ -0,0 +1 @@
1
+ export declare const PLUGIN_ID = "kanban-board";
@@ -0,0 +1,2 @@
1
+ declare const getTranslation: (id: string) => string;
2
+ export { getTranslation };
@@ -0,0 +1,73 @@
1
+ "use strict";
2
+ const bootstrap = ({ strapi }) => {
3
+ };
4
+ const destroy = ({ strapi }) => {
5
+ };
6
+ const register = ({ strapi }) => {
7
+ strapi.customFields.register({
8
+ name: "kanban-board",
9
+ plugin: "kanban-board",
10
+ type: "json"
11
+ // Note: Options are primarily handled by the Admin UI during CTB configuration,
12
+ // but registering the field with the correct name and plugin is essential.
13
+ });
14
+ };
15
+ const config = {
16
+ default: {},
17
+ validator() {
18
+ }
19
+ };
20
+ const contentTypes = {};
21
+ const controller = ({ strapi }) => ({
22
+ index(ctx) {
23
+ ctx.body = strapi.plugin("kanban-board").service("service").getWelcomeMessage();
24
+ }
25
+ });
26
+ const controllers = {
27
+ controller
28
+ };
29
+ const middlewares = {};
30
+ const policies = {};
31
+ const contentAPIRoutes = () => ({
32
+ type: "content-api",
33
+ routes: [
34
+ {
35
+ method: "GET",
36
+ path: "/",
37
+ // name of the controller file & the method.
38
+ handler: "controller.index",
39
+ config: {
40
+ policies: []
41
+ }
42
+ }
43
+ ]
44
+ });
45
+ const adminAPIRoutes = () => ({
46
+ type: "admin",
47
+ routes: []
48
+ });
49
+ const routes = {
50
+ "content-api": contentAPIRoutes,
51
+ admin: adminAPIRoutes
52
+ };
53
+ const service = ({ strapi }) => ({
54
+ getWelcomeMessage() {
55
+ return "Welcome to Strapi 🚀";
56
+ }
57
+ });
58
+ const services = {
59
+ service
60
+ };
61
+ const index = {
62
+ register,
63
+ bootstrap,
64
+ destroy,
65
+ config,
66
+ controllers,
67
+ routes,
68
+ services,
69
+ contentTypes,
70
+ policies,
71
+ middlewares
72
+ };
73
+ module.exports = index;
@@ -0,0 +1,74 @@
1
+ const bootstrap = ({ strapi }) => {
2
+ };
3
+ const destroy = ({ strapi }) => {
4
+ };
5
+ const register = ({ strapi }) => {
6
+ strapi.customFields.register({
7
+ name: "kanban-board",
8
+ plugin: "kanban-board",
9
+ type: "json"
10
+ // Note: Options are primarily handled by the Admin UI during CTB configuration,
11
+ // but registering the field with the correct name and plugin is essential.
12
+ });
13
+ };
14
+ const config = {
15
+ default: {},
16
+ validator() {
17
+ }
18
+ };
19
+ const contentTypes = {};
20
+ const controller = ({ strapi }) => ({
21
+ index(ctx) {
22
+ ctx.body = strapi.plugin("kanban-board").service("service").getWelcomeMessage();
23
+ }
24
+ });
25
+ const controllers = {
26
+ controller
27
+ };
28
+ const middlewares = {};
29
+ const policies = {};
30
+ const contentAPIRoutes = () => ({
31
+ type: "content-api",
32
+ routes: [
33
+ {
34
+ method: "GET",
35
+ path: "/",
36
+ // name of the controller file & the method.
37
+ handler: "controller.index",
38
+ config: {
39
+ policies: []
40
+ }
41
+ }
42
+ ]
43
+ });
44
+ const adminAPIRoutes = () => ({
45
+ type: "admin",
46
+ routes: []
47
+ });
48
+ const routes = {
49
+ "content-api": contentAPIRoutes,
50
+ admin: adminAPIRoutes
51
+ };
52
+ const service = ({ strapi }) => ({
53
+ getWelcomeMessage() {
54
+ return "Welcome to Strapi 🚀";
55
+ }
56
+ });
57
+ const services = {
58
+ service
59
+ };
60
+ const index = {
61
+ register,
62
+ bootstrap,
63
+ destroy,
64
+ config,
65
+ controllers,
66
+ routes,
67
+ services,
68
+ contentTypes,
69
+ policies,
70
+ middlewares
71
+ };
72
+ export {
73
+ index as default
74
+ };
@@ -0,0 +1,5 @@
1
+ import type { Core } from '@strapi/strapi';
2
+ declare const bootstrap: ({ strapi }: {
3
+ strapi: Core.Strapi;
4
+ }) => void;
5
+ export default bootstrap;
@@ -0,0 +1,5 @@
1
+ declare const _default: {
2
+ default: {};
3
+ validator(): void;
4
+ };
5
+ export default _default;
@@ -0,0 +1,2 @@
1
+ declare const _default: {};
2
+ export default _default;
@@ -0,0 +1,7 @@
1
+ import type { Core } from '@strapi/strapi';
2
+ declare const controller: ({ strapi }: {
3
+ strapi: Core.Strapi;
4
+ }) => {
5
+ index(ctx: any): void;
6
+ };
7
+ export default controller;
@@ -0,0 +1,2 @@
1
+ declare const _default: any;
2
+ export default _default;
@@ -0,0 +1,5 @@
1
+ import type { Core } from '@strapi/strapi';
2
+ declare const destroy: ({ strapi }: {
3
+ strapi: Core.Strapi;
4
+ }) => void;
5
+ export default destroy;
@@ -0,0 +1,2 @@
1
+ declare const _default: any;
2
+ export default _default;
@@ -0,0 +1,2 @@
1
+ declare const _default: {};
2
+ export default _default;
@@ -0,0 +1,2 @@
1
+ declare const _default: {};
2
+ export default _default;
@@ -0,0 +1,5 @@
1
+ import type { Core } from '@strapi/strapi';
2
+ declare const register: ({ strapi }: {
3
+ strapi: Core.Strapi;
4
+ }) => void;
5
+ export default register;
@@ -0,0 +1,5 @@
1
+ declare const _default: () => {
2
+ type: string;
3
+ routes: any[];
4
+ };
5
+ export default _default;
@@ -0,0 +1,12 @@
1
+ declare const _default: () => {
2
+ type: string;
3
+ routes: {
4
+ method: string;
5
+ path: string;
6
+ handler: string;
7
+ config: {
8
+ policies: any[];
9
+ };
10
+ }[];
11
+ };
12
+ export default _default;
@@ -0,0 +1,18 @@
1
+ declare const routes: {
2
+ 'content-api': () => {
3
+ type: string;
4
+ routes: {
5
+ method: string;
6
+ path: string;
7
+ handler: string;
8
+ config: {
9
+ policies: any[];
10
+ };
11
+ }[];
12
+ };
13
+ admin: () => {
14
+ type: string;
15
+ routes: any[];
16
+ };
17
+ };
18
+ export default routes;
@@ -0,0 +1,2 @@
1
+ declare const _default: any;
2
+ export default _default;
@@ -0,0 +1,7 @@
1
+ import type { Core } from '@strapi/strapi';
2
+ declare const service: ({ strapi }: {
3
+ strapi: Core.Strapi;
4
+ }) => {
5
+ getWelcomeMessage(): string;
6
+ };
7
+ export default service;
package/package.json ADDED
@@ -0,0 +1,101 @@
1
+ {
2
+ "name": "@ittinc/strapi-plugin-kanban-board",
3
+ "version": "0.0.1",
4
+ "private": false,
5
+ "description": "A Kanban board plugin for Strapi v5",
6
+ "repository": {
7
+ "type": "git",
8
+ "url": "https://code.dev-ittest.ru/it-test-public/strapi-plugin-kanban-board.git"
9
+ },
10
+ "publishConfig": {
11
+ "access": "public"
12
+ },
13
+ "strapi": {
14
+ "kind": "plugin",
15
+ "name": "kanban-board",
16
+ "displayName": "Kanban Board",
17
+ "description": "Manage your content in a Kanban view"
18
+ },
19
+ "keywords": [
20
+ "strapi",
21
+ "plugin",
22
+ "kanban",
23
+ "board",
24
+ "drag-and-drop"
25
+ ],
26
+ "license": "MIT",
27
+ "author": "sonich <boldyreva@ittest-team.ru>",
28
+ "type": "commonjs",
29
+ "exports": {
30
+ "./package.json": "./package.json",
31
+ "./strapi-admin": {
32
+ "types": "./dist/admin/src/index.d.ts",
33
+ "source": "./admin/src/index.ts",
34
+ "import": "./dist/admin/index.mjs",
35
+ "require": "./dist/admin/index.js",
36
+ "default": "./dist/admin/index.js"
37
+ },
38
+ "./strapi-server": {
39
+ "types": "./dist/server/src/index.d.ts",
40
+ "source": "./server/src/index.ts",
41
+ "import": "./dist/server/index.mjs",
42
+ "require": "./dist/server/index.js",
43
+ "default": "./dist/server/index.js"
44
+ }
45
+ },
46
+ "files": [
47
+ "admin",
48
+ "server",
49
+ "dist"
50
+ ],
51
+ "scripts": {
52
+ "build": "strapi-plugin build",
53
+ "watch": "strapi-plugin watch",
54
+ "verify": "strapi-plugin verify",
55
+ "prepublishOnly": "npm run build",
56
+ "prepare": "npm run build",
57
+ "postinstall": "npm run build"
58
+ },
59
+ "engines": {
60
+ "node": ">=18.0.0",
61
+ "npm": ">=6.0.0"
62
+ },
63
+ "dependencies": {
64
+ "@strapi/sdk-plugin": "^5.4.0",
65
+ "@strapi/typescript-utils": "5.31.0",
66
+ "typescript": "^5.9.3",
67
+ "@strapi/design-system": "^2.0.0-rc.30",
68
+ "@strapi/icons": "^2.0.0-rc.30",
69
+ "react-intl": "^8.1.1",
70
+ "styled-components": "^6.3.8"
71
+ },
72
+ "devDependencies": {
73
+ "@strapi/design-system": "^2.0.0-rc.30",
74
+ "@strapi/icons": "^2.0.0-rc.30",
75
+ "react-intl": "^8.1.1",
76
+ "@strapi/strapi": "5.31.0",
77
+ "@strapi/sdk-plugin": "^5.4.0",
78
+ "prettier": "^3.8.1",
79
+ "react": "^18.3.1",
80
+ "react-dom": "^18.3.1",
81
+ "react-router-dom": "^6.30.3",
82
+ "styled-components": "^6.3.8",
83
+ "@types/react": "^19.2.9",
84
+ "@types/react-dom": "^19.2.3",
85
+ "@strapi/typescript-utils": "5.31.0",
86
+ "typescript": "^5.9.3"
87
+ },
88
+ "peerDependencies": {
89
+ "@strapi/design-system": "^2.0.0-rc.30",
90
+ "@strapi/icons": "^2.0.0-rc.30",
91
+ "react-intl": "^8.1.1",
92
+ "@strapi/strapi": "5.31.0",
93
+ "@strapi/sdk-plugin": "^5.4.0",
94
+ "react": "^18.3.1",
95
+ "react-dom": "^18.3.1",
96
+ "react-router-dom": "^6.30.3",
97
+ "styled-components": "^6.3.8"
98
+ },
99
+ "main": "./dist/server/index.js",
100
+ "module": "./dist/admin/index.mjs"
101
+ }
@@ -0,0 +1,7 @@
1
+ import type { Core } from '@strapi/strapi';
2
+
3
+ const bootstrap = ({ strapi }: { strapi: Core.Strapi }) => {
4
+ // bootstrap phase
5
+ };
6
+
7
+ export default bootstrap;
@@ -0,0 +1,4 @@
1
+ export default {
2
+ default: {},
3
+ validator() {},
4
+ };
@@ -0,0 +1 @@
1
+ export default {};
@@ -0,0 +1,13 @@
1
+ import type { Core } from '@strapi/strapi';
2
+
3
+ const controller = ({ strapi }: { strapi: Core.Strapi }) => ({
4
+ index(ctx) {
5
+ ctx.body = strapi
6
+ .plugin('kanban-board')
7
+ // the name of the service file & the method.
8
+ .service('service')
9
+ .getWelcomeMessage();
10
+ },
11
+ });
12
+
13
+ export default controller;
@@ -0,0 +1,5 @@
1
+ import controller from './controller';
2
+
3
+ export default {
4
+ controller,
5
+ } as any;
@@ -0,0 +1,7 @@
1
+ import type { Core } from '@strapi/strapi';
2
+
3
+ const destroy = ({ strapi }: { strapi: Core.Strapi }) => {
4
+ // destroy phase
5
+ };
6
+
7
+ export default destroy;
@@ -0,0 +1,30 @@
1
+ /**
2
+ * Application methods
3
+ */
4
+ import bootstrap from './bootstrap';
5
+ import destroy from './destroy';
6
+ import register from './register';
7
+
8
+ /**
9
+ * Plugin server methods
10
+ */
11
+ import config from './config';
12
+ import contentTypes from './content-types';
13
+ import controllers from './controllers';
14
+ import middlewares from './middlewares';
15
+ import policies from './policies';
16
+ import routes from './routes';
17
+ import services from './services';
18
+
19
+ export default {
20
+ register,
21
+ bootstrap,
22
+ destroy,
23
+ config,
24
+ controllers,
25
+ routes,
26
+ services,
27
+ contentTypes,
28
+ policies,
29
+ middlewares,
30
+ } as any;
@@ -0,0 +1 @@
1
+ export default {};
@@ -0,0 +1 @@
1
+ export default {};