openseesjs 0.2.2 → 0.2.4
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/API_REFERENCE.md +1 -0
- package/CHANGELOG.md +17 -0
- package/README.md +14 -0
- package/dist/native/OpenSeesNativeSession.d.ts.map +1 -1
- package/dist/native/OpenSeesNativeSession.js +7 -2
- package/dist/native/OpenSeesNativeSession.js.map +1 -1
- package/dist/native/OpenSeesOps.d.ts.map +1 -1
- package/dist/native/OpenSeesOps.js +7 -1
- package/dist/native/OpenSeesOps.js.map +1 -1
- package/dist/native-index.cjs +47 -2
- package/dist/native-index.cjs.map +4 -4
- package/dist/native-index.d.ts +1 -1
- package/dist/native-index.d.ts.map +1 -1
- package/dist/native-index.js +1 -1
- package/dist/native-index.js.map +1 -1
- package/dist/openseespy/createVariantCommand.js +22 -0
- package/dist/openseespy/createVariantCommand.js.map +1 -0
- package/dist/openseespy/generated/OpenSeesPyApi.generated.d.ts +951 -430
- package/dist/openseespy/generated/OpenSeesPyApi.generated.d.ts.map +1 -1
- package/dist/openseespy/generated/OpenSeesPyApi.generated.js +21 -0
- package/dist/openseespy/generated/OpenSeesPyApi.generated.js.map +1 -1
- package/package.json +3 -1
package/API_REFERENCE.md
CHANGED
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
Generated from the OpenSeesPy `3.8.0.0` command inventory.
|
|
4
4
|
The TypeScript signatures below are the public command overloads used by `ops`.
|
|
5
|
+
Typed variants are also discoverable as `ops.<command>.<type>(...)` methods.
|
|
5
6
|
Queries that return values directly are listed first.
|
|
6
7
|
|
|
7
8
|
## Native queries
|
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,22 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 0.2.4 - 2026-09-27
|
|
4
|
+
|
|
5
|
+
- Add discoverable, strongly typed variant methods to all polymorphic OpenSees
|
|
6
|
+
commands, including materials, recorders, sections, beam integrations and
|
|
7
|
+
analysis configuration, while preserving their Tcl-compatible callable forms.
|
|
8
|
+
- Generate and share one runtime variant-command inventory across the native,
|
|
9
|
+
minimal and Tcl backends.
|
|
10
|
+
- Add generated, discoverable element methods such as
|
|
11
|
+
`ops.element.elasticBeamColumn(...)` while preserving the Tcl-compatible
|
|
12
|
+
`ops.element("elasticBeamColumn", ...)` form.
|
|
13
|
+
- Share the variant dispatcher across the native, minimal and Tcl APIs.
|
|
14
|
+
|
|
15
|
+
## 0.2.3 - 2026-09-26
|
|
16
|
+
|
|
17
|
+
- Prioritize the typed `elasticBeamColumn` 2D/3D overloads in editor Signature
|
|
18
|
+
Help without changing the command API or native runtime.
|
|
19
|
+
|
|
3
20
|
## 0.2.2 - 2026-09-26
|
|
4
21
|
|
|
5
22
|
- Add a CommonJS entry point for TSLab, Jupyter and `require()` consumers while
|
package/README.md
CHANGED
|
@@ -66,6 +66,20 @@ finita de argumentos tienen overloads completos; las colecciones de longitud
|
|
|
66
66
|
realmente variable se reciben como arreglos con nombre y tipos de elementos
|
|
67
67
|
concretos.
|
|
68
68
|
|
|
69
|
+
Los elementos también están disponibles como métodos descubribles. Esta forma
|
|
70
|
+
muestra en IntelliSense únicamente las firmas del elemento seleccionado:
|
|
71
|
+
|
|
72
|
+
```ts
|
|
73
|
+
ops.element.elasticBeamColumn(1, 1, 2, A, E, Iz, transfTag);
|
|
74
|
+
ops.element.Truss(2, 2, 3, A, matTag);
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
La forma compatible con Tcl continúa disponible sin cambios:
|
|
78
|
+
|
|
79
|
+
```ts
|
|
80
|
+
ops.element('elasticBeamColumn', 1, 1, 2, A, E, Iz, transfTag);
|
|
81
|
+
```
|
|
82
|
+
|
|
69
83
|
## Organizacion recomendada
|
|
70
84
|
|
|
71
85
|
Mantenga un único `ops`, porque OpenSees utiliza un dominio global, y separe el
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OpenSeesNativeSession.d.ts","sourceRoot":"","sources":["../../src/native/OpenSeesNativeSession.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"OpenSeesNativeSession.d.ts","sourceRoot":"","sources":["../../src/native/OpenSeesNativeSession.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,wBAAwB,EAC7B,KAAK,qBAAqB,EAC3B,MAAM,oDAAoD,CAAC;AAC5D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAKjE,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACnE,OAAO,KAAK,EAAE,4BAA4B,EAAE,4BAA4B,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAKlH,MAAM,WAAW,sBAAuB,SAAQ,wBAAwB;CAAI;AAE5E,qBAAa,sBAAsB;IAGd,OAAO,CAAC,QAAQ,CAAC,OAAO;IAF3C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAgF;gBAEpE,OAAO,EAAE,4BAA4B;IAqBzE,OAAO,CAAC,IAAI,EAAE,qBAAqB,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,EAAE,IAAI,GAAE,SAAS,kBAAkB,EAAO,GAAG,IAAI;IAMpG,IAAI,CACF,IAAI,EAAE,qBAAqB,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,EAC3C,YAAY,EAAE,SAAS,CAAC,SAAS,kBAAkB,EAAE,CAAC,EAAE,GACvD,IAAI;IAWP,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,SAAS,kBAAkB,EAAE,CAAC,EAAE,GAAG,IAAI;IAI7D,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC,SAAS,kBAAkB,EAAE,CAAC,EAAE,GAAG,IAAI;IAIhE,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,SAAS,kBAAkB,EAAE,CAAC,EAAE,GAAG,IAAI;CAG9D;AAED;;;GAGG;AACH,qBAAa,qBAAqB;IAChC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAA+B;IAC9D,OAAO,CAAC,MAAM,CAAS;IAEvB,SAAgB,GAAG,EAAE,sBAAsB,CAAC;IAC5C,SAAgB,KAAK,EAAE,qBAAqB,CAAC;gBAE1B,OAAO,GAAE,4BAAiC;IAO7D,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,GAAE,SAAS,kBAAkB,EAAO,GAAG,mBAAmB;IAUtF,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,SAAS,CAAC,SAAS,kBAAkB,EAAE,CAAC,EAAE,GAAG,SAAS,mBAAmB,EAAE;IAkBrH,KAAK,IAAI,IAAI;IAMb,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,IAAI;IAIxB,OAAO,CAAC,UAAU;CAGnB"}
|
|
@@ -1,9 +1,11 @@
|
|
|
1
|
-
import { OPEN_SEES_PY_COMMANDS, } from '../openseespy/generated/OpenSeesPyApi.generated.js';
|
|
1
|
+
import { OPEN_SEES_PY_COMMANDS, OPEN_SEES_VARIANT_COMMANDS, } from '../openseespy/generated/OpenSeesPyApi.generated.js';
|
|
2
|
+
import { createVariantCommand } from '../openseespy/createVariantCommand.js';
|
|
2
3
|
import { flattenNativeArguments } from './flattenArguments.js';
|
|
3
4
|
import { invokeNative } from './OpenSeesCommandError.js';
|
|
4
5
|
import { loadNativeBinding } from './OpenSeesNativeBindingLoader.js';
|
|
5
6
|
import { OpenSeesNativeQueries } from './OpenSeesNativeQueries.js';
|
|
6
7
|
const commandNames = new Set(OPEN_SEES_PY_COMMANDS);
|
|
8
|
+
const variantCommandNames = new Set(OPEN_SEES_VARIANT_COMMANDS);
|
|
7
9
|
export class OpenSeesNativeCommands {
|
|
8
10
|
session;
|
|
9
11
|
methods = new Map();
|
|
@@ -15,10 +17,13 @@ export class OpenSeesNativeCommands {
|
|
|
15
17
|
const cached = target.methods.get(property);
|
|
16
18
|
if (cached !== undefined)
|
|
17
19
|
return cached;
|
|
18
|
-
const
|
|
20
|
+
const invoke = (args) => {
|
|
19
21
|
target.command(property, args);
|
|
20
22
|
return receiver;
|
|
21
23
|
};
|
|
24
|
+
const method = variantCommandNames.has(property)
|
|
25
|
+
? createVariantCommand(invoke)
|
|
26
|
+
: (...args) => invoke(args);
|
|
22
27
|
target.methods.set(property, method);
|
|
23
28
|
return method;
|
|
24
29
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OpenSeesNativeSession.js","sourceRoot":"","sources":["../../src/native/OpenSeesNativeSession.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,qBAAqB,
|
|
1
|
+
{"version":3,"file":"OpenSeesNativeSession.js","sourceRoot":"","sources":["../../src/native/OpenSeesNativeSession.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OpenSeesOps.d.ts","sourceRoot":"","sources":["../../src/native/OpenSeesOps.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAyB,MAAM,4BAA4B,CAAC;AAC3F,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACnE,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"OpenSeesOps.d.ts","sourceRoot":"","sources":["../../src/native/OpenSeesOps.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAyB,MAAM,4BAA4B,CAAC;AAC3F,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACnE,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,YAAY,CAAC;AAM/D,MAAM,MAAM,WAAW,GACnB,IAAI,CAAC,sBAAsB,EAAE,MAAM,qBAAqB,CAAC,GACzD,qBAAqB,GACrB;IAAE,OAAO,IAAI,IAAI,CAAA;CAAE,CAAC;AAExB;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,GAAE,4BAAiC,GAAG,WAAW,CAkCzF;AAED,yEAAyE;AACzE,eAAO,MAAM,GAAG,aAAsB,CAAC"}
|
|
@@ -1,5 +1,8 @@
|
|
|
1
1
|
import { OpenSeesNativeCommands, OpenSeesNativeSession } from './OpenSeesNativeSession.js';
|
|
2
2
|
import { OpenSeesNativeQueries } from './OpenSeesNativeQueries.js';
|
|
3
|
+
import { createVariantCommand } from '../openseespy/createVariantCommand.js';
|
|
4
|
+
import { OPEN_SEES_VARIANT_COMMANDS } from '../openseespy/generated/OpenSeesPyApi.generated.js';
|
|
5
|
+
const variantCommandNames = new Set(OPEN_SEES_VARIANT_COMMANDS);
|
|
3
6
|
/**
|
|
4
7
|
* Creates an OpenSeesPy-style facade. The native session is opened on the
|
|
5
8
|
* first command and remains reusable until `dispose()` is called.
|
|
@@ -22,7 +25,7 @@ export function createOpenSeesOps(options = {}) {
|
|
|
22
25
|
const cached = methods.get(property);
|
|
23
26
|
if (cached !== undefined)
|
|
24
27
|
return cached;
|
|
25
|
-
const
|
|
28
|
+
const invoke = (args) => {
|
|
26
29
|
const current = getSession();
|
|
27
30
|
const isQuery = property in OpenSeesNativeQueries.prototype;
|
|
28
31
|
const owner = isQuery ? current.query : current.ops;
|
|
@@ -32,6 +35,9 @@ export function createOpenSeesOps(options = {}) {
|
|
|
32
35
|
const result = Reflect.apply(value, owner, args);
|
|
33
36
|
return result === current.ops ? facade : result;
|
|
34
37
|
};
|
|
38
|
+
const method = variantCommandNames.has(property)
|
|
39
|
+
? createVariantCommand(invoke)
|
|
40
|
+
: (...args) => invoke(args);
|
|
35
41
|
methods.set(property, method);
|
|
36
42
|
return method;
|
|
37
43
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OpenSeesOps.js","sourceRoot":"","sources":["../../src/native/OpenSeesOps.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAC3F,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"OpenSeesOps.js","sourceRoot":"","sources":["../../src/native/OpenSeesOps.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAC3F,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAEnE,OAAO,EAAE,oBAAoB,EAAE,MAAM,uCAAuC,CAAC;AAC7E,OAAO,EAAE,0BAA0B,EAAE,MAAM,oDAAoD,CAAC;AAEhG,MAAM,mBAAmB,GAAG,IAAI,GAAG,CAAS,0BAA0B,CAAC,CAAC;AAOxE;;;GAGG;AACH,MAAM,UAAU,iBAAiB,CAAC,UAAwC,EAAE;IAC1E,IAAI,OAA0C,CAAC;IAC/C,MAAM,UAAU,GAAG,GAAG,EAAE,CAAC,OAAO,KAAK,IAAI,qBAAqB,CAAC,OAAO,CAAC,CAAC;IACxE,MAAM,OAAO,GAAG,IAAI,GAAG,EAA2C,CAAC;IAEnE,IAAI,MAAmB,CAAC;IACxB,MAAM,GAAG,IAAI,KAAK,CAAC,EAAE,EAAE;QACrB,GAAG,CAAC,OAAO,EAAE,QAAQ;YACnB,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;gBAC3B,OAAO,GAAG,EAAE;oBACV,OAAO,EAAE,KAAK,EAAE,CAAC;oBACjB,OAAO,GAAG,SAAS,CAAC;gBACtB,CAAC,CAAC;YACJ,CAAC;YACD,IAAI,OAAO,QAAQ,KAAK,QAAQ;gBAAE,OAAO,SAAS,CAAC;YACnD,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YACrC,IAAI,MAAM,KAAK,SAAS;gBAAE,OAAO,MAAM,CAAC;YACxC,MAAM,MAAM,GAAG,CAAC,IAAwB,EAAE,EAAE;gBAC1C,MAAM,OAAO,GAAG,UAAU,EAAE,CAAC;gBAC7B,MAAM,OAAO,GAAG,QAAQ,IAAI,qBAAqB,CAAC,SAAS,CAAC;gBAC5D,MAAM,KAAK,GAAG,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC;gBACpD,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;gBAC3C,IAAI,OAAO,KAAK,KAAK,UAAU;oBAAE,OAAO,KAAK,CAAC;gBAC9C,MAAM,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;gBACjD,OAAO,MAAM,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC;YAClD,CAAC,CAAC;YACF,MAAM,MAAM,GAAG,mBAAmB,CAAC,GAAG,CAAC,QAAQ,CAAC;gBAC9C,CAAC,CAAC,oBAAoB,CAAmB,MAAM,CAAC;gBAChD,CAAC,CAAC,CAAC,GAAG,IAAe,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YACzC,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;YAC9B,OAAO,MAAM,CAAC;QAChB,CAAC;KACF,CAAgB,CAAC;IAClB,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,yEAAyE;AACzE,MAAM,CAAC,MAAM,GAAG,GAAG,iBAAiB,EAAE,CAAC;AAEvC,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC"}
|
package/dist/native-index.cjs
CHANGED
|
@@ -22,6 +22,7 @@ var native_index_exports = {};
|
|
|
22
22
|
__export(native_index_exports, {
|
|
23
23
|
OPEN_SEES_PY_COMMANDS: () => OPEN_SEES_PY_COMMANDS,
|
|
24
24
|
OPEN_SEES_PY_VERSION: () => OPEN_SEES_PY_VERSION,
|
|
25
|
+
OPEN_SEES_VARIANT_COMMANDS: () => OPEN_SEES_VARIANT_COMMANDS,
|
|
25
26
|
OpenSeesCommandError: () => OpenSeesCommandError,
|
|
26
27
|
OpenSeesNativeCommands: () => OpenSeesNativeCommands,
|
|
27
28
|
OpenSeesNativeQueries: () => OpenSeesNativeQueries,
|
|
@@ -271,6 +272,45 @@ var OPEN_SEES_PY_COMMANDS = [
|
|
|
271
272
|
"wipeAnalysis",
|
|
272
273
|
"wipeReliability"
|
|
273
274
|
];
|
|
275
|
+
var OPEN_SEES_VARIANT_COMMANDS = [
|
|
276
|
+
"algorithm",
|
|
277
|
+
"analysis",
|
|
278
|
+
"beamIntegration",
|
|
279
|
+
"constraints",
|
|
280
|
+
"element",
|
|
281
|
+
"frictionModel",
|
|
282
|
+
"geomTransf",
|
|
283
|
+
"hystereticBackbone",
|
|
284
|
+
"integrator",
|
|
285
|
+
"mesh",
|
|
286
|
+
"nDMaterial",
|
|
287
|
+
"numberer",
|
|
288
|
+
"pattern",
|
|
289
|
+
"recorder",
|
|
290
|
+
"section",
|
|
291
|
+
"system",
|
|
292
|
+
"test",
|
|
293
|
+
"timeSeries",
|
|
294
|
+
"uniaxialMaterial"
|
|
295
|
+
];
|
|
296
|
+
|
|
297
|
+
// src/openseespy/createVariantCommand.ts
|
|
298
|
+
function createVariantCommand(invoke) {
|
|
299
|
+
const variants = /* @__PURE__ */ new Map();
|
|
300
|
+
const command = (...args) => invoke(args);
|
|
301
|
+
return new Proxy(command, {
|
|
302
|
+
get(target, property, receiver) {
|
|
303
|
+
if (typeof property !== "string" || property in target) {
|
|
304
|
+
return Reflect.get(target, property, receiver);
|
|
305
|
+
}
|
|
306
|
+
const cached = variants.get(property);
|
|
307
|
+
if (cached !== void 0) return cached;
|
|
308
|
+
const variant = (...args) => invoke([property, ...args]);
|
|
309
|
+
variants.set(property, variant);
|
|
310
|
+
return variant;
|
|
311
|
+
}
|
|
312
|
+
});
|
|
313
|
+
}
|
|
274
314
|
|
|
275
315
|
// src/native/flattenArguments.ts
|
|
276
316
|
function flattenNativeArguments(values) {
|
|
@@ -567,6 +607,7 @@ function resultTypeError(command, expected, actual) {
|
|
|
567
607
|
|
|
568
608
|
// src/native/OpenSeesNativeSession.ts
|
|
569
609
|
var commandNames = new Set(OPEN_SEES_PY_COMMANDS);
|
|
610
|
+
var variantCommandNames = new Set(OPEN_SEES_VARIANT_COMMANDS);
|
|
570
611
|
var OpenSeesNativeCommands = class {
|
|
571
612
|
constructor(session) {
|
|
572
613
|
this.session = session;
|
|
@@ -575,10 +616,11 @@ var OpenSeesNativeCommands = class {
|
|
|
575
616
|
if (typeof property === "string" && commandNames.has(property) && !(property in target)) {
|
|
576
617
|
const cached = target.methods.get(property);
|
|
577
618
|
if (cached !== void 0) return cached;
|
|
578
|
-
const
|
|
619
|
+
const invoke = (args) => {
|
|
579
620
|
target.command(property, args);
|
|
580
621
|
return receiver;
|
|
581
622
|
};
|
|
623
|
+
const method = variantCommandNames.has(property) ? createVariantCommand(invoke) : (...args) => invoke(args);
|
|
582
624
|
target.methods.set(property, method);
|
|
583
625
|
return method;
|
|
584
626
|
}
|
|
@@ -662,6 +704,7 @@ var OpenSeesNativeSession = class {
|
|
|
662
704
|
};
|
|
663
705
|
|
|
664
706
|
// src/native/OpenSeesOps.ts
|
|
707
|
+
var variantCommandNames2 = new Set(OPEN_SEES_VARIANT_COMMANDS);
|
|
665
708
|
function createOpenSeesOps(options = {}) {
|
|
666
709
|
let session;
|
|
667
710
|
const getSession = () => session ??= new OpenSeesNativeSession(options);
|
|
@@ -678,7 +721,7 @@ function createOpenSeesOps(options = {}) {
|
|
|
678
721
|
if (typeof property !== "string") return void 0;
|
|
679
722
|
const cached = methods.get(property);
|
|
680
723
|
if (cached !== void 0) return cached;
|
|
681
|
-
const
|
|
724
|
+
const invoke = (args) => {
|
|
682
725
|
const current = getSession();
|
|
683
726
|
const isQuery = property in OpenSeesNativeQueries.prototype;
|
|
684
727
|
const owner = isQuery ? current.query : current.ops;
|
|
@@ -687,6 +730,7 @@ function createOpenSeesOps(options = {}) {
|
|
|
687
730
|
const result = Reflect.apply(value, owner, args);
|
|
688
731
|
return result === current.ops ? facade : result;
|
|
689
732
|
};
|
|
733
|
+
const method = variantCommandNames2.has(property) ? createVariantCommand(invoke) : (...args) => invoke(args);
|
|
690
734
|
methods.set(property, method);
|
|
691
735
|
return method;
|
|
692
736
|
}
|
|
@@ -699,6 +743,7 @@ process.once("exit", () => ops.dispose());
|
|
|
699
743
|
0 && (module.exports = {
|
|
700
744
|
OPEN_SEES_PY_COMMANDS,
|
|
701
745
|
OPEN_SEES_PY_VERSION,
|
|
746
|
+
OPEN_SEES_VARIANT_COMMANDS,
|
|
702
747
|
OpenSeesCommandError,
|
|
703
748
|
OpenSeesNativeCommands,
|
|
704
749
|
OpenSeesNativeQueries,
|