@strapi/plugin-documentation 4.15.3-alpha.3 → 4.15.3

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 (117) hide show
  1. package/package.json +8 -9
  2. package/dist/_chunks/ar-3945178e.js +0 -24
  3. package/dist/_chunks/ar-3945178e.js.map +0 -1
  4. package/dist/_chunks/ar-a504b634.mjs +0 -24
  5. package/dist/_chunks/ar-a504b634.mjs.map +0 -1
  6. package/dist/_chunks/cs-053272e2.js +0 -25
  7. package/dist/_chunks/cs-053272e2.js.map +0 -1
  8. package/dist/_chunks/cs-feb7f04c.mjs +0 -25
  9. package/dist/_chunks/cs-feb7f04c.mjs.map +0 -1
  10. package/dist/_chunks/de-09853142.js +0 -30
  11. package/dist/_chunks/de-09853142.js.map +0 -1
  12. package/dist/_chunks/de-a33e1fea.mjs +0 -30
  13. package/dist/_chunks/de-a33e1fea.mjs.map +0 -1
  14. package/dist/_chunks/dk-05d66fde.js +0 -43
  15. package/dist/_chunks/dk-05d66fde.js.map +0 -1
  16. package/dist/_chunks/dk-ed9fcdcf.mjs +0 -43
  17. package/dist/_chunks/dk-ed9fcdcf.mjs.map +0 -1
  18. package/dist/_chunks/en-70db76ff.js +0 -43
  19. package/dist/_chunks/en-70db76ff.js.map +0 -1
  20. package/dist/_chunks/en-96395a32.mjs +0 -43
  21. package/dist/_chunks/en-96395a32.mjs.map +0 -1
  22. package/dist/_chunks/es-22de55e3.mjs +0 -43
  23. package/dist/_chunks/es-22de55e3.mjs.map +0 -1
  24. package/dist/_chunks/es-497d8815.js +0 -43
  25. package/dist/_chunks/es-497d8815.js.map +0 -1
  26. package/dist/_chunks/fr-24238f91.js +0 -30
  27. package/dist/_chunks/fr-24238f91.js.map +0 -1
  28. package/dist/_chunks/fr-70c3898d.mjs +0 -30
  29. package/dist/_chunks/fr-70c3898d.mjs.map +0 -1
  30. package/dist/_chunks/id-e9ab0af3.js +0 -28
  31. package/dist/_chunks/id-e9ab0af3.js.map +0 -1
  32. package/dist/_chunks/id-e9e00780.mjs +0 -28
  33. package/dist/_chunks/id-e9e00780.mjs.map +0 -1
  34. package/dist/_chunks/index-0e3a30b7.js +0 -202
  35. package/dist/_chunks/index-0e3a30b7.js.map +0 -1
  36. package/dist/_chunks/index-663971a1.js +0 -194
  37. package/dist/_chunks/index-663971a1.js.map +0 -1
  38. package/dist/_chunks/index-8e1882d0.mjs +0 -173
  39. package/dist/_chunks/index-8e1882d0.mjs.map +0 -1
  40. package/dist/_chunks/index-a0e8c1eb.mjs +0 -167
  41. package/dist/_chunks/index-a0e8c1eb.mjs.map +0 -1
  42. package/dist/_chunks/index-ae592535.mjs +0 -203
  43. package/dist/_chunks/index-ae592535.mjs.map +0 -1
  44. package/dist/_chunks/index-cddc8fc0.js +0 -169
  45. package/dist/_chunks/index-cddc8fc0.js.map +0 -1
  46. package/dist/_chunks/it-28ef2963.mjs +0 -30
  47. package/dist/_chunks/it-28ef2963.mjs.map +0 -1
  48. package/dist/_chunks/it-5255d492.js +0 -30
  49. package/dist/_chunks/it-5255d492.js.map +0 -1
  50. package/dist/_chunks/ko-34e7eb26.js +0 -43
  51. package/dist/_chunks/ko-34e7eb26.js.map +0 -1
  52. package/dist/_chunks/ko-a29301ee.mjs +0 -43
  53. package/dist/_chunks/ko-a29301ee.mjs.map +0 -1
  54. package/dist/_chunks/ms-63bb66e1.js +0 -27
  55. package/dist/_chunks/ms-63bb66e1.js.map +0 -1
  56. package/dist/_chunks/ms-87588bdb.mjs +0 -27
  57. package/dist/_chunks/ms-87588bdb.mjs.map +0 -1
  58. package/dist/_chunks/nl-0319020c.js +0 -25
  59. package/dist/_chunks/nl-0319020c.js.map +0 -1
  60. package/dist/_chunks/nl-91bcd809.mjs +0 -25
  61. package/dist/_chunks/nl-91bcd809.mjs.map +0 -1
  62. package/dist/_chunks/pl-2d57c604.js +0 -43
  63. package/dist/_chunks/pl-2d57c604.js.map +0 -1
  64. package/dist/_chunks/pl-7d7fe7b2.mjs +0 -43
  65. package/dist/_chunks/pl-7d7fe7b2.mjs.map +0 -1
  66. package/dist/_chunks/pt-9b66f3d5.mjs +0 -25
  67. package/dist/_chunks/pt-9b66f3d5.mjs.map +0 -1
  68. package/dist/_chunks/pt-BR-0024d4be.mjs +0 -25
  69. package/dist/_chunks/pt-BR-0024d4be.mjs.map +0 -1
  70. package/dist/_chunks/pt-BR-cf80ef96.js +0 -25
  71. package/dist/_chunks/pt-BR-cf80ef96.js.map +0 -1
  72. package/dist/_chunks/pt-b91837bc.js +0 -25
  73. package/dist/_chunks/pt-b91837bc.js.map +0 -1
  74. package/dist/_chunks/ru-468d9a30.mjs +0 -43
  75. package/dist/_chunks/ru-468d9a30.mjs.map +0 -1
  76. package/dist/_chunks/ru-91348271.js +0 -43
  77. package/dist/_chunks/ru-91348271.js.map +0 -1
  78. package/dist/_chunks/sk-01b7713b.mjs +0 -28
  79. package/dist/_chunks/sk-01b7713b.mjs.map +0 -1
  80. package/dist/_chunks/sk-10c03ab1.js +0 -28
  81. package/dist/_chunks/sk-10c03ab1.js.map +0 -1
  82. package/dist/_chunks/sv-7edbe28d.mjs +0 -43
  83. package/dist/_chunks/sv-7edbe28d.mjs.map +0 -1
  84. package/dist/_chunks/sv-e5237308.js +0 -43
  85. package/dist/_chunks/sv-e5237308.js.map +0 -1
  86. package/dist/_chunks/th-200a02f1.js +0 -28
  87. package/dist/_chunks/th-200a02f1.js.map +0 -1
  88. package/dist/_chunks/th-4fcead7f.mjs +0 -28
  89. package/dist/_chunks/th-4fcead7f.mjs.map +0 -1
  90. package/dist/_chunks/tr-8290d257.mjs +0 -43
  91. package/dist/_chunks/tr-8290d257.mjs.map +0 -1
  92. package/dist/_chunks/tr-fd36715f.js +0 -43
  93. package/dist/_chunks/tr-fd36715f.js.map +0 -1
  94. package/dist/_chunks/uk-bf914720.mjs +0 -27
  95. package/dist/_chunks/uk-bf914720.mjs.map +0 -1
  96. package/dist/_chunks/uk-cb462605.js +0 -27
  97. package/dist/_chunks/uk-cb462605.js.map +0 -1
  98. package/dist/_chunks/useDocumentation-29a97807.js +0 -65
  99. package/dist/_chunks/useDocumentation-29a97807.js.map +0 -1
  100. package/dist/_chunks/useDocumentation-748bc8f3.mjs +0 -66
  101. package/dist/_chunks/useDocumentation-748bc8f3.mjs.map +0 -1
  102. package/dist/_chunks/vi-d2e2e100.js +0 -28
  103. package/dist/_chunks/vi-d2e2e100.js.map +0 -1
  104. package/dist/_chunks/vi-ddc8357e.mjs +0 -28
  105. package/dist/_chunks/vi-ddc8357e.mjs.map +0 -1
  106. package/dist/_chunks/zh-7b489db7.mjs +0 -43
  107. package/dist/_chunks/zh-7b489db7.mjs.map +0 -1
  108. package/dist/_chunks/zh-8da2191f.js +0 -43
  109. package/dist/_chunks/zh-8da2191f.js.map +0 -1
  110. package/dist/_chunks/zh-Hans-6cefb513.mjs +0 -32
  111. package/dist/_chunks/zh-Hans-6cefb513.mjs.map +0 -1
  112. package/dist/_chunks/zh-Hans-c2e4b737.js +0 -32
  113. package/dist/_chunks/zh-Hans-c2e4b737.js.map +0 -1
  114. package/dist/admin/index.js +0 -6
  115. package/dist/admin/index.js.map +0 -1
  116. package/dist/admin/index.mjs +0 -7
  117. package/dist/admin/index.mjs.map +0 -1
