@ohtaman/washi 0.1.2 → 0.2.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.
Files changed (91) hide show
  1. package/README.ja.md +76 -2
  2. package/README.md +76 -2
  3. package/README.zh-CN.md +76 -2
  4. package/dist/browser/highs-worker.js +2 -2
  5. package/dist/browser/{highs-loader-T47YOyos.js → loader-CVt4CloI.js} +2 -2
  6. package/dist/browser/solvers/glpk.js +1057 -0
  7. package/dist/browser/solvers/glpk.min.js +1 -0
  8. package/dist/browser/solvers/z3-built.js +8245 -0
  9. package/dist/browser/solvers/z3-built.wasm +4 -0
  10. package/dist/browser/solvers/z3.js +7528 -0
  11. package/dist/browser/solvers/z3.min.js +5 -0
  12. package/dist/browser/washi.js +142 -476
  13. package/dist/browser/washi.min.js +3 -3
  14. package/dist/lib/async-mutex-Duo4jwzn.js +195 -0
  15. package/dist/lib/constraint-XWdn0ID9.js +93 -0
  16. package/dist/lib/highs-worker.js +2 -2
  17. package/dist/lib/{highs-loader-Blb99785.js → loader-Dti0v9yC.js} +1 -1
  18. package/dist/lib/registry-DksqCSjI.js +32 -0
  19. package/dist/lib/solvers/glpk.js +153 -2
  20. package/dist/lib/solvers/z3-assets.js +1 -0
  21. package/dist/lib/solvers/z3-built.js +8245 -0
  22. package/dist/lib/solvers/z3-built.wasm +4 -0
  23. package/dist/lib/solvers/z3.js +451 -2
  24. package/dist/lib/washi.js +400 -91
  25. package/dist/types/index.d.ts +2 -3
  26. package/dist/types/index.d.ts.map +1 -1
  27. package/dist/types/modeler/index.d.ts +1 -1
  28. package/dist/types/modeler/index.d.ts.map +1 -1
  29. package/dist/types/modeler/model.d.ts +1 -1
  30. package/dist/types/modeler/model.d.ts.map +1 -1
  31. package/dist/types/modeler/solvers/glpk/index.d.ts +3 -0
  32. package/dist/types/modeler/solvers/glpk/index.d.ts.map +1 -0
  33. package/dist/types/modeler/solvers/glpk/loader.d.ts +16 -0
  34. package/dist/types/modeler/solvers/glpk/loader.d.ts.map +1 -0
  35. package/dist/types/modeler/solvers/glpk/solver.d.ts +26 -0
  36. package/dist/types/modeler/solvers/glpk/solver.d.ts.map +1 -0
  37. package/dist/types/modeler/solvers/glpk.d.ts +1 -21
  38. package/dist/types/modeler/solvers/glpk.d.ts.map +1 -1
  39. package/dist/types/{highs-assets.d.ts → modeler/solvers/highs/assets.d.ts} +1 -1
  40. package/dist/types/modeler/solvers/highs/assets.d.ts.map +1 -0
  41. package/dist/types/modeler/solvers/highs/browser-runtime.d.ts +2 -0
  42. package/dist/types/modeler/solvers/highs/browser-runtime.d.ts.map +1 -0
  43. package/dist/types/modeler/solvers/highs/index.d.ts +6 -0
  44. package/dist/types/modeler/solvers/highs/index.d.ts.map +1 -0
  45. package/dist/types/{highs-loader.d.ts → modeler/solvers/highs/loader.d.ts} +2 -2
  46. package/dist/types/modeler/solvers/highs/loader.d.ts.map +1 -0
  47. package/dist/types/{highs-node-runtime.d.ts → modeler/solvers/highs/node-runtime.d.ts} +1 -1
  48. package/dist/types/modeler/solvers/highs/node-runtime.d.ts.map +1 -0
  49. package/dist/types/modeler/solvers/highs/solver.d.ts +33 -0
  50. package/dist/types/modeler/solvers/highs/solver.d.ts.map +1 -0
  51. package/dist/types/modeler/solvers/highs/worker-client.d.ts +13 -0
  52. package/dist/types/modeler/solvers/highs/worker-client.d.ts.map +1 -0
  53. package/dist/types/{highs-worker-factory.d.ts → modeler/solvers/highs/worker-factory.d.ts} +1 -1
  54. package/dist/types/modeler/solvers/highs/worker-factory.d.ts.map +1 -0
  55. package/dist/types/modeler/solvers/highs/worker.d.ts +2 -0
  56. package/dist/types/modeler/solvers/highs/worker.d.ts.map +1 -0
  57. package/dist/types/modeler/solvers/highs.d.ts +1 -31
  58. package/dist/types/modeler/solvers/highs.d.ts.map +1 -1
  59. package/dist/types/modeler/solvers/index.d.ts +0 -2
  60. package/dist/types/modeler/solvers/index.d.ts.map +1 -1
  61. package/dist/types/modeler/solvers/mock.d.ts +1 -0
  62. package/dist/types/modeler/solvers/mock.d.ts.map +1 -1
  63. package/dist/types/modeler/solvers/registry.d.ts +1 -2
  64. package/dist/types/modeler/solvers/registry.d.ts.map +1 -1
  65. package/dist/types/modeler/solvers/z3/assets.d.ts +11 -0
  66. package/dist/types/modeler/solvers/z3/assets.d.ts.map +1 -0
  67. package/dist/types/modeler/solvers/z3/index.d.ts +3 -0
  68. package/dist/types/modeler/solvers/z3/index.d.ts.map +1 -0
  69. package/dist/types/modeler/solvers/z3/loader.d.ts +44 -0
  70. package/dist/types/modeler/solvers/z3/loader.d.ts.map +1 -0
  71. package/dist/types/modeler/solvers/z3/solver.d.ts +34 -0
  72. package/dist/types/modeler/solvers/z3/solver.d.ts.map +1 -0
  73. package/dist/types/modeler/solvers/z3.d.ts +1 -35
  74. package/dist/types/modeler/solvers/z3.d.ts.map +1 -1
  75. package/package.json +19 -5
  76. package/dist/browser/_washi-optional-engine-282Ug7Gw.js +0 -7
  77. package/dist/lib/glpk-5cUpjyb9.js +0 -135
  78. package/dist/lib/z3-C6GeIicJ.js +0 -509
  79. package/dist/types/glpk-loader.d.ts +0 -8
  80. package/dist/types/glpk-loader.d.ts.map +0 -1
  81. package/dist/types/highs-assets.d.ts.map +0 -1
  82. package/dist/types/highs-browser-runtime.d.ts +0 -2
  83. package/dist/types/highs-browser-runtime.d.ts.map +0 -1
  84. package/dist/types/highs-loader.d.ts.map +0 -1
  85. package/dist/types/highs-node-runtime.d.ts.map +0 -1
  86. package/dist/types/highs-worker-client.d.ts +0 -12
  87. package/dist/types/highs-worker-client.d.ts.map +0 -1
  88. package/dist/types/highs-worker-factory.d.ts.map +0 -1
  89. package/dist/types/highs-worker.d.ts +0 -2
  90. package/dist/types/highs-worker.d.ts.map +0 -1
  91. /package/dist/browser/{highs-browser-runtime-D13gHOT5.js → browser-runtime-D13gHOT5.js} +0 -0
