diff --git a/common/web/lm-worker/build-polyfill-concatenator.js b/common/web/lm-worker/build-polyfill-concatenator.js index dc71d0237a..4b7d32b0a2 100644 --- a/common/web/lm-worker/build-polyfill-concatenator.js +++ b/common/web/lm-worker/build-polyfill-concatenator.js @@ -1,16 +1,16 @@ import fs from 'fs'; -import SourcemapRemapper from '@keymanapp/sourcemap-path-remapper'; +import SourceMapRemapper from '@keymanapp/sourcemap-path-remapper'; -import SourcemapCombiner from 'combine-source-map'; -import convertSourcemap from 'convert-source-map'; // Transforms sourcemaps among various common formats. +import SourceMapCombiner from 'combine-source-map'; +import convertSourceMap from 'convert-source-map'; // Transforms sourcemaps among various common formats. // Base64, stringified-JSON, end-of-file comment... -let loadPolyfill = function(file, mapFilename) { +let loadPolyfill = function(scriptFile, sourceMapFile) { // May want to retool the pathing somewhat! return { - source: fs.readFileSync(file).toString(), - sourceFile: mapFilename || file + source: fs.readFileSync(scriptFile).toString(), + sourceFile: sourceMapFile || scriptFile }; } @@ -27,13 +27,13 @@ let loadCompiledModuleFilePair = function(file, mapFilename) { /**The source + inlined sourcemap-as-comment used by `combine-source-map`. */ get source() { let jsonAsBuffer = Buffer.from(JSON.stringify(this.sourceMapAsJSON)); - return `${this.plainSource}\n${convertSourcemap.fromJSON(jsonAsBuffer).toComment()}`; + return `${this.plainSource}\n${convertSourceMap.fromJSON(jsonAsBuffer).toComment()}`; } }; } function concatScriptsAndSourcemaps(files, finalName, separatorFile) { - let combiner = SourcemapCombiner.create(finalName); + let combiner = SourceMapCombiner.create(finalName); let finalConcatenationArray = []; let lineCountThusFar = 0; @@ -60,7 +60,7 @@ function concatScriptsAndSourcemaps(files, finalName, separatorFile) { return { script: bundledSource, - sourcemapJSON: JSON.parse(convertSourcemap.fromBase64(combiner.base64()).toJSON()), + sourcemapJSON: JSON.parse(convertSourceMap.fromBase64(combiner.base64()).toJSON()), scriptFilename: finalName } } @@ -104,7 +104,7 @@ console.log(); // paths result in unwanted extra pathing that needs to be cleaned up (models/models, correction/correction, etc) console.log("Pass 2: cleaning sourcemap source paths"); -let remappingState = SourcemapRemapper +let remappingState = SourceMapRemapper .fromObject(fullWorkerConcatenation.sourcemapJSON) .remapPaths([ {from: /^polyfills\//, to: '/common/web/lm-worker/src/polyfills/'}, @@ -144,4 +144,4 @@ fullWorkerConcatenation.script = fullWorkerConcatenation.script.substring(0, ful fullWorkerConcatenation.script += `//# sourceMappingURL=${fullWorkerConcatenation.scriptFilename}.map`; fs.writeFileSync(`build/lib/${fullWorkerConcatenation.scriptFilename}`, fullWorkerConcatenation.script); -fs.writeFileSync(`build/lib/${fullWorkerConcatenation.scriptFilename}.map`, convertSourcemap.fromObject(fullWorkerConcatenation.sourcemapJSON).toJSON()); \ No newline at end of file +fs.writeFileSync(`build/lib/${fullWorkerConcatenation.scriptFilename}.map`, convertSourceMap.fromObject(fullWorkerConcatenation.sourcemapJSON).toJSON()); \ No newline at end of file diff --git a/common/web/lm-worker/package.json b/common/web/lm-worker/package.json index 95bd7a84b3..27b9e61468 100644 --- a/common/web/lm-worker/package.json +++ b/common/web/lm-worker/package.json @@ -17,6 +17,7 @@ "@keymanapp/resources-gosh": "*", "@types/node": "^10.17.21", "chai": "^4.3.4", + "combine-source-map": "^0.8.0", "karma": "^6.4.1", "karma-browserstack-launcher": "^1.6.0", "karma-chai": "^0.1.0", diff --git a/common/web/lm-worker/src/main/index.ts b/common/web/lm-worker/src/main/index.ts index 8b457ad6e7..88a2ed0b8f 100644 --- a/common/web/lm-worker/src/main/index.ts +++ b/common/web/lm-worker/src/main/index.ts @@ -32,6 +32,8 @@ /// import { extendString } from "@keymanapp/web-utils/build/obj/index.js"; +extendString(); + import * as models from './models/index.js'; import * as correction from './correction/index.js'; import * as wordBreakers from '@keymanapp/models-wordbreakers/build/obj/index.js'; diff --git a/common/web/lm-worker/src/main/worker-main.ts b/common/web/lm-worker/src/main/worker-main.ts index 102fbf2888..665943f66f 100644 --- a/common/web/lm-worker/src/main/worker-main.ts +++ b/common/web/lm-worker/src/main/worker-main.ts @@ -21,7 +21,6 @@ */ import LMLayerWorker from './index.js'; -//export { default as LMLayerWorker } from './index.js'; // Let LMLayerWorker be available both in the browser and in Node. if (typeof self !== 'undefined' && 'postMessage' in self && 'importScripts' in self) { diff --git a/package-lock.json b/package-lock.json index 0dc0163896..a1f7d1dc64 100644 --- a/package-lock.json +++ b/package-lock.json @@ -324,6 +324,7 @@ "@keymanapp/resources-gosh": "*", "@types/node": "^10.17.21", "chai": "^4.3.4", + "combine-source-map": "^0.8.0", "karma": "^6.4.1", "karma-browserstack-launcher": "^1.6.0", "karma-chai": "^0.1.0", @@ -2244,6 +2245,33 @@ "color-support": "bin.js" } }, + "node_modules/combine-source-map": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/combine-source-map/-/combine-source-map-0.8.0.tgz", + "integrity": "sha512-UlxQ9Vw0b/Bt/KYwCFqdEwsQ1eL8d1gibiFb7lxQJFdvTgc2hIZi6ugsg+kyhzhPV+QEpUiEIwInIAIrgoEkrg==", + "dev": true, + "dependencies": { + "convert-source-map": "~1.1.0", + "inline-source-map": "~0.6.0", + "lodash.memoize": "~3.0.3", + "source-map": "~0.5.3" + } + }, + "node_modules/combine-source-map/node_modules/convert-source-map": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.1.3.tgz", + "integrity": "sha512-Y8L5rp6jo+g9VEPgvqNfEopjTR4OTYct8lXlS8iVQdmnjDvbdbzYe9rjtFCB9egC86JoNCU61WRY+ScjkZpnIg==", + "dev": true + }, + "node_modules/combine-source-map/node_modules/source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/combined-stream": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", @@ -3876,6 +3904,24 @@ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" }, + "node_modules/inline-source-map": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/inline-source-map/-/inline-source-map-0.6.2.tgz", + "integrity": "sha512-0mVWSSbNDvedDWIN4wxLsdPM4a7cIPcpyMxj3QZ406QRwQ6ePGB1YIHxVPjqpcUGbWQ5C+nHTwGNWAGvt7ggVA==", + "dev": true, + "dependencies": { + "source-map": "~0.5.3" + } + }, + "node_modules/inline-source-map/node_modules/source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/ipaddr.js": { "version": "1.9.1", "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", @@ -4476,6 +4522,12 @@ "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz", "integrity": "sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ==" }, + "node_modules/lodash.memoize": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-3.0.4.tgz", + "integrity": "sha512-eDn9kqrAmVUC1wmZvlQ6Uhde44n+tXpqPrN8olQJbttgh0oKclk+SF54P47VEGE9CEiMeRwAP8BaM7UHvBkz2A==", + "dev": true + }, "node_modules/lodash.set": { "version": "4.3.2", "resolved": "https://registry.npmjs.org/lodash.set/-/lodash.set-4.3.2.tgz", @@ -7882,6 +7934,7 @@ "@keymanapp/web-utils": "*", "@types/node": "^10.17.21", "chai": "^4.3.4", + "combine-source-map": "*", "es6-shim": "^0.35.5", "karma": "^6.4.1", "karma-browserstack-launcher": "^1.6.0", @@ -9205,6 +9258,32 @@ "integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==", "dev": true }, + "combine-source-map": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/combine-source-map/-/combine-source-map-0.8.0.tgz", + "integrity": "sha512-UlxQ9Vw0b/Bt/KYwCFqdEwsQ1eL8d1gibiFb7lxQJFdvTgc2hIZi6ugsg+kyhzhPV+QEpUiEIwInIAIrgoEkrg==", + "dev": true, + "requires": { + "convert-source-map": "~1.1.0", + "inline-source-map": "~0.6.0", + "lodash.memoize": "~3.0.3", + "source-map": "~0.5.3" + }, + "dependencies": { + "convert-source-map": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.1.3.tgz", + "integrity": "sha512-Y8L5rp6jo+g9VEPgvqNfEopjTR4OTYct8lXlS8iVQdmnjDvbdbzYe9rjtFCB9egC86JoNCU61WRY+ScjkZpnIg==", + "dev": true + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==", + "dev": true + } + } + }, "combined-stream": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", @@ -10376,6 +10455,23 @@ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" }, + "inline-source-map": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/inline-source-map/-/inline-source-map-0.6.2.tgz", + "integrity": "sha512-0mVWSSbNDvedDWIN4wxLsdPM4a7cIPcpyMxj3QZ406QRwQ6ePGB1YIHxVPjqpcUGbWQ5C+nHTwGNWAGvt7ggVA==", + "dev": true, + "requires": { + "source-map": "~0.5.3" + }, + "dependencies": { + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==", + "dev": true + } + } + }, "ipaddr.js": { "version": "1.9.1", "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", @@ -10893,6 +10989,12 @@ "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz", "integrity": "sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ==" }, + "lodash.memoize": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-3.0.4.tgz", + "integrity": "sha512-eDn9kqrAmVUC1wmZvlQ6Uhde44n+tXpqPrN8olQJbttgh0oKclk+SF54P47VEGE9CEiMeRwAP8BaM7UHvBkz2A==", + "dev": true + }, "lodash.set": { "version": "4.3.2", "resolved": "https://registry.npmjs.org/lodash.set/-/lodash.set-4.3.2.tgz",