@plone/volto 18.0.0-alpha.2 → 18.0.0-alpha.4

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 (293) hide show
  1. package/.eslintrc +3 -3
  2. package/.prettierignore +8 -0
  3. package/.prettierrc +12 -0
  4. package/{packages/registry/.release-it.json → .release-it.json} +11 -6
  5. package/CHANGELOG.md +44 -4
  6. package/locales/ca/LC_MESSAGES/volto.po +1 -0
  7. package/locales/de/LC_MESSAGES/volto.po +1 -0
  8. package/locales/en/LC_MESSAGES/volto.po +1 -0
  9. package/locales/es/LC_MESSAGES/volto.po +1 -0
  10. package/locales/eu/LC_MESSAGES/volto.po +1 -0
  11. package/locales/fi/LC_MESSAGES/volto.po +1 -0
  12. package/locales/fr/LC_MESSAGES/volto.po +1 -0
  13. package/locales/it/LC_MESSAGES/volto.po +1 -0
  14. package/locales/ja/LC_MESSAGES/volto.po +1 -0
  15. package/locales/nl/LC_MESSAGES/volto.po +1 -0
  16. package/locales/pt/LC_MESSAGES/volto.po +1 -0
  17. package/locales/pt_BR/LC_MESSAGES/volto.po +1 -0
  18. package/locales/ro/LC_MESSAGES/volto.po +1 -0
  19. package/locales/volto.pot +2 -1
  20. package/locales/zh_CN/LC_MESSAGES/volto.po +1 -0
  21. package/package.json +57 -127
  22. package/razzle.config.js +4 -7
  23. package/src/components/manage/Blocks/Video/Body.jsx +52 -22
  24. package/src/components/manage/Blocks/Video/Body.test.jsx +167 -0
  25. package/src/components/manage/Controlpanels/Users/UserGroupMembershipControlPanel.jsx +2 -2
  26. package/src/components/manage/Form/Form.jsx +5 -2
  27. package/src/components/theme/Breadcrumbs/Breadcrumbs.jsx +19 -2
  28. package/src/components/theme/ContentMetadataTags/ContentMetadataTags.jsx +46 -39
  29. package/src/config/index.js +0 -4
  30. package/src/icons/divide-horizontal.svg +0 -0
  31. package/src/icons/divide-vertical.svg +0 -0
  32. package/src/icons/hero.svg +0 -0
  33. package/src/icons/slider.svg +0 -0
  34. package/src/icons/summary.svg +0 -0
  35. package/src/middleware/api.js +1 -1
  36. package/theme/themes/default/elements/icon.overrides +0 -0
  37. package/theme/themes/default/globals/reset.overrides +0 -0
  38. package/theme/themes/default/globals/site.variables +0 -0
  39. package/theme/themes/default/modules/dropdown.overrides +0 -0
  40. package/theme/themes/default/modules/dropdown.variables +0 -0
  41. package/theme/themes/default/modules/modal.variables +0 -0
  42. package/theme/themes/default/modules/video.overrides +0 -0
  43. package/theme/themes/default/modules/video.variables +0 -0
  44. package/theme/themes/pastanaga/assets/fonts/icons.eot +0 -0
  45. package/theme/themes/pastanaga/assets/fonts/icons.svg +0 -0
  46. package/theme/themes/pastanaga/assets/fonts/icons.ttf +0 -0
  47. package/theme/themes/pastanaga/assets/fonts/icons.woff +0 -0
  48. package/theme/themes/pastanaga/globals/reset.overrides +0 -0
  49. package/theme/themes/pastanaga/globals/site.variables +0 -0
  50. package/theme/themes/pastanaga/modules/dropdown.variables +0 -0
  51. package/theme/themes/pastanaga/modules/modal.variables +0 -0
  52. package/theme/themes/pastanaga/modules/video.overrides +0 -0
  53. package/theme/themes/pastanaga/modules/video.variables +0 -0
  54. package/tsconfig.json +1 -4
  55. package/types/components/manage/Blocks/Video/Body.d.ts +5 -0
  56. package/types/config/RichTextEditor/index.d.ts +5 -8
  57. package/types/helpers/AsyncConnect/index.d.ts +2 -2
  58. package/types/helpers/Url/Url.d.ts +3 -3
  59. package/types/icons/load-icons.d.ts +1 -1
  60. package/webpack-plugins/webpack-less-plugin.js +1 -0
  61. package/CODE_OF_CONDUCT.md +0 -13
  62. package/CONTRIBUTING.md +0 -7
  63. package/README.md +0 -154
  64. package/RELEASING.md +0 -73
  65. package/ROADMAP.md +0 -30
  66. package/SECURITY.md +0 -14
  67. package/logos/Logo.png +0 -0
  68. package/logos/VoltoLogoEra2-dark-mode.png +0 -0
  69. package/logos/VoltoLogoEra2.png +0 -0
  70. package/logos/volto-colorful.png +0 -0
  71. package/logos/volto-colorful.svg +0 -35
  72. package/logos/volto-guide.png +0 -0
  73. package/logos/volto-h-transparent.svg +0 -6
  74. package/logos/volto-transparent.png +0 -0
  75. package/logos/volto-transparent.svg +0 -19
  76. package/logos/volto-transparent2.svg +0 -5
  77. package/logos/volto-yellow.svg +0 -29
  78. package/logos/volto.sketch +0 -0
  79. package/packages/README.md +0 -7
  80. package/packages/registry/.towncrier/towncrier_template.jinja +0 -10
  81. package/packages/registry/CHANGELOG.md +0 -16
  82. package/packages/registry/README.md +0 -207
  83. package/packages/registry/addon-registry.js +0 -603
  84. package/packages/registry/create-addons-loader.js +0 -116
  85. package/packages/registry/create-theme-addons-loader.js +0 -78
  86. package/packages/registry/news/.gitkeep +0 -0
  87. package/packages/registry/package.json +0 -76
  88. package/packages/registry/src/index.ts +0 -174
  89. package/packages/registry/src/registry.test.js +0 -111
  90. package/packages/registry/tsconfig.json +0 -32
  91. package/packages/scripts/CHANGELOG.md +0 -173
  92. package/packages/scripts/README.md +0 -128
  93. package/packages/scripts/addon/consolidate.js +0 -28
  94. package/packages/scripts/addon/generators.js +0 -213
  95. package/packages/scripts/addon/getAddonInfo.js +0 -65
  96. package/packages/scripts/addon/index.js +0 -88
  97. package/packages/scripts/addon/utils.js +0 -44
  98. package/packages/scripts/backportpr.js +0 -75
  99. package/packages/scripts/changelogupdater.cjs +0 -94
  100. package/packages/scripts/corepackagebump.js +0 -20
  101. package/packages/scripts/i18n.cjs +0 -310
  102. package/packages/scripts/package.json +0 -76
  103. package/packages/scripts/templates/towncrier_template.jinja +0 -10
  104. package/packages/types/Blocks/View.ts +0 -11
  105. package/packages/types/actions.ts +0 -15
  106. package/packages/types/breadcrumbs.ts +0 -10
  107. package/packages/types/config/Blocks.ts +0 -153
  108. package/packages/types/config/Content.ts +0 -62
  109. package/packages/types/config/Settings.ts +0 -86
  110. package/packages/types/config/Views.ts +0 -15
  111. package/packages/types/config/Widgets.ts +0 -7
  112. package/packages/types/config/index.ts +0 -21
  113. package/packages/types/content/common.ts +0 -60
  114. package/packages/types/content/get.ts +0 -66
  115. package/packages/types/index.ts +0 -0
  116. package/packages/types/navigation.ts +0 -12
  117. package/packages/types/package.json +0 -64
  118. package/packages/types/types.ts +0 -61
  119. package/packages/volto-slate/.i18n.babel.config.js +0 -1
  120. package/packages/volto-slate/README.md +0 -4
  121. package/packages/volto-slate/build/messages/src/blocks/Table/TableBlockEdit.json +0 -90
  122. package/packages/volto-slate/build/messages/src/blocks/Text/DefaultTextBlockEditor.json +0 -6
  123. package/packages/volto-slate/build/messages/src/blocks/Text/DetachedTextBlockEditor.json +0 -6
  124. package/packages/volto-slate/build/messages/src/blocks/Text/SlashMenu.json +0 -6
  125. package/packages/volto-slate/build/messages/src/editor/plugins/AdvancedLink/index.json +0 -10
  126. package/packages/volto-slate/build/messages/src/editor/plugins/Link/index.json +0 -10
  127. package/packages/volto-slate/build/messages/src/editor/plugins/Table/index.json +0 -30
  128. package/packages/volto-slate/build/messages/src/elementEditor/messages.json +0 -10
  129. package/packages/volto-slate/build/messages/src/widgets/HtmlSlateWidget.json +0 -6
  130. package/packages/volto-slate/build/messages/src/widgets/RichTextWidgetView.json +0 -6
  131. package/packages/volto-slate/locales/de/LC_MESSAGES/volto.po +0 -148
  132. package/packages/volto-slate/locales/en/LC_MESSAGES/volto.po +0 -148
  133. package/packages/volto-slate/locales/volto.pot +0 -182
  134. package/packages/volto-slate/package.json +0 -43
  135. package/packages/volto-slate/src/actions/content.js +0 -30
  136. package/packages/volto-slate/src/actions/index.js +0 -3
  137. package/packages/volto-slate/src/actions/plugins.js +0 -9
  138. package/packages/volto-slate/src/actions/selection.js +0 -22
  139. package/packages/volto-slate/src/blocks/Table/Cell.jsx +0 -87
  140. package/packages/volto-slate/src/blocks/Table/Cell.test.js +0 -54
  141. package/packages/volto-slate/src/blocks/Table/TableBlockEdit.jsx +0 -694
  142. package/packages/volto-slate/src/blocks/Table/TableBlockEdit.test.js +0 -40
  143. package/packages/volto-slate/src/blocks/Table/TableBlockView.jsx +0 -150
  144. package/packages/volto-slate/src/blocks/Table/TableBlockView.test.js +0 -49
  145. package/packages/volto-slate/src/blocks/Table/deconstruct.js +0 -113
  146. package/packages/volto-slate/src/blocks/Table/extensions/normalizeTable.js +0 -5
  147. package/packages/volto-slate/src/blocks/Table/index.js +0 -60
  148. package/packages/volto-slate/src/blocks/Table/schema.js +0 -122
  149. package/packages/volto-slate/src/blocks/Text/DefaultTextBlockEditor.jsx +0 -304
  150. package/packages/volto-slate/src/blocks/Text/DetachedTextBlockEditor.jsx +0 -77
  151. package/packages/volto-slate/src/blocks/Text/MarkdownIntroduction.jsx +0 -59
  152. package/packages/volto-slate/src/blocks/Text/PluginSidebar.jsx +0 -18
  153. package/packages/volto-slate/src/blocks/Text/ShortcutListing.jsx +0 -28
  154. package/packages/volto-slate/src/blocks/Text/SlashMenu.jsx +0 -203
  155. package/packages/volto-slate/src/blocks/Text/TextBlockEdit.jsx +0 -38
  156. package/packages/volto-slate/src/blocks/Text/TextBlockEdit.test.js +0 -107
  157. package/packages/volto-slate/src/blocks/Text/TextBlockSchema.js +0 -54
  158. package/packages/volto-slate/src/blocks/Text/TextBlockView.jsx +0 -31
  159. package/packages/volto-slate/src/blocks/Text/css/editor.css +0 -18
  160. package/packages/volto-slate/src/blocks/Text/extensions/Readme.md +0 -49
  161. package/packages/volto-slate/src/blocks/Text/extensions/breakList.js +0 -100
  162. package/packages/volto-slate/src/blocks/Text/extensions/index.js +0 -6
  163. package/packages/volto-slate/src/blocks/Text/extensions/insertBreak.js +0 -57
  164. package/packages/volto-slate/src/blocks/Text/extensions/isSelected.js +0 -7
  165. package/packages/volto-slate/src/blocks/Text/extensions/normalizeExternalData.js +0 -7
  166. package/packages/volto-slate/src/blocks/Text/extensions/withDeserializers.js +0 -87
  167. package/packages/volto-slate/src/blocks/Text/extensions/withLists.js +0 -5
  168. package/packages/volto-slate/src/blocks/Text/index.js +0 -171
  169. package/packages/volto-slate/src/blocks/Text/keyboard/backspaceInList.js +0 -58
  170. package/packages/volto-slate/src/blocks/Text/keyboard/breakBlocks.js +0 -3
  171. package/packages/volto-slate/src/blocks/Text/keyboard/cancelEsc.js +0 -7
  172. package/packages/volto-slate/src/blocks/Text/keyboard/indentListItems.js +0 -240
  173. package/packages/volto-slate/src/blocks/Text/keyboard/index.js +0 -52
  174. package/packages/volto-slate/src/blocks/Text/keyboard/joinBlocks.js +0 -180
  175. package/packages/volto-slate/src/blocks/Text/keyboard/moveListItems.js +0 -124
  176. package/packages/volto-slate/src/blocks/Text/keyboard/slashMenu.js +0 -19
  177. package/packages/volto-slate/src/blocks/Text/keyboard/softBreak.js +0 -7
  178. package/packages/volto-slate/src/blocks/Text/keyboard/traverseBlocks.js +0 -81
  179. package/packages/volto-slate/src/blocks/Text/keyboard/unwrapEmptyString.js +0 -26
  180. package/packages/volto-slate/src/blocks/Text/schema.js +0 -39
  181. package/packages/volto-slate/src/constants.js +0 -123
  182. package/packages/volto-slate/src/editor/EditorContext.jsx +0 -5
  183. package/packages/volto-slate/src/editor/EditorReference.jsx +0 -22
  184. package/packages/volto-slate/src/editor/SlateEditor.jsx +0 -375
  185. package/packages/volto-slate/src/editor/config.jsx +0 -344
  186. package/packages/volto-slate/src/editor/decorate.js +0 -68
  187. package/packages/volto-slate/src/editor/deserialize.js +0 -185
  188. package/packages/volto-slate/src/editor/extensions/index.js +0 -6
  189. package/packages/volto-slate/src/editor/extensions/insertBreak.js +0 -15
  190. package/packages/volto-slate/src/editor/extensions/insertData.js +0 -159
  191. package/packages/volto-slate/src/editor/extensions/isInline.js +0 -14
  192. package/packages/volto-slate/src/editor/extensions/normalizeExternalData.js +0 -8
  193. package/packages/volto-slate/src/editor/extensions/normalizeNode.js +0 -48
  194. package/packages/volto-slate/src/editor/extensions/withDeserializers.js +0 -15
  195. package/packages/volto-slate/src/editor/extensions/withTestingFeatures.jsx +0 -84
  196. package/packages/volto-slate/src/editor/index.js +0 -14
  197. package/packages/volto-slate/src/editor/less/editor.less +0 -173
  198. package/packages/volto-slate/src/editor/less/globals.less +0 -18
  199. package/packages/volto-slate/src/editor/less/slate.less +0 -28
  200. package/packages/volto-slate/src/editor/plugins/AdvancedLink/deserialize.js +0 -90
  201. package/packages/volto-slate/src/editor/plugins/AdvancedLink/extensions.js +0 -32
  202. package/packages/volto-slate/src/editor/plugins/AdvancedLink/index.js +0 -50
  203. package/packages/volto-slate/src/editor/plugins/AdvancedLink/render.jsx +0 -37
  204. package/packages/volto-slate/src/editor/plugins/AdvancedLink/schema.js +0 -114
  205. package/packages/volto-slate/src/editor/plugins/AdvancedLink/styles.less +0 -8
  206. package/packages/volto-slate/src/editor/plugins/Blockquote/index.js +0 -30
  207. package/packages/volto-slate/src/editor/plugins/Callout/index.js +0 -34
  208. package/packages/volto-slate/src/editor/plugins/Image/deconstruct.js +0 -30
  209. package/packages/volto-slate/src/editor/plugins/Image/extensions.js +0 -51
  210. package/packages/volto-slate/src/editor/plugins/Image/index.js +0 -11
  211. package/packages/volto-slate/src/editor/plugins/Image/render.jsx +0 -22
  212. package/packages/volto-slate/src/editor/plugins/Link/extensions.js +0 -58
  213. package/packages/volto-slate/src/editor/plugins/Link/index.js +0 -164
  214. package/packages/volto-slate/src/editor/plugins/Link/render.jsx +0 -54
  215. package/packages/volto-slate/src/editor/plugins/Markdown/constants.js +0 -81
  216. package/packages/volto-slate/src/editor/plugins/Markdown/extensions.js +0 -334
  217. package/packages/volto-slate/src/editor/plugins/Markdown/index.js +0 -28
  218. package/packages/volto-slate/src/editor/plugins/Markdown/utils.js +0 -198
  219. package/packages/volto-slate/src/editor/plugins/StyleMenu/StyleMenu.jsx +0 -153
  220. package/packages/volto-slate/src/editor/plugins/StyleMenu/index.js +0 -19
  221. package/packages/volto-slate/src/editor/plugins/StyleMenu/style.less +0 -29
  222. package/packages/volto-slate/src/editor/plugins/StyleMenu/utils.js +0 -168
  223. package/packages/volto-slate/src/editor/plugins/Table/TableButton.jsx +0 -142
  224. package/packages/volto-slate/src/editor/plugins/Table/TableCell.jsx +0 -44
  225. package/packages/volto-slate/src/editor/plugins/Table/TableContainer.jsx +0 -37
  226. package/packages/volto-slate/src/editor/plugins/Table/TableSizePicker.jsx +0 -83
  227. package/packages/volto-slate/src/editor/plugins/Table/extensions.js +0 -87
  228. package/packages/volto-slate/src/editor/plugins/Table/index.js +0 -390
  229. package/packages/volto-slate/src/editor/plugins/Table/less/public.less +0 -29
  230. package/packages/volto-slate/src/editor/plugins/Table/less/table.less +0 -28
  231. package/packages/volto-slate/src/editor/plugins/Table/render.jsx +0 -30
  232. package/packages/volto-slate/src/editor/plugins/index.js +0 -19
  233. package/packages/volto-slate/src/editor/render.jsx +0 -224
  234. package/packages/volto-slate/src/editor/ui/BasicToolbar.jsx +0 -11
  235. package/packages/volto-slate/src/editor/ui/BlockButton.jsx +0 -31
  236. package/packages/volto-slate/src/editor/ui/ClearFormattingButton.jsx +0 -21
  237. package/packages/volto-slate/src/editor/ui/ExpandedToolbar.jsx +0 -18
  238. package/packages/volto-slate/src/editor/ui/Expando.jsx +0 -5
  239. package/packages/volto-slate/src/editor/ui/InlineToolbar.jsx +0 -73
  240. package/packages/volto-slate/src/editor/ui/MarkButton.jsx +0 -23
  241. package/packages/volto-slate/src/editor/ui/MarkElementButton.jsx +0 -30
  242. package/packages/volto-slate/src/editor/ui/Menu.jsx +0 -13
  243. package/packages/volto-slate/src/editor/ui/PositionedToolbar.jsx +0 -32
  244. package/packages/volto-slate/src/editor/ui/Separator.jsx +0 -7
  245. package/packages/volto-slate/src/editor/ui/SlateContextToolbar.jsx +0 -13
  246. package/packages/volto-slate/src/editor/ui/SlateToolbar.jsx +0 -96
  247. package/packages/volto-slate/src/editor/ui/Toolbar.jsx +0 -103
  248. package/packages/volto-slate/src/editor/ui/ToolbarButton.jsx +0 -33
  249. package/packages/volto-slate/src/editor/ui/ToolbarButton.test.js +0 -25
  250. package/packages/volto-slate/src/editor/ui/index.js +0 -15
  251. package/packages/volto-slate/src/editor/utils.js +0 -248
  252. package/packages/volto-slate/src/elementEditor/ContextButtons.jsx +0 -56
  253. package/packages/volto-slate/src/elementEditor/PluginEditor.jsx +0 -124
  254. package/packages/volto-slate/src/elementEditor/Readme.md +0 -6
  255. package/packages/volto-slate/src/elementEditor/SchemaProvider.jsx +0 -3
  256. package/packages/volto-slate/src/elementEditor/SidebarEditor.jsx +0 -46
  257. package/packages/volto-slate/src/elementEditor/ToolbarButton.jsx +0 -44
  258. package/packages/volto-slate/src/elementEditor/index.js +0 -5
  259. package/packages/volto-slate/src/elementEditor/makeInlineElementPlugin.js +0 -100
  260. package/packages/volto-slate/src/elementEditor/messages.js +0 -14
  261. package/packages/volto-slate/src/elementEditor/utils.js +0 -226
  262. package/packages/volto-slate/src/hooks/index.js +0 -3
  263. package/packages/volto-slate/src/hooks/useEditorContext.js +0 -6
  264. package/packages/volto-slate/src/hooks/useIsomorphicLayoutEffect.js +0 -7
  265. package/packages/volto-slate/src/hooks/useSelectionPosition.js +0 -25
  266. package/packages/volto-slate/src/i18n.js +0 -180
  267. package/packages/volto-slate/src/icons/hashlink.svg +0 -57
  268. package/packages/volto-slate/src/index.js +0 -61
  269. package/packages/volto-slate/src/reducers/content.js +0 -74
  270. package/packages/volto-slate/src/reducers/index.js +0 -3
  271. package/packages/volto-slate/src/reducers/plugins.js +0 -17
  272. package/packages/volto-slate/src/reducers/selection.js +0 -16
  273. package/packages/volto-slate/src/utils/blocks.js +0 -375
  274. package/packages/volto-slate/src/utils/blocks.test.js +0 -138
  275. package/packages/volto-slate/src/utils/editor.js +0 -31
  276. package/packages/volto-slate/src/utils/image.js +0 -25
  277. package/packages/volto-slate/src/utils/index.js +0 -11
  278. package/packages/volto-slate/src/utils/internals.js +0 -46
  279. package/packages/volto-slate/src/utils/lists.js +0 -92
  280. package/packages/volto-slate/src/utils/marks.js +0 -104
  281. package/packages/volto-slate/src/utils/mime-types.js +0 -24
  282. package/packages/volto-slate/src/utils/nodes.js +0 -4
  283. package/packages/volto-slate/src/utils/ops.js +0 -20
  284. package/packages/volto-slate/src/utils/random.js +0 -17
  285. package/packages/volto-slate/src/utils/selection.js +0 -236
  286. package/packages/volto-slate/src/utils/slate-string-utils.js +0 -408
  287. package/packages/volto-slate/src/utils/volto-blocks.js +0 -314
  288. package/packages/volto-slate/src/widgets/ErrorBoundary.jsx +0 -27
  289. package/packages/volto-slate/src/widgets/HtmlSlateWidget.jsx +0 -139
  290. package/packages/volto-slate/src/widgets/ObjectByTypeWidget.jsx +0 -49
  291. package/packages/volto-slate/src/widgets/RichTextWidget.jsx +0 -72
  292. package/packages/volto-slate/src/widgets/RichTextWidgetView.jsx +0 -37
  293. package/packages/volto-slate/src/widgets/style.css +0 -21
