sliftutils 0.9.0 → 0.11.0
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/.cursorrules +2 -0
- package/.gitignore +38 -0
- package/assets/icon128.png +0 -0
- package/assets/icon16.png +0 -0
- package/assets/icon48.png +0 -0
- package/build-electron/assets/icon128.png +0 -0
- package/build-electron/assets/icon16.png +0 -0
- package/build-electron/assets/icon48.png +0 -0
- package/build-electron/electron/electronIndex.html +12 -0
- package/build-electron/electronMain.js +5185 -0
- package/build-electron/electronRenderer.js +20852 -0
- package/build-extension/assets/icon128.png +0 -0
- package/build-extension/assets/icon16.png +0 -0
- package/build-extension/assets/icon48.png +0 -0
- package/build-extension/extBackground.js +5246 -0
- package/build-extension/extContentScript.js +5243 -0
- package/build-extension/manifest.json +29 -0
- package/build-nodejs/server.js +198610 -0
- package/build-web/assets/icon128.png +0 -0
- package/build-web/assets/icon16.png +0 -0
- package/build-web/assets/icon48.png +0 -0
- package/build-web/browser.js +199266 -0
- package/build-web/web/index.html +32 -0
- package/builders/dist/electronBuild.ts.cache +105 -0
- package/builders/dist/extensionBuild.ts.cache +146 -0
- package/builders/dist/generateIndexDts.ts.cache +74 -0
- package/builders/dist/hotReload.ts.cache +93 -0
- package/builders/dist/nodeJSBuild.ts.cache +29 -0
- package/builders/dist/watch.ts.cache +163 -0
- package/builders/dist/webBuild.ts.cache +81 -0
- package/builders/generateIndexDts.ts +63 -0
- package/bundler/dist/bundleEntry.ts.cache +48 -0
- package/bundler/dist/bundleEntryCaller.ts.cache +18 -0
- package/bundler/dist/bundleRequire.ts.cache +246 -0
- package/bundler/dist/bundleWrapper.ts.cache +101 -0
- package/bundler/dist/bundler.ts.cache +66 -0
- package/bundler/dist/sourceMaps.ts.cache +210 -0
- package/dist/electronMain.ts.cache +27 -0
- package/dist/electronRenderer.tsx.cache +62 -0
- package/electron/dist/electronMain.ts.cache +26 -0
- package/electron/dist/electronRenderer.tsx.cache +64 -0
- package/extension/dist/extBackground.ts.cache +20 -0
- package/extension/dist/extContentScript.ts.cache +17 -0
- package/index.d.ts +46 -0
- package/misc/dist/environment.ts.cache +50 -0
- package/misc/dist/fs.ts.cache +29 -0
- package/misc/environment.d.ts +8 -0
- package/misc/fs.d.ts +1 -0
- package/misc/getSecret.d.ts +8 -0
- package/misc/getSecret.ts +0 -4
- package/misc/types.d.ts +1 -0
- package/misc/zip.d.ts +7 -0
- package/nodejs/dist/exampleFile.ts.cache +11 -0
- package/nodejs/dist/server.ts.cache +15 -0
- package/package.json +8 -3
- package/render-utils/SyncedController.d.ts +1 -0
- package/render-utils/dist/observer.tsx.cache +33 -0
- package/storage/dist/CachedStorage.ts.cache +31 -0
- package/storage/dist/DelayedStorage.ts.cache +35 -0
- package/storage/dist/DiskCollection.ts.cache +241 -0
- package/storage/dist/FileFolderAPI.tsx.cache +345 -0
- package/storage/dist/IndexedDBFileFolderAPI.ts.cache +142 -0
- package/storage/dist/JSONStorage.ts.cache +38 -0
- package/storage/dist/PendingManager.tsx.cache +73 -0
- package/storage/dist/PendingStorage.ts.cache +49 -0
- package/storage/dist/PrivateFileSystemStorage.ts.cache +178 -0
- package/storage/dist/StorageObservable.ts.cache +120 -0
- package/storage/dist/TransactionStorage.ts.cache +421 -0
- package/storage/dist/fileSystemPointer.ts.cache +77 -0
- package/tsconfig.declarations.json +3 -1
- package/web/dist/browser.tsx.cache +66 -0
- package/yarn.lock +1752 -0
- package/builders/generateIndexDts.js +0 -50
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
<!DOCTYPE html>
|
|
2
|
+
<html>
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="UTF-8">
|
|
5
|
+
<title>Web App</title>
|
|
6
|
+
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap" rel="stylesheet">
|
|
7
|
+
<style>
|
|
8
|
+
* {
|
|
9
|
+
box-sizing: border-box;
|
|
10
|
+
overflow-wrap: break-word;
|
|
11
|
+
word-wrap: break-word;
|
|
12
|
+
word-break: break-word;
|
|
13
|
+
}
|
|
14
|
+
body {
|
|
15
|
+
margin: 0px;
|
|
16
|
+
padding: 0px;
|
|
17
|
+
background: hsl(0, 0%, 7%);
|
|
18
|
+
color: hsl(0, 0%, 100%);
|
|
19
|
+
font-family: 'Inter', system-ui, -apple-system, Segoe UI, Roboto, 'Helvetica Neue', Arial, 'Noto Sans', 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', sans-serif;
|
|
20
|
+
}
|
|
21
|
+
body, button, textarea {
|
|
22
|
+
font-family: Inter;
|
|
23
|
+
font-size: 12px;
|
|
24
|
+
}
|
|
25
|
+
</style>
|
|
26
|
+
</head>
|
|
27
|
+
<body>
|
|
28
|
+
<div id="app"></div>
|
|
29
|
+
<script src="../browser.js"></script>
|
|
30
|
+
</body>
|
|
31
|
+
</html>
|
|
32
|
+
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule && mod.default) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true , configurable: true});
|
|
6
|
+
const fs_1 = __importDefault(require("fs"));
|
|
7
|
+
const batching_1 = require("socket-function/src/batching");
|
|
8
|
+
const bundleEntryCaller_1 = require("../bundler/bundleEntryCaller");
|
|
9
|
+
const yargs_1 = __importDefault(require("yargs"));
|
|
10
|
+
const format_1 = require("socket-function/src/formatting/format");
|
|
11
|
+
const path_1 = __importDefault(require("path"));
|
|
12
|
+
const fs_2 = require("../misc/fs");
|
|
13
|
+
const logColors_1 = require("socket-function/src/formatting/logColors");
|
|
14
|
+
async function main() {
|
|
15
|
+
// Check if Electron is installed
|
|
16
|
+
try {
|
|
17
|
+
require.resolve("electron");
|
|
18
|
+
}
|
|
19
|
+
catch (error) {
|
|
20
|
+
console.error("ERROR: Electron is not installed.");
|
|
21
|
+
console.error("");
|
|
22
|
+
console.error("Electron is too heavy to be included by default for non-electron projects. Please run:");
|
|
23
|
+
console.error((0, logColors_1.green)("yarn add electron"));
|
|
24
|
+
process.exit(1);
|
|
25
|
+
}
|
|
26
|
+
let time = Date.now();
|
|
27
|
+
let yargObj = (0, yargs_1.default)(process.argv)
|
|
28
|
+
.option("mainEntry", { type: "string", default: "./electron/electronMain.ts", desc: `Path to the main process entry point` })
|
|
29
|
+
.option("rendererEntry", { type: "string", default: "./electron/electronRenderer.tsx", desc: `Path to the renderer process entry point` })
|
|
30
|
+
.option("indexHtml", { type: "string", default: "./electron/electronIndex.html", desc: `Path to the index.html file` })
|
|
31
|
+
.option("assetsFolder", { type: "string", default: "./assets", desc: `Path to the assets folder` })
|
|
32
|
+
.option("outputFolder", { type: "string", default: "./build-electron", desc: `Output folder` })
|
|
33
|
+
.argv || {};
|
|
34
|
+
// Wait for any async functions to load.
|
|
35
|
+
await (0, batching_1.delay)(0);
|
|
36
|
+
let hasMainEntry = fs_1.default.existsSync(yargObj.mainEntry);
|
|
37
|
+
let hasRendererEntry = fs_1.default.existsSync(yargObj.rendererEntry);
|
|
38
|
+
let hasIndexHtml = fs_1.default.existsSync(yargObj.indexHtml);
|
|
39
|
+
let hasAssets = fs_1.default.existsSync(yargObj.assetsFolder);
|
|
40
|
+
if (!hasMainEntry) {
|
|
41
|
+
throw new Error(`Main process entry point not found at ${yargObj.mainEntry}. Please specify with the --mainEntry option.`);
|
|
42
|
+
}
|
|
43
|
+
if (!hasRendererEntry) {
|
|
44
|
+
throw new Error(`Renderer process entry point not found at ${yargObj.rendererEntry}. Please specify with the --rendererEntry option.`);
|
|
45
|
+
}
|
|
46
|
+
await fs_1.default.promises.mkdir(yargObj.outputFolder, { recursive: true });
|
|
47
|
+
// Build main and renderer processes in parallel
|
|
48
|
+
await Promise.all([
|
|
49
|
+
(0, bundleEntryCaller_1.bundleEntryCaller)({
|
|
50
|
+
entryPoint: yargObj.mainEntry,
|
|
51
|
+
outputFolder: yargObj.outputFolder,
|
|
52
|
+
}),
|
|
53
|
+
(0, bundleEntryCaller_1.bundleEntryCaller)({
|
|
54
|
+
entryPoint: yargObj.rendererEntry,
|
|
55
|
+
outputFolder: yargObj.outputFolder,
|
|
56
|
+
})
|
|
57
|
+
]);
|
|
58
|
+
// Collect all files to copy
|
|
59
|
+
let filesToCopy = [];
|
|
60
|
+
if (hasIndexHtml) {
|
|
61
|
+
filesToCopy.push(yargObj.indexHtml);
|
|
62
|
+
}
|
|
63
|
+
// Add assets folder files if it exists
|
|
64
|
+
if (hasAssets) {
|
|
65
|
+
for await (const file of (0, fs_2.getAllFiles)(yargObj.assetsFolder)) {
|
|
66
|
+
filesToCopy.push(file);
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
// Copy all files with timestamp checking
|
|
70
|
+
async function getTimestamp(filePath) {
|
|
71
|
+
try {
|
|
72
|
+
const stats = await fs_1.default.promises.stat(filePath);
|
|
73
|
+
return stats.mtimeMs;
|
|
74
|
+
}
|
|
75
|
+
catch (error) {
|
|
76
|
+
return 0;
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
let filesCopied = 0;
|
|
80
|
+
let root = path_1.default.resolve(".");
|
|
81
|
+
for (const file of filesToCopy) {
|
|
82
|
+
let sourcePath = path_1.default.resolve(file);
|
|
83
|
+
if (!fs_1.default.existsSync(sourcePath)) {
|
|
84
|
+
console.warn(`Warning: File not found: ${file}`);
|
|
85
|
+
continue;
|
|
86
|
+
}
|
|
87
|
+
let relativePath = path_1.default.relative(root, sourcePath);
|
|
88
|
+
let destPath = path_1.default.join(yargObj.outputFolder, relativePath);
|
|
89
|
+
let sourceTimestamp = await getTimestamp(sourcePath);
|
|
90
|
+
let destTimestamp = await getTimestamp(destPath);
|
|
91
|
+
if (sourceTimestamp > destTimestamp) {
|
|
92
|
+
await fs_1.default.promises.mkdir(path_1.default.dirname(destPath), { recursive: true });
|
|
93
|
+
await fs_1.default.promises.cp(sourcePath, destPath);
|
|
94
|
+
filesCopied++;
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
if (filesCopied > 0) {
|
|
98
|
+
console.log(`Copied ${filesCopied} changed files`);
|
|
99
|
+
}
|
|
100
|
+
let duration = Date.now() - time;
|
|
101
|
+
console.log(`Electron build completed in ${(0, format_1.formatTime)(duration)}`);
|
|
102
|
+
}
|
|
103
|
+
main().catch(console.error).finally(() => process.exit());
|
|
104
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxlY3Ryb25CdWlsZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImVsZWN0cm9uQnVpbGQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSw0Q0FBb0I7QUFDcEIsMkRBQXFEO0FBQ3JELG9FQUFpRTtBQUNqRSxrREFBMEI7QUFDMUIsa0VBQW1FO0FBQ25FLGdEQUF3QjtBQUN4QixtQ0FBeUM7QUFDekMsd0VBQWlFO0FBRWpFLEtBQUssVUFBVSxJQUFJO0lBQ2YsaUNBQWlDO0lBQ2pDLElBQUksQ0FBQztRQUNELE9BQU8sQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDaEMsQ0FBQztJQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7UUFDYixPQUFPLENBQUMsS0FBSyxDQUFDLG1DQUFtQyxDQUFDLENBQUM7UUFDbkQsT0FBTyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUNsQixPQUFPLENBQUMsS0FBSyxDQUFDLHdGQUF3RixDQUFDLENBQUM7UUFDeEcsT0FBTyxDQUFDLEtBQUssQ0FBQyxJQUFBLGlCQUFLLEVBQUMsbUJBQW1CLENBQUMsQ0FBQyxDQUFDO1FBQzFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDcEIsQ0FBQztJQUVELElBQUksSUFBSSxHQUFHLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztJQUN0QixJQUFJLE9BQU8sR0FBRyxJQUFBLGVBQUssRUFBQyxPQUFPLENBQUMsSUFBSSxDQUFDO1NBQzVCLE1BQU0sQ0FBQyxXQUFXLEVBQUUsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxJQUFJLEVBQUUsc0NBQXNDLEVBQUUsQ0FBQztTQUM1SCxNQUFNLENBQUMsZUFBZSxFQUFFLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsaUNBQWlDLEVBQUUsSUFBSSxFQUFFLDBDQUEwQyxFQUFFLENBQUM7U0FDekksTUFBTSxDQUFD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QyxPQUFPLENBQUMsR0FBRyxDQUFDLCtCQUErQixJQUFBLG1CQUFVLEVBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0FBQ3ZFLENBQUM7QUFDRCxJQUFJLEVBQUUsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBmcyBmcm9tIFwiZnNcIjtcbmltcG9ydCB7IGRlbGF5IH0gZnJvbSBcInNvY2tldC1mdW5jdGlvbi9zcmMvYmF0Y2hpbmdcIjtcbmltcG9ydCB7IGJ1bmRsZUVudHJ5Q2FsbGVyIH0gZnJvbSBcIi4uL2J1bmRsZXIvYnVuZGxlRW50cnlDYWxsZXJcIjtcbmltcG9ydCB5YXJncyBmcm9tIFwieWFyZ3NcIjtcbmltcG9ydCB7IGZvcm1hdFRpbWUgfSBmcm9tIFwic29ja2V0LWZ1bmN0aW9uL3NyYy9mb3JtYXR0aW5nL2Zvcm1hdFwiO1xuaW1wb3J0IHBhdGggZnJvbSBcInBhdGhcIjtcbmltcG9ydCB7IGdldEFsbEZpbGVzIH0gZnJvbSBcIi4uL21pc2MvZnNcIjtcbmltcG9ydCB7IGdyZWVuIH0gZnJvbSBcInNvY2tldC1mdW5jdGlvbi9zcmMvZm9ybWF0dGluZy9sb2dDb2xvcnNcIjtcblxuYXN5bmMgZnVuY3Rpb24gbWFpbigpIHtcbiAgICAvLyBDaGVjayBpZiBFbGVjdHJvbiBpcyBpbnN0YWxsZWRcbiAgICB0cnkge1xuICAgICAgICByZXF1aXJlLnJlc29sdmUoXCJlbGVjdHJvblwiKTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICBjb25zb2xlLmVycm9yKFwiRVJST1I6IEVsZWN0cm9uIGlzIG5vdCBpbnN0YWxsZWQuXCIpO1xuICAgICAgICBjb25zb2xlLmVycm9yKFwiXCIpO1xuICAgICAgICBjb25zb2xlLmVycm9yKFwiRWxlY3Ryb24gaXMgdG9vIGhlYXZ5IHRvIGJlIGluY2x1ZGVkIGJ5IGRlZmF1bHQgZm9yIG5vbi1lbGVjdHJvbiBwcm9qZWN0cy4gUGxlYXNlIHJ1bjpcIik7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoZ3JlZW4oXCJ5YXJuIGFkZCBlbGVjdHJvblwiKSk7XG4gICAgICAgIHByb2Nlc3MuZXhpdCgxKTtcbiAgICB9XG5cbiAgICBsZXQgdGltZSA9IERhdGUubm93KCk7XG4gICAgbGV0IHlhcmdPYmogPSB5YXJncyhwcm9jZXNzLmFyZ3YpXG4gICAgICAgIC5vcHRpb24oXCJtYWluRW50cnlcIiwgeyB0eXBlOiBcInN0cmluZ1wiLCBkZWZhdWx0OiBcIi4vZWxlY3Ryb24vZWxlY3Ryb25NYWluLnRzXCIsIGRlc2M6IGBQYXRoIHRvIHRoZSBtYWluIHByb2Nlc3MgZW50cnkgcG9pbnRgIH0pXG4gICAgICAgIC5vcHRpb24oXCJyZW5kZXJlckVudHJ5XCIsIHsgdHlwZTogXCJzdHJpbmdcIiwgZGVmYXVsdDogXCIuL2VsZWN0cm9uL2VsZWN0cm9uUmVuZGVyZXIudHN4XCIsIGRlc2M6IGBQYXRoIHRvIHRoZSByZW5kZXJlciBwcm9jZXNzIGVudHJ5IHBvaW50YCB9KVxuICAgICAgICAub3B0aW9uKFwiaW5kZXhIdG1sXCIsIHsgdHlwZTogXCJzdHJpbmdcIiwgZGVmYXVsdDogXCIuL2VsZWN0cm9uL2VsZWN0cm9uSW5kZXguaHRtbFwiLCBkZXNjOiBgUGF0aCB0byB0aGUgaW5kZXguaHRtbCBmaWxlYCB9KVxuICAgICAgICAub3B0aW9uKFwiYXNzZXRzRm9sZGVyXCIsIHsgdHlwZTogXCJzdHJpbmdcIiwgZGVmYXVsdDogXCIuL2Fzc2V0c1wiLCBkZXNjOiBgUGF0aCB0byB0aGUgYXNzZXRzIGZvbGRlcmAgfSlcbiAgICAgICAgLm9wdGlvbihcIm91dHB1dEZvbGRlclwiLCB7IHR5cGU6IFwic3RyaW5nXCIsIGRlZmF1bHQ6IFwiLi9idWlsZC1lbGVjdHJvblwiLCBkZXNjOiBgT3V0cHV0IGZvbGRlcmAgfSlcbiAgICAgICAgLmFyZ3YgfHwge31cbiAgICAgICAgO1xuXG5cbiAgICAvLyBXYWl0IGZvciBhbnkgYXN5bmMgZnVuY3Rpb25zIHRvIGxvYWQuIFxuICAgIGF3YWl0IGRlbGF5KDApO1xuXG4gICAgbGV0IGhhc01haW5FbnRyeSA9IGZzLmV4aXN0c1N5bmMoeWFyZ09iai5tYWluRW50cnkpO1xuICAgIGxldCBoYXNSZW5kZXJlckVudHJ5ID0gZnMuZXhpc3RzU3luYyh5YXJnT2JqLnJlbmRlcmVyRW50cnkpO1xuICAgIGxldCBoYXNJbmRleEh0bWwgPSBmcy5leGlzdHNTeW5jKHlhcmdPYmouaW5kZXhIdG1sKTtcbiAgICBsZXQgaGFzQXNzZXRzID0gZnMuZXhpc3RzU3luYyh5YXJnT2JqLmFzc2V0c0ZvbGRlcik7XG5cbiAgICBpZiAoIWhhc01haW5FbnRyeSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYE1haW4gcHJvY2VzcyBlbnRyeSBwb2ludCBub3QgZm91bmQgYXQgJHt5YXJnT2JqLm1haW5FbnRyeX0uIFBsZWFzZSBzcGVjaWZ5IHdpdGggdGhlIC0tbWFpbkVudHJ5IG9wdGlvbi5gKTtcbiAgICB9XG4gICAgaWYgKCFoYXNSZW5kZXJlckVudHJ5KSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgUmVuZGVyZXIgcHJvY2VzcyBlbnRyeSBwb2ludCBub3QgZm91bmQgYXQgJHt5YXJnT2JqLnJlbmRlcmVyRW50cnl9LiBQbGVhc2Ugc3BlY2lmeSB3aXRoIHRoZSAtLXJlbmRlcmVyRW50cnkgb3B0aW9uLmApO1xuICAgIH1cblxuICAgIGF3YWl0IGZzLnByb21pc2VzLm1rZGlyKHlhcmdPYmoub3V0cHV0Rm9sZGVyLCB7IHJlY3Vyc2l2ZTogdHJ1ZSB9KTtcblxuICAgIC8vIEJ1aWxkIG1haW4gYW5kIHJlbmRlcmVyIHByb2Nlc3NlcyBpbiBwYXJhbGxlbFxuICAgIGF3YWl0IFByb21pc2UuYWxsKFtcbiAgICAgICAgYnVuZGxlRW50cnlDYWxsZXIoe1xuICAgICAgICAgICAgZW50cnlQb2ludDogeWFyZ09iai5tYWluRW50cnksXG4gICAgICAgICAgICBvdXRwdXRGb2xkZXI6IHlhcmdPYmoub3V0cHV0Rm9sZGVyLFxuICAgICAgICB9KSxcbiAgICAgICAgYnVuZGxlRW50cnlDYWxsZXIoe1xuICAgICAgICAgICAgZW50cnlQb2ludDogeWFyZ09iai5yZW5kZXJlckVudHJ5LFxuICAgICAgICAgICAgb3V0cHV0Rm9sZGVyOiB5YXJnT2JqLm91dHB1dEZvbGRlcixcbiAgICAgICAgfSlcbiAgICBdKTtcblxuICAgIC8vIENvbGxlY3QgYWxsIGZpbGVzIHRvIGNvcHlcbiAgICBsZXQgZmlsZXNUb0NvcHk6IHN0cmluZ1tdID0gW107XG5cbiAgICBpZiAoaGFzSW5kZXhIdG1sKSB7XG4gICAgICAgIGZpbGVzVG9Db3B5LnB1c2goeWFyZ09iai5pbmRleEh0bWwpO1xuICAgIH1cblxuICAgIC8vIEFkZCBhc3NldHMgZm9sZGVyIGZpbGVzIGlmIGl0IGV4aXN0c1xuICAgIGlmIChoYXNBc3NldHMpIHtcbiAgICAgICAgZm9yIGF3YWl0IChjb25zdCBmaWxlIG9mIGdldEFsbEZpbGVzKHlhcmdPYmouYXNzZXRzRm9sZGVyKSkge1xuICAgICAgICAgICAgZmlsZXNUb0NvcHkucHVzaChmaWxlKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIENvcHkgYWxsIGZpbGVzIHdpdGggdGltZXN0YW1wIGNoZWNraW5nXG4gICAgYXN5bmMgZnVuY3Rpb24gZ2V0VGltZXN0YW1wKGZpbGVQYXRoOiBzdHJpbmcpOiBQcm9taXNlPG51bWJlcj4ge1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgY29uc3Qgc3RhdHMgPSBhd2FpdCBmcy5wcm9taXNlcy5zdGF0KGZpbGVQYXRoKTtcbiAgICAgICAgICAgIHJldHVybiBzdGF0cy5tdGltZU1zO1xuICAgICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAgICAgcmV0dXJuIDA7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBsZXQgZmlsZXNDb3BpZWQgPSAwO1xuICAgIGxldCByb290ID0gcGF0aC5yZXNvbHZlKFwiLlwiKTtcbiAgICBmb3IgKGNvbnN0IGZpbGUgb2YgZmlsZXNUb0NvcHkpIHtcbiAgICAgICAgbGV0IHNvdXJjZVBhdGggPSBwYXRoLnJlc29sdmUoZmlsZSk7XG4gICAgICAgIGlmICghZnMuZXhpc3RzU3luYyhzb3VyY2VQYXRoKSkge1xuICAgICAgICAgICAgY29uc29sZS53YXJuKGBXYXJuaW5nOiBGaWxlIG5vdCBmb3VuZDogJHtmaWxlfWApO1xuICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cbiAgICAgICAgbGV0IHJlbGF0aXZlUGF0aCA9IHBhdGgucmVsYXRpdmUocm9vdCwgc291cmNlUGF0aCk7XG4gICAgICAgIGxldCBkZXN0UGF0aCA9IHBhdGguam9pbih5YXJnT2JqLm91dHB1dEZvbGRlciwgcmVsYXRpdmVQYXRoKTtcblxuICAgICAgICBsZXQgc291cmNlVGltZXN0YW1wID0gYXdhaXQgZ2V0VGltZXN0YW1wKHNvdXJjZVBhdGgpO1xuICAgICAgICBsZXQgZGVzdFRpbWVzdGFtcCA9IGF3YWl0IGdldFRpbWVzdGFtcChkZXN0UGF0aCk7XG4gICAgICAgIGlmIChzb3VyY2VUaW1lc3RhbXAgPiBkZXN0VGltZXN0YW1wKSB7XG4gICAgICAgICAgICBhd2FpdCBmcy5wcm9taXNlcy5ta2RpcihwYXRoLmRpcm5hbWUoZGVzdFBhdGgpLCB7IHJlY3Vyc2l2ZTogdHJ1ZSB9KTtcbiAgICAgICAgICAgIGF3YWl0IGZzLnByb21pc2VzLmNwKHNvdXJjZVBhdGgsIGRlc3RQYXRoKTtcbiAgICAgICAgICAgIGZpbGVzQ29waWVkKys7XG4gICAgICAgIH1cbiAgICB9XG4gICAgaWYgKGZpbGVzQ29waWVkID4gMCkge1xuICAgICAgICBjb25zb2xlLmxvZyhgQ29waWVkICR7ZmlsZXNDb3BpZWR9IGNoYW5nZWQgZmlsZXNgKTtcbiAgICB9XG5cbiAgICBsZXQgZHVyYXRpb24gPSBEYXRlLm5vdygpIC0gdGltZTtcbiAgICBjb25zb2xlLmxvZyhgRWxlY3Ryb24gYnVpbGQgY29tcGxldGVkIGluICR7Zm9ybWF0VGltZShkdXJhdGlvbil9YCk7XG59XG5tYWluKCkuY2F0Y2goY29uc29sZS5lcnJvcikuZmluYWxseSgoKSA9PiBwcm9jZXNzLmV4aXQoKSk7XG5cbiJdfQ=//=
|
|
105
|
+
/* _JS_SOURCE_HASH = "c198b9f3055795f50d284069a0f26ef42cc4ff468b064cfe78076e0fefcadd28"; */
|
|
@@ -0,0 +1,146 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule && mod.default) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true , configurable: true});
|
|
6
|
+
const fs_1 = __importDefault(require("fs"));
|
|
7
|
+
const batching_1 = require("socket-function/src/batching");
|
|
8
|
+
const bundleEntryCaller_1 = require("../bundler/bundleEntryCaller");
|
|
9
|
+
const yargs_1 = __importDefault(require("yargs"));
|
|
10
|
+
const format_1 = require("socket-function/src/formatting/format");
|
|
11
|
+
const path_1 = __importDefault(require("path"));
|
|
12
|
+
const fs_2 = require("../misc/fs");
|
|
13
|
+
async function main() {
|
|
14
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l;
|
|
15
|
+
let time = Date.now();
|
|
16
|
+
//todonext
|
|
17
|
+
// We need to build both the extBackground.ts and extContentScript.ts
|
|
18
|
+
// And copy the manifest.json
|
|
19
|
+
// AND copy everything in ./assets which has updated
|
|
20
|
+
let yargObj = (0, yargs_1.default)(process.argv)
|
|
21
|
+
.option("backgroundEntry", { type: "string", default: "./extension/extBackground.ts", desc: `Path to the entry point file` })
|
|
22
|
+
.option("contentEntry", { type: "string", default: "./extension/extContentScript.ts", desc: `Path to the entry point file` })
|
|
23
|
+
.option("manifestPath", { type: "string", default: "./extension/manifest.json", desc: `Path to the manifest.json file` })
|
|
24
|
+
.option("assetsFolder", { type: "string", default: "./assets", desc: `Path to the assets folder` })
|
|
25
|
+
.option("outputFolder", { type: "string", default: "./build-extension", desc: `Output folder` })
|
|
26
|
+
.argv || {};
|
|
27
|
+
// Wait for any async functions to load.
|
|
28
|
+
await (0, batching_1.delay)(0);
|
|
29
|
+
let hasBackgroundEntry = fs_1.default.existsSync(yargObj.backgroundEntry);
|
|
30
|
+
let hasContentEntry = fs_1.default.existsSync(yargObj.contentEntry);
|
|
31
|
+
let hasManifest = fs_1.default.existsSync(yargObj.manifestPath);
|
|
32
|
+
let hasAssets = fs_1.default.existsSync(yargObj.assetsFolder);
|
|
33
|
+
if (!hasBackgroundEntry && !hasContentEntry) {
|
|
34
|
+
throw new Error("No extension entry points found. Please specify at least one entry point with the --backgroundEntry or --contentEntry option. Or, create the default file at ./extBackground.ts or ./extContentScript.ts.");
|
|
35
|
+
}
|
|
36
|
+
if (!hasManifest) {
|
|
37
|
+
throw new Error("No manifest file found. Please specify the manifest file with the --manifestPath option. Or, create the default file at ./manifest.json.");
|
|
38
|
+
}
|
|
39
|
+
await fs_1.default.promises.mkdir("./build-extension", { recursive: true });
|
|
40
|
+
// Build background and content scripts in parallel
|
|
41
|
+
let bundlePromises = [];
|
|
42
|
+
if (hasBackgroundEntry) {
|
|
43
|
+
bundlePromises.push((0, bundleEntryCaller_1.bundleEntryCaller)({
|
|
44
|
+
entryPoint: yargObj.backgroundEntry,
|
|
45
|
+
outputFolder: yargObj.outputFolder,
|
|
46
|
+
}));
|
|
47
|
+
}
|
|
48
|
+
if (hasContentEntry) {
|
|
49
|
+
bundlePromises.push((0, bundleEntryCaller_1.bundleEntryCaller)({
|
|
50
|
+
entryPoint: yargObj.contentEntry,
|
|
51
|
+
outputFolder: yargObj.outputFolder,
|
|
52
|
+
}));
|
|
53
|
+
}
|
|
54
|
+
await Promise.all([
|
|
55
|
+
...bundlePromises,
|
|
56
|
+
fs_1.default.promises.cp(yargObj.manifestPath, path_1.default.join(yargObj.outputFolder, "manifest.json"))
|
|
57
|
+
]);
|
|
58
|
+
// Parse manifest and collect referenced files
|
|
59
|
+
let manifestContent = await fs_1.default.promises.readFile(yargObj.manifestPath, "utf-8");
|
|
60
|
+
let manifest = JSON.parse(manifestContent);
|
|
61
|
+
// Collect all files to copy
|
|
62
|
+
let filesToCopy = [];
|
|
63
|
+
// Helper to add icons (can be string or object of strings)
|
|
64
|
+
function addIconPaths(icon) {
|
|
65
|
+
if (!icon)
|
|
66
|
+
return;
|
|
67
|
+
if (typeof icon === "string") {
|
|
68
|
+
filesToCopy.push(icon);
|
|
69
|
+
}
|
|
70
|
+
else if (typeof icon === "object") {
|
|
71
|
+
for (const iconPath of Object.values(icon)) {
|
|
72
|
+
if (typeof iconPath === "string") {
|
|
73
|
+
filesToCopy.push(iconPath);
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
// Add manifest-referenced files
|
|
79
|
+
if ((_a = manifest.action) === null || _a === void 0 ? void 0 : _a.default_popup)
|
|
80
|
+
filesToCopy.push(manifest.action.default_popup);
|
|
81
|
+
if ((_b = manifest.browser_action) === null || _b === void 0 ? void 0 : _b.default_popup)
|
|
82
|
+
filesToCopy.push(manifest.browser_action.default_popup);
|
|
83
|
+
if ((_c = manifest.page_action) === null || _c === void 0 ? void 0 : _c.default_popup)
|
|
84
|
+
filesToCopy.push(manifest.page_action.default_popup);
|
|
85
|
+
if (manifest.options_page)
|
|
86
|
+
filesToCopy.push(manifest.options_page);
|
|
87
|
+
if ((_d = manifest.options_ui) === null || _d === void 0 ? void 0 : _d.page)
|
|
88
|
+
filesToCopy.push(manifest.options_ui.page);
|
|
89
|
+
if (manifest.devtools_page)
|
|
90
|
+
filesToCopy.push(manifest.devtools_page);
|
|
91
|
+
if ((_e = manifest.sidebar_action) === null || _e === void 0 ? void 0 : _e.default_panel)
|
|
92
|
+
filesToCopy.push(manifest.sidebar_action.default_panel);
|
|
93
|
+
if ((_f = manifest.chrome_url_overrides) === null || _f === void 0 ? void 0 : _f.newtab)
|
|
94
|
+
filesToCopy.push(manifest.chrome_url_overrides.newtab);
|
|
95
|
+
if ((_g = manifest.chrome_url_overrides) === null || _g === void 0 ? void 0 : _g.bookmarks)
|
|
96
|
+
filesToCopy.push(manifest.chrome_url_overrides.bookmarks);
|
|
97
|
+
if ((_h = manifest.chrome_url_overrides) === null || _h === void 0 ? void 0 : _h.history)
|
|
98
|
+
filesToCopy.push(manifest.chrome_url_overrides.history);
|
|
99
|
+
// Add icons
|
|
100
|
+
addIconPaths(manifest.icons);
|
|
101
|
+
addIconPaths((_j = manifest.action) === null || _j === void 0 ? void 0 : _j.default_icon);
|
|
102
|
+
addIconPaths((_k = manifest.browser_action) === null || _k === void 0 ? void 0 : _k.default_icon);
|
|
103
|
+
addIconPaths((_l = manifest.page_action) === null || _l === void 0 ? void 0 : _l.default_icon);
|
|
104
|
+
// Add assets folder files if it exists
|
|
105
|
+
if (hasAssets) {
|
|
106
|
+
for await (const file of (0, fs_2.getAllFiles)(yargObj.assetsFolder)) {
|
|
107
|
+
filesToCopy.push(file);
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
// Copy all files with timestamp checking
|
|
111
|
+
async function getTimestamp(filePath) {
|
|
112
|
+
try {
|
|
113
|
+
const stats = await fs_1.default.promises.stat(filePath);
|
|
114
|
+
return stats.mtimeMs;
|
|
115
|
+
}
|
|
116
|
+
catch (error) {
|
|
117
|
+
return 0;
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
let filesCopied = 0;
|
|
121
|
+
let root = path_1.default.resolve(".");
|
|
122
|
+
for (const file of filesToCopy) {
|
|
123
|
+
let sourcePath = path_1.default.resolve(file);
|
|
124
|
+
if (!fs_1.default.existsSync(sourcePath)) {
|
|
125
|
+
console.warn(`Warning: File not found: ${file}`);
|
|
126
|
+
continue;
|
|
127
|
+
}
|
|
128
|
+
let relativePath = path_1.default.relative(root, sourcePath);
|
|
129
|
+
let destPath = path_1.default.join(yargObj.outputFolder, relativePath);
|
|
130
|
+
let sourceTimestamp = await getTimestamp(sourcePath);
|
|
131
|
+
let destTimestamp = await getTimestamp(destPath);
|
|
132
|
+
if (sourceTimestamp > destTimestamp) {
|
|
133
|
+
await fs_1.default.promises.mkdir(path_1.default.dirname(destPath), { recursive: true });
|
|
134
|
+
await fs_1.default.promises.cp(sourcePath, destPath);
|
|
135
|
+
filesCopied++;
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
if (filesCopied > 0) {
|
|
139
|
+
console.log(`Copied ${filesCopied} changed assets`);
|
|
140
|
+
}
|
|
141
|
+
let duration = Date.now() - time;
|
|
142
|
+
console.log(`Extension build completed in ${(0, format_1.formatTime)(duration)}`);
|
|
143
|
+
}
|
|
144
|
+
main().catch(console.error).finally(() => process.exit());
|
|
145
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXh0ZW5zaW9uQnVpbGQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJleHRlbnNpb25CdWlsZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLDRDQUFvQjtBQUNwQiwyREFBcUQ7QUFDckQsb0VBQWlFO0FBQ2pFLGtEQUEwQjtBQUMxQixrRUFBbUU7QUFDbkUsZ0RBQXdCO0FBQ3hCLG1DQUF5QztBQUV6QyxLQUFLLFVBQVUsSUFBSTs7SUFDZixJQUFJLElBQUksR0FBRyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7SUFDdEIsVUFBVTtJQUNWLHFFQUFxRTtJQUNyRSw2QkFBNkI7SUFDN0Isb0RBQW9EO0lBQ3BELElBQUksT0FBTyxHQUFHLElBQUEsZUFBSyxFQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUM7U0FDNUIsTUFBTSxDQUFDLGlCQUFpQixFQUFFLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsOEJBQThCLEVBQUUsSUFBSSxFQUFFLDhCQUE4QixFQUFFLENBQUM7U0FDNUgsTUFBTSxDQUFDLGNBQWMsRUFBRSxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLGlDQUFpQyxFQUFFLElBQUksRUFBRSw4QkFBOEIsRUFBRSxDQUFDO1NBQzVILE1BQU0sQ0FBQyxjQUFjLEVBQUUsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxJQUFJLEVBQUUsZ0NBQWdDLEVBQUUsQ0FBQztTQUN4SCxNQUFNLENBQUMsY0FBYyxFQUFFLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsVUFBVSxFQUFFLElBQUksRUFBRSwyQkFBMkIsRUFBRSxDQUFDO1NBQ2xHLE1BQU0sQ0FBQyxjQUFjLEVBQUUsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxJQUFJLEVBQUUsZUFBZSxFQUFFLENBQUM7U0FDL0YsSUFBSSxJQUFJLEVBQUUsQ0FDVjtJQUdMLHlDQUF5QztJQUN6QyxNQUFNLElBQUEsZ0JBQUssRUFBQyxDQUFDLENBQUMsQ0FBQztJQUVmLElBQUksa0JBQWtCLEdBQUcsWUFBRSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsZUFBZSxDQUFDLENBQUM7SUFDaEUsSUFBSSxlQUFlLEdBQUcsWUFBRSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDMUQsSUFBSSxXQUFXLEdBQUcsWUFBRSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDdEQsSUFBSSxTQUFTLEdBQUcsWUFBRSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLENBQUM7SUFFcEQsSUFBSSxDQUFDLGtCQUFrQixJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDMUMsTUFBTSxJQUFJLEtBQUssQ0FBQywyTUFBMk0sQ0FBQyxDQUFDO0lBQ2pPLENBQUM7SUFDRCxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDZixNQUFNLElBQUksS0FBSyxDQUFDLDBJQUEwSSxDQUFDLENBQUM7SUFDaEssQ0FBQztJQUVELE1BQU0sWUFBRSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsbUJBQW1CLEVBQUUsRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUVsRSxtREFBbUQ7SUFDbkQsSUFBSSxjQUFjLEdBQW9CLEVBQUUsQ0FBQztJQUN6QyxJQUFJLGtCQUFrQixFQUFFLENBQUM7UUFDckIsY0FBYyxDQUFDLElBQUksQ0FBQyxJQUFBLHFDQUFpQixFQUFDO1lBQ2xDLFVBQVUsRUFBRSxPQUFPLENBQUMsZUFBZTtZQUNuQyxZQUFZLEVBQUUsT0FBTyxDQUFDLFlBQVk7U0FDckMsQ0FBQyxDQUFDLENBQUM7SUFDUixDQUFDO0lBQ0QsSUFBSSxlQUFlLEVBQUUsQ0FBQztRQUNsQixjQUFjLENBQUMsSUFBSSxDQUFDLElBQUEscUNBQWlCLEVBQUM7WUFDbEMsVUFBVSxFQUFFLE9BQU8sQ0FBQyxZQUFZO1lBQ2hDLFlBQVksRUFBRSxPQUFPLENBQUMsWUFBWTtTQUNyQyxDQUFDLENBQUMsQ0FBQztJQUNSLENBQUM7SUFFRCxNQUFNLE9BQU8sQ0FBQyxHQUFHLENBQUM7UUFDZCxHQUFHLGNBQWM7UUFDakIsWUFBRSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLFlBQVksRUFBRSxjQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZLEVBQUUsZUFBZSxDQUFDLENBQUM7S0FDekYsQ0FBQyxDQUFDO0lBRUgsOENBQThDO0lBQzlDLElBQUksZUFBZSxHQUFHLE1BQU0sWUFBRSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLFlBQVksRUFBRSxPQUFPLENBQUMsQ0FBQztJQUNoRixJQUFJLFFBQVEsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLGVBQWUsQ0FBQyxDQUFDO0lBRTNDLDRCQUE0QjtJQUM1QixJQUFJLFdBQVcsR0FBYSxFQUFFLENBQUM7SUFFL0IsMkRBQTJEO0lBQzNELFNBQVMsWUFBWSxDQUFDLElBQWlDO1FBQ25ELElBQUksQ0FBQyxJQUFJO1lBQUUsT0FBTztRQUNsQixJQUFJLE9BQU8sSUFBSSxLQUFLLFFBQVEsRUFBRSxDQUFDO1lBQzNCLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDM0IsQ0FBQzthQUFNLElBQUksT0FBTyxJQUFJLEtBQUssUUFBUSxFQUFFLENBQUM7WUFDbEMsS0FBSyxNQUFNLFFBQVEsSUFBSSxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7Z0JBQ3pDLElBQUksT0FBTyxRQUFRLEtBQUssUUFBUSxFQUFFLENBQUM7b0JBQy9CLFdBQVcsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7Z0JBQy9CLENBQUM7WUFDTCxDQUFDO1FBQ0wsQ0FBQztJQUNMLENBQUM7SUFFRCxnQ0FBZ0M7SUFDaEMsSUFBSSxNQUFBLFFBQVEsQ0FBQyxNQUFNLDBDQUFFLGFBQWE7UUFBRSxXQUFXLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDcEYsSUFBSSxNQUFBLFFBQVEsQ0FBQyxjQUFjLDBDQUFFLGFBQWE7UUFBRSxXQUFXLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxjQUFjLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDcEcsSUFBSSxNQUFBLFFBQVEsQ0FBQyxXQUFXLDBDQUFFLGFBQWE7UUFBRSxXQUFXLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDOUYsSUFBSSxRQUFRLENBQUMsWUFBWTtRQUFFLFdBQVcsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQ25FLElBQUksTUFBQSxRQUFRLENBQUMsVUFBVSwwQ0FBRSxJQUFJO1FBQUUsV0FBVyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzFFLElBQUksUUFBUSxDQUFDLGFBQWE7UUFBRSxXQUFXLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUNyRSxJQUFJLE1BQUEsUUFBUSxDQUFDLGNBQWMsMENBQUUsYUFBYTtRQUFFLFdBQVcsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLGNBQWMsQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUNwRyxJQUFJLE1BQUEsUUFBUSxDQUFDLG9CQUFvQiwwQ0FBRSxNQUFNO1FBQUUsV0FBVyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsb0JBQW9CLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDbEcsSUFBSSxNQUFBLFFBQVEsQ0FBQyxvQkFBb0IsMENBQUUsU0FBUztRQUFFLFdBQVcsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLG9CQUFvQixDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ3hHLElBQUksTUFBQSxRQUFRLENBQUMsb0JBQW9CLDBDQUFFLE9BQU87UUFBRSxXQUFXLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxvQkFBb0IsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUVwRyxZQUFZO0lBQ1osWUFBWSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM3QixZQUFZLENBQUMsTUFBQSxRQUFRLENBQUMsTUFBTSwwQ0FBRSxZQUFZLENBQUMsQ0FBQztJQUM1QyxZQUFZLENBQUMsTUFBQSxRQUFRLENBQUMsY0FBYywwQ0FBRSxZQUFZLENBQUMsQ0FBQztJQUNwRCxZQUFZLENBQUMsTUFBQSxRQUFRLENBQUMsV0FBVywwQ0FBRSxZQUFZLENBQUMsQ0FBQztJQUVqRCx1Q0FBdUM7SUFDdkMsSUFBSSxTQUFTLEVBQUUsQ0FBQztRQUNaLElBQUksS0FBSyxFQUFFLE1BQU0sSUFBSSxJQUFJLElBQUEsZ0JBQVcsRUFBQyxPQUFPLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQztZQUN6RCxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzNCLENBQUM7SUFDTCxDQUFDO0lBRUQseUNBQXlDO0lBQ3pDLEtBQUssVUFBVSxZQUFZLENBQUMsUUFBZ0I7UUFDeEMsSUFBSSxDQUFDO1lBQ0QsTUFBTSxLQUFLLEdBQUcsTUFBTSxZQUFFLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUMvQyxPQUFPLEtBQUssQ0FBQyxPQUFPLENBQUM7UUFDekIsQ0FBQztRQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7WUFDYixPQUFPLENBQUMsQ0FBQztRQUNiLENBQUM7SUFDTCxDQUFDO0lBRUQsSUFBSSxXQUFXLEdBQUcsQ0FBQyxDQUFDO0lBQ3BCLElBQUksSUFBSSxHQUFHLGNBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDN0IsS0FBSyxNQUFNLElBQUksSUFBSSxXQUFXLEVBQUUsQ0FBQztRQUM3QixJQUFJLFVBQVUsR0FBRyxjQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3BDLElBQUksQ0FBQyxZQUFFLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUM7WUFDN0IsT0FBTyxDQUFDLElBQUksQ0FBQyw0QkFBNEIsSUFBSSxFQUFFLENBQUMsQ0FBQztZQUNqRCxTQUFTO1FBQ2IsQ0FBQztRQUNELElBQUksWUFBWSxHQUFHLGNBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBQ25ELElBQUksUUFBUSxHQUFHLGNBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksRUFBRSxZQUFZLENBQUMsQ0FBQztRQUU3RCxJQUFJLGVBQWUsR0FBRyxNQUFNLFlBQVksQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUNyRCxJQUFJLGFBQWEsR0FBRyxNQUFNLFlBQVksQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNqRCxJQUFJLGVBQWUsR0FBRyxhQUFhLEVBQUUsQ0FBQztZQUNsQyxNQUFNLFlBQUUsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLGNBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLEVBQUUsRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztZQUNyRSxNQUFNLFlBQUUsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLFVBQVUsRUFBRSxRQUFRLENBQUMsQ0FBQztZQUMzQyxXQUFXLEVBQUUsQ0FBQztRQUNsQixDQUFDO0lBQ0wsQ0FBQztJQUNELElBQUksV0FBVyxHQUFHLENBQUMsRUFBRSxDQUFDO1FBQ2xCLE9BQU8sQ0FBQyxHQUFHLENBQUMsVUFBVSxXQUFXLGlCQUFpQixDQUFDLENBQUM7SUFDeEQsQ0FBQztJQUVELElBQUksUUFBUSxHQUFHLElBQUksQ0FBQyxHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUM7SUFDakMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxnQ0FBZ0MsSUFBQSxtQkFBVSxFQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQztBQUN4RSxDQUFDO0FBQ0QsSUFBSSxFQUFFLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgZnMgZnJvbSBcImZzXCI7XG5pbXBvcnQgeyBkZWxheSB9IGZyb20gXCJzb2NrZXQtZnVuY3Rpb24vc3JjL2JhdGNoaW5nXCI7XG5pbXBvcnQgeyBidW5kbGVFbnRyeUNhbGxlciB9IGZyb20gXCIuLi9idW5kbGVyL2J1bmRsZUVudHJ5Q2FsbGVyXCI7XG5pbXBvcnQgeWFyZ3MgZnJvbSBcInlhcmdzXCI7XG5pbXBvcnQgeyBmb3JtYXRUaW1lIH0gZnJvbSBcInNvY2tldC1mdW5jdGlvbi9zcmMvZm9ybWF0dGluZy9mb3JtYXRcIjtcbmltcG9ydCBwYXRoIGZyb20gXCJwYXRoXCI7XG5pbXBvcnQgeyBnZXRBbGxGaWxlcyB9IGZyb20gXCIuLi9taXNjL2ZzXCI7XG5cbmFzeW5jIGZ1bmN0aW9uIG1haW4oKSB7XG4gICAgbGV0IHRpbWUgPSBEYXRlLm5vdygpO1xuICAgIC8vdG9kb25leHRcbiAgICAvLyBXZSBuZWVkIHRvIGJ1aWxkIGJvdGggdGhlIGV4dEJhY2tncm91bmQudHMgYW5kIGV4dENvbnRlbnRTY3JpcHQudHNcbiAgICAvLyBBbmQgY29weSB0aGUgbWFuaWZlc3QuanNvblxuICAgIC8vIEFORCBjb3B5IGV2ZXJ5dGhpbmcgaW4gLi9hc3NldHMgd2hpY2ggaGFzIHVwZGF0ZWRcbiAgICBsZXQgeWFyZ09iaiA9IHlhcmdzKHByb2Nlc3MuYXJndilcbiAgICAgICAgLm9wdGlvbihcImJhY2tncm91bmRFbnRyeVwiLCB7IHR5cGU6IFwic3RyaW5nXCIsIGRlZmF1bHQ6IFwiLi9leHRlbnNpb24vZXh0QmFja2dyb3VuZC50c1wiLCBkZXNjOiBgUGF0aCB0byB0aGUgZW50cnkgcG9pbnQgZmlsZWAgfSlcbiAgICAgICAgLm9wdGlvbihcImNvbnRlbnRFbnRyeVwiLCB7IHR5cGU6IFwic3RyaW5nXCIsIGRlZmF1bHQ6IFwiLi9leHRlbnNpb24vZXh0Q29udGVudFNjcmlwdC50c1wiLCBkZXNjOiBgUGF0aCB0byB0aGUgZW50cnkgcG9pbnQgZmlsZWAgfSlcbiAgICAgICAgLm9wdGlvbihcIm1hbmlmZXN0UGF0aFwiLCB7IHR5cGU6IFwic3RyaW5nXCIsIGRlZmF1bHQ6IFwiLi9leHRlbnNpb24vbWFuaWZlc3QuanNvblwiLCBkZXNjOiBgUGF0aCB0byB0aGUgbWFuaWZlc3QuanNvbiBmaWxlYCB9KVxuICAgICAgICAub3B0aW9uKFwiYXNzZXRzRm9sZGVyXCIsIHsgdHlwZTogXCJzdHJpbmdcIiwgZGVmYXVsdDogXCIuL2Fzc2V0c1wiLCBkZXNjOiBgUGF0aCB0byB0aGUgYXNzZXRzIGZvbGRlcmAgfSlcbiAgICAgICAgLm9wdGlvbihcIm91dHB1dEZvbGRlclwiLCB7IHR5cGU6IFwic3RyaW5nXCIsIGRlZmF1bHQ6IFwiLi9idWlsZC1leHRlbnNpb25cIiwgZGVzYzogYE91dHB1dCBmb2xkZXJgIH0pXG4gICAgICAgIC5hcmd2IHx8IHt9XG4gICAgICAgIDtcblxuXG4gICAgLy8gV2FpdCBmb3IgYW55IGFzeW5jIGZ1bmN0aW9ucyB0byBsb2FkLiBcbiAgICBhd2FpdCBkZWxheSgwKTtcblxuICAgIGxldCBoYXNCYWNrZ3JvdW5kRW50cnkgPSBmcy5leGlzdHNTeW5jKHlhcmdPYmouYmFja2dyb3VuZEVudHJ5KTtcbiAgICBsZXQgaGFzQ29udGVudEVudHJ5ID0gZnMuZXhpc3RzU3luYyh5YXJnT2JqLmNvbnRlbnRFbnRyeSk7XG4gICAgbGV0IGhhc01hbmlmZXN0ID0gZnMuZXhpc3RzU3luYyh5YXJnT2JqLm1hbmlmZXN0UGF0aCk7XG4gICAgbGV0IGhhc0Fzc2V0cyA9IGZzLmV4aXN0c1N5bmMoeWFyZ09iai5hc3NldHNGb2xkZXIpO1xuXG4gICAgaWYgKCFoYXNCYWNrZ3JvdW5kRW50cnkgJiYgIWhhc0NvbnRlbnRFbnRyeSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJObyBleHRlbnNpb24gZW50cnkgcG9pbnRzIGZvdW5kLiBQbGVhc2Ugc3BlY2lmeSBhdCBsZWFzdCBvbmUgZW50cnkgcG9pbnQgd2l0aCB0aGUgLS1iYWNrZ3JvdW5kRW50cnkgb3IgLS1jb250ZW50RW50cnkgb3B0aW9uLiBPciwgY3JlYXRlIHRoZSBkZWZhdWx0IGZpbGUgYXQgLi9leHRCYWNrZ3JvdW5kLnRzIG9yIC4vZXh0Q29udGVudFNjcmlwdC50cy5cIik7XG4gICAgfVxuICAgIGlmICghaGFzTWFuaWZlc3QpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiTm8gbWFuaWZlc3QgZmlsZSBmb3VuZC4gUGxlYXNlIHNwZWNpZnkgdGhlIG1hbmlmZXN0IGZpbGUgd2l0aCB0aGUgLS1tYW5pZmVzdFBhdGggb3B0aW9uLiBPciwgY3JlYXRlIHRoZSBkZWZhdWx0IGZpbGUgYXQgLi9tYW5pZmVzdC5qc29uLlwiKTtcbiAgICB9XG5cbiAgICBhd2FpdCBmcy5wcm9taXNlcy5ta2RpcihcIi4vYnVpbGQtZXh0ZW5zaW9uXCIsIHsgcmVjdXJzaXZlOiB0cnVlIH0pO1xuXG4gICAgLy8gQnVpbGQgYmFja2dyb3VuZCBhbmQgY29udGVudCBzY3JpcHRzIGluIHBhcmFsbGVsXG4gICAgbGV0IGJ1bmRsZVByb21pc2VzOiBQcm9taXNlPHZvaWQ+W10gPSBbXTtcbiAgICBpZiAoaGFzQmFja2dyb3VuZEVudHJ5KSB7XG4gICAgICAgIGJ1bmRsZVByb21pc2VzLnB1c2goYnVuZGxlRW50cnlDYWxsZXIoe1xuICAgICAgICAgICAgZW50cnlQb2ludDogeWFyZ09iai5iYWNrZ3JvdW5kRW50cnksXG4gICAgICAgICAgICBvdXRwdXRGb2xkZXI6IHlhcmdPYmoub3V0cHV0Rm9sZGVyLFxuICAgICAgICB9KSk7XG4gICAgfVxuICAgIGlmIChoYXNDb250ZW50RW50cnkpIHtcbiAgICAgICAgYnVuZGxlUHJvbWlzZXMucHVzaChidW5kbGVFbnRyeUNhbGxlcih7XG4gICAgICAgICAgICBlbnRyeVBvaW50OiB5YXJnT2JqLmNvbnRlbnRFbnRyeSxcbiAgICAgICAgICAgIG91dHB1dEZvbGRlcjogeWFyZ09iai5vdXRwdXRGb2xkZXIsXG4gICAgICAgIH0pKTtcbiAgICB9XG5cbiAgICBhd2FpdCBQcm9taXNlLmFsbChbXG4gICAgICAgIC4uLmJ1bmRsZVByb21pc2VzLFxuICAgICAgICBmcy5wcm9taXNlcy5jcCh5YXJnT2JqLm1hbmlmZXN0UGF0aCwgcGF0aC5qb2luKHlhcmdPYmoub3V0cHV0Rm9sZGVyLCBcIm1hbmlmZXN0Lmpzb25cIikpXG4gICAgXSk7XG5cbiAgICAvLyBQYXJzZSBtYW5pZmVzdCBhbmQgY29sbGVjdCByZWZlcmVuY2VkIGZpbGVzXG4gICAgbGV0IG1hbmlmZXN0Q29udGVudCA9IGF3YWl0IGZzLnByb21pc2VzLnJlYWRGaWxlKHlhcmdPYmoubWFuaWZlc3RQYXRoLCBcInV0Zi04XCIpO1xuICAgIGxldCBtYW5pZmVzdCA9IEpTT04ucGFyc2UobWFuaWZlc3RDb250ZW50KTtcblxuICAgIC8vIENvbGxlY3QgYWxsIGZpbGVzIHRvIGNvcHlcbiAgICBsZXQgZmlsZXNUb0NvcHk6IHN0cmluZ1tdID0gW107XG5cbiAgICAvLyBIZWxwZXIgdG8gYWRkIGljb25zIChjYW4gYmUgc3RyaW5nIG9yIG9iamVjdCBvZiBzdHJpbmdzKVxuICAgIGZ1bmN0aW9uIGFkZEljb25QYXRocyhpY29uOiBzdHJpbmcgfCBvYmplY3QgfCB1bmRlZmluZWQpIHtcbiAgICAgICAgaWYgKCFpY29uKSByZXR1cm47XG4gICAgICAgIGlmICh0eXBlb2YgaWNvbiA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgICAgICAgZmlsZXNUb0NvcHkucHVzaChpY29uKTtcbiAgICAgICAgfSBlbHNlIGlmICh0eXBlb2YgaWNvbiA9PT0gXCJvYmplY3RcIikge1xuICAgICAgICAgICAgZm9yIChjb25zdCBpY29uUGF0aCBvZiBPYmplY3QudmFsdWVzKGljb24pKSB7XG4gICAgICAgICAgICAgICAgaWYgKHR5cGVvZiBpY29uUGF0aCA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgICAgICAgICAgICAgICBmaWxlc1RvQ29weS5wdXNoKGljb25QYXRoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBBZGQgbWFuaWZlc3QtcmVmZXJlbmNlZCBmaWxlc1xuICAgIGlmIChtYW5pZmVzdC5hY3Rpb24/LmRlZmF1bHRfcG9wdXApIGZpbGVzVG9Db3B5LnB1c2gobWFuaWZlc3QuYWN0aW9uLmRlZmF1bHRfcG9wdXApO1xuICAgIGlmIChtYW5pZmVzdC5icm93c2VyX2FjdGlvbj8uZGVmYXVsdF9wb3B1cCkgZmlsZXNUb0NvcHkucHVzaChtYW5pZmVzdC5icm93c2VyX2FjdGlvbi5kZWZhdWx0X3BvcHVwKTtcbiAgICBpZiAobWFuaWZlc3QucGFnZV9hY3Rpb24/LmRlZmF1bHRfcG9wdXApIGZpbGVzVG9Db3B5LnB1c2gobWFuaWZlc3QucGFnZV9hY3Rpb24uZGVmYXVsdF9wb3B1cCk7XG4gICAgaWYgKG1hbmlmZXN0Lm9wdGlvbnNfcGFnZSkgZmlsZXNUb0NvcHkucHVzaChtYW5pZmVzdC5vcHRpb25zX3BhZ2UpO1xuICAgIGlmIChtYW5pZmVzdC5vcHRpb25zX3VpPy5wYWdlKSBmaWxlc1RvQ29weS5wdXNoKG1hbmlmZXN0Lm9wdGlvbnNfdWkucGFnZSk7XG4gICAgaWYgKG1hbmlmZXN0LmRldnRvb2xzX3BhZ2UpIGZpbGVzVG9Db3B5LnB1c2gobWFuaWZlc3QuZGV2dG9vbHNfcGFnZSk7XG4gICAgaWYgKG1hbmlmZXN0LnNpZGViYXJfYWN0aW9uPy5kZWZhdWx0X3BhbmVsKSBmaWxlc1RvQ29weS5wdXNoKG1hbmlmZXN0LnNpZGViYXJfYWN0aW9uLmRlZmF1bHRfcGFuZWwpO1xuICAgIGlmIChtYW5pZmVzdC5jaHJvbWVfdXJsX292ZXJyaWRlcz8ubmV3dGFiKSBmaWxlc1RvQ29weS5wdXNoKG1hbmlmZXN0LmNocm9tZV91cmxfb3ZlcnJpZGVzLm5ld3RhYik7XG4gICAgaWYgKG1hbmlmZXN0LmNocm9tZV91cmxfb3ZlcnJpZGVzPy5ib29rbWFya3MpIGZpbGVzVG9Db3B5LnB1c2gobWFuaWZlc3QuY2hyb21lX3VybF9vdmVycmlkZXMuYm9va21hcmtzKTtcbiAgICBpZiAobWFuaWZlc3QuY2hyb21lX3VybF9vdmVycmlkZXM/Lmhpc3RvcnkpIGZpbGVzVG9Db3B5LnB1c2gobWFuaWZlc3QuY2hyb21lX3VybF9vdmVycmlkZXMuaGlzdG9yeSk7XG5cbiAgICAvLyBBZGQgaWNvbnNcbiAgICBhZGRJY29uUGF0aHMobWFuaWZlc3QuaWNvbnMpO1xuICAgIGFkZEljb25QYXRocyhtYW5pZmVzdC5hY3Rpb24/LmRlZmF1bHRfaWNvbik7XG4gICAgYWRkSWNvblBhdGhzKG1hbmlmZXN0LmJyb3dzZXJfYWN0aW9uPy5kZWZhdWx0X2ljb24pO1xuICAgIGFkZEljb25QYXRocyhtYW5pZmVzdC5wYWdlX2FjdGlvbj8uZGVmYXVsdF9pY29uKTtcblxuICAgIC8vIEFkZCBhc3NldHMgZm9sZGVyIGZpbGVzIGlmIGl0IGV4aXN0c1xuICAgIGlmIChoYXNBc3NldHMpIHtcbiAgICAgICAgZm9yIGF3YWl0IChjb25zdCBmaWxlIG9mIGdldEFsbEZpbGVzKHlhcmdPYmouYXNzZXRzRm9sZGVyKSkge1xuICAgICAgICAgICAgZmlsZXNUb0NvcHkucHVzaChmaWxlKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIENvcHkgYWxsIGZpbGVzIHdpdGggdGltZXN0YW1wIGNoZWNraW5nXG4gICAgYXN5bmMgZnVuY3Rpb24gZ2V0VGltZXN0YW1wKGZpbGVQYXRoOiBzdHJpbmcpOiBQcm9taXNlPG51bWJlcj4ge1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgY29uc3Qgc3RhdHMgPSBhd2FpdCBmcy5wcm9taXNlcy5zdGF0KGZpbGVQYXRoKTtcbiAgICAgICAgICAgIHJldHVybiBzdGF0cy5tdGltZU1zO1xuICAgICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAgICAgcmV0dXJuIDA7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBsZXQgZmlsZXNDb3BpZWQgPSAwO1xuICAgIGxldCByb290ID0gcGF0aC5yZXNvbHZlKFwiLlwiKTtcbiAgICBmb3IgKGNvbnN0IGZpbGUgb2YgZmlsZXNUb0NvcHkpIHtcbiAgICAgICAgbGV0IHNvdXJjZVBhdGggPSBwYXRoLnJlc29sdmUoZmlsZSk7XG4gICAgICAgIGlmICghZnMuZXhpc3RzU3luYyhzb3VyY2VQYXRoKSkge1xuICAgICAgICAgICAgY29uc29sZS53YXJuKGBXYXJuaW5nOiBGaWxlIG5vdCBmb3VuZDogJHtmaWxlfWApO1xuICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cbiAgICAgICAgbGV0IHJlbGF0aXZlUGF0aCA9IHBhdGgucmVsYXRpdmUocm9vdCwgc291cmNlUGF0aCk7XG4gICAgICAgIGxldCBkZXN0UGF0aCA9IHBhdGguam9pbih5YXJnT2JqLm91dHB1dEZvbGRlciwgcmVsYXRpdmVQYXRoKTtcblxuICAgICAgICBsZXQgc291cmNlVGltZXN0YW1wID0gYXdhaXQgZ2V0VGltZXN0YW1wKHNvdXJjZVBhdGgpO1xuICAgICAgICBsZXQgZGVzdFRpbWVzdGFtcCA9IGF3YWl0IGdldFRpbWVzdGFtcChkZXN0UGF0aCk7XG4gICAgICAgIGlmIChzb3VyY2VUaW1lc3RhbXAgPiBkZXN0VGltZXN0YW1wKSB7XG4gICAgICAgICAgICBhd2FpdCBmcy5wcm9taXNlcy5ta2RpcihwYXRoLmRpcm5hbWUoZGVzdFBhdGgpLCB7IHJlY3Vyc2l2ZTogdHJ1ZSB9KTtcbiAgICAgICAgICAgIGF3YWl0IGZzLnByb21pc2VzLmNwKHNvdXJjZVBhdGgsIGRlc3RQYXRoKTtcbiAgICAgICAgICAgIGZpbGVzQ29waWVkKys7XG4gICAgICAgIH1cbiAgICB9XG4gICAgaWYgKGZpbGVzQ29waWVkID4gMCkge1xuICAgICAgICBjb25zb2xlLmxvZyhgQ29waWVkICR7ZmlsZXNDb3BpZWR9IGNoYW5nZWQgYXNzZXRzYCk7XG4gICAgfVxuXG4gICAgbGV0IGR1cmF0aW9uID0gRGF0ZS5ub3coKSAtIHRpbWU7XG4gICAgY29uc29sZS5sb2coYEV4dGVuc2lvbiBidWlsZCBjb21wbGV0ZWQgaW4gJHtmb3JtYXRUaW1lKGR1cmF0aW9uKX1gKTtcbn1cbm1haW4oKS5jYXRjaChjb25zb2xlLmVycm9yKS5maW5hbGx5KCgpID0+IHByb2Nlc3MuZXhpdCgpKTsiXX0//=
|
|
146
|
+
/* _JS_SOURCE_HASH = "9a2ad461ccf4b8c8b3ad7052b4a38d002f5b1c97389602f23186edfd1211aba6"; */
|
|
@@ -0,0 +1,74 @@
|
|
|
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
|
+
Object.defineProperty(exports, "__esModule", { value: true , configurable: true});
|
|
26
|
+
const fs = __importStar(require("fs"));
|
|
27
|
+
const path = __importStar(require("path"));
|
|
28
|
+
const FOLDERS_TO_INCLUDE = ["render-utils", "misc"];
|
|
29
|
+
function getAllDtsFiles(dir, fileList = []) {
|
|
30
|
+
const files = fs.readdirSync(dir);
|
|
31
|
+
for (const file of files) {
|
|
32
|
+
const filePath = path.join(dir, file);
|
|
33
|
+
const stat = fs.statSync(filePath);
|
|
34
|
+
if (stat.isDirectory()) {
|
|
35
|
+
getAllDtsFiles(filePath, fileList);
|
|
36
|
+
}
|
|
37
|
+
else if (file.endsWith(".d.ts")) {
|
|
38
|
+
fileList.push(filePath);
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
return fileList;
|
|
42
|
+
}
|
|
43
|
+
function generateIndexDts() {
|
|
44
|
+
const allModules = [];
|
|
45
|
+
for (const folderName of FOLDERS_TO_INCLUDE) {
|
|
46
|
+
const folderPath = path.join(__dirname, "..", folderName);
|
|
47
|
+
if (!fs.existsSync(folderPath)) {
|
|
48
|
+
console.log(`Warning: Folder ${folderName} does not exist, skipping...`);
|
|
49
|
+
continue;
|
|
50
|
+
}
|
|
51
|
+
const dtsFiles = getAllDtsFiles(folderPath);
|
|
52
|
+
const modules = dtsFiles
|
|
53
|
+
.map(filePath => {
|
|
54
|
+
const relativePath = path.relative(folderPath, filePath);
|
|
55
|
+
const withoutExt = relativePath.replace(/\.d\.ts$/, "");
|
|
56
|
+
const modulePath = "sliftutils/" + folderName + "/" + withoutExt.replace(/\\/g, "/");
|
|
57
|
+
const content = fs.readFileSync(filePath, "utf8");
|
|
58
|
+
const indentedContent = content
|
|
59
|
+
.split("\n")
|
|
60
|
+
.map(line => line ? " " + line : line)
|
|
61
|
+
.join("\n");
|
|
62
|
+
return `declare module "${modulePath}" {\n${indentedContent}\n}`;
|
|
63
|
+
});
|
|
64
|
+
allModules.push(...modules);
|
|
65
|
+
}
|
|
66
|
+
const sortedModules = allModules.sort().join("\n\n");
|
|
67
|
+
const outputPath = path.join(__dirname, "..", "index.d.ts");
|
|
68
|
+
const header = `// Auto-generated file. Do not edit manually.\n// Generated by: yarn generate-index-dts\n\n`;
|
|
69
|
+
fs.writeFileSync(outputPath, header + sortedModules + "\n", "utf8");
|
|
70
|
+
console.log(`Generated ${outputPath} with ${allModules.length} module declarations`);
|
|
71
|
+
}
|
|
72
|
+
generateIndexDts();
|
|
73
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJhdGVJbmRleER0cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImdlbmVyYXRlSW5kZXhEdHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLHVDQUF5QjtBQUN6QiwyQ0FBNkI7QUFFN0IsTUFBTSxrQkFBa0IsR0FBRyxDQUFDLGNBQWMsRUFBRSxNQUFNLENBQUMsQ0FBQztBQUVwRCxTQUFTLGNBQWMsQ0FBQyxHQUFXLEVBQUUsV0FBcUIsRUFBRTtJQUN4RCxNQUFNLEtBQUssR0FBRyxFQUFFLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBRWxDLEtBQUssTUFBTSxJQUFJLElBQUksS0FBSyxFQUFFLENBQUM7UUFDdkIsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDdEMsTUFBTSxJQUFJLEdBQUcsRUFBRSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUVuQyxJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUUsRUFBRSxDQUFDO1lBQ3JCLGNBQWMsQ0FBQyxRQUFRLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFDdkMsQ0FBQzthQUFNLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1lBQ2hDLFFBQVEsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDNUIsQ0FBQztJQUNMLENBQUM7SUFFRCxPQUFPLFFBQVEsQ0FBQztBQUNwQixDQUFDO0FBRUQsU0FBUyxnQkFBZ0I7SUFDckIsTUFBTSxVQUFVLEdBQWEsRUFBRSxDQUFDO0lBRWhDLEtBQUssTUFBTSxVQUFVLElBQUksa0JBQWtCLEVBQUUsQ0FBQztRQUMxQyxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxJQUFJLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFFMUQsSUFBSSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQztZQUM3QixPQUFPLENBQUMsR0FBRyxDQUFDLG1CQUFtQixVQUFVLDhCQUE4QixDQUFDLENBQUM7WUFDekUsU0FBUztRQUNiLENBQUM7UUFFRCxNQUFNLFFBQVEsR0FBRyxjQUFjLENBQUMsVUFBVSxDQUFDLENBQUM7UUFFNUMsTUFBTSxPQUFPLEdBQUcsUUFBUTthQUNuQixHQUFHLENBQUMsUUFBUSxDQUFDLEVBQUU7WUFDWixNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLFVBQVUsRUFBRSxRQUFRLENBQUMsQ0FBQztZQUN6RCxNQUFNLFVBQVUsR0FBRyxZQUFZLENBQUMsT0FBTyxDQUFDLFVBQVUsRUFBRSxFQUFFLENBQUMsQ0FBQztZQUN4RCxNQUFNLFVBQVUsR0FBRyxhQUFhLEdBQUcsVUFBVSxHQUFHLEdBQUcsR0FBRyxVQUFVLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxHQUFHLENBQUMsQ0FBQztZQUVyRixNQUFNLE9BQU8sR0FBRyxFQUFFLENBQUMsWUFBWSxDQUFDLFFBQVEsRUFBRSxNQUFNLENBQUMsQ0FBQztZQUNsRCxNQUFNLGVBQWUsR0FBRyxPQUFPO2lCQUMxQixLQUFLLENBQUMsSUFBSSxDQUFDO2lCQUNYLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO2lCQUN4QyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7WUFFaEIsT0FBTyxtQkFBbUIsVUFBVSxRQUFRLGVBQWUsS0FBSyxDQUFDO1FBQ3JFLENBQUMsQ0FBQyxDQUFDO1FBRVAsVUFBVSxDQUFDLElBQUksQ0FBQyxHQUFHLE9BQU8sQ0FBQyxDQUFDO0lBQ2hDLENBQUM7SUFFRCxNQUFNLGFBQWEsR0FBRyxVQUFVLENBQUMsSUFBSSxFQUFFLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3JELE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLElBQUksRUFBRSxZQUFZLENBQUMsQ0FBQztJQUM1RCxNQUFNLE1BQU0sR0FBRyw2RkFBNkYsQ0FBQztJQUU3RyxFQUFFLENBQUMsYUFBYSxDQUFDLFVBQVUsRUFBRSxNQUFNLEdBQUcsYUFBYSxHQUFHLElBQUksRUFBRSxNQUFNLENBQUMsQ0FBQztJQUNwRSxPQUFPLENBQUMsR0FBRyxDQUFDLGFBQWEsVUFBVSxTQUFTLFVBQVUsQ0FBQyxNQUFNLHNCQUFzQixDQUFDLENBQUM7QUFDekYsQ0FBQztBQUVELGdCQUFnQixFQUFFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBmcyBmcm9tIFwiZnNcIjtcbmltcG9ydCAqIGFzIHBhdGggZnJvbSBcInBhdGhcIjtcblxuY29uc3QgRk9MREVSU19UT19JTkNMVURFID0gW1wicmVuZGVyLXV0aWxzXCIsIFwibWlzY1wiXTtcblxuZnVuY3Rpb24gZ2V0QWxsRHRzRmlsZXMoZGlyOiBzdHJpbmcsIGZpbGVMaXN0OiBzdHJpbmdbXSA9IFtdKTogc3RyaW5nW10ge1xuICAgIGNvbnN0IGZpbGVzID0gZnMucmVhZGRpclN5bmMoZGlyKTtcblxuICAgIGZvciAoY29uc3QgZmlsZSBvZiBmaWxlcykge1xuICAgICAgICBjb25zdCBmaWxlUGF0aCA9IHBhdGguam9pbihkaXIsIGZpbGUpO1xuICAgICAgICBjb25zdCBzdGF0ID0gZnMuc3RhdFN5bmMoZmlsZVBhdGgpO1xuXG4gICAgICAgIGlmIChzdGF0LmlzRGlyZWN0b3J5KCkpIHtcbiAgICAgICAgICAgIGdldEFsbER0c0ZpbGVzKGZpbGVQYXRoLCBmaWxlTGlzdCk7XG4gICAgICAgIH0gZWxzZSBpZiAoZmlsZS5lbmRzV2l0aChcIi5kLnRzXCIpKSB7XG4gICAgICAgICAgICBmaWxlTGlzdC5wdXNoKGZpbGVQYXRoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBmaWxlTGlzdDtcbn1cblxuZnVuY3Rpb24gZ2VuZXJhdGVJbmRleER0cygpIHtcbiAgICBjb25zdCBhbGxNb2R1bGVzOiBzdHJpbmdbXSA9IFtdO1xuXG4gICAgZm9yIChjb25zdCBmb2xkZXJOYW1lIG9mIEZPTERFUlNfVE9fSU5DTFVERSkge1xuICAgICAgICBjb25zdCBmb2xkZXJQYXRoID0gcGF0aC5qb2luKF9fZGlybmFtZSwgXCIuLlwiLCBmb2xkZXJOYW1lKTtcblxuICAgICAgICBpZiAoIWZzLmV4aXN0c1N5bmMoZm9sZGVyUGF0aCkpIHtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKGBXYXJuaW5nOiBGb2xkZXIgJHtmb2xkZXJOYW1lfSBkb2VzIG5vdCBleGlzdCwgc2tpcHBpbmcuLi5gKTtcbiAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgZHRzRmlsZXMgPSBnZXRBbGxEdHNGaWxlcyhmb2xkZXJQYXRoKTtcblxuICAgICAgICBjb25zdCBtb2R1bGVzID0gZHRzRmlsZXNcbiAgICAgICAgICAgIC5tYXAoZmlsZVBhdGggPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IHJlbGF0aXZlUGF0aCA9IHBhdGgucmVsYXRpdmUoZm9sZGVyUGF0aCwgZmlsZVBhdGgpO1xuICAgICAgICAgICAgICAgIGNvbnN0IHdpdGhvdXRFeHQgPSByZWxhdGl2ZVBhdGgucmVwbGFjZSgvXFwuZFxcLnRzJC8sIFwiXCIpO1xuICAgICAgICAgICAgICAgIGNvbnN0IG1vZHVsZVBhdGggPSBcInNsaWZ0dXRpbHMvXCIgKyBmb2xkZXJOYW1lICsgXCIvXCIgKyB3aXRob3V0RXh0LnJlcGxhY2UoL1xcXFwvZywgXCIvXCIpO1xuXG4gICAgICAgICAgICAgICAgY29uc3QgY29udGVudCA9IGZzLnJlYWRGaWxlU3luYyhmaWxlUGF0aCwgXCJ1dGY4XCIpO1xuICAgICAgICAgICAgICAgIGNvbnN0IGluZGVudGVkQ29udGVudCA9IGNvbnRlbnRcbiAgICAgICAgICAgICAgICAgICAgLnNwbGl0KFwiXFxuXCIpXG4gICAgICAgICAgICAgICAgICAgIC5tYXAobGluZSA9PiBsaW5lID8gXCIgICAgXCIgKyBsaW5lIDogbGluZSlcbiAgICAgICAgICAgICAgICAgICAgLmpvaW4oXCJcXG5cIik7XG5cbiAgICAgICAgICAgICAgICByZXR1cm4gYGRlY2xhcmUgbW9kdWxlIFwiJHttb2R1bGVQYXRofVwiIHtcXG4ke2luZGVudGVkQ29udGVudH1cXG59YDtcbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgIGFsbE1vZHVsZXMucHVzaCguLi5tb2R1bGVzKTtcbiAgICB9XG5cbiAgICBjb25zdCBzb3J0ZWRNb2R1bGVzID0gYWxsTW9kdWxlcy5zb3J0KCkuam9pbihcIlxcblxcblwiKTtcbiAgICBjb25zdCBvdXRwdXRQYXRoID0gcGF0aC5qb2luKF9fZGlybmFtZSwgXCIuLlwiLCBcImluZGV4LmQudHNcIik7XG4gICAgY29uc3QgaGVhZGVyID0gYC8vIEF1dG8tZ2VuZXJhdGVkIGZpbGUuIERvIG5vdCBlZGl0IG1hbnVhbGx5Llxcbi8vIEdlbmVyYXRlZCBieTogeWFybiBnZW5lcmF0ZS1pbmRleC1kdHNcXG5cXG5gO1xuXG4gICAgZnMud3JpdGVGaWxlU3luYyhvdXRwdXRQYXRoLCBoZWFkZXIgKyBzb3J0ZWRNb2R1bGVzICsgXCJcXG5cIiwgXCJ1dGY4XCIpO1xuICAgIGNvbnNvbGUubG9nKGBHZW5lcmF0ZWQgJHtvdXRwdXRQYXRofSB3aXRoICR7YWxsTW9kdWxlcy5sZW5ndGh9IG1vZHVsZSBkZWNsYXJhdGlvbnNgKTtcbn1cblxuZ2VuZXJhdGVJbmRleER0cygpO1xuXG4iXX0=
|
|
74
|
+
/* _JS_SOURCE_HASH = "7aa0476717e0d99e8ee6eb241bcad9def77971b4a515d5c677dcfe761fb019dc"; */
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true , configurable: true});
|
|
3
|
+
//exports.enableHotReloading = void 0;
|
|
4
|
+
const HotReloadController_1 = require("socket-function/hot/HotReloadController");
|
|
5
|
+
const environment_1 = require("../misc/environment");
|
|
6
|
+
const DEFAULT_WATCH_PORT = 9876;
|
|
7
|
+
async function enableHotReloading(config) {
|
|
8
|
+
if ((0, environment_1.isInChromeExtensionBackground)()) {
|
|
9
|
+
chromeExtensionBackgroundHotReload(config === null || config === void 0 ? void 0 : config.port);
|
|
10
|
+
}
|
|
11
|
+
else if ((0, environment_1.isInChromeExtensionContentScript)()) {
|
|
12
|
+
chromeExtensionContentScriptHotReload();
|
|
13
|
+
}
|
|
14
|
+
else if (typeof window !== "undefined" && typeof window.location && typeof window.location.reload === "function") {
|
|
15
|
+
// For most reloadable environments, just refresh
|
|
16
|
+
watchPortHotReload(config === null || config === void 0 ? void 0 : config.port, () => {
|
|
17
|
+
window.location.reload();
|
|
18
|
+
});
|
|
19
|
+
}
|
|
20
|
+
else {
|
|
21
|
+
(0, HotReloadController_1.watchFilesAndTriggerHotReloading)();
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
exports.enableHotReloading = enableHotReloading;
|
|
25
|
+
function watchPortHotReload(port = DEFAULT_WATCH_PORT, onReload) {
|
|
26
|
+
let reconnectTimer;
|
|
27
|
+
let ws;
|
|
28
|
+
let everConnected = false;
|
|
29
|
+
function connect() {
|
|
30
|
+
try {
|
|
31
|
+
ws = new WebSocket(`ws://localhost:${port}`);
|
|
32
|
+
ws.onopen = () => {
|
|
33
|
+
console.log(`[Hot Reload] Connected to watch server on port ${port}`);
|
|
34
|
+
everConnected = true;
|
|
35
|
+
};
|
|
36
|
+
ws.onmessage = (event) => {
|
|
37
|
+
try {
|
|
38
|
+
let data = JSON.parse(event.data);
|
|
39
|
+
if (data.type === "build-complete" && data.success) {
|
|
40
|
+
console.log("[Hot Reload] Build complete, reloading page...");
|
|
41
|
+
onReload();
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
catch (error) {
|
|
45
|
+
console.error("[Hot Reload] Failed to parse message:", error);
|
|
46
|
+
}
|
|
47
|
+
};
|
|
48
|
+
ws.onerror = (error) => {
|
|
49
|
+
console.warn(`[Hot Reload] WebSocket error. Use the watch script to enable watching.`);
|
|
50
|
+
};
|
|
51
|
+
ws.onclose = () => {
|
|
52
|
+
if (everConnected) {
|
|
53
|
+
console.log("[Hot Reload] Disconnected from watch server, reconnecting in 2s...");
|
|
54
|
+
if (reconnectTimer) {
|
|
55
|
+
clearTimeout(reconnectTimer);
|
|
56
|
+
}
|
|
57
|
+
reconnectTimer = setTimeout(() => {
|
|
58
|
+
connect();
|
|
59
|
+
}, 2000);
|
|
60
|
+
}
|
|
61
|
+
};
|
|
62
|
+
}
|
|
63
|
+
catch (error) {
|
|
64
|
+
console.error("[Hot Reload] Failed to connect:", error);
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
connect();
|
|
68
|
+
}
|
|
69
|
+
function chromeExtensionBackgroundHotReload(port = DEFAULT_WATCH_PORT) {
|
|
70
|
+
chrome.runtime.onConnect.addListener((port) => {
|
|
71
|
+
if (port.name === "hotReload") {
|
|
72
|
+
// Keep the port open so content scripts can detect when we disconnect
|
|
73
|
+
}
|
|
74
|
+
});
|
|
75
|
+
watchPortHotReload(port, () => {
|
|
76
|
+
chrome.runtime.reload();
|
|
77
|
+
});
|
|
78
|
+
}
|
|
79
|
+
function chromeExtensionContentScriptHotReload() {
|
|
80
|
+
let port = chrome.runtime.connect({ name: "hotReload" });
|
|
81
|
+
let startTime = Date.now();
|
|
82
|
+
port.onDisconnect.addListener(() => {
|
|
83
|
+
let timeToFail = Date.now() - startTime;
|
|
84
|
+
if (timeToFail > 10000) {
|
|
85
|
+
console.warn("[Hot Reload] Could not connect to background script. Make sure the background script calls enableHotReloading().");
|
|
86
|
+
return;
|
|
87
|
+
}
|
|
88
|
+
console.log("[Hot Reload] Extension reloaded, refreshing page...");
|
|
89
|
+
window.location.reload();
|
|
90
|
+
});
|
|
91
|
+
}
|
|
92
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaG90UmVsb2FkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiaG90UmVsb2FkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLGlGQUEyRjtBQUMzRixxREFBd0k7QUFFeEksTUFBTSxrQkFBa0IsR0FBRyxJQUFJLENBQUM7QUFFekIsS0FBSyxVQUFVLGtCQUFrQixDQUFDLE1BRXhDO0lBQ0csSUFBSSxJQUFBLDJDQUE2QixHQUFFLEVBQUUsQ0FBQztRQUNsQyxrQ0FBa0MsQ0FBQyxNQUFNLGFBQU4sTUFBTSx1QkFBTixNQUFNLENBQUUsSUFBSSxDQUFDLENBQUM7SUFDckQsQ0FBQztTQUFNLElBQUksSUFBQSw4Q0FBZ0MsR0FBRSxFQUFFLENBQUM7UUFDNUMscUNBQXFDLEVBQUUsQ0FBQztJQUM1QyxDQUFDO1NBQU0sSUFBSSxPQUFPLE1BQU0sS0FBSyxXQUFXLElBQUksT0FBTyxNQUFNLENBQUMsUUFBUSxJQUFJLE9BQU8sTUFBTSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEtBQUssVUFBVSxFQUFFLENBQUM7UUFDakgsaURBQWlEO1FBQ2pELGtCQUFrQixDQUFDLE1BQU0sYUFBTixNQUFNLHVCQUFOLE1BQU0sQ0FBRSxJQUFJLEVBQUUsR0FBRyxFQUFFO1lBQ2xDLE1BQU0sQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDN0IsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO1NBQU0sQ0FBQztRQUNKLElBQUEsc0RBQWdDLEdBQUUsQ0FBQztJQUN2QyxDQUFDO0FBQ0wsQ0FBQztBQWZELGdEQWVDO0FBRUQsU0FBUyxrQkFBa0IsQ0FBQyxJQUFJLEdBQUcsa0JBQWtCLEVBQUUsUUFBb0I7SUFDdkUsSUFBSSxjQUFrQyxDQUFDO0lBQ3ZDLElBQUksRUFBeUIsQ0FBQztJQUU5QixJQUFJLGFBQWEsR0FBRyxLQUFLLENBQUM7SUFFMUIsU0FBUyxPQUFPO1FBQ1osSUFBSSxDQUFDO1lBQ0QsRUFBRSxHQUFHLElBQUksU0FBUyxDQUFDLGtC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LENBQUMsTUFBTSxFQUFFLENBQUM7SUFDN0IsQ0FBQyxDQUFDLENBQUM7QUFDUCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgd2F0Y2hGaWxlc0FuZFRyaWdnZXJIb3RSZWxvYWRpbmcgfSBmcm9tIFwic29ja2V0LWZ1bmN0aW9uL2hvdC9Ib3RSZWxvYWRDb250cm9sbGVyXCI7XG5pbXBvcnQgeyBpc0luQnJvd3NlciwgaXNJbkNocm9tZUV4dGVuc2lvbiwgaXNJbkNocm9tZUV4dGVuc2lvbkJhY2tncm91bmQsIGlzSW5DaHJvbWVFeHRlbnNpb25Db250ZW50U2NyaXB0IH0gZnJvbSBcIi4uL21pc2MvZW52aXJvbm1lbnRcIjtcblxuY29uc3QgREVGQVVMVF9XQVRDSF9QT1JUID0gOTg3NjtcblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGVuYWJsZUhvdFJlbG9hZGluZyhjb25maWc/OiB7XG4gICAgcG9ydD86IG51bWJlcjtcbn0pIHtcbiAgICBpZiAoaXNJbkNocm9tZUV4dGVuc2lvbkJhY2tncm91bmQoKSkge1xuICAgICAgICBjaHJvbWVFeHRlbnNpb25CYWNrZ3JvdW5kSG90UmVsb2FkKGNvbmZpZz8ucG9ydCk7XG4gICAgfSBlbHNlIGlmIChpc0luQ2hyb21lRXh0ZW5zaW9uQ29udGVudFNjcmlwdCgpKSB7XG4gICAgICAgIGNocm9tZUV4dGVuc2lvbkNvbnRlbnRTY3JpcHRIb3RSZWxvYWQoKTtcbiAgICB9IGVsc2UgaWYgKHR5cGVvZiB3aW5kb3cgIT09IFwidW5kZWZpbmVkXCIgJiYgdHlwZW9mIHdpbmRvdy5sb2NhdGlvbiAmJiB0eXBlb2Ygd2luZG93LmxvY2F0aW9uLnJlbG9hZCA9PT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICAgIC8vIEZvciBtb3N0IHJlbG9hZGFibGUgZW52aXJvbm1lbnRzLCBqdXN0IHJlZnJlc2hcbiAgICAgICAgd2F0Y2hQb3J0SG90UmVsb2FkKGNvbmZpZz8ucG9ydCwgKCkgPT4ge1xuICAgICAgICAgICAgd2luZG93LmxvY2F0aW9uLnJlbG9hZCgpO1xuICAgICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgICB3YXRjaEZpbGVzQW5kVHJpZ2dlckhvdFJlbG9hZGluZygpO1xuICAgIH1cbn1cblxuZnVuY3Rpb24gd2F0Y2hQb3J0SG90UmVsb2FkKHBvcnQgPSBERUZBVUxUX1dBVENIX1BPUlQsIG9uUmVsb2FkOiAoKSA9PiB2b2lkKSB7XG4gICAgbGV0IHJlY29ubmVjdFRpbWVyOiBudW1iZXIgfCB1bmRlZmluZWQ7XG4gICAgbGV0IHdzOiBXZWJTb2NrZXQgfCB1bmRlZmluZWQ7XG5cbiAgICBsZXQgZXZlckNvbm5lY3RlZCA9IGZhbHNlO1xuXG4gICAgZnVuY3Rpb24gY29ubmVjdCgpIHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIHdzID0gbmV3IFdlYlNvY2tldChgd3M6Ly9sb2NhbGhvc3Q6JHtwb3J0fWApO1xuXG4gICAgICAgICAgICB3cy5vbm9wZW4gPSAoKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coYFtIb3QgUmVsb2FkXSBDb25uZWN0ZWQgdG8gd2F0Y2ggc2VydmVyIG9uIHBvcnQgJHtwb3J0fWApO1xuICAgICAgICAgICAgICAgIGV2ZXJDb25uZWN0ZWQgPSB0cnVlO1xuICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgd3Mub25tZXNzYWdlID0gKGV2ZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICAgICAgbGV0IGRhdGEgPSBKU09OLnBhcnNlKGV2ZW50LmRhdGEpO1xuICAgICAgICAgICAgICAgICAgICBpZiAoZGF0YS50eXBlID09PSBcImJ1aWxkLWNvbXBsZXRlXCIgJiYgZGF0YS5zdWNjZXNzKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcIltIb3QgUmVsb2FkXSBCdWlsZCBjb21wbGV0ZSwgcmVsb2FkaW5nIHBhZ2UuLi5cIik7XG4gICAgICAgICAgICAgICAgICAgICAgICBvblJlbG9hZCgpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcihcIltIb3QgUmVsb2FkXSBGYWlsZWQgdG8gcGFyc2UgbWVzc2FnZTpcIiwgZXJyb3IpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgIHdzLm9uZXJyb3IgPSAoZXJyb3IpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zb2xlLndhcm4oYFtIb3QgUmVsb2FkXSBXZWJTb2NrZXQgZXJyb3IuIFVzZSB0aGUgd2F0Y2ggc2NyaXB0IHRvIGVuYWJsZSB3YXRjaGluZy5gKTtcbiAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgIHdzLm9uY2xvc2UgPSAoKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKGV2ZXJDb25uZWN0ZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCJbSG90IFJlbG9hZF0gRGlzY29ubmVjdGVkIGZyb20gd2F0Y2ggc2VydmVyLCByZWNvbm5lY3RpbmcgaW4gMnMuLi5cIik7XG4gICAgICAgICAgICAgICAgICAgIGlmIChyZWNvbm5lY3RUaW1lcikge1xuICAgICAgICAgICAgICAgICAgICAgICAgY2xlYXJUaW1lb3V0KHJlY29ubmVjdFRpbWVyKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICByZWNvbm5lY3RUaW1lciA9IHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29ubmVjdCgpO1xuICAgICAgICAgICAgICAgICAgICB9LCAyMDAwKSBhcyBhbnk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfTtcbiAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoXCJbSG90IFJlbG9hZF0gRmFpbGVkIHRvIGNvbm5lY3Q6XCIsIGVycm9yKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGNvbm5lY3QoKTtcbn1cblxuZnVuY3Rpb24gY2hyb21lRXh0ZW5zaW9uQmFja2dyb3VuZEhvdFJlbG9hZChwb3J0ID0gREVGQVVMVF9XQVRDSF9QT1JUKSB7XG4gICAgY2hyb21lLnJ1bnRpbWUub25Db25uZWN0LmFkZExpc3RlbmVyKChwb3J0KSA9PiB7XG4gICAgICAgIGlmIChwb3J0Lm5hbWUgPT09IFwiaG90UmVsb2FkXCIpIHtcbiAgICAgICAgICAgIC8vIEtlZXAgdGhlIHBvcnQgb3BlbiBzbyBjb250ZW50IHNjcmlwdHMgY2FuIGRldGVjdCB3aGVuIHdlIGRpc2Nvbm5lY3RcbiAgICAgICAgfVxuICAgIH0pO1xuXG4gICAgd2F0Y2hQb3J0SG90UmVsb2FkKHBvcnQsICgpID0+IHtcbiAgICAgICAgY2hyb21lLnJ1bnRpbWUucmVsb2FkKCk7XG4gICAgfSk7XG59XG5cbmZ1bmN0aW9uIGNocm9tZUV4dGVuc2lvbkNvbnRlbnRTY3JpcHRIb3RSZWxvYWQoKSB7XG4gICAgbGV0IHBvcnQgPSBjaHJvbWUucnVudGltZS5jb25uZWN0KHsgbmFtZTogXCJob3RSZWxvYWRcIiB9KTtcblxuICAgIGxldCBzdGFydFRpbWUgPSBEYXRlLm5vdygpO1xuXG4gICAgcG9ydC5vbkRpc2Nvbm5lY3QuYWRkTGlzdGVuZXIoKCkgPT4ge1xuICAgICAgICBsZXQgdGltZVRvRmFpbCA9IERhdGUubm93KCkgLSBzdGFydFRpbWU7XG4gICAgICAgIGlmICh0aW1lVG9GYWlsID4gMTAwMDApIHtcbiAgICAgICAgICAgIGNvbnNvbGUud2FybihcIltIb3QgUmVsb2FkXSBDb3VsZCBub3QgY29ubmVjdCB0byBiYWNrZ3JvdW5kIHNjcmlwdC4gTWFrZSBzdXJlIHRoZSBiYWNrZ3JvdW5kIHNjcmlwdCBjYWxscyBlbmFibGVIb3RSZWxvYWRpbmcoKS5cIik7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY29uc29sZS5sb2coXCJbSG90IFJlbG9hZF0gRXh0ZW5zaW9uIHJlbG9hZGVkLCByZWZyZXNoaW5nIHBhZ2UuLi5cIik7XG4gICAgICAgIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKTtcbiAgICB9KTtcbn0iXX0=
|
|
93
|
+
/* _JS_SOURCE_HASH = "f5fb4d27159854e9af81d26046814c288cd00447b65fd189e9db57ee849baaf2"; */
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule && mod.default) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true , configurable: true});
|
|
6
|
+
const fs_1 = __importDefault(require("fs"));
|
|
7
|
+
const batching_1 = require("socket-function/src/batching");
|
|
8
|
+
const bundleEntryCaller_1 = require("../bundler/bundleEntryCaller");
|
|
9
|
+
const yargs_1 = __importDefault(require("yargs"));
|
|
10
|
+
const format_1 = require("socket-function/src/formatting/format");
|
|
11
|
+
async function main() {
|
|
12
|
+
let time = Date.now();
|
|
13
|
+
let yargObj = (0, yargs_1.default)(process.argv)
|
|
14
|
+
.option("entryPoint", { type: "string", default: "./nodejs/server.ts", desc: `Path to the entry point file` })
|
|
15
|
+
.option("outputFolder", { type: "string", default: "./build-nodejs", desc: `Output folder` })
|
|
16
|
+
.argv || {};
|
|
17
|
+
// Wait for any async functions to load.
|
|
18
|
+
await (0, batching_1.delay)(0);
|
|
19
|
+
await fs_1.default.promises.mkdir("./build-nodejs", { recursive: true });
|
|
20
|
+
await (0, bundleEntryCaller_1.bundleEntryCaller)({
|
|
21
|
+
entryPoint: yargObj.entryPoint,
|
|
22
|
+
outputFolder: yargObj.outputFolder,
|
|
23
|
+
});
|
|
24
|
+
let duration = Date.now() - time;
|
|
25
|
+
console.log(`NodeJS build completed in ${(0, format_1.formatTime)(duration)}`);
|
|
26
|
+
}
|
|
27
|
+
main().catch(console.error).finally(() => process.exit());
|
|
28
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9kZUpTQnVpbGQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJub2RlSlNCdWlsZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLDRDQUFvQjtBQUNwQiwyREFBcUQ7QUFDckQsb0VBQWlFO0FBQ2pFLGtEQUEwQjtBQUMxQixrRUFBbUU7QUFFbkUsS0FBSyxVQUFVLElBQUk7SUFDZixJQUFJLElBQUksR0FBRyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7SUFDdEIsSUFBSSxPQUFPLEdBQUcsSUFBQSxlQUFLLEVBQUMsT0FBTyxDQUFDLElBQUksQ0FBQztTQUM1QixNQUFNLENBQUMsWUFBWSxFQUFFLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsSUFBSSxFQUFFLDhCQUE4QixFQUFFLENBQUM7U0FDN0csTUFBTSxDQUFDLGNBQWMsRUFBRSxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLElBQUksRUFBRSxlQUFlLEVBQUUsQ0FBQztTQUM1RixJQUFJLElBQUksRUFBRSxDQUNWO0lBR0wseUNBQXlDO0lBQ3pDLE1BQU0sSUFBQSxnQkFBSyxFQUFDLENBQUMsQ0FBQyxDQUFDO0lBRWYsTUFBTSxZQUFFLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxnQkFBZ0IsRUFBRSxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBRS9ELE1BQU0sSUFBQSxxQ0FBaUIsRUFBQztRQUNwQixVQUFVLEVBQUUsT0FBTyxDQUFDLFVBQVU7UUFDOUIsWUFBWSxFQUFFLE9BQU8sQ0FBQyxZQUFZO0tBQ3JDLENBQUMsQ0FBQztJQUVILElBQUksUUFBUSxHQUFHLElBQUksQ0FBQyxHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUM7SUFDakMsT0FBTyxDQUFDLEdBQUcsQ0FBQyw2QkFBNkIsSUFBQSxtQkFBVSxFQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQztBQUNyRSxDQUFDO0FBQ0QsSUFBSSxFQUFFLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgZnMgZnJvbSBcImZzXCI7XG5pbXBvcnQgeyBkZWxheSB9IGZyb20gXCJzb2NrZXQtZnVuY3Rpb24vc3JjL2JhdGNoaW5nXCI7XG5pbXBvcnQgeyBidW5kbGVFbnRyeUNhbGxlciB9IGZyb20gXCIuLi9idW5kbGVyL2J1bmRsZUVudHJ5Q2FsbGVyXCI7XG5pbXBvcnQgeWFyZ3MgZnJvbSBcInlhcmdzXCI7XG5pbXBvcnQgeyBmb3JtYXRUaW1lIH0gZnJvbSBcInNvY2tldC1mdW5jdGlvbi9zcmMvZm9ybWF0dGluZy9mb3JtYXRcIjtcblxuYXN5bmMgZnVuY3Rpb24gbWFpbigpIHtcbiAgICBsZXQgdGltZSA9IERhdGUubm93KCk7XG4gICAgbGV0IHlhcmdPYmogPSB5YXJncyhwcm9jZXNzLmFyZ3YpXG4gICAgICAgIC5vcHRpb24oXCJlbnRyeVBvaW50XCIsIHsgdHlwZTogXCJzdHJpbmdcIiwgZGVmYXVsdDogXCIuL25vZGVqcy9zZXJ2ZXIudHNcIiwgZGVzYzogYFBhdGggdG8gdGhlIGVudHJ5IHBvaW50IGZpbGVgIH0pXG4gICAgICAgIC5vcHRpb24oXCJvdXRwdXRGb2xkZXJcIiwgeyB0eXBlOiBcInN0cmluZ1wiLCBkZWZhdWx0OiBcIi4vYnVpbGQtbm9kZWpzXCIsIGRlc2M6IGBPdXRwdXQgZm9sZGVyYCB9KVxuICAgICAgICAuYXJndiB8fCB7fVxuICAgICAgICA7XG5cblxuICAgIC8vIFdhaXQgZm9yIGFueSBhc3luYyBmdW5jdGlvbnMgdG8gbG9hZC4gXG4gICAgYXdhaXQgZGVsYXkoMCk7XG5cbiAgICBhd2FpdCBmcy5wcm9taXNlcy5ta2RpcihcIi4vYnVpbGQtbm9kZWpzXCIsIHsgcmVjdXJzaXZlOiB0cnVlIH0pO1xuXG4gICAgYXdhaXQgYnVuZGxlRW50cnlDYWxsZXIoe1xuICAgICAgICBlbnRyeVBvaW50OiB5YXJnT2JqLmVudHJ5UG9pbnQsXG4gICAgICAgIG91dHB1dEZvbGRlcjogeWFyZ09iai5vdXRwdXRGb2xkZXIsXG4gICAgfSk7XG5cbiAgICBsZXQgZHVyYXRpb24gPSBEYXRlLm5vdygpIC0gdGltZTtcbiAgICBjb25zb2xlLmxvZyhgTm9kZUpTIGJ1aWxkIGNvbXBsZXRlZCBpbiAke2Zvcm1hdFRpbWUoZHVyYXRpb24pfWApO1xufVxubWFpbigpLmNhdGNoKGNvbnNvbGUuZXJyb3IpLmZpbmFsbHkoKCkgPT4gcHJvY2Vzcy5leGl0KCkpOyJdfQ=//=
|
|
29
|
+
/* _JS_SOURCE_HASH = "f90af51dd8c3ad3f23ef4090178a331552cc3fc96ab7a839a5ac8972b37229fc"; */
|