@pranaysahith/decap-cms-core 3.9.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (299) hide show
  1. package/README.md +9 -0
  2. package/dist/@pranaysahith/decap-cms-core.js +52 -0
  3. package/dist/@pranaysahith/decap-cms-core.js.LICENSE.txt +141 -0
  4. package/dist/@pranaysahith/decap-cms-core.js.map +1 -0
  5. package/dist/decap-cms-core.js +47 -0
  6. package/dist/decap-cms-core.js.LICENSE.txt +116 -0
  7. package/dist/decap-cms-core.js.map +1 -0
  8. package/dist/esm/actions/auth.js +97 -0
  9. package/dist/esm/actions/collections.js +15 -0
  10. package/dist/esm/actions/config.js +493 -0
  11. package/dist/esm/actions/deploys.js +79 -0
  12. package/dist/esm/actions/editorialWorkflow.js +480 -0
  13. package/dist/esm/actions/entries.js +865 -0
  14. package/dist/esm/actions/media.js +147 -0
  15. package/dist/esm/actions/mediaLibrary.js +552 -0
  16. package/dist/esm/actions/notifications.js +21 -0
  17. package/dist/esm/actions/search.js +149 -0
  18. package/dist/esm/actions/status.js +74 -0
  19. package/dist/esm/actions/waitUntil.js +32 -0
  20. package/dist/esm/backend.js +1082 -0
  21. package/dist/esm/bootstrap.js +101 -0
  22. package/dist/esm/components/App/App.js +289 -0
  23. package/dist/esm/components/App/Header.js +172 -0
  24. package/dist/esm/components/App/NotFoundPage.js +19 -0
  25. package/dist/esm/components/Collection/Collection.js +198 -0
  26. package/dist/esm/components/Collection/CollectionControls.js +46 -0
  27. package/dist/esm/components/Collection/CollectionSearch.js +222 -0
  28. package/dist/esm/components/Collection/CollectionTop.js +68 -0
  29. package/dist/esm/components/Collection/ControlButton.js +17 -0
  30. package/dist/esm/components/Collection/Entries/Entries.js +73 -0
  31. package/dist/esm/components/Collection/Entries/EntriesCollection.js +241 -0
  32. package/dist/esm/components/Collection/Entries/EntriesSearch.js +113 -0
  33. package/dist/esm/components/Collection/Entries/EntryCard.js +177 -0
  34. package/dist/esm/components/Collection/Entries/EntryListing.js +143 -0
  35. package/dist/esm/components/Collection/FilterControl.js +33 -0
  36. package/dist/esm/components/Collection/FolderRenameControl.js +403 -0
  37. package/dist/esm/components/Collection/GroupControl.js +33 -0
  38. package/dist/esm/components/Collection/NestedCollection.js +308 -0
  39. package/dist/esm/components/Collection/Sidebar.js +91 -0
  40. package/dist/esm/components/Collection/SortControl.js +59 -0
  41. package/dist/esm/components/Collection/ViewStyleControl.js +38 -0
  42. package/dist/esm/components/Editor/Editor.js +466 -0
  43. package/dist/esm/components/Editor/EditorControlPane/EditorControl.js +395 -0
  44. package/dist/esm/components/Editor/EditorControlPane/EditorControlPane.js +254 -0
  45. package/dist/esm/components/Editor/EditorControlPane/Widget.js +374 -0
  46. package/dist/esm/components/Editor/EditorInterface.js +386 -0
  47. package/dist/esm/components/Editor/EditorPreviewPane/EditorPreview.js +47 -0
  48. package/dist/esm/components/Editor/EditorPreviewPane/EditorPreviewContent.js +66 -0
  49. package/dist/esm/components/Editor/EditorPreviewPane/EditorPreviewPane.js +288 -0
  50. package/dist/esm/components/Editor/EditorPreviewPane/PreviewHOC.js +27 -0
  51. package/dist/esm/components/Editor/EditorToolbar.js +536 -0
  52. package/dist/esm/components/Editor/EntryPathEditor.js +272 -0
  53. package/dist/esm/components/Editor/withWorkflow.js +56 -0
  54. package/dist/esm/components/EditorWidgets/Unknown/UnknownControl.js +18 -0
  55. package/dist/esm/components/EditorWidgets/Unknown/UnknownPreview.js +20 -0
  56. package/dist/esm/components/EditorWidgets/index.js +4 -0
  57. package/dist/esm/components/MediaLibrary/EmptyMessage.js +22 -0
  58. package/dist/esm/components/MediaLibrary/MediaLibrary.js +446 -0
  59. package/dist/esm/components/MediaLibrary/MediaLibraryButtons.js +93 -0
  60. package/dist/esm/components/MediaLibrary/MediaLibraryCard.js +99 -0
  61. package/dist/esm/components/MediaLibrary/MediaLibraryCardGrid.js +198 -0
  62. package/dist/esm/components/MediaLibrary/MediaLibraryHeader.js +32 -0
  63. package/dist/esm/components/MediaLibrary/MediaLibraryModal.js +156 -0
  64. package/dist/esm/components/MediaLibrary/MediaLibrarySearch.js +51 -0
  65. package/dist/esm/components/MediaLibrary/MediaLibraryTop.js +123 -0
  66. package/dist/esm/components/UI/DragDrop.js +67 -0
  67. package/dist/esm/components/UI/ErrorBoundary.js +173 -0
  68. package/dist/esm/components/UI/FileUploadButton.js +27 -0
  69. package/dist/esm/components/UI/Modal.js +104 -0
  70. package/dist/esm/components/UI/Notifications.js +62 -0
  71. package/dist/esm/components/UI/SettingsDropdown.js +107 -0
  72. package/dist/esm/components/UI/index.js +6 -0
  73. package/dist/esm/components/Workflow/Workflow.js +133 -0
  74. package/dist/esm/components/Workflow/WorkflowCard.js +128 -0
  75. package/dist/esm/components/Workflow/WorkflowList.js +204 -0
  76. package/dist/esm/constants/collectionTypes.js +2 -0
  77. package/dist/esm/constants/collectionViews.js +2 -0
  78. package/dist/esm/constants/commitProps.js +2 -0
  79. package/dist/esm/constants/configSchema.js +644 -0
  80. package/dist/esm/constants/fieldInference.js +57 -0
  81. package/dist/esm/constants/publishModes.js +18 -0
  82. package/dist/esm/constants/validationErrorTypes.js +6 -0
  83. package/dist/esm/formats/formats.js +83 -0
  84. package/dist/esm/formats/frontmatter.js +146 -0
  85. package/dist/esm/formats/helpers.js +12 -0
  86. package/dist/esm/formats/json.js +8 -0
  87. package/dist/esm/formats/toml.js +32 -0
  88. package/dist/esm/formats/yaml.js +51 -0
  89. package/dist/esm/index.js +7 -0
  90. package/dist/esm/integrations/index.js +28 -0
  91. package/dist/esm/integrations/providers/algolia/implementation.js +174 -0
  92. package/dist/esm/integrations/providers/assetStore/implementation.js +165 -0
  93. package/dist/esm/lib/consoleError.js +3 -0
  94. package/dist/esm/lib/formatters.js +191 -0
  95. package/dist/esm/lib/i18n.js +367 -0
  96. package/dist/esm/lib/phrases.js +6 -0
  97. package/dist/esm/lib/polyfill.js +8 -0
  98. package/dist/esm/lib/registry.js +329 -0
  99. package/dist/esm/lib/serializeEntryValues.js +67 -0
  100. package/dist/esm/lib/stega.js +142 -0
  101. package/dist/esm/lib/textHelper.js +9 -0
  102. package/dist/esm/lib/urlHelper.js +111 -0
  103. package/dist/esm/mediaLibrary.js +37 -0
  104. package/dist/esm/reducers/auth.js +27 -0
  105. package/dist/esm/reducers/collections.js +428 -0
  106. package/dist/esm/reducers/combinedReducer.js +8 -0
  107. package/dist/esm/reducers/config.js +29 -0
  108. package/dist/esm/reducers/cursors.js +31 -0
  109. package/dist/esm/reducers/deploys.js +45 -0
  110. package/dist/esm/reducers/editorialWorkflow.js +83 -0
  111. package/dist/esm/reducers/entries.js +568 -0
  112. package/dist/esm/reducers/entryDraft.js +212 -0
  113. package/dist/esm/reducers/globalUI.js +25 -0
  114. package/dist/esm/reducers/index.js +66 -0
  115. package/dist/esm/reducers/integrations.js +53 -0
  116. package/dist/esm/reducers/mediaLibrary.js +252 -0
  117. package/dist/esm/reducers/medias.js +68 -0
  118. package/dist/esm/reducers/notifications.js +23 -0
  119. package/dist/esm/reducers/search.js +92 -0
  120. package/dist/esm/reducers/status.js +30 -0
  121. package/dist/esm/redux/index.js +7 -0
  122. package/dist/esm/redux/middleware/waitUntilAction.js +48 -0
  123. package/dist/esm/routing/history.js +12 -0
  124. package/dist/esm/types/diacritics.d.js +0 -0
  125. package/dist/esm/types/global.d.js +1 -0
  126. package/dist/esm/types/immutable.js +7 -0
  127. package/dist/esm/types/redux.js +14 -0
  128. package/dist/esm/types/tomlify-j0.4.d.js +0 -0
  129. package/dist/esm/valueObjects/AssetProxy.js +44 -0
  130. package/dist/esm/valueObjects/EditorComponent.js +34 -0
  131. package/dist/esm/valueObjects/Entry.js +20 -0
  132. package/index.d.ts +618 -0
  133. package/package.json +106 -0
  134. package/src/__tests__/backend.spec.js +1161 -0
  135. package/src/actions/__tests__/config.spec.js +1009 -0
  136. package/src/actions/__tests__/editorialWorkflow.spec.js +216 -0
  137. package/src/actions/__tests__/entries.spec.js +596 -0
  138. package/src/actions/__tests__/media.spec.ts +171 -0
  139. package/src/actions/__tests__/mediaLibrary.spec.js +327 -0
  140. package/src/actions/__tests__/search.spec.js +209 -0
  141. package/src/actions/auth.ts +127 -0
  142. package/src/actions/collections.ts +18 -0
  143. package/src/actions/config.ts +565 -0
  144. package/src/actions/deploys.ts +104 -0
  145. package/src/actions/editorialWorkflow.ts +567 -0
  146. package/src/actions/entries.ts +1055 -0
  147. package/src/actions/media.ts +139 -0
  148. package/src/actions/mediaLibrary.ts +574 -0
  149. package/src/actions/notifications.ts +36 -0
  150. package/src/actions/search.ts +221 -0
  151. package/src/actions/status.ts +99 -0
  152. package/src/actions/waitUntil.ts +49 -0
  153. package/src/backend.ts +1400 -0
  154. package/src/bootstrap.js +104 -0
  155. package/src/components/App/App.js +286 -0
  156. package/src/components/App/Header.js +266 -0
  157. package/src/components/App/NotFoundPage.js +23 -0
  158. package/src/components/Collection/Collection.js +210 -0
  159. package/src/components/Collection/CollectionControls.js +58 -0
  160. package/src/components/Collection/CollectionSearch.js +243 -0
  161. package/src/components/Collection/CollectionTop.js +81 -0
  162. package/src/components/Collection/ControlButton.js +27 -0
  163. package/src/components/Collection/Entries/Entries.js +82 -0
  164. package/src/components/Collection/Entries/EntriesCollection.js +277 -0
  165. package/src/components/Collection/Entries/EntriesSearch.js +102 -0
  166. package/src/components/Collection/Entries/EntryCard.js +246 -0
  167. package/src/components/Collection/Entries/EntryListing.js +151 -0
  168. package/src/components/Collection/Entries/__tests__/EntriesCollection.spec.js +163 -0
  169. package/src/components/Collection/Entries/__tests__/__snapshots__/EntriesCollection.spec.js.snap +46 -0
  170. package/src/components/Collection/FilterControl.js +39 -0
  171. package/src/components/Collection/GroupControl.js +39 -0
  172. package/src/components/Collection/NestedCollection.js +330 -0
  173. package/src/components/Collection/Sidebar.js +136 -0
  174. package/src/components/Collection/SortControl.js +68 -0
  175. package/src/components/Collection/ViewStyleControl.js +50 -0
  176. package/src/components/Collection/__tests__/Collection.spec.js +75 -0
  177. package/src/components/Collection/__tests__/NestedCollection.spec.js +445 -0
  178. package/src/components/Collection/__tests__/Sidebar.spec.js +87 -0
  179. package/src/components/Collection/__tests__/__snapshots__/Collection.spec.js.snap +144 -0
  180. package/src/components/Collection/__tests__/__snapshots__/NestedCollection.spec.js.snap +550 -0
  181. package/src/components/Collection/__tests__/__snapshots__/Sidebar.spec.js.snap +312 -0
  182. package/src/components/Editor/Editor.js +497 -0
  183. package/src/components/Editor/EditorControlPane/EditorControl.js +452 -0
  184. package/src/components/Editor/EditorControlPane/EditorControlPane.js +269 -0
  185. package/src/components/Editor/EditorControlPane/Widget.js +384 -0
  186. package/src/components/Editor/EditorInterface.js +444 -0
  187. package/src/components/Editor/EditorPreviewPane/EditorPreview.js +40 -0
  188. package/src/components/Editor/EditorPreviewPane/EditorPreviewContent.js +74 -0
  189. package/src/components/Editor/EditorPreviewPane/EditorPreviewPane.js +333 -0
  190. package/src/components/Editor/EditorPreviewPane/PreviewHOC.js +33 -0
  191. package/src/components/Editor/EditorToolbar.js +691 -0
  192. package/src/components/Editor/__tests__/Editor.spec.js +221 -0
  193. package/src/components/Editor/__tests__/EditorToolbar.spec.js +120 -0
  194. package/src/components/Editor/__tests__/__snapshots__/Editor.spec.js.snap +45 -0
  195. package/src/components/Editor/__tests__/__snapshots__/EditorToolbar.spec.js.snap +4233 -0
  196. package/src/components/Editor/withWorkflow.js +61 -0
  197. package/src/components/EditorWidgets/Unknown/UnknownControl.js +17 -0
  198. package/src/components/EditorWidgets/Unknown/UnknownPreview.js +19 -0
  199. package/src/components/EditorWidgets/index.js +5 -0
  200. package/src/components/MediaLibrary/EmptyMessage.js +28 -0
  201. package/src/components/MediaLibrary/MediaLibrary.js +411 -0
  202. package/src/components/MediaLibrary/MediaLibraryButtons.js +136 -0
  203. package/src/components/MediaLibrary/MediaLibraryCard.js +128 -0
  204. package/src/components/MediaLibrary/MediaLibraryCardGrid.js +199 -0
  205. package/src/components/MediaLibrary/MediaLibraryHeader.js +48 -0
  206. package/src/components/MediaLibrary/MediaLibraryModal.js +200 -0
  207. package/src/components/MediaLibrary/MediaLibrarySearch.js +61 -0
  208. package/src/components/MediaLibrary/MediaLibraryTop.js +143 -0
  209. package/src/components/MediaLibrary/__tests__/MediaLibraryButtons.spec.js +45 -0
  210. package/src/components/MediaLibrary/__tests__/MediaLibraryCard.spec.js +49 -0
  211. package/src/components/MediaLibrary/__tests__/__snapshots__/MediaLibraryCard.spec.js.snap +264 -0
  212. package/src/components/UI/DragDrop.js +66 -0
  213. package/src/components/UI/ErrorBoundary.js +214 -0
  214. package/src/components/UI/FileUploadButton.js +24 -0
  215. package/src/components/UI/Modal.js +112 -0
  216. package/src/components/UI/Notifications.tsx +83 -0
  217. package/src/components/UI/SettingsDropdown.js +103 -0
  218. package/src/components/UI/__tests__/ErrorBoundary.spec.js +57 -0
  219. package/src/components/UI/index.js +6 -0
  220. package/src/components/Workflow/Workflow.js +169 -0
  221. package/src/components/Workflow/WorkflowCard.js +177 -0
  222. package/src/components/Workflow/WorkflowList.js +272 -0
  223. package/src/constants/__tests__/configSchema.spec.js +611 -0
  224. package/src/constants/collectionTypes.ts +2 -0
  225. package/src/constants/collectionViews.js +2 -0
  226. package/src/constants/commitProps.ts +2 -0
  227. package/src/constants/configSchema.js +441 -0
  228. package/src/constants/fieldInference.tsx +78 -0
  229. package/src/constants/publishModes.ts +22 -0
  230. package/src/constants/validationErrorTypes.js +6 -0
  231. package/src/formats/__tests__/formats.spec.js +87 -0
  232. package/src/formats/__tests__/frontmatter.spec.js +429 -0
  233. package/src/formats/__tests__/toml.spec.js +9 -0
  234. package/src/formats/__tests__/yaml.spec.js +162 -0
  235. package/src/formats/formats.ts +97 -0
  236. package/src/formats/frontmatter.ts +150 -0
  237. package/src/formats/helpers.ts +14 -0
  238. package/src/formats/json.ts +9 -0
  239. package/src/formats/toml.ts +33 -0
  240. package/src/formats/yaml.ts +58 -0
  241. package/src/index.js +8 -0
  242. package/src/integrations/index.js +35 -0
  243. package/src/integrations/providers/algolia/implementation.js +176 -0
  244. package/src/integrations/providers/assetStore/implementation.js +148 -0
  245. package/src/lib/__tests__/formatters.spec.js +751 -0
  246. package/src/lib/__tests__/i18n.spec.js +792 -0
  247. package/src/lib/__tests__/phrases.spec.js +119 -0
  248. package/src/lib/__tests__/registry.spec.js +261 -0
  249. package/src/lib/__tests__/serializeEntryValues.spec.js +22 -0
  250. package/src/lib/__tests__/urlHelper.spec.js +138 -0
  251. package/src/lib/consoleError.js +7 -0
  252. package/src/lib/formatters.ts +286 -0
  253. package/src/lib/i18n.ts +454 -0
  254. package/src/lib/phrases.js +8 -0
  255. package/src/lib/polyfill.js +9 -0
  256. package/src/lib/registry.js +312 -0
  257. package/src/lib/serializeEntryValues.js +75 -0
  258. package/src/lib/stega.ts +145 -0
  259. package/src/lib/textHelper.js +11 -0
  260. package/src/lib/urlHelper.ts +128 -0
  261. package/src/mediaLibrary.ts +51 -0
  262. package/src/reducers/__tests__/auth.spec.ts +38 -0
  263. package/src/reducers/__tests__/collections.spec.js +610 -0
  264. package/src/reducers/__tests__/config.spec.js +38 -0
  265. package/src/reducers/__tests__/entries.spec.js +694 -0
  266. package/src/reducers/__tests__/entryDraft.spec.js +297 -0
  267. package/src/reducers/__tests__/globalUI.js +43 -0
  268. package/src/reducers/__tests__/integrations.spec.ts +76 -0
  269. package/src/reducers/__tests__/mediaLibrary.spec.js +154 -0
  270. package/src/reducers/__tests__/medias.spec.ts +49 -0
  271. package/src/reducers/auth.ts +46 -0
  272. package/src/reducers/collections.ts +535 -0
  273. package/src/reducers/combinedReducer.ts +11 -0
  274. package/src/reducers/config.ts +38 -0
  275. package/src/reducers/cursors.js +36 -0
  276. package/src/reducers/deploys.ts +52 -0
  277. package/src/reducers/editorialWorkflow.ts +163 -0
  278. package/src/reducers/entries.ts +819 -0
  279. package/src/reducers/entryDraft.js +260 -0
  280. package/src/reducers/globalUI.ts +45 -0
  281. package/src/reducers/index.ts +82 -0
  282. package/src/reducers/integrations.ts +59 -0
  283. package/src/reducers/mediaLibrary.ts +296 -0
  284. package/src/reducers/medias.ts +66 -0
  285. package/src/reducers/notifications.ts +52 -0
  286. package/src/reducers/search.ts +111 -0
  287. package/src/reducers/status.ts +40 -0
  288. package/src/redux/index.ts +18 -0
  289. package/src/redux/middleware/waitUntilAction.ts +64 -0
  290. package/src/routing/__tests__/history.spec.ts +49 -0
  291. package/src/routing/history.ts +17 -0
  292. package/src/types/diacritics.d.ts +1 -0
  293. package/src/types/global.d.ts +8 -0
  294. package/src/types/immutable.ts +49 -0
  295. package/src/types/redux.ts +827 -0
  296. package/src/types/tomlify-j0.4.d.ts +13 -0
  297. package/src/valueObjects/AssetProxy.ts +48 -0
  298. package/src/valueObjects/EditorComponent.js +38 -0
  299. package/src/valueObjects/Entry.ts +63 -0
