decap-cms-core 2.56.0-beta.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 (290) hide show
  1. package/LICENSE +22 -0
  2. package/README.md +9 -0
  3. package/dist/decap-cms-core.js +47 -0
  4. package/dist/decap-cms-core.js.LICENSE.txt +109 -0
  5. package/dist/decap-cms-core.js.map +1 -0
  6. package/dist/esm/actions/auth.js +118 -0
  7. package/dist/esm/actions/collections.js +23 -0
  8. package/dist/esm/actions/config.js +482 -0
  9. package/dist/esm/actions/deploys.js +89 -0
  10. package/dist/esm/actions/editorialWorkflow.js +511 -0
  11. package/dist/esm/actions/entries.js +940 -0
  12. package/dist/esm/actions/media.js +168 -0
  13. package/dist/esm/actions/mediaLibrary.js +606 -0
  14. package/dist/esm/actions/notifications.js +32 -0
  15. package/dist/esm/actions/search.js +156 -0
  16. package/dist/esm/actions/status.js +93 -0
  17. package/dist/esm/actions/waitUntil.js +39 -0
  18. package/dist/esm/backend.js +1073 -0
  19. package/dist/esm/bootstrap.js +107 -0
  20. package/dist/esm/components/App/App.js +301 -0
  21. package/dist/esm/components/App/Header.js +162 -0
  22. package/dist/esm/components/App/NotFoundPage.js +27 -0
  23. package/dist/esm/components/Collection/Collection.js +210 -0
  24. package/dist/esm/components/Collection/CollectionControls.js +54 -0
  25. package/dist/esm/components/Collection/CollectionSearch.js +235 -0
  26. package/dist/esm/components/Collection/CollectionTop.js +77 -0
  27. package/dist/esm/components/Collection/ControlButton.js +23 -0
  28. package/dist/esm/components/Collection/Entries/Entries.js +74 -0
  29. package/dist/esm/components/Collection/Entries/EntriesCollection.js +193 -0
  30. package/dist/esm/components/Collection/Entries/EntriesSearch.js +117 -0
  31. package/dist/esm/components/Collection/Entries/EntryCard.js +134 -0
  32. package/dist/esm/components/Collection/Entries/EntryListing.js +120 -0
  33. package/dist/esm/components/Collection/FilterControl.js +41 -0
  34. package/dist/esm/components/Collection/GroupControl.js +41 -0
  35. package/dist/esm/components/Collection/NestedCollection.js +311 -0
  36. package/dist/esm/components/Collection/Sidebar.js +102 -0
  37. package/dist/esm/components/Collection/SortControl.js +67 -0
  38. package/dist/esm/components/Collection/ViewStyleControl.js +47 -0
  39. package/dist/esm/components/Editor/Editor.js +479 -0
  40. package/dist/esm/components/Editor/EditorControlPane/EditorControl.js +393 -0
  41. package/dist/esm/components/Editor/EditorControlPane/EditorControlPane.js +259 -0
  42. package/dist/esm/components/Editor/EditorControlPane/Widget.js +355 -0
  43. package/dist/esm/components/Editor/EditorInterface.js +401 -0
  44. package/dist/esm/components/Editor/EditorPreviewPane/EditorPreview.js +56 -0
  45. package/dist/esm/components/Editor/EditorPreviewPane/EditorPreviewContent.js +34 -0
  46. package/dist/esm/components/Editor/EditorPreviewPane/EditorPreviewPane.js +252 -0
  47. package/dist/esm/components/Editor/EditorPreviewPane/PreviewHOC.js +39 -0
  48. package/dist/esm/components/Editor/EditorToolbar.js +551 -0
  49. package/dist/esm/components/Editor/withWorkflow.js +64 -0
  50. package/dist/esm/components/EditorWidgets/Unknown/UnknownControl.js +26 -0
  51. package/dist/esm/components/EditorWidgets/Unknown/UnknownPreview.js +28 -0
  52. package/dist/esm/components/EditorWidgets/index.js +7 -0
  53. package/dist/esm/components/MediaLibrary/EmptyMessage.js +30 -0
  54. package/dist/esm/components/MediaLibrary/MediaLibrary.js +444 -0
  55. package/dist/esm/components/MediaLibrary/MediaLibraryButtons.js +110 -0
  56. package/dist/esm/components/MediaLibrary/MediaLibraryCard.js +108 -0
  57. package/dist/esm/components/MediaLibrary/MediaLibraryCardGrid.js +211 -0
  58. package/dist/esm/components/MediaLibrary/MediaLibraryHeader.js +40 -0
  59. package/dist/esm/components/MediaLibrary/MediaLibraryModal.js +163 -0
  60. package/dist/esm/components/MediaLibrary/MediaLibrarySearch.js +60 -0
  61. package/dist/esm/components/MediaLibrary/MediaLibraryTop.js +134 -0
  62. package/dist/esm/components/UI/DragDrop.js +84 -0
  63. package/dist/esm/components/UI/ErrorBoundary.js +184 -0
  64. package/dist/esm/components/UI/FileUploadButton.js +34 -0
  65. package/dist/esm/components/UI/Modal.js +113 -0
  66. package/dist/esm/components/UI/Notifications.js +74 -0
  67. package/dist/esm/components/UI/SettingsDropdown.js +118 -0
  68. package/dist/esm/components/UI/index.js +60 -0
  69. package/dist/esm/components/Workflow/Workflow.js +144 -0
  70. package/dist/esm/components/Workflow/WorkflowCard.js +137 -0
  71. package/dist/esm/components/Workflow/WorkflowList.js +219 -0
  72. package/dist/esm/constants/collectionTypes.js +10 -0
  73. package/dist/esm/constants/collectionViews.js +10 -0
  74. package/dist/esm/constants/commitProps.js +10 -0
  75. package/dist/esm/constants/configSchema.js +594 -0
  76. package/dist/esm/constants/fieldInference.js +67 -0
  77. package/dist/esm/constants/publishModes.js +28 -0
  78. package/dist/esm/constants/validationErrorTypes.js +13 -0
  79. package/dist/esm/formats/formats.js +82 -0
  80. package/dist/esm/formats/frontmatter.js +163 -0
  81. package/dist/esm/formats/helpers.js +18 -0
  82. package/dist/esm/formats/json.js +15 -0
  83. package/dist/esm/formats/toml.js +40 -0
  84. package/dist/esm/formats/yaml.js +63 -0
  85. package/dist/esm/index.js +20 -0
  86. package/dist/esm/integrations/index.js +37 -0
  87. package/dist/esm/integrations/providers/algolia/implementation.js +184 -0
  88. package/dist/esm/integrations/providers/assetStore/implementation.js +175 -0
  89. package/dist/esm/lib/consoleError.js +9 -0
  90. package/dist/esm/lib/formatters.js +204 -0
  91. package/dist/esm/lib/i18n.js +381 -0
  92. package/dist/esm/lib/phrases.js +13 -0
  93. package/dist/esm/lib/registry.js +322 -0
  94. package/dist/esm/lib/serializeEntryValues.js +74 -0
  95. package/dist/esm/lib/textHelper.js +15 -0
  96. package/dist/esm/lib/urlHelper.js +128 -0
  97. package/dist/esm/mediaLibrary.js +42 -0
  98. package/dist/esm/reducers/auth.js +35 -0
  99. package/dist/esm/reducers/collections.js +424 -0
  100. package/dist/esm/reducers/combinedReducer.js +19 -0
  101. package/dist/esm/reducers/config.js +42 -0
  102. package/dist/esm/reducers/cursors.js +38 -0
  103. package/dist/esm/reducers/deploys.js +53 -0
  104. package/dist/esm/reducers/editorialWorkflow.js +98 -0
  105. package/dist/esm/reducers/entries.js +591 -0
  106. package/dist/esm/reducers/entryDraft.js +184 -0
  107. package/dist/esm/reducers/globalUI.js +32 -0
  108. package/dist/esm/reducers/index.js +84 -0
  109. package/dist/esm/reducers/integrations.js +68 -0
  110. package/dist/esm/reducers/mediaLibrary.js +265 -0
  111. package/dist/esm/reducers/medias.js +76 -0
  112. package/dist/esm/reducers/notifications.js +36 -0
  113. package/dist/esm/reducers/search.js +89 -0
  114. package/dist/esm/reducers/status.js +37 -0
  115. package/dist/esm/redux/index.js +14 -0
  116. package/dist/esm/redux/middleware/waitUntilAction.js +56 -0
  117. package/dist/esm/routing/history.js +21 -0
  118. package/dist/esm/types/diacritics.d.js +1 -0
  119. package/dist/esm/types/global.d.js +5 -0
  120. package/dist/esm/types/immutable.js +5 -0
  121. package/dist/esm/types/redux.js +16 -0
  122. package/dist/esm/types/tomlify-j0.4.d.js +1 -0
  123. package/dist/esm/valueObjects/AssetProxy.js +60 -0
  124. package/dist/esm/valueObjects/EditorComponent.js +48 -0
  125. package/dist/esm/valueObjects/Entry.js +27 -0
  126. package/index.d.ts +587 -0
  127. package/package.json +102 -0
  128. package/src/__tests__/backend.spec.js +934 -0
  129. package/src/actions/__tests__/config.spec.js +1009 -0
  130. package/src/actions/__tests__/editorialWorkflow.spec.js +216 -0
  131. package/src/actions/__tests__/entries.spec.js +575 -0
  132. package/src/actions/__tests__/media.spec.ts +171 -0
  133. package/src/actions/__tests__/mediaLibrary.spec.js +327 -0
  134. package/src/actions/__tests__/search.spec.js +209 -0
  135. package/src/actions/auth.ts +127 -0
  136. package/src/actions/collections.ts +18 -0
  137. package/src/actions/config.ts +538 -0
  138. package/src/actions/deploys.ts +104 -0
  139. package/src/actions/editorialWorkflow.ts +567 -0
  140. package/src/actions/entries.ts +1041 -0
  141. package/src/actions/media.ts +139 -0
  142. package/src/actions/mediaLibrary.ts +574 -0
  143. package/src/actions/notifications.ts +36 -0
  144. package/src/actions/search.ts +194 -0
  145. package/src/actions/status.ts +99 -0
  146. package/src/actions/waitUntil.ts +49 -0
  147. package/src/backend.ts +1342 -0
  148. package/src/bootstrap.js +102 -0
  149. package/src/components/App/App.js +280 -0
  150. package/src/components/App/Header.js +236 -0
  151. package/src/components/App/NotFoundPage.js +23 -0
  152. package/src/components/Collection/Collection.js +205 -0
  153. package/src/components/Collection/CollectionControls.js +58 -0
  154. package/src/components/Collection/CollectionSearch.js +238 -0
  155. package/src/components/Collection/CollectionTop.js +81 -0
  156. package/src/components/Collection/ControlButton.js +27 -0
  157. package/src/components/Collection/Entries/Entries.js +73 -0
  158. package/src/components/Collection/Entries/EntriesCollection.js +165 -0
  159. package/src/components/Collection/Entries/EntriesSearch.js +91 -0
  160. package/src/components/Collection/Entries/EntryCard.js +167 -0
  161. package/src/components/Collection/Entries/EntryListing.js +86 -0
  162. package/src/components/Collection/Entries/__tests__/EntriesCollection.spec.js +155 -0
  163. package/src/components/Collection/Entries/__tests__/__snapshots__/EntriesCollection.spec.js.snap +49 -0
  164. package/src/components/Collection/FilterControl.js +39 -0
  165. package/src/components/Collection/GroupControl.js +39 -0
  166. package/src/components/Collection/NestedCollection.js +309 -0
  167. package/src/components/Collection/Sidebar.js +130 -0
  168. package/src/components/Collection/SortControl.js +68 -0
  169. package/src/components/Collection/ViewStyleControl.js +50 -0
  170. package/src/components/Collection/__tests__/Collection.spec.js +75 -0
  171. package/src/components/Collection/__tests__/NestedCollection.spec.js +442 -0
  172. package/src/components/Collection/__tests__/Sidebar.spec.js +87 -0
  173. package/src/components/Collection/__tests__/__snapshots__/Collection.spec.js.snap +144 -0
  174. package/src/components/Collection/__tests__/__snapshots__/NestedCollection.spec.js.snap +550 -0
  175. package/src/components/Collection/__tests__/__snapshots__/Sidebar.spec.js.snap +308 -0
  176. package/src/components/Editor/Editor.js +494 -0
  177. package/src/components/Editor/EditorControlPane/EditorControl.js +428 -0
  178. package/src/components/Editor/EditorControlPane/EditorControlPane.js +256 -0
  179. package/src/components/Editor/EditorControlPane/Widget.js +351 -0
  180. package/src/components/Editor/EditorInterface.js +434 -0
  181. package/src/components/Editor/EditorPreviewPane/EditorPreview.js +40 -0
  182. package/src/components/Editor/EditorPreviewPane/EditorPreviewContent.js +34 -0
  183. package/src/components/Editor/EditorPreviewPane/EditorPreviewPane.js +278 -0
  184. package/src/components/Editor/EditorPreviewPane/PreviewHOC.js +33 -0
  185. package/src/components/Editor/EditorToolbar.js +678 -0
  186. package/src/components/Editor/__tests__/Editor.spec.js +219 -0
  187. package/src/components/Editor/__tests__/EditorToolbar.spec.js +120 -0
  188. package/src/components/Editor/__tests__/__snapshots__/Editor.spec.js.snap +45 -0
  189. package/src/components/Editor/__tests__/__snapshots__/EditorToolbar.spec.js.snap +4020 -0
  190. package/src/components/Editor/withWorkflow.js +61 -0
  191. package/src/components/EditorWidgets/Unknown/UnknownControl.js +17 -0
  192. package/src/components/EditorWidgets/Unknown/UnknownPreview.js +19 -0
  193. package/src/components/EditorWidgets/index.js +5 -0
  194. package/src/components/MediaLibrary/EmptyMessage.js +28 -0
  195. package/src/components/MediaLibrary/MediaLibrary.js +407 -0
  196. package/src/components/MediaLibrary/MediaLibraryButtons.js +136 -0
  197. package/src/components/MediaLibrary/MediaLibraryCard.js +128 -0
  198. package/src/components/MediaLibrary/MediaLibraryCardGrid.js +199 -0
  199. package/src/components/MediaLibrary/MediaLibraryHeader.js +48 -0
  200. package/src/components/MediaLibrary/MediaLibraryModal.js +200 -0
  201. package/src/components/MediaLibrary/MediaLibrarySearch.js +61 -0
  202. package/src/components/MediaLibrary/MediaLibraryTop.js +143 -0
  203. package/src/components/MediaLibrary/__tests__/MediaLibraryButtons.spec.js +45 -0
  204. package/src/components/MediaLibrary/__tests__/MediaLibraryCard.spec.js +49 -0
  205. package/src/components/MediaLibrary/__tests__/__snapshots__/MediaLibraryCard.spec.js.snap +216 -0
  206. package/src/components/UI/DragDrop.js +66 -0
  207. package/src/components/UI/ErrorBoundary.js +209 -0
  208. package/src/components/UI/FileUploadButton.js +24 -0
  209. package/src/components/UI/Modal.js +109 -0
  210. package/src/components/UI/Notifications.tsx +83 -0
  211. package/src/components/UI/SettingsDropdown.js +103 -0
  212. package/src/components/UI/__tests__/ErrorBoundary.spec.js +57 -0
  213. package/src/components/UI/index.js +6 -0
  214. package/src/components/Workflow/Workflow.js +166 -0
  215. package/src/components/Workflow/WorkflowCard.js +177 -0
  216. package/src/components/Workflow/WorkflowList.js +269 -0
  217. package/src/constants/__tests__/configSchema.spec.js +511 -0
  218. package/src/constants/collectionTypes.ts +2 -0
  219. package/src/constants/collectionViews.js +2 -0
  220. package/src/constants/commitProps.ts +2 -0
  221. package/src/constants/configSchema.js +399 -0
  222. package/src/constants/fieldInference.tsx +78 -0
  223. package/src/constants/publishModes.ts +22 -0
  224. package/src/constants/validationErrorTypes.js +6 -0
  225. package/src/formats/__tests__/frontmatter.spec.js +429 -0
  226. package/src/formats/__tests__/toml.spec.js +9 -0
  227. package/src/formats/__tests__/yaml.spec.js +162 -0
  228. package/src/formats/formats.ts +86 -0
  229. package/src/formats/frontmatter.ts +150 -0
  230. package/src/formats/helpers.ts +14 -0
  231. package/src/formats/json.ts +9 -0
  232. package/src/formats/toml.ts +33 -0
  233. package/src/formats/yaml.ts +58 -0
  234. package/src/index.js +8 -0
  235. package/src/integrations/index.js +35 -0
  236. package/src/integrations/providers/algolia/implementation.js +176 -0
  237. package/src/integrations/providers/assetStore/implementation.js +147 -0
  238. package/src/lib/__tests__/formatters.spec.js +723 -0
  239. package/src/lib/__tests__/i18n.spec.js +792 -0
  240. package/src/lib/__tests__/phrases.spec.js +119 -0
  241. package/src/lib/__tests__/registry.spec.js +246 -0
  242. package/src/lib/__tests__/serializeEntryValues.spec.js +22 -0
  243. package/src/lib/__tests__/urlHelper.spec.js +138 -0
  244. package/src/lib/consoleError.js +7 -0
  245. package/src/lib/formatters.ts +267 -0
  246. package/src/lib/i18n.ts +427 -0
  247. package/src/lib/phrases.js +8 -0
  248. package/src/lib/registry.js +282 -0
  249. package/src/lib/serializeEntryValues.js +75 -0
  250. package/src/lib/textHelper.js +11 -0
  251. package/src/lib/urlHelper.ts +125 -0
  252. package/src/mediaLibrary.ts +51 -0
  253. package/src/reducers/__tests__/auth.spec.ts +38 -0
  254. package/src/reducers/__tests__/collections.spec.js +571 -0
  255. package/src/reducers/__tests__/config.spec.js +38 -0
  256. package/src/reducers/__tests__/entries.spec.js +694 -0
  257. package/src/reducers/__tests__/entryDraft.spec.js +198 -0
  258. package/src/reducers/__tests__/globalUI.js +43 -0
  259. package/src/reducers/__tests__/integrations.spec.ts +76 -0
  260. package/src/reducers/__tests__/mediaLibrary.spec.js +154 -0
  261. package/src/reducers/__tests__/medias.spec.ts +49 -0
  262. package/src/reducers/auth.ts +46 -0
  263. package/src/reducers/collections.ts +483 -0
  264. package/src/reducers/combinedReducer.ts +11 -0
  265. package/src/reducers/config.ts +38 -0
  266. package/src/reducers/cursors.js +36 -0
  267. package/src/reducers/deploys.ts +52 -0
  268. package/src/reducers/editorialWorkflow.ts +163 -0
  269. package/src/reducers/entries.ts +806 -0
  270. package/src/reducers/entryDraft.js +218 -0
  271. package/src/reducers/globalUI.ts +45 -0
  272. package/src/reducers/index.ts +82 -0
  273. package/src/reducers/integrations.ts +59 -0
  274. package/src/reducers/mediaLibrary.ts +296 -0
  275. package/src/reducers/medias.ts +66 -0
  276. package/src/reducers/notifications.ts +53 -0
  277. package/src/reducers/search.ts +89 -0
  278. package/src/reducers/status.ts +40 -0
  279. package/src/redux/index.ts +18 -0
  280. package/src/redux/middleware/waitUntilAction.ts +64 -0
  281. package/src/routing/__tests__/history.spec.ts +49 -0
  282. package/src/routing/history.ts +17 -0
  283. package/src/types/diacritics.d.ts +1 -0
  284. package/src/types/global.d.ts +8 -0
  285. package/src/types/immutable.ts +39 -0
  286. package/src/types/redux.ts +810 -0
  287. package/src/types/tomlify-j0.4.d.ts +13 -0
  288. package/src/valueObjects/AssetProxy.ts +48 -0
  289. package/src/valueObjects/EditorComponent.js +38 -0
  290. package/src/valueObjects/Entry.ts +63 -0
