]> _ Git - fluidbook-toolbox.git/commitdiff
wait #5375 @3.5
authorVincent Vanwaelscappel <vincent@cubedesigners.com>
Mon, 8 Aug 2022 13:14:55 +0000 (15:14 +0200)
committerVincent Vanwaelscappel <vincent@cubedesigners.com>
Mon, 8 Aug 2022 13:14:55 +0000 (15:14 +0200)
package-lock.json
package.json
resources/elearningpackage/js/app.js
resources/scorm/scorm.js

index 2d42c5a89a4812fb0201d056c987098e0e64e6a0..8e5b97836fb4b46d4e9b8f2f02b4576bd3e9fc90 100644 (file)
@@ -7,6 +7,8 @@
             "dependencies": {
                 "command-line-args": "^5.2.1",
                 "jquery.scrollto": "^2.1.3",
+                "lz4js": "^0.2.0",
+                "pako": "^2.0.4",
                 "pdfjs-dist": "^2.14.305",
                 "pipwerks-scorm-api-wrapper": "^0.1.2",
                 "plyr": "^3.7.2",
@@ -18,8 +20,6 @@
                 "gsap": "^3.10.4",
                 "jquery": "^3.6.0",
                 "laravel-mix": "^5.0.1",
-                "less": "^4.1.3",
-                "less-loader": "^8.0.0",
                 "lodash": "^4.17.13",
                 "resolve-url-loader": "^3.1.0",
                 "sass": "^1.53.0",
                 "pako": "~1.0.5"
             }
         },
+        "node_modules/browserify-zlib/node_modules/pako": {
+            "version": "1.0.11",
+            "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz",
+            "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==",
+            "dev": true
+        },
         "node_modules/browserslist": {
             "version": "4.21.0",
             "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.0.tgz",
             "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==",
             "dev": true
         },
-        "node_modules/copy-anything": {
-            "version": "2.0.6",
-            "resolved": "https://registry.npmjs.org/copy-anything/-/copy-anything-2.0.6.tgz",
-            "integrity": "sha512-1j20GZTsvKNkc4BY3NpMOM8tt///wY3FpIzozTOFO2ffuZcV61nojHXVKIy3WM+7ADCy5FVhdZYHYDdgTU0yJw==",
-            "dev": true,
-            "dependencies": {
-                "is-what": "^3.14.1"
-            },
-            "funding": {
-                "url": "https://github.com/sponsors/mesqueeb"
-            }
-        },
         "node_modules/copy-concurrently": {
             "version": "1.0.5",
             "resolved": "https://registry.npmjs.org/copy-concurrently/-/copy-concurrently-1.0.5.tgz",
             "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
             "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
         },
-        "node_modules/iconv-lite": {
-            "version": "0.6.3",
-            "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz",
-            "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==",
-            "dev": true,
-            "optional": true,
-            "dependencies": {
-                "safer-buffer": ">= 2.1.2 < 3.0.0"
-            },
-            "engines": {
-                "node": ">=0.10.0"
-            }
-        },
         "node_modules/icss-replace-symbols": {
             "version": "1.1.0",
             "resolved": "https://registry.npmjs.org/icss-replace-symbols/-/icss-replace-symbols-1.1.0.tgz",
             "integrity": "sha512-Pgs951kaMm5GXP7MOvxERINe3gsaVjUWFm+UZPSq9xYriQAksyhg0csnS0KXSNRD5NmNdapXEpjxG49+AKh/ug==",
             "dev": true
         },
-        "node_modules/image-size": {
-            "version": "0.5.5",
-            "resolved": "https://registry.npmjs.org/image-size/-/image-size-0.5.5.tgz",
-            "integrity": "sha512-6TDAlDPZxUFCv+fuOkIoXT/V/f3Qbq8e37p+YOiYrUv3v9cc3/6x78VdfPgFVaB9dZYeLUfKgHRebpkm/oP2VQ==",
-            "dev": true,
-            "optional": true,
-            "bin": {
-                "image-size": "bin/image-size.js"
-            },
-            "engines": {
-                "node": ">=0.10.0"
-            }
-        },
         "node_modules/imagemin": {
             "version": "6.1.0",
             "resolved": "https://registry.npmjs.org/imagemin/-/imagemin-6.1.0.tgz",
                 "url": "https://github.com/sponsors/ljharb"
             }
         },
