decap-cms-core 3.5.0 → 3.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/decap-cms-core.js +9 -9
- package/dist/decap-cms-core.js.map +1 -1
- package/dist/esm/actions/auth.js +22 -37
- package/dist/esm/actions/collections.js +9 -17
- package/dist/esm/actions/config.js +58 -74
- package/dist/esm/actions/deploys.js +10 -17
- package/dist/esm/actions/editorialWorkflow.js +87 -101
- package/dist/esm/actions/entries.js +161 -211
- package/dist/esm/actions/media.js +31 -46
- package/dist/esm/actions/mediaLibrary.js +94 -126
- package/dist/esm/actions/notifications.js +5 -13
- package/dist/esm/actions/search.js +30 -47
- package/dist/esm/actions/status.js +13 -23
- package/dist/esm/actions/waitUntil.js +4 -11
- package/dist/esm/backend.js +132 -148
- package/dist/esm/bootstrap.js +37 -44
- package/dist/esm/components/App/App.js +82 -89
- package/dist/esm/components/App/Header.js +46 -52
- package/dist/esm/components/App/NotFoundPage.js +11 -18
- package/dist/esm/components/Collection/Collection.js +55 -63
- package/dist/esm/components/Collection/CollectionControls.js +15 -22
- package/dist/esm/components/Collection/CollectionSearch.js +35 -42
- package/dist/esm/components/Collection/CollectionTop.js +23 -30
- package/dist/esm/components/Collection/ControlButton.js +10 -16
- package/dist/esm/components/Collection/Entries/Entries.js +24 -31
- package/dist/esm/components/Collection/Entries/EntriesCollection.js +52 -62
- package/dist/esm/components/Collection/Entries/EntriesSearch.js +26 -33
- package/dist/esm/components/Collection/Entries/EntryCard.js +38 -45
- package/dist/esm/components/Collection/Entries/EntryListing.js +24 -32
- package/dist/esm/components/Collection/FilterControl.js +9 -16
- package/dist/esm/components/Collection/GroupControl.js +9 -16
- package/dist/esm/components/Collection/NestedCollection.js +54 -65
- package/dist/esm/components/Collection/Sidebar.js +36 -43
- package/dist/esm/components/Collection/SortControl.js +19 -26
- package/dist/esm/components/Collection/ViewStyleControl.js +17 -24
- package/dist/esm/components/Editor/Editor.js +100 -108
- package/dist/esm/components/Editor/EditorControlPane/EditorControl.js +105 -112
- package/dist/esm/components/Editor/EditorControlPane/EditorControlPane.js +68 -62
- package/dist/esm/components/Editor/EditorControlPane/Widget.js +87 -73
- package/dist/esm/components/Editor/EditorInterface.js +95 -98
- package/dist/esm/components/Editor/EditorPreviewPane/EditorPreview.js +13 -21
- package/dist/esm/components/Editor/EditorPreviewPane/EditorPreviewContent.js +64 -23
- package/dist/esm/components/Editor/EditorPreviewPane/EditorPreviewPane.js +94 -78
- package/dist/esm/components/Editor/EditorPreviewPane/PreviewHOC.js +9 -16
- package/dist/esm/components/Editor/EditorToolbar.js +133 -140
- package/dist/esm/components/Editor/withWorkflow.js +15 -22
- package/dist/esm/components/EditorWidgets/Unknown/UnknownControl.js +9 -16
- package/dist/esm/components/EditorWidgets/Unknown/UnknownPreview.js +9 -16
- package/dist/esm/components/EditorWidgets/index.js +4 -7
- package/dist/esm/components/MediaLibrary/EmptyMessage.js +12 -19
- package/dist/esm/components/MediaLibrary/MediaLibrary.js +55 -62
- package/dist/esm/components/MediaLibrary/MediaLibraryButtons.js +28 -35
- package/dist/esm/components/MediaLibrary/MediaLibraryCard.js +36 -43
- package/dist/esm/components/MediaLibrary/MediaLibraryCardGrid.js +50 -57
- package/dist/esm/components/MediaLibrary/MediaLibraryHeader.js +16 -23
- package/dist/esm/components/MediaLibrary/MediaLibraryModal.js +59 -64
- package/dist/esm/components/MediaLibrary/MediaLibrarySearch.js +18 -25
- package/dist/esm/components/MediaLibrary/MediaLibraryTop.js +39 -46
- package/dist/esm/components/UI/DragDrop.js +21 -30
- package/dist/esm/components/UI/ErrorBoundary.js +35 -43
- package/dist/esm/components/UI/FileUploadButton.js +11 -18
- package/dist/esm/components/UI/Modal.js +19 -26
- package/dist/esm/components/UI/Notifications.js +21 -28
- package/dist/esm/components/UI/SettingsDropdown.js +28 -34
- package/dist/esm/components/UI/index.js +6 -60
- package/dist/esm/components/Workflow/Workflow.js +52 -61
- package/dist/esm/components/Workflow/WorkflowCard.js +45 -51
- package/dist/esm/components/Workflow/WorkflowList.js +43 -49
- package/dist/esm/constants/collectionTypes.js +2 -8
- package/dist/esm/constants/collectionViews.js +2 -8
- package/dist/esm/constants/commitProps.js +2 -8
- package/dist/esm/constants/configSchema.js +20 -27
- package/dist/esm/constants/fieldInference.js +8 -15
- package/dist/esm/constants/publishModes.js +6 -11
- package/dist/esm/constants/validationErrorTypes.js +1 -7
- package/dist/esm/formats/formats.js +32 -41
- package/dist/esm/formats/frontmatter.js +18 -30
- package/dist/esm/formats/helpers.js +1 -7
- package/dist/esm/formats/json.js +1 -7
- package/dist/esm/formats/toml.js +11 -18
- package/dist/esm/formats/yaml.js +7 -14
- package/dist/esm/index.js +5 -12
- package/dist/esm/integrations/index.js +8 -16
- package/dist/esm/integrations/providers/algolia/implementation.js +14 -22
- package/dist/esm/integrations/providers/assetStore/implementation.js +10 -18
- package/dist/esm/lib/consoleError.js +1 -7
- package/dist/esm/lib/formatters.js +34 -47
- package/dist/esm/lib/i18n.js +37 -66
- package/dist/esm/lib/phrases.js +4 -11
- package/dist/esm/lib/registry.js +40 -75
- package/dist/esm/lib/serializeEntryValues.js +11 -18
- package/dist/esm/lib/textHelper.js +1 -7
- package/dist/esm/lib/urlHelper.js +28 -43
- package/dist/esm/mediaLibrary.js +12 -16
- package/dist/esm/reducers/auth.js +10 -16
- package/dist/esm/reducers/collections.js +70 -102
- package/dist/esm/reducers/combinedReducer.js +4 -11
- package/dist/esm/reducers/config.js +11 -19
- package/dist/esm/reducers/cursors.js +12 -18
- package/dist/esm/reducers/deploys.js +8 -15
- package/dist/esm/reducers/editorialWorkflow.js +37 -47
- package/dist/esm/reducers/entries.js +107 -132
- package/dist/esm/reducers/entryDraft.js +64 -72
- package/dist/esm/reducers/globalUI.js +5 -11
- package/dist/esm/reducers/index.js +43 -64
- package/dist/esm/reducers/integrations.js +8 -16
- package/dist/esm/reducers/mediaLibrary.js +43 -52
- package/dist/esm/reducers/medias.js +11 -18
- package/dist/esm/reducers/notifications.js +9 -15
- package/dist/esm/reducers/search.js +12 -18
- package/dist/esm/reducers/status.js +7 -13
- package/dist/esm/redux/index.js +7 -13
- package/dist/esm/redux/middleware/waitUntilAction.js +3 -10
- package/dist/esm/routing/history.js +7 -15
- package/dist/esm/types/diacritics.d.js +0 -1
- package/dist/esm/types/global.d.js +1 -5
- package/dist/esm/types/immutable.js +1 -5
- package/dist/esm/types/redux.js +7 -8
- package/dist/esm/types/tomlify-j0.4.d.js +0 -1
- package/dist/esm/valueObjects/AssetProxy.js +2 -10
- package/dist/esm/valueObjects/EditorComponent.js +5 -12
- package/dist/esm/valueObjects/Entry.js +3 -10
- package/package.json +3 -2
- package/src/components/Collection/Entries/EntriesCollection.js +7 -8
- package/src/components/Collection/Entries/__tests__/EntriesCollection.spec.js +3 -5
- package/src/components/Collection/Entries/__tests__/__snapshots__/EntriesCollection.spec.js.snap +8 -8
- package/src/components/Collection/NestedCollection.js +2 -2
- package/src/components/Collection/__tests__/__snapshots__/NestedCollection.spec.js.snap +68 -0
- package/src/components/Editor/EditorControlPane/EditorControl.js +0 -3
- package/src/components/Editor/EditorControlPane/EditorControlPane.js +21 -8
- package/src/components/Editor/EditorControlPane/Widget.js +22 -1
- package/src/components/Editor/EditorInterface.js +6 -1
- package/src/components/Editor/EditorPreviewPane/EditorPreviewContent.js +51 -11
- package/src/components/Editor/EditorPreviewPane/EditorPreviewPane.js +33 -1
- package/dist/esm/actions/editorControl.js +0 -14
- package/dist/esm/reducers/editorComponent.js +0 -1
- package/dist/esm/reducers/editorControl.js +0 -17
|
@@ -1,8 +1,2 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.FOLDER = exports.FILES = void 0;
|
|
7
|
-
const FILES = exports.FILES = 'file_based_collection';
|
|
8
|
-
const FOLDER = exports.FOLDER = 'folder_based_collection';
|
|
1
|
+
export const FILES = 'file_based_collection';
|
|
2
|
+
export const FOLDER = 'folder_based_collection';
|
|
@@ -1,8 +1,2 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.VIEW_STYLE_LIST = exports.VIEW_STYLE_GRID = void 0;
|
|
7
|
-
const VIEW_STYLE_LIST = exports.VIEW_STYLE_LIST = 'VIEW_STYLE_LIST';
|
|
8
|
-
const VIEW_STYLE_GRID = exports.VIEW_STYLE_GRID = 'VIEW_STYLE_GRID';
|
|
1
|
+
export const VIEW_STYLE_LIST = 'VIEW_STYLE_LIST';
|
|
2
|
+
export const VIEW_STYLE_GRID = 'VIEW_STYLE_GRID';
|
|
@@ -1,8 +1,2 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.COMMIT_DATE = exports.COMMIT_AUTHOR = void 0;
|
|
7
|
-
const COMMIT_AUTHOR = exports.COMMIT_AUTHOR = 'commit_author';
|
|
8
|
-
const COMMIT_DATE = exports.COMMIT_DATE = 'commit_date';
|
|
1
|
+
export const COMMIT_AUTHOR = 'commit_author';
|
|
2
|
+
export const COMMIT_DATE = 'commit_date';
|
|
@@ -1,17 +1,3 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.validateConfig = validateConfig;
|
|
7
|
-
var _ajv = _interopRequireDefault(require("ajv"));
|
|
8
|
-
var _keywords = require("ajv-keywords/dist/keywords");
|
|
9
|
-
var _ajvErrors = _interopRequireDefault(require("ajv-errors"));
|
|
10
|
-
var _uuid = require("uuid");
|
|
11
|
-
var _formats = require("../formats/formats");
|
|
12
|
-
var _registry = require("../lib/registry");
|
|
13
|
-
var _i18n = require("../lib/i18n");
|
|
14
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
15
1
|
function _extendableBuiltin(cls) {
|
|
16
2
|
function ExtendableBuiltin() {
|
|
17
3
|
var instance = Reflect.construct(cls, Array.from(arguments));
|
|
@@ -38,6 +24,13 @@ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t =
|
|
|
38
24
|
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; }
|
|
39
25
|
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : String(i); }
|
|
40
26
|
function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
27
|
+
import AJV from 'ajv';
|
|
28
|
+
import { select, uniqueItemProperties, instanceof as instanceOf, prohibited } from 'ajv-keywords/dist/keywords';
|
|
29
|
+
import ajvErrors from 'ajv-errors';
|
|
30
|
+
import { v4 as uuid } from 'uuid';
|
|
31
|
+
import { frontmatterFormats, extensionFormatters } from '../formats/formats';
|
|
32
|
+
import { getWidgets } from '../lib/registry';
|
|
33
|
+
import { I18N_STRUCTURE, I18N_FIELD } from '../lib/i18n';
|
|
41
34
|
const localeType = {
|
|
42
35
|
type: 'string',
|
|
43
36
|
minLength: 2,
|
|
@@ -49,7 +42,7 @@ const i18n = {
|
|
|
49
42
|
properties: {
|
|
50
43
|
structure: {
|
|
51
44
|
type: 'string',
|
|
52
|
-
enum: Object.values(
|
|
45
|
+
enum: Object.values(I18N_STRUCTURE)
|
|
53
46
|
},
|
|
54
47
|
locales: {
|
|
55
48
|
type: 'array',
|
|
@@ -73,7 +66,7 @@ const i18nField = {
|
|
|
73
66
|
type: 'boolean'
|
|
74
67
|
}, {
|
|
75
68
|
type: 'string',
|
|
76
|
-
enum: Object.values(
|
|
69
|
+
enum: Object.values(I18N_FIELD)
|
|
77
70
|
}]
|
|
78
71
|
};
|
|
79
72
|
|
|
@@ -81,7 +74,7 @@ const i18nField = {
|
|
|
81
74
|
* Config for fields in both file and folder collections.
|
|
82
75
|
*/
|
|
83
76
|
function fieldsConfig() {
|
|
84
|
-
const id = (
|
|
77
|
+
const id = uuid();
|
|
85
78
|
return {
|
|
86
79
|
$id: `fields_${id}`,
|
|
87
80
|
type: 'array',
|
|
@@ -471,7 +464,7 @@ function getConfigSchema() {
|
|
|
471
464
|
if: {
|
|
472
465
|
properties: {
|
|
473
466
|
extension: {
|
|
474
|
-
enum: Object.keys(
|
|
467
|
+
enum: Object.keys(extensionFormatters)
|
|
475
468
|
}
|
|
476
469
|
}
|
|
477
470
|
},
|
|
@@ -483,7 +476,7 @@ function getConfigSchema() {
|
|
|
483
476
|
frontmatter_delimiter: {
|
|
484
477
|
properties: {
|
|
485
478
|
format: {
|
|
486
|
-
enum:
|
|
479
|
+
enum: frontmatterFormats
|
|
487
480
|
}
|
|
488
481
|
},
|
|
489
482
|
required: ['format']
|
|
@@ -510,7 +503,7 @@ function getConfigSchema() {
|
|
|
510
503
|
};
|
|
511
504
|
}
|
|
512
505
|
function getWidgetSchemas() {
|
|
513
|
-
const schemas =
|
|
506
|
+
const schemas = getWidgets().map(widget => ({
|
|
514
507
|
[widget.name]: widget.schema
|
|
515
508
|
}));
|
|
516
509
|
return Object.assign(...schemas);
|
|
@@ -537,17 +530,17 @@ class ConfigError extends _extendableBuiltin(Error) {
|
|
|
537
530
|
* `validateConfig` is a pure function. It does not mutate
|
|
538
531
|
* the config that is passed in.
|
|
539
532
|
*/
|
|
540
|
-
function validateConfig(config) {
|
|
541
|
-
const ajv = new
|
|
533
|
+
export function validateConfig(config) {
|
|
534
|
+
const ajv = new AJV({
|
|
542
535
|
allErrors: true,
|
|
543
536
|
$data: true,
|
|
544
537
|
strict: false
|
|
545
538
|
});
|
|
546
|
-
|
|
547
|
-
|
|
548
|
-
(
|
|
549
|
-
|
|
550
|
-
(
|
|
539
|
+
uniqueItemProperties(ajv);
|
|
540
|
+
select(ajv);
|
|
541
|
+
instanceOf(ajv);
|
|
542
|
+
prohibited(ajv);
|
|
543
|
+
ajvErrors(ajv);
|
|
551
544
|
const valid = ajv.validate(getConfigSchema(), config);
|
|
552
545
|
if (!valid) {
|
|
553
546
|
const errors = ajv.errors.map(e => {
|
|
@@ -1,20 +1,13 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
exports.SORTABLE_FIELDS = exports.INFERABLE_FIELDS = exports.IDENTIFIER_FIELDS = void 0;
|
|
7
|
-
var _react = _interopRequireDefault(require("react"));
|
|
8
|
-
var _react2 = require("@emotion/react");
|
|
9
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
10
|
-
const IDENTIFIER_FIELDS = exports.IDENTIFIER_FIELDS = ['title', 'path'];
|
|
11
|
-
const SORTABLE_FIELDS = exports.SORTABLE_FIELDS = ['title', 'date', 'author', 'description'];
|
|
12
|
-
const INFERABLE_FIELDS = exports.INFERABLE_FIELDS = {
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { jsx as ___EmotionJSX } from "@emotion/react";
|
|
3
|
+
export const IDENTIFIER_FIELDS = ['title', 'path'];
|
|
4
|
+
export const SORTABLE_FIELDS = ['title', 'date', 'author', 'description'];
|
|
5
|
+
export const INFERABLE_FIELDS = {
|
|
13
6
|
title: {
|
|
14
7
|
type: 'string',
|
|
15
8
|
secondaryTypes: [],
|
|
16
9
|
synonyms: ['title', 'name', 'label', 'headline', 'header'],
|
|
17
|
-
defaultPreview: value => (
|
|
10
|
+
defaultPreview: value => ___EmotionJSX("h1", null, value),
|
|
18
11
|
// eslint-disable-line react/display-name
|
|
19
12
|
fallbackToFirstField: true,
|
|
20
13
|
showError: true
|
|
@@ -23,7 +16,7 @@ const INFERABLE_FIELDS = exports.INFERABLE_FIELDS = {
|
|
|
23
16
|
type: 'string',
|
|
24
17
|
secondaryTypes: [],
|
|
25
18
|
synonyms: ['short_title', 'shortTitle', 'short'],
|
|
26
|
-
defaultPreview: value => (
|
|
19
|
+
defaultPreview: value => ___EmotionJSX("h2", null, value),
|
|
27
20
|
// eslint-disable-line react/display-name
|
|
28
21
|
fallbackToFirstField: false,
|
|
29
22
|
showError: false
|
|
@@ -32,7 +25,7 @@ const INFERABLE_FIELDS = exports.INFERABLE_FIELDS = {
|
|
|
32
25
|
type: 'string',
|
|
33
26
|
secondaryTypes: [],
|
|
34
27
|
synonyms: ['author', 'name', 'by', 'byline', 'owner'],
|
|
35
|
-
defaultPreview: value => (
|
|
28
|
+
defaultPreview: value => ___EmotionJSX("strong", null, value),
|
|
36
29
|
// eslint-disable-line react/display-name
|
|
37
30
|
fallbackToFirstField: false,
|
|
38
31
|
showError: false
|
|
@@ -1,22 +1,17 @@
|
|
|
1
|
-
|
|
1
|
+
import { Map, OrderedMap } from 'immutable';
|
|
2
2
|
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.statusDescriptions = exports.status = exports.Statues = exports.SIMPLE = exports.EDITORIAL_WORKFLOW = void 0;
|
|
7
|
-
var _immutable = require("immutable");
|
|
8
3
|
// Create/edit workflow modes
|
|
9
|
-
const SIMPLE =
|
|
10
|
-
const EDITORIAL_WORKFLOW =
|
|
11
|
-
const Statues =
|
|
4
|
+
export const SIMPLE = 'simple';
|
|
5
|
+
export const EDITORIAL_WORKFLOW = 'editorial_workflow';
|
|
6
|
+
export const Statues = {
|
|
12
7
|
DRAFT: 'draft',
|
|
13
8
|
PENDING_REVIEW: 'pending_review',
|
|
14
9
|
PENDING_PUBLISH: 'pending_publish'
|
|
15
10
|
};
|
|
16
11
|
|
|
17
12
|
// Available status
|
|
18
|
-
const status =
|
|
19
|
-
const statusDescriptions =
|
|
13
|
+
export const status = OrderedMap(Statues);
|
|
14
|
+
export const statusDescriptions = Map({
|
|
20
15
|
[status.get('DRAFT')]: 'Draft',
|
|
21
16
|
[status.get('PENDING_REVIEW')]: 'Waiting for Review',
|
|
22
17
|
[status.get('PENDING_PUBLISH')]: 'Waiting to go live'
|
|
@@ -1,26 +1,17 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.frontmatterFormats = exports.formatExtensions = exports.extensionFormatters = void 0;
|
|
7
|
-
exports.getFormatExtensions = getFormatExtensions;
|
|
8
|
-
exports.resolveFormat = resolveFormat;
|
|
9
|
-
var _get2 = _interopRequireDefault(require("lodash/get"));
|
|
10
|
-
var _immutable = require("immutable");
|
|
11
|
-
var _yaml = _interopRequireDefault(require("./yaml"));
|
|
12
|
-
var _toml = _interopRequireDefault(require("./toml"));
|
|
13
|
-
var _json = _interopRequireDefault(require("./json"));
|
|
14
|
-
var _frontmatter = require("./frontmatter");
|
|
15
|
-
var _registry = require("../lib/registry");
|
|
16
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
1
|
+
import _get from "lodash/get";
|
|
17
2
|
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
18
3
|
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
19
4
|
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; }
|
|
20
5
|
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : String(i); }
|
|
21
6
|
function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
22
|
-
|
|
23
|
-
|
|
7
|
+
import { List } from 'immutable';
|
|
8
|
+
import yamlFormatter from './yaml';
|
|
9
|
+
import tomlFormatter from './toml';
|
|
10
|
+
import jsonFormatter from './json';
|
|
11
|
+
import { FrontmatterInfer, frontmatterJSON, frontmatterTOML, frontmatterYAML } from './frontmatter';
|
|
12
|
+
import { getCustomFormatsExtensions, getCustomFormatsFormatters } from '../lib/registry';
|
|
13
|
+
export const frontmatterFormats = ['yaml-frontmatter', 'toml-frontmatter', 'json-frontmatter'];
|
|
14
|
+
export const formatExtensions = {
|
|
24
15
|
yml: 'yml',
|
|
25
16
|
yaml: 'yml',
|
|
26
17
|
toml: 'toml',
|
|
@@ -30,38 +21,38 @@ const formatExtensions = exports.formatExtensions = {
|
|
|
30
21
|
'toml-frontmatter': 'md',
|
|
31
22
|
'yaml-frontmatter': 'md'
|
|
32
23
|
};
|
|
33
|
-
function getFormatExtensions() {
|
|
34
|
-
return _objectSpread(_objectSpread({}, formatExtensions),
|
|
24
|
+
export function getFormatExtensions() {
|
|
25
|
+
return _objectSpread(_objectSpread({}, formatExtensions), getCustomFormatsExtensions());
|
|
35
26
|
}
|
|
36
|
-
const extensionFormatters =
|
|
37
|
-
yml:
|
|
38
|
-
yaml:
|
|
39
|
-
toml:
|
|
40
|
-
json:
|
|
41
|
-
md:
|
|
42
|
-
markdown:
|
|
43
|
-
html:
|
|
27
|
+
export const extensionFormatters = {
|
|
28
|
+
yml: yamlFormatter,
|
|
29
|
+
yaml: yamlFormatter,
|
|
30
|
+
toml: tomlFormatter,
|
|
31
|
+
json: jsonFormatter,
|
|
32
|
+
md: FrontmatterInfer,
|
|
33
|
+
markdown: FrontmatterInfer,
|
|
34
|
+
html: FrontmatterInfer
|
|
44
35
|
};
|
|
45
36
|
function formatByName(name, customDelimiter) {
|
|
46
37
|
const formatters = _objectSpread({
|
|
47
|
-
yml:
|
|
48
|
-
yaml:
|
|
49
|
-
toml:
|
|
50
|
-
json:
|
|
51
|
-
frontmatter:
|
|
52
|
-
'json-frontmatter':
|
|
53
|
-
'toml-frontmatter':
|
|
54
|
-
'yaml-frontmatter':
|
|
55
|
-
},
|
|
38
|
+
yml: yamlFormatter,
|
|
39
|
+
yaml: yamlFormatter,
|
|
40
|
+
toml: tomlFormatter,
|
|
41
|
+
json: jsonFormatter,
|
|
42
|
+
frontmatter: FrontmatterInfer,
|
|
43
|
+
'json-frontmatter': frontmatterJSON(customDelimiter),
|
|
44
|
+
'toml-frontmatter': frontmatterTOML(customDelimiter),
|
|
45
|
+
'yaml-frontmatter': frontmatterYAML(customDelimiter)
|
|
46
|
+
}, getCustomFormatsFormatters());
|
|
56
47
|
if (name in formatters) {
|
|
57
48
|
return formatters[name];
|
|
58
49
|
}
|
|
59
50
|
throw new Error(`No formatter available with name: ${name}`);
|
|
60
51
|
}
|
|
61
52
|
function frontmatterDelimiterIsList(frontmatterDelimiter) {
|
|
62
|
-
return
|
|
53
|
+
return List.isList(frontmatterDelimiter);
|
|
63
54
|
}
|
|
64
|
-
function resolveFormat(collection, entry) {
|
|
55
|
+
export function resolveFormat(collection, entry) {
|
|
65
56
|
// Check for custom delimiter
|
|
66
57
|
const frontmatter_delimiter = collection.get('frontmatter_delimiter');
|
|
67
58
|
const customDelimiter = frontmatterDelimiterIsList(frontmatter_delimiter) ? frontmatter_delimiter.toArray() : frontmatter_delimiter;
|
|
@@ -77,7 +68,7 @@ function resolveFormat(collection, entry) {
|
|
|
77
68
|
if (filePath) {
|
|
78
69
|
const fileExtension = filePath.split('.').pop();
|
|
79
70
|
if (fileExtension) {
|
|
80
|
-
return (
|
|
71
|
+
return _get(extensionFormatters, fileExtension);
|
|
81
72
|
}
|
|
82
73
|
}
|
|
83
74
|
|
|
@@ -85,7 +76,7 @@ function resolveFormat(collection, entry) {
|
|
|
85
76
|
// collection config, infer the format from that extension.
|
|
86
77
|
const extension = collection.get('extension');
|
|
87
78
|
if (extension) {
|
|
88
|
-
return (
|
|
79
|
+
return _get(extensionFormatters, extension);
|
|
89
80
|
}
|
|
90
81
|
|
|
91
82
|
// If no format is specified and it cannot be inferred, return the default.
|
|
@@ -1,19 +1,4 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.FrontmatterInfer = exports.FrontmatterFormatter = void 0;
|
|
7
|
-
exports.frontmatterJSON = frontmatterJSON;
|
|
8
|
-
exports.frontmatterTOML = frontmatterTOML;
|
|
9
|
-
exports.frontmatterYAML = frontmatterYAML;
|
|
10
|
-
exports.getFormatOpts = getFormatOpts;
|
|
11
|
-
var _grayMatter = _interopRequireDefault(require("gray-matter"));
|
|
12
|
-
var _toml = _interopRequireDefault(require("./toml"));
|
|
13
|
-
var _yaml = _interopRequireDefault(require("./yaml"));
|
|
14
|
-
var _json = _interopRequireDefault(require("./json"));
|
|
15
1
|
const _excluded = ["body"];
|
|
16
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
17
2
|
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; }
|
|
18
3
|
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; }
|
|
19
4
|
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
@@ -21,6 +6,10 @@ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t =
|
|
|
21
6
|
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; }
|
|
22
7
|
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : String(i); }
|
|
23
8
|
function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
9
|
+
import matter from 'gray-matter';
|
|
10
|
+
import tomlFormatter from './toml';
|
|
11
|
+
import yamlFormatter from './yaml';
|
|
12
|
+
import jsonFormatter from './json';
|
|
24
13
|
const Languages = {
|
|
25
14
|
YAML: 'yaml',
|
|
26
15
|
TOML: 'toml',
|
|
@@ -28,12 +17,12 @@ const Languages = {
|
|
|
28
17
|
};
|
|
29
18
|
const parsers = {
|
|
30
19
|
toml: {
|
|
31
|
-
parse: input =>
|
|
20
|
+
parse: input => tomlFormatter.fromFile(input),
|
|
32
21
|
stringify: (metadata, opts) => {
|
|
33
22
|
const {
|
|
34
23
|
sortedKeys
|
|
35
24
|
} = opts || {};
|
|
36
|
-
return
|
|
25
|
+
return tomlFormatter.toFile(metadata, sortedKeys);
|
|
37
26
|
}
|
|
38
27
|
},
|
|
39
28
|
json: {
|
|
@@ -43,10 +32,10 @@ const parsers = {
|
|
|
43
32
|
if (JSONinput.slice(0, 1) !== '{') {
|
|
44
33
|
JSONinput = '{' + JSONinput + '}';
|
|
45
34
|
}
|
|
46
|
-
return
|
|
35
|
+
return jsonFormatter.fromFile(JSONinput);
|
|
47
36
|
},
|
|
48
37
|
stringify: metadata => {
|
|
49
|
-
let JSONoutput =
|
|
38
|
+
let JSONoutput = jsonFormatter.toFile(metadata).trim();
|
|
50
39
|
// Trim leading and trailing brackets.
|
|
51
40
|
if (JSONoutput.slice(0, 1) === '{' && JSONoutput.slice(-1) === '}') {
|
|
52
41
|
JSONoutput = JSONoutput.slice(1, -1);
|
|
@@ -55,13 +44,13 @@ const parsers = {
|
|
|
55
44
|
}
|
|
56
45
|
},
|
|
57
46
|
yaml: {
|
|
58
|
-
parse: input =>
|
|
47
|
+
parse: input => yamlFormatter.fromFile(input),
|
|
59
48
|
stringify: (metadata, opts) => {
|
|
60
49
|
const {
|
|
61
50
|
sortedKeys,
|
|
62
51
|
comments
|
|
63
52
|
} = opts || {};
|
|
64
|
-
return
|
|
53
|
+
return yamlFormatter.toFile(metadata, sortedKeys, comments);
|
|
65
54
|
}
|
|
66
55
|
}
|
|
67
56
|
};
|
|
@@ -83,7 +72,7 @@ function inferFrontmatterFormat(str) {
|
|
|
83
72
|
console.warn('Unrecognized front-matter format.');
|
|
84
73
|
}
|
|
85
74
|
}
|
|
86
|
-
function getFormatOpts(format, customDelimiter) {
|
|
75
|
+
export function getFormatOpts(format, customDelimiter) {
|
|
87
76
|
if (!format) {
|
|
88
77
|
return undefined;
|
|
89
78
|
}
|
|
@@ -110,14 +99,14 @@ function getFormatOpts(format, customDelimiter) {
|
|
|
110
99
|
delimiters: customDelimiter || delimiters
|
|
111
100
|
};
|
|
112
101
|
}
|
|
113
|
-
class FrontmatterFormatter {
|
|
102
|
+
export class FrontmatterFormatter {
|
|
114
103
|
constructor(format, customDelimiter) {
|
|
115
104
|
_defineProperty(this, "format", void 0);
|
|
116
105
|
this.format = getFormatOpts(format, customDelimiter);
|
|
117
106
|
}
|
|
118
107
|
fromFile(content) {
|
|
119
108
|
const format = this.format || inferFrontmatterFormat(content);
|
|
120
|
-
const result = (
|
|
109
|
+
const result = matter(content, _objectSpread({
|
|
121
110
|
engines: parsers
|
|
122
111
|
}, format));
|
|
123
112
|
// in the absent of a body when serializing an entry we use an empty one
|
|
@@ -139,7 +128,7 @@ class FrontmatterFormatter {
|
|
|
139
128
|
// change detection logic
|
|
140
129
|
// https://github.com/jonschlinkert/gray-matter/issues/96
|
|
141
130
|
const trimLastLineBreak = body.slice(-1) !== '\n';
|
|
142
|
-
const file =
|
|
131
|
+
const file = matter.stringify(body, meta, _objectSpread({
|
|
143
132
|
engines: parsers,
|
|
144
133
|
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
145
134
|
// @ts-ignore `sortedKeys` is not recognized by gray-matter, so it gets passed through to the parser
|
|
@@ -149,14 +138,13 @@ class FrontmatterFormatter {
|
|
|
149
138
|
return trimLastLineBreak && file.slice(-1) === '\n' ? file.slice(0, -1) : file;
|
|
150
139
|
}
|
|
151
140
|
}
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
function frontmatterYAML(customDelimiter) {
|
|
141
|
+
export const FrontmatterInfer = new FrontmatterFormatter();
|
|
142
|
+
export function frontmatterYAML(customDelimiter) {
|
|
155
143
|
return new FrontmatterFormatter(Languages.YAML, customDelimiter);
|
|
156
144
|
}
|
|
157
|
-
function frontmatterTOML(customDelimiter) {
|
|
145
|
+
export function frontmatterTOML(customDelimiter) {
|
|
158
146
|
return new FrontmatterFormatter(Languages.TOML, customDelimiter);
|
|
159
147
|
}
|
|
160
|
-
function frontmatterJSON(customDelimiter) {
|
|
148
|
+
export function frontmatterJSON(customDelimiter) {
|
|
161
149
|
return new FrontmatterFormatter(Languages.JSON, customDelimiter);
|
|
162
150
|
}
|
|
@@ -1,10 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.sortKeys = sortKeys;
|
|
7
|
-
function sortKeys(sortedKeys,
|
|
1
|
+
export function sortKeys(sortedKeys,
|
|
8
2
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
9
3
|
selector = a => a) {
|
|
10
4
|
return (a, b) => {
|
package/dist/esm/formats/json.js
CHANGED
package/dist/esm/formats/toml.js
CHANGED
|
@@ -1,22 +1,15 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
}
|
|
6
|
-
exports.default = void 0;
|
|
7
|
-
var _toml = _interopRequireDefault(require("@iarna/toml"));
|
|
8
|
-
var _tomlifyJ = _interopRequireDefault(require("tomlify-j0.4"));
|
|
9
|
-
var _dayjs = _interopRequireDefault(require("dayjs"));
|
|
10
|
-
var _AssetProxy = _interopRequireDefault(require("../valueObjects/AssetProxy"));
|
|
11
|
-
var _helpers = require("./helpers");
|
|
12
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
1
|
+
import toml from '@iarna/toml';
|
|
2
|
+
import tomlify from 'tomlify-j0.4';
|
|
3
|
+
import dayjs from 'dayjs';
|
|
4
|
+
import AssetProxy from '../valueObjects/AssetProxy';
|
|
5
|
+
import { sortKeys } from './helpers';
|
|
13
6
|
function outputReplacer(_key, value) {
|
|
14
|
-
if (
|
|
7
|
+
if (dayjs.isDayjs(value)) {
|
|
15
8
|
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
16
9
|
// @ts-ignore
|
|
17
10
|
return value.format(value._f);
|
|
18
11
|
}
|
|
19
|
-
if (value instanceof
|
|
12
|
+
if (value instanceof AssetProxy) {
|
|
20
13
|
return `${value.path}`;
|
|
21
14
|
}
|
|
22
15
|
if (typeof value === 'number' && Number.isInteger(value)) {
|
|
@@ -26,14 +19,14 @@ function outputReplacer(_key, value) {
|
|
|
26
19
|
// Return `false` to use default (`undefined` would delete key).
|
|
27
20
|
return false;
|
|
28
21
|
}
|
|
29
|
-
|
|
22
|
+
export default {
|
|
30
23
|
fromFile(content) {
|
|
31
|
-
return
|
|
24
|
+
return toml.parse(content);
|
|
32
25
|
},
|
|
33
26
|
toFile(data, sortedKeys = []) {
|
|
34
|
-
return
|
|
27
|
+
return tomlify.toToml(data, {
|
|
35
28
|
replace: outputReplacer,
|
|
36
|
-
sort:
|
|
29
|
+
sort: sortKeys(sortedKeys)
|
|
37
30
|
});
|
|
38
31
|
}
|
|
39
32
|
};
|
package/dist/esm/formats/yaml.js
CHANGED
|
@@ -1,12 +1,5 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.default = void 0;
|
|
7
|
-
var _yaml = _interopRequireDefault(require("yaml"));
|
|
8
|
-
var _helpers = require("./helpers");
|
|
9
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
1
|
+
import yaml from 'yaml';
|
|
2
|
+
import { sortKeys } from './helpers';
|
|
10
3
|
function addComments(items, comments, prefix = '') {
|
|
11
4
|
items.forEach(item => {
|
|
12
5
|
if (item.key !== undefined) {
|
|
@@ -39,23 +32,23 @@ const timestampTag = {
|
|
|
39
32
|
resolve: str => new Date(str),
|
|
40
33
|
stringify: value => value.toISOString()
|
|
41
34
|
};
|
|
42
|
-
|
|
35
|
+
export default {
|
|
43
36
|
fromFile(content) {
|
|
44
37
|
if (content && content.trim().endsWith('---')) {
|
|
45
38
|
content = content.trim().slice(0, -3);
|
|
46
39
|
}
|
|
47
|
-
return
|
|
40
|
+
return yaml.parse(content, {
|
|
48
41
|
customTags: [timestampTag]
|
|
49
42
|
});
|
|
50
43
|
},
|
|
51
44
|
toFile(data, sortedKeys = [], comments = {}) {
|
|
52
|
-
const contents =
|
|
45
|
+
const contents = yaml.createNode(data);
|
|
53
46
|
addComments(contents.items, comments);
|
|
54
|
-
contents.items.sort(
|
|
47
|
+
contents.items.sort(sortKeys(sortedKeys, item => {
|
|
55
48
|
var _item$key;
|
|
56
49
|
return (_item$key = item.key) === null || _item$key === void 0 ? void 0 : _item$key.toString();
|
|
57
50
|
}));
|
|
58
|
-
const doc = new
|
|
51
|
+
const doc = new yaml.Document();
|
|
59
52
|
doc.contents = contents;
|
|
60
53
|
return doc.toString();
|
|
61
54
|
}
|
package/dist/esm/index.js
CHANGED
|
@@ -1,18 +1,11 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.default = exports.DecapCmsCore = void 0;
|
|
7
|
-
var _bootstrap = _interopRequireDefault(require("./bootstrap"));
|
|
8
|
-
var _registry = _interopRequireDefault(require("./lib/registry"));
|
|
9
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
10
1
|
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
11
2
|
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
12
3
|
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; }
|
|
13
4
|
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : String(i); }
|
|
14
5
|
function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
15
|
-
|
|
16
|
-
|
|
6
|
+
import bootstrap from './bootstrap';
|
|
7
|
+
import Registry from './lib/registry';
|
|
8
|
+
export const DecapCmsCore = _objectSpread(_objectSpread({}, Registry), {}, {
|
|
9
|
+
init: bootstrap
|
|
17
10
|
});
|
|
18
|
-
|
|
11
|
+
export default DecapCmsCore;
|