@evfrenkel/decap-cms-core 3.13.0-image-conversions.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (306) hide show
  1. package/README.md +9 -0
  2. package/dist/20.decap-cms-core.js +2 -0
  3. package/dist/20.decap-cms-core.js.map +1 -0
  4. package/dist/3802306e7b58a11862fb.wasm +0 -0
  5. package/dist/@evfrenkel/20.decap-cms-core.js +2 -0
  6. package/dist/@evfrenkel/20.decap-cms-core.js.map +1 -0
  7. package/dist/@evfrenkel/decap-cms-core.js +44 -0
  8. package/dist/@evfrenkel/decap-cms-core.js.LICENSE.txt +126 -0
  9. package/dist/@evfrenkel/decap-cms-core.js.map +1 -0
  10. package/dist/decap-cms-core.js +47 -0
  11. package/dist/decap-cms-core.js.LICENSE.txt +126 -0
  12. package/dist/decap-cms-core.js.map +1 -0
  13. package/dist/esm/actions/auth.js +97 -0
  14. package/dist/esm/actions/collections.js +15 -0
  15. package/dist/esm/actions/config.js +503 -0
  16. package/dist/esm/actions/deploys.js +80 -0
  17. package/dist/esm/actions/editorialWorkflow.js +480 -0
  18. package/dist/esm/actions/entries.js +876 -0
  19. package/dist/esm/actions/media.js +147 -0
  20. package/dist/esm/actions/mediaLibrary.js +599 -0
  21. package/dist/esm/actions/notifications.js +21 -0
  22. package/dist/esm/actions/search.js +149 -0
  23. package/dist/esm/actions/status.js +74 -0
  24. package/dist/esm/actions/waitUntil.js +32 -0
  25. package/dist/esm/backend.js +1090 -0
  26. package/dist/esm/bootstrap.js +101 -0
  27. package/dist/esm/components/App/App.js +296 -0
  28. package/dist/esm/components/App/Header.js +172 -0
  29. package/dist/esm/components/App/NotFoundPage.js +19 -0
  30. package/dist/esm/components/Collection/Collection.js +198 -0
  31. package/dist/esm/components/Collection/CollectionControls.js +47 -0
  32. package/dist/esm/components/Collection/CollectionSearch.js +222 -0
  33. package/dist/esm/components/Collection/CollectionTop.js +68 -0
  34. package/dist/esm/components/Collection/ControlButton.js +17 -0
  35. package/dist/esm/components/Collection/Entries/Entries.js +73 -0
  36. package/dist/esm/components/Collection/Entries/EntriesCollection.js +241 -0
  37. package/dist/esm/components/Collection/Entries/EntriesSearch.js +113 -0
  38. package/dist/esm/components/Collection/Entries/EntryCard.js +192 -0
  39. package/dist/esm/components/Collection/Entries/EntryListing.js +143 -0
  40. package/dist/esm/components/Collection/FilterControl.js +33 -0
  41. package/dist/esm/components/Collection/GroupControl.js +33 -0
  42. package/dist/esm/components/Collection/NestedCollection.js +308 -0
  43. package/dist/esm/components/Collection/Sidebar.js +91 -0
  44. package/dist/esm/components/Collection/SortControl.js +59 -0
  45. package/dist/esm/components/Collection/ViewStyleControl.js +41 -0
  46. package/dist/esm/components/Editor/Editor.js +466 -0
  47. package/dist/esm/components/Editor/EditorControlPane/EditorControl.js +398 -0
  48. package/dist/esm/components/Editor/EditorControlPane/EditorControlPane.js +254 -0
  49. package/dist/esm/components/Editor/EditorControlPane/Widget.js +374 -0
  50. package/dist/esm/components/Editor/EditorInterface.js +386 -0
  51. package/dist/esm/components/Editor/EditorPreviewPane/EditorPreview.js +47 -0
  52. package/dist/esm/components/Editor/EditorPreviewPane/EditorPreviewContent.js +67 -0
  53. package/dist/esm/components/Editor/EditorPreviewPane/EditorPreviewPane.js +306 -0
  54. package/dist/esm/components/Editor/EditorPreviewPane/PreviewHOC.js +27 -0
  55. package/dist/esm/components/Editor/EditorToolbar.js +554 -0
  56. package/dist/esm/components/Editor/withWorkflow.js +56 -0
  57. package/dist/esm/components/EditorWidgets/Unknown/UnknownControl.js +18 -0
  58. package/dist/esm/components/EditorWidgets/Unknown/UnknownPreview.js +20 -0
  59. package/dist/esm/components/EditorWidgets/index.js +4 -0
  60. package/dist/esm/components/MediaLibrary/EmptyMessage.js +22 -0
  61. package/dist/esm/components/MediaLibrary/MediaLibrary.js +446 -0
  62. package/dist/esm/components/MediaLibrary/MediaLibraryButtons.js +92 -0
  63. package/dist/esm/components/MediaLibrary/MediaLibraryCard.js +99 -0
  64. package/dist/esm/components/MediaLibrary/MediaLibraryCardGrid.js +198 -0
  65. package/dist/esm/components/MediaLibrary/MediaLibraryHeader.js +34 -0
  66. package/dist/esm/components/MediaLibrary/MediaLibraryModal.js +156 -0
  67. package/dist/esm/components/MediaLibrary/MediaLibrarySearch.js +51 -0
  68. package/dist/esm/components/MediaLibrary/MediaLibraryTop.js +124 -0
  69. package/dist/esm/components/UI/DragDrop.js +67 -0
  70. package/dist/esm/components/UI/ErrorBoundary.js +170 -0
  71. package/dist/esm/components/UI/FileUploadButton.js +27 -0
  72. package/dist/esm/components/UI/Modal.js +104 -0
  73. package/dist/esm/components/UI/Notifications.js +62 -0
  74. package/dist/esm/components/UI/SettingsDropdown.js +107 -0
  75. package/dist/esm/components/UI/index.js +6 -0
  76. package/dist/esm/components/Workflow/Workflow.js +133 -0
  77. package/dist/esm/components/Workflow/WorkflowCard.js +128 -0
  78. package/dist/esm/components/Workflow/WorkflowList.js +204 -0
  79. package/dist/esm/constants/collectionTypes.js +2 -0
  80. package/dist/esm/constants/collectionViews.js +2 -0
  81. package/dist/esm/constants/commitProps.js +2 -0
  82. package/dist/esm/constants/configSchema.js +695 -0
  83. package/dist/esm/constants/fieldInference.js +57 -0
  84. package/dist/esm/constants/publishModes.js +18 -0
  85. package/dist/esm/constants/validationErrorTypes.js +6 -0
  86. package/dist/esm/formats/formats.js +83 -0
  87. package/dist/esm/formats/frontmatter.js +146 -0
  88. package/dist/esm/formats/helpers.js +12 -0
  89. package/dist/esm/formats/json.js +8 -0
  90. package/dist/esm/formats/toml.js +32 -0
  91. package/dist/esm/formats/yaml.js +60 -0
  92. package/dist/esm/index.js +7 -0
  93. package/dist/esm/integrations/index.js +28 -0
  94. package/dist/esm/integrations/providers/algolia/implementation.js +174 -0
  95. package/dist/esm/integrations/providers/assetStore/implementation.js +165 -0
  96. package/dist/esm/lib/consoleError.js +3 -0
  97. package/dist/esm/lib/formatters.js +201 -0
  98. package/dist/esm/lib/i18n.js +372 -0
  99. package/dist/esm/lib/imageTransformations.js +143 -0
  100. package/dist/esm/lib/phrases.js +6 -0
  101. package/dist/esm/lib/polyfill.js +8 -0
  102. package/dist/esm/lib/registry.js +332 -0
  103. package/dist/esm/lib/serializeEntryValues.js +67 -0
  104. package/dist/esm/lib/stega.js +142 -0
  105. package/dist/esm/lib/textHelper.js +9 -0
  106. package/dist/esm/lib/urlHelper.js +129 -0
  107. package/dist/esm/mediaLibrary.js +37 -0
  108. package/dist/esm/reducers/auth.js +27 -0
  109. package/dist/esm/reducers/collections.js +428 -0
  110. package/dist/esm/reducers/combinedReducer.js +8 -0
  111. package/dist/esm/reducers/config.js +29 -0
  112. package/dist/esm/reducers/cursors.js +31 -0
  113. package/dist/esm/reducers/deploys.js +50 -0
  114. package/dist/esm/reducers/editorialWorkflow.js +83 -0
  115. package/dist/esm/reducers/entries.js +568 -0
  116. package/dist/esm/reducers/entryDraft.js +211 -0
  117. package/dist/esm/reducers/globalUI.js +25 -0
  118. package/dist/esm/reducers/index.js +66 -0
  119. package/dist/esm/reducers/integrations.js +53 -0
  120. package/dist/esm/reducers/mediaLibrary.js +252 -0
  121. package/dist/esm/reducers/medias.js +68 -0
  122. package/dist/esm/reducers/notifications.js +23 -0
  123. package/dist/esm/reducers/search.js +92 -0
  124. package/dist/esm/reducers/status.js +30 -0
  125. package/dist/esm/redux/index.js +7 -0
  126. package/dist/esm/redux/middleware/waitUntilAction.js +48 -0
  127. package/dist/esm/routing/history.js +12 -0
  128. package/dist/esm/types/diacritics.d.js +0 -0
  129. package/dist/esm/types/global.d.js +1 -0
  130. package/dist/esm/types/immutable.js +7 -0
  131. package/dist/esm/types/redux.js +14 -0
  132. package/dist/esm/types/tomlify-j0.4.d.js +0 -0
  133. package/dist/esm/valueObjects/AssetProxy.js +44 -0
  134. package/dist/esm/valueObjects/EditorComponent.js +34 -0
  135. package/dist/esm/valueObjects/Entry.js +20 -0
  136. package/index.d.ts +662 -0
  137. package/package.json +100 -0
  138. package/src/__tests__/backend.spec.js +1223 -0
  139. package/src/actions/__tests__/config.spec.js +1023 -0
  140. package/src/actions/__tests__/editorialWorkflow.spec.js +216 -0
  141. package/src/actions/__tests__/entries.spec.js +610 -0
  142. package/src/actions/__tests__/media.spec.ts +171 -0
  143. package/src/actions/__tests__/mediaLibrary.spec.js +462 -0
  144. package/src/actions/__tests__/search.spec.js +209 -0
  145. package/src/actions/auth.ts +127 -0
  146. package/src/actions/collections.ts +18 -0
  147. package/src/actions/config.ts +574 -0
  148. package/src/actions/deploys.ts +105 -0
  149. package/src/actions/editorialWorkflow.ts +567 -0
  150. package/src/actions/entries.ts +1070 -0
  151. package/src/actions/media.ts +139 -0
  152. package/src/actions/mediaLibrary.ts +639 -0
  153. package/src/actions/notifications.ts +36 -0
  154. package/src/actions/search.ts +221 -0
  155. package/src/actions/status.ts +99 -0
  156. package/src/actions/waitUntil.ts +49 -0
  157. package/src/backend.ts +1411 -0
  158. package/src/bootstrap.js +104 -0
  159. package/src/components/App/App.js +295 -0
  160. package/src/components/App/Header.js +291 -0
  161. package/src/components/App/NotFoundPage.js +23 -0
  162. package/src/components/Collection/Collection.js +210 -0
  163. package/src/components/Collection/CollectionControls.js +58 -0
  164. package/src/components/Collection/CollectionSearch.js +243 -0
  165. package/src/components/Collection/CollectionTop.js +81 -0
  166. package/src/components/Collection/ControlButton.js +27 -0
  167. package/src/components/Collection/Entries/Entries.js +82 -0
  168. package/src/components/Collection/Entries/EntriesCollection.js +277 -0
  169. package/src/components/Collection/Entries/EntriesSearch.js +102 -0
  170. package/src/components/Collection/Entries/EntryCard.js +256 -0
  171. package/src/components/Collection/Entries/EntryListing.js +151 -0
  172. package/src/components/Collection/Entries/__tests__/EntriesCollection.spec.js +163 -0
  173. package/src/components/Collection/Entries/__tests__/__snapshots__/EntriesCollection.spec.js.snap +46 -0
  174. package/src/components/Collection/FilterControl.js +39 -0
  175. package/src/components/Collection/GroupControl.js +39 -0
  176. package/src/components/Collection/NestedCollection.js +330 -0
  177. package/src/components/Collection/Sidebar.js +136 -0
  178. package/src/components/Collection/SortControl.js +68 -0
  179. package/src/components/Collection/ViewStyleControl.js +52 -0
  180. package/src/components/Collection/__tests__/Collection.spec.js +75 -0
  181. package/src/components/Collection/__tests__/NestedCollection.spec.js +445 -0
  182. package/src/components/Collection/__tests__/Sidebar.spec.js +87 -0
  183. package/src/components/Collection/__tests__/__snapshots__/Collection.spec.js.snap +144 -0
  184. package/src/components/Collection/__tests__/__snapshots__/NestedCollection.spec.js.snap +550 -0
  185. package/src/components/Collection/__tests__/__snapshots__/Sidebar.spec.js.snap +312 -0
  186. package/src/components/Editor/Editor.js +497 -0
  187. package/src/components/Editor/EditorControlPane/EditorControl.js +453 -0
  188. package/src/components/Editor/EditorControlPane/EditorControlPane.js +269 -0
  189. package/src/components/Editor/EditorControlPane/Widget.js +384 -0
  190. package/src/components/Editor/EditorInterface.js +444 -0
  191. package/src/components/Editor/EditorPreviewPane/EditorPreview.js +40 -0
  192. package/src/components/Editor/EditorPreviewPane/EditorPreviewContent.js +75 -0
  193. package/src/components/Editor/EditorPreviewPane/EditorPreviewPane.js +337 -0
  194. package/src/components/Editor/EditorPreviewPane/PreviewHOC.js +33 -0
  195. package/src/components/Editor/EditorToolbar.js +728 -0
  196. package/src/components/Editor/__tests__/Editor.spec.js +221 -0
  197. package/src/components/Editor/__tests__/EditorToolbar.spec.js +166 -0
  198. package/src/components/Editor/__tests__/__snapshots__/Editor.spec.js.snap +45 -0
  199. package/src/components/Editor/__tests__/__snapshots__/EditorToolbar.spec.js.snap +4265 -0
  200. package/src/components/Editor/withWorkflow.js +61 -0
  201. package/src/components/EditorWidgets/Unknown/UnknownControl.js +17 -0
  202. package/src/components/EditorWidgets/Unknown/UnknownPreview.js +19 -0
  203. package/src/components/EditorWidgets/index.js +5 -0
  204. package/src/components/MediaLibrary/EmptyMessage.js +28 -0
  205. package/src/components/MediaLibrary/MediaLibrary.js +411 -0
  206. package/src/components/MediaLibrary/MediaLibraryButtons.js +135 -0
  207. package/src/components/MediaLibrary/MediaLibraryCard.js +128 -0
  208. package/src/components/MediaLibrary/MediaLibraryCardGrid.js +199 -0
  209. package/src/components/MediaLibrary/MediaLibraryHeader.js +48 -0
  210. package/src/components/MediaLibrary/MediaLibraryModal.js +200 -0
  211. package/src/components/MediaLibrary/MediaLibrarySearch.js +61 -0
  212. package/src/components/MediaLibrary/MediaLibraryTop.js +144 -0
  213. package/src/components/MediaLibrary/__tests__/MediaLibraryButtons.spec.js +45 -0
  214. package/src/components/MediaLibrary/__tests__/MediaLibraryCard.spec.js +49 -0
  215. package/src/components/MediaLibrary/__tests__/__snapshots__/MediaLibraryCard.spec.js.snap +264 -0
  216. package/src/components/UI/DragDrop.js +66 -0
  217. package/src/components/UI/ErrorBoundary.js +213 -0
  218. package/src/components/UI/FileUploadButton.js +24 -0
  219. package/src/components/UI/Modal.js +112 -0
  220. package/src/components/UI/Notifications.tsx +83 -0
  221. package/src/components/UI/SettingsDropdown.js +130 -0
  222. package/src/components/UI/__tests__/ErrorBoundary.spec.js +57 -0
  223. package/src/components/UI/index.js +6 -0
  224. package/src/components/Workflow/Workflow.js +169 -0
  225. package/src/components/Workflow/WorkflowCard.js +177 -0
  226. package/src/components/Workflow/WorkflowList.js +272 -0
  227. package/src/constants/__tests__/configSchema.spec.js +644 -0
  228. package/src/constants/collectionTypes.ts +2 -0
  229. package/src/constants/collectionViews.js +2 -0
  230. package/src/constants/commitProps.ts +2 -0
  231. package/src/constants/configSchema.js +489 -0
  232. package/src/constants/fieldInference.tsx +78 -0
  233. package/src/constants/publishModes.ts +22 -0
  234. package/src/constants/validationErrorTypes.js +6 -0
  235. package/src/formats/__tests__/formats.spec.js +87 -0
  236. package/src/formats/__tests__/frontmatter.spec.js +450 -0
  237. package/src/formats/__tests__/toml.spec.js +9 -0
  238. package/src/formats/__tests__/yaml.spec.js +189 -0
  239. package/src/formats/formats.ts +97 -0
  240. package/src/formats/frontmatter.ts +150 -0
  241. package/src/formats/helpers.ts +14 -0
  242. package/src/formats/json.ts +9 -0
  243. package/src/formats/toml.ts +33 -0
  244. package/src/formats/yaml.ts +73 -0
  245. package/src/index.js +8 -0
  246. package/src/integrations/index.js +35 -0
  247. package/src/integrations/providers/algolia/implementation.js +176 -0
  248. package/src/integrations/providers/assetStore/implementation.js +148 -0
  249. package/src/lib/__tests__/formatters.spec.js +844 -0
  250. package/src/lib/__tests__/i18n.spec.js +792 -0
  251. package/src/lib/__tests__/imageTransformations.spec.ts +97 -0
  252. package/src/lib/__tests__/phrases.spec.js +119 -0
  253. package/src/lib/__tests__/registry.spec.js +261 -0
  254. package/src/lib/__tests__/serializeEntryValues.spec.js +22 -0
  255. package/src/lib/__tests__/urlHelper.spec.js +145 -0
  256. package/src/lib/consoleError.js +7 -0
  257. package/src/lib/formatters.ts +297 -0
  258. package/src/lib/i18n.ts +462 -0
  259. package/src/lib/imageTransformations.ts +212 -0
  260. package/src/lib/phrases.js +8 -0
  261. package/src/lib/polyfill.js +9 -0
  262. package/src/lib/registry.js +315 -0
  263. package/src/lib/serializeEntryValues.js +75 -0
  264. package/src/lib/stega.ts +145 -0
  265. package/src/lib/textHelper.js +11 -0
  266. package/src/lib/urlHelper.ts +152 -0
  267. package/src/mediaLibrary.ts +51 -0
  268. package/src/reducers/__tests__/auth.spec.ts +38 -0
  269. package/src/reducers/__tests__/collections.spec.js +610 -0
  270. package/src/reducers/__tests__/config.spec.js +38 -0
  271. package/src/reducers/__tests__/deploys.spec.ts +111 -0
  272. package/src/reducers/__tests__/entries.spec.js +694 -0
  273. package/src/reducers/__tests__/entryDraft.spec.js +315 -0
  274. package/src/reducers/__tests__/globalUI.js +43 -0
  275. package/src/reducers/__tests__/integrations.spec.ts +76 -0
  276. package/src/reducers/__tests__/mediaLibrary.spec.js +154 -0
  277. package/src/reducers/__tests__/medias.spec.ts +49 -0
  278. package/src/reducers/auth.ts +46 -0
  279. package/src/reducers/collections.ts +535 -0
  280. package/src/reducers/combinedReducer.ts +11 -0
  281. package/src/reducers/config.ts +38 -0
  282. package/src/reducers/cursors.js +36 -0
  283. package/src/reducers/deploys.ts +54 -0
  284. package/src/reducers/editorialWorkflow.ts +163 -0
  285. package/src/reducers/entries.ts +819 -0
  286. package/src/reducers/entryDraft.js +259 -0
  287. package/src/reducers/globalUI.ts +45 -0
  288. package/src/reducers/index.ts +82 -0
  289. package/src/reducers/integrations.ts +59 -0
  290. package/src/reducers/mediaLibrary.ts +296 -0
  291. package/src/reducers/medias.ts +66 -0
  292. package/src/reducers/notifications.ts +52 -0
  293. package/src/reducers/search.ts +111 -0
  294. package/src/reducers/status.ts +40 -0
  295. package/src/redux/index.ts +18 -0
  296. package/src/redux/middleware/waitUntilAction.ts +64 -0
  297. package/src/routing/__tests__/history.spec.ts +49 -0
  298. package/src/routing/history.ts +17 -0
  299. package/src/types/diacritics.d.ts +1 -0
  300. package/src/types/global.d.ts +8 -0
  301. package/src/types/immutable.ts +49 -0
  302. package/src/types/redux.ts +875 -0
  303. package/src/types/tomlify-j0.4.d.ts +13 -0
  304. package/src/valueObjects/AssetProxy.ts +48 -0
  305. package/src/valueObjects/EditorComponent.js +38 -0
  306. package/src/valueObjects/Entry.ts +63 -0
