@tellegen/engine 0.1.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/LICENSE +19 -0
- package/README.md +53 -0
- package/dist/errors.d.ts +7 -0
- package/dist/errors.d.ts.map +1 -0
- package/dist/errors.js +20 -0
- package/dist/errors.js.map +1 -0
- package/dist/generated/contracts.d.ts +225 -0
- package/dist/generated/contracts.d.ts.map +1 -0
- package/dist/generated/contracts.js +8 -0
- package/dist/generated/contracts.js.map +1 -0
- package/dist/host.d.ts +13 -0
- package/dist/host.d.ts.map +1 -0
- package/dist/host.js +95 -0
- package/dist/host.js.map +1 -0
- package/dist/index.d.ts +333 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +393 -0
- package/dist/index.js.map +1 -0
- package/dist/module.d.ts +11 -0
- package/dist/module.d.ts.map +1 -0
- package/dist/module.js +31 -0
- package/dist/module.js.map +1 -0
- package/dist/protocol.d.ts +101 -0
- package/dist/protocol.d.ts.map +1 -0
- package/dist/protocol.js +63 -0
- package/dist/protocol.js.map +1 -0
- package/dist/wasm-pkg/LICENSE +6 -0
- package/dist/wasm-pkg/LICENSE-APACHE +201 -0
- package/dist/wasm-pkg/LICENSE-MIT +19 -0
- package/dist/wasm-pkg/package.json +21 -0
- package/dist/wasm-pkg/tellegen.d.ts +250 -0
- package/dist/wasm-pkg/tellegen.js +959 -0
- package/dist/wasm-pkg/tellegen_bg.wasm +0 -0
- package/dist/wasm-pkg/tellegen_bg.wasm.d.ts +33 -0
- package/dist/worker.d.ts +11 -0
- package/dist/worker.d.ts.map +1 -0
- package/dist/worker.js +47 -0
- package/dist/worker.js.map +1 -0
- package/package.json +43 -0
|
Binary file
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/* tslint:disable */
|
|
2
|
+
/* eslint-disable */
|
|
3
|
+
export const memory: WebAssembly.Memory;
|
|
4
|
+
export const __wbg_study_free: (a: number, b: number) => void;
|
|
5
|
+
export const apply_display_geo: (a: number, b: number, c: number, d: number) => [number, number, number, number];
|
|
6
|
+
export const apply_geo: (a: number, b: number, c: number, d: number) => [number, number, number, number];
|
|
7
|
+
export const apply_layout: (a: number, b: number, c: number, d: number, e: number, f: number) => [number, number, number, number];
|
|
8
|
+
export const capabilities_json: () => [number, number];
|
|
9
|
+
export const export_study: (a: number, b: number, c: number, d: number, e: number) => [number, number, number, number];
|
|
10
|
+
export const extract_geo: (a: number, b: number) => [number, number, number, number];
|
|
11
|
+
export const ingest_case: (a: number, b: number, c: number, d: number) => [number, number, number, number];
|
|
12
|
+
export const ingest_dist_case: (a: number, b: number, c: number, d: number) => [number, number, number, number];
|
|
13
|
+
export const load_package: (a: number, b: number) => [number, number, number, number];
|
|
14
|
+
export const parse_case: (a: number, b: number, c: number, d: number) => [number, number, number, number];
|
|
15
|
+
export const parse_display: (a: number, b: number, c: number, d: number) => [number, number, number, number];
|
|
16
|
+
export const parse_geo: (a: number, b: number, c: number, d: number) => [number, number, number, number];
|
|
17
|
+
export const solve_json: (a: number, b: number, c: number, d: number) => [number, number, number, number];
|
|
18
|
+
export const study_apply_geo: (a: number, b: number, c: number) => [number, number, number, number];
|
|
19
|
+
export const study_commit: (a: number, b: number, c: number, d: number, e: number) => [number, number, number, number];
|
|
20
|
+
export const study_formulation: (a: number) => [number, number];
|
|
21
|
+
export const study_new: (a: number, b: number, c: number, d: number) => [number, number, number];
|
|
22
|
+
export const study_preview: (a: number, b: number, c: number, d: number, e: number) => [number, number, number, number];
|
|
23
|
+
export const study_preview_replacement: (a: number, b: number, c: number, d: number, e: number) => [number, number, number, number];
|
|
24
|
+
export const study_replace_edits: (a: number, b: number, c: number, d: number, e: number) => [number, number, number, number];
|
|
25
|
+
export const study_save_package: (a: number) => [number, number, number, number];
|
|
26
|
+
export const study_solution: (a: number) => [number, number, number, number];
|
|
27
|
+
export const __wbindgen_free: (a: number, b: number, c: number) => void;
|
|
28
|
+
export const __wbindgen_malloc: (a: number, b: number) => number;
|
|
29
|
+
export const __wbindgen_realloc: (a: number, b: number, c: number, d: number) => number;
|
|
30
|
+
export const __externref_table_alloc: () => number;
|
|
31
|
+
export const __wbindgen_externrefs: WebAssembly.Table;
|
|
32
|
+
export const __externref_table_dealloc: (a: number) => void;
|
|
33
|
+
export const __wbindgen_start: () => void;
|
package/dist/worker.d.ts
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/** Dedicated worker entry: owns the wasm instance and the live Study handles,
|
|
2
|
+
* so solves, sensitivity columns, and previews run off the main thread. The
|
|
3
|
+
* message handler attaches synchronously at module evaluation, so requests
|
|
4
|
+
* posted while the wasm still loads queue instead of dropping. Handlers all
|
|
5
|
+
* await the same init promise, so requests execute in arrival order.
|
|
6
|
+
*
|
|
7
|
+
* The wasm glue is imported statically: the worker only spawns on first
|
|
8
|
+
* engine use, so laziness buys nothing here, and a static graph keeps the
|
|
9
|
+
* worker a single chunk (Vite's default worker format cannot code-split). */
|
|
10
|
+
export {};
|
|
11
|
+
//# sourceMappingURL=worker.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"worker.d.ts","sourceRoot":"","sources":["../src/worker.ts"],"names":[],"mappings":"AAAA;;;;;;;;6EAQ6E"}
|
package/dist/worker.js
ADDED
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
/** Dedicated worker entry: owns the wasm instance and the live Study handles,
|
|
2
|
+
* so solves, sensitivity columns, and previews run off the main thread. The
|
|
3
|
+
* message handler attaches synchronously at module evaluation, so requests
|
|
4
|
+
* posted while the wasm still loads queue instead of dropping. Handlers all
|
|
5
|
+
* await the same init promise, so requests execute in arrival order.
|
|
6
|
+
*
|
|
7
|
+
* The wasm glue is imported statically: the worker only spawns on first
|
|
8
|
+
* engine use, so laziness buys nothing here, and a static graph keeps the
|
|
9
|
+
* worker a single chunk (Vite's default worker format cannot code-split). */
|
|
10
|
+
import { errorText, isPermanentWasmLoadFailure } from "./errors.js";
|
|
11
|
+
import { runRequest, } from "./protocol.js";
|
|
12
|
+
import * as wasm from "./wasm-pkg/tellegen.js";
|
|
13
|
+
let wasmReady = null;
|
|
14
|
+
let wasmUnsupported = null;
|
|
15
|
+
function wasmModule() {
|
|
16
|
+
if (wasmUnsupported)
|
|
17
|
+
return Promise.reject(new Error(wasmUnsupported));
|
|
18
|
+
const wasmUrl = new URL("./wasm-pkg/tellegen_bg.wasm", import.meta.url).href;
|
|
19
|
+
wasmReady ??= wasm
|
|
20
|
+
.default({ module_or_path: wasmUrl })
|
|
21
|
+
.then(() => wasm)
|
|
22
|
+
.catch((e) => {
|
|
23
|
+
const message = errorText(e);
|
|
24
|
+
// Don't cache a rejected init: a transient failure must not disable the
|
|
25
|
+
// engine for the whole session. A capability failure is permanent.
|
|
26
|
+
wasmReady = null;
|
|
27
|
+
if (isPermanentWasmLoadFailure(message))
|
|
28
|
+
wasmUnsupported = message;
|
|
29
|
+
throw e;
|
|
30
|
+
});
|
|
31
|
+
return wasmReady;
|
|
32
|
+
}
|
|
33
|
+
const studies = new Map();
|
|
34
|
+
// Typed view of the dedicated worker global; the package compiles against the
|
|
35
|
+
// DOM lib, so DedicatedWorkerGlobalScope is not in scope.
|
|
36
|
+
const scope = globalThis;
|
|
37
|
+
scope.onmessage = async (ev) => {
|
|
38
|
+
const req = ev.data;
|
|
39
|
+
try {
|
|
40
|
+
const value = runRequest(await wasmModule(), studies, req);
|
|
41
|
+
scope.postMessage({ id: req.id, ok: true, value });
|
|
42
|
+
}
|
|
43
|
+
catch (e) {
|
|
44
|
+
scope.postMessage({ id: req.id, ok: false, error: errorText(e) });
|
|
45
|
+
}
|
|
46
|
+
};
|
|
47
|
+
//# sourceMappingURL=worker.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"worker.js","sourceRoot":"","sources":["../src/worker.ts"],"names":[],"mappings":"AAAA;;;;;;;;6EAQ6E;AAE7E,OAAO,EAAE,SAAS,EAAE,0BAA0B,EAAE,MAAM,aAAa,CAAC;AAEpE,OAAO,EACL,UAAU,GAGX,MAAM,eAAe,CAAC;AACvB,OAAO,KAAK,IAAI,MAAM,wBAAwB,CAAC;AAE/C,IAAI,SAAS,GAA+B,IAAI,CAAC;AACjD,IAAI,eAAe,GAAkB,IAAI,CAAC;AAE1C,SAAS,UAAU;IACjB,IAAI,eAAe;QAAE,OAAO,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,eAAe,CAAC,CAAC,CAAC;IACvE,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,6BAA6B,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;IAC7E,SAAS,KAAK,IAAI;SACf,OAAO,CAAC,EAAE,cAAc,EAAE,OAAO,EAAE,CAAC;SACpC,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC;SAChB,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE;QACX,MAAM,OAAO,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;QAC7B,wEAAwE;QACxE,mEAAmE;QACnE,SAAS,GAAG,IAAI,CAAC;QACjB,IAAI,0BAA0B,CAAC,OAAO,CAAC;YAAE,eAAe,GAAG,OAAO,CAAC;QACnE,MAAM,CAAC,CAAC;IACV,CAAC,CAAC,CAAC;IACL,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,MAAM,OAAO,GAAG,IAAI,GAAG,EAAqB,CAAC;AAE7C,8EAA8E;AAC9E,0DAA0D;AAC1D,MAAM,KAAK,GAAG,UAGb,CAAC;AAEF,KAAK,CAAC,SAAS,GAAG,KAAK,EAAE,EAA+B,EAAE,EAAE;IAC1D,MAAM,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC;IACpB,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,UAAU,CAAC,MAAM,UAAU,EAAE,EAAE,OAAO,EAAE,GAAG,CAAC,CAAC;QAC3D,KAAK,CAAC,WAAW,CAAC,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;IACrD,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,KAAK,CAAC,WAAW,CAAC,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IACpE,CAAC;AACH,CAAC,CAAC"}
|
package/package.json
ADDED
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@tellegen/engine",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"description": "Browser engine package for tellegen case parsing, solving, studies, previews, and sensitivities.",
|
|
5
|
+
"license": "MIT",
|
|
6
|
+
"type": "module",
|
|
7
|
+
"repository": {
|
|
8
|
+
"type": "git",
|
|
9
|
+
"url": "git+https://github.com/eigenergy/tellegen.git",
|
|
10
|
+
"directory": "packages/engine"
|
|
11
|
+
},
|
|
12
|
+
"bugs": {
|
|
13
|
+
"url": "https://github.com/eigenergy/tellegen/issues"
|
|
14
|
+
},
|
|
15
|
+
"homepage": "https://eigenergy.github.io/tellegen/",
|
|
16
|
+
"types": "./dist/index.d.ts",
|
|
17
|
+
"files": [
|
|
18
|
+
"dist"
|
|
19
|
+
],
|
|
20
|
+
"sideEffects": false,
|
|
21
|
+
"exports": {
|
|
22
|
+
".": {
|
|
23
|
+
"types": "./dist/index.d.ts",
|
|
24
|
+
"default": "./dist/index.js"
|
|
25
|
+
},
|
|
26
|
+
"./contracts": {
|
|
27
|
+
"types": "./dist/generated/contracts.d.ts",
|
|
28
|
+
"default": "./dist/generated/contracts.js"
|
|
29
|
+
}
|
|
30
|
+
},
|
|
31
|
+
"scripts": {
|
|
32
|
+
"contracts": "node scripts/generate-contracts.mjs",
|
|
33
|
+
"contracts:check": "node scripts/generate-contracts.mjs --check",
|
|
34
|
+
"build": "npm run contracts:check && tsc -p tsconfig.json && node scripts/copy-wasm-assets.mjs",
|
|
35
|
+
"wasm": "wasm-pack build ../../crates/tellegen-wasm --target web --out-dir ../../packages/engine/src/wasm-pkg --out-name tellegen -- --features conic",
|
|
36
|
+
"check": "npm run contracts:check && tsc -p tsconfig.json --noEmit",
|
|
37
|
+
"test:import": "node scripts/import-smoke.mjs",
|
|
38
|
+
"pack:dry-run": "npm pack --dry-run"
|
|
39
|
+
},
|
|
40
|
+
"devDependencies": {
|
|
41
|
+
"typescript": "^5.7.0"
|
|
42
|
+
}
|
|
43
|
+
}
|