-        "node_modules/is-what": {
-            "version": "3.14.1",
-            "resolved": "https://registry.npmjs.org/is-what/-/is-what-3.14.1.tgz",
-            "integrity": "sha512-sNxgpk9793nzSs7bA6JQJGeIuRBQhAaNGG77kzYQgMkrID+lS6SlK07K5LaptscDlSaIgH+GPFzf+d75FVxozA==",
-            "dev": true
-        },
         "node_modules/is-windows": {
             "version": "1.0.2",
             "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz",
                 "node": ">=0.10.0"
             }
         },
-        "node_modules/klona": {
-            "version": "2.0.5",
-            "resolved": "https://registry.npmjs.org/klona/-/klona-2.0.5.tgz",
-            "integrity": "sha512-pJiBpiXMbt7dkzXe8Ghj/u4FfXOOa98fPW+bihOJ4SjnoijweJrNThJfd3ifXpXhREjpoF2mZVH1GfS9LV3kHQ==",
-            "dev": true,
-            "engines": {
-                "node": ">= 8"
-            }
-        },
         "node_modules/laravel-mix": {
             "version": "5.0.9",
             "resolved": "https://registry.npmjs.org/laravel-mix/-/laravel-mix-5.0.9.tgz",
                 "webpack-sources": "^1.1.0"
             }
         },
-        "node_modules/less": {
-            "version": "4.1.3",
-            "resolved": "https://registry.npmjs.org/less/-/less-4.1.3.tgz",
-            "integrity": "sha512-w16Xk/Ta9Hhyei0Gpz9m7VS8F28nieJaL/VyShID7cYvP6IL5oHeL6p4TXSDJqZE/lNv0oJ2pGVjJsRkfwm5FA==",
-            "dev": true,
-            "dependencies": {
-                "copy-anything": "^2.0.1",
-                "parse-node-version": "^1.0.1",
-                "tslib": "^2.3.0"
-            },
-            "bin": {
-                "lessc": "bin/lessc"
-            },
-            "engines": {
-                "node": ">=6"
-            },
-            "optionalDependencies": {
-                "errno": "^0.1.1",
-                "graceful-fs": "^4.1.2",
-                "image-size": "~0.5.0",
-                "make-dir": "^2.1.0",
-                "mime": "^1.4.1",
-                "needle": "^3.1.0",
-                "source-map": "~0.6.0"
-            }
-        },
-        "node_modules/less-loader": {
-            "version": "8.1.1",
-            "resolved": "https://registry.npmjs.org/less-loader/-/less-loader-8.1.1.tgz",
-            "integrity": "sha512-K93jJU7fi3n6rxVvzp8Cb88Uy9tcQKfHlkoezHwKILXhlNYiRQl4yowLIkQqmBXOH/5I8yoKiYeIf781HGkW9g==",
-            "dev": true,
-            "dependencies": {
-                "klona": "^2.0.4"
-            },
-            "engines": {
-                "node": ">= 10.13.0"
-            },
-            "funding": {
-                "type": "opencollective",
-                "url": "https://opencollective.com/webpack"
-            },
-            "peerDependencies": {
-                "less": "^3.5.0 || ^4.0.0",
-                "webpack": "^5.0.0"
-            }
-        },
-        "node_modules/less/node_modules/make-dir": {
-            "version": "2.1.0",
-            "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz",
-            "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==",
-            "dev": true,
-            "optional": true,
-            "dependencies": {
-                "pify": "^4.0.1",
-                "semver": "^5.6.0"
-            },
-            "engines": {
-                "node": ">=6"
-            }
-        },
-        "node_modules/less/node_modules/semver": {
-            "version": "5.7.1",
-            "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
-            "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
-            "dev": true,
-            "optional": true,
-            "bin": {
-                "semver": "bin/semver"
-            }
-        },
         "node_modules/lines-and-columns": {
             "version": "1.2.4",
             "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz",
                 "yallist": "^3.0.2"
             }
         },
+        "node_modules/lz4js": {
+            "version": "0.2.0",
+            "resolved": "https://registry.npmjs.org/lz4js/-/lz4js-0.2.0.tgz",
+            "integrity": "sha512-gY2Ia9Lm7Ep8qMiuGRhvUq0Q7qUereeldZPP1PMEJxPtEWHJLqw9pgX68oHajBH0nzJK4MaZEA/YNV3jT8u8Bg=="
+        },
         "node_modules/make-dir": {
             "version": "3.1.0",
             "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz",
                 "varstream": "^0.3.2"
             }
         },