package/index.d.ts ADDED
@@ -0,0 +1,662 @@
1
+ /* eslint-disable @typescript-eslint/no-explicit-any */
2
+ declare module 'decap-cms-core' {
3
+ import type { ComponentType } from 'react';
4
+ import type { List, Map } from 'immutable';
5
+ import type { Pluggable } from 'unified';
6
+
7
+ export type CmsBackendType =
8
+ | 'azure'
9
+ | 'git-gateway'
10
+ | 'github'
11
+ | 'gitlab'
12
+ | 'gitea'
13
+ | 'bitbucket'
14
+ | 'test-repo'
15
+ | 'proxy';
16
+
17
+ export type CmsMapWidgetType = 'Point' | 'LineString' | 'Polygon';
18
+
19
+ export type CmsMarkdownWidgetButton =
20
+ | 'bold'
21
+ | 'italic'
22
+ | 'code'
23
+ | 'link'
24
+ | 'heading-one'
25
+ | 'heading-two'
26
+ | 'heading-three'
27
+ | 'heading-four'
28
+ | 'heading-five'
29
+ | 'heading-six'
30
+ | 'quote'
31
+ | 'code-block'
32
+ | 'bulleted-list'
33
+ | 'numbered-list';
34
+
35
+ export interface CmsSelectWidgetOptionObject {
36
+ label: string;
37
+ value: any;
38
+ }
39
+
40
+ export type CmsCollectionFormatType = string;
41
+
42
+ export type CmsAuthScope = 'repo' | 'public_repo';
43
+
44
+ export type CmsPublishMode = 'simple' | 'editorial_workflow' | '';
45
+
46
+ export type CmsSlugEncoding = 'unicode' | 'ascii';
47
+
48
+ export interface CmsI18nConfig {
49
+ structure: 'multiple_folders' | 'multiple_files' | 'single_file';
50
+ locales: string[];
51
+ default_locale?: string;
52
+ }
53
+
54
+ export interface CmsFieldBase {
55
+ name: string;
56
+ label?: string;
57
+ required?: boolean;
58
+ hint?: string;
59
+ pattern?: [string, string];
60
+ i18n?: boolean | 'translate' | 'duplicate' | 'none';
61
+ media_folder?: string;
62
+ public_folder?: string;
63
+ image_transformations?: CmsImageTransformations;
64
+ comment?: string;
65
+ }
66
+
67
+ export interface CmsFieldBoolean {
68
+ widget: 'boolean';
69
+ default?: boolean;
70
+ }
71
+
72
+ export interface CmsFieldCode {
73
+ widget: 'code';
74
+ default?: any;
75
+
76
+ default_language?: string;
77
+ allow_language_selection?: boolean;
78
+ keys?: { code: string; lang: string };
79
+ output_code_only?: boolean;
80
+ }
81
+
82
+ export interface CmsFieldColor {
83
+ widget: 'color';
84
+ default?: string;
85
+
86
+ allowInput?: boolean;
87
+ enableAlpha?: boolean;
88
+ }
89
+
90
+ export interface CmsFieldDateTime {
91
+ widget: 'datetime';
92
+ default?: string;
93
+
94
+ format?: string;
95
+ date_format?: boolean | string;
96
+ time_format?: boolean | string;
97
+ picker_utc?: boolean;
98
+
99
+ /**
100
+ * @deprecated Use date_format instead
101
+ */
102
+ dateFormat?: boolean | string;
103
+ /**
104
+ * @deprecated Use time_format instead
105
+ */
106
+ timeFormat?: boolean | string;
107
+ /**
108
+ * @deprecated Use picker_utc instead
109
+ */
110
+ pickerUtc?: boolean;
111
+ }
112
+
113
+ export interface CmsFieldFileOrImage {
114
+ widget: 'file' | 'image';
115
+ default?: string;
116
+
117
+ media_library?: CmsMediaLibrary;
118
+ allow_multiple?: boolean;
119
+ choose_url?: boolean;
120
+ config?: any;
121
+ }
122
+
123
+ export interface CmsFieldObject {
124
+ widget: 'object';
125
+ default?: any;
126
+
127
+ collapsed?: boolean;
128
+ summary?: string;
129
+ fields: CmsField[];
130
+ }
131
+
132
+ export interface CmsFieldList {
133
+ widget: 'list';
134
+ default?: any;
135
+
136
+ allow_add?: boolean;
137
+ allow_remove?: boolean;
138
+ allow_reorder?: boolean;
139
+ collapsed?: boolean;
140
+ summary?: string;
141
+ minimize_collapsed?: boolean;
142
+ label_singular?: string;
143
+ field?: CmsField;
144
+ fields?: CmsField[];
145
+ max?: number;
146
+ min?: number;
147
+ add_to_top?: boolean;
148
+ types?: (CmsFieldBase & CmsFieldObject)[];
149
+ }
150
+
151
+ export interface CmsFieldMap {
152
+ widget: 'map';
153
+ default?: string;
154
+
155
+ decimals?: number;
156
+ type?: CmsMapWidgetType;
157
+ }
158
+
159
+ export interface CmsFieldMarkdown {
160
+ widget: 'markdown';
161
+ default?: string;
162
+
163
+ minimal?: boolean;
164
+ buttons?: CmsMarkdownWidgetButton[];
165
+ editor_components?: string[];
166
+ modes?: ('raw' | 'rich_text')[];
167
+
168
+ /**
169
+ * @deprecated Use editor_components instead
170
+ */
171
+ editorComponents?: string[];
172
+ }
173
+
174
+ export interface CmsFieldRichText {
175
+ widget: 'richtext';
176
+ default?: string;
177
+
178
+ minimal?: boolean;
179
+ buttons?: CmsMarkdownWidgetButton[];
180
+ editor_components?: string[];
181
+ modes?: ('raw' | 'rich_text')[];
182
+
183
+ /**
184
+ * @deprecated Use editor_components instead
185
+ */
186
+ editorComponents?: string[];
187
+ }
188
+
189
+ export interface CmsFieldNumber {
190
+ widget: 'number';
191
+ default?: string | number;
192
+
193
+ value_type?: 'int' | 'float' | string;
194
+ min?: number;
195
+ max?: number;
196
+
197
+ step?: number;
198
+
199
+ /**
200
+ * @deprecated Use valueType instead
201
+ */
202
+ valueType?: 'int' | 'float' | string;
203
+ }
204
+
205
+ export interface CmsFieldSelect {
206
+ widget: 'select';
207
+ default?: string | string[];
208
+
209
+ options: string[] | CmsSelectWidgetOptionObject[];
210
+ multiple?: boolean;
211
+ min?: number;
212
+ max?: number;
213
+ }
214
+
215
+ export interface CmsFieldRelation {
216
+ widget: 'relation';
217
+ default?: string | string[];
218
+
219
+ collection: string;
220
+ value_field: string;
221
+ search_fields: string[];
222
+ file?: string;
223
+ display_fields?: string[];
224
+ multiple?: boolean;
225
+ options_length?: number;
226
+
227
+ /**
228
+ * @deprecated Use value_field instead
229
+ */
230
+ valueField?: string;
231
+ /**
232
+ * @deprecated Use search_fields instead
233
+ */
234
+ searchFields?: string[];
235
+ /**
236
+ * @deprecated Use display_fields instead
237
+ */
238
+ displayFields?: string[];
239
+ /**
240
+ * @deprecated Use options_length instead
241
+ */
242
+ optionsLength?: number;
243
+ }
244
+
245
+ export interface CmsFieldHidden {
246
+ widget: 'hidden';
247
+ default?: any;
248
+ }
249
+
250
+ export interface CmsFieldStringOrText {
251
+ // This is the default widget, so declaring its type is optional.
252
+ widget?: 'string' | 'text';
253
+ default?: string;
254
+ visualEditing?: boolean;
255
+ }
256
+
257
+ export interface CmsFieldMeta {
258
+ name: string;
259
+ label: string;
260
+ widget: string;
261
+ required: boolean;
262
+ index_file: string;
263
+ meta: boolean;
264
+ }
265
+
266
+ export type CmsField = CmsFieldBase &
267
+ (
268
+ | CmsFieldBoolean
269
+ | CmsFieldCode
270
+ | CmsFieldColor
271
+ | CmsFieldDateTime
272
+ | CmsFieldFileOrImage
273
+ | CmsFieldList
274
+ | CmsFieldMap
275
+ | CmsFieldMarkdown
276
+ | CmsFieldRichText
277
+ | CmsFieldNumber
278
+ | CmsFieldObject
279
+ | CmsFieldRelation
280
+ | CmsFieldSelect
281
+ | CmsFieldHidden
282
+ | CmsFieldStringOrText
283
+ | CmsFieldMeta
284
+ );
285
+
286
+ export interface CmsCollectionFile {
287
+ name: string;
288
+ label: string;
289
+ file: string;
290
+ fields: CmsField[];
291
+ label_singular?: string;
292
+ description?: string;
293
+ preview_path?: string;
294
+ preview_path_date_field?: string;
295
+ i18n?: boolean | CmsI18nConfig;
296
+ media_folder?: string;
297
+ public_folder?: string;
298
+ }
299
+
300
+ export interface ViewFilter {
301
+ label: string;
302
+ field: string;
303
+ pattern: string;
304
+ }
305
+
306
+ export interface ViewGroup {
307
+ label: string;
308
+ field: string;
309
+ pattern?: string;
310
+ }
311
+
312
+ export interface SortableField {
313
+ field: string;
314
+ label?: string;
315
+ default_sort?: boolean | 'asc' | 'desc';
316
+ }
317
+
318
+ export interface CmsCollection {
319
+ name: string;
320
+ label: string;
321
+ label_singular?: string;
322
+ description?: string;
323
+ folder?: string;
324
+ files?: CmsCollectionFile[];
325
+ identifier_field?: string;
326
+ summary?: string;
327
+ slug?: string;
328
+ preview_path?: string;
329
+ preview_path_date_field?: string;
330
+ preview_path_preserve_slashes?: boolean;
331
+ create?: boolean;
332
+ delete?: boolean;
333
+ hide?: boolean;
334
+ editor?: {
335
+ preview?: boolean;
336
+ visualEditing?: boolean;
337
+ };
338
+ publish?: boolean;
339
+ nested?: {
340
+ depth: number;
341
+ subfolders?: boolean;
342
+ };
343
+ meta?: { path?: { label: string; widget: string; index_file?: string } };
344
+
345
+ /**
346
+ * It accepts the following values: yml, yaml, toml, json, md, markdown, html
347
+ *
348
+ * You may also specify a custom extension not included in the list above, by specifying the format value.
349
+ */
350
+ extension?: string;
351
+ format?: CmsCollectionFormatType;
352
+
353
+ frontmatter_delimiter?: string[] | string;
354
+ fields?: CmsField[];
355
+ filter?: { field: string; value: any };
356
+ path?: string;
357
+ media_folder?: string;
358
+ public_folder?: string;
359
+ sortable_fields?: (string | SortableField)[];
360
+ view_filters?: ViewFilter[];
361
+ view_groups?: ViewGroup[];
362
+ i18n?: boolean | CmsI18nConfig;
363
+
364
+ /**
365
+ * @deprecated Use sortable_fields instead
366
+ */
367
+ sortableFields?: (string | SortableField)[];
368
+ }
369
+
370
+ export interface CmsBackend {
371
+ name: CmsBackendType;
372
+ auth_scope?: CmsAuthScope;
373
+ open_authoring?: boolean;
374
+ always_fork?: boolean;
375
+ repo?: string;
376
+ branch?: string;
377
+ api_root?: string;
378
+ site_domain?: string;
379
+ base_url?: string;
380
+ auth_endpoint?: string;
381
+ app_id?: string;
382
+ auth_type?: 'implicit' | 'pkce';
383
+ cms_label_prefix?: string;
384
+ squash_merges?: boolean;
385
+ signoff_commits?: boolean;
386
+ proxy_url?: string;
387
+ commit_messages?: {
388
+ create?: string;
389
+ update?: string;
390
+ delete?: string;
391
+ uploadMedia?: string;
392
+ deleteMedia?: string;
393
+ openAuthoring?: string;
394
+ };
395
+ }
396
+
397
+ export interface CmsSlug {
398
+ encoding?: CmsSlugEncoding;
399
+ clean_accents?: boolean;
400
+ sanitize_replacement?: string;
401
+ }
402
+
403
+ export interface CmsLocalBackend {
404
+ url?: string;
405
+ allowed_hosts?: string[];
406
+ }
407
+
408
+ export interface CmsIssueReports {
409
+ url?: string;
410
+ }
411
+
412
+ export type CmsImageTransformationFormat = 'jpg' | 'jpeg' | 'png' | 'webp';
413
+
414
+ export interface CmsImageTransformationVariant {
415
+ name: string;
416
+ width?: number;
417
+ height?: number;
418
+ format?: CmsImageTransformationFormat;
419
+ quality?: number;
420
+ default?: boolean;
421
+ keep_original_size?: boolean;
422
+ }
423
+
424
+ export type CmsImageTransformations =
425
+ | CmsImageTransformationVariant[]
426
+ | {
427
+ keep_original?: boolean;
428
+ variants: CmsImageTransformationVariant[];
429
+ };
430
+
431
+ export interface CmsConfig {
432
+ backend: CmsBackend;
433
+ collections: CmsCollection[];
434
+ locale?: string;
435
+ site_url?: string;
436
+ display_url?: string;
437
+ logo_url?: string; // Deprecated, replaced by `logo.src`
438
+ logo?: {
439
+ src: string;
440
+ show_in_header?: boolean;
441
+ };
442
+ show_preview_links?: boolean;
443
+ media_folder?: string;
444
+ public_folder?: string;
445
+ media_folder_relative?: boolean;
446
+ image_transformations?: CmsImageTransformations;
447
+ media_library?: CmsMediaLibrary;
448
+ publish_mode?: CmsPublishMode;
449
+ issue_reports?: CmsIssueReports;
450
+ load_config_file?: boolean;
451
+ integrations?: {
452
+ hooks: string[];
453
+ provider: string;
454
+ collections?: '*' | string[];
455
+ applicationID?: string;
456
+ apiKey?: string;
457
+ getSignedFormURL?: string;
458
+ }[];
459
+ slug?: CmsSlug;
460
+ i18n?: CmsI18nConfig;
461
+ local_backend?: boolean | CmsLocalBackend;
462
+ editor?: {
463
+ preview?: boolean;
464
+ };
465
+ }
466
+
467
+ export interface InitOptions {
468
+ config: CmsConfig;
469
+ }
470
+
471
+ export type EditorComponentField =
472
+ | ({
473
+ name: string;
474
+ label: string;
475
+ } & {
476
+ widget: Omit<string, 'list'>;
477
+ })
478
+ | {
479
+ widget: 'list';
480
+ /**
481
+ * Used if widget === "list" to create a flat array
482
+ */
483
+ field?: EditorComponentField;
484
+ /**
485
+ * Used if widget === "list" to create an array of objects
486
+ */
487
+ fields?: EditorComponentField[];
488
+ };
489
+
490
+ export interface EditorComponentOptions {
491
+ id: string;
492
+ label: string;
493
+ fields?: EditorComponentField[];
494
+ pattern: RegExp;
495
+ allow_add?: boolean;
496
+ fromBlock: (match: RegExpMatchArray) => any;
497
+ toBlock: (data: any) => string;
498
+ toPreview: (data: any) => string | JSX.Element;
499
+ }
500
+
501
+ export interface PreviewStyleOptions {
502
+ raw: boolean;
503
+ }
504
+
505
+ export interface PreviewStyle extends PreviewStyleOptions {
506
+ value: string;
507
+ }
508
+
509
+ export type CmsBackendClass = any; // TODO: type properly
510
+
511
+ export interface CmsRegistryBackend {
512
+ init: (args: any) => CmsBackendClass;
513
+ }
514
+
515
+ export interface CmsWidgetControlProps<T = any> {
516
+ value: T;
517
+ field: Map<string, any>;
518
+ onChange: (value: T) => void;
519
+ forID: string;
520
+ classNameWrapper: string;
521
+ }
522
+
523
+ export interface CmsWidgetPreviewProps<T = any> {
524
+ value: T;
525
+ field: Map<string, any>;
526
+ metadata: Map<string, any>;
527
+ getAsset: GetAssetFunction;
528
+ entry: Map<string, any>;
529
+ fieldsMetaData: Map<string, any>;
530
+ }
531
+
532
+ export interface CmsWidgetParam<T = any> {
533
+ name: string;
534
+ controlComponent: CmsWidgetControlProps<T>;
535
+ previewComponent?: CmsWidgetPreviewProps<T>;
536
+ globalStyles?: any;
537
+ }
538
+
539
+ export interface CmsWidget<T = any> {
540
+ control: CmsWidgetControlProps<T>;
541
+ preview?: CmsWidgetPreviewProps<T>;
542
+ globalStyles?: any;
543
+ }
544
+
545
+ export type CmsWidgetValueSerializer = any; // TODO: type properly
546
+
547
+ export type CmsMediaLibraryOptions = any; // TODO: type properly
548
+
549
+ export interface CmsMediaLibrary {
550
+ name: string;
551
+ config?: CmsMediaLibraryOptions;
552
+ }
553
+
554
+ export interface CmsEventListener {
555
+ name: 'prePublish' | 'postPublish' | 'preUnpublish' | 'postUnpublish' | 'preSave' | 'postSave';
556
+ handler: ({
557
+ entry,
558
+ author,
559
+ }: {
560
+ entry: Map<string, any>;
561
+ author: { login: string; name: string };
562
+ }) => any;
563
+ }
564
+
565
+ export type CmsEventListenerOptions = any; // TODO: type properly
566
+
567
+ export type CmsLocalePhrases = any; // TODO: type properly
568
+
569
+ export type Formatter = {
570
+ fromFile(content: string): unknown;
571
+ toFile(data: object, sortedKeys?: string[], comments?: Record<string, string>): string;
572
+ };
573
+
574
+ export interface CmsRegistry {
575
+ backends: {
576
+ [name: string]: CmsRegistryBackend;
577
+ };
578
+ templates: {
579
+ [name: string]: ComponentType<any>;
580
+ };
581
+ previewStyles: PreviewStyle[];
582
+ widgets: {
583
+ [name: string]: CmsWidget;
584
+ };
585
+ editorComponents: Map<string, ComponentType<any>>;
586
+ widgetValueSerializers: {
587
+ [name: string]: CmsWidgetValueSerializer;
588
+ };
589
+ mediaLibraries: CmsMediaLibrary[];
590
+ locales: {
591
+ [name: string]: CmsLocalePhrases;
592
+ };
593
+ formats: {
594
+ [name: string]: Formatter;
595
+ };
596
+ }
597
+
598
+ type GetAssetFunction = (asset: string) => {
599
+ url: string;
600
+ path: string;
601
+ field?: any;
602
+ fileObj: File;
603
+ };
604
+
605
+ export type PreviewTemplateComponentProps = {
606
+ entry: Map<string, any>;
607
+ collection: Map<string, any>;
608
+ getCollection: (collectionName: string, slug?: string) => Promise<Map<string, any>[]>;
609
+ widgetFor: (name: any, fields?: any, values?: any, fieldsMetaData?: any) => JSX.Element | null;
610
+ widgetsFor: (name: any) => any;
611
+ getAsset: GetAssetFunction;
612
+ boundGetAsset: (collection: any, path: any) => GetAssetFunction;
613
+ fieldsMetaData: Map<string, any>;
614
+ config: Map<string, any>;
615
+ fields: List<Map<string, any>>;
616
+ isLoadingAsset: boolean;
617
+ window: Window;
618
+ document: Document;
619
+ };
620
+
621
+ export interface CMS {
622
+ getBackend: (name: string) => CmsRegistryBackend | undefined;
623
+ getEditorComponents: () => Map<string, ComponentType<any>>;
624
+ getRemarkPlugins: () => Array<Pluggable>;
625
+ getLocale: (locale: string) => CmsLocalePhrases | undefined;
626
+ getMediaLibrary: (name: string) => CmsMediaLibrary | undefined;
627
+ getPreviewStyles: () => PreviewStyle[];
628
+ getPreviewTemplate: (name: string) => ComponentType<PreviewTemplateComponentProps> | undefined;
629
+ getWidget: (name: string) => CmsWidget | undefined;
630
+ getWidgetValueSerializer: (widgetName: string) => CmsWidgetValueSerializer | undefined;
631
+ init: (options?: InitOptions) => void;
632
+ registerBackend: (name: string, backendClass: CmsBackendClass) => void;
633
+ registerEditorComponent: (options: EditorComponentOptions) => void;
634
+ registerRemarkPlugin: (plugin: Pluggable) => void;
635
+ registerEventListener: (
636
+ eventListener: CmsEventListener,
637
+ options?: CmsEventListenerOptions,
638
+ ) => void;
639
+ registerLocale: (locale: string, phrases: CmsLocalePhrases) => void;
640
+ registerMediaLibrary: (mediaLibrary: CmsMediaLibrary, options?: CmsMediaLibraryOptions) => void;
641
+ registerPreviewStyle: (filePath: string, options?: PreviewStyleOptions) => void;
642
+ registerPreviewTemplate: (
643
+ name: string,
644
+ component: ComponentType<PreviewTemplateComponentProps>,
645
+ ) => void;
646
+ registerWidget: (
647
+ widget: string | CmsWidgetParam,
648
+ control?: ComponentType<CmsWidgetControlProps> | string,
649
+ preview?: ComponentType<CmsWidgetPreviewProps>,
650
+ ) => void;
651
+ registerWidgetValueSerializer: (
652
+ widgetName: string,
653
+ serializer: CmsWidgetValueSerializer,
654
+ ) => void;
655
+ resolveWidget: (name: string) => CmsWidget | undefined;
656
+ registerCustomFormat: (name: string, extension: string, formatter: Formatter) => void;
657
+ }
658
+
659
+ export const DecapCmsCore: CMS;
660
+
661
+ export default DecapCmsCore;
662
+ }