@bubblyworld/scip-ts 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/README.md +131 -0
- package/build/scip.js +2 -0
- package/build/scip.wasm +0 -0
- package/dist/index.browser.d.ts +5 -0
- package/dist/index.browser.d.ts.map +1 -0
- package/dist/index.browser.js +443 -0
- package/dist/index.browser.js.map +1 -0
- package/dist/index.d.ts +5 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +3 -0
- package/dist/index.js.map +1 -0
- package/dist/index.node.d.ts +12 -0
- package/dist/index.node.d.ts.map +1 -0
- package/dist/index.node.js +459 -0
- package/dist/index.node.js.map +1 -0
- package/dist/model/constraint.d.ts +12 -0
- package/dist/model/constraint.d.ts.map +1 -0
- package/dist/model/constraint.js +11 -0
- package/dist/model/constraint.js.map +1 -0
- package/dist/model/expr.d.ts +25 -0
- package/dist/model/expr.d.ts.map +1 -0
- package/dist/model/expr.js +51 -0
- package/dist/model/expr.js.map +1 -0
- package/dist/model/helpers.d.ts +5 -0
- package/dist/model/helpers.d.ts.map +1 -0
- package/dist/model/helpers.js +10 -0
- package/dist/model/helpers.js.map +1 -0
- package/dist/model/index.d.ts +8 -0
- package/dist/model/index.d.ts.map +1 -0
- package/dist/model/index.js +7 -0
- package/dist/model/index.js.map +1 -0
- package/dist/model/lp-format.d.ts +11 -0
- package/dist/model/lp-format.d.ts.map +1 -0
- package/dist/model/lp-format.js +122 -0
- package/dist/model/lp-format.js.map +1 -0
- package/dist/model/model.d.ts +30 -0
- package/dist/model/model.d.ts.map +1 -0
- package/dist/model/model.js +75 -0
- package/dist/model/model.js.map +1 -0
- package/dist/model/solution.d.ts +13 -0
- package/dist/model/solution.d.ts.map +1 -0
- package/dist/model/solution.js +14 -0
- package/dist/model/solution.js.map +1 -0
- package/dist/model/types.d.ts +11 -0
- package/dist/model/types.d.ts.map +1 -0
- package/dist/model/types.js +2 -0
- package/dist/model/types.js.map +1 -0
- package/dist/model/var.d.ts +28 -0
- package/dist/model/var.d.ts.map +1 -0
- package/dist/model/var.js +43 -0
- package/dist/model/var.js.map +1 -0
- package/dist/module.d.ts +4 -0
- package/dist/module.d.ts.map +1 -0
- package/dist/module.js +15 -0
- package/dist/module.js.map +1 -0
- package/dist/solver.d.ts +19 -0
- package/dist/solver.d.ts.map +1 -0
- package/dist/solver.js +108 -0
- package/dist/solver.js.map +1 -0
- package/dist/types.d.ts +42 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +2 -0
- package/dist/types.js.map +1 -0
- package/package.json +55 -0
package/dist/types.d.ts
ADDED
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
/** Status returned by SCIP after solving a problem. */
|
|
2
|
+
export type SolveStatus = 'optimal' | 'infeasible' | 'unbounded' | 'inforunbd' | 'timelimit' | 'nodelimit' | 'stallnodelimit' | 'gaplimit' | 'sollimit' | 'bestsollimit' | 'restartlimit' | 'unknown';
|
|
3
|
+
/** Result of solving an optimization problem. */
|
|
4
|
+
export interface SolveResult {
|
|
5
|
+
status: SolveStatus;
|
|
6
|
+
objective?: number;
|
|
7
|
+
solution?: Map<string, number>;
|
|
8
|
+
}
|
|
9
|
+
/** Console output configuration for the SCIP module. */
|
|
10
|
+
export interface SCIPConsoleOptions {
|
|
11
|
+
/** Handler for stdout messages. Set to null to suppress. */
|
|
12
|
+
log?: ((text: string) => void) | null;
|
|
13
|
+
/** Handler for stderr messages. Set to null to suppress. */
|
|
14
|
+
error?: ((text: string) => void) | null;
|
|
15
|
+
}
|
|
16
|
+
/** Options for SCIP instance creation. */
|
|
17
|
+
export interface SCIPOptions {
|
|
18
|
+
/** Configure console output handling. */
|
|
19
|
+
console?: SCIPConsoleOptions;
|
|
20
|
+
}
|
|
21
|
+
/** The Emscripten module interface exposed by the compiled SCIP WebAssembly. */
|
|
22
|
+
export interface EmscriptenModule {
|
|
23
|
+
ccall: (name: string, returnType: string | null, argTypes: string[], args: unknown[]) => unknown;
|
|
24
|
+
cwrap: (name: string, returnType: string | null, argTypes: string[]) => (...args: unknown[]) => unknown;
|
|
25
|
+
getValue: (ptr: number, type: string) => number;
|
|
26
|
+
setValue: (ptr: number, value: number, type: string) => void;
|
|
27
|
+
UTF8ToString: (ptr: number) => string;
|
|
28
|
+
stringToUTF8: (str: string, ptr: number, maxBytes: number) => void;
|
|
29
|
+
_malloc: (size: number) => number;
|
|
30
|
+
_free: (ptr: number) => void;
|
|
31
|
+
FS: {
|
|
32
|
+
writeFile: (path: string, data: string | Uint8Array) => void;
|
|
33
|
+
readFile: (path: string, opts?: {
|
|
34
|
+
encoding?: string;
|
|
35
|
+
}) => string | Uint8Array;
|
|
36
|
+
unlink: (path: string) => void;
|
|
37
|
+
mkdir: (path: string) => void;
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
/** Factory function that creates the Emscripten SCIP module. */
|
|
41
|
+
export type SCIPModuleFactory = (options?: Record<string, unknown>) => Promise<EmscriptenModule>;
|
|
42
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,uDAAuD;AACvD,MAAM,MAAM,WAAW,GACnB,SAAS,GACT,YAAY,GACZ,WAAW,GACX,WAAW,GACX,WAAW,GACX,WAAW,GACX,gBAAgB,GAChB,UAAU,GACV,UAAU,GACV,cAAc,GACd,cAAc,GACd,SAAS,CAAC;AAEd,iDAAiD;AACjD,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,WAAW,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAChC;AAED,wDAAwD;AACxD,MAAM,WAAW,kBAAkB;IACjC,4DAA4D;IAC5D,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC;IACtC,4DAA4D;IAC5D,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC;CACzC;AAED,0CAA0C;AAC1C,MAAM,WAAW,WAAW;IAC1B,yCAAyC;IACzC,OAAO,CAAC,EAAE,kBAAkB,CAAC;CAC9B;AAED,gFAAgF;AAChF,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,CACL,IAAI,EAAE,MAAM,EACZ,UAAU,EAAE,MAAM,GAAG,IAAI,EACzB,QAAQ,EAAE,MAAM,EAAE,EAClB,IAAI,EAAE,OAAO,EAAE,KACZ,OAAO,CAAC;IACb,KAAK,EAAE,CACL,IAAI,EAAE,MAAM,EACZ,UAAU,EAAE,MAAM,GAAG,IAAI,EACzB,QAAQ,EAAE,MAAM,EAAE,KACf,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,OAAO,CAAC;IACrC,QAAQ,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC;IAChD,QAAQ,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7D,YAAY,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,CAAC;IACtC,YAAY,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IACnE,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC;IAClC,KAAK,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7B,EAAE,EAAE;QACF,SAAS,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,UAAU,KAAK,IAAI,CAAC;QAC7D,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE;YAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;SAAE,KAAK,MAAM,GAAG,UAAU,CAAC;QAC9E,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;QAC/B,KAAK,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;KAC/B,CAAC;CACH;AAED,gEAAgE;AAChE,MAAM,MAAM,iBAAiB,GAAG,CAC9B,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAC9B,OAAO,CAAC,gBAAgB,CAAC,CAAC"}
|
package/dist/types.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":""}
|
package/package.json
ADDED
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@bubblyworld/scip-ts",
|
|
3
|
+
"version": "0.0.1",
|
|
4
|
+
"description": "A wasm build of the SCIP (scipopt.org) and HiGHS (highs.dev) MILP solvers with a convenient typescript interface. Runs with zero dependencies in both node and web environments.",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"main": "./dist/index.js",
|
|
7
|
+
"types": "./dist/index.d.ts",
|
|
8
|
+
"publishConfig": {
|
|
9
|
+
"access": "public"
|
|
10
|
+
},
|
|
11
|
+
"exports": {
|
|
12
|
+
".": {
|
|
13
|
+
"types": "./dist/index.d.ts",
|
|
14
|
+
"node": "./dist/index.node.js",
|
|
15
|
+
"browser": "./dist/index.browser.js",
|
|
16
|
+
"default": "./dist/index.browser.js"
|
|
17
|
+
}
|
|
18
|
+
},
|
|
19
|
+
"files": [
|
|
20
|
+
"dist/",
|
|
21
|
+
"build/scip.js",
|
|
22
|
+
"build/scip.wasm"
|
|
23
|
+
],
|
|
24
|
+
"scripts": {
|
|
25
|
+
"build": "npm run build:wasm && npm run build:ts",
|
|
26
|
+
"build:wasm": "cd build && ./build.sh",
|
|
27
|
+
"build:ts": "tsc && rollup -c",
|
|
28
|
+
"serve": "node --import tsx web/server.ts",
|
|
29
|
+
"test": "npm run test:node && npm run test:browser",
|
|
30
|
+
"test:node": "vitest run",
|
|
31
|
+
"test:browser": "playwright test --config test/playwright.config.ts",
|
|
32
|
+
"test:watch": "vitest",
|
|
33
|
+
"prepublishOnly": "npm run build"
|
|
34
|
+
},
|
|
35
|
+
"keywords": [
|
|
36
|
+
"scip",
|
|
37
|
+
"highs",
|
|
38
|
+
"constraint",
|
|
39
|
+
"optimise",
|
|
40
|
+
"lp",
|
|
41
|
+
"mip",
|
|
42
|
+
"milp"
|
|
43
|
+
],
|
|
44
|
+
"author": "Guy Paterson-Jones",
|
|
45
|
+
"license": "MIT",
|
|
46
|
+
"devDependencies": {
|
|
47
|
+
"@playwright/test": "^1.40.0",
|
|
48
|
+
"@rollup/plugin-typescript": "^11.0.0",
|
|
49
|
+
"@types/node": "^20.0.0",
|
|
50
|
+
"rollup": "^4.0.0",
|
|
51
|
+
"tsx": "^4.0.0",
|
|
52
|
+
"typescript": "^5.0.0",
|
|
53
|
+
"vitest": "^1.0.0"
|
|
54
|
+
}
|
|
55
|
+
}
|