@@ -1,28 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- const id = {
4
- "components.Row.open": "Buka",
5
- "components.Row.regenerate": "Diperbarui",
6
- "containers.HomePage.Block.title": "Versi",
7
- "containers.HomePage.Button.update": "Perbarui",
8
- "containers.HomePage.PluginHeader.title": "Dokumentasi — Pengaturan",
9
- "containers.HomePage.PopUpWarning.confirm": "Saya mengerti",
10
- "containers.HomePage.PopUpWarning.message": "Anda yakin ingin menghapus versi ini?",
11
- "containers.HomePage.copied": "Token disalin ke papan klip",
12
- "containers.HomePage.form.jwtToken": "Ambil token JWT Anda",
13
- "containers.HomePage.form.jwtToken.description": "Salin token ini dan gunakan dengan sombong untuk membuat permintaan",
14
- "containers.HomePage.form.password": "Kata sandi",
15
- "containers.HomePage.form.password.inputDescription": "Atur kata sandi untuk mengakses dokumentasi",
16
- "containers.HomePage.form.restrictedAccess": "Akses terbatas",
17
- "containers.HomePage.form.restrictedAccess.inputDescription": "Jadikan titik akhir dokumentasi bersifat pribadi. Secara default, aksesnya adalah publik",
18
- "containers.HomePage.form.showGeneratedFiles": "Tampilkan file yang dibuat",
19
- "containers.HomePage.form.showGeneratedFiles.inputDescription": "Berguna ketika Anda ingin mengganti dokumentasi yang dihasilkan. \n Plugin akan menghasilkan file yang dipisahkan berdasarkan model dan plugin. \n Dengan mengaktifkan opsi ini, akan lebih mudah untuk menyesuaikan dokumentasi Anda",
20
- "error.deleteDoc.versionMissing": "Versi yang Anda coba hapus tidak ada.",
21
- "error.noVersion": "Versi diperlukan",
22
- "error.regenerateDoc": "Terjadi kesalahan saat membuat ulang dokumen",
23
- "error.regenerateDoc.versionMissing": "Versi yang Anda coba buat tidak ada",
24
- "notification.update.success": "Pengaturan berhasil diperbarui",
25
- "plugin.name": "Dokumentasi"
26
- };
27
- exports.default = id;
28
- //# sourceMappingURL=id-e9ab0af3.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"id-e9ab0af3.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -1,28 +0,0 @@
1
- const id = {
2
- "components.Row.open": "Buka",
3
- "components.Row.regenerate": "Diperbarui",
4
- "containers.HomePage.Block.title": "Versi",
5
- "containers.HomePage.Button.update": "Perbarui",
6
- "containers.HomePage.PluginHeader.title": "Dokumentasi — Pengaturan",
7
- "containers.HomePage.PopUpWarning.confirm": "Saya mengerti",
8
- "containers.HomePage.PopUpWarning.message": "Anda yakin ingin menghapus versi ini?",
9
- "containers.HomePage.copied": "Token disalin ke papan klip",
10
- "containers.HomePage.form.jwtToken": "Ambil token JWT Anda",
11
- "containers.HomePage.form.jwtToken.description": "Salin token ini dan gunakan dengan sombong untuk membuat permintaan",
12
- "containers.HomePage.form.password": "Kata sandi",
13
- "containers.HomePage.form.password.inputDescription": "Atur kata sandi untuk mengakses dokumentasi",
14
- "containers.HomePage.form.restrictedAccess": "Akses terbatas",
15
- "containers.HomePage.form.restrictedAccess.inputDescription": "Jadikan titik akhir dokumentasi bersifat pribadi. Secara default, aksesnya adalah publik",
16
- "containers.HomePage.form.showGeneratedFiles": "Tampilkan file yang dibuat",
17
- "containers.HomePage.form.showGeneratedFiles.inputDescription": "Berguna ketika Anda ingin mengganti dokumentasi yang dihasilkan. \n Plugin akan menghasilkan file yang dipisahkan berdasarkan model dan plugin. \n Dengan mengaktifkan opsi ini, akan lebih mudah untuk menyesuaikan dokumentasi Anda",
18
- "error.deleteDoc.versionMissing": "Versi yang Anda coba hapus tidak ada.",
19
- "error.noVersion": "Versi diperlukan",
20
- "error.regenerateDoc": "Terjadi kesalahan saat membuat ulang dokumen",
21
- "error.regenerateDoc.versionMissing": "Versi yang Anda coba buat tidak ada",
22
- "notification.update.success": "Pengaturan berhasil diperbarui",
23
- "plugin.name": "Dokumentasi"
24
- };
25
- export {
26
- id as default
27
- };
28
- //# sourceMappingURL=id-e9e00780.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"id-e9e00780.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -1,202 +0,0 @@
1
- "use strict";
2
- const helperPlugin = require("@strapi/helper-plugin");
3
- const icons = require("@strapi/icons");
4
- const __variableDynamicImportRuntimeHelper = (glob, path) => {
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)(reject.bind(null, new Error("Unknown variable dynamic import: " + path)));
11
- });
12
- };
13
- const name$1 = "@strapi/plugin-documentation";
14
- const version = "4.15.3-alpha.3";
15
- const description = "Create an OpenAPI Document and visualize your API with SWAGGER UI.";
16
- const repository = {
17
- type: "git",
18
- url: "https://github.com/strapi/strapi.git",
19
- directory: "packages/plugins/documentation"
20
- };
21
- const license = "SEE LICENSE IN LICENSE";
22
- const author = {
23
- name: "Strapi Solutions SAS",
24
- email: "hi@strapi.io",
25
- url: "https://strapi.io"
26
- };
27
- const maintainers = [
28
- {
29
- name: "Strapi Solutions SAS",
30
- email: "hi@strapi.io",
31
- url: "https://strapi.io"
32
- }
33
- ];
34
- const exports$1 = {
35
- "./strapi-admin": {
36
- source: "./admin/src/index.js",
37
- "import": "./dist/admin/index.mjs",
38
- require: "./dist/admin/index.js",
39
- "default": "./dist/admin/index.js"
40
- },
41
- "./strapi-server": {
42
- source: "./strapi-server.js",
43
- require: "./strapi-server.js",
44
- "default": "./strapi-server.js"
45
- },
46
- "./package.json": "./package.json"
47
- };
48
- const scripts = {
49
- build: "pack-up build",
50
- clean: "run -T rimraf dist",
51
- lint: "run -T eslint .",
52
- "test:front": "run -T cross-env IS_EE=true jest --config ./jest.config.front.js",
53
- "test:front:watch": "run -T cross-env IS_EE=true jest --config ./jest.config.front.js --watchAll",
54
- "test:unit": "jest --verbose",
55
- "test:unit:watch": "run -T jest --watch",
56
- prepublishOnly: "yarn clean && yarn build",
57
- watch: "pack-up watch"
58
- };
59
- const dependencies = {
60
- "@strapi/design-system": "1.13.0",
61
- "@strapi/helper-plugin": "4.15.3-alpha.3",
62
- "@strapi/icons": "1.13.0",
63
- "@strapi/utils": "4.15.3-alpha.3",
64
- bcryptjs: "2.4.3",
65
- cheerio: "^1.0.0-rc.12",
66
- formik: "2.4.0",
67
- "fs-extra": "10.0.0",
68
- immer: "9.0.19",
69
- "koa-static": "^5.0.0",
70
- lodash: "4.17.21",
71
- "path-to-regexp": "6.2.1",
72
- "react-helmet": "^6.1.0",
73
- "react-intl": "6.4.1",
74
- "react-query": "3.39.3",
75
- "swagger-ui-dist": "4.19.0",
76
- yaml: "1.10.2",
77
- yup: "0.32.9"
78
- };
79
- const devDependencies = {
80
- "@apidevtools/swagger-parser": "^10.1.0",
81
- "@strapi/pack-up": "4.15.3-alpha.3",
82
- "@strapi/strapi": "4.15.3-alpha.3",
83
- "@testing-library/react": "14.0.0",
84
- "@testing-library/user-event": "14.4.3",
85
- msw: "1.3.0",
86
- react: "^18.2.0",
87
- "react-dom": "^18.2.0",
88
- "react-router-dom": "5.3.4",
89
- "styled-components": "5.3.3"
90
- };
91
- const peerDependencies = {
92
- "@strapi/strapi": "^4.15.2",
93
- react: "^17.0.0 || ^18.0.0",
94
- "react-dom": "^17.0.0 || ^18.0.0",
95
- "react-router-dom": "^5.2.0",
96
- "styled-components": "^5.2.1"
97
- };
98
- const engines = {
99
- node: ">=18.0.0 <=20.x.x",
100
- npm: ">=6.0.0"
101
- };
102
- const strapi = {
103
- displayName: "Documentation",
104
- name: "documentation",
105
- description: "Create an OpenAPI Document and visualize your API with SWAGGER UI.",
106
- kind: "plugin"
107
- };
108
- const gitHead = "e52150bf32037a703dbb71c6346ae1c15db17284";
109
- const pluginPkg = {
110
- name: name$1,
111
- version,
112
- description,
113
- repository,
114
- license,
115
- author,
116
- maintainers,
117
- exports: exports$1,
118
- scripts,
119
- dependencies,
120
- devDependencies,
121
- peerDependencies,
122
- engines,
123
- strapi,
124
- gitHead
125
- };
126
- const PERMISSIONS = {
127
- // This permission regards the main component (App) and is used to tell
128
- // If the plugin link should be displayed in the menu
129
- // And also if the plugin is accessible. This use case is found when a user types the url of the
130
- // plugin directly in the browser
131
- main: [
132
- { action: "plugin::documentation.read", subject: null },
133
- { action: "plugin::documentation.settings.regenerate", subject: null },
134
- { action: "plugin::documentation.settings.update", subject: null }
135
- ],
136
- open: [
137
- { action: "plugin::documentation.read", subject: null },
138
- { action: "plugin::documentation.settings.regenerate", subject: null }
139
- ],
140
- regenerate: [{ action: "plugin::documentation.settings.regenerate", subject: null }],
141
- update: [{ action: "plugin::documentation.settings.update", subject: null }]
142
- };
143
- const pluginId = pluginPkg.name.replace(/^@strapi\/plugin-/i, "");
144
- const name = pluginPkg.strapi.name;
145
- const index = {
146
- register(app) {
147
- app.addMenuLink({
148
- to: `/plugins/${pluginId}`,
149
- icon: icons.Information,
150
- intlLabel: {
151
- id: `${pluginId}.plugin.name`,
152
- defaultMessage: "Documentation"
153
- },
154
- permissions: PERMISSIONS.main,
155
- async Component() {
156
- const component = await Promise.resolve().then(() => require("./index-cddc8fc0.js"));
157
- return component;
158
- }
159
- });
160
- app.registerPlugin({
161
- id: pluginId,
162
- name
163
- });
164
- },
165
- bootstrap(app) {
166
- app.addSettingsLink("global", {
167
- intlLabel: {
168
- id: `${pluginId}.plugin.name`,
169
- defaultMessage: "Documentation"
170
- },
171
- id: "documentation",
172
- to: `/settings/${pluginId}`,
173
- async Component() {
174
- const component = await Promise.resolve().then(() => require("./index-663971a1.js"));
175
- return component;
176
- },
177
- permissions: PERMISSIONS.main
178
- });
179
- },
180
- async registerTrads({ locales }) {
181
- const importedTrads = await Promise.all(
182
- locales.map((locale) => {
183
- return __variableDynamicImportRuntimeHelper(/* @__PURE__ */ Object.assign({ "./translations/ar.json": () => Promise.resolve().then(() => require("./ar-3945178e.js")), "./translations/cs.json": () => Promise.resolve().then(() => require("./cs-053272e2.js")), "./translations/de.json": () => Promise.resolve().then(() => require("./de-09853142.js")), "./translations/dk.json": () => Promise.resolve().then(() => require("./dk-05d66fde.js")), "./translations/en.json": () => Promise.resolve().then(() => require("./en-70db76ff.js")), "./translations/es.json": () => Promise.resolve().then(() => require("./es-497d8815.js")), "./translations/fr.json": () => Promise.resolve().then(() => require("./fr-24238f91.js")), "./translations/id.json": () => Promise.resolve().then(() => require("./id-e9ab0af3.js")), "./translations/it.json": () => Promise.resolve().then(() => require("./it-5255d492.js")), "./translations/ko.json": () => Promise.resolve().then(() => require("./ko-34e7eb26.js")), "./translations/ms.json": () => Promise.resolve().then(() => require("./ms-63bb66e1.js")), "./translations/nl.json": () => Promise.resolve().then(() => require("./nl-0319020c.js")), "./translations/pl.json": () => Promise.resolve().then(() => require("./pl-2d57c604.js")), "./translations/pt-BR.json": () => Promise.resolve().then(() => require("./pt-BR-cf80ef96.js")), "./translations/pt.json": () => Promise.resolve().then(() => require("./pt-b91837bc.js")), "./translations/ru.json": () => Promise.resolve().then(() => require("./ru-91348271.js")), "./translations/sk.json": () => Promise.resolve().then(() => require("./sk-10c03ab1.js")), "./translations/sv.json": () => Promise.resolve().then(() => require("./sv-e5237308.js")), "./translations/th.json": () => Promise.resolve().then(() => require("./th-200a02f1.js")), "./translations/tr.json": () => Promise.resolve().then(() => require("./tr-fd36715f.js")), "./translations/uk.json": () => Promise.resolve().then(() => require("./uk-cb462605.js")), "./translations/vi.json": () => Promise.resolve().then(() => require("./vi-d2e2e100.js")), "./translations/zh-Hans.json": () => Promise.resolve().then(() => require("./zh-Hans-c2e4b737.js")), "./translations/zh.json": () => Promise.resolve().then(() => require("./zh-8da2191f.js")) }), `./translations/${locale}.json`).then(({ default: data }) => {
184
- return {
185
- data: helperPlugin.prefixPluginTranslations(data, pluginId),
186
- locale
187
- };
188
- }).catch(() => {
189
- return {
190
- data: {},
191
- locale
192
- };
193
- });
194
- })
195
- );
196
- return Promise.resolve(importedTrads);
197
- }
198
- };
199
- exports.PERMISSIONS = PERMISSIONS;
200
- exports.index = index;
201
- exports.pluginId = pluginId;
202
- //# sourceMappingURL=index-0e3a30b7.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index-0e3a30b7.js","sources":["../../admin/src/constants.js","../../admin/src/pluginId.js","../../admin/src/index.js"],"sourcesContent":["export const PERMISSIONS = {\n // This permission regards the main component (App) and is used to tell\n // If the plugin link should be displayed in the menu\n // And also if the plugin is accessible. This use case is found when a user types the url of the\n // plugin directly in the browser\n main: [\n { action: 'plugin::documentation.read', subject: null },\n { action: 'plugin::documentation.settings.regenerate', subject: null },\n { action: 'plugin::documentation.settings.update', subject: null },\n ],\n open: [\n { action: 'plugin::documentation.read', subject: null },\n { action: 'plugin::documentation.settings.regenerate', subject: null },\n ],\n regenerate: [{ action: 'plugin::documentation.settings.regenerate', subject: null }],\n update: [{ action: 'plugin::documentation.settings.update', subject: null }],\n};\n","import pluginPkg from '../../package.json';\n\nconst pluginId = pluginPkg.name.replace(/^@strapi\\/plugin-/i, '');\n\nexport default pluginId;\n","// NOTE TO PLUGINS DEVELOPERS:\n// If you modify this file by adding new options to the plugin entry point\n// Here's the file: strapi/docs/3.0.0-beta.x/plugin-development/frontend-field-api.md\n// Here's the file: strapi/docs/3.0.0-beta.x/guides/registering-a-field-in-admin.md\n// Also the strapi-generate-plugins/files/admin/src/index.js needs to be updated\n// IF THE DOC IS NOT UPDATED THE PULL REQUEST WILL NOT BE MERGED\nimport { prefixPluginTranslations } from '@strapi/helper-plugin';\nimport { Information } from '@strapi/icons';\n\nimport pluginPkg from '../../package.json';\n\nimport { PERMISSIONS } from './constants';\nimport pluginId from './pluginId';\n\nconst name = pluginPkg.strapi.name;\n\nexport default {\n register(app) {\n app.addMenuLink({\n to: `/plugins/${pluginId}`,\n icon: Information,\n intlLabel: {\n id: `${pluginId}.plugin.name`,\n defaultMessage: 'Documentation',\n },\n permissions: PERMISSIONS.main,\n async Component() {\n const component = await import('./pages/PluginPage');\n\n return component;\n },\n });\n\n app.registerPlugin({\n id: pluginId,\n name,\n });\n },\n bootstrap(app) {\n app.addSettingsLink('global', {\n intlLabel: {\n id: `${pluginId}.plugin.name`,\n defaultMessage: 'Documentation',\n },\n id: 'documentation',\n to: `/settings/${pluginId}`,\n async Component() {\n const component = await import('./pages/SettingsPage');\n\n return component;\n },\n permissions: PERMISSIONS.main,\n });\n },\n async registerTrads({ locales }) {\n const importedTrads = await Promise.all(\n locales.map((locale) => {\n return import(`./translations/${locale}.json`)\n .then(({ default: data }) => {\n return {\n data: prefixPluginTranslations(data, pluginId),\n locale,\n };\n })\n .catch(() => {\n return {\n data: {},\n locale,\n };\n });\n })\n );\n\n return Promise.resolve(importedTrads);\n },\n};\n"],"names":["Information","prefixPluginTranslations"],"mappings":"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"}
@@ -1,194 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- const jsxRuntime = require("react/jsx-runtime");
4
- const react = require("react");
5
- const designSystem = require("@strapi/design-system");
6
- const helperPlugin = require("@strapi/helper-plugin");
7
- const icons = require("@strapi/icons");
8
- const formik = require("formik");
9
- const reactIntl = require("react-intl");
10
- const styled = require("styled-components");
11
- const yup = require("yup");
12
- const index = require("./index-0e3a30b7.js");
13
- const useDocumentation = require("./useDocumentation-29a97807.js");
14
- require("react-query");
15
- const _interopDefault = (e) => e && e.__esModule ? e : { default: e };
16
- function _interopNamespace(e) {
17
- if (e && e.__esModule)
18
- return e;
19
- const n = Object.create(null, { [Symbol.toStringTag]: { value: "Module" } });
20
- if (e) {
21
- for (const k in e) {
22
- if (k !== "default") {
23
- const d = Object.getOwnPropertyDescriptor(e, k);
24
- Object.defineProperty(n, k, d.get ? d : {
25
- enumerable: true,
26
- get: () => e[k]
27
- });
28
- }
29
- }
30
- }
31
- n.default = e;
32
- return Object.freeze(n);
33
- }
34
- const styled__default = /* @__PURE__ */ _interopDefault(styled);
35
- const yup__namespace = /* @__PURE__ */ _interopNamespace(yup);
36
- const schema = yup__namespace.object().shape({
37
- restrictedAccess: yup__namespace.boolean(),
38
- password: yup__namespace.string().when("restrictedAccess", (value, initSchema) => {
39
- return value ? initSchema.required(helperPlugin.translatedErrors.required) : initSchema;
40
- })
41
- });
42
- const SettingsPage = () => {
43
- helperPlugin.useFocusWhenNavigate();
44
- const { formatMessage } = reactIntl.useIntl();
45
- const { submit, data, isLoading } = useDocumentation.useDocumentation();
46
- const [passwordShown, setPasswordShown] = react.useState(false);
47
- const { allowedActions } = helperPlugin.useRBAC(index.PERMISSIONS);
48
- const handleUpdateSettingsSubmit = (body) => {
49
- submit.mutate({
50
- prefix: data?.prefix,
51
- body
52
- });
53
- };
54
- return /* @__PURE__ */ jsxRuntime.jsx(designSystem.Main, { children: isLoading ? /* @__PURE__ */ jsxRuntime.jsx(helperPlugin.LoadingIndicatorPage, { children: "Plugin settings are loading" }) : /* @__PURE__ */ jsxRuntime.jsx(
55
- formik.Formik,
56
- {
57
- initialValues: {
58
- restrictedAccess: data?.documentationAccess.restrictedAccess || false,
59
- password: ""
60
- },
61
- onSubmit: handleUpdateSettingsSubmit,
62
- validationSchema: schema,
63
- children: ({
64
- handleSubmit,
65
- values,
66
- handleChange,
67
- errors,
68
- setFieldTouched,
69
- setFieldValue,
70
- dirty
71
- }) => {
72
- return /* @__PURE__ */ jsxRuntime.jsxs(helperPlugin.Form, { noValidate: true, onSubmit: handleSubmit, children: [
73
- /* @__PURE__ */ jsxRuntime.jsx(
74
- designSystem.HeaderLayout,
75
- {
76
- title: formatMessage({
77
- id: useDocumentation.getTrad("plugin.name"),
78
- defaultMessage: "Documentation"
79
- }),
80
- subtitle: formatMessage({
81
- id: useDocumentation.getTrad("pages.SettingsPage.header.description"),
82
- defaultMessage: "Configure the documentation plugin"
83
- }),
84
- primaryAction: /* @__PURE__ */ jsxRuntime.jsx(
85
- designSystem.Button,
86
- {
87
- type: "submit",
88
- startIcon: /* @__PURE__ */ jsxRuntime.jsx(icons.Check, {}),
89
- disabled: !dirty && allowedActions.canUpdate,
90
- children: formatMessage({
91
- id: useDocumentation.getTrad("pages.SettingsPage.Button.save"),
92
- defaultMessage: "Save"
93
- })
94
- }
95
- )
96
- }
97
- ),
98
- /* @__PURE__ */ jsxRuntime.jsx(designSystem.ContentLayout, { children: /* @__PURE__ */ jsxRuntime.jsx(
99
- designSystem.Box,
100
- {
101
- background: "neutral0",
102
- hasRadius: true,
103
- shadow: "filterShadow",
104
- paddingTop: 6,
105
- paddingBottom: 6,
106
- paddingLeft: 7,
107
- paddingRight: 7,
108
- children: /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Flex, { direction: "column", alignItems: "stretch", gap: 4, children: [
109
- /* @__PURE__ */ jsxRuntime.jsx(designSystem.Typography, { variant: "delta", as: "h2", children: formatMessage({
110
- id: "global.settings",
111
- defaultMessage: "Settings"
112
- }) }),
113
- /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Grid, { gap: 4, children: [
114
- /* @__PURE__ */ jsxRuntime.jsx(designSystem.GridItem, { col: 6, s: 12, children: /* @__PURE__ */ jsxRuntime.jsx(
115
- designSystem.ToggleInput,
116
- {
117
- name: "restrictedAccess",
118
- label: formatMessage({
119
- id: useDocumentation.getTrad("pages.SettingsPage.toggle.label"),
120
- defaultMessage: "Restricted Access"
121
- }),
122
- hint: formatMessage({
123
- id: useDocumentation.getTrad("pages.SettingsPage.toggle.hint"),
124
- defaultMessage: "Make the documentation endpoint private"
125
- }),
126
- checked: values.restrictedAccess,
127
- onChange: () => {
128
- if (values.restrictedAccess === true) {
129
- setFieldValue("password", "", false);
130
- setFieldTouched("password", false, false);
131
- }
132
- setFieldValue("restrictedAccess", !values.restrictedAccess, false);
133
- },
134
- onLabel: "On",
135
- offLabel: "Off"
136
- }
137
- ) }),
138
- values.restrictedAccess && /* @__PURE__ */ jsxRuntime.jsx(designSystem.GridItem, { col: 6, s: 12, children: /* @__PURE__ */ jsxRuntime.jsx(
139
- designSystem.TextInput,
140
- {
141
- label: formatMessage({
142
- id: "global.password",
143
- defaultMessage: "Password"
144
- }),
145
- name: "password",
146
- placeholder: "**********",
147
- type: passwordShown ? "text" : "password",
148
- value: values.password,
149
- onChange: handleChange,
150
- error: errors.password ? formatMessage({
151
- id: errors.password,
152
- defaultMessage: "Invalid value"
153
- }) : null,
154
- endAction: /* @__PURE__ */ jsxRuntime.jsx(
155
- FieldActionWrapper,
156
- {
157
- onClick: (e) => {
158
- e.stopPropagation();
159
- setPasswordShown((prev) => !prev);
160
- },
161
- label: formatMessage(
162
- passwordShown ? {
163
- id: "Auth.form.password.show-password",
164
- defaultMessage: "Show password"
165
- } : {
166
- id: "Auth.form.password.hide-password",
167
- defaultMessage: "Hide password"
168
- }
169
- ),
170
- children: passwordShown ? /* @__PURE__ */ jsxRuntime.jsx(icons.Eye, {}) : /* @__PURE__ */ jsxRuntime.jsx(icons.EyeStriked, {})
171
- }
172
- )
173
- }
174
- ) })
175
- ] })
176
- ] })
177
- }
178
- ) })
179
- ] });
180
- }
181
- }
182
- ) });
183
- };
184
- const FieldActionWrapper = styled__default.default(designSystem.FieldAction)`
185
- svg {
186
- height: 1rem;
187
- width: 1rem;
188
- path {
189
- fill: ${({ theme }) => theme.colors.neutral600};
190
- }
191
- }
192
- `;
193
- exports.default = SettingsPage;
194
- //# sourceMappingURL=index-663971a1.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index-663971a1.js","sources":["../../admin/src/pages/SettingsPage/index.js"],"sourcesContent":["import React, { useState } from 'react';\n\nimport {\n Box,\n Button,\n ContentLayout,\n Flex,\n Grid,\n GridItem,\n HeaderLayout,\n Main,\n TextInput,\n ToggleInput,\n Typography,\n FieldAction,\n} from '@strapi/design-system';\nimport {\n Form,\n LoadingIndicatorPage,\n useFocusWhenNavigate,\n translatedErrors,\n useRBAC,\n} from '@strapi/helper-plugin';\n// Strapi Icons\nimport { Check, Eye as Show, EyeStriked as Hide } from '@strapi/icons';\nimport { Formik } from 'formik';\nimport { useIntl } from 'react-intl';\nimport styled from 'styled-components';\nimport * as yup from 'yup';\n\nimport { PERMISSIONS } from '../../constants';\nimport { useDocumentation } from '../../hooks/useDocumentation';\nimport { getTrad } from '../../utils';\n\nconst schema = yup.object().shape({\n restrictedAccess: yup.boolean(),\n password: yup.string().when('restrictedAccess', (value, initSchema) => {\n return value ? initSchema.required(translatedErrors.required) : initSchema;\n }),\n});\n\nconst SettingsPage = () => {\n useFocusWhenNavigate();\n const { formatMessage } = useIntl();\n const { submit, data, isLoading } = useDocumentation();\n const [passwordShown, setPasswordShown] = useState(false);\n const { allowedActions } = useRBAC(PERMISSIONS);\n\n const handleUpdateSettingsSubmit = (body) => {\n submit.mutate({\n prefix: data?.prefix,\n body,\n });\n };\n\n return (\n <Main>\n {isLoading ? (\n <LoadingIndicatorPage>Plugin settings are loading</LoadingIndicatorPage>\n ) : (\n <Formik\n initialValues={{\n restrictedAccess: data?.documentationAccess.restrictedAccess || false,\n password: '',\n }}\n onSubmit={handleUpdateSettingsSubmit}\n validationSchema={schema}\n >\n {({\n handleSubmit,\n values,\n handleChange,\n errors,\n setFieldTouched,\n setFieldValue,\n dirty,\n }) => {\n return (\n <Form noValidate onSubmit={handleSubmit}>\n <HeaderLayout\n title={formatMessage({\n id: getTrad('plugin.name'),\n defaultMessage: 'Documentation',\n })}\n subtitle={formatMessage({\n id: getTrad('pages.SettingsPage.header.description'),\n defaultMessage: 'Configure the documentation plugin',\n })}\n primaryAction={\n <Button\n type=\"submit\"\n startIcon={<Check />}\n disabled={!dirty && allowedActions.canUpdate}\n >\n {formatMessage({\n id: getTrad('pages.SettingsPage.Button.save'),\n defaultMessage: 'Save',\n })}\n </Button>\n }\n />\n <ContentLayout>\n <Box\n background=\"neutral0\"\n hasRadius\n shadow=\"filterShadow\"\n paddingTop={6}\n paddingBottom={6}\n paddingLeft={7}\n paddingRight={7}\n >\n <Flex direction=\"column\" alignItems=\"stretch\" gap={4}>\n <Typography variant=\"delta\" as=\"h2\">\n {formatMessage({\n id: 'global.settings',\n defaultMessage: 'Settings',\n })}\n </Typography>\n <Grid gap={4}>\n <GridItem col={6} s={12}>\n <ToggleInput\n name=\"restrictedAccess\"\n label={formatMessage({\n id: getTrad('pages.SettingsPage.toggle.label'),\n defaultMessage: 'Restricted Access',\n })}\n hint={formatMessage({\n id: getTrad('pages.SettingsPage.toggle.hint'),\n defaultMessage: 'Make the documentation endpoint private',\n })}\n checked={values.restrictedAccess}\n onChange={() => {\n if (values.restrictedAccess === true) {\n setFieldValue('password', '', false);\n setFieldTouched('password', false, false);\n }\n\n setFieldValue('restrictedAccess', !values.restrictedAccess, false);\n }}\n onLabel=\"On\"\n offLabel=\"Off\"\n />\n </GridItem>\n {values.restrictedAccess && (\n <GridItem col={6} s={12}>\n <TextInput\n label={formatMessage({\n id: 'global.password',\n defaultMessage: 'Password',\n })}\n name=\"password\"\n placeholder=\"**********\"\n type={passwordShown ? 'text' : 'password'}\n value={values.password}\n onChange={handleChange}\n error={\n errors.password\n ? formatMessage({\n id: errors.password,\n defaultMessage: 'Invalid value',\n })\n : null\n }\n endAction={\n <FieldActionWrapper\n onClick={(e) => {\n e.stopPropagation();\n setPasswordShown((prev) => !prev);\n }}\n label={formatMessage(\n passwordShown\n ? {\n id: 'Auth.form.password.show-password',\n defaultMessage: 'Show password',\n }\n : {\n id: 'Auth.form.password.hide-password',\n defaultMessage: 'Hide password',\n }\n )}\n >\n {passwordShown ? <Show /> : <Hide />}\n </FieldActionWrapper>\n }\n />\n </GridItem>\n )}\n </Grid>\n </Flex>\n </Box>\n </ContentLayout>\n </Form>\n );\n }}\n </Formik>\n )}\n </Main>\n );\n};\n\nconst FieldActionWrapper = styled(FieldAction)`\n svg {\n height: 1rem;\n width: 1rem;\n path {\n fill: ${({ theme }) => theme.colors.neutral600};\n }\n }\n`;\n\nexport default SettingsPage;\n"],"names":["yup","translatedErrors","useFocusWhenNavigate","useIntl","useDocumentation","useState","useRBAC","PERMISSIONS","Main","jsx","LoadingIndicatorPage","Formik","jsxs","Form","HeaderLayout","getTrad","Button","Check","ContentLayout","Box","Flex","Typography","Grid","GridItem","ToggleInput","TextInput","Show","Hide","styled","FieldAction"],"mappings":"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"}