planning
All checks were successful
Publish To Prod / deploy_and_publish (push) Successful in 35s

This commit is contained in:
2024-10-14 09:15:30 +02:00
parent bcba00a730
commit 6e64e138e2
21059 changed files with 2317811 additions and 1 deletions

View File

@@ -0,0 +1,86 @@
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _base = _interopRequireDefault(require("@emotion/styled/base"));
var _react = _interopRequireDefault(require("react"));
var _propTypes = _interopRequireDefault(require("prop-types"));
var _decapCmsUiDefault = require("decap-cms-ui-default");
var _react2 = require("@emotion/react");
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
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; }
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : String(i); }
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); }
function _EMOTION_STRINGIFIED_CSS_ERROR__() { return "You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop)."; }
const StyledAuthenticationPage = /*#__PURE__*/(0, _base.default)("section", {
target: "e141mjkc2",
label: "StyledAuthenticationPage"
})(process.env.NODE_ENV === "production" ? {
name: "14ts7qn",
styles: "display:flex;flex-flow:column nowrap;align-items:center;justify-content:center;gap:50px;height:100vh"
} : {
name: "14ts7qn",
styles: "display:flex;flex-flow:column nowrap;align-items:center;justify-content:center;gap:50px;height:100vh",
map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9BdXRoZW50aWNhdGlvblBhZ2UuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBSytDIiwiZmlsZSI6Ii4uLy4uL3NyYy9BdXRoZW50aWNhdGlvblBhZ2UuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJztcbmltcG9ydCB7IEljb24sIGJ1dHRvbnMsIHNoYWRvd3MsIEdvQmFja0J1dHRvbiB9IGZyb20gJ2RlY2FwLWNtcy11aS1kZWZhdWx0JztcblxuY29uc3QgU3R5bGVkQXV0aGVudGljYXRpb25QYWdlID0gc3R5bGVkLnNlY3Rpb25gXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZmxvdzogY29sdW1uIG5vd3JhcDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGdhcDogNTBweDtcbiAgaGVpZ2h0OiAxMDB2aDtcbmA7XG5cbmNvbnN0IFBhZ2VMb2dvSWNvbiA9IHN0eWxlZChJY29uKWBcbiAgaGVpZ2h0OiBhdXRvO1xuYDtcblxuY29uc3QgTG9naW5CdXR0b24gPSBzdHlsZWQuYnV0dG9uYFxuICAke2J1dHRvbnMuYnV0dG9ufTtcbiAgJHtzaGFkb3dzLmRyb3BEZWVwfTtcbiAgJHtidXR0b25zLmRlZmF1bHR9O1xuICAke2J1dHRvbnMuZ3JheX07XG5cbiAgcGFkZGluZzogMCAzMHB4O1xuICBtYXJnaW4tdG9wOiAwO1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgJHtJY29ufSB7XG4gICAgbWFyZ2luLXJpZ2h0OiAxOHB4O1xuICB9XG5gO1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBBdXRoZW50aWNhdGlvblBhZ2UgZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQge1xuICBzdGF0aWMgcHJvcFR5cGVzID0ge1xuICAgIG9uTG9naW46IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgaW5Qcm9ncmVzczogUHJvcFR5cGVzLmJvb2wsXG4gICAgY29uZmlnOiBQcm9wVHlwZXMub2JqZWN0LmlzUmVxdWlyZWQsXG4gICAgdDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgfTtcblxuICBjb21wb25lbnREaWRNb3VudCgpIHtcbiAgICAvKipcbiAgICAgKiBBbGxvdyBsb2dpbiBzY3JlZW4gdG8gYmUgc2tpcHBlZCBmb3IgZGVtbyBwdXJwb3Nlcy5cbiAgICAgKi9cbiAgICBjb25zdCBza2lwTG9naW4gPSB0aGlzLnByb3BzLmNvbmZpZy5iYWNrZW5kLmxvZ2luID09PSBmYWxzZTtcbiAgICBpZiAoc2tpcExvZ2luKSB7XG4gICAgICB0aGlzLnByb3BzLm9uTG9naW4odGhpcy5zdGF0ZSk7XG4gICAgfVxuICB9XG5cbiAgaGFuZGxlTG9naW4gPSBlID0+IHtcbiAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgdGhpcy5wcm9wcy5vbkxvZ2luKHRoaXMuc3RhdGUpO1xuICB9O1xuXG4gIHJlbmRlcigpIHtcbiAgICBjb25zdCB7IGNvbmZpZywgaW5Qcm9ncmVzcywgdCB9ID0gdGhpcy5wcm9wcztcblxuICAgIHJldHVybiAoXG4gICAgICA8U3R5bGVkQXV0aGVudGljYXRpb25QYWdlPlxuICAgICAgICA8UGFnZUxvZ29JY29uIHNpemU9XCIzMDBweFwiIHR5cGU9XCJkZWNhcC1jbXNcIiAvPlxuICAgICAgICA8TG9naW5CdXR0b24gZGlzYWJsZWQ9e2luUHJvZ3Jlc3N9IG9uQ2xpY2s9e3RoaXMuaGFuZGxlTG9naW59PlxuICAgICAgICAgIHtpblByb2dyZXNzID8gdCgnYXV0aC5sb2dnaW5nSW4nKSA6IHQoJ2F1dGgubG9naW4nKX1cbiAgICAgICAgPC9Mb2dpbkJ1dHRvbj5cbiAgICAgICAge2NvbmZpZy5zaXRlX3VybCAmJiA8R29CYWNrQnV0dG9uIGhyZWY9e2NvbmZpZy5zaXRlX3VybH0gdD17dH0+PC9Hb0JhY2tCdXR0b24+fVxuICAgICAgPC9TdHlsZWRBdXRoZW50aWNhdGlvblBhZ2U+XG4gICAgKTtcbiAgfVxufVxuIl19 */",
toString: _EMOTION_STRINGIFIED_CSS_ERROR__
});
const PageLogoIcon = /*#__PURE__*/(0, _base.default)(_decapCmsUiDefault.Icon, {
target: "e141mjkc1",
label: "PageLogoIcon"
})(process.env.NODE_ENV === "production" ? {
name: "pit38s",
styles: "height:auto"
} : {
name: "pit38s",
styles: "height:auto",
map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9BdXRoZW50aWNhdGlvblBhZ2UuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBY2lDIiwiZmlsZSI6Ii4uLy4uL3NyYy9BdXRoZW50aWNhdGlvblBhZ2UuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJztcbmltcG9ydCB7IEljb24sIGJ1dHRvbnMsIHNoYWRvd3MsIEdvQmFja0J1dHRvbiB9IGZyb20gJ2RlY2FwLWNtcy11aS1kZWZhdWx0JztcblxuY29uc3QgU3R5bGVkQXV0aGVudGljYXRpb25QYWdlID0gc3R5bGVkLnNlY3Rpb25gXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZmxvdzogY29sdW1uIG5vd3JhcDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGdhcDogNTBweDtcbiAgaGVpZ2h0OiAxMDB2aDtcbmA7XG5cbmNvbnN0IFBhZ2VMb2dvSWNvbiA9IHN0eWxlZChJY29uKWBcbiAgaGVpZ2h0OiBhdXRvO1xuYDtcblxuY29uc3QgTG9naW5CdXR0b24gPSBzdHlsZWQuYnV0dG9uYFxuICAke2J1dHRvbnMuYnV0dG9ufTtcbiAgJHtzaGFkb3dzLmRyb3BEZWVwfTtcbiAgJHtidXR0b25zLmRlZmF1bHR9O1xuICAke2J1dHRvbnMuZ3JheX07XG5cbiAgcGFkZGluZzogMCAzMHB4O1xuICBtYXJnaW4tdG9wOiAwO1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgJHtJY29ufSB7XG4gICAgbWFyZ2luLXJpZ2h0OiAxOHB4O1xuICB9XG5gO1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBBdXRoZW50aWNhdGlvblBhZ2UgZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQge1xuICBzdGF0aWMgcHJvcFR5cGVzID0ge1xuICAgIG9uTG9naW46IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgaW5Qcm9ncmVzczogUHJvcFR5cGVzLmJvb2wsXG4gICAgY29uZmlnOiBQcm9wVHlwZXMub2JqZWN0LmlzUmVxdWlyZWQsXG4gICAgdDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgfTtcblxuICBjb21wb25lbnREaWRNb3VudCgpIHtcbiAgICAvKipcbiAgICAgKiBBbGxvdyBsb2dpbiBzY3JlZW4gdG8gYmUgc2tpcHBlZCBmb3IgZGVtbyBwdXJwb3Nlcy5cbiAgICAgKi9cbiAgICBjb25zdCBza2lwTG9naW4gPSB0aGlzLnByb3BzLmNvbmZpZy5iYWNrZW5kLmxvZ2luID09PSBmYWxzZTtcbiAgICBpZiAoc2tpcExvZ2luKSB7XG4gICAgICB0aGlzLnByb3BzLm9uTG9naW4odGhpcy5zdGF0ZSk7XG4gICAgfVxuICB9XG5cbiAgaGFuZGxlTG9naW4gPSBlID0+IHtcbiAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgdGhpcy5wcm9wcy5vbkxvZ2luKHRoaXMuc3RhdGUpO1xuICB9O1xuXG4gIHJlbmRlcigpIHtcbiAgICBjb25zdCB7IGNvbmZpZywgaW5Qcm9ncmVzcywgdCB9ID0gdGhpcy5wcm9wcztcblxuICAgIHJldHVybiAoXG4gICAgICA8U3R5bGVkQXV0aGVudGljYXRpb25QYWdlPlxuICAgICAgICA8UGFnZUxvZ29JY29uIHNpemU9XCIzMDBweFwiIHR5cGU9XCJkZWNhcC1jbXNcIiAvPlxuICAgICAgICA8TG9naW5CdXR0b24gZGlzYWJsZWQ9e2luUHJvZ3Jlc3N9IG9uQ2xpY2s9e3RoaXMuaGFuZGxlTG9naW59PlxuICAgICAgICAgIHtpblByb2dyZXNzID8gdCgnYXV0aC5sb2dnaW5nSW4nKSA6IHQoJ2F1dGgubG9naW4nKX1cbiAgICAgICAgPC9Mb2dpbkJ1dHRvbj5cbiAgICAgICAge2NvbmZpZy5zaXRlX3VybCAmJiA8R29CYWNrQnV0dG9uIGhyZWY9e2NvbmZpZy5zaXRlX3VybH0gdD17dH0+PC9Hb0JhY2tCdXR0b24+fVxuICAgICAgPC9TdHlsZWRBdXRoZW50aWNhdGlvblBhZ2U+XG4gICAgKTtcbiAgfVxufVxuIl19 */",
toString: _EMOTION_STRINGIFIED_CSS_ERROR__
});
const LoginButton = /*#__PURE__*/(0, _base.default)("button", {
target: "e141mjkc0",
label: "LoginButton"
})(_decapCmsUiDefault.buttons.button, ";", _decapCmsUiDefault.shadows.dropDeep, ";", _decapCmsUiDefault.buttons.default, ";", _decapCmsUiDefault.buttons.gray, ";padding:0 30px;margin-top:0;display:flex;align-items:center;position:relative;", _decapCmsUiDefault.Icon, "{margin-right:18px;}" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9BdXRoZW50aWNhdGlvblBhZ2UuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBa0JpQyIsImZpbGUiOiIuLi8uLi9zcmMvQXV0aGVudGljYXRpb25QYWdlLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSAncHJvcC10eXBlcyc7XG5pbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCc7XG5pbXBvcnQgeyBJY29uLCBidXR0b25zLCBzaGFkb3dzLCBHb0JhY2tCdXR0b24gfSBmcm9tICdkZWNhcC1jbXMtdWktZGVmYXVsdCc7XG5cbmNvbnN0IFN0eWxlZEF1dGhlbnRpY2F0aW9uUGFnZSA9IHN0eWxlZC5zZWN0aW9uYFxuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWZsb3c6IGNvbHVtbiBub3dyYXA7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBnYXA6IDUwcHg7XG4gIGhlaWdodDogMTAwdmg7XG5gO1xuXG5jb25zdCBQYWdlTG9nb0ljb24gPSBzdHlsZWQoSWNvbilgXG4gIGhlaWdodDogYXV0bztcbmA7XG5cbmNvbnN0IExvZ2luQnV0dG9uID0gc3R5bGVkLmJ1dHRvbmBcbiAgJHtidXR0b25zLmJ1dHRvbn07XG4gICR7c2hhZG93cy5kcm9wRGVlcH07XG4gICR7YnV0dG9ucy5kZWZhdWx0fTtcbiAgJHtidXR0b25zLmdyYXl9O1xuXG4gIHBhZGRpbmc6IDAgMzBweDtcbiAgbWFyZ2luLXRvcDogMDtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICR7SWNvbn0ge1xuICAgIG1hcmdpbi1yaWdodDogMThweDtcbiAgfVxuYDtcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgQXV0aGVudGljYXRpb25QYWdlIGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50IHtcbiAgc3RhdGljIHByb3BUeXBlcyA9IHtcbiAgICBvbkxvZ2luOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIGluUHJvZ3Jlc3M6IFByb3BUeXBlcy5ib29sLFxuICAgIGNvbmZpZzogUHJvcFR5cGVzLm9iamVjdC5pc1JlcXVpcmVkLFxuICAgIHQ6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gIH07XG5cbiAgY29tcG9uZW50RGlkTW91bnQoKSB7XG4gICAgLyoqXG4gICAgICogQWxsb3cgbG9naW4gc2NyZWVuIHRvIGJlIHNraXBwZWQgZm9yIGRlbW8gcHVycG9zZXMuXG4gICAgICovXG4gICAgY29uc3Qgc2tpcExvZ2luID0gdGhpcy5wcm9wcy5jb25maWcuYmFja2VuZC5sb2dpbiA9PT0gZmFsc2U7XG4gICAgaWYgKHNraXBMb2dpbikge1xuICAgICAgdGhpcy5wcm9wcy5vbkxvZ2luKHRoaXMuc3RhdGUpO1xuICAgIH1cbiAgfVxuXG4gIGhhbmRsZUxvZ2luID0gZSA9PiB7XG4gICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIHRoaXMucHJvcHMub25Mb2dpbih0aGlzLnN0YXRlKTtcbiAgfTtcblxuICByZW5kZXIoKSB7XG4gICAgY29uc3QgeyBjb25maWcsIGluUHJvZ3Jlc3MsIHQgfSA9IHRoaXMucHJvcHM7XG5cbiAgICByZXR1cm4gKFxuICAgICAgPFN0eWxlZEF1dGhlbnRpY2F0aW9uUGFnZT5cbiAgICAgICAgPFBhZ2VMb2dvSWNvbiBzaXplPVwiMzAwcHhcIiB0eXBlPVwiZGVjYXAtY21zXCIgLz5cbiAgICAgICAgPExvZ2luQnV0dG9uIGRpc2FibGVkPXtpblByb2dyZXNzfSBvbkNsaWNrPXt0aGlzLmhhbmRsZUxvZ2lufT5cbiAgICAgICAgICB7aW5Qcm9ncmVzcyA/IHQoJ2F1dGgubG9nZ2luZ0luJykgOiB0KCdhdXRoLmxvZ2luJyl9XG4gICAgICAgIDwvTG9naW5CdXR0b24+XG4gICAgICAgIHtjb25maWcuc2l0ZV91cmwgJiYgPEdvQmFja0J1dHRvbiBocmVmPXtjb25maWcuc2l0ZV91cmx9IHQ9e3R9PjwvR29CYWNrQnV0dG9uPn1cbiAgICAgIDwvU3R5bGVkQXV0aGVudGljYXRpb25QYWdlPlxuICAgICk7XG4gIH1cbn1cbiJdfQ== */"));
class AuthenticationPage extends _react.default.Component {
constructor(...args) {
super(...args);
_defineProperty(this, "handleLogin", e => {
e.preventDefault();
this.props.onLogin(this.state);
});
}
componentDidMount() {
/**
* Allow login screen to be skipped for demo purposes.
*/
const skipLogin = this.props.config.backend.login === false;
if (skipLogin) {
this.props.onLogin(this.state);
}
}
render() {
const {
config,
inProgress,
t
} = this.props;
return (0, _react2.jsx)(StyledAuthenticationPage, null, (0, _react2.jsx)(PageLogoIcon, {
size: "300px",
type: "decap-cms"
}), (0, _react2.jsx)(LoginButton, {
disabled: inProgress,
onClick: this.handleLogin
}, inProgress ? t('auth.loggingIn') : t('auth.login')), config.site_url && (0, _react2.jsx)(_decapCmsUiDefault.GoBackButton, {
href: config.site_url,
t: t
}));
}
}
exports.default = AuthenticationPage;
_defineProperty(AuthenticationPage, "propTypes", {
onLogin: _propTypes.default.func.isRequired,
inProgress: _propTypes.default.bool,
config: _propTypes.default.object.isRequired,
t: _propTypes.default.func.isRequired
});

View File

@@ -0,0 +1,365 @@
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
exports.getFolderFiles = getFolderFiles;
var _isEmpty2 = _interopRequireDefault(require("lodash/isEmpty"));
var _unset2 = _interopRequireDefault(require("lodash/unset"));
var _take2 = _interopRequireDefault(require("lodash/take"));
var _isError2 = _interopRequireDefault(require("lodash/isError"));
var _attempt2 = _interopRequireDefault(require("lodash/attempt"));
var _uuid = require("uuid");
var _decapCmsLibUtil = require("decap-cms-lib-util");
var _path = require("path");
var _AuthenticationPage = _interopRequireDefault(require("./AuthenticationPage"));
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
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; }
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : String(i); }
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); }
window.repoFiles = window.repoFiles || {};
window.repoFilesUnpublished = window.repoFilesUnpublished || [];
function getFile(path, tree) {
const segments = path.split('/');
let obj = tree;
while (obj && segments.length) {
obj = obj[segments.shift()];
}
return obj || {};
}
function writeFile(path, content, tree) {
const segments = path.split('/');
let obj = tree;
while (segments.length > 1) {
const segment = segments.shift();
obj[segment] = obj[segment] || {};
obj = obj[segment];
}
obj[segments.shift()] = {
content,
path
};
}
function deleteFile(path, tree) {
(0, _unset2.default)(tree, path.split('/'));
}
const pageSize = 10;
function getCursor(folder, extension, entries, index, depth) {
const count = entries.length;
const pageCount = Math.floor(count / pageSize);
return _decapCmsLibUtil.Cursor.create({
actions: [...(index < pageCount ? ['next', 'last'] : []), ...(index > 0 ? ['prev', 'first'] : [])],
meta: {
index,
count,
pageSize,
pageCount
},
data: {
folder,
extension,
index,
pageCount,
depth
}
});
}
function getFolderFiles(tree, folder, extension, depth, files = [], path = folder) {
if (depth <= 0) {
return files;
}
Object.keys(tree[folder] || {}).forEach(key => {
if ((0, _path.extname)(key)) {
const file = tree[folder][key];
if (!extension || key.endsWith(`.${extension}`)) {
files.unshift({
content: file.content,
path: `${path}/${key}`
});
}
} else {
const subTree = tree[folder];
return getFolderFiles(subTree, key, extension, depth - 1, files, `${path}/${key}`);
}
});
return files;
}
class TestBackend {
constructor(config, options = {}) {
_defineProperty(this, "mediaFolder", void 0);
_defineProperty(this, "options", void 0);
this.options = options;
this.mediaFolder = config.media_folder;
}
isGitBackend() {
return false;
}
status() {
return Promise.resolve({
auth: {
status: true
},
api: {
status: true,
statusPage: ''
}
});
}
authComponent() {
return _AuthenticationPage.default;
}
restoreUser() {
return this.authenticate();
}
authenticate() {
return Promise.resolve();
}
logout() {
return null;
}
getToken() {
return Promise.resolve('');
}
traverseCursor(cursor, action) {
const {
folder,
extension,
index,
pageCount,
depth
} = cursor.data.toObject();
const newIndex = (() => {
if (action === 'next') {
return index + 1;
}
if (action === 'prev') {
return index - 1;
}
if (action === 'first') {
return 0;
}
if (action === 'last') {
return pageCount;
}
return 0;
})();
// TODO: stop assuming cursors are for collections
const allFiles = getFolderFiles(window.repoFiles, folder, extension, depth);
const allEntries = allFiles.map(f => ({
data: f.content,
file: {
path: f.path,
id: f.path
}
}));
const entries = allEntries.slice(newIndex * pageSize, newIndex * pageSize + pageSize);
const newCursor = getCursor(folder, extension, allEntries, newIndex, depth);
return Promise.resolve({
entries,
cursor: newCursor
});
}
entriesByFolder(folder, extension, depth) {
const files = folder ? getFolderFiles(window.repoFiles, folder, extension, depth) : [];
const entries = files.map(f => ({
data: f.content,
file: {
path: f.path,
id: f.path
}
}));
const cursor = getCursor(folder, extension, entries, 0, depth);
const ret = (0, _take2.default)(entries, pageSize);
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore
ret[_decapCmsLibUtil.CURSOR_COMPATIBILITY_SYMBOL] = cursor;
return Promise.resolve(ret);
}
entriesByFiles(files) {
return Promise.all(files.map(file => ({
file,
data: getFile(file.path, window.repoFiles).content
})));
}
getEntry(path) {
return Promise.resolve({
file: {
path,
id: null
},
data: getFile(path, window.repoFiles).content
});
}
unpublishedEntries() {
return Promise.resolve(Object.keys(window.repoFilesUnpublished));
}
unpublishedEntry({
id,
collection,
slug
}) {
if (id) {
const parts = id.split('/');
collection = parts[0];
slug = parts[1];
}
const entry = window.repoFilesUnpublished[`${collection}/${slug}`];
if (!entry) {
return Promise.reject(new _decapCmsLibUtil.EditorialWorkflowError('content is not under editorial workflow', true));
}
return Promise.resolve(entry);
}
async unpublishedEntryDataFile(collection, slug, path) {
const entry = window.repoFilesUnpublished[`${collection}/${slug}`];
const file = entry.diffs.find(d => d.path === path);
return file === null || file === void 0 ? void 0 : file.content;
}
async unpublishedEntryMediaFile(collection, slug, path) {
const entry = window.repoFilesUnpublished[`${collection}/${slug}`];
const file = entry.diffs.find(d => d.path === path);
return this.normalizeAsset(file === null || file === void 0 ? void 0 : file.content);
}
deleteUnpublishedEntry(collection, slug) {
delete window.repoFilesUnpublished[`${collection}/${slug}`];
return Promise.resolve();
}
async addOrUpdateUnpublishedEntry(key, dataFiles, assetProxies, slug, collection, status) {
const diffs = [];
dataFiles.forEach(dataFile => {
var _window$repoFilesUnpu;
const {
path,
newPath,
raw
} = dataFile;
const currentDataFile = (_window$repoFilesUnpu = window.repoFilesUnpublished[key]) === null || _window$repoFilesUnpu === void 0 ? void 0 : _window$repoFilesUnpu.diffs.find(d => d.path === path);
const originalPath = currentDataFile ? currentDataFile.originalPath : path;
diffs.push({
originalPath,
id: newPath || path,
path: newPath || path,
newFile: (0, _isEmpty2.default)(getFile(originalPath, window.repoFiles)),
status: 'added',
content: raw
});
});
assetProxies.forEach(a => {
const asset = this.normalizeAsset(a);
diffs.push({
id: asset.id,
path: asset.path,
newFile: true,
status: 'added',
content: asset
});
});
window.repoFilesUnpublished[key] = {
slug,
collection,
status,
diffs,
updatedAt: new Date().toISOString()
};
}
async persistEntry(entry, options) {
if (options.useWorkflow) {
const slug = entry.dataFiles[0].slug;
const key = `${options.collectionName}/${slug}`;
const currentEntry = window.repoFilesUnpublished[key];
const status = (currentEntry === null || currentEntry === void 0 ? void 0 : currentEntry.status) || options.status || this.options.initialWorkflowStatus;
this.addOrUpdateUnpublishedEntry(key, entry.dataFiles, entry.assets, slug, options.collectionName, status);
return Promise.resolve();
}
entry.dataFiles.forEach(dataFile => {
const {
path,
raw
} = dataFile;
writeFile(path, raw, window.repoFiles);
});
entry.assets.forEach(a => {
writeFile(a.path, a, window.repoFiles);
});
return Promise.resolve();
}
updateUnpublishedEntryStatus(collection, slug, newStatus) {
window.repoFilesUnpublished[`${collection}/${slug}`].status = newStatus;
return Promise.resolve();
}
publishUnpublishedEntry(collection, slug) {
const key = `${collection}/${slug}`;
const unpubEntry = window.repoFilesUnpublished[key];
delete window.repoFilesUnpublished[key];
const tree = window.repoFiles;
unpubEntry.diffs.forEach(d => {
if (d.originalPath && !d.newFile) {
const originalPath = d.originalPath;
const sourceDir = (0, _path.dirname)(originalPath);
const destDir = (0, _path.dirname)(d.path);
const toMove = getFolderFiles(tree, originalPath.split('/')[0], '', 100).filter(f => f.path.startsWith(sourceDir));
toMove.forEach(f => {
deleteFile(f.path, tree);
writeFile(f.path.replace(sourceDir, destDir), f.content, tree);
});
}
writeFile(d.path, d.content, tree);
});
return Promise.resolve();
}
getMedia(mediaFolder = this.mediaFolder) {
const files = getFolderFiles(window.repoFiles, mediaFolder.split('/')[0], '', 100).filter(f => f.path.startsWith(mediaFolder));
const assets = files.map(f => this.normalizeAsset(f.content));
return Promise.resolve(assets);
}
async getMediaFile(path) {
const asset = getFile(path, window.repoFiles).content;
const url = asset.toString();
const name = (0, _decapCmsLibUtil.basename)(path);
const blob = await fetch(url).then(res => res.blob());
const fileObj = new File([blob], name);
return {
id: url,
displayURL: url,
path,
name,
size: fileObj.size,
file: fileObj,
url
};
}
normalizeAsset(assetProxy) {
const fileObj = assetProxy.fileObj;
const {
name,
size
} = fileObj;
const objectUrl = (0, _attempt2.default)(window.URL.createObjectURL, fileObj);
const url = (0, _isError2.default)(objectUrl) ? '' : objectUrl;
const normalizedAsset = {
id: (0, _uuid.v4)(),
name,
size,
path: assetProxy.path,
url,
displayURL: url,
fileObj
};
return normalizedAsset;
}
persistMedia(assetProxy) {
const normalizedAsset = this.normalizeAsset(assetProxy);
writeFile(assetProxy.path, assetProxy, window.repoFiles);
return Promise.resolve(normalizedAsset);
}
deleteFiles(paths) {
paths.forEach(path => {
deleteFile(path, window.repoFiles);
});
return Promise.resolve();
}
async getDeployPreview() {
return null;
}
}
exports.default = TestBackend;

25
node_modules/decap-cms-backend-test/dist/esm/index.js generated vendored Normal file
View File

@@ -0,0 +1,25 @@
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
Object.defineProperty(exports, "AuthenticationPage", {
enumerable: true,
get: function () {
return _AuthenticationPage.default;
}
});
exports.DecapCmsBackendTest = void 0;
Object.defineProperty(exports, "TestBackend", {
enumerable: true,
get: function () {
return _implementation.default;
}
});
var _implementation = _interopRequireDefault(require("./implementation"));
var _AuthenticationPage = _interopRequireDefault(require("./AuthenticationPage"));
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
const DecapCmsBackendTest = exports.DecapCmsBackendTest = {
TestBackend: _implementation.default,
AuthenticationPage: _AuthenticationPage.default
};