@math.gl/core 5.0.0-alpha.17 → 5.0.0-alpha.19
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 +4 -0
- package/dist/classes/base/math-array.d.ts +1 -1
- package/dist/classes/base/math-array.d.ts.map +1 -1
- package/dist/classes/base/matrix.d.ts +1 -1
- package/dist/classes/base/matrix.d.ts.map +1 -1
- package/dist/classes/base/vector.d.ts +1 -1
- package/dist/classes/base/vector.d.ts.map +1 -1
- package/dist/classes/euler.d.ts +1 -1
- package/dist/classes/euler.d.ts.map +1 -1
- package/dist/classes/matrix3.d.ts +1 -1
- package/dist/classes/matrix3.d.ts.map +1 -1
- package/dist/classes/matrix4.d.ts +1 -1
- package/dist/classes/matrix4.d.ts.map +1 -1
- package/dist/classes/pose.d.ts +1 -1
- package/dist/classes/pose.d.ts.map +1 -1
- package/dist/classes/quaternion.d.ts +1 -1
- package/dist/classes/quaternion.d.ts.map +1 -1
- package/dist/classes/vector2.d.ts +1 -1
- package/dist/classes/vector2.d.ts.map +1 -1
- package/dist/classes/vector3.d.ts +1 -1
- package/dist/classes/vector3.d.ts.map +1 -1
- package/dist/classes/vector4.d.ts +1 -1
- package/dist/classes/vector4.d.ts.map +1 -1
- package/dist/expressions/expression-eval.d.ts +98 -0
- package/dist/expressions/expression-eval.d.ts.map +1 -0
- package/dist/expressions/expression-eval.js +302 -0
- package/dist/expressions/expression-eval.js.map +1 -0
- package/dist/expressions/function-libraries.d.ts +60 -0
- package/dist/expressions/function-libraries.d.ts.map +1 -0
- package/dist/expressions/function-libraries.js +69 -0
- package/dist/expressions/function-libraries.js.map +1 -0
- package/dist/expressions/function-registry.d.ts +93 -0
- package/dist/expressions/function-registry.d.ts.map +1 -0
- package/dist/expressions/function-registry.js +131 -0
- package/dist/expressions/function-registry.js.map +1 -0
- package/dist/expressions/get.d.ts +9 -0
- package/dist/expressions/get.d.ts.map +1 -0
- package/dist/expressions/get.js +32 -0
- package/dist/expressions/get.js.map +1 -0
- package/dist/expressions/index.cjs +1483 -0
- package/dist/expressions/index.cjs.map +6 -0
- package/dist/expressions/index.d.ts +7 -0
- package/dist/expressions/index.d.ts.map +1 -0
- package/dist/expressions/index.js +8 -0
- package/dist/expressions/index.js.map +1 -0
- package/dist/expressions/parse-expression-string.d.ts +21 -0
- package/dist/expressions/parse-expression-string.d.ts.map +1 -0
- package/dist/expressions/parse-expression-string.js +61 -0
- package/dist/expressions/parse-expression-string.js.map +1 -0
- package/dist/expressions/vendor/jsep/runtime.d.ts +3 -0
- package/dist/expressions/vendor/jsep/runtime.d.ts.map +1 -0
- package/dist/expressions/vendor/jsep/runtime.js +972 -0
- package/dist/expressions/vendor/jsep/runtime.js.map +1 -0
- package/dist/expressions/vendor/jsep/types.d.ts +141 -0
- package/dist/expressions/vendor/jsep/types.d.ts.map +1 -0
- package/dist/expressions/vendor/jsep/types.js +4 -0
- package/dist/expressions/vendor/jsep/types.js.map +1 -0
- package/dist/gl-matrix/common.d.ts +1 -1
- package/dist/gl-matrix/vec2.d.ts +1 -1
- package/dist/gl-matrix/vec2.d.ts.map +1 -1
- package/dist/index.d.ts +3 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/lib/common.d.ts +1 -1
- package/dist/lib/common.d.ts.map +1 -1
- package/dist/lib/gl-matrix-extras.d.ts +1 -1
- package/dist/lib/gl-matrix-extras.d.ts.map +1 -1
- package/dist/lib/validators.d.ts +1 -1
- package/dist/lib/validators.d.ts.map +1 -1
- package/dist/local-frame.d.ts +1 -1
- package/dist/local-frame.d.ts.map +1 -1
- package/dist/spheroid.d.ts +1 -1
- package/dist/spheroid.d.ts.map +1 -1
- package/dist/types/array-types.d.ts +98 -0
- package/dist/types/array-types.d.ts.map +1 -0
- package/dist/types/array-types.js +6 -0
- package/dist/types/array-types.js.map +1 -0
- package/dist/types/bigint.d.ts +21 -0
- package/dist/types/bigint.d.ts.map +1 -0
- package/dist/types/bigint.js +48 -0
- package/dist/types/bigint.js.map +1 -0
- package/dist/types/bounds-types.d.ts +11 -0
- package/dist/types/bounds-types.d.ts.map +1 -0
- package/dist/types/bounds-types.js +17 -0
- package/dist/types/bounds-types.js.map +1 -0
- package/dist/types/float16.d.ts +32 -0
- package/dist/types/float16.d.ts.map +1 -0
- package/dist/types/float16.js +41 -0
- package/dist/types/float16.js.map +1 -0
- package/dist/types/index.d.ts +6 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +6 -0
- package/dist/types/index.js.map +1 -0
- package/dist/types/is-array.d.ts +22 -0
- package/dist/types/is-array.d.ts.map +1 -0
- package/dist/types/is-array.js +36 -0
- package/dist/types/is-array.js.map +1 -0
- package/dist/types/spheroid.d.ts +8 -0
- package/dist/types/spheroid.d.ts.map +1 -0
- package/dist/types/spheroid.js +5 -0
- package/dist/types/spheroid.js.map +1 -0
- package/dist/types/typed-array-brand.d.ts +2 -0
- package/dist/types/typed-array-brand.d.ts.map +1 -0
- package/dist/types/typed-array-brand.js +10 -0
- package/dist/types/typed-array-brand.js.map +1 -0
- package/dist/types.cjs +67 -0
- package/dist/types.cjs.map +6 -0
- package/dist/types.d.ts +2 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +5 -0
- package/dist/types.js.map +1 -0
- package/package.json +12 -5
- package/src/classes/base/math-array.ts +1 -1
- package/src/classes/base/matrix.ts +1 -1
- package/src/classes/base/vector.ts +1 -1
- package/src/classes/euler.ts +1 -1
- package/src/classes/matrix3.ts +1 -1
- package/src/classes/matrix4.ts +1 -1
- package/src/classes/pose.ts +1 -1
- package/src/classes/quaternion.ts +1 -1
- package/src/classes/vector2.ts +1 -1
- package/src/classes/vector3.ts +1 -1
- package/src/classes/vector4.ts +1 -1
- package/src/expressions/expression-eval.ts +435 -0
- package/src/expressions/function-libraries.ts +123 -0
- package/src/expressions/function-registry.ts +163 -0
- package/src/expressions/get.ts +37 -0
- package/src/expressions/index.ts +22 -0
- package/src/expressions/parse-expression-string.ts +80 -0
- package/src/expressions/vendor/jsep/LICENSE.txt +23 -0
- package/src/expressions/vendor/jsep/README.md +22 -0
- package/src/expressions/vendor/jsep/runtime.ts +949 -0
- package/src/expressions/vendor/jsep/types.ts +179 -0
- package/src/gl-matrix/vec2.ts +1 -1
- package/src/index.ts +3 -3
- package/src/lib/common.ts +1 -1
- package/src/lib/gl-matrix-extras.ts +1 -1
- package/src/lib/validators.ts +1 -1
- package/src/local-frame.ts +1 -1
- package/src/spheroid.ts +1 -1
- package/src/types/array-types.ts +148 -0
- package/src/types/bigint.ts +56 -0
- package/src/types/bounds-types.ts +29 -0
- package/src/types/float16.ts +47 -0
- package/src/types/index.ts +45 -0
- package/src/types/is-array.ts +41 -0
- package/src/types/spheroid.ts +11 -0
- package/src/types/typed-array-brand.ts +14 -0
- package/src/types.ts +5 -0
package/README.md
CHANGED
|
@@ -10,3 +10,7 @@ The optional `@math.gl/core/spheroid` numeric entry supports the shared sphere/o
|
|
|
10
10
|
conversion paths used by geospatial and projection. It does not import vector/matrix
|
|
11
11
|
classes or global configuration. Its existing proj4js-derived arithmetic retains
|
|
12
12
|
MIT attribution and the full terms in [PROJ4-LICENSE.md](./PROJ4-LICENSE.md).
|
|
13
|
+
|
|
14
|
+
Expression parsing and evaluation are available at `@math.gl/core/expressions`. The core entry
|
|
15
|
+
includes the basic math function library. Earth-specific and DGGS function libraries are exposed
|
|
16
|
+
separately by `@math.gl/geospatial/expressions` and `@math.gl/dggs/expressions`.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"math-array.d.ts","sourceRoot":"","sources":["../../../src/classes/base/math-array.ts"],"names":[],"mappings":"AAIA,OAAO,EAAC,YAAY,EAAC,
|
|
1
|
+
{"version":3,"file":"math-array.d.ts","sourceRoot":"","sources":["../../../src/classes/base/math-array.ts"],"names":[],"mappings":"AAIA,OAAO,EAAC,YAAY,EAAC,uBAAoB;AACzC,OAAO,EAAC,oBAAoB,EAAuC,4BAAyB;AAE5F,0CAA0C;AAC1C,8BAAsB,SAAU,SAAQ,KAAK,CAAC,MAAM,CAAC;IACnD,gDAAgD;IAChD,QAAQ,KAAK,QAAQ,IAAI,MAAM,CAAC;IAEhC,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,YAAY,CAAC,GAAG,IAAI;IAEnD,QAAQ,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAI1D;;;OAGG;IACH,KAAK,IAAI,IAAI;IAKb,SAAS,CAAC,KAAK,EAAE,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,GAAE,MAAU,GAAG,IAAI;IAOlE,OAAO,CAAC,UAAU,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,UAAU;IACzE,OAAO,CAAC,WAAW,CAAC,EAAE,MAAM,EAAE,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,YAAY;IAS9D,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAIxE,IAAI,CAAC,aAAa,EAAE,QAAQ,CAAC,YAAY,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAO3E,EAAE,CAAC,CAAC,SAAS,YAAY,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,aAAa,EAAE,CAAC,GAAG,CAAC;IASzE,QAAQ,CAAC,MAAM,EAAE,IAAI,GAAG,IAAI;IAInB,QAAQ,IAAI,MAAM;IAI3B,0CAA0C;IAC1C,YAAY,CAAC,IAAI,EAAE,oBAAoB,GAAG,MAAM;IAQhD,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,YAAY,CAAC,GAAG,OAAO;IAY9C,WAAW,CAAC,KAAK,EAAE,QAAQ,CAAC,YAAY,CAAC,GAAG,OAAO;IAcnD,wCAAwC;IACxC,MAAM,IAAI,IAAI;IAOd,+CAA+C;IAC/C,IAAI,CAAC,CAAC,EAAE,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI;IAChD,IAAI,CAAC,CAAC,EAAE,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC,EAAE,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI;IAc3E,cAAc;IACd,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,YAAY,CAAC,GAAG,IAAI;IAOzC,cAAc;IACd,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,YAAY,CAAC,GAAG,IAAI;IAOzC,KAAK,CAAC,SAAS,EAAE,QAAQ,CAAC,YAAY,CAAC,EAAE,SAAS,EAAE,QAAQ,CAAC,YAAY,CAAC,GAAG,IAAI;IAOjF,GAAG,CAAC,GAAG,OAAO,EAAE,QAAQ,CAAC,YAAY,CAAC,EAAE,GAAG,IAAI;IAS/C,QAAQ,CAAC,GAAG,OAAO,EAAE,QAAQ,CAAC,YAAY,CAAC,EAAE,GAAG,IAAI;IASpD,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,QAAQ,CAAC,YAAY,CAAC,GAAG,IAAI;IAanD;;;OAGG;IACH,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAStC,8EAA8E;IAC9E,KAAK,IAAI,IAAI;IAOb,gFAAgF;IAChF,QAAQ,IAAI,OAAO;CAOpB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"matrix.d.ts","sourceRoot":"","sources":["../../../src/classes/base/matrix.ts"],"names":[],"mappings":"AAKA,OAAO,EAAC,YAAY,EAAC,
|
|
1
|
+
{"version":3,"file":"matrix.d.ts","sourceRoot":"","sources":["../../../src/classes/base/matrix.ts"],"names":[],"mappings":"AAKA,OAAO,EAAC,YAAY,EAAC,uBAAoB;AACzC,OAAO,EAAC,SAAS,EAAC,wBAAqB;AAIvC,8BAA8B;AAC9B,8BAAsB,MAAO,SAAQ,SAAS;IAC5C,QAAQ,KAAK,IAAI,IAAI,MAAM,CAAC;IAanB,QAAQ,IAAI,MAAM;IAmB3B,eAAe,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM;IAKjD,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM;IAK5C,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAIzD,SAAS,CAAC,SAAS,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,GAAG,SAAS;IACvE,SAAS,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,EAAE;IAaxC,SAAS,CAAC,WAAW,EAAE,MAAM,EAAE,YAAY,EAAE,QAAQ,CAAC,YAAY,CAAC,GAAG,IAAI;CAO3E"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vector.d.ts","sourceRoot":"","sources":["../../../src/classes/base/vector.ts"],"names":[],"mappings":"AAKA,OAAO,EAAC,YAAY,EAAC,
|
|
1
|
+
{"version":3,"file":"vector.d.ts","sourceRoot":"","sources":["../../../src/classes/base/vector.ts"],"names":[],"mappings":"AAKA,OAAO,EAAC,YAAY,EAAC,uBAAoB;AACzC,OAAO,EAAC,SAAS,EAAC,wBAAqB;AAIvC,sDAAsD;AACtD,8BAAsB,MAAO,SAAQ,SAAS;IAG5C,IAAI,CAAC,IAAI,MAAM,CAEd;IAED,IAAI,CAAC,CAAC,KAAK,EAAE,MAAM,EAElB;IAED,IAAI,CAAC,IAAI,MAAM,CAEd;IAED,IAAI,CAAC,CAAC,KAAK,EAAE,MAAM,EAElB;IAED;;;;;OAKG;IACH,GAAG,IAAI,MAAM;IAIb;;OAEG;IACH,SAAS,IAAI,MAAM;IAInB;;OAEG;IACH,aAAa,IAAI,MAAM;IAQvB;;OAEG;IACH,gBAAgB,IAAI,MAAM;IAI1B,QAAQ,CAAC,SAAS,EAAE,QAAQ,CAAC,YAAY,CAAC,GAAG,MAAM;IAInD,eAAe,CAAC,SAAS,EAAE,QAAQ,CAAC,YAAY,CAAC,GAAG,MAAM;IAS1D,GAAG,CAAC,SAAS,EAAE,QAAQ,CAAC,YAAY,CAAC,GAAG,MAAM;IAU9C,SAAS,IAAI,IAAI;IAUjB,QAAQ,CAAC,GAAG,OAAO,EAAE,QAAQ,CAAC,YAAY,CAAC,EAAE,GAAG,IAAI;IASpD,MAAM,CAAC,GAAG,OAAO,EAAE,QAAQ,CAAC,YAAY,CAAC,EAAE,GAAG,IAAI;IAWlD,QAAQ,IAAI,MAAM;IAGlB,UAAU,CAAC,MAAM,EAAE,QAAQ,CAAC,YAAY,CAAC,GAAG,MAAM;IAGlD,iBAAiB,CAAC,MAAM,EAAE,QAAQ,CAAC,YAAY,CAAC,GAAG,MAAM;IAIzD,YAAY,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM;IAK/B,YAAY,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAM5C,UAAU,CAAC,CAAC,EAAE,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC,EAAE,QAAQ,CAAC,YAAY,CAAC,GAAG,IAAI;IAItE,UAAU,CAAC,CAAC,EAAE,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC,EAAE,QAAQ,CAAC,YAAY,CAAC,GAAG,IAAI;IAItE,eAAe,CAAC,CAAC,EAAE,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC,EAAE,QAAQ,CAAC,YAAY,CAAC,GAAG,IAAI;IAI3E,eAAe,CAAC,CAAC,EAAE,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI;CAM5D"}
|
package/dist/classes/euler.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { MathArray } from "./base/math-array.js";
|
|
2
|
-
import { NumericArray } from
|
|
2
|
+
import { NumericArray } from "../types.js";
|
|
3
3
|
import type { EulerRotationOrder } from "./euler-types.js";
|
|
4
4
|
export type { EulerLike, EulerRotationOrder } from "./euler-types.js";
|
|
5
5
|
export declare class Euler extends MathArray {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"euler.d.ts","sourceRoot":"","sources":["../../src/classes/euler.ts"],"names":[],"mappings":"AAKA,OAAO,EAAC,SAAS,EAAC,6BAA0B;AAC5C,OAAO,EAAC,YAAY,EAAC,
|
|
1
|
+
{"version":3,"file":"euler.d.ts","sourceRoot":"","sources":["../../src/classes/euler.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"matrix3.d.ts","sourceRoot":"","sources":["../../src/classes/matrix3.ts"],"names":[],"mappings":"AAKA,OAAO,EAAC,YAAY,EAAE,aAAa,EAAC,
|
|
1
|
+
{"version":3,"file":"matrix3.d.ts","sourceRoot":"","sources":["../../src/classes/matrix3.ts"],"names":[],"mappings":"AAKA,OAAO,EAAC,YAAY,EAAE,aAAa,EAAC,oBAAiB;AACrD,OAAO,EAAC,MAAM,EAAC,yBAAsB;AAmBrC,aAAK,OAAO;IACV,QAAQ,IAAI;IACZ,QAAQ,IAAI;IACZ,QAAQ,IAAI;IACZ,QAAQ,IAAI;IACZ,QAAQ,IAAI;IACZ,QAAQ,IAAI;IACZ,QAAQ,IAAI;IACZ,QAAQ,IAAI;IACZ,QAAQ,IAAI;CACb;AAID,8DAA8D;AAC9D,MAAM,MAAM,WAAW,GAAG,OAAO,GAAG,aAAa,CAAC;AAElD;;;GAGG;AACH,qBAAa,OAAQ,SAAQ,MAAM;IACjC,MAAM,KAAK,QAAQ,IAAI,QAAQ,CAAC,OAAO,CAAC,CAEvC;IAED,MAAM,KAAK,IAAI,IAAI,QAAQ,CAAC,OAAO,CAAC,CAEnC;IAED,IAAI,QAAQ,IAAI,MAAM,CAErB;IAED,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED,IAAI,OAAO,IAAI,OAAO,OAAO,CAE5B;gBAEW,KAAK,CAAC,EAAE,QAAQ,CAAC,YAAY,CAAC;IAU1C,IAAI,CAAC,KAAK,EAAE,QAAQ,CAAC,YAAY,CAAC,GAAG,IAAI;IAgBzC,QAAQ,IAAI,IAAI;IAIhB;;;;OAIG;IAEH,UAAU,CAAC,MAAM,EAAE;QAAC,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;KAAC,GAAG,IAAI;IAI9C;;OAEG;IACH,cAAc,CAAC,CAAC,EAAE,QAAQ,CAAC,YAAY,CAAC,GAAG,IAAI;IAK/C,yEAAyE;IACzE,WAAW,CAAC,OAAO,EAAE,QAAQ,CAAC,YAAY,CAAC,GAAG,IAAI;IAclD;;OAEG;IAEH,GAAG,CACD,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,MAAM,GACV,IAAI;IAaP;;OAEG;IAEH,WAAW,CACT,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,MAAM,GACV,IAAI;IAeP,WAAW,IAAI,MAAM;IAKrB,SAAS,IAAI,IAAI;IAKjB,+EAA+E;IAC/E,MAAM,IAAI,IAAI;IAMd,YAAY,CAAC,CAAC,EAAE,YAAY,GAAG,IAAI;IAKnC,aAAa,CAAC,CAAC,EAAE,YAAY,GAAG,IAAI;IAKpC,MAAM,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAKpB,KAAK,CAAC,MAAM,EAAE,YAAY,GAAG,MAAM,GAAG,IAAI;IASnD,SAAS,CAAC,GAAG,EAAE,YAAY,GAAG,IAAI;IAMlC,SAAS,CAAC,MAAM,EAAE,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC,EAAE,YAAY,GAAG,YAAY;CAkB/E"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"matrix4.d.ts","sourceRoot":"","sources":["../../src/classes/matrix4.ts"],"names":[],"mappings":"AAKA,OAAO,EAAC,YAAY,EAAE,cAAc,EAAC,
|
|
1
|
+
{"version":3,"file":"matrix4.d.ts","sourceRoot":"","sources":["../../src/classes/matrix4.ts"],"names":[],"mappings":"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"}
|
package/dist/classes/pose.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Matrix4 } from "./matrix4.js";
|
|
2
2
|
import { Vector3 } from "./vector3.js";
|
|
3
3
|
import { Euler } from "./euler.js";
|
|
4
|
-
import { NumericArray } from
|
|
4
|
+
import { NumericArray } from "../types.js";
|
|
5
5
|
type PoseOptions = {
|
|
6
6
|
position?: Readonly<NumericArray>;
|
|
7
7
|
orientation?: Readonly<NumericArray>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pose.d.ts","sourceRoot":"","sources":["../../src/classes/pose.ts"],"names":[],"mappings":"AAKA,OAAO,EAAC,OAAO,EAAC,qBAAkB;AAClC,OAAO,EAAC,OAAO,EAAC,qBAAkB;AAClC,OAAO,EAAC,KAAK,EAAC,mBAAgB;AAC9B,OAAO,EAAC,YAAY,EAAC,
|
|
1
|
+
{"version":3,"file":"pose.d.ts","sourceRoot":"","sources":["../../src/classes/pose.ts"],"names":[],"mappings":"AAKA,OAAO,EAAC,OAAO,EAAC,qBAAkB;AAClC,OAAO,EAAC,OAAO,EAAC,qBAAkB;AAClC,OAAO,EAAC,KAAK,EAAC,mBAAgB;AAC9B,OAAO,EAAC,YAAY,EAAC,oBAAiB;AAEtC,KAAK,WAAW,GAAG;IACjB,QAAQ,CAAC,EAAE,QAAQ,CAAC,YAAY,CAAC,CAAC;IAClC,WAAW,CAAC,EAAE,QAAQ,CAAC,YAAY,CAAC,CAAC;IACrC,CAAC,CAAC,EAAE,MAAM,CAAC;IACX,CAAC,CAAC,EAAE,MAAM,CAAC;IACX,CAAC,CAAC,EAAE,MAAM,CAAC;IACX,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,qBAAa,IAAI;IACf,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,WAAW,EAAE,KAAK,CAAC;gBAEhB,EACV,CAAK,EACL,CAAK,EACL,CAAK,EACL,IAAQ,EACR,KAAS,EACT,GAAO,EACP,QAAQ,EACR,WAAW,EACZ,GAAE,WAAgB;IAanB,IAAI,CAAC,IAAI,MAAM,CAEd;IAED,IAAI,CAAC,CAAC,KAAK,EAAE,MAAM,EAElB;IAED,IAAI,CAAC,IAAI,MAAM,CAEd;IAED,IAAI,CAAC,CAAC,KAAK,EAAE,MAAM,EAElB;IAED,IAAI,CAAC,IAAI,MAAM,CAEd;IAED,IAAI,CAAC,CAAC,KAAK,EAAE,MAAM,EAElB;IAED,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED,IAAI,IAAI,CAAC,KAAK,EAAE,MAAM,EAErB;IAED,IAAI,KAAK,IAAI,MAAM,CAElB;IACD,IAAI,KAAK,CAAC,KAAK,EAAE,MAAM,EAEtB;IAED,IAAI,GAAG,IAAI,MAAM,CAEhB;IAED,IAAI,GAAG,CAAC,KAAK,EAAE,MAAM,EAEpB;IAED,WAAW,IAAI,OAAO;IAItB,cAAc,IAAI,KAAK;IAIvB,MAAM,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO;IAO3B,WAAW,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO;IAShC,uBAAuB,IAAI,OAAO;IA8BlC,+BAA+B,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO;IAMpD,6BAA6B,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO;CAKnD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"quaternion.d.ts","sourceRoot":"","sources":["../../src/classes/quaternion.ts"],"names":[],"mappings":"AAKA,OAAO,EAAC,YAAY,EAAC,
|
|
1
|
+
{"version":3,"file":"quaternion.d.ts","sourceRoot":"","sources":["../../src/classes/quaternion.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { NumericArray, NumericArray2 } from
|
|
1
|
+
import { NumericArray, NumericArray2 } from "../types.js";
|
|
2
2
|
import { Vector } from "./base/vector.js";
|
|
3
3
|
/** Helper type that captures array length for a 2 element vector */
|
|
4
4
|
export type Vector2Like = Vector2 | NumericArray2;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vector2.d.ts","sourceRoot":"","sources":["../../src/classes/vector2.ts"],"names":[],"mappings":"AAKA,OAAO,EAAC,YAAY,EAAE,aAAa,EAAC,
|
|
1
|
+
{"version":3,"file":"vector2.d.ts","sourceRoot":"","sources":["../../src/classes/vector2.ts"],"names":[],"mappings":"AAKA,OAAO,EAAC,YAAY,EAAE,aAAa,EAAC,oBAAiB;AAErD,OAAO,EAAC,MAAM,EAAC,yBAAsB;AAWrC,oEAAoE;AACpE,MAAM,MAAM,WAAW,GAAG,OAAO,GAAG,aAAa,CAAC;AAElD;;;GAGG;AACH,qBAAa,OAAQ,SAAQ,MAAM;gBAErB,CAAC,GAAE,MAAM,GAAG,QAAQ,CAAC,YAAY,CAAK,EAAE,CAAC,GAAE,MAAU;IAejE,GAAG,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI;IAM/B,IAAI,CAAC,KAAK,EAAE,QAAQ,CAAC,YAAY,CAAC,GAAG,IAAI;IAMzC,UAAU,CAAC,MAAM,EAAE;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAC,GAAG,IAAI;IAUvC,QAAQ,CAAC,MAAM,EAAE;QAAC,CAAC,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,CAAC,EAAE,MAAM,CAAA;KAAC,GAAG;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAC;IAQ3E,IAAI,QAAQ,IAAI,MAAM,CAErB;IAED;;;OAGG;IACH,eAAe,IAAI,MAAM;IAIzB;;;OAGG;IACH,aAAa,IAAI,MAAM;IAMvB;;;;OAIG;IACH,SAAS,CAAC,OAAO,EAAE,QAAQ,CAAC,YAAY,CAAC,GAAG,IAAI;IAIhD;;;;OAIG;IACH,gBAAgB,CAAC,OAAO,EAAE,QAAQ,CAAC,YAAY,CAAC,GAAG,IAAI;IAKvD;;;;OAIG;IACH,iBAAiB,CAAC,OAAO,EAAE,QAAQ,CAAC,YAAY,CAAC,GAAG,IAAI;IAKxD,kBAAkB,CAAC,OAAO,EAAE,QAAQ,CAAC,YAAY,CAAC,GAAG,IAAI;IAKzD,oBAAoB,CAAC,SAAS,EAAE,QAAQ,CAAC,YAAY,CAAC,GAAG,IAAI;IAK7D,kBAAkB,CAAC,OAAO,EAAE,QAAQ,CAAC,YAAY,CAAC,GAAG,IAAI;CAI1D"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { NumericArray, NumericArray3 } from
|
|
1
|
+
import { NumericArray, NumericArray3 } from "../types.js";
|
|
2
2
|
import { Vector } from "./base/vector.js";
|
|
3
3
|
/** Helper type that captures array length for a 3 element vector */
|
|
4
4
|
export type Vector3Like = Vector3 | NumericArray3;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vector3.d.ts","sourceRoot":"","sources":["../../src/classes/vector3.ts"],"names":[],"mappings":"AAKA,OAAO,EAAC,YAAY,EAAE,aAAa,EAAC,
|
|
1
|
+
{"version":3,"file":"vector3.d.ts","sourceRoot":"","sources":["../../src/classes/vector3.ts"],"names":[],"mappings":"AAKA,OAAO,EAAC,YAAY,EAAE,aAAa,EAAC,oBAAiB;AACrD,OAAO,EAAC,MAAM,EAAC,yBAAsB;AAqBrC,oEAAoE;AACpE,MAAM,MAAM,WAAW,GAAG,OAAO,GAAG,aAAa,CAAC;AAElD;;;GAGG;AACH,qBAAa,OAAQ,SAAQ,MAAM;IACjC,MAAM,KAAK,IAAI,IAAI,OAAO,CAMzB;IAED;;;;;OAKG;gBACS,CAAC,GAAE,MAAM,GAAG,QAAQ,CAAC,YAAY,CAAK,EAAE,CAAC,GAAE,MAAU,EAAE,CAAC,GAAE,MAAU;IAmBhF,GAAG,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI;IAO1C,IAAI,CAAC,KAAK,EAAE,QAAQ,CAAC,YAAY,CAAC,GAAG,IAAI;IAOzC,UAAU,CAAC,MAAM,EAAE;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAC,GAAG,IAAI;IAYlD,QAAQ,CAAC,MAAM,EAAE;QAAC,CAAC,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,CAAC,EAAE,MAAM,CAAA;KAAC,GAAG;QAC/D,CAAC,EAAE,MAAM,CAAC;QACV,CAAC,EAAE,MAAM,CAAC;QACV,CAAC,EAAE,MAAM,CAAC;KACX;IASD,IAAI,QAAQ,IAAI,MAAM,CAErB;IACD,IAAI,CAAC,IAAI,MAAM,CAEd;IACD,IAAI,CAAC,CAAC,KAAK,EAAE,MAAM,EAElB;IAID,KAAK,CAAC,MAAM,EAAE,QAAQ,CAAC,YAAY,CAAC,GAAG,MAAM;IAM7C,KAAK,CAAC,MAAM,EAAE,QAAQ,CAAC,YAAY,CAAC,GAAG,IAAI;IAK3C,OAAO,CAAC,EAAC,OAAO,EAAE,MAAe,EAAC,EAAE;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,QAAQ,CAAC,YAAY,CAAC,CAAA;KAAC,GAAG,IAAI;IAK7F,OAAO,CAAC,EAAC,OAAO,EAAE,MAAe,EAAC,EAAE;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,QAAQ,CAAC,YAAY,CAAC,CAAA;KAAC,GAAG,IAAI;IAK7F,OAAO,CAAC,EAAC,OAAO,EAAE,MAAe,EAAC,EAAE;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,QAAQ,CAAC,YAAY,CAAC,CAAA;KAAC,GAAG,IAAI;IAQ7F,SAAS,CAAC,OAAO,EAAE,QAAQ,CAAC,YAAY,CAAC,GAAG,IAAI;IAKhD,gBAAgB,CAAC,OAAO,EAAE,QAAQ,CAAC,YAAY,CAAC,GAAG,IAAI;IAMvD,iBAAiB,CAAC,OAAO,EAAE,QAAQ,CAAC,YAAY,CAAC,GAAG,IAAI;IAKxD,kBAAkB,CAAC,OAAO,EAAE,QAAQ,CAAC,YAAY,CAAC,GAAG,IAAI;IAKzD,kBAAkB,CAAC,OAAO,EAAE,QAAQ,CAAC,YAAY,CAAC,GAAG,IAAI;IAKzD,qBAAqB,CAAC,UAAU,EAAE,QAAQ,CAAC,YAAY,CAAC,GAAG,IAAI;CAIhE"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { NumericArray, NumericArray4 } from
|
|
1
|
+
import { NumericArray, NumericArray4 } from "../types.js";
|
|
2
2
|
import { Vector } from "./base/vector.js";
|
|
3
3
|
import type { Matrix4 } from "./matrix4.js";
|
|
4
4
|
/** Helper type that captures array length for a 4 element vector */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vector4.d.ts","sourceRoot":"","sources":["../../src/classes/vector4.ts"],"names":[],"mappings":"AAKA,OAAO,EAAC,YAAY,EAAE,aAAa,EAAC,
|
|
1
|
+
{"version":3,"file":"vector4.d.ts","sourceRoot":"","sources":["../../src/classes/vector4.ts"],"names":[],"mappings":"AAKA,OAAO,EAAC,YAAY,EAAE,aAAa,EAAC,oBAAiB;AAQrD,OAAO,EAAC,MAAM,EAAC,yBAAsB;AAIrC,OAAO,KAAK,EAAC,OAAO,EAAC,qBAAkB;AAIvC,oEAAoE;AACpE,MAAM,MAAM,WAAW,GAAG,OAAO,GAAG,aAAa,CAAC;AAElD;;;GAGG;AACH,qBAAa,OAAQ,SAAQ,MAAM;IACjC,MAAM,KAAK,IAAI,IAAI,OAAO,CAMzB;gBAEW,CAAC,GAAE,MAAM,GAAG,QAAQ,CAAC,YAAY,CAAK,EAAE,CAAC,GAAE,MAAU,EAAE,CAAC,GAAE,MAAU,EAAE,CAAC,GAAE,MAAU;IAoB/F,GAAG,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI;IAQrD,IAAI,CAAC,KAAK,EAAE,QAAQ,CAAC,YAAY,CAAC,GAAG,IAAI;IAQzC,UAAU,CAAC,MAAM,EAAE;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAC,GAAG,IAAI;IAc7D,QAAQ,CAAC,MAAM,EAAE;QAAC,CAAC,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,CAAC,EAAE,MAAM,CAAA;KAAC,GAAG;QAC3E,CAAC,EAAE,MAAM,CAAC;QACV,CAAC,EAAE,MAAM,CAAC;QACV,CAAC,EAAE,MAAM,CAAC;QACV,CAAC,EAAE,MAAM,CAAC;KACX;IAeD,IAAI,QAAQ,IAAI,MAAM,CAErB;IAED,IAAI,CAAC,IAAI,MAAM,CAEd;IACD,IAAI,CAAC,CAAC,KAAK,EAAE,MAAM,EAElB;IACD,IAAI,CAAC,IAAI,MAAM,CAEd;IACD,IAAI,CAAC,CAAC,KAAK,EAAE,MAAM,EAElB;IAED,SAAS,CAAC,OAAO,EAAE,QAAQ,CAAC,YAAY,CAAC,GAAG,IAAI;IAKhD,kBAAkB,CAAC,OAAO,EAAE,QAAQ,CAAC,YAAY,CAAC,GAAG,IAAI;IAKzD,kBAAkB,CAAC,OAAO,EAAE,QAAQ,CAAC,YAAY,CAAC,GAAG,IAAI;IAKzD,qBAAqB,CAAC,UAAU,EAAE,QAAQ,CAAC,YAAY,CAAC,GAAG,IAAI;IAM/D,YAAY,CAAC,CAAC,EAAE,OAAO,GAAG,IAAI;CAI/B"}
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
import type { Jsep as JsepTypes } from "./vendor/jsep/types.js";
|
|
2
|
+
import { type ExpressionEvaluationOptions } from "./function-libraries.js";
|
|
3
|
+
/**
|
|
4
|
+
* Named values and functions available while evaluating an expression.
|
|
5
|
+
*/
|
|
6
|
+
export type ExpressionContext = Record<string, unknown>;
|
|
7
|
+
/**
|
|
8
|
+
* A JSEP abstract syntax tree node supported by the evaluator.
|
|
9
|
+
*/
|
|
10
|
+
export type Expression = JsepTypes.ArrayExpression | JsepTypes.BinaryExpression | JsepTypes.CallExpression | JsepTypes.ConditionalExpression | JsepTypes.Identifier | JsepTypes.Literal | JsepTypes.MemberExpression | JsepTypes.ThisExpression | JsepTypes.UnaryExpression;
|
|
11
|
+
/**
|
|
12
|
+
* Evaluator implementation for a custom unary operator.
|
|
13
|
+
*
|
|
14
|
+
* @param operand - Value produced by the operator's operand expression.
|
|
15
|
+
* @returns The operator result.
|
|
16
|
+
*/
|
|
17
|
+
export type UnaryOperator = (operand: any) => any;
|
|
18
|
+
/**
|
|
19
|
+
* Evaluator implementation for a custom binary operator.
|
|
20
|
+
*
|
|
21
|
+
* @param left - Value produced by the left operand expression.
|
|
22
|
+
* @param right - Value produced by the right operand expression.
|
|
23
|
+
* @returns The operator result.
|
|
24
|
+
*/
|
|
25
|
+
export type BinaryOperator = (left: any, right: any) => any;
|
|
26
|
+
/** Evaluates one expression node synchronously. */
|
|
27
|
+
declare function evaluateExpression(node: JsepTypes.Expression, context: ExpressionContext, options?: ExpressionEvaluationOptions): unknown;
|
|
28
|
+
/**
|
|
29
|
+
* Evaluates a parsed expression asynchronously.
|
|
30
|
+
*
|
|
31
|
+
* @param node - Expression AST to evaluate.
|
|
32
|
+
* @param context - Named values and functions available to the expression.
|
|
33
|
+
* @param options - Function libraries to add to the context.
|
|
34
|
+
* @returns The resolved expression value.
|
|
35
|
+
*
|
|
36
|
+
* @remarks
|
|
37
|
+
* Function calls are awaited, including calls nested inside arrays, member
|
|
38
|
+
* expressions, conditionals, unary expressions, and binary expressions.
|
|
39
|
+
*/
|
|
40
|
+
export declare function evalAsync(node: JsepTypes.Expression, context: ExpressionContext, options?: ExpressionEvaluationOptions): Promise<unknown>;
|
|
41
|
+
/**
|
|
42
|
+
* Compiles an expression into a reusable synchronous evaluator.
|
|
43
|
+
*
|
|
44
|
+
* @param expression - Expression source or a previously parsed AST.
|
|
45
|
+
* @param options - Function libraries to add to each evaluation context.
|
|
46
|
+
* @returns A function that evaluates the expression against a context.
|
|
47
|
+
*/
|
|
48
|
+
export declare function compile(expression: string | JsepTypes.Expression, options?: ExpressionEvaluationOptions): (context: ExpressionContext) => unknown;
|
|
49
|
+
/**
|
|
50
|
+
* Compiles an expression into a reusable asynchronous evaluator.
|
|
51
|
+
*
|
|
52
|
+
* @param expression - Expression source or a previously parsed AST.
|
|
53
|
+
* @param options - Function libraries to add to each evaluation context.
|
|
54
|
+
* @returns A function that asynchronously evaluates the expression.
|
|
55
|
+
*/
|
|
56
|
+
export declare function compileAsync(expression: string | JsepTypes.Expression, options?: ExpressionEvaluationOptions): (context: ExpressionContext) => Promise<unknown>;
|
|
57
|
+
/**
|
|
58
|
+
* Registers a custom unary operator with the parser and evaluator.
|
|
59
|
+
*
|
|
60
|
+
* @param operator - Operator token to register.
|
|
61
|
+
* @param fn - Evaluator implementation for the operator.
|
|
62
|
+
*
|
|
63
|
+
* @remarks
|
|
64
|
+
* Registration changes module-global parser state and affects subsequent
|
|
65
|
+
* calls to {@link parse}.
|
|
66
|
+
*/
|
|
67
|
+
export declare function addUnaryOp(operator: string, fn: UnaryOperator): void;
|
|
68
|
+
/**
|
|
69
|
+
* Registers a custom binary operator with the parser and evaluator.
|
|
70
|
+
*
|
|
71
|
+
* @param operator - Operator token to register.
|
|
72
|
+
* @param precedenceOrFn - Parser precedence, or the evaluator implementation
|
|
73
|
+
* when using the default precedence for a built-in operator.
|
|
74
|
+
* @param fn - Evaluator implementation when an explicit precedence is given.
|
|
75
|
+
*
|
|
76
|
+
* @remarks
|
|
77
|
+
* Registration changes module-global parser state and affects subsequent
|
|
78
|
+
* calls to {@link parse}. New operators should provide explicit precedence.
|
|
79
|
+
*/
|
|
80
|
+
export declare function addBinaryOp(operator: string, precedenceOrFn: number | BinaryOperator, fn?: BinaryOperator): void;
|
|
81
|
+
/**
|
|
82
|
+
* Parses expression source into a JSEP abstract syntax tree.
|
|
83
|
+
*
|
|
84
|
+
* @param expression - Expression source or an existing AST.
|
|
85
|
+
* @returns A parsed AST, or the supplied AST unchanged.
|
|
86
|
+
* @throws If the expression string is not valid JSEP syntax.
|
|
87
|
+
*/
|
|
88
|
+
export declare function parse(expression: string | JsepTypes.Expression): JsepTypes.Expression;
|
|
89
|
+
/**
|
|
90
|
+
* Evaluates a parsed expression synchronously.
|
|
91
|
+
*
|
|
92
|
+
* @param node - Expression AST to evaluate.
|
|
93
|
+
* @param context - Named values and functions available to the expression.
|
|
94
|
+
* @param options - Function libraries to add to the context.
|
|
95
|
+
* @returns The expression value.
|
|
96
|
+
*/
|
|
97
|
+
export { evaluateExpression as eval };
|
|
98
|
+
//# sourceMappingURL=expression-eval.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"expression-eval.d.ts","sourceRoot":"","sources":["../../src/expressions/expression-eval.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAC,IAAI,IAAI,SAAS,EAAC,+BAA4B;AAC3D,OAAO,EAAyB,KAAK,2BAA2B,EAAC,gCAA6B;AAI9F;;GAEG;AACH,MAAM,MAAM,iBAAiB,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAExD;;GAEG;AACH,MAAM,MAAM,UAAU,GAClB,SAAS,CAAC,eAAe,GACzB,SAAS,CAAC,gBAAgB,GAC1B,SAAS,CAAC,cAAc,GACxB,SAAS,CAAC,qBAAqB,GAC/B,SAAS,CAAC,UAAU,GACpB,SAAS,CAAC,OAAO,GACjB,SAAS,CAAC,gBAAgB,GAC1B,SAAS,CAAC,cAAc,GACxB,SAAS,CAAC,eAAe,CAAC;AAE9B;;;;;GAKG;AACH,MAAM,MAAM,aAAa,GAAG,CAAC,OAAO,EAAE,GAAG,KAAK,GAAG,CAAC;AAElD;;;;;;GAMG;AACH,MAAM,MAAM,cAAc,GAAG,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,KAAK,GAAG,CAAC;AAqH5D,mDAAmD;AAEnD,iBAAS,kBAAkB,CACzB,IAAI,EAAE,SAAS,CAAC,UAAU,EAC1B,OAAO,EAAE,iBAAiB,EAC1B,OAAO,CAAC,EAAE,2BAA2B,GACpC,OAAO,CAqET;AAOD;;;;;;;;;;;GAWG;AAEH,wBAAsB,SAAS,CAC7B,IAAI,EAAE,SAAS,CAAC,UAAU,EAC1B,OAAO,EAAE,iBAAiB,EAC1B,OAAO,CAAC,EAAE,2BAA2B,GACpC,OAAO,CAAC,OAAO,CAAC,CAuElB;AAED;;;;;;GAMG;AACH,wBAAgB,OAAO,CACrB,UAAU,EAAE,MAAM,GAAG,SAAS,CAAC,UAAU,EACzC,OAAO,CAAC,EAAE,2BAA2B,GACpC,CAAC,OAAO,EAAE,iBAAiB,KAAK,OAAO,CAGzC;AAED;;;;;;GAMG;AACH,wBAAgB,YAAY,CAC1B,UAAU,EAAE,MAAM,GAAG,SAAS,CAAC,UAAU,EACzC,OAAO,CAAC,EAAE,2BAA2B,GACpC,CAAC,OAAO,EAAE,iBAAiB,KAAK,OAAO,CAAC,OAAO,CAAC,CAGlD;AAED;;;;;;;;;GASG;AACH,wBAAgB,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,aAAa,GAAG,IAAI,CAGpE;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,WAAW,CACzB,QAAQ,EAAE,MAAM,EAChB,cAAc,EAAE,MAAM,GAAG,cAAc,EACvC,EAAE,CAAC,EAAE,cAAc,GAClB,IAAI,CASN;AAED;;;;;;GAMG;AACH,wBAAgB,KAAK,CAAC,UAAU,EAAE,MAAM,GAAG,SAAS,CAAC,UAAU,GAAG,SAAS,CAAC,UAAU,CAErF;AAED;;;;;;;GAOG;AACH,OAAO,EAAC,kBAAkB,IAAI,IAAI,EAAC,CAAC"}
|
|
@@ -0,0 +1,302 @@
|
|
|
1
|
+
// math.gl
|
|
2
|
+
// SPDX-License-Identifier: MIT
|
|
3
|
+
// SPDX-FileCopyrightText: Copyright (c) 2013 Stephen Oney
|
|
4
|
+
// SPDX-FileCopyrightText: Copyright (c) 2023 Don McCurdy
|
|
5
|
+
// SPDX-FileCopyrightText: Copyright (c) vis.gl contributors
|
|
6
|
+
// SPDX-FileComment: Sources include jsep and expression-eval under MIT. Original source credits retained below.
|
|
7
|
+
/**
|
|
8
|
+
* Sources:
|
|
9
|
+
* - Copyright (c) 2013 Stephen Oney, http://jsep.from.so/, MIT License
|
|
10
|
+
* - Copyright (c) 2023 Don McCurdy, https://github.com/donmccurdy/expression-eval, MIT License
|
|
11
|
+
*/
|
|
12
|
+
/* eslint-disable @typescript-eslint/no-explicit-any, @typescript-eslint/no-unsafe-return, @typescript-eslint/restrict-plus-operands */
|
|
13
|
+
import jsepRuntime from "./vendor/jsep/runtime.js";
|
|
14
|
+
import { mergeFunctionLibraries } from "./function-libraries.js";
|
|
15
|
+
const jsep = jsepRuntime;
|
|
16
|
+
const DEFAULT_PRECEDENCE = {
|
|
17
|
+
'||': 1,
|
|
18
|
+
'&&': 2,
|
|
19
|
+
'|': 3,
|
|
20
|
+
'^': 4,
|
|
21
|
+
'&': 5,
|
|
22
|
+
'==': 6,
|
|
23
|
+
'!=': 6,
|
|
24
|
+
'===': 6,
|
|
25
|
+
'!==': 6,
|
|
26
|
+
'<': 7,
|
|
27
|
+
'>': 7,
|
|
28
|
+
'<=': 7,
|
|
29
|
+
'>=': 7,
|
|
30
|
+
'<<': 8,
|
|
31
|
+
'>>': 8,
|
|
32
|
+
'>>>': 8,
|
|
33
|
+
'+': 9,
|
|
34
|
+
'-': 9,
|
|
35
|
+
'*': 10,
|
|
36
|
+
'/': 10,
|
|
37
|
+
'%': 10
|
|
38
|
+
};
|
|
39
|
+
const binops = {
|
|
40
|
+
'||': (a, b) => a || b,
|
|
41
|
+
'&&': (a, b) => a && b,
|
|
42
|
+
'|': (a, b) => a | b,
|
|
43
|
+
'^': (a, b) => a ^ b,
|
|
44
|
+
'&': (a, b) => a & b,
|
|
45
|
+
'==': (a, b) => {
|
|
46
|
+
// biome-ignore lint/suspicious/noDoubleEquals: this operator implements JavaScript loose equality.
|
|
47
|
+
return a == b;
|
|
48
|
+
},
|
|
49
|
+
'!=': (a, b) => {
|
|
50
|
+
// biome-ignore lint/suspicious/noDoubleEquals: this operator implements JavaScript loose inequality.
|
|
51
|
+
return a != b;
|
|
52
|
+
},
|
|
53
|
+
'===': (a, b) => a === b,
|
|
54
|
+
'!==': (a, b) => a !== b,
|
|
55
|
+
'<': (a, b) => a < b,
|
|
56
|
+
'>': (a, b) => a > b,
|
|
57
|
+
'<=': (a, b) => a <= b,
|
|
58
|
+
'>=': (a, b) => a >= b,
|
|
59
|
+
'<<': (a, b) => a << b,
|
|
60
|
+
'>>': (a, b) => a >> b,
|
|
61
|
+
'>>>': (a, b) => a >>> b,
|
|
62
|
+
'+': (a, b) => {
|
|
63
|
+
// @ts-expect-error Addition intentionally supports JS coercion semantics.
|
|
64
|
+
return a + b;
|
|
65
|
+
},
|
|
66
|
+
'-': (a, b) => a - b,
|
|
67
|
+
'*': (a, b) => a * b,
|
|
68
|
+
'/': (a, b) => a / b,
|
|
69
|
+
'%': (a, b) => a % b
|
|
70
|
+
};
|
|
71
|
+
const unops = {
|
|
72
|
+
'-': (a) => -a,
|
|
73
|
+
'+': (a) => {
|
|
74
|
+
// eslint-disable-next-line no-implicit-coercion
|
|
75
|
+
return +a;
|
|
76
|
+
},
|
|
77
|
+
'~': (a) => ~a,
|
|
78
|
+
'!': (a) => !a
|
|
79
|
+
};
|
|
80
|
+
function evaluateArray(list, context) {
|
|
81
|
+
return list.map(value => evaluate(value, context));
|
|
82
|
+
}
|
|
83
|
+
/** Evaluates each expression in an array concurrently. */
|
|
84
|
+
async function evaluateArrayAsync(list, context) {
|
|
85
|
+
return await Promise.all(list.map(value => evalAsync(value, context)));
|
|
86
|
+
}
|
|
87
|
+
/** Resolves a member expression and preserves its receiver for method calls. */
|
|
88
|
+
function evaluateMember(node, context) {
|
|
89
|
+
const object = evaluate(node.object, context);
|
|
90
|
+
const key = node.computed
|
|
91
|
+
? evaluate(node.property, context)
|
|
92
|
+
: node.property.name;
|
|
93
|
+
if (/^__proto__|prototype|constructor$/.test(key)) {
|
|
94
|
+
throw new Error(`Access to member "${key}" disallowed.`);
|
|
95
|
+
}
|
|
96
|
+
return [object, object?.[key]];
|
|
97
|
+
}
|
|
98
|
+
/** Asynchronously resolves a member expression and its receiver. */
|
|
99
|
+
async function evaluateMemberAsync(node, context) {
|
|
100
|
+
const object = (await evalAsync(node.object, context));
|
|
101
|
+
const key = node.computed
|
|
102
|
+
? (await evalAsync(node.property, context))
|
|
103
|
+
: node.property.name;
|
|
104
|
+
if (/^__proto__|prototype|constructor$/.test(key)) {
|
|
105
|
+
throw new Error(`Access to member "${key}" disallowed.`);
|
|
106
|
+
}
|
|
107
|
+
return [object, object?.[key]];
|
|
108
|
+
}
|
|
109
|
+
/** Evaluates one expression node synchronously. */
|
|
110
|
+
// eslint-disable-next-line complexity
|
|
111
|
+
function evaluateExpression(node, context, options) {
|
|
112
|
+
const expression = node;
|
|
113
|
+
const mergedContext = mergeFunctionLibraries(context, options);
|
|
114
|
+
switch (expression.type) {
|
|
115
|
+
case 'ArrayExpression':
|
|
116
|
+
return evaluateArray(expression.elements, mergedContext);
|
|
117
|
+
case 'BinaryExpression':
|
|
118
|
+
if (expression.operator === '||') {
|
|
119
|
+
return (evaluate(expression.left, mergedContext) || evaluate(expression.right, mergedContext));
|
|
120
|
+
}
|
|
121
|
+
if (expression.operator === '&&') {
|
|
122
|
+
return (evaluate(expression.left, mergedContext) && evaluate(expression.right, mergedContext));
|
|
123
|
+
}
|
|
124
|
+
return binops[expression.operator](evaluate(expression.left, mergedContext), evaluate(expression.right, mergedContext));
|
|
125
|
+
case 'CallExpression': {
|
|
126
|
+
let caller;
|
|
127
|
+
let fn;
|
|
128
|
+
if (expression.callee.type === 'MemberExpression') {
|
|
129
|
+
const member = evaluateMember(expression.callee, mergedContext);
|
|
130
|
+
caller = member[0];
|
|
131
|
+
fn = member[1];
|
|
132
|
+
}
|
|
133
|
+
else {
|
|
134
|
+
fn = evaluate(expression.callee, mergedContext);
|
|
135
|
+
}
|
|
136
|
+
if (typeof fn !== 'function') {
|
|
137
|
+
return undefined;
|
|
138
|
+
}
|
|
139
|
+
return fn.apply(caller, evaluateArray(expression.arguments, mergedContext));
|
|
140
|
+
}
|
|
141
|
+
case 'ConditionalExpression':
|
|
142
|
+
return evaluate(expression.test, mergedContext)
|
|
143
|
+
? evaluate(expression.consequent, mergedContext)
|
|
144
|
+
: evaluate(expression.alternate, mergedContext);
|
|
145
|
+
case 'Identifier':
|
|
146
|
+
return mergedContext[expression.name];
|
|
147
|
+
case 'Literal':
|
|
148
|
+
return expression.value;
|
|
149
|
+
case 'MemberExpression':
|
|
150
|
+
return evaluateMember(expression, mergedContext)[1];
|
|
151
|
+
case 'ThisExpression':
|
|
152
|
+
return mergedContext;
|
|
153
|
+
case 'UnaryExpression':
|
|
154
|
+
return unops[expression.operator](evaluate(expression.argument, mergedContext));
|
|
155
|
+
default:
|
|
156
|
+
return undefined;
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
/** Evaluates a nested expression using an already-merged context. */
|
|
160
|
+
function evaluate(node, context) {
|
|
161
|
+
return evaluateExpression(node, context);
|
|
162
|
+
}
|
|
163
|
+
/**
|
|
164
|
+
* Evaluates a parsed expression asynchronously.
|
|
165
|
+
*
|
|
166
|
+
* @param node - Expression AST to evaluate.
|
|
167
|
+
* @param context - Named values and functions available to the expression.
|
|
168
|
+
* @param options - Function libraries to add to the context.
|
|
169
|
+
* @returns The resolved expression value.
|
|
170
|
+
*
|
|
171
|
+
* @remarks
|
|
172
|
+
* Function calls are awaited, including calls nested inside arrays, member
|
|
173
|
+
* expressions, conditionals, unary expressions, and binary expressions.
|
|
174
|
+
*/
|
|
175
|
+
// eslint-disable-next-line complexity
|
|
176
|
+
export async function evalAsync(node, context, options) {
|
|
177
|
+
const expression = node;
|
|
178
|
+
const mergedContext = mergeFunctionLibraries(context, options);
|
|
179
|
+
switch (expression.type) {
|
|
180
|
+
case 'ArrayExpression':
|
|
181
|
+
return await evaluateArrayAsync(expression.elements, mergedContext);
|
|
182
|
+
case 'BinaryExpression':
|
|
183
|
+
if (expression.operator === '||') {
|
|
184
|
+
return ((await evalAsync(expression.left, mergedContext)) ||
|
|
185
|
+
(await evalAsync(expression.right, mergedContext)));
|
|
186
|
+
}
|
|
187
|
+
if (expression.operator === '&&') {
|
|
188
|
+
return ((await evalAsync(expression.left, mergedContext)) &&
|
|
189
|
+
(await evalAsync(expression.right, mergedContext)));
|
|
190
|
+
}
|
|
191
|
+
return binops[expression.operator](await evalAsync(expression.left, mergedContext), await evalAsync(expression.right, mergedContext));
|
|
192
|
+
case 'CallExpression': {
|
|
193
|
+
let caller;
|
|
194
|
+
let fn;
|
|
195
|
+
if (expression.callee.type === 'MemberExpression') {
|
|
196
|
+
const member = await evaluateMemberAsync(expression.callee, mergedContext);
|
|
197
|
+
caller = member[0];
|
|
198
|
+
fn = member[1];
|
|
199
|
+
}
|
|
200
|
+
else {
|
|
201
|
+
fn = (await evalAsync(expression.callee, mergedContext));
|
|
202
|
+
}
|
|
203
|
+
if (typeof fn !== 'function') {
|
|
204
|
+
return undefined;
|
|
205
|
+
}
|
|
206
|
+
return await fn.apply(caller, await evaluateArrayAsync(expression.arguments, mergedContext));
|
|
207
|
+
}
|
|
208
|
+
case 'ConditionalExpression':
|
|
209
|
+
return (await evalAsync(expression.test, mergedContext))
|
|
210
|
+
? await evalAsync(expression.consequent, mergedContext)
|
|
211
|
+
: await evalAsync(expression.alternate, mergedContext);
|
|
212
|
+
case 'Identifier':
|
|
213
|
+
return mergedContext[expression.name];
|
|
214
|
+
case 'Literal':
|
|
215
|
+
return expression.value;
|
|
216
|
+
case 'MemberExpression':
|
|
217
|
+
return (await evaluateMemberAsync(expression, mergedContext))[1];
|
|
218
|
+
case 'ThisExpression':
|
|
219
|
+
return mergedContext;
|
|
220
|
+
case 'UnaryExpression':
|
|
221
|
+
return unops[expression.operator](await evalAsync(expression.argument, mergedContext));
|
|
222
|
+
default:
|
|
223
|
+
return undefined;
|
|
224
|
+
}
|
|
225
|
+
}
|
|
226
|
+
/**
|
|
227
|
+
* Compiles an expression into a reusable synchronous evaluator.
|
|
228
|
+
*
|
|
229
|
+
* @param expression - Expression source or a previously parsed AST.
|
|
230
|
+
* @param options - Function libraries to add to each evaluation context.
|
|
231
|
+
* @returns A function that evaluates the expression against a context.
|
|
232
|
+
*/
|
|
233
|
+
export function compile(expression, options) {
|
|
234
|
+
const ast = parse(expression);
|
|
235
|
+
return (context) => evaluateExpression(ast, context, options);
|
|
236
|
+
}
|
|
237
|
+
/**
|
|
238
|
+
* Compiles an expression into a reusable asynchronous evaluator.
|
|
239
|
+
*
|
|
240
|
+
* @param expression - Expression source or a previously parsed AST.
|
|
241
|
+
* @param options - Function libraries to add to each evaluation context.
|
|
242
|
+
* @returns A function that asynchronously evaluates the expression.
|
|
243
|
+
*/
|
|
244
|
+
export function compileAsync(expression, options) {
|
|
245
|
+
const ast = parse(expression);
|
|
246
|
+
return (context) => evalAsync(ast, context, options);
|
|
247
|
+
}
|
|
248
|
+
/**
|
|
249
|
+
* Registers a custom unary operator with the parser and evaluator.
|
|
250
|
+
*
|
|
251
|
+
* @param operator - Operator token to register.
|
|
252
|
+
* @param fn - Evaluator implementation for the operator.
|
|
253
|
+
*
|
|
254
|
+
* @remarks
|
|
255
|
+
* Registration changes module-global parser state and affects subsequent
|
|
256
|
+
* calls to {@link parse}.
|
|
257
|
+
*/
|
|
258
|
+
export function addUnaryOp(operator, fn) {
|
|
259
|
+
jsep.addUnaryOp(operator);
|
|
260
|
+
unops[operator] = fn;
|
|
261
|
+
}
|
|
262
|
+
/**
|
|
263
|
+
* Registers a custom binary operator with the parser and evaluator.
|
|
264
|
+
*
|
|
265
|
+
* @param operator - Operator token to register.
|
|
266
|
+
* @param precedenceOrFn - Parser precedence, or the evaluator implementation
|
|
267
|
+
* when using the default precedence for a built-in operator.
|
|
268
|
+
* @param fn - Evaluator implementation when an explicit precedence is given.
|
|
269
|
+
*
|
|
270
|
+
* @remarks
|
|
271
|
+
* Registration changes module-global parser state and affects subsequent
|
|
272
|
+
* calls to {@link parse}. New operators should provide explicit precedence.
|
|
273
|
+
*/
|
|
274
|
+
export function addBinaryOp(operator, precedenceOrFn, fn) {
|
|
275
|
+
if (fn) {
|
|
276
|
+
jsep.addBinaryOp(operator, precedenceOrFn);
|
|
277
|
+
binops[operator] = fn;
|
|
278
|
+
return;
|
|
279
|
+
}
|
|
280
|
+
jsep.addBinaryOp(operator, DEFAULT_PRECEDENCE[operator] || 1);
|
|
281
|
+
binops[operator] = precedenceOrFn;
|
|
282
|
+
}
|
|
283
|
+
/**
|
|
284
|
+
* Parses expression source into a JSEP abstract syntax tree.
|
|
285
|
+
*
|
|
286
|
+
* @param expression - Expression source or an existing AST.
|
|
287
|
+
* @returns A parsed AST, or the supplied AST unchanged.
|
|
288
|
+
* @throws If the expression string is not valid JSEP syntax.
|
|
289
|
+
*/
|
|
290
|
+
export function parse(expression) {
|
|
291
|
+
return typeof expression === 'string' ? jsep(expression) : expression;
|
|
292
|
+
}
|
|
293
|
+
/**
|
|
294
|
+
* Evaluates a parsed expression synchronously.
|
|
295
|
+
*
|
|
296
|
+
* @param node - Expression AST to evaluate.
|
|
297
|
+
* @param context - Named values and functions available to the expression.
|
|
298
|
+
* @param options - Function libraries to add to the context.
|
|
299
|
+
* @returns The expression value.
|
|
300
|
+
*/
|
|
301
|
+
export { evaluateExpression as eval };
|
|
302
|
+
//# sourceMappingURL=expression-eval.js.map
|