@instructure/quiz-core 20.29.1 → 20.29.2-snapshot.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +4694 -0
- package/es/common/kinesis/StreamQueue.js +9 -1
- package/es/index.js +2 -1
- package/es/moderating/components/resources/RetryGradePassbackButton/index.js +18 -0
- package/es/moderating/components/resources/RetryGradePassbackButton/presenter.js +82 -0
- package/lib/common/kinesis/StreamQueue.js +9 -1
- package/lib/index.js +14 -6
- package/lib/moderating/components/resources/RetryGradePassbackButton/index.js +26 -0
- package/lib/moderating/components/resources/RetryGradePassbackButton/presenter.js +89 -0
- package/package.json +11 -10
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import _objectSpread from "@babel/runtime/helpers/esm/objectSpread2";
|
|
1
2
|
import _classCallCheck from "@babel/runtime/helpers/esm/classCallCheck";
|
|
2
3
|
import _createClass from "@babel/runtime/helpers/esm/createClass";
|
|
3
4
|
import { AwsClient } from 'aws4fetch';
|
|
@@ -98,9 +99,16 @@ var StreamQueue = /*#__PURE__*/function () {
|
|
|
98
99
|
key: "_sendRecordsViaProxy",
|
|
99
100
|
value: function _sendRecordsViaProxy(params) {
|
|
100
101
|
if (!this.proxyDomain) return;
|
|
102
|
+
var encodedParams = _objectSpread(_objectSpread({}, params), {}, {
|
|
103
|
+
Records: params.Records.map(function (record) {
|
|
104
|
+
return _objectSpread(_objectSpread({}, record), {}, {
|
|
105
|
+
Data: btoa(record.Data)
|
|
106
|
+
});
|
|
107
|
+
})
|
|
108
|
+
});
|
|
101
109
|
this.awsClient.fetch(this.proxyDomain, {
|
|
102
110
|
method: 'PUT',
|
|
103
|
-
body: JSON.stringify(
|
|
111
|
+
body: JSON.stringify(encodedParams)
|
|
104
112
|
});
|
|
105
113
|
}
|
|
106
114
|
}, {
|
package/es/index.js
CHANGED
|
@@ -77,7 +77,8 @@ export { TimeUnitsInput } from "./common/components/shared/TimeUnitsInput/index.
|
|
|
77
77
|
export { QuizEntry as QuizEntryView } from "./building/components/resources/quizEntry/QuizEntry/index.js";
|
|
78
78
|
export { Provider } from "./common/react-redux.js";
|
|
79
79
|
export { FormattedTimer } from "./common/components/shared/FormattedDuration/index.js";
|
|
80
|
-
export { default as TagWrapper } from "./common/components/shared/TagWrapper/index.js";
|
|
80
|
+
export { default as TagWrapper } from "./common/components/shared/TagWrapper/index.js";
|
|
81
|
+
export { RetryGradePassbackButton } from "./moderating/components/resources/RetryGradePassbackButton/index.js"; // Utilities
|
|
81
82
|
export { environment as config } from "./config.js";
|
|
82
83
|
export { Fetcher } from "./common/util/Fetcher.js";
|
|
83
84
|
export { httpHeaders } from "./common/util/httpHeaders.js";
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import PropTypes from 'prop-types';
|
|
2
|
+
import { addAlert } from "../../../../common/actions/alerts.js";
|
|
3
|
+
import { connect } from "../../../../common/react-redux.js";
|
|
4
|
+
import { RetryGradePassbackButton as RetryGradePassbackButtonPresenter } from "./presenter.js";
|
|
5
|
+
var mapStateToProps = function mapStateToProps(state) {
|
|
6
|
+
return {};
|
|
7
|
+
};
|
|
8
|
+
var mapDispatchToProps = {
|
|
9
|
+
addAlert: addAlert
|
|
10
|
+
};
|
|
11
|
+
var ConnectedRetryGradePassbackButton = connect(mapStateToProps, mapDispatchToProps)(RetryGradePassbackButtonPresenter);
|
|
12
|
+
|
|
13
|
+
// Note: We don't want to expose props that are only used internally by the container component
|
|
14
|
+
export var RetryGradePassbackButton = ConnectedRetryGradePassbackButton;
|
|
15
|
+
RetryGradePassbackButton.propTypes = {
|
|
16
|
+
onClick: PropTypes.func.isRequired,
|
|
17
|
+
'data-automation': PropTypes.string
|
|
18
|
+
};
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
import _regeneratorRuntime from "@babel/runtime/regenerator";
|
|
2
|
+
import _asyncToGenerator from "@babel/runtime/helpers/esm/asyncToGenerator";
|
|
3
|
+
import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
|
|
4
|
+
import React from 'react';
|
|
5
|
+
import { Button } from '@instructure/ui-buttons';
|
|
6
|
+
import { IconRefreshLine } from '@instructure/ui-icons';
|
|
7
|
+
import t from '@instructure/quiz-i18n/es/format-message';
|
|
8
|
+
import PropTypes from 'prop-types';
|
|
9
|
+
export function RetryGradePassbackButton(_ref) {
|
|
10
|
+
var addAlert = _ref.addAlert,
|
|
11
|
+
onClick = _ref.onClick,
|
|
12
|
+
dataAutomation = _ref['data-automation'];
|
|
13
|
+
var _React$useState = React.useState('idle'),
|
|
14
|
+
_React$useState2 = _slicedToArray(_React$useState, 2),
|
|
15
|
+
retryGradePassbackStatus = _React$useState2[0],
|
|
16
|
+
setRetryGradePassbackStatus = _React$useState2[1];
|
|
17
|
+
function handleClick() {
|
|
18
|
+
return _handleClick.apply(this, arguments);
|
|
19
|
+
}
|
|
20
|
+
function _handleClick() {
|
|
21
|
+
_handleClick = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee() {
|
|
22
|
+
var response;
|
|
23
|
+
return _regeneratorRuntime.wrap(function _callee$(_context) {
|
|
24
|
+
while (1) {
|
|
25
|
+
switch (_context.prev = _context.next) {
|
|
26
|
+
case 0:
|
|
27
|
+
if (!(retryGradePassbackStatus === 'pending')) {
|
|
28
|
+
_context.next = 2;
|
|
29
|
+
break;
|
|
30
|
+
}
|
|
31
|
+
return _context.abrupt("return");
|
|
32
|
+
case 2:
|
|
33
|
+
_context.prev = 2;
|
|
34
|
+
setRetryGradePassbackStatus('pending');
|
|
35
|
+
_context.next = 6;
|
|
36
|
+
return onClick();
|
|
37
|
+
case 6:
|
|
38
|
+
response = _context.sent;
|
|
39
|
+
if (!(response == null)) {
|
|
40
|
+
_context.next = 9;
|
|
41
|
+
break;
|
|
42
|
+
}
|
|
43
|
+
throw new Error('Failed to retry grade passback');
|
|
44
|
+
case 9:
|
|
45
|
+
addAlert({
|
|
46
|
+
message: t('Grade passback has been retried. This may take a while.'),
|
|
47
|
+
variant: 'info',
|
|
48
|
+
removeIn: 5000
|
|
49
|
+
});
|
|
50
|
+
setRetryGradePassbackStatus('success');
|
|
51
|
+
_context.next = 17;
|
|
52
|
+
break;
|
|
53
|
+
case 13:
|
|
54
|
+
_context.prev = 13;
|
|
55
|
+
_context.t0 = _context["catch"](2);
|
|
56
|
+
addAlert({
|
|
57
|
+
message: t('Failed to retry grade passback. Please try again.'),
|
|
58
|
+
variant: 'error',
|
|
59
|
+
removeIn: 5000
|
|
60
|
+
});
|
|
61
|
+
setRetryGradePassbackStatus('error');
|
|
62
|
+
case 17:
|
|
63
|
+
case "end":
|
|
64
|
+
return _context.stop();
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
}, _callee, null, [[2, 13]]);
|
|
68
|
+
}));
|
|
69
|
+
return _handleClick.apply(this, arguments);
|
|
70
|
+
}
|
|
71
|
+
return /*#__PURE__*/React.createElement(Button, {
|
|
72
|
+
renderIcon: IconRefreshLine,
|
|
73
|
+
onClick: handleClick,
|
|
74
|
+
disabled: retryGradePassbackStatus === 'pending',
|
|
75
|
+
"data-automation": dataAutomation
|
|
76
|
+
}, t('Retry Grade Passback'));
|
|
77
|
+
}
|
|
78
|
+
RetryGradePassbackButton.propTypes = {
|
|
79
|
+
onClick: PropTypes.func.isRequired,
|
|
80
|
+
addAlert: PropTypes.func.isRequired,
|
|
81
|
+
'data-automation': PropTypes.string
|
|
82
|
+
};
|
|
@@ -5,6 +5,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
value: true
|
|
6
6
|
});
|
|
7
7
|
exports.default = void 0;
|
|
8
|
+
var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
|
|
8
9
|
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
9
10
|
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
10
11
|
var _aws4fetch = require("aws4fetch");
|
|
@@ -105,9 +106,16 @@ var StreamQueue = /*#__PURE__*/function () {
|
|
|
105
106
|
key: "_sendRecordsViaProxy",
|
|
106
107
|
value: function _sendRecordsViaProxy(params) {
|
|
107
108
|
if (!this.proxyDomain) return;
|
|
109
|
+
var encodedParams = (0, _objectSpread2.default)((0, _objectSpread2.default)({}, params), {}, {
|
|
110
|
+
Records: params.Records.map(function (record) {
|
|
111
|
+
return (0, _objectSpread2.default)((0, _objectSpread2.default)({}, record), {}, {
|
|
112
|
+
Data: btoa(record.Data)
|
|
113
|
+
});
|
|
114
|
+
})
|
|
115
|
+
});
|
|
108
116
|
this.awsClient.fetch(this.proxyDomain, {
|
|
109
117
|
method: 'PUT',
|
|
110
|
-
body: JSON.stringify(
|
|
118
|
+
body: JSON.stringify(encodedParams)
|
|
111
119
|
});
|
|
112
120
|
}
|
|
113
121
|
}, {
|
package/lib/index.js
CHANGED
|
@@ -80,6 +80,7 @@ var _exportNames = {
|
|
|
80
80
|
breakdownSeconds: true,
|
|
81
81
|
HOUR_IN_SECONDS: true,
|
|
82
82
|
TagWrapper: true,
|
|
83
|
+
RetryGradePassbackButton: true,
|
|
83
84
|
config: true,
|
|
84
85
|
Fetcher: true,
|
|
85
86
|
httpHeaders: true,
|
|
@@ -653,6 +654,12 @@ Object.defineProperty(exports, "TagWrapper", {
|
|
|
653
654
|
return _index56.default;
|
|
654
655
|
}
|
|
655
656
|
});
|
|
657
|
+
Object.defineProperty(exports, "RetryGradePassbackButton", {
|
|
658
|
+
enumerable: true,
|
|
659
|
+
get: function get() {
|
|
660
|
+
return _index57.RetryGradePassbackButton;
|
|
661
|
+
}
|
|
662
|
+
});
|
|
656
663
|
Object.defineProperty(exports, "config", {
|
|
657
664
|
enumerable: true,
|
|
658
665
|
get: function get() {
|
|
@@ -764,7 +771,7 @@ Object.defineProperty(exports, "formatTime", {
|
|
|
764
771
|
Object.defineProperty(exports, "generateImportModalId", {
|
|
765
772
|
enumerable: true,
|
|
766
773
|
get: function get() {
|
|
767
|
-
return
|
|
774
|
+
return _index58.generateImportModalId;
|
|
768
775
|
}
|
|
769
776
|
});
|
|
770
777
|
Object.defineProperty(exports, "TimerService", {
|
|
@@ -1475,6 +1482,7 @@ var _index54 = require("./building/components/resources/quizEntry/QuizEntry/inde
|
|
|
1475
1482
|
var _reactRedux = require("./common/react-redux.js");
|
|
1476
1483
|
var _index55 = require("./common/components/shared/FormattedDuration/index.js");
|
|
1477
1484
|
var _index56 = _interopRequireDefault(require("./common/components/shared/TagWrapper/index.js"));
|
|
1485
|
+
var _index57 = require("./moderating/components/resources/RetryGradePassbackButton/index.js");
|
|
1478
1486
|
var _config = require("./config.js");
|
|
1479
1487
|
var _Fetcher = require("./common/util/Fetcher.js");
|
|
1480
1488
|
var _httpHeaders = require("./common/util/httpHeaders.js");
|
|
@@ -1487,7 +1495,7 @@ var _interactionTypePropsHelper = require("./common/util/interactionTypePropsHel
|
|
|
1487
1495
|
var _generateDisplayPositions = require("./common/util/generateDisplayPositions.js");
|
|
1488
1496
|
var _makeScrollable = require("./common/components/shared/functionality/makeScrollable.js");
|
|
1489
1497
|
var _formatTimespan = require("./common/util/formatTimespan.js");
|
|
1490
|
-
var
|
|
1498
|
+
var _index58 = require("./common/components/ImportModal/index.js");
|
|
1491
1499
|
var _TimerService = require("./common/util/TimerService.js");
|
|
1492
1500
|
var _TimeRecordingService = require("./common/util/TimeRecordingService.js");
|
|
1493
1501
|
var _windowChecks = require("./common/util/windowChecks.js");
|
|
@@ -1533,15 +1541,15 @@ var _rce2 = require("./common/selectors/rce.js");
|
|
|
1533
1541
|
var _quizSessions4 = require("./common/selectors/quizSessions.js");
|
|
1534
1542
|
var _sessionItems = require("./common/selectors/sessionItems.js");
|
|
1535
1543
|
var _sessionItemResults = require("./common/selectors/sessionItemResults.js");
|
|
1536
|
-
var
|
|
1537
|
-
Object.keys(
|
|
1544
|
+
var _index59 = require("./common/records/index.js");
|
|
1545
|
+
Object.keys(_index59).forEach(function (key) {
|
|
1538
1546
|
if (key === "default" || key === "__esModule") return;
|
|
1539
1547
|
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
|
|
1540
|
-
if (key in exports && exports[key] ===
|
|
1548
|
+
if (key in exports && exports[key] === _index59[key]) return;
|
|
1541
1549
|
Object.defineProperty(exports, key, {
|
|
1542
1550
|
enumerable: true,
|
|
1543
1551
|
get: function get() {
|
|
1544
|
-
return
|
|
1552
|
+
return _index59[key];
|
|
1545
1553
|
}
|
|
1546
1554
|
});
|
|
1547
1555
|
});
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.RetryGradePassbackButton = void 0;
|
|
8
|
+
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
9
|
+
var _alerts = require("../../../../common/actions/alerts.js");
|
|
10
|
+
var _reactRedux = require("../../../../common/react-redux.js");
|
|
11
|
+
var _presenter = require("./presenter.js");
|
|
12
|
+
var mapStateToProps = function mapStateToProps(state) {
|
|
13
|
+
return {};
|
|
14
|
+
};
|
|
15
|
+
var mapDispatchToProps = {
|
|
16
|
+
addAlert: _alerts.addAlert
|
|
17
|
+
};
|
|
18
|
+
var ConnectedRetryGradePassbackButton = (0, _reactRedux.connect)(mapStateToProps, mapDispatchToProps)(_presenter.RetryGradePassbackButton);
|
|
19
|
+
|
|
20
|
+
// Note: We don't want to expose props that are only used internally by the container component
|
|
21
|
+
var RetryGradePassbackButton = ConnectedRetryGradePassbackButton;
|
|
22
|
+
exports.RetryGradePassbackButton = RetryGradePassbackButton;
|
|
23
|
+
RetryGradePassbackButton.propTypes = {
|
|
24
|
+
onClick: _propTypes.default.func.isRequired,
|
|
25
|
+
'data-automation': _propTypes.default.string
|
|
26
|
+
};
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.RetryGradePassbackButton = RetryGradePassbackButton;
|
|
8
|
+
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
|
|
9
|
+
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
|
10
|
+
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
11
|
+
var _react = _interopRequireDefault(require("react"));
|
|
12
|
+
var _uiButtons = require("@instructure/ui-buttons");
|
|
13
|
+
var _uiIcons = require("@instructure/ui-icons");
|
|
14
|
+
var _formatMessage = _interopRequireDefault(require("@instructure/quiz-i18n/es/format-message"));
|
|
15
|
+
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
16
|
+
function RetryGradePassbackButton(_ref) {
|
|
17
|
+
var addAlert = _ref.addAlert,
|
|
18
|
+
onClick = _ref.onClick,
|
|
19
|
+
dataAutomation = _ref['data-automation'];
|
|
20
|
+
var _React$useState = _react.default.useState('idle'),
|
|
21
|
+
_React$useState2 = (0, _slicedToArray2.default)(_React$useState, 2),
|
|
22
|
+
retryGradePassbackStatus = _React$useState2[0],
|
|
23
|
+
setRetryGradePassbackStatus = _React$useState2[1];
|
|
24
|
+
function handleClick() {
|
|
25
|
+
return _handleClick.apply(this, arguments);
|
|
26
|
+
}
|
|
27
|
+
function _handleClick() {
|
|
28
|
+
_handleClick = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee() {
|
|
29
|
+
var response;
|
|
30
|
+
return _regenerator.default.wrap(function _callee$(_context) {
|
|
31
|
+
while (1) {
|
|
32
|
+
switch (_context.prev = _context.next) {
|
|
33
|
+
case 0:
|
|
34
|
+
if (!(retryGradePassbackStatus === 'pending')) {
|
|
35
|
+
_context.next = 2;
|
|
36
|
+
break;
|
|
37
|
+
}
|
|
38
|
+
return _context.abrupt("return");
|
|
39
|
+
case 2:
|
|
40
|
+
_context.prev = 2;
|
|
41
|
+
setRetryGradePassbackStatus('pending');
|
|
42
|
+
_context.next = 6;
|
|
43
|
+
return onClick();
|
|
44
|
+
case 6:
|
|
45
|
+
response = _context.sent;
|
|
46
|
+
if (!(response == null)) {
|
|
47
|
+
_context.next = 9;
|
|
48
|
+
break;
|
|
49
|
+
}
|
|
50
|
+
throw new Error('Failed to retry grade passback');
|
|
51
|
+
case 9:
|
|
52
|
+
addAlert({
|
|
53
|
+
message: (0, _formatMessage.default)('Grade passback has been retried. This may take a while.'),
|
|
54
|
+
variant: 'info',
|
|
55
|
+
removeIn: 5000
|
|
56
|
+
});
|
|
57
|
+
setRetryGradePassbackStatus('success');
|
|
58
|
+
_context.next = 17;
|
|
59
|
+
break;
|
|
60
|
+
case 13:
|
|
61
|
+
_context.prev = 13;
|
|
62
|
+
_context.t0 = _context["catch"](2);
|
|
63
|
+
addAlert({
|
|
64
|
+
message: (0, _formatMessage.default)('Failed to retry grade passback. Please try again.'),
|
|
65
|
+
variant: 'error',
|
|
66
|
+
removeIn: 5000
|
|
67
|
+
});
|
|
68
|
+
setRetryGradePassbackStatus('error');
|
|
69
|
+
case 17:
|
|
70
|
+
case "end":
|
|
71
|
+
return _context.stop();
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
}, _callee, null, [[2, 13]]);
|
|
75
|
+
}));
|
|
76
|
+
return _handleClick.apply(this, arguments);
|
|
77
|
+
}
|
|
78
|
+
return /*#__PURE__*/_react.default.createElement(_uiButtons.Button, {
|
|
79
|
+
renderIcon: _uiIcons.IconRefreshLine,
|
|
80
|
+
onClick: handleClick,
|
|
81
|
+
disabled: retryGradePassbackStatus === 'pending',
|
|
82
|
+
"data-automation": dataAutomation
|
|
83
|
+
}, (0, _formatMessage.default)('Retry Grade Passback'));
|
|
84
|
+
}
|
|
85
|
+
RetryGradePassbackButton.propTypes = {
|
|
86
|
+
onClick: _propTypes.default.func.isRequired,
|
|
87
|
+
addAlert: _propTypes.default.func.isRequired,
|
|
88
|
+
'data-automation': _propTypes.default.string
|
|
89
|
+
};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@instructure/quiz-core",
|
|
3
|
-
"version": "20.29.1",
|
|
3
|
+
"version": "20.29.2-snapshot.1+4109522cb",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"description": "The Quiz React SDK by Instructure Inc.",
|
|
6
6
|
"author": "Instructure, Inc. Engineering and Product Design",
|
|
@@ -44,11 +44,11 @@
|
|
|
44
44
|
"@instructure/emotion": "^8.51.0",
|
|
45
45
|
"@instructure/grading-utils": "^1.0.0",
|
|
46
46
|
"@instructure/outcomes-ui": "^3.2.2",
|
|
47
|
-
"@instructure/quiz-common": "
|
|
48
|
-
"@instructure/quiz-i18n": "
|
|
49
|
-
"@instructure/quiz-interactions": "
|
|
50
|
-
"@instructure/quiz-number-input": "
|
|
51
|
-
"@instructure/quiz-rce": "
|
|
47
|
+
"@instructure/quiz-common": "20.29.2-snapshot.1+4109522cb",
|
|
48
|
+
"@instructure/quiz-i18n": "20.29.2-snapshot.1+4109522cb",
|
|
49
|
+
"@instructure/quiz-interactions": "20.29.2-snapshot.1+4109522cb",
|
|
50
|
+
"@instructure/quiz-number-input": "20.29.2-snapshot.1+4109522cb",
|
|
51
|
+
"@instructure/quiz-rce": "20.29.2-snapshot.1+4109522cb",
|
|
52
52
|
"@instructure/ui-a11y-content": "^8.51.0",
|
|
53
53
|
"@instructure/ui-alerts": "^8.51.0",
|
|
54
54
|
"@instructure/ui-avatar": "^8.51.0",
|
|
@@ -112,7 +112,7 @@
|
|
|
112
112
|
"file-saver": "~2.0.5",
|
|
113
113
|
"humps": "^2.0.0",
|
|
114
114
|
"immutable": "^3.8.1",
|
|
115
|
-
"instructure-validations": "
|
|
115
|
+
"instructure-validations": "20.29.2-snapshot.1+4109522cb",
|
|
116
116
|
"ipaddr.js": "^1.5.4",
|
|
117
117
|
"isomorphic-fetch": "^2.2.0",
|
|
118
118
|
"isuuid": "^0.1.0",
|
|
@@ -143,7 +143,7 @@
|
|
|
143
143
|
"uuid": "^3.2.1"
|
|
144
144
|
},
|
|
145
145
|
"devDependencies": {
|
|
146
|
-
"@instructure/quiz-scripts": "
|
|
146
|
+
"@instructure/quiz-scripts": "20.29.1",
|
|
147
147
|
"@instructure/ui-axe-check": "^8.51.0",
|
|
148
148
|
"@instructure/ui-babel-preset": "^7.22.1",
|
|
149
149
|
"@instructure/ui-test-utils": "^7.22.1",
|
|
@@ -161,7 +161,7 @@
|
|
|
161
161
|
"jquery": "^2.2.3",
|
|
162
162
|
"karma-junit-reporter": "^2.0.1",
|
|
163
163
|
"most-subject": "^5.3.0",
|
|
164
|
-
"quiz-presets": "
|
|
164
|
+
"quiz-presets": "20.29.2-snapshot.1+4109522cb",
|
|
165
165
|
"react": "^16.8.6",
|
|
166
166
|
"react-addons-test-utils": "^15.6.2",
|
|
167
167
|
"react-dom": "^16.8.6",
|
|
@@ -176,5 +176,6 @@
|
|
|
176
176
|
},
|
|
177
177
|
"publishConfig": {
|
|
178
178
|
"access": "public"
|
|
179
|
-
}
|
|
179
|
+
},
|
|
180
|
+
"gitHead": "4109522cbe52fdda5394e0ed45fceeba34def8ea"
|
|
180
181
|
}
|