itemengine-cypress-automation 1.0.226-revert-96-6thAugustUpdates-40a4e23.0 → 1.0.226
Sign up to get free protection for your applications and to get access to all the features.
- package/cypress/e2e/ILC/ChartsBar/selectChartTypeSection.js +3 -3
- package/cypress/e2e/ILC/ChartsLine/Scoring/addAndDeletePointAllOrNothingScoring.js +2 -2
- package/cypress/e2e/ILC/ChartsLine/Scoring/partialDifferentWeightsMinimumAndPenaltyScoring.js +2 -1
- package/cypress/e2e/ILC/EditTabSettingPage/ItemPreviewSettingsTabContent.js +3 -2
- package/cypress/e2e/ILC/EssayResponse/equationEditorCategories1.js +10 -10
- package/cypress/e2e/ILC/EssayResponse/equationEditorCategories2.js +6 -7
- package/cypress/e2e/ILC/FillInTheGapsOverImageDragAndDrop/clickAndDrop.js +1 -1
- package/cypress/e2e/ILC/FillInTheGapsOverImageDragAndDrop/studentViewSettings.js +2 -2
- package/cypress/e2e/ILC/Graphing/layoutAndGridOptions.js +1 -1
- package/cypress/e2e/ILC/GridFill/customizeLayoutFillColor.js +3 -2
- package/cypress/e2e/ILC/GridFill/customizeLayoutSectionShadeCellsGridBorders.js +2 -0
- package/cypress/e2e/ILC/ImageHighlight/toolFunctionalityPreviewTab.js +2 -1
- package/cypress/e2e/ILC/NumberLineLabel/Scoring/partialDifferentWeightsAlternativePointsGreaterThanCorrectPoints.js +34 -34
- package/cypress/e2e/ILC/NumberLineLabel/Scoring/partialDifferentWeightsCorrectPointsEqualToAlternativePoints.js +46 -46
- package/cypress/e2e/ILC/NumberLineLabel/Scoring/partialDifferentWeightsCorrectPointsGreaterThanAlternativePoints.js +46 -46
- package/cypress/e2e/ILC/NumberLineLabel/editTabScoring.js +2 -7
- package/cypress/e2e/ILC/NumberLineLabel/manuallyAndNonScoredEditTab.js +2 -4
- package/cypress/e2e/ILC/ToolAudioPlayerNew/allSupportedFileTypes.js +4 -2
- package/cypress/e2e/ILC/ToolAudioPlayerNew/compactAudioPlayerStyle.js +1 -1
- package/cypress/e2e/ILC/ToolAudioPlayerNew/customizePlayerLayoutSettings.js +2 -2
- package/cypress/e2e/ILC/ToolAudioPlayerNew/standardAudioPlayerStyle.js +2 -1
- package/cypress/e2e/ILC/ToolAudioPlayerNew/studentViewSettings.js +2 -2
- package/cypress/e2e/ILC/chartsDotsPlot/minimumScoringPenaltyPointsAndRoundingDropdown.js +1 -1
- package/cypress/e2e/ILC/chartsDotsPlot/scoring/allOrNothingWithCorrectPointsEqualToAlternativePoints.js +4 -4
- package/cypress/e2e/ILC/chartsDotsPlot/scoring/allOrNothingWithCorrectPointsGreaterThanAlternativePoints.js +3 -3
- package/cypress/e2e/ILC/chartsDotsPlot/scoring/partialEqualWeightsWithAlternativePointsGreaterThanCorrectPoints.js +4 -4
- package/cypress/fixtures/equationEditorCategoriesAndSymbols .js +22 -16
- package/cypress/pages/audioPlayerPage.js +5 -0
- package/cypress/pages/components/backgroundImageUploadComponent.js +1 -1
- package/cypress/pages/components/colorPopupComponent.js +1 -0
- package/cypress/pages/components/layoutSectionComponent.js +3 -15
- package/cypress/pages/components/numberLineCommonComponent.js +6 -30
- package/cypress/pages/components/scoringSectionBaseEditTab.js +1 -1
- package/cypress/pages/dragAndDropIntoCategoriesPage.js +18 -0
- package/cypress/pages/essayResponsePage.js +10 -8
- package/cypress/pages/gridFillPage.js +4 -1
- package/cypress/pages/itemPreviewSettingsPage.js +1 -1
- package/package.json +2 -2
@@ -283,10 +283,10 @@ describe('Create item page - Charts - Dot plot : All or nothing with alternative
|
|
283
283
|
chartsDotPlotPage.steps.verifyPreviewScore(0, 30);
|
284
284
|
chartsDotPlotPage.steps.switchToGradingView();
|
285
285
|
chartsDotPlotPage.steps.verifyLockedDotColumnPreviewTab({ point: 1, min: 1, interval: 1 });
|
286
|
-
chartsDotPlotPage.steps.
|
286
|
+
chartsDotPlotPage.steps.verifyIncorrectDotColumnPreviewTab({ point: 2, min: 1, interval: 1 });
|
287
287
|
chartsDotPlotPage.steps.verifyIncorrectDotColumnPreviewTab({ point: 3, min: 1, interval: 1, defaultDots: 0 });
|
288
|
-
chartsDotPlotPage.steps.
|
289
|
-
chartsDotPlotPage.steps.
|
288
|
+
chartsDotPlotPage.steps.verifyCorrectDotColumnPreviewTab({ point: 4, min: 1, interval: 1 });
|
289
|
+
chartsDotPlotPage.steps.verifyIncorrectDotColumnPreviewTab({ point: 5, min: 1, interval: 1 });
|
290
290
|
chartsDotPlotPage.steps.verifyEmptyDotColumnPreviewTab({ point: 6, min: 1, interval: 1 });
|
291
291
|
chartsDotPlotPage.steps.verifyCorrectIncorrectAnswerLabel('incorrect');
|
292
292
|
chartsDotPlotPage.steps.verifyLockedDotColumnCorrectAnswerSection({ point: 1, min: 1, interval: 1 });
|
@@ -38,8 +38,8 @@ describe('Create item page - Charts - Dot plot: Partial different weights', () =
|
|
38
38
|
chartsDotPlotPage.steps.switchToPreviewTab();
|
39
39
|
});
|
40
40
|
|
41
|
-
|
42
|
-
|
41
|
+
//Need to remove skip once https://redmine.zeuslearning.com/issues/577535 is resolved
|
42
|
+
it.skip('When the user selects \'Grading\' view without attempting the question, locked bar should not have icon, incorrect dot columns should have incorrect icons, correct answers section with a label \'Correct answers\' should be displayed with correct answers from the alternate accordion', () => {
|
43
43
|
chartsDotPlotPage.steps.switchToGradingView();
|
44
44
|
//preview chart
|
45
45
|
chartsDotPlotPage.steps.verifyLockedDotColumnPreviewTab({ point: 1, min: 1, interval: 1 });
|
@@ -74,7 +74,7 @@ describe('Create item page - Charts - Dot plot: Partial different weights', () =
|
|
74
74
|
chartsDotPlotPage.steps.resetQuestionPreview();
|
75
75
|
chartsDotPlotPage.steps.plotDotsInDotColumnPreviewTab(3, { point: 3, min: 1, interval: 1, defaultDots: 0 });
|
76
76
|
chartsDotPlotPage.steps.plotDotsInDotColumnPreviewTab(4, { point: 4, min: 1, interval: 1, defaultDots: 0 });
|
77
|
-
chartsDotPlotPage.steps.verifyPreviewScore(
|
77
|
+
chartsDotPlotPage.steps.verifyPreviewScore(23, 30);
|
78
78
|
chartsDotPlotPage.steps.switchToGradingView();
|
79
79
|
chartsDotPlotPage.steps.verifyLockedDotColumnPreviewTab({ point: 1, min: 1, interval: 1 });
|
80
80
|
chartsDotPlotPage.steps.verifyCorrectDotColumnPreviewTab({ point: 2, min: 1, interval: 1 });
|
@@ -351,7 +351,7 @@ describe('Create item page - Charts - Dot plot: Partial different weights', () =
|
|
351
351
|
chartsDotPlotPage.steps.plotDotsInDotColumnPreviewTab(2, { point: 4, min: 1, interval: 1, defaultDots: 0 });
|
352
352
|
chartsDotPlotPage.steps.plotDotsInDotColumnPreviewTab(2, { point: 5, min: 1, interval: 1, defaultDots: 0 });
|
353
353
|
chartsDotPlotPage.steps.plotDotsInDotColumnPreviewTab(2, { point: 6, min: 1, interval: 1, defaultDots: 0 });
|
354
|
-
chartsDotPlotPage.steps.verifyPreviewScore(
|
354
|
+
chartsDotPlotPage.steps.verifyPreviewScore(8.4, 42);
|
355
355
|
chartsDotPlotPage.steps.switchToGradingView();
|
356
356
|
chartsDotPlotPage.steps.verifyLockedDotColumnPreviewTab({ point: 1, min: 1, interval: 1 });
|
357
357
|
chartsDotPlotPage.steps.verifyCorrectDotColumnPreviewTab({ point: 2, min: 1, interval: 1 });
|
@@ -2,6 +2,12 @@ export const equationEditorCategoriesAndSymbols = {
|
|
2
2
|
numPad: {
|
3
3
|
displayName: 'Numpad',
|
4
4
|
symbols: {
|
5
|
+
zero: {
|
6
|
+
title: 'Zero',
|
7
|
+
textElement: '0',
|
8
|
+
ariaLabel: 'Zero 1 of 11',
|
9
|
+
displayText: '0'
|
10
|
+
},
|
5
11
|
one: {
|
6
12
|
title: 'One',
|
7
13
|
textElement: '1',
|
@@ -56,17 +62,17 @@ export const equationEditorCategoriesAndSymbols = {
|
|
56
62
|
ariaLabel: 'Nine',
|
57
63
|
displayText: '9'
|
58
64
|
},
|
59
|
-
|
60
|
-
title: '
|
61
|
-
textElement:
|
62
|
-
ariaLabel: '
|
63
|
-
displayText: '
|
65
|
+
questionmark: {
|
66
|
+
title: 'Question Mark',
|
67
|
+
textElement: null,
|
68
|
+
ariaLabel: 'QuestionMark 11 of 11',
|
69
|
+
displayText: '?'
|
64
70
|
},
|
65
|
-
|
66
|
-
title: '
|
71
|
+
dot: {
|
72
|
+
title: 'Decimal',
|
67
73
|
textElement: null,
|
68
|
-
ariaLabel: '
|
69
|
-
displayText: '
|
74
|
+
ariaLabel: 'Decimal 1 of 11',
|
75
|
+
displayText: '.'
|
70
76
|
},
|
71
77
|
comma: {
|
72
78
|
title: 'Comma',
|
@@ -125,7 +131,7 @@ export const equationEditorCategoriesAndSymbols = {
|
|
125
131
|
clear: {
|
126
132
|
title: 'Clear',
|
127
133
|
textElement: null,
|
128
|
-
ariaLabel: 'Clear',
|
134
|
+
ariaLabel: 'Clear 11 of 11',
|
129
135
|
displayText: null
|
130
136
|
}
|
131
137
|
}
|
@@ -626,18 +632,18 @@ export const equationEditorCategoriesAndSymbols = {
|
|
626
632
|
geo: {
|
627
633
|
displayName: 'Geo',
|
628
634
|
symbols: {
|
629
|
-
circle: {
|
630
|
-
title: 'Circle',
|
631
|
-
textElement: null,
|
632
|
-
ariaLabel: 'BigCircle',
|
633
|
-
displayText: '◯'
|
634
|
-
},
|
635
635
|
square: {
|
636
636
|
title: 'Square',
|
637
637
|
textElement: null,
|
638
638
|
ariaLabel: 'SquareShape',
|
639
639
|
displayText: '□'
|
640
640
|
},
|
641
|
+
circle: {
|
642
|
+
title: 'Circle',
|
643
|
+
textElement: null,
|
644
|
+
ariaLabel: 'BigCircle',
|
645
|
+
displayText: '◯'
|
646
|
+
},
|
641
647
|
triangle: {
|
642
648
|
title: 'Triangle',
|
643
649
|
textElement: null,
|
@@ -1062,6 +1062,11 @@ const steps = {
|
|
1062
1062
|
|
1063
1063
|
verifyUnmutedVolumeIconIsDisplayedInPreviewTab: () => {
|
1064
1064
|
utilities.verifyElementVisibilityState(audioPlayerPage.unmutedVolumeIcon(), 'visible');
|
1065
|
+
},
|
1066
|
+
|
1067
|
+
realHoverOnPlaybackSpeedButton: () => {
|
1068
|
+
audioPlayerPage.playbackSpeedButton()
|
1069
|
+
.realHover();
|
1065
1070
|
}
|
1066
1071
|
}
|
1067
1072
|
|
@@ -11,7 +11,7 @@ const selectors = {
|
|
11
11
|
fileNameLabel: () => cy.get('[class*="__LabelWrapper"][class*="Upload"]').eq(1),
|
12
12
|
fileUploadSection: () => cy.get('.file-input-wrapper'),
|
13
13
|
chooseFileButton: () => cy.get('.choose-file-button'),
|
14
|
-
noFileChosenLabel: () => cy.get('[class*="styles__SelectedFile"] [aria-label="No file chosen"]'),
|
14
|
+
noFileChosenLabel: () => cy.get('[class*="styles__SelectedFile"] [aria-label="No file chosen"], [class*="UploadImagestyles__FileLabelWrapper"]'),
|
15
15
|
uploadImageProgressBar: () => cy.get('[class*="ProgressBar"]'),
|
16
16
|
uploadedFileNameLabel: () => cy.get('[class*="styles__SelectedFileWithIcon"][class*="Upload"]'),
|
17
17
|
deleteImageIcon: () => cy.get('[aria-label*="Delete image"]'),
|
@@ -517,27 +517,15 @@ const steps = {
|
|
517
517
|
layoutSectionComponent.numberLineNumberLineSection()
|
518
518
|
.parents('.ngie-jxgbox')
|
519
519
|
.find('.number-line-tick-font')
|
520
|
-
.its('length').then((
|
521
|
-
const length = len - 3;
|
522
|
-
let value = min + interval;
|
520
|
+
.its('length').then((length) => {
|
523
521
|
for (let index = 0; index < length; index++) {
|
524
522
|
layoutSectionComponent.numberLineNumberLineSection()
|
525
523
|
.parents('.ngie-jxgbox')
|
526
524
|
.find('.number-line-tick-font')
|
527
525
|
.eq(index)
|
528
|
-
.should('have.text',
|
529
|
-
|
526
|
+
.should('have.text', min);
|
527
|
+
min += interval;
|
530
528
|
}
|
531
|
-
layoutSectionComponent.numberLineNumberLineSection()
|
532
|
-
.parents('.ngie-jxgbox')
|
533
|
-
.find('.number-line-tick-font')
|
534
|
-
.eq(len - 2)
|
535
|
-
.should('have.text', min);
|
536
|
-
layoutSectionComponent.numberLineNumberLineSection()
|
537
|
-
.parents('.ngie-jxgbox')
|
538
|
-
.find('.number-line-tick-font')
|
539
|
-
.eq(len - 1)
|
540
|
-
.should('have.text', `${value + 1}`);
|
541
529
|
});
|
542
530
|
},
|
543
531
|
|
@@ -137,27 +137,15 @@ const steps = {
|
|
137
137
|
numberLineCommonComponent.numberLineSpecifyCorrectAnswer()
|
138
138
|
.parents('.ngie-jxgbox')
|
139
139
|
.find('.number-line-tick-font')
|
140
|
-
.its('length').then((
|
141
|
-
const length = len - 3;
|
142
|
-
let value = min + interval;
|
140
|
+
.its('length').then((length) => {
|
143
141
|
for (let index = 0; index < length; index++) {
|
144
142
|
numberLineCommonComponent.numberLineSpecifyCorrectAnswer()
|
145
143
|
.parents('.ngie-jxgbox')
|
146
144
|
.find('.number-line-tick-font')
|
147
145
|
.eq(index)
|
148
|
-
.should('have.text',
|
149
|
-
|
146
|
+
.should('have.text', min);
|
147
|
+
min += interval;
|
150
148
|
}
|
151
|
-
numberLineCommonComponent.numberLineSpecifyCorrectAnswer()
|
152
|
-
.parents('.ngie-jxgbox')
|
153
|
-
.find('.number-line-tick-font')
|
154
|
-
.eq(len - 2)
|
155
|
-
.should('have.text', min);
|
156
|
-
numberLineCommonComponent.numberLineSpecifyCorrectAnswer()
|
157
|
-
.parents('.ngie-jxgbox')
|
158
|
-
.find('.number-line-tick-font')
|
159
|
-
.eq(len - 1)
|
160
|
-
.should('have.text', `${value + 1}`);
|
161
149
|
});
|
162
150
|
},
|
163
151
|
|
@@ -245,27 +233,15 @@ const steps = {
|
|
245
233
|
numberLineCommonComponent.numberLinePreviewTab()
|
246
234
|
.parents('.ngie-jxgbox')
|
247
235
|
.find('.number-line-tick-font')
|
248
|
-
.its('length').then((
|
249
|
-
const length = len - 3;
|
250
|
-
let value = min + interval;
|
236
|
+
.its('length').then((length) => {
|
251
237
|
for (let index = 0; index < length; index++) {
|
252
238
|
numberLineCommonComponent.numberLinePreviewTab()
|
253
239
|
.parents('.ngie-jxgbox')
|
254
240
|
.find('.number-line-tick-font')
|
255
241
|
.eq(index)
|
256
|
-
.should('have.text',
|
257
|
-
|
242
|
+
.should('have.text', min);
|
243
|
+
min += interval;
|
258
244
|
}
|
259
|
-
numberLineCommonComponent.numberLinePreviewTab()
|
260
|
-
.parents('.ngie-jxgbox')
|
261
|
-
.find('.number-line-tick-font')
|
262
|
-
.eq(len - 2)
|
263
|
-
.should('have.text', min);
|
264
|
-
numberLineCommonComponent.numberLinePreviewTab()
|
265
|
-
.parents('.ngie-jxgbox')
|
266
|
-
.find('.number-line-tick-font')
|
267
|
-
.eq(len - 1)
|
268
|
-
.should('have.text', `${value + 1}`);
|
269
245
|
});
|
270
246
|
},
|
271
247
|
|
@@ -41,7 +41,7 @@ const steps = {
|
|
41
41
|
scoringSectionBaseEditTab.pointsInputField()
|
42
42
|
.clear();
|
43
43
|
scoringSectionBaseEditTab.pointsInputField()
|
44
|
-
.type(`${points}
|
44
|
+
.type(`${points}`);
|
45
45
|
cy.wait(2000);
|
46
46
|
scoringSectionBaseEditTab.pointsInputField()
|
47
47
|
.should('have.value', points);
|
@@ -2247,6 +2247,24 @@ const steps = {
|
|
2247
2247
|
});
|
2248
2248
|
});
|
2249
2249
|
},
|
2250
|
+
|
2251
|
+
/**
|
2252
|
+
* @param {number} points - The points to be allotted.
|
2253
|
+
* @description - Allots points in the scoring section.
|
2254
|
+
*/
|
2255
|
+
allotPoints: (points) => {
|
2256
|
+
scoringSectionBaseEditTab.pointsInputField()
|
2257
|
+
.clear();
|
2258
|
+
scoringSectionBaseEditTab.pointsInputField()
|
2259
|
+
.type(`${points}`, { delay: 500 });
|
2260
|
+
cy.wait(2000);
|
2261
|
+
scoringSectionBaseEditTab.pointsInputField()
|
2262
|
+
.should('have.value', points);
|
2263
|
+
scoringSectionBaseEditTab.pointsInputField()
|
2264
|
+
.click()
|
2265
|
+
scoringSectionBaseEditTab.pointsInputField()
|
2266
|
+
.blur();
|
2267
|
+
},
|
2250
2268
|
}
|
2251
2269
|
|
2252
2270
|
const tests = {
|
@@ -1224,14 +1224,16 @@ const tests = {
|
|
1224
1224
|
});
|
1225
1225
|
});
|
1226
1226
|
equationEditorFlyout.tests.verifyCSSAnda11yOfEquationEditorInputField(categoryName);
|
1227
|
-
|
1228
|
-
|
1229
|
-
|
1230
|
-
|
1231
|
-
}
|
1232
|
-
|
1233
|
-
|
1234
|
-
|
1227
|
+
//Uncomment once https://redmine.zeuslearning.com/issues/525213 is resolved
|
1228
|
+
|
1229
|
+
// if (categoryName === 'setNotation') {
|
1230
|
+
// essayResponsePage.tests.insertEquationAndVerifyInputFieldContentsAndWordCount('∈∉∋∌⊂⊃⊆⊇⊄⊅∅∪∩!,:\\/≺≻≼≽({[(])})', wordCount);
|
1231
|
+
// } else if (categoryName === 'otherSymbols') {
|
1232
|
+
// essayResponsePage.tests.insertEquationAndVerifyInputFieldContentsAndWordCount(')ℝ|∝•ababc∀ι∞°/', wordCount);
|
1233
|
+
// }
|
1234
|
+
// else {
|
1235
|
+
// essayResponsePage.tests.insertEquationAndVerifyInputFieldContentsAndWordCount(mappedArr.toString().replaceAll(',', ''), wordCount)
|
1236
|
+
// }
|
1235
1237
|
}
|
1236
1238
|
}
|
1237
1239
|
|
@@ -192,6 +192,7 @@ const selectors = {
|
|
192
192
|
correctAnswerLabel: () => cy.get('[class*="GridFillResponsestyles__CorrectAnswerLabel"]'),
|
193
193
|
warningMessageContainer: () => cy.get('.disabled-wrapper-cls'),
|
194
194
|
warningMessage: () => cy.get('.disabled-wrapper-cls [class*="DisabledTextWrapper"]'),
|
195
|
+
resetButton: () => cy.get('[class*="reset-color-wrapper"] button'),
|
195
196
|
}
|
196
197
|
|
197
198
|
const steps = {
|
@@ -2089,6 +2090,7 @@ const steps = {
|
|
2089
2090
|
'background-color': `${fillColor}`,
|
2090
2091
|
'border-color': `${BorderColor}`
|
2091
2092
|
});
|
2093
|
+
utilities.triggerMouseout(utilities.getNthElement(gridFillPage.cellInPreviewTab(), 0));
|
2092
2094
|
utilities.verifyCSS(utilities.getNthElement(gridFillPage.cellInPreviewTab(), 14), {
|
2093
2095
|
'background-color': `${fillColor}`,
|
2094
2096
|
'border-color': `${BorderColor}`
|
@@ -2154,7 +2156,7 @@ const steps = {
|
|
2154
2156
|
*/
|
2155
2157
|
verifyFilledStateCSSForGridInPreviewTab: (fillColor, BorderColor) => {
|
2156
2158
|
gridFillPage.steps.selectCellPreviewTab(1, 1);
|
2157
|
-
utilities.verifyCSS(utilities.getNthElement(gridFillPage.
|
2159
|
+
utilities.verifyCSS(utilities.getNthElement(gridFillPage.cellInPreviewTab(), 6), {
|
2158
2160
|
'background-color': `${fillColor}`,
|
2159
2161
|
'border-color': `${BorderColor}`
|
2160
2162
|
});
|
@@ -2267,6 +2269,7 @@ const steps = {
|
|
2267
2269
|
clickOnOkButton: () => {
|
2268
2270
|
gridFillPage.okButton()
|
2269
2271
|
.click();
|
2272
|
+
cy.wait(1000);
|
2270
2273
|
},
|
2271
2274
|
|
2272
2275
|
selectImageRadioButton: () => {
|
@@ -274,7 +274,7 @@ const steps = {
|
|
274
274
|
.should('be.checked');
|
275
275
|
},
|
276
276
|
|
277
|
-
|
277
|
+
verifySectionsNavigationAlignmentSectionIsDisabled: () => {
|
278
278
|
const sectionNavigationAlignmentOptionsLabel = [itemPreviewSettingsPage.leftAlignedLabel, itemPreviewSettingsPage.centerAlignedLabel, itemPreviewSettingsPage.rightAlignedLabel];
|
279
279
|
const sectionNavigationAlignmentOptionsRadioButton = [itemPreviewSettingsPage.leftAlignedRadioButton, itemPreviewSettingsPage.centerAlignedRadioButton, itemPreviewSettingsPage.rightAlignedRadioButton];
|
280
280
|
sectionNavigationAlignmentOptionsRadioButton.forEach((option) => {
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "itemengine-cypress-automation",
|
3
|
-
"version": "1.0.226
|
3
|
+
"version": "1.0.226",
|
4
4
|
"description": "",
|
5
5
|
"main": "index.js",
|
6
6
|
"scripts": {
|
@@ -35,4 +35,4 @@
|
|
35
35
|
"node-fetch": "^3.3.2",
|
36
36
|
"react-uuid": "^2.0.0"
|
37
37
|
}
|
38
|
-
}
|
38
|
+
}
|