decap-cms-lib-util 3.1.0 → 3.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (52) hide show
  1. package/README.md +1 -1
  2. package/dist/decap-cms-lib-util.js +1 -1
  3. package/dist/decap-cms-lib-util.js.LICENSE.txt +9 -0
  4. package/dist/decap-cms-lib-util.js.map +1 -1
  5. package/dist/esm/API.js +37 -61
  6. package/dist/esm/APIError.js +3 -17
  7. package/dist/esm/APIUtils.js +10 -23
  8. package/dist/esm/AccessTokenError.js +3 -14
  9. package/dist/esm/Cursor.js +16 -28
  10. package/dist/esm/EditorialWorkflowError.js +3 -15
  11. package/dist/esm/asyncLock.js +5 -12
  12. package/dist/esm/backendUtil.js +21 -34
  13. package/dist/esm/getBlobSHA.js +4 -11
  14. package/dist/esm/git-lfs.js +27 -46
  15. package/dist/esm/implementation.js +32 -51
  16. package/dist/esm/index.js +71 -409
  17. package/dist/esm/loadScript.js +1 -7
  18. package/dist/esm/localForage.js +4 -11
  19. package/dist/esm/path.js +4 -13
  20. package/dist/esm/promise.js +5 -14
  21. package/dist/esm/stega.js +129 -0
  22. package/dist/esm/types/semaphore.d.js +0 -1
  23. package/dist/esm/types.js +7 -0
  24. package/dist/esm/unsentRequest.js +21 -31
  25. package/package.json +5 -2
  26. package/CHANGELOG.md +0 -376
  27. package/src/API.ts +0 -376
  28. package/src/APIError.ts +0 -17
  29. package/src/APIUtils.ts +0 -38
  30. package/src/AccessTokenError.ts +0 -11
  31. package/src/Cursor.ts +0 -178
  32. package/src/EditorialWorkflowError.ts +0 -12
  33. package/src/__tests__/api.spec.js +0 -13
  34. package/src/__tests__/apiUtils.spec.js +0 -74
  35. package/src/__tests__/asyncLock.spec.js +0 -85
  36. package/src/__tests__/backendUtil.spec.js +0 -97
  37. package/src/__tests__/implementation.spec.js +0 -58
  38. package/src/__tests__/path.spec.js +0 -53
  39. package/src/__tests__/unsentRequest.spec.js +0 -19
  40. package/src/asyncLock.ts +0 -43
  41. package/src/backendUtil.ts +0 -120
  42. package/src/getBlobSHA.ts +0 -12
  43. package/src/git-lfs.ts +0 -133
  44. package/src/implementation.ts +0 -575
  45. package/src/index.ts +0 -213
  46. package/src/loadScript.js +0 -24
  47. package/src/localForage.ts +0 -21
  48. package/src/path.ts +0 -86
  49. package/src/promise.ts +0 -21
  50. package/src/types/semaphore.d.ts +0 -5
  51. package/src/unsentRequest.js +0 -133
  52. package/webpack.config.js +0 -3