package/dist/lib/washi.js CHANGED
@@ -1,12 +1,29 @@
1
- import { _ as e, a as t, c as n, d as r, f as i, g as a, h as o, i as s, l as c, m as l, n as u, o as d, p as f, s as p, t as m, u as h, v as g, y as _ } from "./z3-C6GeIicJ.js";
2
- import { a as v, c as y, i as b, n as x, o as S, r as C, s as w, t as T } from "./highs-loader-Blb99785.js";
3
- import { n as E, t as ee } from "./glpk-5cUpjyb9.js";
1
+ import { a as e, c as t, i as n, l as r, n as i, o as a, r as o, s, t as c } from "./constraint-XWdn0ID9.js";
2
+ import { i as l, n as u, r as d, t as f } from "./registry-DksqCSjI.js";
3
+ import { a as p, c as m, i as h, n as g, o as _, r as v, s as y, t as b } from "./loader-Dti0v9yC.js";
4
+ import { createHighsWorker as ee } from "./highs-worker-factory.js";
5
+ //#region \0rolldown/runtime.js
6
+ var x = Object.defineProperty, te = Object.getOwnPropertyDescriptor, ne = Object.getOwnPropertyNames, re = Object.prototype.hasOwnProperty, S = (e, t) => {
7
+ let n = {};
8
+ for (var r in e) x(n, r, {
9
+ get: e[r],
10
+ enumerable: !0
11
+ });
12
+ return t || x(n, Symbol.toStringTag, { value: "Module" }), n;
13
+ }, C = (e, t, n, r) => {
14
+ if (t && typeof t == "object" || typeof t == "function") for (var i = ne(t), a = 0, o = i.length, s; a < o; a++) s = i[a], !re.call(e, s) && s !== n && x(e, s, {
15
+ get: ((e) => t[e]).bind(null, s),
16
+ enumerable: !(r = te(t, s)) || r.enumerable
17
+ });
18
+ return e;
19
+ }, w = (e, t, n) => (C(e, t, "default"), n && C(n, t, "default"));
20
+ //#endregion
4
21
  //#region src/modeler/quad-expr.ts