@@ -0,0 +1,827 @@
1
+ import type { Action } from 'redux';
2
+ import type { StaticallyTypedRecord } from './immutable';
3
+ import type { Map, List, OrderedMap, Set } from 'immutable';
4
+ import type { FILES, FOLDER } from '../constants/collectionTypes';
5
+ import type { MediaFile as BackendMediaFile } from '../backend';
6
+ import type { Auth } from '../reducers/auth';
7
+ import type { Status } from '../reducers/status';
8
+ import type { Medias } from '../reducers/medias';
9
+ import type { Deploys } from '../reducers/deploys';
10
+ import type { Search } from '../reducers/search';
11
+ import type { GlobalUI } from '../reducers/globalUI';
12
+ import type { NotificationsState } from '../reducers/notifications';
13
+ import type { formatExtensions } from '../formats/formats';
14
+
15
+ export type CmsBackendType =
16
+ | 'azure'
17
+ | 'git-gateway'
18
+ | 'github'
19
+ | 'gitlab'
20
+ | 'gitea'
21
+ | 'bitbucket'
22
+ | 'test-repo'
23
+ | 'proxy';
24
+
25
+ export type CmsMapWidgetType = 'Point' | 'LineString' | 'Polygon';
26
+
27
+ export type CmsMarkdownWidgetButton =
28
+ | 'bold'
29
+ | 'italic'
30
+ | 'code'
31
+ | 'link'
32
+ | 'heading-one'
33
+ | 'heading-two'
34
+ | 'heading-three'
35
+ | 'heading-four'
36
+ | 'heading-five'
37
+ | 'heading-six'
38
+ | 'quote'
39
+ | 'code-block'
40
+ | 'bulleted-list'
41
+ | 'numbered-list';
42
+
43
+ export interface CmsSelectWidgetOptionObject {
44
+ label: string;
45
+ value: unknown;
46
+ }
47
+
48
+ export type CmsCollectionFormatType =
49
+ | 'yml'
50
+ | 'yaml'
51
+ | 'toml'
52
+ | 'json'
53
+ | 'frontmatter'
54
+ | 'yaml-frontmatter'
55
+ | 'toml-frontmatter'
56
+ | 'json-frontmatter';
57
+
58
+ export type CmsAuthScope = 'repo' | 'public_repo';
59
+
60
+ export type CmsPublishMode = 'simple' | 'editorial_workflow';
61
+
62
+ export type CmsSlugEncoding = 'unicode' | 'ascii';
63
+
64
+ export interface CmsI18nConfig {
65
+ structure: 'multiple_folders' | 'multiple_files' | 'single_file';
66
+ locales: string[];
67
+ default_locale?: string;
68
+ }
69
+
70
+ export interface CmsFieldBase {
71
+ name: string;
72
+ label?: string;
73
+ required?: boolean;
74
+ hint?: string;
75
+ pattern?: [string, string];
76
+ i18n?: boolean | 'translate' | 'duplicate' | 'none';
77
+ media_folder?: string;
78
+ public_folder?: string;
79
+ comment?: string;
80
+ }
81
+
82
+ export interface CmsFieldBoolean {
83
+ widget: 'boolean';
84
+ default?: boolean;
85
+ }
86
+
87
+ export interface CmsFieldCode {
88
+ widget: 'code';
89
+ default?: unknown;
90
+
91
+ default_language?: string;
92
+ allow_language_selection?: boolean;
93
+ keys?: { code: string; lang: string };
94
+ output_code_only?: boolean;
95
+ }
96
+
97
+ export interface CmsFieldColor {
98
+ widget: 'color';
99
+ default?: string;
100
+
101
+ allowInput?: boolean;
102
+ enableAlpha?: boolean;
103
+ }
104
+
105
+ export interface CmsFieldDateTime {
106
+ widget: 'datetime';
107
+ default?: string;
108
+
109
+ format?: string;
110
+ date_format?: boolean | string;
111
+ time_format?: boolean | string;
112
+ picker_utc?: boolean;
113
+
114
+ /**
115
+ * @deprecated Use date_format instead
116
+ */
117
+ dateFormat?: boolean | string;
118
+ /**
119
+ * @deprecated Use time_format instead
120
+ */
121
+ timeFormat?: boolean | string;
122
+ /**
123
+ * @deprecated Use picker_utc instead
124
+ */
125
+ pickerUtc?: boolean;
126
+ }
127
+
128
+ export interface CmsFieldFileOrImage {
129
+ widget: 'file' | 'image';
130
+ default?: string;
131
+
132
+ media_library?: CmsMediaLibrary;
133
+ allow_multiple?: boolean;
134
+ config?: unknown;
135
+ }
136
+
137
+ export interface CmsFieldObject {
138
+ widget: 'object';
139
+ default?: unknown;
140
+
141
+ collapsed?: boolean;
142
+ summary?: string;
143
+ fields: CmsField[];
144
+ }
145
+
146
+ export interface CmsFieldList {
147
+ widget: 'list';
148
+ default?: unknown;
149
+
150
+ allow_add?: boolean;
151
+ allow_remove?: boolean;
152
+ allow_reorder?: boolean;
153
+ collapsed?: boolean;
154
+ summary?: string;
155
+ minimize_collapsed?: boolean;
156
+ label_singular?: string;
157
+ field?: CmsField;
158
+ fields?: CmsField[];
159
+ max?: number;
160
+ min?: number;
161
+ add_to_top?: boolean;
162
+ types?: (CmsFieldBase & CmsFieldObject)[];
163
+ }
164
+
165
+ export interface CmsFieldMap {
166
+ widget: 'map';
167
+ default?: string;
168
+
169
+ decimals?: number;
170
+ type?: CmsMapWidgetType;
171
+ }
172
+
173
+ export interface CmsFieldMarkdown {
174
+ widget: 'markdown';
175
+ default?: string;
176
+
177
+ minimal?: boolean;
178
+ buttons?: CmsMarkdownWidgetButton[];
179
+ editor_components?: string[];
180
+ modes?: ('raw' | 'rich_text')[];
181
+
182
+ /**
183
+ * @deprecated Use editor_components instead
184
+ */
185
+ editorComponents?: string[];
186
+ }
187
+
188
+ export interface CmsFieldNumber {
189
+ widget: 'number';
190
+ default?: string | number;
191
+
192
+ value_type?: 'int' | 'float' | string;
193
+ min?: number;
194
+ max?: number;
195
+
196
+ step?: number;
197
+
198
+ /**
199
+ * @deprecated Use valueType instead
200
+ */
201
+ valueType?: 'int' | 'float' | string;
202
+ }
203
+
204
+ export interface CmsFieldSelect {
205
+ widget: 'select';
206
+ default?: string | string[];
207
+
208
+ options: string[] | CmsSelectWidgetOptionObject[];
209
+ multiple?: boolean;
210
+ min?: number;
211
+ max?: number;
212
+ }
213
+
214
+ export interface CmsFieldRelation {
215
+ widget: 'relation';
216
+ default?: string | string[];
217
+
218
+ collection: string;
219
+ value_field: string;
220
+ search_fields: string[];
221
+ file?: string;
222
+ display_fields?: string[];
223
+ multiple?: boolean;
224
+ options_length?: number;
225
+
226
+ /**
227
+ * @deprecated Use value_field instead
228
+ */
229
+ valueField?: string;
230
+ /**
231
+ * @deprecated Use search_fields instead
232
+ */
233
+ searchFields?: string[];
234
+ /**
235
+ * @deprecated Use display_fields instead
236
+ */
237
+ displayFields?: string[];
238
+ /**
239
+ * @deprecated Use options_length instead
240
+ */
241
+ optionsLength?: number;
242
+ }
243
+
244
+ export interface CmsFieldHidden {
245
+ widget: 'hidden';
246
+ default?: unknown;
247
+ }
248
+
249
+ export interface CmsFieldStringOrText {
250
+ // This is the default widget, so declaring its type is optional.
251
+ widget?: 'string' | 'text';
252
+ default?: string;
253
+ visualEditing?: boolean;
254
+ }
255
+
256
+ export interface CmsFieldMeta {
257
+ name: string;
258
+ label: string;
259
+ widget: string;
260
+ required: boolean;
261
+ index_file: string;
262
+ meta: boolean;
263
+ }
264
+
265
+ export type CmsField = CmsFieldBase &
266
+ (
267
+ | CmsFieldBoolean
268
+ | CmsFieldCode
269
+ | CmsFieldColor
270
+ | CmsFieldDateTime
271
+ | CmsFieldFileOrImage
272
+ | CmsFieldList
273
+ | CmsFieldMap
274
+ | CmsFieldMarkdown
275
+ | CmsFieldNumber
276
+ | CmsFieldObject
277
+ | CmsFieldRelation
278
+ | CmsFieldSelect
279
+ | CmsFieldHidden
280
+ | CmsFieldStringOrText
281
+ | CmsFieldMeta
282
+ );
283
+
284
+ export interface CmsCollectionFile {
285
+ name: string;
286
+ label: string;
287
+ file: string;
288
+ fields: CmsField[];
289
+ label_singular?: string;
290
+ description?: string;
291
+ preview_path?: string;
292
+ preview_path_date_field?: string;
293
+ i18n?: boolean | CmsI18nConfig;
294
+ media_folder?: string;
295
+ public_folder?: string;
296
+ }
297
+
298
+ export interface ViewFilter {
299
+ label: string;
300
+ field: string;
301
+ pattern: string;
302
+ id: string;
303
+ }
304
+
305
+ export interface ViewGroup {
306
+ label: string;
307
+ field: string;
308
+ pattern: string;
309
+ id: 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
+ create?: boolean;
331
+ delete?: boolean;
332
+ editor?: {
333
+ preview?: boolean;
334
+ visualEditing?: boolean;
335
+ };
336
+ publish?: boolean;
337
+ nested?: {
338
+ depth: number;
339
+ };
340
+ type: typeof FOLDER | typeof FILES;
341
+ meta?: { path?: { label: string; widget: string; index_file?: string } };
342
+
343
+ /**
344
+ * It accepts the following values: yml, yaml, toml, json, md, markdown, html
345
+ *
346
+ * You may also specify a custom extension not included in the list above, by specifying the format value.
347
+ */
348
+ extension?: string;
349
+ format?: CmsCollectionFormatType;
350
+
351
+ frontmatter_delimiter?: string[] | string;
352
+ fields?: CmsField[];
353
+ filter?: { field: string; value: unknown };
354
+ path?: string;
355
+ media_folder?: string;
356
+ public_folder?: string;
357
+ sortable_fields?: (string | SortableField)[];
358
+ view_filters?: ViewFilter[];
359
+ view_groups?: ViewGroup[];
360
+ i18n?: boolean | CmsI18nConfig;
361
+
362
+ /**
363
+ * @deprecated Use sortable_fields instead
364
+ */
365
+ sortableFields?: (string | SortableField)[];
366
+ }
367
+
368
+ export interface CmsBackend {
369
+ name: CmsBackendType;
370
+ auth_scope?: CmsAuthScope;
371
+ open_authoring?: boolean;
372
+ repo?: string;
373
+ branch?: string;
374
+ api_root?: string;
375
+ site_domain?: string;
376
+ base_url?: string;
377
+ auth_endpoint?: string;
378
+ cms_label_prefix?: string;
379
+ squash_merges?: boolean;
380
+ proxy_url?: string;
381
+ commit_messages?: {
382
+ create?: string;
383
+ update?: string;
384
+ delete?: string;
385
+ uploadMedia?: string;
386
+ deleteMedia?: string;
387
+ openAuthoring?: string;
388
+ };
389
+ }
390
+
391
+ export interface CmsSlug {
392
+ encoding?: CmsSlugEncoding;
393
+ clean_accents?: boolean;
394
+ sanitize_replacement?: string;
395
+ }
396
+
397
+ export interface CmsLocalBackend {
398
+ url?: string;
399
+ allowed_hosts?: string[];
400
+ }
401
+
402
+ export interface CmsConfig {
403
+ backend: CmsBackend;
404
+ collections: CmsCollection[];
405
+ locale?: string;
406
+ site_url?: string;
407
+ display_url?: string;
408
+ logo_url?: string; // Deprecated, replaced by `logo.src`
409
+ logo?: {
410
+ src: string;
411
+ show_in_header?: boolean;
412
+ };
413
+ show_preview_links?: boolean;
414
+ media_folder?: string;
415
+ public_folder?: string;
416
+ media_folder_relative?: boolean;
417
+ media_library?: CmsMediaLibrary;
418
+ publish_mode?: CmsPublishMode;
419
+ load_config_file?: boolean;
420
+ integrations?: {
421
+ hooks: string[];
422
+ provider: string;
423
+ collections?: '*' | string[];
424
+ applicationID?: string;
425
+ apiKey?: string;
426
+ getSignedFormURL?: string;
427
+ }[];
428
+ slug?: CmsSlug;
429
+ i18n?: CmsI18nConfig;
430
+ local_backend?: boolean | CmsLocalBackend;
431
+ editor?: {
432
+ preview?: boolean;
433
+ };
434
+ error: string | undefined;
435
+ isFetching: boolean;
436
+ }
437
+
438
+ export type CmsMediaLibraryOptions = unknown; // TODO: type properly
439
+
440
+ export interface CmsMediaLibrary {
441
+ name: string;
442
+ config?: CmsMediaLibraryOptions;
443
+ }
444
+
445
+ export type SlugConfig = StaticallyTypedRecord<{
446
+ encoding: string;
447
+ clean_accents: boolean;
448
+ sanitize_replacement: string;
449
+ }>;
450
+
451
+ type BackendObject = {
452
+ name: string;
453
+ repo?: string | null;
454
+ open_authoring?: boolean;
455
+ branch?: string;
456
+ api_root?: string;
457
+ squash_merges?: boolean;
458
+ use_graphql?: boolean;
459
+ preview_context?: string;
460
+ identity_url?: string;
461
+ gateway_url?: string;
462
+ large_media_url?: string;
463
+ use_large_media_transforms_in_media_library?: boolean;
464
+ commit_messages: Map<string, string>;
465
+ };
466
+
467
+ type Backend = StaticallyTypedRecord<Backend> & BackendObject;
468
+
469
+ export type Config = StaticallyTypedRecord<{
470
+ backend: Backend;
471
+ media_folder: string;
472
+ public_folder: string;
473
+ publish_mode?: string;
474
+ media_library: StaticallyTypedRecord<{ name: string }> & { name: string };
475
+ locale?: string;
476
+ slug: SlugConfig;
477
+ media_folder_relative?: boolean;
478
+ base_url?: string;
479
+ site_id?: string;
480
+ site_url?: string;
481
+ show_preview_links?: boolean;
482
+ isFetching?: boolean;
483
+ integrations: List<Integration>;
484
+ collections: List<StaticallyTypedRecord<{ name: string }>>;
485
+ }>;
486
+
487
+ type PagesObject = {
488
+ [collection: string]: { isFetching: boolean; page: number; ids: List<string> };
489
+ };
490
+
491
+ type Pages = StaticallyTypedRecord<PagesObject>;
492
+
493
+ type EntitiesObject = { [key: string]: EntryMap };
494
+
495
+ export enum SortDirection {
496
+ Ascending = 'Ascending',
497
+ Descending = 'Descending',
498
+ None = 'None',
499
+ }
500
+
501
+ export type SortObject = { key: string; direction: SortDirection };
502
+
503
+ export type SortMap = OrderedMap<string, StaticallyTypedRecord<SortObject>>;
504
+
505
+ export type Sort = Map<string, SortMap>;
506
+
507
+ export type FilterMap = StaticallyTypedRecord<ViewFilter & { active: boolean }>;
508
+
509
+ export type GroupMap = StaticallyTypedRecord<ViewGroup & { active: boolean }>;
510
+
511
+ export type Filter = Map<string, Map<string, FilterMap>>; // collection.field.active
512
+
513
+ export type Group = Map<string, Map<string, GroupMap>>; // collection.field.active
514
+
515
+ export type GroupOfEntries = {
516
+ id: string;
517
+ label: string;
518
+ value: string | boolean | undefined;
519
+ paths: Set<string>;
520
+ };
521
+
522
+ export type Entities = StaticallyTypedRecord<EntitiesObject>;
523
+
524
+ export type Entries = StaticallyTypedRecord<{
525
+ pages: Pages & PagesObject;
526
+ entities: Entities & EntitiesObject;
527
+ sort: Sort;
528
+ filter: Filter;
529
+ group: Group;
530
+ viewStyle: string;
531
+ }>;
532
+
533
+ export type EditorialWorkflow = StaticallyTypedRecord<{
534
+ pages: Pages & PagesObject;
535
+ entities: Entities & EntitiesObject;
536
+ }>;
537
+
538
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
539
+ export type EntryObject = {
540
+ path: string;
541
+ slug: string;
542
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
543
+ data: any;
544
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
545
+ i18n?: any;
546
+ collection: string;
547
+ mediaFiles: List<MediaFileMap>;
548
+ newRecord: boolean;
549
+ author?: string;
550
+ updatedOn?: string;
551
+ status: string;
552
+ meta: StaticallyTypedRecord<{ path: string }>;
553
+ };
554
+
555
+ export type EntryMap = StaticallyTypedRecord<EntryObject>;
556
+
557
+ export type Entry = EntryMap & EntryObject;
558
+
559
+ export type FieldsErrors = StaticallyTypedRecord<{ [field: string]: { type: string }[] }>;
560
+
561
+ export type EntryDraft = StaticallyTypedRecord<{
562
+ entry: Entry;
563
+ fieldsErrors: FieldsErrors;
564
+ fieldsMetaData?: Map<string, Map<string, string>>;
565
+ }>;
566
+
567
+ export type EntryField = StaticallyTypedRecord<{
568
+ field?: EntryField;
569
+ fields?: List<EntryField>;
570
+ types?: List<EntryField>;
571
+ widget: string;
572
+ name: string;
573
+ default: string | null | boolean | List<unknown>;
574
+ media_folder?: string;
575
+ public_folder?: string;
576
+ comment?: string;
577
+ meta?: boolean;
578
+ i18n: 'translate' | 'duplicate' | 'none';
579
+ }>;
580
+
581
+ export type EntryFields = List<EntryField>;
582
+
583
+ export type FilterRule = StaticallyTypedRecord<{
584
+ value: string;
585
+ field: string;
586
+ }>;
587
+
588
+ export type CollectionFile = StaticallyTypedRecord<{
589
+ file: string;
590
+ name: string;
591
+ fields: EntryFields;
592
+ label: string;
593
+ media_folder?: string;
594
+ public_folder?: string;
595
+ preview_path?: string;
596
+ preview_path_date_field?: string;
597
+ }>;
598
+
599
+ export type CollectionFiles = List<CollectionFile>;
600
+
601
+ type NestedObject = { depth: number; subfolders?: boolean };
602
+
603
+ type Nested = StaticallyTypedRecord<NestedObject>;
604
+
605
+ type PathObject = { label: string; widget: string; index_file: string };
606
+
607
+ type MetaObject = {
608
+ path?: StaticallyTypedRecord<PathObject>;
609
+ };
610
+
611
+ type Meta = StaticallyTypedRecord<MetaObject>;
612
+
613
+ type i18n = StaticallyTypedRecord<{
614
+ structure: string;
615
+ locales: string[];
616
+ default_locale: string;
617
+ }>;
618
+
619
+ export type Format = keyof typeof formatExtensions | string;
620
+
621
+ type CollectionObject = {
622
+ name: string;
623
+ folder?: string;
624
+ files?: CollectionFiles;
625
+ fields: EntryFields;
626
+ isFetching: boolean;
627
+ media_folder?: string;
628
+ public_folder?: string;
629
+ preview_path?: string;
630
+ preview_path_date_field?: string;
631
+ summary?: string;
632
+ filter?: FilterRule;
633
+ type: 'file_based_collection' | 'folder_based_collection';
634
+ extension?: string;
635
+ format?: Format;
636
+ frontmatter_delimiter?: List<string> | string | [string, string];
637
+ create?: boolean;
638
+ delete?: boolean;
639
+ identifier_field?: string;
640
+ path?: string;
641
+ slug?: string;
642
+ label_singular?: string;
643
+ label: string;
644
+ sortable_fields: List<StaticallyTypedRecord<SortableField>>;
645
+ view_filters: List<StaticallyTypedRecord<ViewFilter>>;
646
+ view_groups: List<StaticallyTypedRecord<ViewGroup>>;
647
+ nested?: Nested;
648
+ meta?: Meta;
649
+ i18n: i18n;
650
+ };
651
+
652
+ export type Collection = StaticallyTypedRecord<CollectionObject>;
653
+
654
+ export type Collections = StaticallyTypedRecord<{ [path: string]: Collection & CollectionObject }>;
655
+
656
+ export interface MediaLibraryInstance {
657
+ show: (args: {
658
+ id?: string;
659
+ value?: string;
660
+ config: StaticallyTypedRecord<{}>;
661
+ allowMultiple?: boolean;
662
+ imagesOnly?: boolean;
663
+ }) => void;
664
+ hide: () => void;
665
+ onClearControl: (args: { id: string }) => void;
666
+ onRemoveControl: (args: { id: string }) => void;
667
+ enableStandalone: () => boolean;
668
+ }
669
+
670
+ export type DisplayURL = { id: string; path: string } | string;
671
+
672
+ export type MediaFile = BackendMediaFile & { key?: string };
673
+
674
+ export type MediaFileMap = StaticallyTypedRecord<MediaFile>;
675
+
676
+ type DisplayURLStateObject = {
677
+ isFetching: boolean;
678
+ url?: string;
679
+ err?: Error;
680
+ };
681
+
682
+ export type DisplayURLState = StaticallyTypedRecord<DisplayURLStateObject>;
683
+
684
+ interface DisplayURLsObject {
685
+ [id: string]: DisplayURLState;
686
+ }
687
+
688
+ export type MediaLibrary = StaticallyTypedRecord<{
689
+ externalLibrary?: MediaLibraryInstance;
690
+ files: MediaFile[];
691
+ displayURLs: StaticallyTypedRecord<DisplayURLsObject> & DisplayURLsObject;
692
+ isLoading: boolean;
693
+ }>;
694
+
695
+ export type Hook = string | boolean;
696
+
697
+ export type Integrations = StaticallyTypedRecord<{
698
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
699
+ hooks: { [collectionOrHook: string]: any };
700
+ }>;
701
+
702
+ export type Cursors = StaticallyTypedRecord<{}>;
703
+
704
+ export interface State {
705
+ auth: Auth;
706
+ config: CmsConfig;
707
+ cursors: Cursors;
708
+ collections: Collections;
709
+ deploys: Deploys;
710
+ globalUI: GlobalUI;
711
+ editorialWorkflow: EditorialWorkflow;
712
+ entries: Entries;
713
+ entryDraft: EntryDraft;
714
+ integrations: Integrations;
715
+ medias: Medias;
716
+ mediaLibrary: MediaLibrary;
717
+ search: Search;
718
+ status: Status;
719
+ notifications: NotificationsState;
720
+ }
721
+
722
+ export interface Integration {
723
+ hooks: string[];
724
+ collections?: string | string[];
725
+ provider: string;
726
+ }
727
+
728
+ interface EntryPayload {
729
+ collection: string;
730
+ }
731
+
732
+ export interface EntryRequestPayload extends EntryPayload {
733
+ slug: string;
734
+ }
735
+
736
+ export interface EntrySuccessPayload extends EntryPayload {
737
+ entry: EntryObject;
738
+ }
739
+
740
+ export interface EntryFailurePayload extends EntryPayload {
741
+ slug: string;
742
+ error: Error;
743
+ }
744
+
745
+ export interface EntryDeletePayload {
746
+ entrySlug: string;
747
+ collectionName: string;
748
+ }
749
+
750
+ export type EntriesRequestPayload = EntryPayload;
751
+
752
+ export interface EntriesSuccessPayload extends EntryPayload {
753
+ entries: EntryObject[];
754
+ append: boolean;
755
+ page: number;
756
+ }
757
+ export interface EntriesSortRequestPayload extends EntryPayload {
758
+ key: string;
759
+ direction: string;
760
+ }
761
+
762
+ export interface EntriesSortFailurePayload extends EntriesSortRequestPayload {
763
+ error: Error;
764
+ }
765
+
766
+ export interface EntriesFilterRequestPayload {
767
+ filter: ViewFilter;
768
+ collection: string;
769
+ }
770
+
771
+ export interface EntriesFilterFailurePayload {
772
+ filter: ViewFilter;
773
+ collection: string;
774
+ error: Error;
775
+ }
776
+
777
+ export interface EntriesGroupRequestPayload {
778
+ group: ViewGroup;
779
+ collection: string;
780
+ }
781
+
782
+ export interface EntriesGroupFailurePayload {
783
+ group: ViewGroup;
784
+ collection: string;
785
+ error: Error;
786
+ }
787
+
788
+ export interface ChangeViewStylePayload {
789
+ style: string;
790
+ }
791
+
792
+ export interface EntriesMoveSuccessPayload extends EntryPayload {
793
+ entries: EntryObject[];
794
+ }
795
+
796
+ export interface EntriesAction extends Action<string> {
797
+ payload:
798
+ | EntryRequestPayload
799
+ | EntrySuccessPayload
800
+ | EntryFailurePayload
801
+ | EntriesSuccessPayload
802
+ | EntriesRequestPayload
803
+ | EntryDeletePayload;
804
+ meta: {
805
+ collection: string;
806
+ };
807
+ }
808
+
809
+ export interface EditorialWorkflowAction extends Action<string> {
810
+ payload?: CmsConfig & {
811
+ collection: string;
812
+ entry: { slug: string };
813
+ } & {
814
+ collection: string;
815
+ slug: string;
816
+ } & {
817
+ pages: [];
818
+ entries: { collection: string; slug: string }[];
819
+ } & {
820
+ collection: string;
821
+ entry: StaticallyTypedRecord<{ slug: string }>;
822
+ } & {
823
+ collection: string;
824
+ slug: string;
825
+ newStatus: string;
826
+ };
827
+ }