-        "node_modules/needle": {
-            "version": "3.1.0",
-            "resolved": "https://registry.npmjs.org/needle/-/needle-3.1.0.tgz",
-            "integrity": "sha512-gCE9weDhjVGCRqS8dwDR/D3GTAeyXLXuqp7I8EzH6DllZGXSUyxuqqLh+YX9rMAWaaTFyVAg6rHGL25dqvczKw==",
-            "dev": true,
-            "optional": true,
-            "dependencies": {
-                "debug": "^3.2.6",
-                "iconv-lite": "^0.6.3",
-                "sax": "^1.2.4"
-            },
-            "bin": {
-                "needle": "bin/needle"
-            },
-            "engines": {
-                "node": ">= 4.4.x"
-            }
-        },
-        "node_modules/needle/node_modules/debug": {
-            "version": "3.2.7",
-            "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz",
-            "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==",
-            "dev": true,
-            "optional": true,
-            "dependencies": {
-                "ms": "^2.1.1"
-            }
-        },
-        "node_modules/needle/node_modules/ms": {
-            "version": "2.1.3",
-            "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
-            "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
-            "dev": true,
-            "optional": true
-        },
         "node_modules/negotiator": {
             "version": "0.6.3",
             "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz",
             }
         },
         "node_modules/pako": {
-            "version": "1.0.11",
-            "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz",
-            "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==",
-            "dev": true
+            "version": "2.0.4",
+            "resolved": "https://registry.npmjs.org/pako/-/pako-2.0.4.tgz",
+            "integrity": "sha512-v8tweI900AUkZN6heMU/4Uy4cXRc2AYNRggVmTR+dEncawDJgCdLMximOVA2p4qO57WMynangsfGRb5WD6L1Bg=="
         },
         "node_modules/parallel-transform": {
             "version": "1.2.0",
                 "node": ">=4"
             }
         },
-        "node_modules/parse-node-version": {
-            "version": "1.0.1",
-            "resolved": "https://registry.npmjs.org/parse-node-version/-/parse-node-version-1.0.1.tgz",
-            "integrity": "sha512-3YHlOa/JgH6Mnpr05jP9eDG254US9ek25LyIxZlDItp2iJtwyaXQb57lBYLdT3MowkUFYEV2XXNAYIPlESvJlA==",
-            "dev": true,
-            "engines": {
-                "node": ">= 0.10"
-            }
-        },
         "node_modules/parse-passwd": {
             "version": "1.0.0",
             "resolved": "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz",
                 "node": ">=8"
             }
         },
-        "node_modules/tslib": {
-            "version": "2.4.0",
-            "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz",
-            "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==",
-            "dev": true
-        },
         "node_modules/ttf2eot": {
             "version": "2.0.0",
             "resolved": "https://registry.npmjs.org/ttf2eot/-/ttf2eot-2.0.0.tgz",
                 "ttf2woff": "ttf2woff.js"
             }
         },
+        "node_modules/ttf2woff/node_modules/pako": {
+            "version": "1.0.11",
+            "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz",
+            "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==",
+            "dev": true
+        },
         "node_modules/tty-browserify": {
             "version": "0.0.0",
             "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz",
             "dev": true,
             "requires": {
                 "pako": "~1.0.5"
+            },
+            "dependencies": {
+                "pako": {
+                    "version": "1.0.11",
+                    "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz",
+                    "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==",
+                    "dev": true
+                }
             }
         },
         "browserslist": {
             "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==",
             "dev": true
         },
-        "copy-anything": {
-            "version": "2.0.6",
-            "resolved": "https://registry.npmjs.org/copy-anything/-/copy-anything-2.0.6.tgz",
-            "integrity": "sha512-1j20GZTsvKNkc4BY3NpMOM8tt///wY3FpIzozTOFO2ffuZcV61nojHXVKIy3WM+7ADCy5FVhdZYHYDdgTU0yJw==",
-            "dev": true,
-            "requires": {
-                "is-what": "^3.14.1"
-            }
-        },
         "copy-concurrently": {
             "version": "1.0.5",
             "resolved": "https://registry.npmjs.org/copy-concurrently/-/copy-concurrently-1.0.5.tgz",
                 }
             }
         },
