@digabi/exam-engine-rendering 19.7.1-alpha.0 → 19.8.0-alpha.3

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 (49) hide show
  1. package/dist/Grading.d.ts +4 -0
  2. package/dist/Grading.d.ts.map +1 -0
  3. package/dist/Grading.js +109 -0
  4. package/dist/Grading.js.map +1 -0
  5. package/dist/PreviewGrading.d.ts.map +1 -1
  6. package/dist/PreviewGrading.js +22 -27
  7. package/dist/PreviewGrading.js.map +1 -1
  8. package/dist/__tests__/puppeteerUtils.js +7 -7
  9. package/dist/__tests__/puppeteerUtils.js.map +1 -1
  10. package/dist/__tests__/testCasTransition.js +1 -1
  11. package/dist/__tests__/testChoiceAnswer.js +1 -1
  12. package/dist/__tests__/testChoiceAnswer.js.map +1 -1
  13. package/dist/__tests__/testGrading.js +20 -11
  14. package/dist/__tests__/testGrading.js.map +1 -1
  15. package/dist/__tests__/testGradingInstructionsGeneration.js +2 -2
  16. package/dist/__tests__/testGradingInstructionsGeneration.js.map +1 -1
  17. package/dist/__tests__/testOfflineGeneration.js +1 -1
  18. package/dist/__tests__/testOfflineGeneration.js.map +1 -1
  19. package/dist/__tests__/testTextAnswers.js +39 -0
  20. package/dist/__tests__/testTextAnswers.js.map +1 -1
  21. package/dist/__tests__/tsconfig.tsbuildinfo +1 -1
  22. package/dist/createOfflineExam.js +8 -8
  23. package/dist/createOfflineExam.js.map +1 -1
  24. package/dist/exam-loader.js +3 -3
  25. package/dist/exam-loader.js.map +1 -1
  26. package/dist/getOfflineWebpackConfig.js +18 -18
  27. package/dist/getPreviewWebpackConfig.js +12 -12
  28. package/dist/getWebpackConfig.js +18 -18
  29. package/dist/offline.js +4 -3
  30. package/dist/offline.js.map +1 -1
  31. package/dist/postcss.config.d.ts +1 -1
  32. package/dist/postcss.config.js +1 -1
  33. package/dist/preview.js +22 -20
  34. package/dist/preview.js.map +1 -1
  35. package/dist/previewExam.js +1 -1
  36. package/dist/previewExam.js.map +1 -1
  37. package/dist/utils/indexedDBExamServerAPI.js +3 -3
  38. package/dist/utils/indexedDBExamServerAPI.js.map +1 -1
  39. package/dist/utils/indexedDBGraringServerAPI.d.ts +3 -0
  40. package/dist/utils/indexedDBGraringServerAPI.d.ts.map +1 -0
  41. package/dist/utils/indexedDBGraringServerAPI.js +33 -0
  42. package/dist/utils/indexedDBGraringServerAPI.js.map +1 -0
  43. package/dist/utils/noopExamServerAPI.js +2 -2
  44. package/dist/utils/noopExamServerAPI.js.map +1 -1
  45. package/package.json +9 -9
  46. package/dist/utils/exifDataAndImageHandler.d.ts +0 -2
  47. package/dist/utils/exifDataAndImageHandler.d.ts.map +0 -1
  48. package/dist/utils/exifDataAndImageHandler.js +0 -94
  49. package/dist/utils/exifDataAndImageHandler.js.map +0 -1