@@ -0,0 +1,129 @@
1
+ import { vercelStegaEncode } from '@vercel/stega';
2
+ import { isImmutableMap, isImmutableList } from './types';
3
+
4
+ /**
5
+ * Context passed to encode functions, containing the current state of the encoding process
6
+ */
7
+
8
+ /**
9
+ * Get the fields that should be used for encoding nested values
10
+ */
11
+ function getNestedFields(f) {
12
+ if (f) {
13
+ if ('types' in f) {
14
+ var _f$types;
15
+ return (_f$types = f.types) !== null && _f$types !== void 0 ? _f$types : [];
16
+ }
17
+ if ('fields' in f) {
18
+ var _f$fields;
19
+ return (_f$fields = f.fields) !== null && _f$fields !== void 0 ? _f$fields : [];
20
+ }
21
+ if ('field' in f) {
22
+ return f.field ? [f.field] : [];
23
+ }
24
+ return [f];
25
+ }
26
+ return [];
27
+ }
28
+
29
+ /**
30
+ * Encode a string value by appending steganographic data
31
+ * For markdown fields, encode each paragraph separately
32
+ */
33
+ function encodeString(value, {
34
+ fields,
35
+ path
36
+ }) {
37
+ var _fields$;
38
+ const stega = vercelStegaEncode({
39
+ decap: path
40
+ });
41
+ const isMarkdown = ((_fields$ = fields[0]) === null || _fields$ === void 0 ? void 0 : _fields$.widget) === 'markdown';
42
+ if (isMarkdown && value.includes('\n\n')) {
43
+ const blocks = value.split(/(\n\n+)/);
44
+ return blocks.map(block => block.trim() ? block + stega : block).join('');
45
+ }
46
+ return value + stega;
47
+ }
48
+
49
+ /**
50
+ * Encode a list of values, handling both simple values and nested objects/lists
51
+ * For typed lists, use the type field to determine which fields to use
52
+ */
53
+ function encodeList(list, ctx) {
54
+ let newList = list;
55
+ for (let i = 0; i < newList.size; i++) {
56
+ const item = newList.get(i);
57
+ if (isImmutableMap(item)) {
58
+ const itemType = item.get('type');
59
+ if (typeof itemType === 'string') {
60
+ // For typed items, look up fields based on type
61
+ const field = ctx.fields.find(f => f.name === itemType);
62
+ const newItem = ctx.visit(item, getNestedFields(field), `${ctx.path}.${i}`);
63
+ newList = newList.set(i, newItem);
64
+ } else {
65
+ // For untyped items, use current fields
66
+ const newItem = ctx.visit(item, ctx.fields, `${ctx.path}.${i}`);
67
+ newList = newList.set(i, newItem);
68
+ }
69
+ } else {
70
+ // For simple values, use first field if available
71
+ const field = ctx.fields[0];
72
+ const newItem = ctx.visit(item, field ? [field] : [], `${ctx.path}.${i}`);
73
+ if (newItem !== item) {
74
+ newList = newList.set(i, newItem);
75
+ }
76
+ }
77
+ }
78
+ return newList;
79
+ }
80
+
81
+ /**
82
+ * Encode a map of values, looking up the appropriate field for each key
83
+ * and recursively encoding nested values
84
+ */
85
+ function encodeMap(map, ctx) {
86
+ let newMap = map;
87
+ for (const [key, val] of newMap.entrySeq().toArray()) {
88
+ const field = ctx.fields.find(f => f.name === key);
89
+ if (field) {
90
+ const fields = getNestedFields(field);
91
+ const newVal = ctx.visit(val, fields, ctx.path ? `${ctx.path}.${key}` : key);
92
+ if (newVal !== val) {
93
+ newMap = newMap.set(key, newVal);
94
+ }
95
+ }
96
+ }
97
+ return newMap;
98
+ }
99
+
100
+ /**
101
+ * Main entry point for encoding steganographic data into entry values
102
+ * Uses a visitor pattern with caching to handle recursive structures
103
+ */
104
+ export function encodeEntry(value, fields) {
105
+ const plainFields = fields.toJS();
106
+ const cache = new Map();
107
+ function visit(value, fields, path = '') {
108
+ const cached = cache.get(path);
109
+ if (cached === value) return value;
110
+ const ctx = {
111
+ fields,
112
+ path,
113
+ visit
114
+ };
115
+ let result;
116
+ if (isImmutableList(value)) {
117
+ result = encodeList(value, ctx);
118
+ } else if (isImmutableMap(value)) {
119
+ result = encodeMap(value, ctx);
120
+ } else if (typeof value === 'string') {
121
+ result = encodeString(value, ctx);
122
+ } else {
123
+ result = value;
124
+ }
125
+ cache.set(path, result);
126
+ return result;
127
+ }
128
+ return visit(value, plainFields);
129
+ }
@@ -1 +0,0 @@
1
- "use strict";
@@ -0,0 +1,7 @@
1
+ import { Map as ImmutableMap, List } from 'immutable';
2
+ export function isImmutableMap(value) {
3
+ return ImmutableMap.isMap(value);
4
+ }
5
+ export function isImmutableList(value) {
6
+ return List.isList(value);
7
+ }
@@ -1,19 +1,7 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = void 0;
7
- var _immutable = require("immutable");
8
- var _curry = _interopRequireDefault(require("lodash/curry"));
9
- var _flow = _interopRequireDefault(require("lodash/flow"));
10
- var _isString = _interopRequireDefault(require("lodash/isString"));
11
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
12
- 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; }
13
- 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; }
14
- 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; }
15
- function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : String(i); }
16
- 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); }
1
+ import { fromJS, List, Map } from 'immutable';
2
+ import curry from 'lodash/curry';
3
+ import flow from 'lodash/flow';
4
+ import isString from 'lodash/isString';
17
5
  function isAbortControllerSupported() {
18
6
  if (typeof window !== 'undefined') {
19
7
  return !!window.AbortController;
@@ -27,9 +15,10 @@ function fetchWithTimeout(input, init) {
27
15
  }
28
16
  const controller = new AbortController();
29
17
  const timeoutId = setTimeout(() => controller.abort(), timeout * 1000);
30
- return fetch(input, _objectSpread(_objectSpread({}, init), {}, {
18
+ return fetch(input, {
19
+ ...init,
31
20
  signal: controller.signal
32
- })).then(res => {
21
+ }).then(res => {
33
22
  clearTimeout(timeoutId);
34
23
  return res;
35
24
  }).catch(e => {
@@ -40,18 +29,19 @@ function fetchWithTimeout(input, init) {
40
29
  });
41
30
  }
42
31
  function decodeParams(paramsString) {
43
- return (0, _immutable.List)(paramsString.split('&')).map(s => (0, _immutable.List)(s.split('=')).map(decodeURIComponent)).update(_immutable.Map);
32
+ return List(paramsString.split('&')).map(s => List(s.split('=')).map(decodeURIComponent)).update(Map);
44
33
  }
45
34
  function fromURL(wholeURL) {
46
35
  const [url, allParamsString] = wholeURL.split('?');
47
- return (0, _immutable.Map)(_objectSpread({
48
- url
49
- }, allParamsString ? {
50
- params: decodeParams(allParamsString)
51
- } : {}));
36
+ return Map({
37
+ url,
38
+ ...(allParamsString ? {
39
+ params: decodeParams(allParamsString)
40
+ } : {})
41
+ });
52
42
  }
53
43
  function fromFetchArguments(wholeURL, options) {
54
- return fromURL(wholeURL).merge((options ? (0, _immutable.fromJS)(options) : (0, _immutable.Map)()).remove('url').remove('params'));
44
+ return fromURL(wholeURL).merge((options ? fromJS(options) : Map()).remove('url').remove('params'));
55
45
  }
56
46
  function encodeParams(params) {
57
47
  return params.entrySeq().map(([k, v]) => `${encodeURIComponent(k)}=${encodeURIComponent(v)}`).join('&');
@@ -63,13 +53,13 @@ function toFetchArguments(req) {
63
53
  return [toURL(req), req.remove('url').remove('params').toJS()];
64
54
  }
65
55
  function maybeRequestArg(req) {
66
- if ((0, _isString.default)(req)) {
56
+ if (isString(req)) {
67
57
  return fromURL(req);
68
58
  }
69
59
  if (req) {
70
- return (0, _immutable.fromJS)(req);
60
+ return fromJS(req);
71
61
  }
72
- return (0, _immutable.Map)();
62
+ return Map();
73
63
  }
74
64
  function ensureRequestArg(func) {
75
65
  return req => func(maybeRequestArg(req));
@@ -86,12 +76,12 @@ const performRequest = ensureRequestArg(req => {
86
76
 
87
77
  // Each of the following functions takes options and returns another
88
78
  // function that performs the requested action on a request.
89
- const getCurriedRequestProcessor = (0, _flow.default)([ensureRequestArg2, _curry.default]);
79
+ const getCurriedRequestProcessor = flow([ensureRequestArg2, curry]);
90
80
  function getPropSetFunction(path) {
91
81
  return getCurriedRequestProcessor((val, req) => req.setIn(path, val));
92
82
  }
93
83
  function getPropMergeFunction(path) {
94
- return getCurriedRequestProcessor((obj, req) => req.updateIn(path, (p = (0, _immutable.Map)()) => p.merge(obj)));
84
+ return getCurriedRequestProcessor((obj, req) => req.updateIn(path, (p = Map()) => p.merge(obj)));
95
85
  }
96
86
  const withMethod = getPropSetFunction(['method']);
97
87
  const withBody = getPropSetFunction(['body']);
@@ -107,7 +97,7 @@ const withRoot = getCurriedRequestProcessor((root, req) => req.update('url', p =
107
97
  }
108
98
  return root && p && p[0] !== '/' && root[root.length - 1] !== '/' ? `${root}/${p}` : `${root}${p}`;
109
99
  }));
110
- var _default = exports.default = {
100
+ export default {
111
101
  toURL,
112
102
  fromURL,
113
103
  fromFetchArguments,
package/package.json CHANGED
@@ -1,11 +1,14 @@
1
1
  {
2
2
  "name": "decap-cms-lib-util",
3
3
  "description": "Shared utilities for Decap CMS.",
4
- "version": "3.1.0",
4
+ "version": "3.3.0",
5
5
  "repository": "https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-lib-util",
6
6
  "bugs": "https://github.com/decaporg/decap-cms/issues",
7
7
  "module": "dist/esm/index.js",
8
8
  "main": "dist/decap-cms-lib-util.js",
9
+ "files": [
10
+ "dist"
11
+ ],
9
12
  "license": "MIT",
10
13
  "keywords": [
11
14
  "decap-cms"
@@ -25,5 +28,5 @@
25
28
  "immutable": "^3.7.6",
26
29
  "lodash": "^4.17.11"
27
30
  },
28
- "gitHead": "86c93a4fae0fd954d043acc176b0618ab715623b"
31
+ "gitHead": "ed7e99318007b83f4c57f3237bf92b931676820a"
29
32
  }
package/CHANGELOG.md DELETED
@@ -1,376 +0,0 @@
1
- # Change Log
2
-
3
- All notable changes to this project will be documented in this file.
4
- See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
-
6
- # [3.1.0](https://github.com/decaporg/decap-cms/compare/decap-cms-lib-util@3.0.4...decap-cms-lib-util@3.1.0) (2024-08-07)
7
-
8
- ### Bug Fixes
9
-
10
- - **backend:** allow a custom API root for backend ([#7214](https://github.com/decaporg/decap-cms/issues/7214)) ([fae3e05](https://github.com/decaporg/decap-cms/commit/fae3e057f898f60fdbe80091acc833d6ac92696e)), closes [#7168](https://github.com/decaporg/decap-cms/issues/7168)
11
-
12
- ## [3.0.4](https://github.com/decaporg/decap-cms/compare/decap-cms-lib-util@3.0.3...decap-cms-lib-util@3.0.4) (2024-04-03)
13
-
14
- **Note:** Version bump only for package decap-cms-lib-util
15
-
16
- ## [3.0.3](https://github.com/decaporg/decap-cms/compare/decap-cms-lib-util@3.0.2...decap-cms-lib-util@3.0.3) (2024-03-21)
17
-
18
- **Note:** Version bump only for package decap-cms-lib-util
19
-
20
- ## [3.0.2](https://github.com/decaporg/decap-cms/compare/decap-cms-lib-util@3.0.2-beta.0...decap-cms-lib-util@3.0.2) (2024-02-01)
21
-
22
- **Note:** Version bump only for package decap-cms-lib-util
23
-
24
- ## [3.0.2-beta.0](https://github.com/decaporg/decap-cms/compare/decap-cms-lib-util@3.0.1...decap-cms-lib-util@3.0.2-beta.0) (2024-01-31)
25
-
26
- **Note:** Version bump only for package decap-cms-lib-util
27
-
28
- ## [3.0.1](https://github.com/decaporg/decap-cms/compare/decap-cms-lib-util@3.0.0...decap-cms-lib-util@3.0.1) (2023-09-06)
29
-
30
- ### Performance Improvements
31
-
32
- - filter by path when loading collection from github backend ([#6898](https://github.com/decaporg/decap-cms/issues/6898)) ([18ef773](https://github.com/decaporg/decap-cms/commit/18ef773f35db1b7ef3ab5a0f25527d87745b9c73))
33
-
34
- # [3.0.0](https://github.com/decaporg/decap-cms/compare/decap-cms-lib-util@2.16.0...decap-cms-lib-util@3.0.0) (2023-08-18)
35
-
36
- **Note:** Version bump only for package decap-cms-lib-util
37
-
38
- # [2.16.0](https://github.com/decaporg/decap-cms/compare/decap-cms-lib-util@2.16.0-beta.0...decap-cms-lib-util@2.16.0) (2023-08-18)
39
-
40
- **Note:** Version bump only for package decap-cms-lib-util
41
-
42
- # 2.16.0-beta.0 (2023-08-18)
43
-
44
- ### Features
45
-
46
- - rename packages ([#6863](https://github.com/decaporg/decap-cms/issues/6863)) ([d515e7b](https://github.com/decaporg/decap-cms/commit/d515e7bd33216a775d96887b08c4f7b1962941bb))
47
-
48
- ## [2.15.2-beta.0](https://github.com/decaporg/decap-cms/compare/decap-cms-lib-util@2.15.1...decap-cms-lib-util@2.15.2-beta.0) (2023-07-27)
49
-
50
- **Note:** Version bump only for package decap-cms-lib-util
51
-
52
- ## [2.15.1](https://github.com/decaporg/decap-cms/compare/decap-cms-lib-util@2.15.0...decap-cms-lib-util@2.15.1) (2022-04-13)
53
-
54
- **Note:** Version bump only for package decap-cms-lib-util
55
-
56
- # [2.15.0](https://github.com/decaporg/decap-cms/compare/decap-cms-lib-util@2.14.0...decap-cms-lib-util@2.15.0) (2021-12-28)
57
-
58
- ### Features
59
-
60
- - **backend-gitlab:** initial GraphQL support ([#6059](https://github.com/decaporg/decap-cms/issues/6059)) ([1523a41](https://github.com/decaporg/decap-cms/commit/1523a4140a3d2f4cc01a1548514ae17bc1ad504e))
61
-
62
- # [2.14.0](https://github.com/decaporg/decap-cms/compare/decap-cms-lib-util@2.13.3...decap-cms-lib-util@2.14.0) (2021-10-18)
63
-
64
- ### Features
65
-
66
- - display author of changes in workflow tab ([#5780](https://github.com/decaporg/decap-cms/issues/5780)) ([3f607e4](https://github.com/decaporg/decap-cms/commit/3f607e41d9c4d8fe5329a9ab6841cada7742825e))
67
-
68
- ## [2.13.3](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-lib-util/compare/decap-cms-lib-util@2.13.2...decap-cms-lib-util@2.13.3) (2021-06-01)
69
-
70
- **Note:** Version bump only for package decap-cms-lib-util
71
-
72
- ## [2.13.2](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-lib-util/compare/decap-cms-lib-util@2.13.1...decap-cms-lib-util@2.13.2) (2021-05-31)
73
-
74
- **Note:** Version bump only for package decap-cms-lib-util
75
-
76
- ## [2.13.1](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-lib-util/compare/decap-cms-lib-util@2.13.0...decap-cms-lib-util@2.13.1) (2021-05-19)
77
-
78
- **Note:** Version bump only for package decap-cms-lib-util
79
-
80
- # [2.13.0](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-lib-util/compare/decap-cms-lib-util@2.12.3...decap-cms-lib-util@2.13.0) (2021-04-04)
81
-
82
- ### Features
83
-
84
- - **open-authoring:** add alwaysFork option ([#5204](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-lib-util/issues/5204)) ([7b19e30](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-lib-util/commit/7b19e30dd2a310dbc20ccb6fcca45d5cbde1014b))
85
-
86
- ## [2.12.3](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-lib-util/compare/decap-cms-lib-util@2.12.2...decap-cms-lib-util@2.12.3) (2021-02-10)
87
-
88
- **Note:** Version bump only for package decap-cms-lib-util
89
-
90
- ## [2.12.2](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-lib-util/compare/decap-cms-lib-util@2.12.1...decap-cms-lib-util@2.12.2) (2021-02-01)
91
-
92
- ### Bug Fixes
93
-
94
- - **backend:** allow calling 'json' again on 403 failure ([#4880](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-lib-util/issues/4880)) ([1034086](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-lib-util/commit/1034086ff603e28e3a37c8157a74cbc625f658f9))
95
-
96
- ## [2.12.1](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-lib-util/compare/decap-cms-lib-util@2.12.0...decap-cms-lib-util@2.12.1) (2020-12-13)
97
-
98
- ### Bug Fixes
99
-
100
- - **lib-util:** update js-sha256 import ([#4699](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-lib-util/issues/4699)) ([60f7e0b](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-lib-util/commit/60f7e0bba67c6555acba3e04039c49f10cf51f6b))
101
-
102
- # [2.12.0](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-lib-util/compare/decap-cms-lib-util@2.11.5...decap-cms-lib-util@2.12.0) (2020-11-26)
103
-
104
- ### Features
105
-
106
- - add azure devops backend ([#4427](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-lib-util/issues/4427)) ([4e6dc88](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-lib-util/commit/4e6dc88efb1dae4cf6137730c3b4fb6d0f75a8cc))
107
-
108
- ## [2.11.5](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-lib-util/compare/decap-cms-lib-util@2.11.4...decap-cms-lib-util@2.11.5) (2020-09-20)
109
-
110
- **Note:** Version bump only for package decap-cms-lib-util
111
-
112
- ## [2.11.4](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-lib-util/compare/decap-cms-lib-util@2.11.3...decap-cms-lib-util@2.11.4) (2020-09-15)
113
-
114
- **Note:** Version bump only for package decap-cms-lib-util
115
-
116
- ## 2.11.3 (2020-09-08)
117
-
118
- ### Reverts
119
-
120
- - Revert "chore(release): publish" ([828bb16](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-lib-util/commit/828bb16415b8c22a34caa19c50c38b24ffe9ceae))
121
-
122
- ## 2.11.2 (2020-08-20)
123
-
124
- ### Reverts
125
-
126
- - Revert "chore(release): publish" ([8262487](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-lib-util/commit/82624879ccbcb16610090041db28f00714d924c8))
127
-
128
- ## 2.11.1 (2020-07-27)
129
-
130
- ### Reverts
131
-
132
- - Revert "chore(release): publish" ([118d50a](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-lib-util/commit/118d50a7a70295f25073e564b5161aa2b9883056))
133
-
134
- # [2.11.0](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-lib-util/compare/decap-cms-lib-util@2.10.0...decap-cms-lib-util@2.11.0) (2020-06-18)
135
-
136
- ### Bug Fixes
137
-
138
- - handle token expiry ([#3847](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-lib-util/issues/3847)) ([285c940](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-lib-util/commit/285c940562548d7bc88de244123ba87ff66fba65))
139
-
140
- ### Features
141
-
142
- - add backend status down indicator ([#3889](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-lib-util/issues/3889)) ([a50edc7](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-lib-util/commit/a50edc70553ad6afa1acee6a51996ad226443f8c))
143
-
144
- # [2.10.0](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-lib-util/compare/decap-cms-lib-util@2.9.4...decap-cms-lib-util@2.10.0) (2020-06-01)
145
-
146
- ### Features
147
-
148
- - add pre save/ post save hooks ([#3812](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-lib-util/issues/3812)) ([812716e](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-lib-util/commit/812716e18b09a716547f128b783c8e6f3d54cc5b))
149
-
150
- ## [2.9.4](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-lib-util/compare/decap-cms-lib-util@2.9.3...decap-cms-lib-util@2.9.4) (2020-05-19)
151
-
152
- ### Bug Fixes
153
-
154
- - clear fetch timeout on successful response ([#3768](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-lib-util/issues/3768)) ([088b1a8](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-lib-util/commit/088b1a8ab626498382d6305fa46d174d4f5ba755))
155
-
156
- ## [2.9.3](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-lib-util/compare/decap-cms-lib-util@2.9.2...decap-cms-lib-util@2.9.3) (2020-04-21)
157
-
158
- **Note:** Version bump only for package decap-cms-lib-util
159
-
160
- ## [2.9.2](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-lib-util/compare/decap-cms-lib-util@2.9.1...decap-cms-lib-util@2.9.2) (2020-04-01)
161
-
162
- ### Bug Fixes
163
-
164
- - move common api functions to a separate file ([#3511](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-lib-util/issues/3511)) ([49098de](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-lib-util/commit/49098de27f053e51aa3d936d09adae3a7186c6ae))
165
-
166
- ## [2.9.1](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-lib-util/compare/decap-cms-lib-util@2.9.0...decap-cms-lib-util@2.9.1) (2020-04-01)
167
-
168
- **Note:** Version bump only for package decap-cms-lib-util
169
-
170
- # [2.9.0](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-lib-util/compare/decap-cms-lib-util@2.8.0...decap-cms-lib-util@2.9.0) (2020-03-12)
171
-
172
- ### Features
173
-
174
- - add media lib virtualization ([#3381](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-lib-util/issues/3381)) ([92e7601](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-lib-util/commit/92e76011e7a9e8b5370088b0a2c065df66b5f7fb))
175
- - **backend-github:** add pagination ([#3379](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-lib-util/issues/3379)) ([39f1307](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-lib-util/commit/39f1307e3a36447da8c9b3ca79b1d7db52ea1a19))
176
-
177
- # [2.8.0](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-lib-util/compare/decap-cms-lib-util@2.7.1...decap-cms-lib-util@2.8.0) (2020-02-25)
178
-
179
- ### Features
180
-
181
- - **core:** align GitHub metadata handling with other backends ([#3316](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-lib-util/issues/3316)) ([7e0a8ad](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-lib-util/commit/7e0a8ad532012576dc5e40bd4e9d54522e307123)), closes [#3292](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-lib-util/issues/3292)
182
-
183
- ## [2.7.1](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-lib-util/compare/decap-cms-lib-util@2.7.0...decap-cms-lib-util@2.7.1) (2020-02-14)
184
-
185
- **Note:** Version bump only for package decap-cms-lib-util
186
-
187
- # [2.7.0](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-lib-util/compare/decap-cms-lib-util@2.6.2...decap-cms-lib-util@2.7.0) (2020-02-10)
188
-
189
- ### Bug Fixes
190
-
191
- - filter paginated results ([#3216](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-lib-util/issues/3216)) ([0a482b1](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-lib-util/commit/0a482b10049bcfa022b81165cabf4512d77e0b88))
192
-
193
- ### Features
194
-
195
- - field based media/public folders ([#3208](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-lib-util/issues/3208)) ([97bc0c8](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-lib-util/commit/97bc0c8dc489e736f89d748ba832d78400fe4332))
196
-
197
- ### Reverts
198
-
199
- - Revert "chore(release): publish" ([a015d1d](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-lib-util/commit/a015d1d92a4b1c0130c44fcef1c9ecdb157a0f07))
200
-
201
- ## [2.6.2](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-lib-util/compare/decap-cms-lib-util@2.6.1...decap-cms-lib-util@2.6.2) (2020-01-24)
202
-
203
- ### Bug Fixes
204
-
205
- - **backend-git-gateway:** re-write GitHub pagination links ([#3135](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-lib-util/issues/3135)) ([834f6b9](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-lib-util/commit/834f6b9e457f3738ce0f240ddd4cc160aff9e2f5))
206
-
207
- ## [2.6.1](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-lib-util/compare/decap-cms-lib-util@2.6.0...decap-cms-lib-util@2.6.1) (2020-01-22)
208
-
209
- **Note:** Version bump only for package decap-cms-lib-util
210
-
211
- # [2.6.0](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-lib-util/compare/decap-cms-lib-util@2.5.2...decap-cms-lib-util@2.6.0) (2020-01-21)
212
-
213
- ### Features
214
-
215
- - **backend-bitbucket:** Add Git-LFS support ([#3118](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-lib-util/issues/3118)) ([a48c02d](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-lib-util/commit/a48c02d852ca5e11055da3a14cefae8d17a68498))
216
-
217
- ## [2.5.2](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-lib-util/compare/decap-cms-lib-util@2.5.1...decap-cms-lib-util@2.5.2) (2020-01-16)
218
-
219
- ### Bug Fixes
220
-
221
- - use string endsWith to filter by extension ([#3097](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-lib-util/issues/3097)) ([6a13a85](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-lib-util/commit/6a13a85e269c8f299f71b3f5ee45fc5d34f75822))
222
-
223
- ## [2.5.1](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-lib-util/compare/decap-cms-lib-util@2.5.0...decap-cms-lib-util@2.5.1) (2020-01-14)
224
-
225
- **Note:** Version bump only for package decap-cms-lib-util
226
-
227
- # [2.5.0](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-lib-util/compare/decap-cms-lib-util@2.5.0-beta.0...decap-cms-lib-util@2.5.0) (2020-01-07)
228
-
229
- **Note:** Version bump only for package decap-cms-lib-util
230
-
231
- # [2.5.0-beta.0](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-lib-util/compare/decap-cms-lib-util@2.4.0...decap-cms-lib-util@2.5.0-beta.0) (2019-12-18)
232
-
233
- ### Features
234
-
235
- - bundle assets with content ([#2958](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-lib-util/issues/2958)) ([2b41d8a](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-lib-util/commit/2b41d8a838a9c8a6b21cde2ddd16b9288334e298))
236
-
237
- # [2.4.0](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-lib-util/compare/decap-cms-lib-util@2.4.0-beta.5...decap-cms-lib-util@2.4.0) (2019-12-18)
238
-
239
- **Note:** Version bump only for package decap-cms-lib-util
240
-
241
- # [2.4.0-beta.5](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-lib-util/compare/decap-cms-lib-util@2.4.0-beta.4...decap-cms-lib-util@2.4.0-beta.5) (2019-11-26)
242
-
243
- ### Bug Fixes
244
-
245
- - **backend-github:** editorial workflow commits ([#2867](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-lib-util/issues/2867)) ([86adca3](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-lib-util/commit/86adca3a18f25ab74d1c6702bafab250f005ceec))
246
- - **backend-github:** prepend collection name ([#2878](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-lib-util/issues/2878)) ([465f463](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-lib-util/commit/465f4639597f258d5aa2c1b65e9d2c16023ee7ae))
247
-
248
- # [2.4.0-beta.4](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-lib-util/compare/decap-cms-lib-util@2.4.0-beta.3...decap-cms-lib-util@2.4.0-beta.4) (2019-09-26)
249
-
250
- ### Bug Fixes
251
-
252
- - **github-backend:** handle race condition in editorial workflow ([#2658](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-lib-util/issues/2658)) ([97f1f84](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-lib-util/commit/97f1f84))
253
-
254
- # [2.4.0-beta.3](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-lib-util/compare/decap-cms-lib-util@2.4.0-beta.2...decap-cms-lib-util@2.4.0-beta.3) (2019-09-04)
255
-
256
- ### Features
257
-
258
- - **backend-github:** GitHub GraphQL API support ([#2456](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-lib-util/issues/2456)) ([ece136c](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-lib-util/commit/ece136c))
259
-
260
- # [2.4.0-beta.2](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-lib-util/compare/decap-cms-lib-util@2.4.0-beta.1...decap-cms-lib-util@2.4.0-beta.2) (2019-08-24)
261
-
262
- **Note:** Version bump only for package decap-cms-lib-util
263
-
264
- # [2.4.0-beta.1](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-lib-util/compare/decap-cms-lib-util@2.4.0-beta.0...decap-cms-lib-util@2.4.0-beta.1) (2019-08-24)
265
-
266
- **Note:** Version bump only for package decap-cms-lib-util
267
-
268
- # [2.4.0-beta.0](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-lib-util/compare/decap-cms-lib-util@2.3.3...decap-cms-lib-util@2.4.0-beta.0) (2019-07-24)
269
-
270
- ### Features
271
-
272
- - **backend-github:** Open Authoring ([#2430](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-lib-util/issues/2430)) ([edf0a3a](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-lib-util/commit/edf0a3a))
273
-
274
- ## [2.3.3](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-lib-util/compare/decap-cms-lib-util@2.3.2...decap-cms-lib-util@2.3.3) (2019-07-24)
275
-
276
- **Note:** Version bump only for package decap-cms-lib-util
277
-
278
- ## [2.3.2](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-lib-util/compare/decap-cms-lib-util@2.3.2-beta.0...decap-cms-lib-util@2.3.2) (2019-04-10)
279
-
280
- **Note:** Version bump only for package decap-cms-lib-util
281
-
282
- ## [2.3.2-beta.0](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-lib-util/compare/decap-cms-lib-util@2.3.1...decap-cms-lib-util@2.3.2-beta.0) (2019-04-05)
283
-
284
- **Note:** Version bump only for package decap-cms-lib-util
285
-
286
- ## [2.3.1](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-lib-util/compare/decap-cms-lib-util@2.3.1-beta.1...decap-cms-lib-util@2.3.1) (2019-03-29)
287
-
288
- **Note:** Version bump only for package decap-cms-lib-util
289
-
290
- ## [2.3.1-beta.1](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-lib-util/compare/decap-cms-lib-util@2.3.1-beta.0...decap-cms-lib-util@2.3.1-beta.1) (2019-03-26)
291
-
292
- ### Bug Fixes
293
-
294
- - export on decap-cms and maps on esm ([#2244](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-lib-util/issues/2244)) ([6ffd13b](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-lib-util/commit/6ffd13b))
295
-
296
- ## [2.3.1-beta.0](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-lib-util/compare/decap-cms-lib-util@2.3.0...decap-cms-lib-util@2.3.1-beta.0) (2019-03-25)
297
-
298
- **Note:** Version bump only for package decap-cms-lib-util
299
-
300
- # [2.3.0](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-lib-util/compare/decap-cms-lib-util@2.2.0...decap-cms-lib-util@2.3.0) (2019-03-22)
301
-
302
- ### Features
303
-
304
- - add ES module builds ([#2215](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-lib-util/issues/2215)) ([d142b32](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-lib-util/commit/d142b32))
305
-
306
- # [2.2.0](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-lib-util/compare/decap-cms-lib-util@2.2.0-beta.0...decap-cms-lib-util@2.2.0) (2019-03-22)
307
-
308
- **Note:** Version bump only for package decap-cms-lib-util
309
-
310
- # [2.2.0-beta.0](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-lib-util/compare/decap-cms-lib-util@2.1.3-beta.0...decap-cms-lib-util@2.2.0-beta.0) (2019-03-21)
311
-
312
- ### Features
313
-
314
- - provide usable UMD builds for all packages ([#2141](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-lib-util/issues/2141)) ([82cc794](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-lib-util/commit/82cc794))
315
-
316
- ## [2.1.3-beta.0](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-lib-util/compare/decap-cms-lib-util@2.1.2...decap-cms-lib-util@2.1.3-beta.0) (2019-03-15)
317
-
318
- ### Features
319
-
320
- - upgrade to Emotion 10 ([#2166](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-lib-util/issues/2166)) ([ccef446](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-lib-util/commit/ccef446))
321
-
322
- ## [2.1.2](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-lib-util/compare/decap-cms-lib-util@2.1.1...decap-cms-lib-util@2.1.2) (2019-02-26)
323
-
324
- **Note:** Version bump only for package decap-cms-lib-util
325
-
326
- ## [2.1.1](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-lib-util/compare/decap-cms-lib-util@2.1.0...decap-cms-lib-util@2.1.1) (2018-11-29)
327
-
328
- **Note:** Version bump only for package decap-cms-lib-util
329
-
330
- <a name="2.1.0"></a>
331
-
332
- # [2.1.0](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-lib-util/compare/decap-cms-lib-util@2.0.5...decap-cms-lib-util@2.1.0) (2018-09-06)
333
-
334
- ### Bug Fixes
335
-
336
- - remove alert modal from localForage error case ([#1676](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-lib-util/issues/1676)) ([4f3116d](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-lib-util/commit/4f3116d))
337
-
338
- ### Features
339
-
340
- - **media:** add external media library support, Uploadcare integration ([#1602](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-lib-util/issues/1602)) ([0596904](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-lib-util/commit/0596904))
341
-
342
- <a name="2.0.5"></a>
343
-
344
- ## [2.0.5](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-lib-util/compare/decap-cms-lib-util@2.0.4...decap-cms-lib-util@2.0.5) (2018-08-24)
345
-
346
- **Note:** Version bump only for package decap-cms-lib-util
347
-
348
- <a name="2.0.4"></a>
349
-
350
- ## [2.0.4](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-lib-util/compare/decap-cms-lib-util@2.0.3...decap-cms-lib-util@2.0.4) (2018-08-07)
351
-
352
- **Note:** Version bump only for package decap-cms-lib-util
353
-
354
- <a name="2.0.3"></a>
355
-
356
- ## [2.0.3](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-lib-util/compare/decap-cms-lib-util@2.0.2...decap-cms-lib-util@2.0.3) (2018-08-01)
357
-
358
- **Note:** Version bump only for package decap-cms-lib-util
359
-
360
- <a name="2.0.2"></a>
361
-
362
- ## [2.0.2](https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-lib-util/compare/decap-cms-lib-util@2.0.1...decap-cms-lib-util@2.0.2) (2018-07-28)
363
-
364
- **Note:** Version bump only for package decap-cms-lib-util
365
-
366
- <a name="2.0.1"></a>
367
-
368
- ## 2.0.1 (2018-07-26)
369
-
370
- <a name="2.0.0"></a>
371
-
372
- # 2.0.0 (2018-07-26)
373
-
374
- ### Bug Fixes
375
-
376
- - **bitbucket:** fix rebasing mistakes in bitbucket backend and deps ([#1522](https://github.com/decaporg/decap-cms/issues/1522)) ([bdfd944](https://github.com/decaporg/decap-cms/commit/bdfd944))