-        "iconv-lite": {
-            "version": "0.6.3",
-            "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz",
-            "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==",
-            "dev": true,
-            "optional": true,
-            "requires": {
-                "safer-buffer": ">= 2.1.2 < 3.0.0"
-            }
-        },
         "icss-replace-symbols": {
             "version": "1.1.0",
             "resolved": "https://registry.npmjs.org/icss-replace-symbols/-/icss-replace-symbols-1.1.0.tgz",
             "integrity": "sha512-Pgs951kaMm5GXP7MOvxERINe3gsaVjUWFm+UZPSq9xYriQAksyhg0csnS0KXSNRD5NmNdapXEpjxG49+AKh/ug==",
             "dev": true
         },
-        "image-size": {
-            "version": "0.5.5",
-            "resolved": "https://registry.npmjs.org/image-size/-/image-size-0.5.5.tgz",
-            "integrity": "sha512-6TDAlDPZxUFCv+fuOkIoXT/V/f3Qbq8e37p+YOiYrUv3v9cc3/6x78VdfPgFVaB9dZYeLUfKgHRebpkm/oP2VQ==",
-            "dev": true,
-            "optional": true
-        },
         "imagemin": {
             "version": "6.1.0",
             "resolved": "https://registry.npmjs.org/imagemin/-/imagemin-6.1.0.tgz",
                 "call-bind": "^1.0.2"
             }
         },
-        "is-what": {
-            "version": "3.14.1",
-            "resolved": "https://registry.npmjs.org/is-what/-/is-what-3.14.1.tgz",
-            "integrity": "sha512-sNxgpk9793nzSs7bA6JQJGeIuRBQhAaNGG77kzYQgMkrID+lS6SlK07K5LaptscDlSaIgH+GPFzf+d75FVxozA==",
-            "dev": true
-        },
         "is-windows": {
             "version": "1.0.2",
             "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz",
                 "is-buffer": "^1.1.5"
             }
         },
-        "klona": {
-            "version": "2.0.5",
-            "resolved": "https://registry.npmjs.org/klona/-/klona-2.0.5.tgz",
-            "integrity": "sha512-pJiBpiXMbt7dkzXe8Ghj/u4FfXOOa98fPW+bihOJ4SjnoijweJrNThJfd3ifXpXhREjpoF2mZVH1GfS9LV3kHQ==",
-            "dev": true
-        },
         "laravel-mix": {
             "version": "5.0.9",
             "resolved": "https://registry.npmjs.org/laravel-mix/-/laravel-mix-5.0.9.tgz",
                 "webpack-sources": "^1.1.0"
             }
         },
-        "less": {
-            "version": "4.1.3",
-            "resolved": "https://registry.npmjs.org/less/-/less-4.1.3.tgz",
-            "integrity": "sha512-w16Xk/Ta9Hhyei0Gpz9m7VS8F28nieJaL/VyShID7cYvP6IL5oHeL6p4TXSDJqZE/lNv0oJ2pGVjJsRkfwm5FA==",
-            "dev": true,
-            "requires": {
-                "copy-anything": "^2.0.1",
-                "errno": "^0.1.1",
-                "graceful-fs": "^4.1.2",
-                "image-size": "~0.5.0",
-                "make-dir": "^2.1.0",
-                "mime": "^1.4.1",
-                "needle": "^3.1.0",
-                "parse-node-version": "^1.0.1",
-                "source-map": "~0.6.0",
-                "tslib": "^2.3.0"
-            },
-            "dependencies": {
-                "make-dir": {
-                    "version": "2.1.0",
-                    "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz",
-                    "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==",
-                    "dev": true,
-                    "optional": true,
-                    "requires": {
-                        "pify": "^4.0.1",
-                        "semver": "^5.6.0"
-                    }
-                },
-                "semver": {
-                    "version": "5.7.1",
-                    "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
-                    "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
-                    "dev": true,
-                    "optional": true
-                }
-            }
-        },
-        "less-loader": {
-            "version": "8.1.1",
-            "resolved": "https://registry.npmjs.org/less-loader/-/less-loader-8.1.1.tgz",
-            "integrity": "sha512-K93jJU7fi3n6rxVvzp8Cb88Uy9tcQKfHlkoezHwKILXhlNYiRQl4yowLIkQqmBXOH/5I8yoKiYeIf781HGkW9g==",
-            "dev": true,
-            "requires": {
-                "klona": "^2.0.4"
-            }
-        },
         "lines-and-columns": {
             "version": "1.2.4",
             "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz",
                 "yallist": "^3.0.2"
             }
         },