@@ -0,0 +1,322 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ exports.getBackend = getBackend;
8
+ exports.getEditorComponents = getEditorComponents;
9
+ exports.getEventListeners = getEventListeners;
10
+ exports.getLocale = getLocale;
11
+ exports.getMediaLibrary = getMediaLibrary;
12
+ exports.getPreviewStyles = getPreviewStyles;
13
+ exports.getPreviewTemplate = getPreviewTemplate;
14
+ exports.getRemarkPlugins = getRemarkPlugins;
15
+ exports.getWidget = getWidget;
16
+ exports.getWidgetValueSerializer = getWidgetValueSerializer;
17
+ exports.getWidgets = getWidgets;
18
+ exports.invokeEvent = invokeEvent;
19
+ exports.registerBackend = registerBackend;
20
+ exports.registerEditorComponent = registerEditorComponent;
21
+ exports.registerEventListener = registerEventListener;
22
+ exports.registerLocale = registerLocale;
23
+ exports.registerMediaLibrary = registerMediaLibrary;
24
+ exports.registerPreviewStyle = registerPreviewStyle;
25
+ exports.registerPreviewTemplate = registerPreviewTemplate;
26
+ exports.registerRemarkPlugin = registerRemarkPlugin;
27
+ exports.registerWidget = registerWidget;
28
+ exports.registerWidgetValueSerializer = registerWidgetValueSerializer;
29
+ exports.removeEventListener = removeEventListener;
30
+ exports.resolveWidget = resolveWidget;
31
+ var _immutable = require("immutable");
32
+ var _immer = _interopRequireDefault(require("immer"));
33
+ var _commonTags = require("common-tags");
34
+ var _EditorComponent = _interopRequireDefault(require("../valueObjects/EditorComponent"));
35
+ const _excluded = ["name", "controlComponent", "previewComponent", "schema", "allowMapValue", "globalStyles"];
36
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
37
+ function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
38
+ function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
39
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
40
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
41
+ function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
42
+ function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
43
+ function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
44
+ const allowedEvents = ['prePublish', 'postPublish', 'preUnpublish', 'postUnpublish', 'preSave', 'postSave'];
45
+ const eventHandlers = {};
46
+ allowedEvents.forEach(e => {
47
+ eventHandlers[e] = [];
48
+ });
49
+
50
+ /**
51
+ * Global Registry Object
52
+ */
53
+ const registry = {
54
+ backends: {},
55
+ templates: {},
56
+ previewStyles: [],
57
+ widgets: {},
58
+ editorComponents: (0, _immutable.Map)(),
59
+ remarkPlugins: [],
60
+ widgetValueSerializers: {},
61
+ mediaLibraries: [],
62
+ locales: {},
63
+ eventHandlers
64
+ };
65
+ var _default = {
66
+ registerPreviewStyle,
67
+ getPreviewStyles,
68
+ registerPreviewTemplate,
69
+ getPreviewTemplate,
70
+ registerWidget,
71
+ getWidget,
72
+ getWidgets,
73
+ resolveWidget,
74
+ registerEditorComponent,
75
+ getEditorComponents,
76
+ registerRemarkPlugin,
77
+ getRemarkPlugins,
78
+ registerWidgetValueSerializer,
79
+ getWidgetValueSerializer,
80
+ registerBackend,
81
+ getBackend,
82
+ registerMediaLibrary,
83
+ getMediaLibrary,
84
+ registerLocale,
85
+ getLocale,
86
+ registerEventListener,
87
+ removeEventListener,
88
+ getEventListeners,
89
+ invokeEvent
90
+ };
91
+ /**
92
+ * Preview Styles
93
+ *
94
+ * Valid options:
95
+ * - raw {boolean} if `true`, `style` value is expected to be a CSS string
96
+ */
97
+ exports.default = _default;
98
+ function registerPreviewStyle(style, opts) {
99
+ registry.previewStyles.push(_objectSpread(_objectSpread({}, opts), {}, {
100
+ value: style
101
+ }));
102
+ }
103
+ function getPreviewStyles() {
104
+ return registry.previewStyles;
105
+ }
106
+
107
+ /**
108
+ * Preview Templates
109
+ */
110
+ function registerPreviewTemplate(name, component) {
111
+ registry.templates[name] = component;
112
+ }
113
+ function getPreviewTemplate(name) {
114
+ return registry.templates[name];
115
+ }
116
+
117
+ /**
118
+ * Editor Widgets
119
+ */
120
+ function registerWidget(name, control, preview, schema = {}) {
121
+ if (Array.isArray(name)) {
122
+ name.forEach(widget => {
123
+ if (typeof widget !== 'object') {
124
+ console.error(`Cannot register widget: ${widget}`);
125
+ } else {
126
+ registerWidget(widget);
127
+ }
128
+ });
129
+ } else if (typeof name === 'string') {
130
+ // A registered widget control can be reused by a new widget, allowing
131
+ // multiple copies with different previews.
132
+ const newControl = typeof control === 'string' ? registry.widgets[control].control : control;
133
+ registry.widgets[name] = {
134
+ control: newControl,
135
+ preview,
136
+ schema
137
+ };
138
+ } else if (typeof name === 'object') {
139
+ const {
140
+ name: widgetName,
141
+ controlComponent: control,
142
+ previewComponent: preview,
143
+ schema = {},
144
+ allowMapValue,
145
+ globalStyles
146
+ } = name,
147
+ options = _objectWithoutProperties(name, _excluded);
148
+ if (registry.widgets[widgetName]) {
149
+ console.warn((0, _commonTags.oneLine)`
150
+ Multiple widgets registered with name "${widgetName}". Only the last widget registered with
151
+ this name will be used.
152
+ `);
153
+ }
154
+ if (!control) {
155
+ throw Error(`Widget "${widgetName}" registered without \`controlComponent\`.`);
156
+ }
157
+ registry.widgets[widgetName] = _objectSpread({
158
+ control,
159
+ preview,
160
+ schema,
161
+ globalStyles,
162
+ allowMapValue
163
+ }, options);
164
+ } else {
165
+ console.error('`registerWidget` failed, called with incorrect arguments.');
166
+ }
167
+ }
168
+ function getWidget(name) {
169
+ return registry.widgets[name];
170
+ }
171
+ function getWidgets() {
172
+ return (0, _immer.default)(Object.entries(registry.widgets), draft => {
173
+ return draft.map(([key, value]) => _objectSpread({
174
+ name: key
175
+ }, value));
176
+ });
177
+ }
178
+ function resolveWidget(name) {
179
+ return getWidget(name || 'string') || getWidget('unknown');
180
+ }
181
+
182
+ /**
183
+ * Markdown Editor Custom Components
184
+ */
185
+ function registerEditorComponent(component) {
186
+ const plugin = (0, _EditorComponent.default)(component);
187
+ if (plugin.type === 'code-block') {
188
+ const codeBlock = registry.editorComponents.find(c => c.type === 'code-block');
189
+ if (codeBlock) {
190
+ console.warn((0, _commonTags.oneLine)`
191
+ Only one editor component of type "code-block" may be registered. Previously registered code
192
+ block component(s) will be overwritten.
193
+ `);
194
+ registry.editorComponents = registry.editorComponents.delete(codeBlock.id);
195
+ }
196
+ }
197
+ registry.editorComponents = registry.editorComponents.set(plugin.id, plugin);
198
+ }
199
+ function getEditorComponents() {
200
+ return registry.editorComponents;
201
+ }
202
+
203
+ /**
204
+ * Remark plugins
205
+ */
206
+ /** @typedef {import('unified').Pluggable} RemarkPlugin */
207
+ /** @type {(plugin: RemarkPlugin) => void} */
208
+ function registerRemarkPlugin(plugin) {
209
+ registry.remarkPlugins.push(plugin);
210
+ }
211
+ /** @type {() => Array<RemarkPlugin>} */
212
+ function getRemarkPlugins() {
213
+ return registry.remarkPlugins;
214
+ }
215
+
216
+ /**
217
+ * Widget Serializers
218
+ */
219
+ function registerWidgetValueSerializer(widgetName, serializer) {
220
+ registry.widgetValueSerializers[widgetName] = serializer;
221
+ }
222
+ function getWidgetValueSerializer(widgetName) {
223
+ return registry.widgetValueSerializers[widgetName];
224
+ }
225
+
226
+ /**
227
+ * Backend API
228
+ */
229
+ function registerBackend(name, BackendClass) {
230
+ if (!name || !BackendClass) {
231
+ console.error("Backend parameters invalid. example: CMS.registerBackend('myBackend', BackendClass)");
232
+ } else if (registry.backends[name]) {
233
+ console.error(`Backend [${name}] already registered. Please choose a different name.`);
234
+ } else {
235
+ registry.backends[name] = {
236
+ init: (...args) => new BackendClass(...args)
237
+ };
238
+ }
239
+ }
240
+ function getBackend(name) {
241
+ return registry.backends[name];
242
+ }
243
+
244
+ /**
245
+ * Media Libraries
246
+ */
247
+ function registerMediaLibrary(mediaLibrary, options) {
248
+ if (registry.mediaLibraries.find(ml => mediaLibrary.name === ml.name)) {
249
+ throw new Error(`A media library named ${mediaLibrary.name} has already been registered.`);
250
+ }
251
+ registry.mediaLibraries.push(_objectSpread(_objectSpread({}, mediaLibrary), {}, {
252
+ options
253
+ }));
254
+ }
255
+ function getMediaLibrary(name) {
256
+ return registry.mediaLibraries.find(ml => ml.name === name);
257
+ }
258
+ function validateEventName(name) {
259
+ if (!allowedEvents.includes(name)) {
260
+ throw new Error(`Invalid event name '${name}'`);
261
+ }
262
+ }
263
+ function getEventListeners(name) {
264
+ validateEventName(name);
265
+ return [...registry.eventHandlers[name]];
266
+ }
267
+ function registerEventListener({
268
+ name,
269
+ handler
270
+ }, options = {}) {
271
+ validateEventName(name);
272
+ registry.eventHandlers[name].push({
273
+ handler,
274
+ options
275
+ });
276
+ }
277
+ async function invokeEvent({
278
+ name,
279
+ data
280
+ }) {
281
+ validateEventName(name);
282
+ const handlers = registry.eventHandlers[name];
283
+ let _data = _objectSpread({}, data);
284
+ for (const {
285
+ handler,
286
+ options
287
+ } of handlers) {
288
+ const result = await handler(_data, options);
289
+ if (result !== undefined) {
290
+ const entry = _data.entry.set('data', result);
291
+ _data = _objectSpread(_objectSpread({}, data), {}, {
292
+ entry
293
+ });
294
+ }
295
+ }
296
+ return _data.entry.get('data');
297
+ }
298
+ function removeEventListener({
299
+ name,
300
+ handler
301
+ }) {
302
+ validateEventName(name);
303
+ if (handler) {
304
+ registry.eventHandlers[name] = registry.eventHandlers[name].filter(item => item.handler !== handler);
305
+ } else {
306
+ registry.eventHandlers[name] = [];
307
+ }
308
+ }
309
+
310
+ /**
311
+ * Locales
312
+ */
313
+ function registerLocale(locale, phrases) {
314
+ if (!locale || !phrases) {
315
+ console.error("Locale parameters invalid. example: CMS.registerLocale('locale', phrases)");
316
+ } else {
317
+ registry.locales[locale] = phrases;
318
+ }
319
+ }
320
+ function getLocale(locale) {
321
+ return registry.locales[locale];
322
+ }
@@ -0,0 +1,74 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.deserializeValues = deserializeValues;
7
+ exports.serializeValues = serializeValues;
8
+ var _isNil2 = _interopRequireDefault(require("lodash/isNil"));
9
+ var _immutable = require("immutable");
10
+ var _registry = require("./registry");
11
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
12
+ /**
13
+ * Methods for serializing/deserializing entry field values. Most widgets don't
14
+ * require this for their values, and those that do can typically serialize/
15
+ * deserialize on every change from within the widget. The serialization
16
+ * handlers here are for widgets whose values require heavy serialization that
17
+ * would hurt performance if run for every change.
18
+
19
+ * An example of this is the markdown widget, whose value is stored as a
20
+ * markdown string. Instead of stringifying on every change of that field, a
21
+ * deserialization method is registered from the widget's control module that
22
+ * converts the stored markdown string to an AST, and that AST serves as the
23
+ * widget model during editing.
24
+ *
25
+ * Serialization handlers should be registered for each widget that requires
26
+ * them, and the registration method is exposed through the registry. Any
27
+ * registered deserialization handlers run on entry load, and serialization
28
+ * handlers run on persist.
29
+ */
30
+ function runSerializer(values, fields, method) {
31
+ /**
32
+ * Reduce the list of fields to a map where keys are field names and values
33
+ * are field values, serializing the values of fields whose widgets have
34
+ * registered serializers. If the field is a list or object, call recursively
35
+ * for nested fields.
36
+ */
37
+ let serializedData = fields.reduce((acc, field) => {
38
+ const fieldName = field.get('name');
39
+ const value = values.get(fieldName);
40
+ const serializer = (0, _registry.getWidgetValueSerializer)(field.get('widget'));
41
+ const nestedFields = field.get('fields');
42
+
43
+ // Call recursively for fields within lists
44
+ if (nestedFields && _immutable.List.isList(value)) {
45
+ return acc.set(fieldName, value.map(val => runSerializer(val, nestedFields, method)));
46
+ }
47
+
48
+ // Call recursively for fields within objects
49
+ if (nestedFields && _immutable.Map.isMap(value)) {
50
+ return acc.set(fieldName, runSerializer(value, nestedFields, method));
51
+ }
52
+
53
+ // Run serialization method on value if not null or undefined
54
+ if (serializer && !(0, _isNil2.default)(value)) {
55
+ return acc.set(fieldName, serializer[method](value));
56
+ }
57
+
58
+ // If no serializer is registered for the field's widget, use the field as is
59
+ if (!(0, _isNil2.default)(value)) {
60
+ return acc.set(fieldName, value);
61
+ }
62
+ return acc;
63
+ }, (0, _immutable.Map)());
64
+
65
+ //preserve unknown fields value
66
+ serializedData = values.mergeDeep(serializedData);
67
+ return serializedData;
68
+ }
69
+ function serializeValues(values, fields) {
70
+ return runSerializer(values, fields, 'serialize');
71
+ }
72
+ function deserializeValues(values, fields) {
73
+ return runSerializer(values, fields, 'deserialize');
74
+ }
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.stringToRGB = stringToRGB;
7
+ function stringToRGB(str) {
8
+ if (!str) return '000000';
9
+ let hash = 0;
10
+ for (let i = 0; i < str.length; i++) {
11
+ hash = str.charCodeAt(i) + ((hash << 5) - hash);
12
+ }
13
+ const c = (hash & 0x00ffffff).toString(16).toUpperCase();
14
+ return `00000${c}`.slice(-6);
15
+ }
@@ -0,0 +1,128 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.addParams = addParams;
7
+ exports.getCharReplacer = getCharReplacer;
8
+ exports.getCollectionUrl = getCollectionUrl;
9
+ exports.getNewEntryUrl = getNewEntryUrl;
10
+ exports.joinUrlPath = joinUrlPath;
11
+ exports.sanitizeChar = sanitizeChar;
12
+ exports.sanitizeSlug = sanitizeSlug;
13
+ exports.sanitizeURI = sanitizeURI;
14
+ exports.stripProtocol = stripProtocol;
15
+ var _partialRight2 = _interopRequireDefault(require("lodash/partialRight"));
16
+ var _flow2 = _interopRequireDefault(require("lodash/flow"));
17
+ var _escapeRegExp2 = _interopRequireDefault(require("lodash/escapeRegExp"));
18
+ var _isString2 = _interopRequireDefault(require("lodash/isString"));
19
+ var _url = _interopRequireDefault(require("url"));
20
+ var _urlJoin = _interopRequireDefault(require("url-join"));
21
+ var _diacritics = _interopRequireDefault(require("diacritics"));
22
+ var _sanitizeFilename = _interopRequireDefault(require("sanitize-filename"));
23
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
24
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
25
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
26
+ function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
27
+ function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
28
+ function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
29
+ function getUrl(urlString, direct) {
30
+ return `${direct ? '/#' : ''}${urlString}`;
31
+ }
32
+ function getCollectionUrl(collectionName, direct) {
33
+ return getUrl(`/collections/${collectionName}`, direct);
34
+ }
35
+ function getNewEntryUrl(collectionName, direct) {
36
+ return getUrl(`/collections/${collectionName}/new`, direct);
37
+ }
38
+ function addParams(urlString, params) {
39
+ const parsedUrl = _url.default.parse(urlString, true);
40
+ parsedUrl.query = _objectSpread(_objectSpread({}, parsedUrl.query), params);
41
+ return _url.default.format(parsedUrl);
42
+ }
43
+ function stripProtocol(urlString) {
44
+ const protocolEndIndex = urlString.indexOf('//');
45
+ return protocolEndIndex > -1 ? urlString.slice(protocolEndIndex + 2) : urlString;
46
+ }
47
+
48
+ /* See https://www.w3.org/International/articles/idn-and-iri/#path.
49
+ * According to the new IRI (Internationalized Resource Identifier) spec, RFC 3987,
50
+ * ASCII chars should be kept the same way as in standard URIs (letters digits _ - . ~).
51
+ * Non-ASCII chars (unless they are not in the allowed "ucschars" list) should be percent-encoded.
52
+ * If the string is not encoded in Unicode, it should be converted to UTF-8 and normalized first,
53
+ * but JS stores strings as UTF-16/UCS-2 internally, so we should not normalize or re-encode.
54
+ */
55
+ const uriChars = /[\w\-.~]/i;
56
+ const ucsChars = /[\xA0-\u{D7FF}\u{F900}-\u{FDCF}\u{FDF0}-\u{FFEF}\u{10000}-\u{1FFFD}\u{20000}-\u{2FFFD}\u{30000}-\u{3FFFD}\u{40000}-\u{4FFFD}\u{50000}-\u{5FFFD}\u{60000}-\u{6FFFD}\u{70000}-\u{7FFFD}\u{80000}-\u{8FFFD}\u{90000}-\u{9FFFD}\u{A0000}-\u{AFFFD}\u{B0000}-\u{BFFFD}\u{C0000}-\u{CFFFD}\u{D0000}-\u{DFFFD}\u{E1000}-\u{EFFFD}]/u;
57
+ function validURIChar(char) {
58
+ return uriChars.test(char);
59
+ }
60
+ function validIRIChar(char) {
61
+ return uriChars.test(char) || ucsChars.test(char);
62
+ }
63
+ function getCharReplacer(encoding, replacement) {
64
+ let validChar;
65
+ if (encoding === 'unicode') {
66
+ validChar = validIRIChar;
67
+ } else if (encoding === 'ascii') {
68
+ validChar = validURIChar;
69
+ } else {
70
+ throw new Error('`options.encoding` must be "unicode" or "ascii".');
71
+ }
72
+
73
+ // Check and make sure the replacement character is actually a safe char itself.
74
+ if (!Array.from(replacement).every(validChar)) {
75
+ throw new Error('The replacement character(s) (options.replacement) is itself unsafe.');
76
+ }
77
+ return char => validChar(char) ? char : replacement;
78
+ }
79
+ // `sanitizeURI` does not actually URI-encode the chars (that is the browser's and server's job), just removes the ones that are not allowed.
80
+ function sanitizeURI(str, options) {
81
+ const {
82
+ replacement = '',
83
+ encoding = 'unicode'
84
+ } = options || {};
85
+ if (!(0, _isString2.default)(str)) {
86
+ throw new Error('The input slug must be a string.');
87
+ }
88
+ if (!(0, _isString2.default)(replacement)) {
89
+ throw new Error('`options.replacement` must be a string.');
90
+ }
91
+
92
+ // `Array.from` must be used instead of `String.split` because
93
+ // `split` converts things like emojis into UTF-16 surrogate pairs.
94
+ return Array.from(str).map(getCharReplacer(encoding, replacement)).join('');
95
+ }
96
+ function sanitizeChar(char, options) {
97
+ const {
98
+ encoding = 'unicode',
99
+ sanitize_replacement: replacement = ''
100
+ } = options || {};
101
+ return getCharReplacer(encoding, replacement)(char);
102
+ }
103
+ function sanitizeSlug(str, options) {
104
+ if (!(0, _isString2.default)(str)) {
105
+ throw new Error('The input slug must be a string.');
106
+ }
107
+ const {
108
+ encoding,
109
+ clean_accents: stripDiacritics,
110
+ sanitize_replacement: replacement
111
+ } = options || {};
112
+ const sanitizedSlug = (0, _flow2.default)([...(stripDiacritics ? [_diacritics.default.remove] : []), (0, _partialRight2.default)(sanitizeURI, {
113
+ replacement,
114
+ encoding
115
+ }), (0, _partialRight2.default)(_sanitizeFilename.default, {
116
+ replacement
117
+ })])(str);
118
+
119
+ // Remove any doubled or leading/trailing replacement characters (that were added in the sanitizers).
120
+ const doubleReplacement = new RegExp(`(?:${(0, _escapeRegExp2.default)(replacement)})+`, 'g');
121
+ const trailingReplacement = new RegExp(`${(0, _escapeRegExp2.default)(replacement)}$`);
122
+ const leadingReplacement = new RegExp(`^${(0, _escapeRegExp2.default)(replacement)}`);
123
+ const normalizedSlug = sanitizedSlug.replace(doubleReplacement, replacement).replace(leadingReplacement, '').replace(trailingReplacement, '');
124
+ return normalizedSlug;
125
+ }
126
+ function joinUrlPath(base, ...path) {
127
+ return (0, _urlJoin.default)(base, ...path);
128
+ }
@@ -0,0 +1,42 @@
1
+ "use strict";
2
+
3
+ var _once2 = _interopRequireDefault(require("lodash/once"));
4
+ var _registry = require("./lib/registry");
5
+ var _redux = require("./redux");
6
+ var _config = require("./actions/config");
7
+ var _mediaLibrary = require("./actions/mediaLibrary");
8
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
9
+ /**
10
+ * This module is currently concerned only with external media libraries
11
+ * registered via `registerMediaLibrary`.
12
+ */
13
+
14
+ function handleInsert(url) {
15
+ // eslint-disable-next-line @typescript-eslint/ban-ts-comment
16
+ // @ts-ignore
17
+ return _redux.store.dispatch((0, _mediaLibrary.insertMedia)(url, undefined));
18
+ }
19
+ const initializeMediaLibrary = (0, _once2.default)(async function initializeMediaLibrary(name, options) {
20
+ const lib = (0, _registry.getMediaLibrary)(name);
21
+ if (!lib) {
22
+ const err = new Error(`Missing external media library '${name}'. Please use 'registerMediaLibrary' to register it.`);
23
+ _redux.store.dispatch((0, _config.configFailed)(err));
24
+ } else {
25
+ const instance = await lib.init({
26
+ options,
27
+ handleInsert
28
+ });
29
+ _redux.store.dispatch((0, _mediaLibrary.createMediaLibrary)(instance));
30
+ }
31
+ });
32
+ _redux.store.subscribe(() => {
33
+ const state = _redux.store.getState();
34
+ if (state) {
35
+ var _state$config$media_l;
36
+ const mediaLibraryName = (_state$config$media_l = state.config.media_library) === null || _state$config$media_l === void 0 ? void 0 : _state$config$media_l.name;
37
+ if (mediaLibraryName && !state.mediaLibrary.get('externalLibrary')) {
38
+ const mediaLibraryConfig = state.config.media_library;
39
+ initializeMediaLibrary(mediaLibraryName, mediaLibraryConfig);
40
+ }
41
+ }
42
+ });
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.defaultState = exports.default = void 0;
7
+ var _immer = require("immer");
8
+ var _auth = require("../actions/auth");
9
+ const defaultState = {
10
+ isFetching: false,
11
+ user: undefined,
12
+ error: undefined
13
+ };
14
+ exports.defaultState = defaultState;
15
+ const auth = (0, _immer.produce)((state, action) => {
16
+ switch (action.type) {
17
+ case _auth.AUTH_REQUEST:
18
+ state.isFetching = true;
19
+ break;
20
+ case _auth.AUTH_SUCCESS:
21
+ state.user = action.payload;
22
+ break;
23
+ case _auth.AUTH_FAILURE:
24
+ state.error = action.payload && action.payload.toString();
25
+ break;
26
+ case _auth.AUTH_REQUEST_DONE:
27
+ state.isFetching = false;
28
+ break;
29
+ case _auth.LOGOUT:
30
+ state.user = undefined;
31
+ state.isFetching = false;
32
+ }
33
+ }, defaultState);
34
+ var _default = auth;
35
+ exports.default = _default;