5
- function D(e, t) {
22
+ function T(e, t) {
6
23
  let n = e.id, r = t.id;
7
24
  return n <= r ? `${n}:${r}` : `${r}:${n}`;
8
25
  }
9
- var O = class e {
26
+ var E = class e {
10
27
  linearTerms;
11
28
  quadTerms;
12
29
  constant;
@@ -19,7 +36,7 @@ var O = class e {
19
36
  return new e(this.linearTerms, this.quadTerms, this.constant);
20
37
  }
21
38
  getQuadCoeff(e, t) {
22
- let n = D(e, t), r = this.quadTerms.get(n);
39
+ let n = T(e, t), r = this.quadTerms.get(n);
23
40
  return r ? r.coeff : 0;
24
41
  }
25
42
  add(t) {
@@ -92,14 +109,14 @@ var O = class e {
92
109
  return this.value;
93
110
  }
94
111
  static fromProduct(t, n, r = 1) {
95
- let i = new e(), a = D(t, n);
112
+ let i = new e(), a = T(t, n);
96
113
  return i.quadTerms.set(a, {
97
114
  var1: t.id <= n.id ? t : n,
98
115
  var2: t.id <= n.id ? n : t,
99
116
  coeff: r
100
117
  }), i;
101
118
  }
102
- }, k = class e {
119
+ }, D = class e {
103
120
  terms;
104
121
  constant;
105
122
  constructor(e = /* @__PURE__ */ new Map(), t = 0) {
@@ -109,7 +126,7 @@ var O = class e {
109
126
  return new e(this.terms, this.constant);
110
127
  }
111
128
  add(e) {
112
- if (e instanceof O) return e.add(this);
129
+ if (e instanceof E) return e.add(this);
113
130
  let t = this.clone();
114
131
  if (typeof e == "number") t.constant += e;
115
132
  else if ("terms" in e) {
@@ -125,7 +142,7 @@ var O = class e {
125
142
  return t;
126
143
  }
127
144
  sub(e) {
128
- return e instanceof O ? e.neg().add(this) : typeof e == "number" ? this.add(-e) : ("terms" in e, this.add(e.mul(-1)));
145
+ return e instanceof E ? e.neg().add(this) : typeof e == "number" ? this.add(-e) : ("terms" in e, this.add(e.mul(-1)));
129
146
  }
130
147
  mul(t) {
131
148
  if (typeof t == "number") {
@@ -136,9 +153,9 @@ var O = class e {
136
153
  }
137
154
  return n;
138
155
  }
139
- let n = new O();
156
+ let n = new E();
140
157
  Math.abs(this.constant) >= 1e-12 && n.linearTerms.set(t, this.constant);
141
- for (let [e, r] of this.terms) n = n.add(O.fromProduct(e, t, r));
158
+ for (let [e, r] of this.terms) n = n.add(E.fromProduct(e, t, r));
142
159
  return n;
143
160
  }
144
161
  div(e) {
@@ -177,11 +194,11 @@ var O = class e {
177
194
  equalTo(e, t) {
178
195
  return this.eq(e, t);
179
196
  }
180
- toConstraint(t, n, i) {
181
- let a = this.clone(), o = 0;
182
- typeof n == "number" ? o = n : "terms" in n ? (a = a.sub(new e(n.terms, 0)), o = n.constant) : a = a.sub(n);
183
- let s = o - a.constant;
184
- return a.constant = 0, new r(a, t, s, i);
197
+ toConstraint(t, n, r) {
198
+ let i = this.clone(), a = 0;
199
+ typeof n == "number" ? a = n : "terms" in n ? (i = i.sub(new e(n.terms, 0)), a = n.constant) : i = i.sub(n);
200
+ let o = a - i.constant;
201
+ return i.constant = 0, new c(i, t, o, r);
185
202
  }
186
203
  toString() {
187
204
  let e = [], t = !0;
@@ -196,7 +213,7 @@ var O = class e {
196
213
  return e.join(" ") || "0";
197
214
  }
198
215
  };
199
- function A(e, t) {
216
+ function O(e, t) {
200
217
  let n = /* @__PURE__ */ new Map(), r = 0, i = 0;
201
218
  for (let a of e) {
202
219
  let e = t ? t(a, i++) : a;
@@ -214,9 +231,9 @@ function A(e, t) {
214
231
  }
215
232
  }
216
233
  for (let [e, t] of n) Math.abs(t) < 1e-12 && n.delete(e);
217
- return new k(n, r);
234
+ return new D(n, r);
218
235
  }
219
- var te = A, j = A, M = 0, N = class e {
236
+ var k = O, A = O, ie = 0, j = class e {
220
237
  id;
221
238
  name;
222
239
  type;
@@ -225,7 +242,7 @@ var te = A, j = A, M = 0, N = class e {
225
242
  value = null;
226
243
  reducedCost = null;
227
244
  constructor(e = {}) {
228
- this.id = ++M, this.name = e.name || `x_${this.id}`, this.type = e.type || "Continuous", this.type === "Binary" ? (this.lb = 0, this.ub = 1) : (this.lb = e.lb === void 0 ? 0 : e.lb, this.ub = e.ub === void 0 ? Infinity : e.ub);
245
+ this.id = ++ie, this.name = e.name || `x_${this.id}`, this.type = e.type || "Continuous", this.type === "Binary" ? (this.lb = 0, this.ub = 1) : (this.lb = e.lb === void 0 ? 0 : e.lb, this.ub = e.ub === void 0 ? Infinity : e.ub);
229
246
  }
230
247
  get x() {
231
248
  return this.value;
@@ -234,39 +251,39 @@ var te = A, j = A, M = 0, N = class e {
234
251
  return this.value;
235
252
  }
236
253
  mul(t) {
237
- if (typeof t == "number") return new k(/* @__PURE__ */ new Map([[this, t]]), 0);
238
- if (t instanceof e) return O.fromProduct(this, t, 1);
239
- let n = new O();
254
+ if (typeof t == "number") return new D(/* @__PURE__ */ new Map([[this, t]]), 0);
255
+ if (t instanceof e) return E.fromProduct(this, t, 1);
256
+ let n = new E();
240
257
  Math.abs(t.constant) >= 1e-12 && n.linearTerms.set(this, t.constant);
241
258
  for (let [e, r] of t.terms) {
242
- let t = O.fromProduct(this, e, r);
259
+ let t = E.fromProduct(this, e, r);
243
260
  n = n.add(t);
244
261
  }
245
262
  return n;
246
263
  }
247
264
  add(e) {
248
- return e instanceof O ? e.add(this) : new k(/* @__PURE__ */ new Map([[this, 1]]), 0).add(e);
265
+ return e instanceof E ? e.add(this) : new D(/* @__PURE__ */ new Map([[this, 1]]), 0).add(e);
249
266
  }
250
267
  sub(e) {
251
- return e instanceof O ? e.neg().add(this) : new k(/* @__PURE__ */ new Map([[this, 1]]), 0).sub(e);
268
+ return e instanceof E ? e.neg().add(this) : new D(/* @__PURE__ */ new Map([[this, 1]]), 0).sub(e);
252
269
  }
253
270
  neg() {
254
271
  return this.mul(-1);
255
272
  }
256
273
  le(e, t) {
257
- return new k(/* @__PURE__ */ new Map([[this, 1]]), 0).le(e, t);
274
+ return new D(/* @__PURE__ */ new Map([[this, 1]]), 0).le(e, t);
258
275
  }
259
276
  lessThanOrEqual(e, t) {
260
277
  return this.le(e, t);
261
278
  }
262
279
  ge(e, t) {
263
- return new k(/* @__PURE__ */ new Map([[this, 1]]), 0).ge(e, t);
280
+ return new D(/* @__PURE__ */ new Map([[this, 1]]), 0).ge(e, t);
264
281
  }
265
282
  greaterThanOrEqual(e, t) {
266
283
  return this.ge(e, t);
267
284
  }
268
285
  eq(e, t) {
269
- return new k(/* @__PURE__ */ new Map([[this, 1]]), 0).eq(e, t);
286
+ return new D(/* @__PURE__ */ new Map([[this, 1]]), 0).eq(e, t);
270
287
  }
271
288
  equalTo(e, t) {
272
289
  return this.eq(e, t);
@@ -277,7 +294,7 @@ var te = A, j = A, M = 0, N = class e {
277
294
  };
278
295
  //#endregion
279
296
  //#region src/modeler/parser.ts
280
- function P(e) {
297
+ function ae(e) {
281
298
  let t = [], n = 0, r = e.length;
282
299
  for (; n < r;) {
283
300
  let i = e[n];
@@ -333,7 +350,7 @@ function P(e) {
333
350
  }
334
351
  return t;
335
352
  }
336
- var F = class {
353
+ var oe = class {
337
354
  tokens;
338
355
  pos = 0;
339
356
  resolver;
@@ -395,12 +412,12 @@ var F = class {
395
412
  let e = this.consume();
396
413
  return this.resolveVariable(e.value).mul(t);
397
414
  }
398
- return new k(/* @__PURE__ */ new Map(), t);
415
+ return new D(/* @__PURE__ */ new Map(), t);
399
416
  }
400
417
  if (e.type === "IDENT") {
401
418
  this.consume();
402
419
  let t = this.resolveVariable(e.value);
403
- return new k(/* @__PURE__ */ new Map([[t, 1]]), 0);
420
+ return new D(/* @__PURE__ */ new Map([[t, 1]]), 0);
404
421
  }
405
422
  if (e.type === "LPAREN") {
406
423
  this.consume("LPAREN");
@@ -415,10 +432,10 @@ var F = class {
415
432
  return t;
416
433
  }
417
434
  };
418
- function I(e, t) {
419
- return new F(P(e), t).parseExpression();
435
+ function M(e, t) {
436
+ return new oe(ae(e), t).parseExpression();
420
437
  }
421
- function L(e, t, n) {
438
+ function N(e, t, n) {
422
439
  let r = e.match(/(<=|>=|==|=<|=>|=)/);
423
440
  if (!r) throw Error(`Constraint must contain a comparison operator (<=, >=, ==, =): "${e}"`);
424
441
  let i = r[0], a = r.index, o = e.substring(0, a).trim(), s = e.substring(a + i.length).trim(), c;
@@ -426,18 +443,18 @@ function L(e, t, n) {
426
443
  else if (i === ">=" || i === "=>") c = ">=";
427
444
  else if (i === "==" || i === "=") c = "==";
428
445
  else throw Error(`Unsupported operator "${i}"`);
429
- let l = I(o, t), u = I(s, t);
446
+ let l = M(o, t), u = M(s, t);
430
447
  return c === "<=" ? l.le(u, n) : c === ">=" ? l.ge(u, n) : l.eq(u, n);
431
448
  }
432
- function R(e, t) {
449
+ function P(e, t) {
433
450
  let n = /* @__PURE__ */ new Map(), r = "";
434
451
  for (let i = 0; i < e.length; i++) if (r += e[i], i < t.length) {
435
452
  let e = t[i];
436
453
  if (typeof e == "number") r += `(${e})`;
437
- else if (e instanceof N) {
454
+ else if (e instanceof j) {
438
455
  let t = `__v_${i}__`;
439
456
  n.set(t, e), r += t;
440
- } else if (e instanceof k) {
457
+ } else if (e instanceof D) {
441
458
  `${i}`, r += `(${e.toString()})`;
442
459
  for (let [t] of e.terms) n.set(t.name, t);
443
460
  }
@@ -447,42 +464,42 @@ function R(e, t) {
447
464
  resolver: (e) => n.get(e)
448
465
  };
449
466
  }
450
- function z(e, ...t) {
451
- let { fullText: n, resolver: r } = R(e, t);
452
- return L(n, r);
467
+ function se(e, ...t) {
468
+ let { fullText: n, resolver: r } = P(e, t);
469
+ return N(n, r);
453
470
  }
454
- function B(e, ...t) {
455
- let { fullText: n, resolver: r } = R(e, t);
456
- return /(<=|>=|==|=<|=>|=)/.test(n) ? L(n, r) : I(n, r);
471
+ function ce(e, ...t) {
472
+ let { fullText: n, resolver: r } = P(e, t);
473
+ return /(<=|>=|==|=<|=>|=)/.test(n) ? N(n, r) : M(n, r);
457
474
  }
458
475
  //#endregion
459
476
  //#region src/modeler/lp-writer.ts
460
- function V(e, t, n) {
477
+ function le(e, t, n) {
461
478
  let r = e.replace(/[^a-zA-Z0-9_]/g, "_");
462
479
  return /^[0-9]/.test(r) && (r = `${t}_${r}`), (!r || r.length === 0) && (r = `${t}_${n}`), r;
463
480
  }
464
- function H(e) {
481
+ function F(e) {
465
482
  let { sense: t, objective: n, constraints: r, variables: i } = e, a = /* @__PURE__ */ new Map(), o = /* @__PURE__ */ new Map(), s = /* @__PURE__ */ new Map(), c = /* @__PURE__ */ new Set();
466
483
  for (let e of i) {
467
- let t = V(e.name, "x", e.id), n = t, r = 1;
484
+ let t = le(e.name, "x", e.id), n = t, r = 1;
468
485
  for (; c.has(n);) n = `${t}_${r++}`;
469
486
  c.add(n), o.set(e, n), a.set(n, e);
470
487
  }
471
488
  let l = /* @__PURE__ */ new Set(), u = /* @__PURE__ */ new Map();
472
489
  for (let e of r) {
473
- let t = V(e.name, "c", e.id), n = t, r = 1;
490
+ let t = le(e.name, "c", e.id), n = t, r = 1;
474
491
  for (; l.has(n);) n = `${t}_${r++}`;
475
492
  l.add(n), u.set(e, n), s.set(n, e);
476
493
  }
477
494
  let d = [];
478
495
  d.push(t === "Maximize" ? "Maximize" : "Minimize");
479
- let f = [], p = !0, m = n instanceof O ? n.linearTerms : n.terms;
496
+ let f = [], p = !0, m = n instanceof E ? n.linearTerms : n.terms;
480
497
  if (m) for (let [e, t] of m) {
481
498
  if (Math.abs(t) < 1e-12) continue;
482
499
  let n = o.get(e), r = t >= 0 ? p ? "" : "+ " : "- ", i = Math.abs(t), a = i === 1 ? "" : `${i} `;
483
500
  f.push(`${r}${a}${n}`), p = !1;
484
501
  }
485
- if (n instanceof O && n.quadTerms.size > 0) {
502
+ if (n instanceof E && n.quadTerms.size > 0) {
486
503
  let e = [], t = !0;
487
504
  for (let r of n.quadTerms.values()) {
488
505
  if (Math.abs(r.coeff) < 1e-12) continue;
@@ -533,8 +550,237 @@ function H(e) {
533
550
  };
534
551
  }
535
552
  //#endregion
553
+ //#region src/modeler/solvers/highs/worker-client.ts
554
+ var I = null, ue = 0, L = /* @__PURE__ */ new Map();
555
+ function de() {
556
+ if (typeof window > "u" || typeof Worker > "u") return null;
557
+ if (!I) try {
558
+ I = ee();
559
+ let e = I;
560
+ I.onmessage = (e) => {
561
+ let { type: t, id: n, result: r, runTime: i, error: a } = e.data, o = L.get(n);
562
+ o && (L.delete(n), t === "SOLVE_SUCCESS" ? o.resolve({
563
+ result: r,
564
+ runTime: i
565
+ }) : o.reject(Error(a || "Worker solve failed")));
566
+ };
567
+ let t = (t) => {
568
+ if (I === e) {
569
+ I = null, e.terminate();
570
+ for (let e of L.values()) e.reject(t);
571
+ L.clear();
572
+ }
573
+ };
574
+ I.onerror = (e) => t(/* @__PURE__ */ Error(`[WaSHI] HiGHS Worker failed to load or execute. Check Worker assets, CORS and CSP. ${e?.message || ""}`)), I.onmessageerror = () => t(/* @__PURE__ */ Error("[WaSHI] Could not deserialize the HiGHS Worker response."));
575
+ } catch {
576
+ I = null;
577
+ }
578
+ return I;
579
+ }
580
+ async function R(e, t = {}) {
581
+ let n = await _(t.wasmUrl), r = t.useWorker ?? typeof window < "u" ? de() : null;
582
+ if (!r) return m(e, t);
583
+ let i = {
584
+ ...t,
585
+ wasmUrl: n
586
+ }, a = `req_${++ue}`;
587
+ return new Promise((t, n) => {
588
+ L.set(a, {
589
+ resolve: t,
590
+ reject: n
591
+ });
592
+ try {
593
+ r.postMessage({
594
+ type: "SOLVE",
595
+ id: a,
596
+ lpString: e,
597
+ options: i
598
+ });
599
+ } catch (e) {
600
+ L.delete(a), n(e);
601
+ }
602
+ });
603
+ }
604
+ //#endregion
605
+ //#region src/modeler/solvers/highs/solver.ts
606
+ function z(e) {
607
+ if (typeof e != "string") return "Unknown";
608
+ let t = e.trim();
609
+ if (!t) return "Unknown";
610
+ switch (t) {
611
+ case "Optimal": return "Optimal";
612
+ case "Infeasible": return "Infeasible";
613
+ case "Unbounded": return "Unbounded";
614
+ case "Primal infeasible or unbounded": return "Unknown";
615
+ case "Time limit reached":
616
+ case "TimeLimit": return "TimeLimit";
617
+ case "Iteration limit reached":
618
+ case "IterationLimit": return "IterationLimit";
619
+ case "Bound on objective reached":
620
+ case "Target for objective reached":
621
+ case "Feasible": return "Feasible";
622
+ case "Not Set": return "NotSolved";
623
+ case "Load error":
624
+ case "Model error":
625
+ case "Presolve error":
626
+ case "Solve error":
627
+ case "Postsolve error":
628
+ case "Error": return "Error";
629
+ case "Empty":
630
+ case "Unknown": return "Unknown";
631
+ }
632
+ let n = t.toLowerCase();
633
+ return n.includes("infeasible") && n.includes("unbounded") ? "Unknown" : n.includes("infeasible") ? "Infeasible" : n.includes("unbounded") ? "Unbounded" : n.includes("time limit") || n.includes("timelimit") ? "TimeLimit" : n.includes("iteration limit") || n.includes("iterationlimit") ? "IterationLimit" : n.includes("error") ? "Error" : n === "optimal" ? "Optimal" : "Unknown";
634
+ }
635
+ var B = class e {
636
+ static capabilities = {
637
+ supportsMIP: !0,
638
+ supportsQP: !0
639
+ };
640
+ name = "HiGHS";
641
+ version = "1.15.3";
642
+ capabilities = e.capabilities;
643
+ options;
644
+ constructor(e = {}) {
645
+ this.options = e;
646
+ }
647
+ async solve(e, t, n = {}) {
648
+ let r = {
649
+ ...this.options,
650
+ ...n
651
+ }, { lpString: i, nameToVar: a, nameToConstraint: o } = t, { result: s, runTime: c } = await R(i, r), l = z(s?.Status), u = s.ObjectiveValue, d = typeof u == "number" ? u + e.objective.constant : null, f = {}, p = {}, m = {}, h = {};
652
+ if (s.Columns) for (let [e, t] of Object.entries(s.Columns)) {
653
+ let n = a.get(e);
654
+ if (n) {
655
+ let e = Math.abs(t.Primal) < 1e-9 ? 0 : t.Primal;
656
+ f[n.name] = e, t.Dual !== void 0 && (m[n.name] = Math.abs(t.Dual) < 1e-9 ? 0 : t.Dual);
657
+ }
658
+ }
659
+ if (s.Rows) {
660
+ let e = Array.isArray(s.Rows) ? s.Rows : Object.values(s.Rows);
661
+ for (let t of e) {
662
+ let e = t.Name, n = o.get(e);
663
+ if (n && (t.Dual !== void 0 && (p[n.name] = Math.abs(t.Dual) < 1e-9 ? 0 : t.Dual), t.Primal !== void 0)) {
664
+ let e = n.rhs - t.Primal;
665
+ h[n.name] = Math.abs(e) < 1e-9 ? 0 : e;
666
+ }
667
+ }
668
+ }
669
+ return {
670
+ status: l,
671
+ objectiveValue: d,
672
+ values: f,
673
+ reducedCosts: m,
674
+ duals: p,
675
+ slacks: h,
676
+ runTime: c,
677
+ raw: s
678
+ };
679
+ }
680
+ }, V = B;
681
+ function H() {
682
+ d("highs", (e) => new B(e)), l((e) => new B(e));
683
+ }
684
+ H();
685
+ //#endregion
686
+ //#region src/modeler/solvers/highs/index.ts
687
+ var U = /* @__PURE__ */ S({
688
+ HiGHS: () => V,
689
+ HighsSolver: () => B,
690
+ OFFICIAL_HIGHS_CDN_WASM_URL: () => b,
691
+ getHighs: () => g,
692
+ getHighsWasmUrl: () => v,
693
+ isValidWasmHeader: () => h,
694
+ mapHighsStatus: () => z,
695
+ probeWasmUrl: () => p,
696
+ registerHighsSolver: () => H,
697
+ resolveBrowserWasmUrl: () => _,
698
+ setHighsWasmUrl: () => y,
699
+ solveLp: () => R,
700
+ solveLpWithHighs: () => m
701
+ });
702
+ import * as fe from "./highs-worker-factory.js";
703
+ w(U, fe);
704
+ import * as pe from "./highs-assets.js";
705
+ w(U, pe);
706
+ //#endregion
707
+ //#region src/modeler/solvers/highs.ts
708
+ var W = /* @__PURE__ */ S({
709
+ HiGHS: () => V,
710
+ HighsSolver: () => B,
711
+ OFFICIAL_HIGHS_CDN_WASM_URL: () => b,
712
+ getHighs: () => g,
713
+ getHighsWasmUrl: () => v,
714
+ isValidWasmHeader: () => h,
715
+ mapHighsStatus: () => z,
716
+ probeWasmUrl: () => p,
717
+ registerHighsSolver: () => H,
718
+ resolveBrowserWasmUrl: () => _,
719
+ setHighsWasmUrl: () => y,
720
+ solveLp: () => R,
721
+ solveLpWithHighs: () => m
722
+ });
723
+ w(W, U);
724
+ //#endregion
725
+ //#region src/modeler/solvers/mock.ts
726
+ var G = class {
727
+ name;
728
+ capabilities;
729
+ options;
730
+ constructor(e = {}) {
731
+ this.name = e.name || "MockSolver", this.capabilities = e.capabilities || {
732
+ supportsMIP: !0,
733
+ supportsQP: !0
734
+ }, this.options = e;
735
+ }
736
+ async solve(e, t, n = {}) {
737
+ let r = {
738
+ ...this.options,
739
+ ...n
740
+ };
741
+ return r.delayMs && r.delayMs > 0 && await new Promise((e) => setTimeout(e, r.delayMs)), {
742
+ status: r.status || "Optimal",
743
+ objectiveValue: r.objectiveValue ?? 0,
744
+ values: r.values || {},
745
+ reducedCosts: r.reducedCosts,
746
+ duals: r.duals,
747
+ slacks: r.slacks,
748
+ runTime: .001,
749
+ raw: { mock: !0 }
750
+ };
751
+ }
752
+ };
753
+ function K() {
754
+ d("mock", (e) => new G(e));
755
+ }
756
+ K();
757
+ //#endregion
758
+ //#region src/modeler/solvers/index.ts
759
+ var q = /* @__PURE__ */ S({
760
+ HiGHS: () => V,
761
+ HighsSolver: () => B,
762
+ MockSolver: () => G,
763
+ OFFICIAL_HIGHS_CDN_WASM_URL: () => b,
764
+ getHighs: () => g,
765
+ getHighsWasmUrl: () => v,
766
+ getSolver: () => f,
767
+ isValidWasmHeader: () => h,
768
+ listAvailableSolvers: () => u,
769
+ mapHighsStatus: () => z,
770
+ probeWasmUrl: () => p,
771
+ registerHighsSolver: () => H,
772
+ registerMockSolver: () => K,
773
+ registerSolver: () => d,
774
+ resolveBrowserWasmUrl: () => _,
775
+ setDefaultSolver: () => l,
776
+ setHighsWasmUrl: () => y,
777
+ solveLp: () => R,
778
+ solveLpWithHighs: () => m
779
+ });
780
+ w(q, W);
781
+ //#endregion
536
782
  //#region src/modeler/model.ts
537
- var U = class {
783
+ var J = class {
538
784
  name;
539
785
  sense;
540
786
  objective;
@@ -551,8 +797,12 @@ var U = class {
551
797
  runTime = 0;
552
798
  solution = null;
553
799
  solver = null;
554
- constructor(e = {}) {
555
- this.name = e.name || "OptimizationModel", this.sense = e.sense || "Minimize", this.objective = new k(), e.solver && (this.solver = s(e.solver));
800
+ constructor(e = {}, t) {
801
+ let n;
802
+ n = typeof e == "string" ? {
803
+ ...t,
804
+ name: e
805
+ } : e, this.name = n.name || "OptimizationModel", this.sense = n.sense || "Minimize", this.objective = new D(), n.solver && (this.solver = f(n.solver));
556
806
  }
557
807
  get vars() {
558
808
  return this.variables;
@@ -574,7 +824,7 @@ var U = class {
574
824
  lb: n,
575
825
  ub: r
576
826
  } : e || {};
577
- let a = new N(i);
827
+ let a = new j(i);
578
828
  if (this.varMapByName.has(a.name)) throw Error(`Variable with name '${a.name}' already exists in model`);
579
829
  return this.variables.push(a), this.varMapByName.set(a.name, a), a;
580
830
  }
@@ -629,7 +879,7 @@ var U = class {
629
879
  return this.constrMapByName.get(e);
630
880
  }
631
881
  setObjective(e, t) {
632
- t && (this.sense = t), this.objective = typeof e == "string" ? I(e, (e) => this.getVarByName(e)) : typeof e == "number" ? new k(/* @__PURE__ */ new Map(), e) : e instanceof O || "terms" in e ? e.clone() : new k(/* @__PURE__ */ new Map([[e, 1]]), 0);
882
+ t && (this.sense = t), this.objective = typeof e == "string" ? M(e, (e) => this.getVarByName(e)) : typeof e == "number" ? new D(/* @__PURE__ */ new Map(), e) : e instanceof E || "terms" in e ? e.clone() : new D(/* @__PURE__ */ new Map([[e, 1]]), 0);
633
883
  }
634
884
  maximize(e) {
635
885
  this.setObjective(e, "Maximize");
@@ -638,7 +888,7 @@ var U = class {
638
888
  this.setObjective(e, "Minimize");
639
889
  }
640
890
  addBoolVar(e) {
641
- let t = new l(e);
891
+ let t = new n(e);
642
892
  return this.boolVars.push(t), t;
643
893
  }
644
894
  addConstraint(e, t) {
@@ -650,7 +900,7 @@ var U = class {
650
900
  }), e;
651
901
  }
652
902
  let n;
653
- if (typeof e == "string" ? n = L(e, (e) => this.getVarByName(e), t) : (n = e, t && (n.name = t)), this.constrMapByName.has(n.name)) throw Error(`Constraint with name '${n.name}' already exists in model`);
903
+ if (typeof e == "string" ? n = N(e, (e) => this.getVarByName(e), t) : (n = e, t && (n.name = t)), this.constrMapByName.has(n.name)) throw Error(`Constraint with name '${n.name}' already exists in model`);
654
904
  return this.constraints.push(n), this.constrMapByName.set(n.name, n), n;
655
905
  }
656
906
  addConstr(e, t) {
@@ -664,7 +914,7 @@ var U = class {
664
914
  for (let t of e) this.add(t);
665
915
  return this;
666
916
  }
667
- return e instanceof N ? (this.varMapByName.has(e.name) || (this.variables.push(e), this.varMapByName.set(e.name, e)), this) : (this.addConstraint(e, t), this);
917
+ return e instanceof j ? (this.varMapByName.has(e.name) || (this.variables.push(e), this.varMapByName.set(e.name, e)), this) : (this.addConstraint(e, t), this);
668
918
  }
669
919
  addIndicator(e, t, n = {}) {
670
920
  let r = n.activeValue === void 0 ? 1 : n.activeValue, i = n.M === void 0 ? 1e5 : n.M, a = n.name || `ind_${e.name}_${t.name}`, o = [], { lhs: s, sense: c, rhs: l } = t;
@@ -690,7 +940,7 @@ var U = class {
690
940
  return o;
691
941
  }
692
942
  toLpString() {
693
- let { lpString: e } = H({
943
+ let { lpString: e } = F({
694
944
  name: this.name,
695
945
  sense: this.sense,
696
946
  objective: this.objective,
@@ -701,7 +951,7 @@ var U = class {
701
951
  }
702
952
  async optimize(e, t) {
703
953
  let n, r;
704
- if (e && typeof e == "object" && "solve" in e && typeof e.solve == "function" ? (n = e, r = t || {}) : typeof e == "function" ? (n = new e(t), r = t || {}) : typeof e == "string" ? (n = s(e, t), r = t || {}) : (r = { ...e }, r.solver ? (n = s(r.solver, r), delete r.solver) : n = this.solver || s()), this.objective instanceof O && this.objective.quadTerms.size > 0 && n.capabilities?.supportsQP === !1) throw Error(`Solver "${n.name}" does not support quadratic objectives (QP). Please use a QP-capable solver such as HiGHS or Clarabel.`);
954
+ if (e && typeof e == "object" && "solve" in e && typeof e.solve == "function" ? (n = e, r = t || {}) : typeof e == "function" ? (n = new e(t), r = t || {}) : typeof e == "string" ? (n = f(e, t), r = t || {}) : (r = { ...e }, r.solver ? (n = f(r.solver, r), delete r.solver) : n = this.solver || f()), this.objective instanceof E && this.objective.quadTerms.size > 0 && n.capabilities?.supportsQP === !1) throw Error(`Solver "${n.name}" does not support quadratic objectives (QP). Please use a QP-capable solver such as HiGHS or Clarabel.`);
705
955
  let i = {
706
956
  name: this.name,
707
957
  sense: this.sense,
@@ -710,33 +960,33 @@ var U = class {
710
960
  variables: this.variables,
711
961
  logicalConstraints: this.logicalConstraints,
712
962
  boolVars: this.boolVars
713
- }, a = H(i), o = await n.solve(i, a, r);
963
+ }, a = F(i), o = await n.solve(i, a, r);
714
964
  this.runTime = o.runTime ?? 0, this.status = o.status, this.objectiveValue = o.objectiveValue ?? null;
715
- let c = {}, l = {}, u = {}, d = {};
965
+ let s = {}, c = {}, l = {}, u = {};
716
966
  if (this.values.clear(), o.values) for (let [e, t] of Object.entries(o.values)) {
717
967
  this.values.set(e, t);
718
968
  let n = this.getVarByName(e) || a.nameToVar.get(e);
719
- n && (n.value = t, c[n.name] = t);
969
+ n && (n.value = t, s[n.name] = t);
720
970
  }
721
971
  if (o.reducedCosts) for (let [e, t] of Object.entries(o.reducedCosts)) {
722
972
  let n = this.getVarByName(e) || a.nameToVar.get(e);
723
- n && (n.reducedCost = t, u[n.name] = t);
973
+ n && (n.reducedCost = t, l[n.name] = t);
724
974
  }
725
975
  if (o.duals) for (let [e, t] of Object.entries(o.duals)) {
726
976
  let n = this.getConstraintByName(e) || a.nameToConstraint.get(e);
727
- n && (n.dual = t, l[n.name] = t);
977
+ n && (n.dual = t, c[n.name] = t);
728
978
  }
729
979
  if (o.slacks) for (let [e, t] of Object.entries(o.slacks)) {
730
980
  let n = this.getConstraintByName(e) || a.nameToConstraint.get(e);
731
- n && (n.slack = t, d[n.name] = t);
981
+ n && (n.slack = t, u[n.name] = t);
732
982
  }
733
983
  return this.solution = {
734
984
  status: this.status,
735
985
  objectiveValue: this.objectiveValue,
736
- values: c,
737
- duals: l,
738
- reducedCosts: u,
739
- slacks: d,
986
+ values: s,
987
+ duals: c,
988
+ reducedCosts: l,
989
+ slacks: u,
740
990
  runTime: this.runTime,
741
991
  raw: o.raw
742
992
  }, this.status;
@@ -746,7 +996,7 @@ var U = class {
746
996
  }
747
997
  async check(e, t) {
748
998
  let n, r;
749
- if (e && typeof e == "object" && "solve" in e && typeof e.solve == "function" ? (n = e, r = t || {}) : typeof e == "function" ? (n = new e(t), r = t || {}) : typeof e == "string" ? (n = s(e, t), r = t || {}) : (r = { ...e }, r.solver ? (n = s(r.solver, r), delete r.solver) : n = this.solver || s()), this.logicalConstraints.length > 0 && n.capabilities?.supportsSMT !== !0) throw Error(`Solver "${n.name}" does not support SMT / logical constraints (or, implies, not, xor). Please use an SMT-capable solver such as Z3.`);
999
+ if (e && typeof e == "object" && "solve" in e && typeof e.solve == "function" ? (n = e, r = t || {}) : typeof e == "function" ? (n = new e(t), r = t || {}) : typeof e == "string" ? (n = f(e, t), r = t || {}) : (r = { ...e }, r.solver ? (n = f(r.solver, r), delete r.solver) : n = this.solver || f()), this.logicalConstraints.length > 0 && n.capabilities?.supportsSMT !== !0) throw Error(`Solver "${n.name}" does not support SMT / logical constraints (or, implies, not, xor). Please use an SMT-capable solver such as Z3.`);
750
1000
  if (typeof n.check == "function") {
751
1001
  let e = await n.check({
752
1002
  name: this.name,
@@ -767,7 +1017,7 @@ var U = class {
767
1017
  }
768
1018
  let i = this.objective, a = this.sense;
769
1019
  try {
770
- this.objective = new k(), this.sense = "Minimize";
1020
+ this.objective = new D(), this.sense = "Minimize";
771
1021
  let e = await this.optimize(n, r), t = e === "Optimal" || e === "Feasible", i = e === "Infeasible", a = {};
772
1022
  for (let e of this.variables) a[e.name] = e.value ?? 0;
773
1023
  return {
@@ -779,7 +1029,7 @@ var U = class {
779
1029
  this.objective = i, this.sense = a;
780
1030
  }
781
1031
  }
782
- }, W = "Minimize", G = "Maximize", K = "Continuous", q = "Integer", J = "Binary", Y = {
1032
+ }, Y = "Minimize", me = "Maximize", he = "Continuous", ge = "Integer", _e = "Binary", ve = {
783
1033
  Optimal: "Optimal",
784
1034
  Feasible: "Feasible",
785
1035
  Infeasible: "Infeasible",
@@ -791,7 +1041,7 @@ var U = class {
791
1041
  Sat: "Sat",
792
1042
  Unsat: "Unsat",
793
1043
  Unknown: "Unknown"
794
- }, X = class e extends N {
1044
+ }, ye = class e extends j {
795
1045
  constructor(e, t, n, r = "Continuous") {
796
1046
  super({
797
1047
  name: e,
@@ -809,13 +1059,13 @@ var U = class {
809
1059
  return o;
810
1060
  }
811
1061
  };
812
- function Z(e) {
1062
+ function be(e) {
813
1063
  return e == null ? null : typeof e == "number" ? e : e.value;
814
1064
  }
815
- var ne = class {
1065
+ var xe = class {
816
1066
  model;
817
- constructor(e = "NoName", t = W) {
818
- this.model = new U({
1067
+ constructor(e = "NoName", t = Y) {
1068
+ this.model = new J({
819
1069
  name: e,
820
1070
  sense: t
821
1071
  });
@@ -850,7 +1100,7 @@ var ne = class {
850
1100
  setObjective(e) {
851
1101
  if (typeof e == "object" && e) {
852
1102
  if ("terms" in e) for (let [t] of e.terms) this.addVariable(t);
853
- else e instanceof N && this.addVariable(e);
1103
+ else e instanceof j && this.addVariable(e);
854
1104
  }
855
1105
  this.model.setObjective(e);
856
1106
  }
@@ -859,7 +1109,7 @@ var ne = class {
859
1109
  return this.model.addConstraint(e, t);
860
1110
  }
861
1111
  add(e, t) {
862
- typeof e == "string" ? /(<=|>=|==|=<|=>|=)/.test(e) ? this.addConstraint(e, t) : this.setObjective(e) : e instanceof r ? this.addConstraint(e, t) : this.setObjective(e);
1112
+ typeof e == "string" ? /(<=|>=|==|=<|=>|=)/.test(e) ? this.addConstraint(e, t) : this.setObjective(e) : e instanceof c ? this.addConstraint(e, t) : this.setObjective(e);
863
1113
  }
864
1114
  async solve(e, t) {
865
1115
  return this.model.optimize(e, t);
@@ -867,21 +1117,21 @@ var ne = class {
867
1117
  toLpString() {
868
1118
  return this.model.toLpString();
869
1119
  }
870
- }, Q = "Minimize", $ = "Maximize", re = "Binary", ie = "Integer", ae = "Continuous";
871
- function oe(e) {
1120
+ }, X = "Minimize", Z = "Maximize", Q = "Binary", Se = "Integer", Ce = "Continuous";
1121
+ function we(e) {
872
1122
  return {
873
1123
  expr: e,
874
- sense: $
1124
+ sense: Z
875
1125
  };
876
1126
  }
877
- function se(e) {
1127
+ function Te(e) {
878
1128
  return {
879
1129
  expr: e,
880
- sense: Q
1130
+ sense: X
881
1131
  };
882
1132
  }
883
- var ce = class extends U {
884
- constructor(e = "MipModel", t = Q) {
1133
+ var $ = class extends J {
1134
+ constructor(e = "MipModel", t = X) {
885
1135
  super({
886
1136
  name: e,
887
1137
  sense: t
@@ -905,5 +1155,64 @@ var ce = class extends U {
905
1155
  return this.addConstraint(e, t);
906
1156
  }
907
1157
  };
1158
+ w(/* @__PURE__ */ S({
1159
+ BINARY: () => Q,
1160
+ BoolExpr: () => i,
1161
+ BoolOp: () => o,
1162
+ BoolVar: () => n,
1163
+ CONTINUOUS: () => Ce,
1164
+ Constraint: () => c,
1165
+ HiGHS: () => V,
1166
+ HighsSolver: () => B,
1167
+ INTEGER: () => Se,
1168
+ LinExpr: () => D,
1169
+ LpBinary: () => _e,
1170
+ LpContinuous: () => he,
1171
+ LpInteger: () => ge,
1172
+ LpMaximize: () => me,
1173
+ LpMinimize: () => Y,
1174
+ LpProblem: () => xe,
1175
+ LpStatus: () => ve,
1176
+ LpVariable: () => ye,
1177
+ MAXIMIZE: () => Z,
1178
+ MINIMIZE: () => X,
1179
+ MipModel: () => $,
1180
+ MockSolver: () => G,
1181
+ Model: () => J,
1182
+ OFFICIAL_HIGHS_CDN_WASM_URL: () => b,
1183
+ QuadExpr: () => E,
1184
+ Var: () => j,
1185
+ and: () => e,
1186
+ c: () => se,
1187
+ expr: () => ce,
1188
+ generateLpString: () => F,
1189
+ getHighs: () => g,
1190
+ getHighsWasmUrl: () => v,
1191
+ getSolver: () => f,
1192
+ implies: () => a,
1193
+ isValidWasmHeader: () => h,
1194
+ listAvailableSolvers: () => u,
1195
+ lpSum: () => A,
1196
+ mapHighsStatus: () => z,
1197
+ maximize: () => we,
1198
+ minimize: () => Te,
1199
+ not: () => s,
1200
+ or: () => t,
1201
+ parseConstraint: () => N,
1202
+ parseExpr: () => M,
1203
+ probeWasmUrl: () => p,
1204
+ registerHighsSolver: () => H,
1205
+ registerMockSolver: () => K,
1206
+ registerSolver: () => d,
1207
+ resolveBrowserWasmUrl: () => _,
1208
+ setDefaultSolver: () => l,
1209
+ setHighsWasmUrl: () => y,
1210
+ solveLp: () => R,
1211
+ solveLpWithHighs: () => m,
1212
+ sum: () => O,
1213
+ value: () => be,
1214
+ xor: () => r,
1215
+ xsum: () => k
1216
+ }), q);
908
1217
  //#endregion
909
- export { re as BINARY, i as BoolExpr, f as BoolOp, l as BoolVar, ae as CONTINUOUS, r as Constraint, ee as GLPKSolver, c as HiGHS, h as HighsSolver, ie as INTEGER, k as LinExpr, J as LpBinary, K as LpContinuous, q as LpInteger, G as LpMaximize, W as LpMinimize, ne as LpProblem, Y as LpStatus, X as LpVariable, $ as MAXIMIZE, Q as MINIMIZE, ce as MipModel, n as MockSolver, U as Model, T as OFFICIAL_HIGHS_CDN_WASM_URL, O as QuadExpr, N as Var, m as Z3Solver, o as and, z as c, B as expr, H as generateLpString, E as getGlpk, x as getHighs, C as getHighsWasmUrl, s as getSolver, a as implies, b as isValidWasmHeader, t as listAvailableSolvers, j as lpSum, oe as maximize, se as minimize, e as not, g as or, L as parseConstraint, I as parseExpr, v as probeWasmUrl, d as registerSolver, u as registerZ3Solver, S as resolveBrowserWasmUrl, p as setDefaultSolver, w as setHighsWasmUrl, y as solveLpWithHighs, A as sum, Z as value, _ as xor, te as xsum };
1218
+ export { Q as BINARY, i as BoolExpr, o as BoolOp, n as BoolVar, Ce as CONTINUOUS, c as Constraint, V as HiGHS, B as HighsSolver, Se as INTEGER, D as LinExpr, _e as LpBinary, he as LpContinuous, ge as LpInteger, me as LpMaximize, Y as LpMinimize, xe as LpProblem, ve as LpStatus, ye as LpVariable, Z as MAXIMIZE, X as MINIMIZE, $ as MipModel, G as MockSolver, J as Model, b as OFFICIAL_HIGHS_CDN_WASM_URL, E as QuadExpr, j as Var, e as and, se as c, ce as expr, F as generateLpString, g as getHighs, v as getHighsWasmUrl, f as getSolver, a as implies, h as isValidWasmHeader, u as listAvailableSolvers, A as lpSum, we as maximize, Te as minimize, s as not, t as or, N as parseConstraint, M as parseExpr, p as probeWasmUrl, d as registerSolver, _ as resolveBrowserWasmUrl, l as setDefaultSolver, y as setHighsWasmUrl, m as solveLpWithHighs, O as sum, be as value, r as xor, k as xsum };