+        "lz4js": {
+            "version": "0.2.0",
+            "resolved": "https://registry.npmjs.org/lz4js/-/lz4js-0.2.0.tgz",
+            "integrity": "sha512-gY2Ia9Lm7Ep8qMiuGRhvUq0Q7qUereeldZPP1PMEJxPtEWHJLqw9pgX68oHajBH0nzJK4MaZEA/YNV3jT8u8Bg=="
+        },
         "make-dir": {
             "version": "3.1.0",
             "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz",
                 "varstream": "^0.3.2"
             }
         },
-        "needle": {
-            "version": "3.1.0",
-            "resolved": "https://registry.npmjs.org/needle/-/needle-3.1.0.tgz",
-            "integrity": "sha512-gCE9weDhjVGCRqS8dwDR/D3GTAeyXLXuqp7I8EzH6DllZGXSUyxuqqLh+YX9rMAWaaTFyVAg6rHGL25dqvczKw==",
-            "dev": true,
-            "optional": true,
-            "requires": {
-                "debug": "^3.2.6",
-                "iconv-lite": "^0.6.3",
-                "sax": "^1.2.4"
-            },
-            "dependencies": {
-                "debug": {
-                    "version": "3.2.7",
-                    "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz",
-                    "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==",
-                    "dev": true,
-                    "optional": true,
-                    "requires": {
-                        "ms": "^2.1.1"
-                    }
-                },
-                "ms": {
-                    "version": "2.1.3",
-                    "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
-                    "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
-                    "dev": true,
-                    "optional": true
-                }
-            }
-        },
         "negotiator": {
             "version": "0.6.3",
             "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz",
             "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ=="
         },
         "pako": {
-            "version": "1.0.11",
-            "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz",
-            "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==",
-            "dev": true
+            "version": "2.0.4",
+            "resolved": "https://registry.npmjs.org/pako/-/pako-2.0.4.tgz",
+            "integrity": "sha512-v8tweI900AUkZN6heMU/4Uy4cXRc2AYNRggVmTR+dEncawDJgCdLMximOVA2p4qO57WMynangsfGRb5WD6L1Bg=="
         },
         "parallel-transform": {
             "version": "1.2.0",
                 "json-parse-better-errors": "^1.0.1"
             }
         },
-        "parse-node-version": {
-            "version": "1.0.1",
-            "resolved": "https://registry.npmjs.org/parse-node-version/-/parse-node-version-1.0.1.tgz",
-            "integrity": "sha512-3YHlOa/JgH6Mnpr05jP9eDG254US9ek25LyIxZlDItp2iJtwyaXQb57lBYLdT3MowkUFYEV2XXNAYIPlESvJlA==",
-            "dev": true
-        },
         "parse-passwd": {
             "version": "1.0.0",
             "resolved": "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz",
             "integrity": "sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw==",
             "dev": true
         },
