@mercuryworkshop/proxy-bootstrap 0.0.1
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/dist/.downloads/controller/package/dist/controller.api.js +44 -0
- package/dist/.downloads/controller/package/dist/controller.api.js.map +1 -0
- package/dist/.downloads/controller/package/dist/controller.inject.js +2 -0
- package/dist/.downloads/controller/package/dist/controller.inject.js.map +1 -0
- package/dist/.downloads/controller/package/dist/controller.sw.js +2 -0
- package/dist/.downloads/controller/package/dist/controller.sw.js.map +1 -0
- package/dist/.downloads/controller/package/dist/types/cache.d.ts +39 -0
- package/dist/.downloads/controller/package/dist/types/index.d.ts +74 -0
- package/dist/.downloads/controller/package/dist/types/inject.d.ts +16 -0
- package/dist/.downloads/controller/package/dist/types/sw.d.ts +2 -0
- package/dist/.downloads/controller/package/dist/types/symbols.d.ts +1 -0
- package/dist/.downloads/controller/package/dist/types/typesEntry.d.ts +5 -0
- package/dist/.downloads/controller/package/package.json +16 -0
- package/dist/.downloads/controller/package/src/cache.ts +473 -0
- package/dist/.downloads/controller/package/src/index.ts +809 -0
- package/dist/.downloads/controller/package/src/inject.ts +370 -0
- package/dist/.downloads/controller/package/src/sw.ts +231 -0
- package/dist/.downloads/controller/package/src/symbols.ts +1 -0
- package/dist/.downloads/controller/package/src/types.d.ts +139 -0
- package/dist/.downloads/controller/package/src/typesEntry.ts +6 -0
- package/dist/.downloads/controller/package/tsconfig.json +24 -0
- package/dist/.downloads/controller/package/tsconfig.types.json +16 -0
- package/dist/.downloads/libcurl-transport/package/LICENSE +661 -0
- package/dist/.downloads/libcurl-transport/package/README.md +52 -0
- package/dist/.downloads/libcurl-transport/package/dist/index.d.ts +25 -0
- package/dist/.downloads/libcurl-transport/package/dist/index.js +6500 -0
- package/dist/.downloads/libcurl-transport/package/dist/index.mjs +6481 -0
- package/dist/.downloads/libcurl-transport/package/package.json +37 -0
- package/dist/.downloads/scramjet/package/dist/167400cb144aab22.wasm +0 -0
- package/dist/.downloads/scramjet/package/dist/2919e49b986edf8c.wasm +0 -0
- package/dist/.downloads/scramjet/package/dist/5aed1d5e48aab205.wasm +0 -0
- package/dist/.downloads/scramjet/package/dist/882d77912a3c8e3a.wasm +0 -0
- package/dist/.downloads/scramjet/package/dist/ac6aa30297a80464.wasm +0 -0
- package/dist/.downloads/scramjet/package/dist/c10a57758af882c8.wasm +0 -0
- package/dist/.downloads/scramjet/package/dist/cfd04aaae6955b67.wasm +0 -0
- package/dist/.downloads/scramjet/package/dist/d06a90fd413b36cf.wasm +0 -0
- package/dist/.downloads/scramjet/package/dist/dda06914899a6c28.wasm +0 -0
- package/dist/.downloads/scramjet/package/dist/scramjet.js +34 -0
- package/dist/.downloads/scramjet/package/dist/scramjet.js.map +1 -0
- package/dist/.downloads/scramjet/package/dist/scramjet.mjs +34 -0
- package/dist/.downloads/scramjet/package/dist/scramjet.mjs.map +1 -0
- package/dist/.downloads/scramjet/package/dist/scramjet.wasm +0 -0
- package/dist/.downloads/scramjet/package/dist/scramjet_bundled.js +34 -0
- package/dist/.downloads/scramjet/package/dist/scramjet_bundled.js.map +1 -0
- package/dist/.downloads/scramjet/package/dist/scramjet_bundled.mjs +34 -0
- package/dist/.downloads/scramjet/package/dist/scramjet_bundled.mjs.map +1 -0
- package/dist/.downloads/scramjet/package/dist/types/Tap.d.ts +32 -0
- package/dist/.downloads/scramjet/package/dist/types/client/client.d.ts +115 -0
- package/dist/.downloads/scramjet/package/dist/types/client/entry.d.ts +5 -0
- package/dist/.downloads/scramjet/package/dist/types/client/events.d.ts +10 -0
- package/dist/.downloads/scramjet/package/dist/types/client/global.d.ts +4 -0
- package/dist/.downloads/scramjet/package/dist/types/client/helpers.d.ts +1 -0
- package/dist/.downloads/scramjet/package/dist/types/client/index.d.ts +7 -0
- package/dist/.downloads/scramjet/package/dist/types/client/location.d.ts +2 -0
- package/dist/.downloads/scramjet/package/dist/types/client/shared/eval.d.ts +3 -0
- package/dist/.downloads/scramjet/package/dist/types/client/shared/sourcemaps.d.ts +19 -0
- package/dist/.downloads/scramjet/package/dist/types/client/shared/unproxy.d.ts +19 -0
- package/dist/.downloads/scramjet/package/dist/types/client/shared/wrap.d.ts +4 -0
- package/dist/.downloads/scramjet/package/dist/types/client/singletonbox.d.ts +16 -0
- package/dist/.downloads/scramjet/package/dist/types/client/unproxy.generated.d.ts +50 -0
- package/dist/.downloads/scramjet/package/dist/types/fetch/body.d.ts +3 -0
- package/dist/.downloads/scramjet/package/dist/types/fetch/fetch.d.ts +7 -0
- package/dist/.downloads/scramjet/package/dist/types/fetch/headers.d.ts +19 -0
- package/dist/.downloads/scramjet/package/dist/types/fetch/index.d.ts +128 -0
- package/dist/.downloads/scramjet/package/dist/types/fetch/parse.d.ts +22 -0
- package/dist/.downloads/scramjet/package/dist/types/fetch/util.d.ts +7 -0
- package/dist/.downloads/scramjet/package/dist/types/index.d.ts +11 -0
- package/dist/.downloads/scramjet/package/dist/types/shared/cookie.d.ts +26 -0
- package/dist/.downloads/scramjet/package/dist/types/shared/headers.d.ts +13 -0
- package/dist/.downloads/scramjet/package/dist/types/shared/htmlRules.d.ts +6 -0
- package/dist/.downloads/scramjet/package/dist/types/shared/index.d.ts +51 -0
- package/dist/.downloads/scramjet/package/dist/types/shared/mime.d.ts +39 -0
- package/dist/.downloads/scramjet/package/dist/types/shared/refresh.d.ts +7 -0
- package/dist/.downloads/scramjet/package/dist/types/shared/rewriters/css.d.ts +4 -0
- package/dist/.downloads/scramjet/package/dist/types/shared/rewriters/html.d.ts +33 -0
- package/dist/.downloads/scramjet/package/dist/types/shared/rewriters/index.d.ts +6 -0
- package/dist/.downloads/scramjet/package/dist/types/shared/rewriters/js.d.ts +11 -0
- package/dist/.downloads/scramjet/package/dist/types/shared/rewriters/url.d.ts +25 -0
- package/dist/.downloads/scramjet/package/dist/types/shared/rewriters/wasm.d.ts +7 -0
- package/dist/.downloads/scramjet/package/dist/types/shared/rewriters/worker.d.ts +3 -0
- package/dist/.downloads/scramjet/package/dist/types/shared/set-cookie-parser.d.ts +20 -0
- package/dist/.downloads/scramjet/package/dist/types/shared/snapshot.d.ts +236 -0
- package/dist/.downloads/scramjet/package/dist/types/shared/sniffEncoding.d.ts +65 -0
- package/dist/.downloads/scramjet/package/dist/types/shared/util.d.ts +2 -0
- package/dist/.downloads/scramjet/package/dist/types/symbols.d.ts +6 -0
- package/dist/.downloads/scramjet/package/dist/types/types.d.ts +68 -0
- package/dist/.downloads/scramjet/package/lib/index.cjs +7 -0
- package/dist/.downloads/scramjet/package/lib/index.d.ts +8 -0
- package/dist/.downloads/scramjet/package/lib/types.d.ts +20 -0
- package/dist/.downloads/scramjet/package/package.json +93 -0
- package/dist/bootstrap-client.js +169 -0
- package/dist/bootstrap-client.js.map +1 -0
- package/dist/bootstrap-server.js +406 -0
- package/dist/bootstrap-server.js.map +1 -0
- package/dist/bootstrap-static.js +476 -0
- package/dist/bootstrap-static.js.map +1 -0
- package/dist/types/client.d.ts +4 -0
- package/dist/types/clientcommon.d.ts +2 -0
- package/dist/types/common.d.ts +30 -0
- package/dist/types/server.d.ts +24 -0
- package/dist/types/static.d.ts +1 -0
- package/package.json +30 -0
|
@@ -0,0 +1,169 @@
|
|
|
1
|
+
var __webpack_modules__ = ({
|
|
2
|
+
"./packages/scramjet/packages/bootstrap/src/clientcommon.ts":
|
|
3
|
+
/*!******************************************************************!*\
|
|
4
|
+
!*** ./packages/scramjet/packages/bootstrap/src/clientcommon.ts ***!
|
|
5
|
+
\******************************************************************/
|
|
6
|
+
(function (__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
|
7
|
+
__webpack_require__.r(__webpack_exports__);
|
|
8
|
+
__webpack_require__.d(__webpack_exports__, {
|
|
9
|
+
loadScript: () => (loadScript),
|
|
10
|
+
registerSw: () => (registerSw)
|
|
11
|
+
});
|
|
12
|
+
async function registerSw(path) {
|
|
13
|
+
const registration = await navigator.serviceWorker.register(path, {
|
|
14
|
+
type: "classic",
|
|
15
|
+
updateViaCache: "none"
|
|
16
|
+
});
|
|
17
|
+
await navigator.serviceWorker.ready;
|
|
18
|
+
if (registration.active) {
|
|
19
|
+
return registration.active;
|
|
20
|
+
}
|
|
21
|
+
if (registration.installing) {
|
|
22
|
+
await new Promise((resolve)=>{
|
|
23
|
+
const sw = registration.installing;
|
|
24
|
+
if (sw.state === "activated") {
|
|
25
|
+
resolve();
|
|
26
|
+
} else {
|
|
27
|
+
sw.addEventListener("statechange", function onChange() {
|
|
28
|
+
if (sw.state === "activated") {
|
|
29
|
+
sw.removeEventListener("statechange", onChange);
|
|
30
|
+
resolve();
|
|
31
|
+
}
|
|
32
|
+
});
|
|
33
|
+
}
|
|
34
|
+
});
|
|
35
|
+
return registration.active;
|
|
36
|
+
}
|
|
37
|
+
if (registration.waiting) {
|
|
38
|
+
await new Promise((resolve)=>{
|
|
39
|
+
navigator.serviceWorker.addEventListener("controllerchange", ()=>{
|
|
40
|
+
resolve();
|
|
41
|
+
}, {
|
|
42
|
+
once: true
|
|
43
|
+
});
|
|
44
|
+
});
|
|
45
|
+
return navigator.serviceWorker.controller;
|
|
46
|
+
}
|
|
47
|
+
throw new Error("No service worker found in registration");
|
|
48
|
+
}
|
|
49
|
+
function loadScript(url) {
|
|
50
|
+
return new Promise((resolve, reject)=>{
|
|
51
|
+
const script = document.createElement("script");
|
|
52
|
+
script.src = url;
|
|
53
|
+
script.onload = ()=>resolve();
|
|
54
|
+
script.onerror = ()=>reject(new Error("Failed to load script " + url));
|
|
55
|
+
document.head.appendChild(script);
|
|
56
|
+
});
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
|
|
60
|
+
}),
|
|
61
|
+
|
|
62
|
+
});
|
|
63
|
+
/************************************************************************/
|
|
64
|
+
// The module cache
|
|
65
|
+
var __webpack_module_cache__ = {};
|
|
66
|
+
|
|
67
|
+
// The require function
|
|
68
|
+
function __webpack_require__(moduleId) {
|
|
69
|
+
|
|
70
|
+
// Check if module is in cache
|
|
71
|
+
var cachedModule = __webpack_module_cache__[moduleId];
|
|
72
|
+
if (cachedModule !== undefined) {
|
|
73
|
+
return cachedModule.exports;
|
|
74
|
+
}
|
|
75
|
+
// Create a new module (and put it into the cache)
|
|
76
|
+
var module = (__webpack_module_cache__[moduleId] = {
|
|
77
|
+
exports: {}
|
|
78
|
+
});
|
|
79
|
+
// Execute the module function
|
|
80
|
+
__webpack_modules__[moduleId](module, module.exports, __webpack_require__);
|
|
81
|
+
|
|
82
|
+
// Return the exports of the module
|
|
83
|
+
return module.exports;
|
|
84
|
+
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
/************************************************************************/
|
|
88
|
+
// webpack/runtime/define_property_getters
|
|
89
|
+
(() => {
|
|
90
|
+
__webpack_require__.d = (exports, definition) => {
|
|
91
|
+
for(var key in definition) {
|
|
92
|
+
if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {
|
|
93
|
+
Object.defineProperty(exports, key, { enumerable: true, get: definition[key] });
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
};
|
|
97
|
+
})();
|
|
98
|
+
// webpack/runtime/has_own_property
|
|
99
|
+
(() => {
|
|
100
|
+
__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))
|
|
101
|
+
})();
|
|
102
|
+
// webpack/runtime/make_namespace_object
|
|
103
|
+
(() => {
|
|
104
|
+
// define __esModule on exports
|
|
105
|
+
__webpack_require__.r = (exports) => {
|
|
106
|
+
if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
|
|
107
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
108
|
+
}
|
|
109
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
110
|
+
};
|
|
111
|
+
})();
|
|
112
|
+
/************************************************************************/
|
|
113
|
+
var __webpack_exports__ = {};
|
|
114
|
+
// This entry needs to be wrapped in an IIFE because it needs to be isolated against other modules in the chunk.
|
|
115
|
+
(() => {
|
|
116
|
+
|
|
117
|
+
/*!************************************************************!*\
|
|
118
|
+
!*** ./packages/scramjet/packages/bootstrap/src/client.ts ***!
|
|
119
|
+
\************************************************************/
|
|
120
|
+
__webpack_require__.r(__webpack_exports__);
|
|
121
|
+
__webpack_require__.d(__webpack_exports__, {
|
|
122
|
+
init: () => (init),
|
|
123
|
+
loadRest: () => (loadRest)
|
|
124
|
+
});
|
|
125
|
+
/* ESM import */var _clientcommon__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./clientcommon */ "./packages/scramjet/packages/bootstrap/src/clientcommon.ts");
|
|
126
|
+
|
|
127
|
+
async function init(cfg) {
|
|
128
|
+
const sw = await (0,_clientcommon__WEBPACK_IMPORTED_MODULE_0__.registerSw)(cfg.swPath);
|
|
129
|
+
return await loadRest(sw, cfg);
|
|
130
|
+
}
|
|
131
|
+
async function loadRest(sw, cfg) {
|
|
132
|
+
await (0,_clientcommon__WEBPACK_IMPORTED_MODULE_0__.loadScript)(cfg.scramjetBundlePath);
|
|
133
|
+
await (0,_clientcommon__WEBPACK_IMPORTED_MODULE_0__.loadScript)(cfg.scramjetControllerApiPath);
|
|
134
|
+
const resolvedWispPath = `${location.protocol === "https:" ? "wss:" : "ws:"}//${location.host}${cfg.wispPath}`;
|
|
135
|
+
let transport;
|
|
136
|
+
if (cfg.transport === "epoxy") {
|
|
137
|
+
await (0,_clientcommon__WEBPACK_IMPORTED_MODULE_0__.loadScript)(cfg.epoxyClientPath);
|
|
138
|
+
const EpoxyCtor = window.EpoxyTransport.EpoxyClient;
|
|
139
|
+
transport = new EpoxyCtor({
|
|
140
|
+
wisp: resolvedWispPath
|
|
141
|
+
});
|
|
142
|
+
} else if (cfg.transport === "libcurl") {
|
|
143
|
+
await (0,_clientcommon__WEBPACK_IMPORTED_MODULE_0__.loadScript)(cfg.libcurlClientPath);
|
|
144
|
+
const LibcurlCtor = window.LibcurlTransport.LibcurlClient;
|
|
145
|
+
transport = new LibcurlCtor({
|
|
146
|
+
wisp: resolvedWispPath
|
|
147
|
+
});
|
|
148
|
+
} else if (cfg.transport === "bare") {
|
|
149
|
+
throw new Error("Bare transport not implemented yet");
|
|
150
|
+
//...
|
|
151
|
+
}
|
|
152
|
+
const { Controller, config } = window.$scramjetController;
|
|
153
|
+
config.injectPath = cfg.scramjetControllerInjectPath;
|
|
154
|
+
config.wasmPath = cfg.scramjetWasmPath;
|
|
155
|
+
config.scramjetPath = cfg.scramjetBundlePath;
|
|
156
|
+
const controller = new Controller({
|
|
157
|
+
serviceworker: sw,
|
|
158
|
+
transport
|
|
159
|
+
});
|
|
160
|
+
return controller;
|
|
161
|
+
}
|
|
162
|
+
|
|
163
|
+
})();
|
|
164
|
+
|
|
165
|
+
var __webpack_exports__init = __webpack_exports__.init;
|
|
166
|
+
var __webpack_exports__loadRest = __webpack_exports__.loadRest;
|
|
167
|
+
export { __webpack_exports__init as init, __webpack_exports__loadRest as loadRest };
|
|
168
|
+
|
|
169
|
+
//# sourceMappingURL=bootstrap-client.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bootstrap-client.js","sources":["webpack://browser.js/./packages/scramjet/packages/bootstrap/src/clientcommon.ts","webpack://browser.js/webpack/runtime/define_property_getters","webpack://browser.js/webpack/runtime/has_own_property","webpack://browser.js/webpack/runtime/make_namespace_object","webpack://browser.js/./packages/scramjet/packages/bootstrap/src/client.ts"],"sourcesContent":["export async function registerSw(path: string): Promise<ServiceWorker> {\n\tconst registration = await navigator.serviceWorker.register(path, {\n\t\ttype: \"classic\",\n\t\tupdateViaCache: \"none\",\n\t});\n\n\tawait navigator.serviceWorker.ready;\n\n\tif (registration.active) {\n\t\treturn registration.active;\n\t}\n\n\tif (registration.installing) {\n\t\tawait new Promise<void>((resolve) => {\n\t\t\tconst sw = registration.installing!;\n\t\t\tif (sw.state === \"activated\") {\n\t\t\t\tresolve();\n\t\t\t} else {\n\t\t\t\tsw.addEventListener(\"statechange\", function onChange() {\n\t\t\t\t\tif (sw.state === \"activated\") {\n\t\t\t\t\t\tsw.removeEventListener(\"statechange\", onChange);\n\t\t\t\t\t\tresolve();\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t});\n\n\t\treturn registration.active!;\n\t}\n\n\tif (registration.waiting) {\n\t\tawait new Promise<void>((resolve) => {\n\t\t\tnavigator.serviceWorker.addEventListener(\n\t\t\t\t\"controllerchange\",\n\t\t\t\t() => {\n\t\t\t\t\tresolve();\n\t\t\t\t},\n\t\t\t\t{ once: true }\n\t\t\t);\n\t\t});\n\n\t\treturn navigator.serviceWorker.controller!;\n\t}\n\n\tthrow new Error(\"No service worker found in registration\");\n}\n\nexport function loadScript(url: string): Promise<void> {\n\treturn new Promise((resolve, reject) => {\n\t\tconst script = document.createElement(\"script\");\n\t\tscript.src = url;\n\t\tscript.onload = () => resolve();\n\t\tscript.onerror = () => reject(new Error(\"Failed to load script \" + url));\n\t\tdocument.head.appendChild(script);\n\t});\n}\n","__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n Object.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n }\n }\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","import { loadScript, registerSw } from \"./clientcommon\";\nimport { BootstrapOptions } from \"./common\";\nimport type { ProxyTransport } from \"@mercuryworkshop/proxy-transports\";\nimport type EpoxyClient from \"@mercuryworkshop/epoxy-transport\";\nimport type LibcurlClient from \"@mercuryworkshop/libcurl-transport\";\nimport * as ControllerApi from \"@mercuryworkshop/scramjet-controller\";\n\nexport async function init(cfg: BootstrapOptions) {\n\tconst sw = await registerSw(cfg.swPath);\n\treturn await loadRest(sw, cfg);\n}\n\nexport async function loadRest(sw: ServiceWorker, cfg: BootstrapOptions) {\n\tawait loadScript(cfg.scramjetBundlePath);\n\tawait loadScript(cfg.scramjetControllerApiPath);\n\n\tconst resolvedWispPath = `${location.protocol === \"https:\" ? \"wss:\" : \"ws:\"}//${location.host}${cfg.wispPath}`;\n\n\tlet transport!: ProxyTransport;\n\tif (cfg.transport === \"epoxy\") {\n\t\tawait loadScript(cfg.epoxyClientPath);\n\t\tconst EpoxyCtor: typeof EpoxyClient = (window as any).EpoxyTransport\n\t\t\t.EpoxyClient;\n\t\ttransport = new EpoxyCtor({ wisp: resolvedWispPath });\n\t} else if (cfg.transport === \"libcurl\") {\n\t\tawait loadScript(cfg.libcurlClientPath);\n\t\tconst LibcurlCtor: typeof LibcurlClient = (window as any).LibcurlTransport\n\t\t\t.LibcurlClient;\n\t\ttransport = new LibcurlCtor({ wisp: resolvedWispPath });\n\t} else if (cfg.transport === \"bare\") {\n\t\tthrow new Error(\"Bare transport not implemented yet\");\n\t\t//...\n\t}\n\tconst { Controller, config } = (window as any)\n\t\t.$scramjetController as typeof ControllerApi;\n\tconfig.injectPath = cfg.scramjetControllerInjectPath;\n\tconfig.wasmPath = cfg.scramjetWasmPath;\n\tconfig.scramjetPath = cfg.scramjetBundlePath;\n\n\tconst controller = new Controller({\n\t\tserviceworker: sw,\n\t\ttransport,\n\t});\n\n\treturn controller;\n}\n"],"names":["registerSw","path","registration","navigator","Promise","resolve","sw","onChange","Error","loadScript","url","reject","script","document","init","cfg","loadRest","resolvedWispPath","location","transport","EpoxyCtor","window","LibcurlCtor","Controller","config","controller"],"mappings":"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"}
|
|
@@ -0,0 +1,406 @@
|
|
|
1
|
+
import * as __WEBPACK_EXTERNAL_MODULE__mercuryworkshop_wisp_js_server_778dd5d9__ from "@mercuryworkshop/wisp-js/server";
|
|
2
|
+
import * as __WEBPACK_EXTERNAL_MODULE_fs_promises_400951f8__ from "fs/promises";
|
|
3
|
+
import * as __WEBPACK_EXTERNAL_MODULE_tar__ from "tar";
|
|
4
|
+
var __webpack_modules__ = ({
|
|
5
|
+
"./packages/scramjet/packages/bootstrap/src/common.ts":
|
|
6
|
+
/*!************************************************************!*\
|
|
7
|
+
!*** ./packages/scramjet/packages/bootstrap/src/common.ts ***!
|
|
8
|
+
\************************************************************/
|
|
9
|
+
(function (__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
|
10
|
+
__webpack_require__.r(__webpack_exports__);
|
|
11
|
+
__webpack_require__.d(__webpack_exports__, {
|
|
12
|
+
EPOXY_TRANSPORT_PACKAGE_NAME: () => (EPOXY_TRANSPORT_PACKAGE_NAME),
|
|
13
|
+
EPOXY_TRANSPORT_PINNED_MAJOR_VERSION: () => (EPOXY_TRANSPORT_PINNED_MAJOR_VERSION),
|
|
14
|
+
LIBCURL_TRANSPORT_PACKAGE_NAME: () => (LIBCURL_TRANSPORT_PACKAGE_NAME),
|
|
15
|
+
LIBCURL_TRANSPORT_PINNED_MAJOR_VERSION: () => (LIBCURL_TRANSPORT_PINNED_MAJOR_VERSION),
|
|
16
|
+
REGISTRY_URL: () => (REGISTRY_URL),
|
|
17
|
+
SCRAMJET_CONTROLLER_PACKAGE_NAME: () => (SCRAMJET_CONTROLLER_PACKAGE_NAME),
|
|
18
|
+
SCRAMJET_CONTROLLER_PINNED_MAJOR_VERSION: () => (SCRAMJET_CONTROLLER_PINNED_MAJOR_VERSION),
|
|
19
|
+
SCRAMJET_PACKAGE_NAME: () => (SCRAMJET_PACKAGE_NAME),
|
|
20
|
+
defaultConfig: () => (defaultConfig)
|
|
21
|
+
});
|
|
22
|
+
const REGISTRY_URL = "https://registry.npmjs.org/";
|
|
23
|
+
const SCRAMJET_PACKAGE_NAME = "@mercuryworkshop/scramjet";
|
|
24
|
+
const SCRAMJET_CONTROLLER_PACKAGE_NAME = "@mercuryworkshop/scramjet-controller";
|
|
25
|
+
const SCRAMJET_CONTROLLER_PINNED_MAJOR_VERSION = "0";
|
|
26
|
+
const EPOXY_TRANSPORT_PACKAGE_NAME = "@mercuryworkshop/epoxy-transport";
|
|
27
|
+
const EPOXY_TRANSPORT_PINNED_MAJOR_VERSION = "3";
|
|
28
|
+
const LIBCURL_TRANSPORT_PACKAGE_NAME = "@mercuryworkshop/libcurl-transport";
|
|
29
|
+
const LIBCURL_TRANSPORT_PINNED_MAJOR_VERSION = "2";
|
|
30
|
+
const defaultConfig = {
|
|
31
|
+
transport: "libcurl",
|
|
32
|
+
swPath: "/sw.js",
|
|
33
|
+
wispPath: "/wisp/",
|
|
34
|
+
epoxyClientPath: "/clients/epoxy-client.js",
|
|
35
|
+
libcurlClientPath: "/clients/libcurl-client.js",
|
|
36
|
+
bareClientPath: "/clients/bare-client.js",
|
|
37
|
+
bootstrapInitPath: "/bootstrap-init.js",
|
|
38
|
+
scramjetControllerApiPath: "/controller/controller.api.js",
|
|
39
|
+
scramjetControllerInjectPath: "/controller/controller.inject.js",
|
|
40
|
+
scramjetControllerSwPath: "/controller/controller.sw.js",
|
|
41
|
+
scramjetBundlePath: "/scram/scramjet.js",
|
|
42
|
+
scramjetWasmPath: "/scram/scramjet.wasm"
|
|
43
|
+
};
|
|
44
|
+
|
|
45
|
+
|
|
46
|
+
}),
|
|
47
|
+
"./packages/scramjet/packages/bootstrap/src/server.ts":
|
|
48
|
+
/*!************************************************************!*\
|
|
49
|
+
!*** ./packages/scramjet/packages/bootstrap/src/server.ts ***!
|
|
50
|
+
\************************************************************/
|
|
51
|
+
(function (module, __webpack_exports__, __webpack_require__) {
|
|
52
|
+
__webpack_require__.a(module, async function (__webpack_handle_async_dependencies__, __webpack_async_result__) { try {
|
|
53
|
+
__webpack_require__.r(__webpack_exports__);
|
|
54
|
+
__webpack_require__.d(__webpack_exports__, {
|
|
55
|
+
bootstrap: () => (bootstrap),
|
|
56
|
+
findLatestVersionOfPackage: () => (findLatestVersionOfPackage),
|
|
57
|
+
unpack: () => (unpack)
|
|
58
|
+
});
|
|
59
|
+
/* ESM import */var _mercuryworkshop_wisp_js_server__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @mercuryworkshop/wisp-js/server */ "@mercuryworkshop/wisp-js/server");
|
|
60
|
+
/* ESM import */var tar__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! tar */ "tar");
|
|
61
|
+
/* ESM import */var fs_promises__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! fs/promises */ "fs/promises");
|
|
62
|
+
/* ESM import */var _common__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./common */ "./packages/scramjet/packages/bootstrap/src/common.ts");
|
|
63
|
+
|
|
64
|
+
|
|
65
|
+
|
|
66
|
+
|
|
67
|
+
let config;
|
|
68
|
+
async function sendFile(res, filePath, contentType) {
|
|
69
|
+
const data = await fs_promises__WEBPACK_IMPORTED_MODULE_2__["default"].readFile(filePath);
|
|
70
|
+
res.writeHead(200, {
|
|
71
|
+
"Content-Type": contentType
|
|
72
|
+
});
|
|
73
|
+
res.end(data);
|
|
74
|
+
}
|
|
75
|
+
const clientdata = await fs_promises__WEBPACK_IMPORTED_MODULE_2__["default"].readFile(/* unsupported import.meta.dirname */ undefined + "/bootstrap-client.js");
|
|
76
|
+
function routeRequest(req, res) {
|
|
77
|
+
if (!req.url) return false;
|
|
78
|
+
if (req.url === config.swPath) {
|
|
79
|
+
res.writeHead(200, {
|
|
80
|
+
"Content-Type": "application/javascript"
|
|
81
|
+
});
|
|
82
|
+
res.end(`importScripts("${config.scramjetControllerSwPath}");
|
|
83
|
+
addEventListener("fetch", (e) => {
|
|
84
|
+
if ($scramjetController.shouldRoute(e)) {
|
|
85
|
+
e.respondWith($scramjetController.route(e));
|
|
86
|
+
}
|
|
87
|
+
});
|
|
88
|
+
`);
|
|
89
|
+
return true;
|
|
90
|
+
} else if (req.url === config.bootstrapInitPath) {
|
|
91
|
+
res.writeHead(200, {
|
|
92
|
+
"Content-Type": "application/javascript"
|
|
93
|
+
});
|
|
94
|
+
res.end(`async function initBootstrap() {
|
|
95
|
+
const { init } = await import("data:text/javascript;base64,${Buffer.from(clientdata).toString("base64")}");
|
|
96
|
+
return init(${JSON.stringify(config)});
|
|
97
|
+
}`);
|
|
98
|
+
return true;
|
|
99
|
+
}
|
|
100
|
+
const pathsToFiles = {
|
|
101
|
+
[config.scramjetControllerApiPath]: config.downloadedFilesDir + "controller/package/dist/controller.api.js",
|
|
102
|
+
[config.scramjetControllerInjectPath]: config.downloadedFilesDir + "controller/package/dist/controller.inject.js",
|
|
103
|
+
[config.scramjetControllerSwPath]: config.downloadedFilesDir + "controller/package/dist/controller.sw.js",
|
|
104
|
+
[config.scramjetBundlePath]: config.downloadedFilesDir + "scramjet/package/dist/scramjet.js",
|
|
105
|
+
[config.scramjetWasmPath]: config.downloadedFilesDir + "scramjet/package/dist/scramjet.wasm",
|
|
106
|
+
[config.libcurlClientPath]: config.downloadedFilesDir + "libcurl-transport/package/dist/index.js"
|
|
107
|
+
};
|
|
108
|
+
if (req.url in pathsToFiles) {
|
|
109
|
+
const filePath = pathsToFiles[req.url];
|
|
110
|
+
const contentType = req.url.endsWith(".wasm") ? "application/wasm" : "application/javascript";
|
|
111
|
+
sendFile(res, filePath, contentType);
|
|
112
|
+
return true;
|
|
113
|
+
}
|
|
114
|
+
return false;
|
|
115
|
+
}
|
|
116
|
+
function routeUpgrade(req, socket, head) {
|
|
117
|
+
if (!req.url) return false;
|
|
118
|
+
if (!req.url.startsWith("/wisp/")) return false;
|
|
119
|
+
_mercuryworkshop_wisp_js_server__WEBPACK_IMPORTED_MODULE_0__.server.routeRequest(req, socket, head);
|
|
120
|
+
return true;
|
|
121
|
+
}
|
|
122
|
+
async function unpack(tarball, name) {
|
|
123
|
+
if (!name) throw new Error("no package name!");
|
|
124
|
+
const response = await fetch(tarball);
|
|
125
|
+
if (!response.ok) {
|
|
126
|
+
throw new Error(`Failed to download tarball: ${response.statusText}`);
|
|
127
|
+
}
|
|
128
|
+
const arrayBuffer = await response.arrayBuffer();
|
|
129
|
+
const buffer = Buffer.from(arrayBuffer);
|
|
130
|
+
await fs_promises__WEBPACK_IMPORTED_MODULE_2__["default"].mkdir(config.downloadedFilesDir, {
|
|
131
|
+
recursive: true
|
|
132
|
+
});
|
|
133
|
+
const file = `${config.downloadedFilesDir}${name}.tgz`;
|
|
134
|
+
await fs_promises__WEBPACK_IMPORTED_MODULE_2__["default"].writeFile(file, buffer);
|
|
135
|
+
const packagedir = `${config.downloadedFilesDir}/${name}`;
|
|
136
|
+
if (await fs_promises__WEBPACK_IMPORTED_MODULE_2__["default"].stat(packagedir).catch(()=>false)) {
|
|
137
|
+
await fs_promises__WEBPACK_IMPORTED_MODULE_2__["default"].rm(packagedir, {
|
|
138
|
+
recursive: true,
|
|
139
|
+
force: true
|
|
140
|
+
});
|
|
141
|
+
}
|
|
142
|
+
await fs_promises__WEBPACK_IMPORTED_MODULE_2__["default"].mkdir(packagedir, {
|
|
143
|
+
recursive: true
|
|
144
|
+
});
|
|
145
|
+
try {
|
|
146
|
+
await (0,tar__WEBPACK_IMPORTED_MODULE_1__.extract)({
|
|
147
|
+
f: file,
|
|
148
|
+
cwd: packagedir
|
|
149
|
+
});
|
|
150
|
+
await fs_promises__WEBPACK_IMPORTED_MODULE_2__["default"].unlink(file);
|
|
151
|
+
} catch (err) {
|
|
152
|
+
console.error("Error extracting tarball:", err);
|
|
153
|
+
await fs_promises__WEBPACK_IMPORTED_MODULE_2__["default"].unlink(file);
|
|
154
|
+
throw err;
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
async function getDownloadedControllerVersion() {
|
|
158
|
+
const packagedir = `${config.downloadedFilesDir}controller`;
|
|
159
|
+
console.log(packagedir);
|
|
160
|
+
try {
|
|
161
|
+
const pkgJson = JSON.parse(await fs_promises__WEBPACK_IMPORTED_MODULE_2__["default"].readFile(`${packagedir}/package/package.json`, "utf-8"));
|
|
162
|
+
return pkgJson.version;
|
|
163
|
+
} catch {
|
|
164
|
+
return null;
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
async function updateScramjet(controllerMeta) {
|
|
168
|
+
const scramjetVersion = controllerMeta.dependencies["@mercuryworkshop/scramjet"];
|
|
169
|
+
console.log(`Fetching scramjet version: ${scramjetVersion}`);
|
|
170
|
+
const scramjetRes = await fetch(`${_common__WEBPACK_IMPORTED_MODULE_3__.REGISTRY_URL}${_common__WEBPACK_IMPORTED_MODULE_3__.SCRAMJET_PACKAGE_NAME}/${scramjetVersion}`);
|
|
171
|
+
const scramjetMeta = await scramjetRes.json();
|
|
172
|
+
await unpack(scramjetMeta.dist.tarball, "scramjet");
|
|
173
|
+
await unpack(controllerMeta.dist.tarball, "controller");
|
|
174
|
+
}
|
|
175
|
+
async function findLatestVersionOfPackage(packageName, majorVersion) {
|
|
176
|
+
const packageRes = await fetch(`${_common__WEBPACK_IMPORTED_MODULE_3__.REGISTRY_URL}${packageName}`);
|
|
177
|
+
const packageMeta = await packageRes.json();
|
|
178
|
+
const versions = Object.keys(packageMeta.versions).filter((v)=>v.startsWith(`${majorVersion}.`));
|
|
179
|
+
const sortedVersions = versions.sort((a, b)=>{
|
|
180
|
+
const aParts = a.split(".").map(Number);
|
|
181
|
+
const bParts = b.split(".").map(Number);
|
|
182
|
+
for(let i = 0; i < Math.max(aParts.length, bParts.length); i++){
|
|
183
|
+
const aVal = aParts[i] || 0;
|
|
184
|
+
const bVal = bParts[i] || 0;
|
|
185
|
+
if (aVal !== bVal) return bVal - aVal;
|
|
186
|
+
}
|
|
187
|
+
return 0;
|
|
188
|
+
});
|
|
189
|
+
if (sortedVersions.length === 0) {
|
|
190
|
+
throw new Error(`No versions found for package ${packageName} with major version ${majorVersion}`);
|
|
191
|
+
}
|
|
192
|
+
const latestVersion = sortedVersions[0];
|
|
193
|
+
const latestRes = await fetch(`${_common__WEBPACK_IMPORTED_MODULE_3__.REGISTRY_URL}${packageName}/${latestVersion}`);
|
|
194
|
+
const latestMeta = await latestRes.json();
|
|
195
|
+
return latestMeta;
|
|
196
|
+
}
|
|
197
|
+
async function bootstrap(cfg = {}) {
|
|
198
|
+
config = {
|
|
199
|
+
..._common__WEBPACK_IMPORTED_MODULE_3__.defaultConfig,
|
|
200
|
+
...cfg,
|
|
201
|
+
downloadedFilesDir: /* unsupported import.meta.dirname */ undefined + "/.downloads/"
|
|
202
|
+
};
|
|
203
|
+
const downloadedControllerVersion = await getDownloadedControllerVersion();
|
|
204
|
+
if (downloadedControllerVersion) {
|
|
205
|
+
console.log(`Found downloaded Scramjet Controller version: ${downloadedControllerVersion}`);
|
|
206
|
+
}
|
|
207
|
+
if (config.transport === "epoxy") {
|
|
208
|
+
const epoxyMeta = await findLatestVersionOfPackage(_common__WEBPACK_IMPORTED_MODULE_3__.EPOXY_TRANSPORT_PACKAGE_NAME, _common__WEBPACK_IMPORTED_MODULE_3__.EPOXY_TRANSPORT_PINNED_MAJOR_VERSION);
|
|
209
|
+
await unpack(epoxyMeta.dist.tarball, "epoxy-transport");
|
|
210
|
+
console.log(`Using Epoxy Transport version: ${epoxyMeta.version}`);
|
|
211
|
+
} else if (config.transport === "libcurl") {
|
|
212
|
+
const libcurlMeta = await findLatestVersionOfPackage(_common__WEBPACK_IMPORTED_MODULE_3__.LIBCURL_TRANSPORT_PACKAGE_NAME, _common__WEBPACK_IMPORTED_MODULE_3__.LIBCURL_TRANSPORT_PINNED_MAJOR_VERSION);
|
|
213
|
+
await unpack(libcurlMeta.dist.tarball, "libcurl-transport");
|
|
214
|
+
console.log(`Using libcurl Transport version: ${libcurlMeta.version}`);
|
|
215
|
+
} else {
|
|
216
|
+
throw new Error(`Unknown transport option: ${config.transport}`);
|
|
217
|
+
}
|
|
218
|
+
const controllerMeta = await findLatestVersionOfPackage(_common__WEBPACK_IMPORTED_MODULE_3__.SCRAMJET_CONTROLLER_PACKAGE_NAME, _common__WEBPACK_IMPORTED_MODULE_3__.SCRAMJET_CONTROLLER_PINNED_MAJOR_VERSION);
|
|
219
|
+
if (downloadedControllerVersion === controllerMeta.version) {
|
|
220
|
+
console.log(`Scramjet Controller is up to date (version: ${downloadedControllerVersion}), skipping download.`);
|
|
221
|
+
} else {
|
|
222
|
+
await updateScramjet(controllerMeta);
|
|
223
|
+
console.log(`Downloaded Scramjet Controller version: ${controllerMeta.version}`);
|
|
224
|
+
}
|
|
225
|
+
return {
|
|
226
|
+
routeRequest,
|
|
227
|
+
routeUpgrade
|
|
228
|
+
};
|
|
229
|
+
}
|
|
230
|
+
|
|
231
|
+
__webpack_async_result__();
|
|
232
|
+
} catch(e) { __webpack_async_result__(e); } }, 1);
|
|
233
|
+
|
|
234
|
+
}),
|
|
235
|
+
"@mercuryworkshop/wisp-js/server":
|
|
236
|
+
/*!**************************************************!*\
|
|
237
|
+
!*** external "@mercuryworkshop/wisp-js/server" ***!
|
|
238
|
+
\**************************************************/
|
|
239
|
+
(function (module) {
|
|
240
|
+
|
|
241
|
+
module.exports = __WEBPACK_EXTERNAL_MODULE__mercuryworkshop_wisp_js_server_778dd5d9__;
|
|
242
|
+
|
|
243
|
+
|
|
244
|
+
}),
|
|
245
|
+
"fs/promises":
|
|
246
|
+
/*!******************************!*\
|
|
247
|
+
!*** external "fs/promises" ***!
|
|
248
|
+
\******************************/
|
|
249
|
+
(function (module) {
|
|
250
|
+
|
|
251
|
+
module.exports = __WEBPACK_EXTERNAL_MODULE_fs_promises_400951f8__;
|
|
252
|
+
|
|
253
|
+
|
|
254
|
+
}),
|
|
255
|
+
"tar":
|
|
256
|
+
/*!**********************!*\
|
|
257
|
+
!*** external "tar" ***!
|
|
258
|
+
\**********************/
|
|
259
|
+
(function (module) {
|
|
260
|
+
|
|
261
|
+
module.exports = __WEBPACK_EXTERNAL_MODULE_tar__;
|
|
262
|
+
|
|
263
|
+
|
|
264
|
+
}),
|
|
265
|
+
|
|
266
|
+
});
|
|
267
|
+
/************************************************************************/
|
|
268
|
+
// The module cache
|
|
269
|
+
var __webpack_module_cache__ = {};
|
|
270
|
+
|
|
271
|
+
// The require function
|
|
272
|
+
function __webpack_require__(moduleId) {
|
|
273
|
+
|
|
274
|
+
// Check if module is in cache
|
|
275
|
+
var cachedModule = __webpack_module_cache__[moduleId];
|
|
276
|
+
if (cachedModule !== undefined) {
|
|
277
|
+
return cachedModule.exports;
|
|
278
|
+
}
|
|
279
|
+
// Create a new module (and put it into the cache)
|
|
280
|
+
var module = (__webpack_module_cache__[moduleId] = {
|
|
281
|
+
exports: {}
|
|
282
|
+
});
|
|
283
|
+
// Execute the module function
|
|
284
|
+
__webpack_modules__[moduleId](module, module.exports, __webpack_require__);
|
|
285
|
+
|
|
286
|
+
// Return the exports of the module
|
|
287
|
+
return module.exports;
|
|
288
|
+
|
|
289
|
+
}
|
|
290
|
+
|
|
291
|
+
/************************************************************************/
|
|
292
|
+
// webpack/runtime/async_module
|
|
293
|
+
(() => {
|
|
294
|
+
var webpackQueues =
|
|
295
|
+
typeof Symbol === "function"
|
|
296
|
+
? Symbol("webpack queues")
|
|
297
|
+
: "__webpack_queues__";
|
|
298
|
+
var webpackExports =
|
|
299
|
+
typeof Symbol === "function"
|
|
300
|
+
? Symbol("webpack exports")
|
|
301
|
+
: "__webpack_exports__";
|
|
302
|
+
var webpackError =
|
|
303
|
+
typeof Symbol === "function" ? Symbol("webpack error") : "__webpack_error__";
|
|
304
|
+
var resolveQueue = (queue) => {
|
|
305
|
+
if (queue && queue.d < 1) {
|
|
306
|
+
queue.d = 1;
|
|
307
|
+
queue.forEach((fn) => (fn.r--));
|
|
308
|
+
queue.forEach((fn) => (fn.r-- ? fn.r++ : fn()));
|
|
309
|
+
}
|
|
310
|
+
}
|
|
311
|
+
var wrapDeps = (deps) => {
|
|
312
|
+
return deps.map((dep) => {
|
|
313
|
+
if (dep !== null && typeof dep === "object") {
|
|
314
|
+
if (dep[webpackQueues]) return dep;
|
|
315
|
+
if (dep.then) {
|
|
316
|
+
var queue = [];
|
|
317
|
+
queue.d = 0;
|
|
318
|
+
dep.then((r) => {
|
|
319
|
+
obj[webpackExports] = r;
|
|
320
|
+
resolveQueue(queue);
|
|
321
|
+
},(e) => {
|
|
322
|
+
obj[webpackError] = e;
|
|
323
|
+
resolveQueue(queue);
|
|
324
|
+
});
|
|
325
|
+
var obj = {};
|
|
326
|
+
obj[webpackQueues] = (fn) => (fn(queue));
|
|
327
|
+
return obj;
|
|
328
|
+
}
|
|
329
|
+
}
|
|
330
|
+
var ret = {};
|
|
331
|
+
ret[webpackQueues] = function() {};
|
|
332
|
+
ret[webpackExports] = dep;
|
|
333
|
+
return ret;
|
|
334
|
+
});
|
|
335
|
+
};
|
|
336
|
+
__webpack_require__.a = (module, body, hasAwait) => {
|
|
337
|
+
var queue;
|
|
338
|
+
hasAwait && ((queue = []).d = -1);
|
|
339
|
+
var depQueues = new Set();
|
|
340
|
+
var exports = module.exports;
|
|
341
|
+
var currentDeps;
|
|
342
|
+
var outerResolve;
|
|
343
|
+
var reject;
|
|
344
|
+
var promise = new Promise((resolve, rej) => {
|
|
345
|
+
reject = rej;
|
|
346
|
+
outerResolve = resolve;
|
|
347
|
+
});
|
|
348
|
+
promise[webpackExports] = exports;
|
|
349
|
+
promise[webpackQueues] = (fn) => { queue && fn(queue), depQueues.forEach(fn), promise["catch"](function() {}); };
|
|
350
|
+
module.exports = promise;
|
|
351
|
+
body((deps) => {
|
|
352
|
+
currentDeps = wrapDeps(deps);
|
|
353
|
+
var fn;
|
|
354
|
+
var getResult = () => {
|
|
355
|
+
return currentDeps.map((d) => {
|
|
356
|
+
if (d[webpackError]) throw d[webpackError];
|
|
357
|
+
return d[webpackExports];
|
|
358
|
+
});
|
|
359
|
+
}
|
|
360
|
+
var promise = new Promise((resolve) => {
|
|
361
|
+
fn = () => (resolve(getResult));
|
|
362
|
+
fn.r = 0;
|
|
363
|
+
var fnQueue = (q) => (q !== queue && !depQueues.has(q) && (depQueues.add(q), q && !q.d && (fn.r++, q.push(fn))));
|
|
364
|
+
currentDeps.map((dep) => (dep[webpackQueues](fnQueue)));
|
|
365
|
+
});
|
|
366
|
+
return fn.r ? promise : getResult();
|
|
367
|
+
}, (err) => ((err ? reject(promise[webpackError] = err) : outerResolve(exports)), resolveQueue(queue)));
|
|
368
|
+
queue && queue.d < 0 && (queue.d = 0);
|
|
369
|
+
};
|
|
370
|
+
})();
|
|
371
|
+
// webpack/runtime/define_property_getters
|
|
372
|
+
(() => {
|
|
373
|
+
__webpack_require__.d = (exports, definition) => {
|
|
374
|
+
for(var key in definition) {
|
|
375
|
+
if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {
|
|
376
|
+
Object.defineProperty(exports, key, { enumerable: true, get: definition[key] });
|
|
377
|
+
}
|
|
378
|
+
}
|
|
379
|
+
};
|
|
380
|
+
})();
|
|
381
|
+
// webpack/runtime/has_own_property
|
|
382
|
+
(() => {
|
|
383
|
+
__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))
|
|
384
|
+
})();
|
|
385
|
+
// webpack/runtime/make_namespace_object
|
|
386
|
+
(() => {
|
|
387
|
+
// define __esModule on exports
|
|
388
|
+
__webpack_require__.r = (exports) => {
|
|
389
|
+
if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
|
|
390
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
391
|
+
}
|
|
392
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
393
|
+
};
|
|
394
|
+
})();
|
|
395
|
+
/************************************************************************/
|
|
396
|
+
// startup
|
|
397
|
+
// Load entry module and return exports
|
|
398
|
+
// This entry module used 'module' so it can't be inlined
|
|
399
|
+
var __webpack_exports__ = __webpack_require__("./packages/scramjet/packages/bootstrap/src/server.ts");
|
|
400
|
+
__webpack_exports__ = await __webpack_exports__;
|
|
401
|
+
var __webpack_exports__bootstrap = __webpack_exports__.bootstrap;
|
|
402
|
+
var __webpack_exports__findLatestVersionOfPackage = __webpack_exports__.findLatestVersionOfPackage;
|
|
403
|
+
var __webpack_exports__unpack = __webpack_exports__.unpack;
|
|
404
|
+
export { __webpack_exports__bootstrap as bootstrap, __webpack_exports__findLatestVersionOfPackage as findLatestVersionOfPackage, __webpack_exports__unpack as unpack };
|
|
405
|
+
|
|
406
|
+
//# sourceMappingURL=bootstrap-server.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bootstrap-server.js","sources":["webpack://browser.js/./packages/scramjet/packages/bootstrap/src/common.ts","webpack://browser.js/./packages/scramjet/packages/bootstrap/src/server.ts","webpack://browser.js/webpack/runtime/async_module","webpack://browser.js/webpack/runtime/define_property_getters","webpack://browser.js/webpack/runtime/has_own_property","webpack://browser.js/webpack/runtime/make_namespace_object"],"sourcesContent":["export const REGISTRY_URL = \"https://registry.npmjs.org/\";\nexport const SCRAMJET_PACKAGE_NAME = \"@mercuryworkshop/scramjet\";\n\nexport const SCRAMJET_CONTROLLER_PACKAGE_NAME =\n\t\"@mercuryworkshop/scramjet-controller\";\nexport const SCRAMJET_CONTROLLER_PINNED_MAJOR_VERSION = \"0\";\n\nexport const EPOXY_TRANSPORT_PACKAGE_NAME = \"@mercuryworkshop/epoxy-transport\";\nexport const EPOXY_TRANSPORT_PINNED_MAJOR_VERSION = \"3\";\n\nexport const LIBCURL_TRANSPORT_PACKAGE_NAME =\n\t\"@mercuryworkshop/libcurl-transport\";\nexport const LIBCURL_TRANSPORT_PINNED_MAJOR_VERSION = \"2\";\n\nexport type TransportOptions = \"epoxy\" | \"libcurl\" | \"bare\";\n\nexport type BootstrapOptions = {\n\ttransport: TransportOptions;\n\tswPath: string;\n\n\twispPath: string;\n\n\tscramjetBundlePath: string;\n\tscramjetWasmPath: string;\n\n\tepoxyClientPath: string;\n\tlibcurlClientPath: string;\n\tbareClientPath: string;\n\tscramjetControllerApiPath: string;\n\tscramjetControllerInjectPath: string;\n\tscramjetControllerSwPath: string;\n\n\tbootstrapApiPath: string;\n\tbootstrapInitPath: string;\n\n\tscramjetVersionPin?: string;\n\tscramjetControllerVersionPin?: string;\n\tepoxyTransportVersionPin?: string;\n\tlibcurlTransportVersionPin?: string;\n\tbareTransportVersionPin?: string;\n};\n\nexport const defaultConfig: Partial<BootstrapOptions> = {\n\ttransport: \"libcurl\",\n\tswPath: \"/sw.js\",\n\twispPath: \"/wisp/\",\n\n\tepoxyClientPath: \"/clients/epoxy-client.js\",\n\tlibcurlClientPath: \"/clients/libcurl-client.js\",\n\tbareClientPath: \"/clients/bare-client.js\",\n\tbootstrapInitPath: \"/bootstrap-init.js\",\n\n\tscramjetControllerApiPath: \"/controller/controller.api.js\",\n\tscramjetControllerInjectPath: \"/controller/controller.inject.js\",\n\tscramjetControllerSwPath: \"/controller/controller.sw.js\",\n\tscramjetBundlePath: \"/scram/scramjet.js\",\n\tscramjetWasmPath: \"/scram/scramjet.wasm\",\n};\n","import { server as wisp } from \"@mercuryworkshop/wisp-js/server\";\nimport http from \"http\";\nimport { extract } from \"tar\";\nimport { Readable } from \"stream\";\nimport fs from \"fs/promises\";\nimport {\n\tdefaultConfig,\n\tEPOXY_TRANSPORT_PACKAGE_NAME,\n\tEPOXY_TRANSPORT_PINNED_MAJOR_VERSION,\n\tLIBCURL_TRANSPORT_PACKAGE_NAME,\n\tLIBCURL_TRANSPORT_PINNED_MAJOR_VERSION,\n\tREGISTRY_URL,\n\tSCRAMJET_CONTROLLER_PACKAGE_NAME,\n\tSCRAMJET_CONTROLLER_PINNED_MAJOR_VERSION,\n\tSCRAMJET_PACKAGE_NAME,\n\tBootstrapOptions,\n} from \"./common\";\n\ntype ServerBootstrapOptions = BootstrapOptions & {\n\tdownloadedFilesDir: string;\n};\n\nlet config: ServerBootstrapOptions;\n\nasync function sendFile(\n\tres: http.ServerResponse,\n\tfilePath: string,\n\tcontentType: string\n) {\n\tconst data = await fs.readFile(filePath);\n\tres.writeHead(200, { \"Content-Type\": contentType });\n\tres.end(data);\n}\nconst clientdata = await fs.readFile(\n\timport.meta.dirname + \"/bootstrap-client.js\"\n);\nfunction routeRequest(\n\treq: http.IncomingMessage,\n\tres: http.ServerResponse\n): boolean {\n\tif (!req.url) return false;\n\n\tif (req.url === config.swPath) {\n\t\tres.writeHead(200, { \"Content-Type\": \"application/javascript\" });\n\t\tres.end(`importScripts(\"${config.scramjetControllerSwPath}\");\naddEventListener(\"fetch\", (e) => {\n\tif ($scramjetController.shouldRoute(e)) {\n\t\te.respondWith($scramjetController.route(e));\n\t}\n});\n`);\n\n\t\treturn true;\n\t} else if (req.url === config.bootstrapInitPath) {\n\t\tres.writeHead(200, { \"Content-Type\": \"application/javascript\" });\n\t\tres.end(`async function initBootstrap() {\n\tconst { init } = await import(\"data:text/javascript;base64,${Buffer.from(clientdata).toString(\"base64\")}\");\n\treturn init(${JSON.stringify(config)});\n}`);\n\n\t\treturn true;\n\t}\n\n\tconst pathsToFiles = {\n\t\t[config.scramjetControllerApiPath]:\n\t\t\tconfig.downloadedFilesDir + \"controller/package/dist/controller.api.js\",\n\t\t[config.scramjetControllerInjectPath]:\n\t\t\tconfig.downloadedFilesDir +\n\t\t\t\"controller/package/dist/controller.inject.js\",\n\t\t[config.scramjetControllerSwPath]:\n\t\t\tconfig.downloadedFilesDir + \"controller/package/dist/controller.sw.js\",\n\t\t[config.scramjetBundlePath]:\n\t\t\tconfig.downloadedFilesDir + \"scramjet/package/dist/scramjet.js\",\n\t\t[config.scramjetWasmPath]:\n\t\t\tconfig.downloadedFilesDir + \"scramjet/package/dist/scramjet.wasm\",\n\n\t\t[config.libcurlClientPath]:\n\t\t\tconfig.downloadedFilesDir + \"libcurl-transport/package/dist/index.js\",\n\t};\n\tif (req.url in pathsToFiles) {\n\t\tconst filePath = pathsToFiles[req.url as keyof typeof pathsToFiles];\n\t\tconst contentType = req.url.endsWith(\".wasm\")\n\t\t\t? \"application/wasm\"\n\t\t\t: \"application/javascript\";\n\t\tsendFile(res, filePath, contentType);\n\t\treturn true;\n\t}\n\n\treturn false;\n}\n\nfunction routeUpgrade(\n\treq: http.IncomingMessage,\n\tsocket: any,\n\thead: Buffer\n): boolean {\n\tif (!req.url) return false;\n\tif (!req.url.startsWith(\"/wisp/\")) return false;\n\n\twisp.routeRequest(req, socket, head);\n\treturn true;\n}\n\nexport async function unpack(tarball: string, name: string) {\n\tif (!name) throw new Error(\"no package name!\");\n\tconst response = await fetch(tarball);\n\tif (!response.ok) {\n\t\tthrow new Error(`Failed to download tarball: ${response.statusText}`);\n\t}\n\n\tconst arrayBuffer = await response.arrayBuffer();\n\tconst buffer = Buffer.from(arrayBuffer);\n\n\tawait fs.mkdir(config.downloadedFilesDir, { recursive: true });\n\tconst file = `${config.downloadedFilesDir}${name}.tgz`;\n\tawait fs.writeFile(file, buffer);\n\n\tconst packagedir = `${config.downloadedFilesDir}/${name}`;\n\n\tif (await fs.stat(packagedir).catch(() => false)) {\n\t\tawait fs.rm(packagedir, { recursive: true, force: true });\n\t}\n\tawait fs.mkdir(packagedir, { recursive: true });\n\n\ttry {\n\t\tawait extract({\n\t\t\tf: file,\n\t\t\tcwd: packagedir,\n\t\t});\n\t\tawait fs.unlink(file);\n\t} catch (err) {\n\t\tconsole.error(\"Error extracting tarball:\", err);\n\t\tawait fs.unlink(file);\n\t\tthrow err;\n\t}\n}\n\nasync function getDownloadedControllerVersion(): Promise<string | null> {\n\tconst packagedir = `${config.downloadedFilesDir}controller`;\n\tconsole.log(packagedir);\n\ttry {\n\t\tconst pkgJson = JSON.parse(\n\t\t\t(await fs.readFile(\n\t\t\t\t`${packagedir}/package/package.json`,\n\t\t\t\t\"utf-8\"\n\t\t\t)) as unknown as string\n\t\t);\n\t\treturn pkgJson.version;\n\t} catch {\n\t\treturn null;\n\t}\n}\n\nasync function updateScramjet(controllerMeta: any) {\n\tconst scramjetVersion =\n\t\tcontrollerMeta.dependencies[\"@mercuryworkshop/scramjet\"];\n\n\tconsole.log(`Fetching scramjet version: ${scramjetVersion}`);\n\tconst scramjetRes = await fetch(\n\t\t`${REGISTRY_URL}${SCRAMJET_PACKAGE_NAME}/${scramjetVersion}`\n\t);\n\tconst scramjetMeta = await scramjetRes.json();\n\n\tawait unpack(scramjetMeta.dist.tarball, \"scramjet\");\n\tawait unpack(controllerMeta.dist.tarball, \"controller\");\n}\n\nexport async function findLatestVersionOfPackage(\n\tpackageName: string,\n\tmajorVersion: string\n): Promise<NodePackageMeta> {\n\tconst packageRes = await fetch(`${REGISTRY_URL}${packageName}`);\n\tconst packageMeta = await packageRes.json();\n\tconst versions = Object.keys(packageMeta.versions).filter((v) =>\n\t\tv.startsWith(`${majorVersion}.`)\n\t);\n\tconst sortedVersions = versions.sort((a, b) => {\n\t\tconst aParts = a.split(\".\").map(Number);\n\t\tconst bParts = b.split(\".\").map(Number);\n\t\tfor (let i = 0; i < Math.max(aParts.length, bParts.length); i++) {\n\t\t\tconst aVal = aParts[i] || 0;\n\t\t\tconst bVal = bParts[i] || 0;\n\t\t\tif (aVal !== bVal) return bVal - aVal;\n\t\t}\n\t\treturn 0;\n\t});\n\tif (sortedVersions.length === 0) {\n\t\tthrow new Error(\n\t\t\t`No versions found for package ${packageName} with major version ${majorVersion}`\n\t\t);\n\t}\n\tconst latestVersion = sortedVersions[0];\n\n\tconst latestRes = await fetch(\n\t\t`${REGISTRY_URL}${packageName}/${latestVersion}`\n\t);\n\tconst latestMeta = await latestRes.json();\n\treturn latestMeta;\n}\n\ntype NodePackageMeta = {\n\tname: string;\n\tversion: string;\n\tdist: {\n\t\ttarball: string;\n\t};\n\tdependencies: { [key: string]: string };\n};\n\nexport async function bootstrap(\n\tcfg: Partial<ServerBootstrapOptions> = {}\n): Promise<{\n\trouteRequest: typeof routeRequest;\n\trouteUpgrade: typeof routeUpgrade;\n}> {\n\tconfig = {\n\t\t...defaultConfig,\n\t\t...cfg,\n\t\tdownloadedFilesDir: import.meta.dirname + \"/.downloads/\",\n\t} as ServerBootstrapOptions;\n\n\tconst downloadedControllerVersion = await getDownloadedControllerVersion();\n\tif (downloadedControllerVersion) {\n\t\tconsole.log(\n\t\t\t`Found downloaded Scramjet Controller version: ${downloadedControllerVersion}`\n\t\t);\n\t}\n\n\tif (config.transport === \"epoxy\") {\n\t\tconst epoxyMeta = await findLatestVersionOfPackage(\n\t\t\tEPOXY_TRANSPORT_PACKAGE_NAME,\n\t\t\tEPOXY_TRANSPORT_PINNED_MAJOR_VERSION\n\t\t);\n\t\tawait unpack(epoxyMeta.dist.tarball, \"epoxy-transport\");\n\t\tconsole.log(`Using Epoxy Transport version: ${epoxyMeta.version}`);\n\t} else if (config.transport === \"libcurl\") {\n\t\tconst libcurlMeta = await findLatestVersionOfPackage(\n\t\t\tLIBCURL_TRANSPORT_PACKAGE_NAME,\n\t\t\tLIBCURL_TRANSPORT_PINNED_MAJOR_VERSION\n\t\t);\n\t\tawait unpack(libcurlMeta.dist.tarball, \"libcurl-transport\");\n\t\tconsole.log(`Using libcurl Transport version: ${libcurlMeta.version}`);\n\t} else {\n\t\tthrow new Error(`Unknown transport option: ${config.transport}`);\n\t}\n\n\tconst controllerMeta = await findLatestVersionOfPackage(\n\t\tSCRAMJET_CONTROLLER_PACKAGE_NAME,\n\t\tSCRAMJET_CONTROLLER_PINNED_MAJOR_VERSION\n\t);\n\n\tif (downloadedControllerVersion === controllerMeta.version) {\n\t\tconsole.log(\n\t\t\t`Scramjet Controller is up to date (version: ${downloadedControllerVersion}), skipping download.`\n\t\t);\n\t} else {\n\t\tawait updateScramjet(controllerMeta);\n\t\tconsole.log(\n\t\t\t`Downloaded Scramjet Controller version: ${controllerMeta.version}`\n\t\t);\n\t}\n\n\treturn {\n\t\trouteRequest,\n\t\trouteUpgrade,\n\t};\n}\n","var webpackQueues =\n\ttypeof Symbol === \"function\"\n\t\t? Symbol(\"webpack queues\")\n\t\t: \"__webpack_queues__\";\nvar webpackExports =\n\ttypeof Symbol === \"function\"\n\t\t? Symbol(\"webpack exports\")\n\t\t: \"__webpack_exports__\";\nvar webpackError =\n\ttypeof Symbol === \"function\" ? Symbol(\"webpack error\") : \"__webpack_error__\";\nvar resolveQueue = (queue) => {\n if (queue && queue.d < 1) {\n queue.d = 1;\n queue.forEach((fn) => (fn.r--));\n\t\tqueue.forEach((fn) => (fn.r-- ? fn.r++ : fn()));\n\t}\n}\nvar wrapDeps = (deps) => {\n\treturn deps.map((dep) => {\n\t\tif (dep !== null && typeof dep === \"object\") {\n\t\t\tif (dep[webpackQueues]) return dep;\n\t\t\tif (dep.then) {\n\t\t\t\tvar queue = [];\n\t\t\t\tqueue.d = 0;\n\t\t\t\tdep.then((r) => {\n\t\t\t\t\tobj[webpackExports] = r;\n\t\t\t\t\tresolveQueue(queue);\n\t\t\t\t},(e) => {\n\t\t\t\t\tobj[webpackError] = e;\n\t\t\t\t\tresolveQueue(queue);\n\t\t\t\t});\n\t\t\t\tvar obj = {};\n\t\t\t\tobj[webpackQueues] = (fn) => (fn(queue));\n\t\t\t\treturn obj;\n\t\t\t}\n\t\t}\n\t\tvar ret = {};\n\t\tret[webpackQueues] = function() {};\n\t\tret[webpackExports] = dep;\n\t\treturn ret;\n\t});\n};\n__webpack_require__.a = (module, body, hasAwait) => {\n\tvar queue;\n\thasAwait && ((queue = []).d = -1);\n\tvar depQueues = new Set();\n\tvar exports = module.exports;\n\tvar currentDeps;\n\tvar outerResolve;\n\tvar reject;\n\tvar promise = new Promise((resolve, rej) => {\n\t\treject = rej;\n\t\touterResolve = resolve;\n\t});\n\tpromise[webpackExports] = exports;\n\tpromise[webpackQueues] = (fn) => { queue && fn(queue), depQueues.forEach(fn), promise[\"catch\"](function() {}); };\n\tmodule.exports = promise;\n\tbody((deps) => {\n\t\tcurrentDeps = wrapDeps(deps);\n\t\tvar fn;\n\t\tvar getResult = () => {\n\t\t\treturn currentDeps.map((d) => {\n\t\t\t\tif (d[webpackError]) throw d[webpackError];\n\t\t\t\treturn d[webpackExports];\n\t\t\t});\n\t\t}\n\t\tvar promise = new Promise((resolve) => {\n\t\t\tfn = () => (resolve(getResult));\n\t\t\tfn.r = 0;\n\t\t\tvar fnQueue = (q) => (q !== queue && !depQueues.has(q) && (depQueues.add(q), q && !q.d && (fn.r++, q.push(fn))));\n\t\t\tcurrentDeps.map((dep) => (dep[webpackQueues](fnQueue)));\n\t\t});\n\t\treturn fn.r ? promise : getResult();\n\t}, (err) => ((err ? reject(promise[webpackError] = err) : outerResolve(exports)), resolveQueue(queue)));\n\tqueue && queue.d < 0 && (queue.d = 0);\n};","__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n Object.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n }\n }\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};"],"names":["REGISTRY_URL","SCRAMJET_PACKAGE_NAME","SCRAMJET_CONTROLLER_PACKAGE_NAME","SCRAMJET_CONTROLLER_PINNED_MAJOR_VERSION","EPOXY_TRANSPORT_PACKAGE_NAME","EPOXY_TRANSPORT_PINNED_MAJOR_VERSION","LIBCURL_TRANSPORT_PACKAGE_NAME","LIBCURL_TRANSPORT_PINNED_MAJOR_VERSION","defaultConfig","server","wisp","extract","fs","config","sendFile","res","filePath","contentType","data","clientdata","routeRequest","req","Buffer","JSON","pathsToFiles","routeUpgrade","socket","head","unpack","tarball","name","Error","response","fetch","arrayBuffer","buffer","file","packagedir","err","console","getDownloadedControllerVersion","pkgJson","updateScramjet","controllerMeta","scramjetVersion","scramjetRes","scramjetMeta","findLatestVersionOfPackage","packageName","majorVersion","packageRes","packageMeta","versions","Object","v","sortedVersions","a","b","aParts","Number","bParts","i","Math","aVal","bVal","latestVersion","latestRes","latestMeta","bootstrap","cfg","downloadedControllerVersion","epoxyMeta","libcurlMeta"],"mappings":"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AAImE,gCAAgC3B,eAAe,OAAO,EAAE;QAC3DJ,QAAQ,GAAG,CACV,CAAC,4CAA4C,EAAE+B,4BAA4B,qBAAqB,CAAC;IAEnG,OAAO;QACN,MAAM5B,eAAeC;QACrBJ,QAAQ,GAAG,CACV,CAAC,wCAAwC,EAAEI,eAAe,OAAO,EAAE;IAErE;IAEA,OAAO;QACNvB;QACAK;IACD;AACD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC1QA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA,oCAAoC,yEAAyE;AAC7G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,EAAE;AACF;AACA,E;;;;AC3EA;AACA;AACA;AACA,kDAAkD,wCAAwC;AAC1F;AACA;AACA,E;;;;ACNA,wF;;;;ACAA;AACA;AACA;AACA,uDAAuD,iBAAiB;AACxE;AACA,gDAAgD,aAAa;AAC7D,E"}
|