@@ -1,94 +0,0 @@
1
- #!/usr/bin/env node
2
- /* eslint no-console: 0 */
3
- const fs = require('fs');
4
- const semver = require('semver');
5
-
6
- if (process.argv.length < 3) {
7
- console.log(
8
- 'Not enough arguments. You should supply one of: bump || excerpt || back',
9
- );
10
- return;
11
- }
12
-
13
- const command = process.argv[2];
14
- const version = process.argv[3];
15
-
16
- // Get the right location of the CHANGELOG.md file
17
- // Covers use case that the file is in the parent folder and the
18
- // frontend code in `frontend` folder (recommended structure)
19
- let changelogFile;
20
- if (fs.existsSync('CHANGELOG.md')) {
21
- changelogFile = 'CHANGELOG.md';
22
- } else if (fs.existsSync('../CHANGELOG.md')) {
23
- changelogFile = '../CHANGELOG.md';
24
- }
25
-
26
- try {
27
- if (command === 'excerpt') {
28
- const data = fs.readFileSync(changelogFile, 'utf8');
29
- const allReleases = data.match(/##\s(.+)\s\((.+)\)/g);
30
- // const re = new RegExp(escapeRegExp(allReleases[1]), 'g');
31
- const index = data.indexOf(allReleases[1]);
32
- let versionExcerpt = data.slice(0, index);
33
- versionExcerpt = versionExcerpt.replace('# Change Log\n\n', '');
34
- versionExcerpt = versionExcerpt.slice(
35
- versionExcerpt.match('\n\n')['index'] + 2,
36
- );
37
- process.stdout.write(versionExcerpt);
38
- return;
39
- }
40
-
41
- if (command === 'bump') {
42
- const data = fs.readFileSync(changelogFile, 'utf8');
43
- const [original, origVersion, orig] = data.match(/##\s(.+)\s\((.+)\)/);
44
- if (orig !== 'unreleased') {
45
- return console.log('Error, the CHANGELOG file is malformed.');
46
- }
47
- const currentDate = new Date();
48
- const date = `${currentDate.getFullYear()}-${`0${
49
- currentDate.getMonth() + 1
50
- }`.slice(-2)}-${`0${currentDate.getDate()}`.slice(-2)}`;
51
-
52
- if (version !== origVersion) {
53
- console.log(`Updating to the given version ${version}`);
54
- }
55
- const newLine = original
56
- .replace('unreleased', date)
57
- .replace(origVersion, version);
58
-
59
- const newChangelog = data.replace(original, newLine);
60
-
61
- // Save data to disk if command is bump
62
- fs.writeFile(changelogFile, newChangelog, (err) => {
63
- // throws an error, you could also catch it here
64
- if (err) throw err;
65
-
66
- // success case, the file was saved
67
- console.log('Updated version on CHANGELOG.md');
68
- });
69
- }
70
-
71
- if (command === 'back') {
72
- const data = fs.readFileSync(changelogFile, 'utf8');
73
- const nextversion = semver.inc(process.argv[3], 'patch');
74
- const backToDevelTemplate = `\n\n## ${nextversion} (unreleased)\n\n### Breaking\n\n### Feature\n\n### Bugfix\n\n### Internal`;
75
-
76
- const insertIndex = data.indexOf('\n\n');
77
- const back = `${data.slice(
78
- 0,
79
- insertIndex,
80
- )}${backToDevelTemplate}${data.slice(insertIndex)}`;
81
- console.log(back);
82
- fs.writeFile(changelogFile, back, (err) => {
83
- // throws an error, you could also catch it here
84
- if (err) throw err;
85
-
86
- // success case, the file was saved
87
- console.log('Back to development on CHANGELOG.md');
88
- });
89
- }
90
-
91
- return;
92
- } catch (e) {
93
- console.log('Error:', e.stack);
94
- }
@@ -1,20 +0,0 @@
1
- #!/usr/bin/env node
2
- /* eslint no-console: 0 */
3
- import fs from 'fs';
4
-
5
- if (process.argv.length < 3) {
6
- console.log(process.argv.length);
7
- process.exit(1);
8
- }
9
-
10
- const pkg = process.argv[2];
11
- const version = process.argv[3];
12
-
13
- const packageJSON = JSON.parse(fs.readFileSync(`${pkg}/package.json`, 'utf8'));
14
-
15
- packageJSON.version = version;
16
-
17
- fs.writeFileSync(
18
- `${pkg}/package.json`,
19
- `${JSON.stringify(packageJSON, null, 2)}`,
20
- );
@@ -1,310 +0,0 @@
1
- #!/usr/bin/env node
2
- /* eslint no-console: 0 */
3
- /**
4
- * i18n script.
5
- * @module scripts/i18n
6
- */
7
-
8
- const { find, keys, map, concat, reduce } = require('lodash');
9
- const glob = require('glob').sync;
10
- const fs = require('fs');
11
- const Pofile = require('pofile');
12
- const babel = require('@babel/core');
13
-
14
- const path = require('path');
15
- const projectRootPath = path.resolve('.');
16
- const packageJson = require(path.join(projectRootPath, 'package.json'));
17
-
18
- const { program } = require('commander');
19
- const chalk = require('chalk');
20
-
21
- /**
22
- * Extract messages into separate JSON files
23
- * @function extractMessages
24
- * @return {undefined}
25
- */
26
- function extractMessages() {
27
- map(
28
- // We ignore the existing customized shadowed components ones, since most
29
- // probably we won't be overriding them
30
- // If so, we should do it in the config object or somewhere else
31
- // We also ignore the addons folder since they are populated using
32
- // their own locales files and taken care separatedly in this script
33
- glob('src/**/*.js?(x)', {
34
- ignore: ['src/customizations/**', 'src/addons/**'],
35
- }),
36
- (filename) => {
37
- babel.transformFileSync(filename, {}, (err) => {
38
- if (err) {
39
- console.log(err);
40
- }
41
- });
42
- },
43
- );
44
- }
45
-
46
- /**
47
- * Get messages from separate JSON files
48
- * @function getMessages
49
- * @return {Object} Object with messages
50
- */
51
- function getMessages() {
52
- return reduce(
53
- concat(
54
- {},
55
- ...map(
56
- // We ignore the existing customized shadowed components ones, since most
57
- // probably we won't be overriding them
58
- // If so, we should do it in the config object or somewhere else
59
- // We also ignore the addons folder since they are populated using
60
- // their own locales files and taken care separatedly in this script
61
- glob('build/messages/src/**/*.json', {
62
- ignore: [
63
- 'build/messages/src/customizations/**',
64
- 'build/messages/src/addons/**',
65
- ],
66
- }),
67
- (filename) =>
68
- map(JSON.parse(fs.readFileSync(filename, 'utf8')), (message) => ({
69
- ...message,
70
- filename: filename.match(/build\/messages\/src\/(.*).json$/)[1],
71
- })),
72
- ),
73
- ),
74
- (current, value) => {
75
- let result = current;
76
- if (current.id) {
77
- result = {
78
- [current.id]: {
79
- defaultMessage: current.defaultMessage,
80
- filenames: [current.filename],
81
- },
82
- };
83
- }
84
-
85
- if (result[value.id]) {
86
- result[value.id].filenames.push(value.filename);
87
- } else {
88
- result[value.id] = {
89
- defaultMessage: value.defaultMessage,
90
- filenames: [value.filename],
91
- };
92
- }
93
- return result;
94
- },
95
- );
96
- }
97
-
98
- /**
99
- * Convert messages to pot format
100
- * @function messagesToPot
101
- * @param {Object} messages Messages
102
- * @return {string} Formatted pot string
103
- */
104
- function messagesToPot(messages) {
105
- return map(keys(messages).sort(), (key) =>
106
- [
107
- ...map(messages[key].filenames, (filename) => `#: ${filename}`),
108
- `# defaultMessage: ${messages[key].defaultMessage}`,
109
- `msgid "${key}"`,
110
- 'msgstr ""',
111
- ].join('\n'),
112
- ).join('\n\n');
113
- }
114
-
115
- /**
116
- * Pot header
117
- * @function potHeader
118
- * @return {string} Formatted pot header
119
- */
120
- function potHeader() {
121
- return `msgid ""
122
- msgstr ""
123
- "Project-Id-Version: Plone\\n"
124
- "POT-Creation-Date: ${new Date().toISOString()}\\n"
125
- "Last-Translator: Plone i18n <plone-i18n@lists.sourceforge.net>\\n"
126
- "Language-Team: Plone i18n <plone-i18n@lists.sourceforge.net>\\n"
127
- "MIME-Version: 1.0\\n"
128
- "Content-Type: text/plain; charset=utf-8\\n"
129
- "Content-Transfer-Encoding: 8bit\\n"
130
- "Plural-Forms: nplurals=1; plural=0;\\n"
131
- "Language-Code: en\\n"
132
- "Language-Name: English\\n"
133
- "Preferred-Encodings: utf-8\\n"
134
- "Domain: volto\\n"
135
-
136
- `;
137
- }
138
-
139
- /**
140
- * Convert po files into json
141
- * @function poToJson
142
- * @return {undefined}
143
- */
144
- function poToJson({ registry, addonMode }) {
145
- const mergeMessages = (result, items, language) => {
146
- items.forEach((item) => {
147
- if (item.msgid in result) {
148
- if (item.msgstr[0] !== '') {
149
- result[item.msgid] = item.msgstr[0];
150
- }
151
- } else {
152
- result[item.msgid] =
153
- language === 'en'
154
- ? item.msgstr[0] ||
155
- (item.comments[0]
156
- ? item.comments[0].replace('defaultMessage: ', '')
157
- : '')
158
- : item.msgstr[0];
159
- }
160
- });
161
-
162
- return result;
163
- };
164
-
165
- map(glob('locales/**/*.po'), (filename) => {
166
- let { items } = Pofile.parse(fs.readFileSync(filename, 'utf8'));
167
- const projectLocalesItems = Pofile.parse(fs.readFileSync(filename, 'utf8'))
168
- .items;
169
- const lang = filename.match(/locales\/(.*)\/LC_MESSAGES\//)[1];
170
- const result = {};
171
-
172
- // Merge volto core locales
173
- const lib = `node_modules/@plone/volto/${filename}`;
174
- if (fs.existsSync(lib)) {
175
- const libItems = Pofile.parse(fs.readFileSync(lib, 'utf8')).items;
176
- items = [...libItems, ...items];
177
- mergeMessages(result, items, lang);
178
- }
179
-
180
- if (!addonMode) {
181
- // Merge addons locales
182
- if (packageJson.addons) {
183
- registry.getAddonDependencies().forEach((addon) => {
184
- const addonlocale = `${registry.packages[addon].modulePath}/../${filename}`;
185
- if (fs.existsSync(addonlocale)) {
186
- const addonItems = Pofile.parse(
187
- fs.readFileSync(addonlocale, 'utf8'),
188
- ).items;
189
-
190
- mergeMessages(result, addonItems, lang);
191
- if (require.main === module) {
192
- // We only log it if called as script
193
- console.log(`Merging ${addon} locales for ${lang}`);
194
- }
195
- }
196
- });
197
- }
198
- }
199
- // Merge project locales, the project customization wins
200
- mergeMessages(result, projectLocalesItems, lang);
201
- fs.writeFileSync(`locales/${lang}.json`, JSON.stringify(result));
202
- });
203
- }
204
-
205
- /**
206
- * Format header
207
- * @function formatHeader
208
- * @param {Array} comments Array of comments
209
- * @param {Object} headers Object of header items
210
- * @return {string} Formatted header
211
- */
212
- function formatHeader(comments, headers) {
213
- return [
214
- ...map(comments, (comment) => `# ${comment}`),
215
- 'msgid ""',
216
- 'msgstr ""',
217
- ...map(keys(headers), (key) => `"${key}: ${headers[key]}\\n"`),
218
- '',
219
- ].join('\n');
220
- }
221
-
222
- /**
223
- * Sync po by the pot file
224
- * @function syncPoByPot
225
- * @return {undefined}
226
- */
227
- function syncPoByPot() {
228
- const pot = Pofile.parse(fs.readFileSync('locales/volto.pot', 'utf8'));
229
-
230
- map(glob('locales/**/*.po'), (filename) => {
231
- const po = Pofile.parse(fs.readFileSync(filename, 'utf8'));
232
-
233
- fs.writeFileSync(
234
- filename,
235
- `${formatHeader(po.comments, po.headers)}
236
- ${map(pot.items, (item) => {
237
- const poItem = find(po.items, { msgid: item.msgid });
238
- return [
239
- `${map(item.references, (ref) => `#: ${ref}`).join('\n')}`,
240
- `# ${item.comments[0]}`,
241
- `msgid "${item.msgid}"`,
242
- `msgstr "${poItem ? poItem.msgstr : ''}"`,
243
- ].join('\n');
244
- }).join('\n\n')}\n`,
245
- );
246
- });
247
- }
248
-
249
- function main({ addonMode }) {
250
- console.log('Extracting messages from source files...');
251
- extractMessages();
252
- console.log('Synchronizing messages to pot file...');
253
- // We only write the pot file if it's really different
254
- const newPot = `${potHeader()}${messagesToPot(getMessages())}\n`.replace(
255
- /"POT-Creation-Date:(.*)\\n"/,
256
- '',
257
- );
258
- const oldPot = fs
259
- .readFileSync('locales/volto.pot', 'utf8')
260
- .replace(/"POT-Creation-Date:(.*)\\n"/, '');
261
-
262
- if (newPot !== oldPot) {
263
- fs.writeFileSync(
264
- 'locales/volto.pot',
265
- `${potHeader()}${messagesToPot(getMessages())}\n`,
266
- );
267
- }
268
- console.log('Synchronizing messages to po files...');
269
- syncPoByPot();
270
- if (!addonMode) {
271
- // Detect if I'm in a project or in Volto itself
272
- let AddonConfigurationRegistry;
273
- try {
274
- if (fs.existsSync(`${projectRootPath}/node_modules/@plone/volto`)) {
275
- // We are in a project
276
- AddonConfigurationRegistry = require(path.join(
277
- projectRootPath,
278
- '/node_modules/@plone/volto/packages/registry/addon-registry',
279
- ));
280
- } else {
281
- // We are in Volto itself
282
- AddonConfigurationRegistry = require(path.join(
283
- projectRootPath,
284
- '/packages/registry/addon-registry',
285
- ));
286
- }
287
- } catch {
288
- console.log(
289
- chalk.red(
290
- 'Getting the addon registry failed. Are you executing i18n from inside an addon? Try the -a flag.',
291
- ),
292
- );
293
- process.exit();
294
- }
295
- console.log('Generating the language JSON files...');
296
- const registry = new AddonConfigurationRegistry(projectRootPath);
297
- poToJson({ registry, addonMode });
298
- }
299
- console.log('done!');
300
- }
301
-
302
- // This is the equivalent of `if __name__ == '__main__'` in Python :)
303
- if (require.main === module) {
304
- program.option('-a, --addon', 'run i18n script for addons');
305
- program.parse(process.argv);
306
- const options = program.opts();
307
- main({ addonMode: options.addon });
308
- }
309
-
310
- module.exports = { poToJson };
@@ -1,76 +0,0 @@
1
- {
2
- "name": "@plone/scripts",
3
- "description": "Volto Core scripts package - Contains scripts and dependencies for these scripts for tooling when developing Plone 6 / Volto",
4
- "maintainers": [
5
- {
6
- "name": "Plone Foundation",
7
- "email": "plone-developers@lists.sourceforge.net",
8
- "url": "http://plone.org"
9
- }
10
- ],
11
- "license": "MIT",
12
- "version": "3.0.1",
13
- "repository": {
14
- "type": "git",
15
- "url": "git@github.com:plone/volto.git"
16
- },
17
- "bugs": {
18
- "url": "https://github.com/plone/volto/issues",
19
- "email": "plone-developers@lists.sourceforge.net"
20
- },
21
- "type": "module",
22
- "homepage": "https://plone.org",
23
- "keywords": [
24
- "volto",
25
- "plone",
26
- "plone6",
27
- "react",
28
- "cms"
29
- ],
30
- "scripts": {
31
- "dry-release": "release-it --dry-run",
32
- "release": "release-it",
33
- "release-major-alpha": "release-it major --preRelease=alpha",
34
- "release-alpha": "release-it --preRelease=alpha"
35
- },
36
- "bin": {
37
- "addon": "./addon/index.js",
38
- "changelogupdater": "./changelogupdater.cjs",
39
- "i18n": "./i18n.cjs"
40
- },
41
- "release-it": {
42
- "hooks": {
43
- "after:bump": "pipx run towncrier build --draft --yes --version ${version} > .changelog.draft && pipx run towncrier build --yes --version ${version}",
44
- "after:release": "rm .changelog.draft"
45
- },
46
- "git": {
47
- "changelog": "pipx run towncrier build --draft --yes --version 0.0.0",
48
- "requireUpstream": false,
49
- "requireCleanWorkingDir": false,
50
- "commitMessage": "Release @plone/scripts ${version}",
51
- "tagName": "plone-scripts-${version}",
52
- "tagAnnotation": "Release @plone/scripts ${version}"
53
- },
54
- "github": {
55
- "release": true,
56
- "releaseName": "@plone/scripts ${version}",
57
- "releaseNotes": "cat .changelog.draft"
58
- }
59
- },
60
- "publishConfig": {
61
- "access": "public"
62
- },
63
- "dependencies": {
64
- "babel-plugin-react-intl": "5.1.17",
65
- "babel-preset-razzle": "4.2.17",
66
- "chalk": "4",
67
- "commander": "8.2.0",
68
- "fs-extra": "10.1.0",
69
- "git-url-parse": "^13.1.0",
70
- "mrs-developer": "*",
71
- "pofile": "1.0.10"
72
- },
73
- "devDependencies": {
74
- "release-it": "^16.1.3"
75
- }
76
- }
@@ -1,10 +0,0 @@
1
- {% if sections[""] %}
2
- {% for category, val in definitions.items() if category in sections[""] %}
3
- ### {{ definitions[category]['name'] }}
4
-
5
- {% for text, values in sections[""][category].items() %}
6
- - {{ text }} {{ values|join(', ') }}
7
- {% endfor %}
8
-
9
- {% endfor %}
10
- {% endif %}
@@ -1,11 +0,0 @@
1
- import { GetContentResponse } from '../content/get';
2
- import { BlocksConfig } from '../config/Blocks';
3
-
4
- export interface BlockViewProps {
5
- id: string;
6
- metadata?: GetContentResponse;
7
- properties: GetContentResponse;
8
- data: any;
9
- path: string;
10
- blocksConfig: BlocksConfig;
11
- }
@@ -1,15 +0,0 @@
1
- interface Object {
2
- icon: string;
3
- id: string;
4
- title: string;
5
- url: string;
6
- }
7
-
8
- export interface ActionsResponse {
9
- document_actions: Object[];
10
- object: Object[];
11
- object_buttons: Object[];
12
- portal_tabs: Object[];
13
- site_actions: Object[];
14
- user: Object[];
15
- }
@@ -1,10 +0,0 @@
1
- interface Item {
2
- '@id': string;
3
- title: string;
4
- }
5
-
6
- export interface BreadcrumbsResponse {
7
- '@id': string;
8
- items: Item[];
9
- root: string;
10
- }
@@ -1,153 +0,0 @@
1
- import { GetContentResponse } from '../content/get';
2
- import type { BlockViewProps } from '@plone/types/Blocks/View';
3
-
4
- export interface BlocksConfig {
5
- [key: string]: BlockConfigBase | undefined;
6
- title?: BlockConfigBase;
7
- description?: BlockConfigBase;
8
- slate?: SlateBlock;
9
- }
10
-
11
- interface BlockConfigBase {
12
- /**
13
- * The programmatic id of the block
14
- */
15
- id: string;
16
- /**
17
- * // The display name of the block (translatable)
18
- */
19
- title: string;
20
- /**
21
- * The icon used in the block chooser
22
- */
23
- icon: string;
24
- /**
25
- * The group of the block
26
- */
27
- group: string;
28
- /**
29
- * The view mode component
30
- */
31
- view: React.ComponentType<BlockViewProps>;
32
- /**
33
- * The edit mode component
34
- */
35
- edit: React.ComponentType;
36
- /**
37
- * The group (blocks can be grouped, displayed in the chooser)
38
- */
39
- schema?: object;
40
- /**
41
- * The group of the block
42
- */
43
- blockSchema?: (args: {
44
- props: unknown;
45
- intl: unknown;
46
- }) => Record<string, unknown>;
47
- /**
48
- * If the block is restricted, it won't show in the chooser.
49
- * The function signature is `({properties, block})` where `properties` is
50
- * the current object data and `block` is the block being evaluated in `BlockChooser`.
51
- */
52
- restricted: (args: {
53
- properties: GetContentResponse;
54
- block: BlockConfigBase; // TODO: This has to be extendable
55
- }) => boolean;
56
- /**
57
- * A meta group `most used`, appearing at the top of the chooser
58
- */
59
- mostUsed: false;
60
- /**
61
- * Set this to true if the block manages its own focus
62
- */
63
- blockHasOwnFocusManagement: true;
64
- /**
65
- * The sidebar tab you want to be selected when selecting the block
66
- */
67
- sidebarTab: 0;
68
- /**
69
- * A block can have an schema enhancer function with the signature: (schema) => schema
70
- * It can be either be at block level (it's applied always), at a variation level
71
- * or both. It's up to the developer to make them work nicely (not conflict) between them
72
- */
73
- schemaEnhancer: (args: {
74
- schema: JSONSchema;
75
- formData: BlockConfigBase; // Not sure, if so, has to be extendable
76
- intl: unknown;
77
- }) => JSONSchema;
78
- }
79
-
80
- interface SlateBlock extends BlockConfigBase {
81
- /**
82
- * Returns true if the provided block data represents a value for the current block.
83
- * Required for alternate default block types implementations.
84
- */
85
- blockHasValue: (data: BlockConfigBase) => boolean;
86
- /**
87
- *
88
- */
89
- tocEntry: (block: BlockConfigBase) => object;
90
- }
91
-
92
- export interface ContainerBlock extends BlockConfigBase {
93
- /**
94
- * A custom `EditBlockWrapper` component to use by the container
95
- */
96
- EditBlockWrapper: React.ComponentType;
97
- /**
98
- * A custom `TemplateChooser` component to use by the container
99
- */
100
- TemplateChooser: React.ComponentType;
101
- /**
102
- * The available templates for the TemplateChooser generator
103
- */
104
- templates: (type: string) => (intl: unknown) => TemplateDefaultBlocksData;
105
- /**
106
- * Maximum number of blocks in the container
107
- */
108
- maxLength: number;
109
- /**
110
- * List of the `id`s of the allowed blocks in the container
111
- */
112
- allowedBlocks: string[];
113
- }
114
-
115
- // interface ExtendedObject extends ArbitraryObject {
116
- // baz: { someProp: string };
117
- // }
118
-
119
- // const myObject: ExtendedObject = {};
120
-
121
- // // Add properties one by one
122
- // myObject.foo = 'hello';
123
- // myObject.bar = 42;
124
- // myObject.baz = { someProp: 'someValue' };
125
-
126
- type JSONSchemaFieldsets = {
127
- id: string;
128
- title: string;
129
- fields: string[];
130
- };
131
-
132
- type JSONSchema = {
133
- title: string;
134
- fieldsets: JSONSchemaFieldsets[];
135
- properties: object;
136
- required: string[];
137
- };
138
-
139
- type BlocksData = {
140
- blocks: {
141
- [key: string]: object;
142
- };
143
- blocks_layout: {
144
- items: string[];
145
- };
146
- };
147
-
148
- interface TemplateDefaultBlocksData {
149
- image: string;
150
- id: string;
151
- title: string;
152
- blocksData: BlocksData;
153
- }