@@ -17,7 +17,7 @@ function noopExamServerApi(resolveAttachment) {
17
17
  document.body.appendChild(audioPlayer);
18
18
  const examServerAPI = {
19
19
  getAnswers: () => Promise.resolve([]),
20
- setCasStatus: (casStatus) => Promise.resolve(casStatus),
20
+ setCasStatus: casStatus => Promise.resolve(casStatus),
21
21
  saveAnswer: () => Promise.resolve(),
22
22
  saveScreenshot(_, file) {
23
23
  return new Promise((resolve, reject) => {
@@ -46,7 +46,7 @@ function noopExamServerApi(resolveAttachment) {
46
46
  },
47
47
  async playRestrictedAudio(src) {
48
48
  return examServerAPI.playAudio(src);
49
- },
49
+ }
50
50
  };
51
51
  return examServerAPI;
52
52
  }
@@ -1 +1 @@
1
- {"version":3,"file":"noopExamServerAPI.js","sourceRoot":"","sources":["../../src/utils/noopExamServerAPI.ts"],"names":[],"mappings":";;AAEA,SAAwB,iBAAiB,CAAC,iBAAwC;IAChF,8EAA8E;IAC9E,+EAA+E;IAC/E,0BAA0B;IAC1B,MAAM,WAAW,GAAG,IAAI,KAAK,EAAE,CAAA;IAC/B,WAAW,CAAC,SAAS,CAAC,GAAG,CAAC,cAAc,CAAC,CAAA;IACzC,WAAW,CAAC,QAAQ,GAAG,IAAI,CAAA;IAC3B,WAAW,CAAC,OAAO,GAAG,GAAG,EAAE;QACzB,WAAW,CAAC,SAAS,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAA;QACpD,WAAW,CAAC,SAAS,CAAC,MAAM,CAAC,uBAAuB,CAAC,CAAA;IACvD,CAAC,CAAA;IAED,MAAM,iBAAiB,GAAG,GAAG,EAAE,CAAC,WAAW,CAAC,SAAS,CAAC,MAAM,CAAC,yBAAyB,CAAC,CAAA;IACvF,WAAW,CAAC,gBAAgB,CAAC,eAAe,EAAE,iBAAiB,CAAC,CAAA;IAChE,WAAW,CAAC,gBAAgB,CAAC,kBAAkB,EAAE,iBAAiB,CAAC,CAAA;IAEnE,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,CAAA;IAEtC,MAAM,aAAa,GAAkB;QACnC,UAAU,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;QACrC,YAAY,EAAE,CAAC,SAAS,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC;QACvD,UAAU,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE;QACnC,cAAc,CAAC,CAAC,EAAE,IAAI;YACpB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;gBACrC,MAAM,MAAM,GAAG,IAAI,UAAU,EAAE,CAAA;gBAC/B,MAAM,CAAC,MAAM,GAAG,GAAG,EAAE;oBACnB,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAA;gBAChC,CAAC,CAAA;gBACD,MAAM,CAAC,OAAO,GAAG,GAAG,EAAE;oBACpB,MAAM,CAAC,KAAK,EAAE,CAAA;oBACd,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;gBACtB,CAAC,CAAA;gBACD,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,CAAA;YAC5B,CAAC,CAAC,CAAA;QACJ,CAAC;QACD,KAAK,CAAC,SAAS,CAAC,GAAG;YACjB,WAAW,CAAC,GAAG,GAAG,iBAAiB,CAAC,GAAG,CAAC,CAAA;YAExC,IAAI;gBACF,MAAM,WAAW,CAAC,IAAI,EAAE,CAAA;gBACxB,WAAW,CAAC,SAAS,CAAC,GAAG,CAAC,uBAAuB,EAAE,yBAAyB,CAAC,CAAA;gBAC7E,OAAO,IAAI,CAAA;aACZ;YAAC,OAAO,GAAG,EAAE;gBACZ,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;gBAClB,OAAO,aAAa,CAAA;aACrB;QACH,CAAC;QACD,KAAK,CAAC,mBAAmB,CAAC,GAAG;YAC3B,OAAO,aAAa,CAAC,SAAS,CAAC,GAAG,CAAC,CAAA;QACrC,CAAC;KACF,CAAA;IAED,OAAO,aAAa,CAAA;AACtB,CAAC;AArDD,oCAqDC"}
1
+ {"version":3,"file":"noopExamServerAPI.js","sourceRoot":"","sources":["../../src/utils/noopExamServerAPI.ts"],"names":[],"mappings":";;AAEA,SAAwB,iBAAiB,CAAC,iBAAwC;IAChF,8EAA8E;IAC9E,+EAA+E;IAC/E,0BAA0B;IAC1B,MAAM,WAAW,GAAG,IAAI,KAAK,EAAE,CAAA;IAC/B,WAAW,CAAC,SAAS,CAAC,GAAG,CAAC,cAAc,CAAC,CAAA;IACzC,WAAW,CAAC,QAAQ,GAAG,IAAI,CAAA;IAC3B,WAAW,CAAC,OAAO,GAAG,GAAG,EAAE;QACzB,WAAW,CAAC,SAAS,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAA;QACpD,WAAW,CAAC,SAAS,CAAC,MAAM,CAAC,uBAAuB,CAAC,CAAA;IACvD,CAAC,CAAA;IAED,MAAM,iBAAiB,GAAG,GAAG,EAAE,CAAC,WAAW,CAAC,SAAS,CAAC,MAAM,CAAC,yBAAyB,CAAC,CAAA;IACvF,WAAW,CAAC,gBAAgB,CAAC,eAAe,EAAE,iBAAiB,CAAC,CAAA;IAChE,WAAW,CAAC,gBAAgB,CAAC,kBAAkB,EAAE,iBAAiB,CAAC,CAAA;IAEnE,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,CAAA;IAEtC,MAAM,aAAa,GAAkB;QACnC,UAAU,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;QACrC,YAAY,EAAE,SAAS,CAAC,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC;QACrD,UAAU,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE;QACnC,cAAc,CAAC,CAAC,EAAE,IAAI;YACpB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;gBACrC,MAAM,MAAM,GAAG,IAAI,UAAU,EAAE,CAAA;gBAC/B,MAAM,CAAC,MAAM,GAAG,GAAG,EAAE;oBACnB,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAA;gBAChC,CAAC,CAAA;gBACD,MAAM,CAAC,OAAO,GAAG,GAAG,EAAE;oBACpB,MAAM,CAAC,KAAK,EAAE,CAAA;oBACd,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;gBACtB,CAAC,CAAA;gBACD,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,CAAA;YAC5B,CAAC,CAAC,CAAA;QACJ,CAAC;QACD,KAAK,CAAC,SAAS,CAAC,GAAG;YACjB,WAAW,CAAC,GAAG,GAAG,iBAAiB,CAAC,GAAG,CAAC,CAAA;YAExC,IAAI;gBACF,MAAM,WAAW,CAAC,IAAI,EAAE,CAAA;gBACxB,WAAW,CAAC,SAAS,CAAC,GAAG,CAAC,uBAAuB,EAAE,yBAAyB,CAAC,CAAA;gBAC7E,OAAO,IAAI,CAAA;aACZ;YAAC,OAAO,GAAG,EAAE;gBACZ,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;gBAClB,OAAO,aAAa,CAAA;aACrB;QACH,CAAC;QACD,KAAK,CAAC,mBAAmB,CAAC,GAAG;YAC3B,OAAO,aAAa,CAAC,SAAS,CAAC,GAAG,CAAC,CAAA;QACrC,CAAC;KACF,CAAA;IAED,OAAO,aAAa,CAAA;AACtB,CAAC;AArDD,oCAqDC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@digabi/exam-engine-rendering",
3
- "version": "19.7.1-alpha.0",
3
+ "version": "19.8.0-alpha.3",
4
4
  "main": "./dist/index.js",
5
5
  "license": "EUPL-1.1",
6
6
  "files": [
@@ -13,13 +13,13 @@
13
13
  "@babel/polyfill": "^7.8.7",
14
14
  "@babel/preset-env": "^7.8.7",
15
15
  "@babel/runtime": "^7.8.7",
16
- "@digabi/exam-engine-core": "19.7.1-alpha.0",
17
- "@digabi/exam-engine-mastering": "19.7.1-alpha.0",
16
+ "@digabi/exam-engine-core": "19.8.0-alpha.3",
17
+ "@digabi/exam-engine-mastering": "19.8.0-alpha.3",
18
18
  "@fortawesome/fontawesome-svg-core": "^1.2.25",
19
19
  "babel-loader": "^9.1.2",
20
20
  "child-process-promise": "^2.2.1",
21
21
  "css-loader": "^5.0.0",
22
- "css-minimizer-webpack-plugin": "^1.x",
22
+ "css-minimizer-webpack-plugin": "^5.0.1",
23
23
  "dexie": "^3.0.0",
24
24
  "ffmpeg-static": "^5.0.0",
25
25
  "file-loader": "^6.0.0",
@@ -30,10 +30,10 @@
30
30
  "mini-css-extract-plugin": "^2.6.0",
31
31
  "postcss": "^8.0.5",
32
32
  "postcss-loader": "^7.0.0",
33
- "postcss-preset-env": "^7.2.0",
34
- "puppeteer": "^19.6.3",
35
- "react": "^17.0.2",
36
- "react-dom": "^17.0.2",
33
+ "postcss-preset-env": "^9.1.0",
34
+ "puppeteer": "^20.8.2",
35
+ "react": "^18.2.0",
36
+ "react-dom": "^18.2.0",
37
37
  "react-router5": "^8.0.1",
38
38
  "rich-text-editor": "^7.1.4",
39
39
  "router5": "^8.0.1",
@@ -44,5 +44,5 @@
44
44
  "webpack-dev-server": "^4.7.2",
45
45
  "webpack-merge": "^5.0.9"
46
46
  },
47
- "gitHead": "630b447343e5ce56ce49d2b898c01bf17643d0f7"
47
+ "gitHead": "e9655ebb690ee0b2bfa54b6e60fc3f9db2268994"
48
48
  }
@@ -1,2 +0,0 @@
1
- export declare function createFileWithCleanExif(sourceFilePath: string): string;
2
- //# sourceMappingURL=exifDataAndImageHandler.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"exifDataAndImageHandler.d.ts","sourceRoot":"","sources":["../../src/utils/exifDataAndImageHandler.ts"],"names":[],"mappings":"AAIA,wBAAgB,uBAAuB,CAAC,cAAc,EAAE,MAAM,GAAG,MAAM,CAiBtE"}
@@ -1,94 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
25
- var __importDefault = (this && this.__importDefault) || function (mod) {
26
- return (mod && mod.__esModule) ? mod : { "default": mod };
27
- };
28
- Object.defineProperty(exports, "__esModule", { value: true });
29
- exports.createFileWithCleanExif = void 0;
30
- const path_1 = __importDefault(require("path"));
31
- const fs_1 = require("fs");
32
- const exif = __importStar(require("piexif-ts"));
33
- function createFileWithCleanExif(sourceFilePath) {
34
- const imageData = function (src) {
35
- return (0, fs_1.readFileSync)(src).toString('binary');
36
- };
37
- if (['.jpg'].includes(path_1.default.extname(sourceFilePath))) {
38
- const newFileSource = sourceFilePath;
39
- const data = exif.load(imageData(sourceFilePath));
40
- const cleanExifData = createCleanExif(data);
41
- const newImageBinary = exif.insert(exif.dump(cleanExifData), exif.remove(imageData(sourceFilePath)));
42
- (0, fs_1.rm)(sourceFilePath, { force: true }, (err) => {
43
- if (err) {
44
- console.error(err.message);
45
- }
46
- (0, fs_1.writeFileSync)(newFileSource, newImageBinary, { encoding: 'binary' });
47
- });
48
- }
49
- return sourceFilePath;
50
- }
51
- exports.createFileWithCleanExif = createFileWithCleanExif;
52
- function createCleanExif(exifSource) {
53
- const newExifData = { ...exifSource };
54
- if (newExifData && newExifData['0th']) {
55
- newExifData['0th'][exif.TagValues.ImageIFD.DocumentName] = '';
56
- newExifData['0th'][exif.TagValues.ImageIFD.ImageDescription] = '';
57
- newExifData['0th'][exif.TagValues.ImageIFD.Make] = '';
58
- newExifData['0th'][exif.TagValues.ImageIFD.Model] = '';
59
- newExifData['0th'][exif.TagValues.ImageIFD.Software] = '';
60
- newExifData['0th'][exif.TagValues.ImageIFD.DateTime] = '';
61
- newExifData['0th'][exif.TagValues.ImageIFD.Artist] = '';
62
- newExifData['0th'][exif.TagValues.ImageIFD.HostComputer] = '';
63
- newExifData['0th'][exif.TagValues.ImageIFD.Copyright] = '';
64
- newExifData['0th'][exif.TagValues.ImageIFD.ExposureTime] = [[0]];
65
- newExifData['0th'][exif.TagValues.ImageIFD.TimeZoneOffset] = [0];
66
- newExifData['0th'][exif.TagValues.ImageIFD.XPKeywords] = [0];
67
- newExifData['0th'][exif.TagValues.ImageIFD.XPTitle] = [0];
68
- newExifData['0th'][exif.TagValues.ImageIFD.XPComment] = [0];
69
- newExifData['0th'][exif.TagValues.ImageIFD.XPAuthor] = [0];
70
- newExifData['0th'][exif.TagValues.ImageIFD.XPSubject] = [0];
71
- newExifData['0th'][exif.TagValues.ImageIFD.LocalizedCameraModel] = [0];
72
- newExifData['0th'][exif.TagValues.ImageIFD.CameraSerialNumber] = '';
73
- newExifData['0th'][exif.TagValues.ImageIFD.MakerNoteSafety] = [0];
74
- newExifData['0th'][exif.TagValues.ImageIFD.OriginalRawFileName] = [0];
75
- newExifData['0th'][exif.TagValues.ImageIFD.OriginalRawFileData] = '';
76
- }
77
- if (newExifData && newExifData.Exif) {
78
- newExifData.Exif[exif.TagValues.ExifIFD.MakerNote] = '';
79
- newExifData.Exif[exif.TagValues.ExifIFD.UserComment] = '';
80
- newExifData.Exif[exif.TagValues.ExifIFD.LensMake] = '';
81
- newExifData.Exif[exif.TagValues.ExifIFD.LensModel] = '';
82
- newExifData.Exif[exif.TagValues.ExifIFD.LensSerialNumber] = '';
83
- newExifData.Exif[exif.TagValues.ExifIFD.LensSpecification] = [[0]];
84
- newExifData.Exif[exif.TagValues.ExifIFD.CameraOwnerName] = '';
85
- newExifData.Exif[exif.TagValues.ExifIFD.BodySerialNumber] = '';
86
- newExifData.Exif[exif.TagValues.ExifIFD.DateTimeOriginal] = '';
87
- newExifData.Exif[exif.TagValues.ExifIFD.DateTimeDigitized] = '';
88
- }
89
- if (newExifData && newExifData.GPS) {
90
- newExifData.GPS = {};
91
- }
92
- return newExifData;
93
- }
94
- //# sourceMappingURL=exifDataAndImageHandler.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"exifDataAndImageHandler.js","sourceRoot":"","sources":["../../src/utils/exifDataAndImageHandler.ts"],"names":[],"mappings":"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"}