powr-sdk-web 6.12.1 → 6.13.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.
@@ -55,5 +55,10 @@ var CORE_SECTION_LOADERS = exports.CORE_SECTION_LOADERS = {
55
55
  return Promise.resolve().then(function () {
56
56
  return _interopRequireWildcard(require('../track/admin'));
57
57
  });
58
+ },
59
+ scheduler: function scheduler() {
60
+ return Promise.resolve().then(function () {
61
+ return _interopRequireWildcard(require('../scheduler/admin'));
62
+ });
58
63
  }
59
64
  };
@@ -0,0 +1,212 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports["default"] = PowrSchedulerAdmin;
7
+ var _react = _interopRequireWildcard(require("react"));
8
+ var _auth = require("../utils/auth");
9
+ var _config = require("../config");
10
+ var _session = require("../session");
11
+ var cache;
12
+ function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var r, c, a = Object.defineProperty, n = { __proto__: null, "default": e }; if (Object(e) !== e) return n; if (cache || "function" != typeof WeakMap || (cache = new WeakMap()), cache) { if (cache.has(e)) return cache.get(e); cache.set(e, n); } for (c in e) "default" !== c && {}.hasOwnProperty.call(e, c) && ((r = a && Object.getOwnPropertyDescriptor(e, c)) && (r.get || r.set) ? a(n, c, r) : n[c] = e[c]); return n; }
13
+ function _regenerator() { /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */ var e, t, r = "function" == typeof Symbol ? Symbol : {}, n = r.iterator || "@@iterator", o = r.toStringTag || "@@toStringTag"; function i(r, n, o, i) { var c = n && n.prototype instanceof Generator ? n : Generator, u = Object.create(c.prototype); return _regeneratorDefine2(u, "_invoke", function (r, n, o) { var i, c, u, f = 0, p = o || [], y = !1, G = { p: 0, n: 0, v: e, a: d, f: d.bind(e, 4), d: function d(t, r) { return i = t, c = 0, u = e, G.n = r, a; } }; function d(r, n) { for (c = r, u = n, t = 0; !y && f && !o && t < p.length; t++) { var o, i = p[t], d = G.p, l = i[2]; r > 3 ? (o = l === n) && (u = i[(c = i[4]) ? 5 : (c = 3, 3)], i[4] = i[5] = e) : i[0] <= d && ((o = r < 2 && d < i[1]) ? (c = 0, G.v = n, G.n = i[1]) : d < l && (o = r < 3 || i[0] > n || n > l) && (i[4] = r, i[5] = n, G.n = l, c = 0)); } if (o || r > 1) return a; throw y = !0, n; } return function (o, p, l) { if (f > 1) throw TypeError("Generator is already running"); for (y && 1 === p && d(p, l), c = p, u = l; (t = c < 2 ? e : u) || !y;) { i || (c ? c < 3 ? (c > 1 && (G.n = -1), d(c, u)) : G.n = u : G.v = u); try { if (f = 2, i) { if (c || (o = "next"), t = i[o]) { if (!(t = t.call(i, u))) throw TypeError("iterator result is not an object"); if (!t.done) return t; u = t.value, c < 2 && (c = 0); } else 1 === c && (t = i["return"]) && t.call(i), c < 2 && (u = TypeError("The iterator does not provide a '" + o + "' method"), c = 1); i = e; } else if ((t = (y = G.n < 0) ? u : r.call(n, G)) !== a) break; } catch (t) { i = e, c = 1, u = t; } finally { f = 1; } } return { value: t, done: y }; }; }(r, o, i), !0), u; } var a = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} t = Object.getPrototypeOf; var c = [][n] ? t(t([][n]())) : (_regeneratorDefine2(t = {}, n, function () { return this; }), t), u = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(c); function f(e) { return Object.setPrototypeOf ? Object.setPrototypeOf(e, GeneratorFunctionPrototype) : (e.__proto__ = GeneratorFunctionPrototype, _regeneratorDefine2(e, o, "GeneratorFunction")), e.prototype = Object.create(u), e; } return GeneratorFunction.prototype = GeneratorFunctionPrototype, _regeneratorDefine2(u, "constructor", GeneratorFunctionPrototype), _regeneratorDefine2(GeneratorFunctionPrototype, "constructor", GeneratorFunction), GeneratorFunction.displayName = "GeneratorFunction", _regeneratorDefine2(GeneratorFunctionPrototype, o, "GeneratorFunction"), _regeneratorDefine2(u), _regeneratorDefine2(u, o, "Generator"), _regeneratorDefine2(u, n, function () { return this; }), _regeneratorDefine2(u, "toString", function () { return "[object Generator]"; }), (_regenerator = function _regenerator() { return { w: i, m: f }; })(); }
14
+ function _regeneratorDefine2(e, r, n, t) { var i = Object.defineProperty; try { i({}, "", {}); } catch (e) { i = 0; } _regeneratorDefine2 = function _regeneratorDefine(e, r, n, t) { function o(r, n) { _regeneratorDefine2(e, r, function (e) { return this._invoke(r, n, e); }); } r ? i ? i(e, r, { value: n, enumerable: !t, configurable: !t, writable: !t }) : e[r] = n : (o("next", 0), o("throw", 1), o("return", 2)); }, _regeneratorDefine2(e, r, n, t); }
15
+ function asyncGeneratorStep(n, t, e, r, o, a, c) { try { var i = n[a](c), u = i.value; } catch (n) { return void e(n); } i.done ? t(u) : Promise.resolve(u).then(r, o); }
16
+ function _asyncToGenerator(n) { return function () { var t = this, e = arguments; return new Promise(function (r, o) { var a = n.apply(t, e); function _next(n) { asyncGeneratorStep(a, r, o, _next, _throw, "next", n); } function _throw(n) { asyncGeneratorStep(a, r, o, _next, _throw, "throw", n); } _next(void 0); }); }; }
17
+ function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }
18
+ function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
19
+ function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
20
+ function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
21
+ function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
22
+ function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
23
+ function when(value) {
24
+ if (!value) return "—";
25
+ var date = new Date(value);
26
+ if (Number.isNaN(date.getTime())) return "—";
27
+ return date.toLocaleString();
28
+ }
29
+ function PowrSchedulerAdmin(_ref) {
30
+ var projectId = _ref.projectId,
31
+ apiUrl = _ref.apiUrl;
32
+ var session = (0, _session.usePowrSession)();
33
+ var _useState = (0, _react.useState)([]),
34
+ _useState2 = _slicedToArray(_useState, 2),
35
+ rows = _useState2[0],
36
+ setRows = _useState2[1];
37
+ var _useState3 = (0, _react.useState)(true),
38
+ _useState4 = _slicedToArray(_useState3, 2),
39
+ loading = _useState4[0],
40
+ setLoading = _useState4[1];
41
+ var _useState5 = (0, _react.useState)(""),
42
+ _useState6 = _slicedToArray(_useState5, 2),
43
+ error = _useState6[0],
44
+ setError = _useState6[1];
45
+ var _useState7 = (0, _react.useState)(""),
46
+ _useState8 = _slicedToArray(_useState7, 2),
47
+ busy = _useState8[0],
48
+ setBusy = _useState8[1];
49
+ var load = (0, _react.useCallback)(/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee() {
50
+ var host, headers, _yield$apiCall, data, ok;
51
+ return _regenerator().w(function (_context) {
52
+ while (1) switch (_context.n) {
53
+ case 0:
54
+ setLoading(true);
55
+ setError("");
56
+ host = apiUrl || _config.DEFAULT_POWR_API_URL;
57
+ headers = session !== null && session !== void 0 && session.token ? {
58
+ Authorization: "Bearer ".concat(session.token)
59
+ } : undefined;
60
+ _context.n = 1;
61
+ return (0, _auth.apiCall)(host, "/scheduler", projectId, {
62
+ headers: headers
63
+ });
64
+ case 1:
65
+ _yield$apiCall = _context.v;
66
+ data = _yield$apiCall.data;
67
+ ok = _yield$apiCall.ok;
68
+ if (!ok || !(data !== null && data !== void 0 && data.success)) {
69
+ setError((data === null || data === void 0 ? void 0 : data.message) || "Failed to load schedules.");
70
+ setRows([]);
71
+ } else {
72
+ setRows(Array.isArray(data.data) ? data.data : []);
73
+ }
74
+ setLoading(false);
75
+ case 2:
76
+ return _context.a(2);
77
+ }
78
+ }, _callee);
79
+ })), [apiUrl, projectId, session === null || session === void 0 ? void 0 : session.token]);
80
+ (0, _react.useEffect)(function () {
81
+ load()["catch"](function () {
82
+ setError("Failed to load schedules.");
83
+ setLoading(false);
84
+ });
85
+ }, [load]);
86
+ function send(_x, _x2, _x3) {
87
+ return _send.apply(this, arguments);
88
+ }
89
+ function _send() {
90
+ _send = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee2(id, path, _ref3) {
91
+ var method, body, host, headers, _yield$apiCall2, data, ok;
92
+ return _regenerator().w(function (_context2) {
93
+ while (1) switch (_context2.p = _context2.n) {
94
+ case 0:
95
+ method = _ref3.method, body = _ref3.body;
96
+ setBusy(id + path);
97
+ setError("");
98
+ _context2.p = 1;
99
+ host = apiUrl || _config.DEFAULT_POWR_API_URL;
100
+ headers = session !== null && session !== void 0 && session.token ? {
101
+ Authorization: "Bearer ".concat(session.token)
102
+ } : undefined;
103
+ _context2.n = 2;
104
+ return (0, _auth.apiCall)(host, path, projectId, {
105
+ method: method,
106
+ headers: headers,
107
+ body: body
108
+ });
109
+ case 2:
110
+ _yield$apiCall2 = _context2.v;
111
+ data = _yield$apiCall2.data;
112
+ ok = _yield$apiCall2.ok;
113
+ if (!(!ok || !(data !== null && data !== void 0 && data.success))) {
114
+ _context2.n = 3;
115
+ break;
116
+ }
117
+ setError((data === null || data === void 0 ? void 0 : data.message) || "Could not update.");
118
+ return _context2.a(2);
119
+ case 3:
120
+ _context2.n = 4;
121
+ return load();
122
+ case 4:
123
+ _context2.p = 4;
124
+ setBusy("");
125
+ return _context2.f(4);
126
+ case 5:
127
+ return _context2.a(2);
128
+ }
129
+ }, _callee2, null, [[1,, 4, 5]]);
130
+ }));
131
+ return _send.apply(this, arguments);
132
+ }
133
+ if (loading) return /*#__PURE__*/_react["default"].createElement("p", null, "Loading schedules\u2026");
134
+ if (error && !rows.length) return /*#__PURE__*/_react["default"].createElement("p", null, error);
135
+ if (!rows.length) return /*#__PURE__*/_react["default"].createElement("p", null, "No schedules for this project.");
136
+ return /*#__PURE__*/_react["default"].createElement("div", null, error ? /*#__PURE__*/_react["default"].createElement("p", null, error) : null, /*#__PURE__*/_react["default"].createElement("table", {
137
+ style: {
138
+ width: "100%",
139
+ borderCollapse: "collapse",
140
+ fontSize: 14
141
+ }
142
+ }, /*#__PURE__*/_react["default"].createElement("thead", null, /*#__PURE__*/_react["default"].createElement("tr", null, ["Name", "When", "On", "Last run", "Result", ""].map(function (label) {
143
+ return /*#__PURE__*/_react["default"].createElement("th", {
144
+ key: label || "actions",
145
+ style: {
146
+ textAlign: "left",
147
+ padding: "8px 6px",
148
+ borderBottom: "1px solid #e5e7eb"
149
+ }
150
+ }, label);
151
+ }))), /*#__PURE__*/_react["default"].createElement("tbody", null, rows.map(function (row) {
152
+ var result = row.lastOk == null ? "—" : row.lastOk ? "OK" : row.lastError || "Fail";
153
+ return /*#__PURE__*/_react["default"].createElement("tr", {
154
+ key: row._id
155
+ }, /*#__PURE__*/_react["default"].createElement("td", {
156
+ style: {
157
+ padding: "8px 6px",
158
+ verticalAlign: "top"
159
+ }
160
+ }, row.name), /*#__PURE__*/_react["default"].createElement("td", {
161
+ style: {
162
+ padding: "8px 6px",
163
+ verticalAlign: "top"
164
+ }
165
+ }, row.when || row.cron), /*#__PURE__*/_react["default"].createElement("td", {
166
+ style: {
167
+ padding: "8px 6px",
168
+ verticalAlign: "top"
169
+ }
170
+ }, row.enabled ? "On" : "Off"), /*#__PURE__*/_react["default"].createElement("td", {
171
+ style: {
172
+ padding: "8px 6px",
173
+ verticalAlign: "top"
174
+ }
175
+ }, when(row.lastRunAt)), /*#__PURE__*/_react["default"].createElement("td", {
176
+ style: {
177
+ padding: "8px 6px",
178
+ verticalAlign: "top",
179
+ color: row.lastOk === false ? "#b91c1c" : "inherit"
180
+ }
181
+ }, result), /*#__PURE__*/_react["default"].createElement("td", {
182
+ style: {
183
+ padding: "8px 6px",
184
+ verticalAlign: "top",
185
+ whiteSpace: "nowrap"
186
+ }
187
+ }, /*#__PURE__*/_react["default"].createElement("button", {
188
+ type: "button",
189
+ disabled: busy !== "",
190
+ onClick: function onClick() {
191
+ return send(row._id, "/scheduler/".concat(row._id), {
192
+ method: "PATCH",
193
+ body: {
194
+ enabled: !row.enabled
195
+ }
196
+ });
197
+ },
198
+ style: {
199
+ marginRight: 8
200
+ }
201
+ }, row.enabled ? "Turn off" : "Turn on"), /*#__PURE__*/_react["default"].createElement("button", {
202
+ type: "button",
203
+ disabled: busy !== "",
204
+ onClick: function onClick() {
205
+ return send(row._id, "/scheduler/".concat(row._id, "/run"), {
206
+ method: "POST",
207
+ body: {}
208
+ });
209
+ }
210
+ }, "Run now")));
211
+ }))));
212
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "powr-sdk-web",
3
- "version": "6.12.1",
3
+ "version": "6.13.0",
4
4
  "main": "dist/index.js",
5
5
  "files": [
6
6
  "dist"