-        "tslib": {
-            "version": "2.4.0",
-            "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz",
-            "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==",
-            "dev": true
-        },
         "ttf2eot": {
             "version": "2.0.0",
             "resolved": "https://registry.npmjs.org/ttf2eot/-/ttf2eot-2.0.0.tgz",
                 "argparse": "^1.0.6",
                 "microbuffer": "^1.0.0",
                 "pako": "^1.0.0"
+            },
+            "dependencies": {
+                "pako": {
+                    "version": "1.0.11",
+                    "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz",
+                    "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==",
+                    "dev": true
+                }
             }
         },
         "tty-browserify": {
index abc8786e042c88b2b2b2472f6790ede21ba7a26c..35b1697d52ca579fc72752a99343c265184caf74 100644 (file)
@@ -40,6 +40,8 @@
     "dependencies": {
         "command-line-args": "^5.2.1",
         "jquery.scrollto": "^2.1.3",
+        "lz4js": "^0.2.0",
+        "pako": "^2.0.4",
         "pdfjs-dist": "^2.14.305",
         "pipwerks-scorm-api-wrapper": "^0.1.2",
         "plyr": "^3.7.2",
index 9afe801d1bd4e4cd2156ccf5106df491cf6f1aa2..ea8f0bce1b4b1b5063d78512283e8cf59d12f516 100644 (file)
@@ -41,21 +41,7 @@ function initState() {
     }
     SCORM_LOCATION_INITED = true;
 
-    var currentLocation = '';
-    if (SCORM_OK) {
-        currentLocation = getScormValue('location');
-    }
-
-    if (currentLocation === undefined || currentLocation === null || currentLocation === 'null' || currentLocation === '') {
-        window.savedState = {};
-    } else {
-        window.savedState = JSON.parse(currentLocation);
-    }
-
-    if (window.savedState === undefined || window.savedState === null || window.savedState === 'null') {
-        window.savedState = {};
-    }
-
+    window.savedState = getScormLocation();
     var clone = $.extend(true, {}, window.savedState);
     $.each(DATA.modules, function (k, v) {
         var id = v.id.toString();
index 0d69b83d4d9921b8e9c8642ccc8a7df3678c4e1f..53e42c1c3767bd006d0279dd9f5855aa56f0b58d 100644 (file)
@@ -1,5 +1,7 @@
 import {SCORM} from "pipwerks-scorm-api-wrapper";
 
+window.pako = require('pako');
+
 window.SCORM_INITED = false;
 window.SCORM_START_TIME = null;
 window.SCORM_INTERACTION_TIMESTAMPS = [];
@@ -15,6 +17,7 @@ window.SCORM_LOCATION_INITED = false;
 window.SCORM_OK = false;
 
 window._CMI12 = {
+    'suspend_data': 'cmi.suspend_data',
     'location': 'cmi.core.lesson_location',
     'status': "cmi.core.lesson_status",
     'session_time': 'cmi.core.session_time',
@@ -27,6 +30,7 @@ window._CMI12 = {
 };
 
 window._CMI2004 = {
+    'suspend_data': 'cmi.suspend_data',
     'location': 'cmi.location',
     'status': 'cmi.completion_status',
     'session_time': 'cmi.session_time',
@@ -96,7 +100,13 @@ window.initScormEvents = function () {
 };
 
 window.setSCORMLocation = function (location) {
-    return setScormValue('location', JSON.stringify(location));
+    let json = JSON.stringify(location);
+    console.log(json);
+    let deflate = pako.deflate(json);
+    console.log(deflate);
+    let b64 = bytesArrToBase64(deflate);
+    console.log(b64);
+    return setScormValue('location', b64);
 };
 
 window.setSCORMScore = function (score, max, min, scaled) {
@@ -122,6 +132,34 @@ window.getScormValue = function (elementName) {
     return SCORM.get(cmi);
 };
 
+window.getScormLocation = function () {
+    var res = {};
+    if (!SCORM_OK) {
+        return {};
+    }
+    var currentLocation = getScormValue('location');
+
+    if (currentLocation.indexOf('[') === -1 && currentLocation.indexOf('{') === -1) {
+        // Maybe a zipped string
+        currentLocation = pako.inflate(base64ToBytesArr(currentLocation), {to: 'string'});
+    }
+    if (currentLocation === undefined || currentLocation === null || currentLocation === 'null' || currentLocation === '') {
+        res = {};
+    } else {
+        try {
+            res = JSON.parse(currentLocation);
+        } catch (e) {
+            console.warn('An error occurred while decoding location. Reseting the value');
+            res = {};
+        }
+    }
+
+    if (window.savedState === undefined || window.savedState === null || window.savedState === 'null') {
+        res = {};
+    }
+    return res;
+}
+
 window.setScormValue = function (elementName, value) {
     if (!SCORM_OK) {
         return;
@@ -215,6 +253,34 @@ window.setSessionTime = function () {
 
 };
 
+window.bytesArrToBase64 = function (arr) {
+    const abc = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"; // base64 alphabet
+    const bin = n => n.toString(2).padStart(8, 0); // convert num to 8-bit binary string
+    const l = arr.length
+    let result = '';
+
+    for (let i = 0; i <= (l - 1) / 3; i++) {
+        let c1 = i * 3 + 1 >= l; // case when "=" is on end
+        let c2 = i * 3 + 2 >= l; // case when "=" is on end
+        let chunk = bin(arr[3 * i]) + bin(c1 ? 0 : arr[3 * i + 1]) + bin(c2 ? 0 : arr[3 * i + 2]);
+        let r = chunk.match(/.{1,6}/g).map((x, j) => j == 3 && c2 ? '=' : (j == 2 && c1 ? '=' : abc[+('0b' + x)]));
+        result += r.join('');
+    }
+
+    return result;
+}
+
+window.base64ToBytesArr = function (base64) {
+    let raw = window.atob(base64);
+    let rawLength = raw.length;
+    let array = new Uint8Array(new ArrayBuffer(rawLength));
+
+    for (let i = 0; i < rawLength; i++) {
+        array[i] = raw.charCodeAt(i);
+    }
+    return array;
+}
+
 window.dateToScormTime = function (date) {
     var res = date.toISOString();
     var e = res.split('.');