@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
package/index.d.ts ADDED
@@ -0,0 +1,618 @@
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
+ comment?: string;
64
+ }
65
+
66
+ export interface CmsFieldBoolean {
67
+ widget: 'boolean';
68
+ default?: boolean;
69
+ }
70
+
71
+ export interface CmsFieldCode {
72
+ widget: 'code';
73
+ default?: any;
74
+
75
+ default_language?: string;
76
+ allow_language_selection?: boolean;
77
+ keys?: { code: string; lang: string };
78
+ output_code_only?: boolean;
79
+ }
80
+
81
+ export interface CmsFieldColor {
82
+ widget: 'color';
83
+ default?: string;
84
+
85
+ allowInput?: boolean;
86
+ enableAlpha?: boolean;
87
+ }
88
+
89
+ export interface CmsFieldDateTime {
90
+ widget: 'datetime';
91
+ default?: string;
92
+
93
+ format?: string;
94
+ date_format?: boolean | string;
95
+ time_format?: boolean | string;
96
+ picker_utc?: boolean;
97
+
98
+ /**
99
+ * @deprecated Use date_format instead
100
+ */
101
+ dateFormat?: boolean | string;
102
+ /**
103
+ * @deprecated Use time_format instead
104
+ */
105
+ timeFormat?: boolean | string;
106
+ /**
107
+ * @deprecated Use picker_utc instead
108
+ */
109
+ pickerUtc?: boolean;
110
+ }
111
+
112
+ export interface CmsFieldFileOrImage {
113
+ widget: 'file' | 'image';
114
+ default?: string;
115
+
116
+ media_library?: CmsMediaLibrary;
117
+ allow_multiple?: boolean;
118
+ choose_url?: boolean;
119
+ config?: any;
120
+ }
121
+
122
+ export interface CmsFieldObject {
123
+ widget: 'object';
124
+ default?: any;
125
+
126
+ collapsed?: boolean;
127
+ summary?: string;
128
+ fields: CmsField[];
129
+ }
130
+
131
+ export interface CmsFieldList {
132
+ widget: 'list';
133
+ default?: any;
134
+
135
+ allow_add?: boolean;
136
+ allow_remove?: boolean;
137
+ allow_reorder?: boolean;
138
+ collapsed?: boolean;
139
+ summary?: string;
140
+ minimize_collapsed?: boolean;
141
+ label_singular?: string;
142
+ field?: CmsField;
143
+ fields?: CmsField[];
144
+ max?: number;
145
+ min?: number;
146
+ add_to_top?: boolean;
147
+ types?: (CmsFieldBase & CmsFieldObject)[];
148
+ }
149
+
150
+ export interface CmsFieldMap {
151
+ widget: 'map';
152
+ default?: string;
153
+
154
+ decimals?: number;
155
+ type?: CmsMapWidgetType;
156
+ }
157
+
158
+ export interface CmsFieldMarkdown {
159
+ widget: 'markdown';
160
+ default?: string;
161
+
162
+ minimal?: boolean;
163
+ buttons?: CmsMarkdownWidgetButton[];
164
+ editor_components?: string[];
165
+ modes?: ('raw' | 'rich_text')[];
166
+
167
+ /**
168
+ * @deprecated Use editor_components instead
169
+ */
170
+ editorComponents?: string[];
171
+ }
172
+
173
+ export interface CmsFieldNumber {
174
+ widget: 'number';
175
+ default?: string | number;
176
+
177
+ value_type?: 'int' | 'float' | string;
178
+ min?: number;
179
+ max?: number;
180
+
181
+ step?: number;
182
+
183
+ /**
184
+ * @deprecated Use valueType instead
185
+ */
186
+ valueType?: 'int' | 'float' | string;
187
+ }
188
+
189
+ export interface CmsFieldSelect {
190
+ widget: 'select';
191
+ default?: string | string[];
192
+
193
+ options: string[] | CmsSelectWidgetOptionObject[];
194
+ multiple?: boolean;
195
+ min?: number;
196
+ max?: number;
197
+ }
198
+
199
+ export interface CmsFieldRelation {
200
+ widget: 'relation';
201
+ default?: string | string[];
202
+
203
+ collection: string;
204
+ value_field: string;
205
+ search_fields: string[];
206
+ file?: string;
207
+ display_fields?: string[];
208
+ multiple?: boolean;
209
+ options_length?: number;
210
+
211
+ /**
212
+ * @deprecated Use value_field instead
213
+ */
214
+ valueField?: string;
215
+ /**
216
+ * @deprecated Use search_fields instead
217
+ */
218
+ searchFields?: string[];
219
+ /**
220
+ * @deprecated Use display_fields instead
221
+ */
222
+ displayFields?: string[];
223
+ /**
224
+ * @deprecated Use options_length instead
225
+ */
226
+ optionsLength?: number;
227
+ }
228
+
229
+ export interface CmsFieldHidden {
230
+ widget: 'hidden';
231
+ default?: any;
232
+ }
233
+
234
+ export interface CmsFieldStringOrText {
235
+ // This is the default widget, so declaring its type is optional.
236
+ widget?: 'string' | 'text';
237
+ default?: string;
238
+ visualEditing?: boolean;
239
+ }
240
+
241
+ export interface CmsFieldMeta {
242
+ name: string;
243
+ label: string;
244
+ widget: string;
245
+ required: boolean;
246
+ index_file: string;
247
+ meta: boolean;
248
+ }
249
+
250
+ export type CmsField = CmsFieldBase &
251
+ (
252
+ | CmsFieldBoolean
253
+ | CmsFieldCode
254
+ | CmsFieldColor
255
+ | CmsFieldDateTime
256
+ | CmsFieldFileOrImage
257
+ | CmsFieldList
258
+ | CmsFieldMap
259
+ | CmsFieldMarkdown
260
+ | CmsFieldNumber
261
+ | CmsFieldObject
262
+ | CmsFieldRelation
263
+ | CmsFieldSelect
264
+ | CmsFieldHidden
265
+ | CmsFieldStringOrText
266
+ | CmsFieldMeta
267
+ );
268
+
269
+ export interface CmsCollectionFile {
270
+ name: string;
271
+ label: string;
272
+ file: string;
273
+ fields: CmsField[];
274
+ label_singular?: string;
275
+ description?: string;
276
+ preview_path?: string;
277
+ preview_path_date_field?: string;
278
+ i18n?: boolean | CmsI18nConfig;
279
+ media_folder?: string;
280
+ public_folder?: string;
281
+ }
282
+
283
+ export interface ViewFilter {
284
+ label: string;
285
+ field: string;
286
+ pattern: string;
287
+ }
288
+
289
+ export interface ViewGroup {
290
+ label: string;
291
+ field: string;
292
+ pattern?: string;
293
+ }
294
+
295
+ export interface SortableField {
296
+ field: string;
297
+ label?: string;
298
+ default_sort?: boolean | 'asc' | 'desc';
299
+ }
300
+
301
+ export interface CmsCollection {
302
+ name: string;
303
+ label: string;
304
+ label_singular?: string;
305
+ description?: string;
306
+ folder?: string;
307
+ files?: CmsCollectionFile[];
308
+ identifier_field?: string;
309
+ summary?: string;
310
+ slug?: string;
311
+ preview_path?: string;
312
+ preview_path_date_field?: string;
313
+ create?: boolean;
314
+ delete?: boolean;
315
+ hide?: boolean;
316
+ editor?: {
317
+ preview?: boolean;
318
+ visualEditing?: boolean;
319
+ };
320
+ publish?: boolean;
321
+ nested?: {
322
+ depth: number;
323
+ subfolders?: boolean;
324
+ };
325
+ meta?: { path?: { label: string; widget: string; index_file?: string } };
326
+
327
+ /**
328
+ * It accepts the following values: yml, yaml, toml, json, md, markdown, html
329
+ *
330
+ * You may also specify a custom extension not included in the list above, by specifying the format value.
331
+ */
332
+ extension?: string;
333
+ format?: CmsCollectionFormatType;
334
+
335
+ frontmatter_delimiter?: string[] | string;
336
+ fields?: CmsField[];
337
+ filter?: { field: string; value: any };
338
+ path?: string;
339
+ media_folder?: string;
340
+ public_folder?: string;
341
+ sortable_fields?: (string | SortableField)[];
342
+ view_filters?: ViewFilter[];
343
+ view_groups?: ViewGroup[];
344
+ i18n?: boolean | CmsI18nConfig;
345
+
346
+ /**
347
+ * @deprecated Use sortable_fields instead
348
+ */
349
+ sortableFields?: (string | SortableField)[];
350
+ }
351
+
352
+ export interface CmsBackend {
353
+ name: CmsBackendType;
354
+ auth_scope?: CmsAuthScope;
355
+ open_authoring?: boolean;
356
+ always_fork?: boolean;
357
+ repo?: string;
358
+ branch?: string;
359
+ api_root?: string;
360
+ site_domain?: string;
361
+ base_url?: string;
362
+ auth_endpoint?: string;
363
+ app_id?: string;
364
+ auth_type?: 'implicit' | 'pkce';
365
+ cms_label_prefix?: string;
366
+ squash_merges?: boolean;
367
+ proxy_url?: string;
368
+ commit_messages?: {
369
+ create?: string;
370
+ update?: string;
371
+ delete?: string;
372
+ uploadMedia?: string;
373
+ deleteMedia?: string;
374
+ openAuthoring?: string;
375
+ };
376
+ }
377
+
378
+ export interface CmsSlug {
379
+ encoding?: CmsSlugEncoding;
380
+ clean_accents?: boolean;
381
+ sanitize_replacement?: string;
382
+ }
383
+
384
+ export interface CmsLocalBackend {
385
+ url?: string;
386
+ allowed_hosts?: string[];
387
+ }
388
+
389
+ export interface CmsConfig {
390
+ backend: CmsBackend;
391
+ collections: CmsCollection[];
392
+ locale?: string;
393
+ site_url?: string;
394
+ display_url?: string;
395
+ logo_url?: string; // Deprecated, replaced by `logo.src`
396
+ logo?: {
397
+ src: string;
398
+ show_in_header?: boolean;
399
+ };
400
+ show_preview_links?: boolean;
401
+ media_folder?: string;
402
+ public_folder?: string;
403
+ media_folder_relative?: boolean;
404
+ media_library?: CmsMediaLibrary;
405
+ publish_mode?: CmsPublishMode;
406
+ load_config_file?: boolean;
407
+ integrations?: {
408
+ hooks: string[];
409
+ provider: string;
410
+ collections?: '*' | string[];
411
+ applicationID?: string;
412
+ apiKey?: string;
413
+ getSignedFormURL?: string;
414
+ }[];
415
+ slug?: CmsSlug;
416
+ i18n?: CmsI18nConfig;
417
+ local_backend?: boolean | CmsLocalBackend;
418
+ editor?: {
419
+ preview?: boolean;
420
+ };
421
+ }
422
+
423
+ export interface InitOptions {
424
+ config: CmsConfig;
425
+ }
426
+
427
+ export type EditorComponentField =
428
+ | ({
429
+ name: string;
430
+ label: string;
431
+ } & {
432
+ widget: Omit<string, 'list'>;
433
+ })
434
+ | {
435
+ widget: 'list';
436
+ /**
437
+ * Used if widget === "list" to create a flat array
438
+ */
439
+ field?: EditorComponentField;
440
+ /**
441
+ * Used if widget === "list" to create an array of objects
442
+ */
443
+ fields?: EditorComponentField[];
444
+ };
445
+
446
+ export interface EditorComponentOptions {
447
+ id: string;
448
+ label: string;
449
+ fields?: EditorComponentField[];
450
+ pattern: RegExp;
451
+ allow_add?: boolean;
452
+ fromBlock: (match: RegExpMatchArray) => any;
453
+ toBlock: (data: any) => string;
454
+ toPreview: (data: any) => string | JSX.Element;
455
+ }
456
+
457
+ export interface PreviewStyleOptions {
458
+ raw: boolean;
459
+ }
460
+
461
+ export interface PreviewStyle extends PreviewStyleOptions {
462
+ value: string;
463
+ }
464
+
465
+ export type CmsBackendClass = any; // TODO: type properly
466
+
467
+ export interface CmsRegistryBackend {
468
+ init: (args: any) => CmsBackendClass;
469
+ }
470
+
471
+ export interface CmsWidgetControlProps<T = any> {
472
+ value: T;
473
+ field: Map<string, any>;
474
+ onChange: (value: T) => void;
475
+ forID: string;
476
+ classNameWrapper: string;
477
+ }
478
+
479
+ export interface CmsWidgetPreviewProps<T = any> {
480
+ value: T;
481
+ field: Map<string, any>;
482
+ metadata: Map<string, any>;
483
+ getAsset: GetAssetFunction;
484
+ entry: Map<string, any>;
485
+ fieldsMetaData: Map<string, any>;
486
+ }
487
+
488
+ export interface CmsWidgetParam<T = any> {
489
+ name: string;
490
+ controlComponent: CmsWidgetControlProps<T>;
491
+ previewComponent?: CmsWidgetPreviewProps<T>;
492
+ globalStyles?: any;
493
+ }
494
+
495
+ export interface CmsWidget<T = any> {
496
+ control: CmsWidgetControlProps<T>;
497
+ preview?: CmsWidgetPreviewProps<T>;
498
+ globalStyles?: any;
499
+ }
500
+
501
+ export type CmsWidgetValueSerializer = any; // TODO: type properly
502
+
503
+ export type CmsMediaLibraryOptions = any; // TODO: type properly
504
+
505
+ export interface CmsMediaLibrary {
506
+ name: string;
507
+ config?: CmsMediaLibraryOptions;
508
+ }
509
+
510
+ export interface CmsEventListener {
511
+ name: 'prePublish' | 'postPublish' | 'preUnpublish' | 'postUnpublish' | 'preSave' | 'postSave';
512
+ handler: ({
513
+ entry,
514
+ author,
515
+ }: {
516
+ entry: Map<string, any>;
517
+ author: { login: string; name: string };
518
+ }) => any;
519
+ }
520
+
521
+ export type CmsEventListenerOptions = any; // TODO: type properly
522
+
523
+ export type CmsLocalePhrases = any; // TODO: type properly
524
+
525
+ export type Formatter = {
526
+ fromFile(content: string): unknown;
527
+ toFile(data: object, sortedKeys?: string[], comments?: Record<string, string>): string;
528
+ };
529
+
530
+ export interface CmsRegistry {
531
+ backends: {
532
+ [name: string]: CmsRegistryBackend;
533
+ };
534
+ templates: {
535
+ [name: string]: ComponentType<any>;
536
+ };
537
+ previewStyles: PreviewStyle[];
538
+ widgets: {
539
+ [name: string]: CmsWidget;
540
+ };
541
+ editorComponents: Map<string, ComponentType<any>>;
542
+ widgetValueSerializers: {
543
+ [name: string]: CmsWidgetValueSerializer;
544
+ };
545
+ mediaLibraries: CmsMediaLibrary[];
546
+ locales: {
547
+ [name: string]: CmsLocalePhrases;
548
+ };
549
+ formats: {
550
+ [name: string]: Formatter;
551
+ };
552
+ }
553
+
554
+ type GetAssetFunction = (asset: string) => {
555
+ url: string;
556
+ path: string;
557
+ field?: any;
558
+ fileObj: File;
559
+ };
560
+
561
+ export type PreviewTemplateComponentProps = {
562
+ entry: Map<string, any>;
563
+ collection: Map<string, any>;
564
+ getCollection: (collectionName: string, slug?: string) => Promise<Map<string, any>[]>;
565
+ widgetFor: (name: any, fields?: any, values?: any, fieldsMetaData?: any) => JSX.Element | null;
566
+ widgetsFor: (name: any) => any;
567
+ getAsset: GetAssetFunction;
568
+ boundGetAsset: (collection: any, path: any) => GetAssetFunction;
569
+ fieldsMetaData: Map<string, any>;
570
+ config: Map<string, any>;
571
+ fields: List<Map<string, any>>;
572
+ isLoadingAsset: boolean;
573
+ window: Window;
574
+ document: Document;
575
+ };
576
+
577
+ export interface CMS {
578
+ getBackend: (name: string) => CmsRegistryBackend | undefined;
579
+ getEditorComponents: () => Map<string, ComponentType<any>>;
580
+ getRemarkPlugins: () => Array<Pluggable>;
581
+ getLocale: (locale: string) => CmsLocalePhrases | undefined;
582
+ getMediaLibrary: (name: string) => CmsMediaLibrary | undefined;
583
+ getPreviewStyles: () => PreviewStyle[];
584
+ getPreviewTemplate: (name: string) => ComponentType<PreviewTemplateComponentProps> | undefined;
585
+ getWidget: (name: string) => CmsWidget | undefined;
586
+ getWidgetValueSerializer: (widgetName: string) => CmsWidgetValueSerializer | undefined;
587
+ init: (options?: InitOptions) => void;
588
+ registerBackend: (name: string, backendClass: CmsBackendClass) => void;
589
+ registerEditorComponent: (options: EditorComponentOptions) => void;
590
+ registerRemarkPlugin: (plugin: Pluggable) => void;
591
+ registerEventListener: (
592
+ eventListener: CmsEventListener,
593
+ options?: CmsEventListenerOptions,
594
+ ) => void;
595
+ registerLocale: (locale: string, phrases: CmsLocalePhrases) => void;
596
+ registerMediaLibrary: (mediaLibrary: CmsMediaLibrary, options?: CmsMediaLibraryOptions) => void;
597
+ registerPreviewStyle: (filePath: string, options?: PreviewStyleOptions) => void;
598
+ registerPreviewTemplate: (
599
+ name: string,
600
+ component: ComponentType<PreviewTemplateComponentProps>,
601
+ ) => void;
602
+ registerWidget: (
603
+ widget: string | CmsWidgetParam,
604
+ control?: ComponentType<CmsWidgetControlProps> | string,
605
+ preview?: ComponentType<CmsWidgetPreviewProps>,
606
+ ) => void;
607
+ registerWidgetValueSerializer: (
608
+ widgetName: string,
609
+ serializer: CmsWidgetValueSerializer,
610
+ ) => void;
611
+ resolveWidget: (name: string) => CmsWidget | undefined;
612
+ registerCustomFormat: (name: string, extension: string, formatter: Formatter) => void;
613
+ }
614
+
615
+ export const DecapCmsCore: CMS;
616
+
617
+ export default DecapCmsCore;
618
+ }
package/package.json ADDED
@@ -0,0 +1,106 @@
1
+ {
2
+ "name": "@pranaysahith/decap-cms-core",
3
+ "description": "Decap CMS core application, see decap-cms package for the main distribution.",
4
+ "version": "3.9.1",
5
+ "repository": "https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-core",
6
+ "bugs": "https://github.com/decaporg/decap-cms/issues",
7
+ "module": "dist/esm/index.js",
8
+ "main": "dist/decap-cms-core.js",
9
+ "files": [
10
+ "src/",
11
+ "dist/",
12
+ "index.d.ts"
13
+ ],
14
+ "types": "index.d.ts",
15
+ "scripts": {
16
+ "develop": "npm run build:esm -- --watch",
17
+ "webpack": "node --max_old_space_size=4096 ../../node_modules/webpack/bin/webpack.js",
18
+ "build": "cross-env NODE_ENV=production run-s webpack",
19
+ "build:esm": "cross-env NODE_ENV=esm babel src --out-dir dist/esm --ignore \"**/__tests__\" --root-mode upward --extensions \".js,.jsx,.ts,.tsx\""
20
+ },
21
+ "keywords": [
22
+ "cms",
23
+ "core"
24
+ ],
25
+ "license": "MIT",
26
+ "dependencies": {
27
+ "@iarna/toml": "2.2.5",
28
+ "@reduxjs/toolkit": "^1.9.1",
29
+ "@vercel/stega": "^0.1.2",
30
+ "buffer": "^6.0.3",
31
+ "clean-stack": "^5.2.0",
32
+ "copy-text-to-clipboard": "^3.0.0",
33
+ "dayjs": "^1.11.10",
34
+ "deepmerge": "^4.2.2",
35
+ "diacritics": "^1.3.0",
36
+ "fuzzy": "^0.1.1",
37
+ "gotrue-js": "^0.9.24",
38
+ "gray-matter": "^4.0.2",
39
+ "history": "^4.7.2",
40
+ "immer": "^9.0.0",
41
+ "js-base64": "^3.0.0",
42
+ "jwt-decode": "^3.0.0",
43
+ "node-polyglot": "^2.3.0",
44
+ "path-browserify": "^1.0.1",
45
+ "prop-types": "^15.7.2",
46
+ "react": "^19.1.0",
47
+ "react-dnd": "^14.0.0",
48
+ "react-dnd-html5-backend": "^14.0.0",
49
+ "react-dom": "^19.1.0",
50
+ "react-frame-component": "^5.2.1",
51
+ "react-immutable-proptypes": "^2.1.0",
52
+ "react-is": "16.13.1",
53
+ "react-markdown": "^6.0.2",
54
+ "react-modal": "^3.8.1",
55
+ "react-polyglot": "^0.7.0",
56
+ "react-redux": "^7.2.0",
57
+ "react-router-dom": "^5.2.0",
58
+ "react-scroll-sync": "^0.11.2",
59
+ "react-split-pane": "^0.1.85",
60
+ "react-toastify": "^9.1.1",
61
+ "react-topbar-progress-indicator": "^4.0.0",
62
+ "react-virtualized-auto-sizer": "^1.0.2",
63
+ "react-waypoint": "^10.0.0",
64
+ "react-window": "^1.8.5",
65
+ "redux": "^4.0.5",
66
+ "redux-devtools-extension": "^2.13.8",
67
+ "redux-notifications": "^4.0.1",
68
+ "redux-thunk": "^2.3.0",
69
+ "remark-gfm": "1.0.0",
70
+ "sanitize-filename": "^1.6.1",
71
+ "semaphore": "^1.0.5",
72
+ "tomlify-j0.4": "^3.0.0-alpha.0",
73
+ "url": "^0.11.0",
74
+ "url-join": "^4.0.1",
75
+ "what-input": "^5.1.4",
76
+ "yaml": "^1.8.3"
77
+ },
78
+ "peerDependencies": {
79
+ "@emotion/react": "^11.11.1",
80
+ "@emotion/styled": "^11.11.0",
81
+ "@pranaysahith/decap-cms-editor-component-image": "^3.0.0",
82
+ "@pranaysahith/decap-cms-lib-auth": "^3.0.0",
83
+ "@pranaysahith/decap-cms-lib-util": "^3.0.0",
84
+ "@pranaysahith/decap-cms-lib-widgets": "^3.0.0",
85
+ "@pranaysahith/decap-cms-ui-default": "^3.0.0",
86
+ "immutable": "^3.7.6",
87
+ "lodash": "^4.17.11",
88
+ "prop-types": "^15.7.2",
89
+ "react": "^19.1.0",
90
+ "react-dom": "^19.1.0",
91
+ "react-immutable-proptypes": "^2.1.0"
92
+ },
93
+ "devDependencies": {
94
+ "@types/history": "^4.7.8",
95
+ "@types/iarna__toml": "^2.0.5",
96
+ "@types/redux-mock-store": "^1.0.2",
97
+ "@types/url-join": "^4.0.0",
98
+ "redux-mock-store": "^1.5.3"
99
+ },
100
+ "browser": {
101
+ "path": "path-browserify"
102
+ },
103
+ "publishConfig": {
104
+ "access": "public"
105
+ }
106
+ }