@synnaxlabs/x 0.16.0 → 0.23.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.turbo/turbo-build.log +99 -7
- package/.vscode/settings.json +5 -1
- package/dist/base-Cz4DfmJf.js +37 -0
- package/dist/base-D3FrPu8C.cjs +1 -0
- package/dist/binary.cjs +1 -0
- package/dist/binary.js +37 -0
- package/dist/bounds-1ouRnRJS.cjs +1 -0
- package/dist/bounds-BYz3mV9U.js +129 -0
- package/dist/bounds.cjs +1 -0
- package/dist/bounds.js +4 -0
- package/dist/box-CHDDKvN3.cjs +1 -0
- package/dist/box-Q7p9JFnX.js +204 -0
- package/dist/box.cjs +1 -0
- package/dist/box.js +4 -0
- package/dist/caseconv.cjs +1 -0
- package/dist/caseconv.js +4 -0
- package/dist/change-C-YELKx6.cjs +1 -0
- package/dist/change-DLl6DccR.js +12 -0
- package/dist/change.cjs +1 -0
- package/dist/change.js +4 -0
- package/dist/compare.cjs +1 -0
- package/dist/compare.js +4 -0
- package/dist/debounce.cjs +1 -0
- package/dist/debounce.js +17 -0
- package/dist/deep.cjs +1 -0
- package/dist/deep.js +119 -0
- package/dist/destructor.cjs +1 -0
- package/dist/destructor.js +1 -0
- package/dist/dimensions-9gLSFjFx.js +44 -0
- package/dist/dimensions-Fe8DhhXU.cjs +1 -0
- package/dist/dimensions.cjs +1 -0
- package/dist/dimensions.js +4 -0
- package/dist/direction-dXjlmg4_.cjs +1 -0
- package/dist/direction-wsPTe9a1.js +15 -0
- package/dist/direction.cjs +1 -0
- package/dist/direction.js +4 -0
- package/dist/external-B-DoBvh7.cjs +1 -0
- package/dist/external-DI9122wF.js +27 -0
- package/dist/identity.cjs +1 -0
- package/dist/identity.js +4 -0
- package/dist/index-Bcm6lEr8.js +73 -0
- package/dist/index-CnZb0cyW.cjs +1 -0
- package/dist/index-POWYBOZm.js +356 -0
- package/dist/index-xjptNL6Z.cjs +1 -0
- package/dist/index.cjs +1 -0
- package/dist/index.js +136 -0
- package/dist/kv.cjs +1 -0
- package/dist/kv.js +6 -0
- package/dist/location-C4YaXxjI.js +94 -0
- package/dist/location-CZOgJmu5.cjs +1 -0
- package/dist/location.cjs +1 -0
- package/dist/location.js +4 -0
- package/dist/observe.cjs +1 -0
- package/dist/observe.js +43 -0
- package/dist/path-BfHj5x9k.js +62 -0
- package/dist/path-By98WcWm.cjs +1 -0
- package/dist/position-BjhXUSEO.cjs +1 -0
- package/dist/position-PSYLZzqw.js +87 -0
- package/dist/position.cjs +1 -0
- package/dist/position.js +4 -0
- package/dist/record.cjs +1 -0
- package/dist/record.js +9 -0
- package/dist/runtime.cjs +1 -0
- package/dist/runtime.js +4 -0
- package/dist/scale-DCbi48di.js +205 -0
- package/dist/scale-DUBO0Q4s.cjs +1 -0
- package/dist/scale.cjs +1 -0
- package/dist/scale.js +4 -0
- package/dist/search.cjs +1 -0
- package/dist/search.js +15 -0
- package/dist/series-CSutMOtt.cjs +11 -0
- package/dist/series-DCv8f29w.js +1629 -0
- package/dist/spatial-6OGCmDve.js +11 -0
- package/dist/spatial-R5OeJgR6.cjs +1 -0
- package/dist/spatial.cjs +1 -0
- package/dist/spatial.js +20 -0
- package/dist/{binary → src/binary}/encoder.d.ts +7 -2
- package/dist/src/binary/encoder.d.ts.map +1 -0
- package/dist/src/binary/encoder.spec.d.ts.map +1 -0
- package/dist/src/binary/index.d.ts.map +1 -0
- package/dist/src/caseconv/caseconv.d.ts +4 -0
- package/dist/src/caseconv/caseconv.d.ts.map +1 -0
- package/dist/src/caseconv/index.d.ts +2 -0
- package/dist/src/caseconv/index.d.ts.map +1 -0
- package/dist/{change → src/change}/change.d.ts +10 -9
- package/dist/src/change/change.d.ts.map +1 -0
- package/dist/src/change/index.d.ts.map +1 -0
- package/dist/src/clamp/clamp.d.ts.map +1 -0
- package/dist/src/clamp/index.d.ts +2 -0
- package/dist/src/clamp/index.d.ts.map +1 -0
- package/dist/{compare → src/compare}/compare.d.ts +5 -4
- package/dist/src/compare/compare.d.ts.map +1 -0
- package/dist/src/compare/index.d.ts.map +1 -0
- package/dist/src/control/control.d.ts +107 -0
- package/dist/src/control/control.d.ts.map +1 -0
- package/dist/src/control/index.d.ts +2 -0
- package/dist/src/control/index.d.ts.map +1 -0
- package/dist/src/debounce/debounce.d.ts.map +1 -0
- package/dist/src/debounce/debounce.spec.d.ts +2 -0
- package/dist/src/debounce/debounce.spec.d.ts.map +1 -0
- package/dist/src/debounce/index.d.ts +2 -0
- package/dist/src/debounce/index.d.ts.map +1 -0
- package/dist/src/deep/copy.d.ts.map +1 -0
- package/dist/{deep → src/deep}/delete.d.ts +2 -1
- package/dist/src/deep/delete.d.ts.map +1 -0
- package/dist/{deep → src/deep}/delete.spec.d.ts.map +1 -1
- package/dist/src/deep/difference.d.ts.map +1 -0
- package/dist/src/deep/difference.spec.d.ts.map +1 -0
- package/dist/src/deep/equal.d.ts.map +1 -0
- package/dist/{deep → src/deep}/equal.spec.d.ts.map +1 -1
- package/dist/{deep → src/deep}/external.d.ts +3 -4
- package/dist/src/deep/external.d.ts.map +1 -0
- package/dist/src/deep/index.d.ts.map +1 -0
- package/dist/src/deep/merge.d.ts +12 -0
- package/dist/src/deep/merge.d.ts.map +1 -0
- package/dist/{deep → src/deep}/merge.spec.d.ts.map +1 -1
- package/dist/src/deep/partial.d.ts.map +1 -0
- package/dist/src/deep/path.d.ts +45 -0
- package/dist/src/deep/path.d.ts.map +1 -0
- package/dist/{deep → src/deep}/path.spec.d.ts.map +1 -1
- package/dist/src/destructor.d.ts.map +1 -0
- package/dist/{identity.d.ts → src/identity.d.ts} +2 -1
- package/dist/src/identity.d.ts.map +1 -0
- package/dist/{index.d.ts → src/index.d.ts} +22 -20
- package/dist/src/index.d.ts.map +1 -0
- package/dist/src/invert.d.ts.map +1 -0
- package/dist/src/join.d.ts.map +1 -0
- package/dist/src/kv/index.d.ts.map +1 -0
- package/dist/src/kv/types.d.ts.map +1 -0
- package/dist/src/math/index.d.ts +2 -0
- package/dist/src/math/index.d.ts.map +1 -0
- package/dist/src/math/math.d.ts +11 -0
- package/dist/src/math/math.d.ts.map +1 -0
- package/dist/src/migrate/index.d.ts.map +1 -0
- package/dist/{migrate → src/migrate}/migrate.d.ts +2 -1
- package/dist/src/migrate/migrate.d.ts.map +1 -0
- package/dist/src/migrate/migrate.spec.d.ts.map +1 -0
- package/dist/{mock → src/mock}/MockGLBufferController.d.ts +2 -1
- package/dist/src/mock/MockGLBufferController.d.ts.map +1 -0
- package/dist/src/mock/index.d.ts.map +1 -0
- package/dist/src/observe/index.d.ts.map +1 -0
- package/dist/src/observe/observe.d.ts +24 -0
- package/dist/src/observe/observe.d.ts.map +1 -0
- package/dist/src/observe/obsever.spec.d.ts +2 -0
- package/dist/src/observe/obsever.spec.d.ts.map +1 -0
- package/dist/src/optional.d.ts.map +1 -0
- package/dist/{primitive.d.ts → src/primitive.d.ts} +2 -1
- package/dist/src/primitive.d.ts.map +1 -0
- package/dist/{record.d.ts → src/record.d.ts} +7 -8
- package/dist/src/record.d.ts.map +1 -0
- package/dist/{renderable.d.ts → src/renderable.d.ts} +2 -1
- package/dist/src/renderable.d.ts.map +1 -0
- package/dist/src/runtime/detect.d.ts.map +1 -0
- package/dist/src/runtime/external.d.ts.map +1 -0
- package/dist/src/runtime/index.d.ts.map +1 -0
- package/dist/src/runtime/os.d.ts +20 -0
- package/dist/src/runtime/os.d.ts.map +1 -0
- package/dist/{search.d.ts → src/search.d.ts} +5 -2
- package/dist/src/search.d.ts.map +1 -0
- package/dist/src/shallowCopy.d.ts +2 -0
- package/dist/src/shallowCopy.d.ts.map +1 -0
- package/dist/{spatial → src/spatial}/base.d.ts +30 -5
- package/dist/src/spatial/base.d.ts.map +1 -0
- package/dist/src/spatial/bounds/bounds.d.ts +148 -0
- package/dist/src/spatial/bounds/bounds.d.ts.map +1 -0
- package/dist/src/spatial/bounds/bounds.spec.d.ts.map +1 -0
- package/dist/src/spatial/bounds/index.d.ts.map +1 -0
- package/dist/{spatial → src/spatial}/box/box.d.ts +69 -22
- package/dist/src/spatial/box/box.d.ts.map +1 -0
- package/dist/src/spatial/box/box.spec.d.ts.map +1 -0
- package/dist/src/spatial/box/index.d.ts.map +1 -0
- package/dist/{spatial → src/spatial}/dimensions/dimensions.d.ts +4 -3
- package/dist/src/spatial/dimensions/dimensions.d.ts.map +1 -0
- package/dist/src/spatial/dimensions/dimensions.spec.d.ts.map +1 -0
- package/dist/src/spatial/dimensions/index.d.ts.map +1 -0
- package/dist/{spatial → src/spatial}/direction/direction.d.ts +3 -2
- package/dist/src/spatial/direction/direction.d.ts.map +1 -0
- package/dist/src/spatial/direction/direction.spec.d.ts.map +1 -0
- package/dist/src/spatial/direction/index.d.ts.map +1 -0
- package/dist/{spatial → src/spatial}/external.d.ts +2 -2
- package/dist/src/spatial/external.d.ts.map +1 -0
- package/dist/src/spatial/index.d.ts.map +1 -0
- package/dist/src/spatial/location/index.d.ts.map +1 -0
- package/dist/{spatial → src/spatial}/location/location.d.ts +4 -3
- package/dist/src/spatial/location/location.d.ts.map +1 -0
- package/dist/src/spatial/location/location.spec.d.ts.map +1 -0
- package/dist/src/spatial/position/index.d.ts.map +1 -0
- package/dist/{spatial → src/spatial}/position/position.d.ts +4 -4
- package/dist/src/spatial/position/position.d.ts.map +1 -0
- package/dist/src/spatial/position/position.spec.d.ts.map +1 -0
- package/dist/src/spatial/scale/index.d.ts.map +1 -0
- package/dist/{spatial → src/spatial}/scale/scale.d.ts +15 -62
- package/dist/src/spatial/scale/scale.d.ts.map +1 -0
- package/dist/src/spatial/scale/scale.spec.d.ts.map +1 -0
- package/dist/src/spatial/spatial.d.ts +2 -0
- package/dist/src/spatial/spatial.d.ts.map +1 -0
- package/dist/src/spatial/xy/index.d.ts.map +1 -0
- package/dist/{spatial → src/spatial}/xy/xy.d.ts +15 -24
- package/dist/src/spatial/xy/xy.d.ts.map +1 -0
- package/dist/{spatial → src/spatial}/xy/xy.spec.d.ts.map +1 -1
- package/dist/src/telem/generate.d.ts +4 -0
- package/dist/src/telem/generate.d.ts.map +1 -0
- package/dist/src/telem/gl.d.ts.map +1 -0
- package/dist/{telem → src/telem}/index.d.ts +1 -1
- package/dist/src/telem/index.d.ts.map +1 -0
- package/dist/{telem → src/telem}/series.d.ts +10 -8
- package/dist/src/telem/series.d.ts.map +1 -0
- package/dist/{telem → src/telem}/series.spec.d.ts.map +1 -1
- package/dist/{telem → src/telem}/telem.d.ts +19 -21
- package/dist/src/telem/telem.d.ts.map +1 -0
- package/dist/{telem → src/telem}/telem.spec.d.ts.map +1 -1
- package/dist/src/toArray.d.ts.map +1 -0
- package/dist/src/transform.d.ts +6 -0
- package/dist/src/transform.d.ts.map +1 -0
- package/dist/src/unique.d.ts.map +1 -0
- package/dist/src/url/index.d.ts +2 -0
- package/dist/src/url/index.d.ts.map +1 -0
- package/dist/src/url/url.d.ts.map +1 -0
- package/dist/{url → src/url}/url.spec.d.ts.map +1 -1
- package/dist/src/worker/index.d.ts +2 -0
- package/dist/src/worker/index.d.ts.map +1 -0
- package/dist/{worker → src/worker}/worker.d.ts +4 -4
- package/dist/src/worker/worker.d.ts.map +1 -0
- package/dist/src/worker/worker.spec.d.ts.map +1 -0
- package/dist/src/zodutil/index.d.ts +2 -0
- package/dist/src/zodutil/index.d.ts.map +1 -0
- package/dist/src/zodutil/zodutil.d.ts +6 -0
- package/dist/src/zodutil/zodutil.d.ts.map +1 -0
- package/dist/src/zodutil/zodutil.spec.d.ts +2 -0
- package/dist/src/zodutil/zodutil.spec.d.ts.map +1 -0
- package/dist/telem.cjs +1 -0
- package/dist/telem.js +17 -0
- package/dist/toArray.cjs +1 -0
- package/dist/toArray.js +5 -0
- package/dist/unique.cjs +1 -0
- package/dist/unique.js +4 -0
- package/dist/url.cjs +1 -0
- package/dist/url.js +54 -0
- package/dist/worker.cjs +1 -0
- package/dist/worker.js +47 -0
- package/dist/xy-B4SvvNaG.cjs +1 -0
- package/dist/xy-H8aUVW_X.js +90 -0
- package/dist/xy.cjs +1 -0
- package/dist/xy.js +4 -0
- package/dist/zodutil.cjs +1 -0
- package/dist/zodutil.js +22 -0
- package/eslint.config.js +12 -0
- package/package.json +158 -14
- package/src/binary/encoder.spec.ts +31 -6
- package/src/binary/encoder.ts +26 -15
- package/src/binary/index.ts +1 -1
- package/src/{case.ts → caseconv/caseconv.ts} +4 -9
- package/src/caseconv/index.ts +10 -0
- package/src/change/change.ts +7 -6
- package/src/change/index.ts +1 -1
- package/src/{clamp.ts → clamp/clamp.ts} +1 -1
- package/src/clamp/index.ts +10 -0
- package/src/compare/compare.ts +6 -9
- package/src/compare/index.ts +1 -1
- package/src/control/control.ts +77 -0
- package/src/control/index.ts +1 -0
- package/src/debounce/debounce.spec.ts +52 -0
- package/src/{debounce.ts → debounce/debounce.ts} +4 -4
- package/src/debounce/index.ts +10 -0
- package/src/deep/copy.ts +2 -3
- package/src/deep/delete.spec.ts +2 -2
- package/src/deep/delete.ts +3 -2
- package/src/deep/difference.spec.ts +28 -27
- package/src/deep/difference.ts +13 -11
- package/src/deep/equal.spec.ts +4 -4
- package/src/deep/equal.ts +16 -12
- package/src/deep/external.ts +4 -5
- package/src/deep/index.ts +1 -1
- package/src/deep/merge.spec.ts +120 -4
- package/src/deep/merge.ts +50 -9
- package/src/deep/partial.ts +1 -1
- package/src/deep/path.spec.ts +90 -39
- package/src/deep/path.ts +105 -46
- package/src/destructor.ts +2 -2
- package/src/identity.ts +1 -1
- package/src/index.ts +23 -21
- package/src/invert.ts +9 -0
- package/src/join.ts +1 -1
- package/src/kv/index.ts +1 -1
- package/src/kv/types.ts +1 -1
- package/src/math/index.ts +10 -0
- package/src/math/math.ts +33 -0
- package/src/migrate/index.ts +9 -0
- package/src/migrate/migrate.spec.ts +12 -2
- package/src/migrate/migrate.ts +9 -0
- package/src/mock/MockGLBufferController.ts +6 -6
- package/src/mock/index.ts +1 -1
- package/src/observe/index.ts +1 -1
- package/src/observe/observe.ts +37 -6
- package/src/observe/obsever.spec.ts +56 -0
- package/src/optional.ts +3 -4
- package/src/primitive.ts +1 -1
- package/src/record.ts +10 -6
- package/src/renderable.ts +1 -1
- package/src/runtime/detect.ts +3 -3
- package/src/runtime/external.ts +1 -1
- package/src/runtime/index.ts +1 -1
- package/src/runtime/os.ts +17 -5
- package/src/search.ts +3 -1
- package/src/shallowCopy.ts +5 -6
- package/src/spatial/base.ts +13 -5
- package/src/spatial/bounds/bounds.spec.ts +259 -180
- package/src/spatial/bounds/bounds.ts +200 -85
- package/src/spatial/bounds/index.ts +2 -2
- package/src/spatial/box/box.spec.ts +163 -2
- package/src/spatial/box/box.ts +82 -38
- package/src/spatial/box/index.ts +2 -2
- package/src/spatial/dimensions/dimensions.spec.ts +1 -1
- package/src/spatial/dimensions/dimensions.ts +4 -4
- package/src/spatial/dimensions/index.ts +2 -2
- package/src/spatial/direction/direction.spec.ts +1 -1
- package/src/spatial/direction/direction.ts +5 -5
- package/src/spatial/direction/index.ts +2 -2
- package/src/spatial/external.ts +3 -3
- package/src/spatial/index.ts +1 -1
- package/src/spatial/location/index.ts +2 -2
- package/src/spatial/location/location.spec.ts +1 -1
- package/src/spatial/location/location.ts +21 -21
- package/src/spatial/position/index.ts +1 -1
- package/src/spatial/position/position.spec.ts +1 -1
- package/src/spatial/position/position.ts +3 -20
- package/src/spatial/scale/index.ts +2 -2
- package/src/spatial/scale/scale.spec.ts +3 -3
- package/src/spatial/scale/scale.ts +3 -3
- package/src/spatial/spatial.ts +5 -5
- package/src/spatial/xy/index.ts +2 -2
- package/src/spatial/xy/xy.spec.ts +93 -44
- package/src/spatial/xy/xy.ts +17 -25
- package/src/telem/generate.ts +1 -1
- package/src/telem/gl.ts +1 -1
- package/src/telem/index.ts +2 -2
- package/src/telem/series.spec.ts +64 -5
- package/src/telem/series.ts +47 -35
- package/src/telem/telem.spec.ts +105 -2
- package/src/telem/telem.ts +63 -23
- package/src/toArray.ts +2 -2
- package/src/transform.ts +9 -2
- package/src/unique.ts +1 -1
- package/src/url/index.ts +2 -2
- package/src/url/url.spec.ts +2 -2
- package/src/url/url.ts +4 -4
- package/src/worker/index.ts +10 -0
- package/src/worker/worker.spec.ts +2 -2
- package/src/worker/worker.ts +13 -13
- package/src/zodutil/index.ts +10 -0
- package/src/zodutil/zodutil.spec.ts +103 -0
- package/src/zodutil/zodutil.ts +45 -0
- package/tsconfig.json +1 -0
- package/tsconfig.tsbuildinfo +1 -0
- package/vite.config.ts +39 -3
- package/.eslintrc.cjs +0 -18
- package/dist/binary/encoder.d.ts.map +0 -1
- package/dist/binary/encoder.spec.d.ts.map +0 -1
- package/dist/binary/index.d.ts.map +0 -1
- package/dist/case.d.ts +0 -6
- package/dist/case.d.ts.map +0 -1
- package/dist/change/change.d.ts.map +0 -1
- package/dist/change/index.d.ts.map +0 -1
- package/dist/clamp.d.ts.map +0 -1
- package/dist/compare/compare.d.ts.map +0 -1
- package/dist/compare/index.d.ts.map +0 -1
- package/dist/debounce.d.ts.map +0 -1
- package/dist/deep/copy.d.ts.map +0 -1
- package/dist/deep/delete.d.ts.map +0 -1
- package/dist/deep/difference.d.ts.map +0 -1
- package/dist/deep/difference.spec.d.ts.map +0 -1
- package/dist/deep/equal.d.ts.map +0 -1
- package/dist/deep/external.d.ts.map +0 -1
- package/dist/deep/index.d.ts.map +0 -1
- package/dist/deep/memo.d.ts +0 -2
- package/dist/deep/memo.d.ts.map +0 -1
- package/dist/deep/merge.d.ts +0 -3
- package/dist/deep/merge.d.ts.map +0 -1
- package/dist/deep/partial.d.ts.map +0 -1
- package/dist/deep/path.d.ts +0 -37
- package/dist/deep/path.d.ts.map +0 -1
- package/dist/destructor.d.ts.map +0 -1
- package/dist/identity.d.ts.map +0 -1
- package/dist/index.d.ts.map +0 -1
- package/dist/invert.d.ts.map +0 -1
- package/dist/join.d.ts.map +0 -1
- package/dist/kv/index.d.ts.map +0 -1
- package/dist/kv/types.d.ts.map +0 -1
- package/dist/migrate/index.d.ts.map +0 -1
- package/dist/migrate/migrate.d.ts.map +0 -1
- package/dist/migrate/migrate.spec.d.ts.map +0 -1
- package/dist/mock/MockGLBufferController.d.ts.map +0 -1
- package/dist/mock/index.d.ts.map +0 -1
- package/dist/observe/index.d.ts.map +0 -1
- package/dist/observe/observe.d.ts +0 -12
- package/dist/observe/observe.d.ts.map +0 -1
- package/dist/optional.d.ts.map +0 -1
- package/dist/primitive.d.ts.map +0 -1
- package/dist/record.d.ts.map +0 -1
- package/dist/renderable.d.ts.map +0 -1
- package/dist/runtime/detect.d.ts.map +0 -1
- package/dist/runtime/external.d.ts.map +0 -1
- package/dist/runtime/index.d.ts.map +0 -1
- package/dist/runtime/os.d.ts +0 -10
- package/dist/runtime/os.d.ts.map +0 -1
- package/dist/search.d.ts.map +0 -1
- package/dist/shallowCopy.d.ts +0 -2
- package/dist/shallowCopy.d.ts.map +0 -1
- package/dist/spatial/base.d.ts.map +0 -1
- package/dist/spatial/bounds/bounds.d.ts +0 -71
- package/dist/spatial/bounds/bounds.d.ts.map +0 -1
- package/dist/spatial/bounds/bounds.spec.d.ts.map +0 -1
- package/dist/spatial/bounds/index.d.ts.map +0 -1
- package/dist/spatial/box/box.d.ts.map +0 -1
- package/dist/spatial/box/box.spec.d.ts.map +0 -1
- package/dist/spatial/box/index.d.ts.map +0 -1
- package/dist/spatial/dimensions/dimensions.d.ts.map +0 -1
- package/dist/spatial/dimensions/dimensions.spec.d.ts.map +0 -1
- package/dist/spatial/dimensions/index.d.ts.map +0 -1
- package/dist/spatial/direction/direction.d.ts.map +0 -1
- package/dist/spatial/direction/direction.spec.d.ts.map +0 -1
- package/dist/spatial/direction/index.d.ts.map +0 -1
- package/dist/spatial/external.d.ts.map +0 -1
- package/dist/spatial/index.d.ts.map +0 -1
- package/dist/spatial/location/index.d.ts.map +0 -1
- package/dist/spatial/location/location.d.ts.map +0 -1
- package/dist/spatial/location/location.spec.d.ts.map +0 -1
- package/dist/spatial/position/index.d.ts.map +0 -1
- package/dist/spatial/position/position.d.ts.map +0 -1
- package/dist/spatial/position/position.spec.d.ts.map +0 -1
- package/dist/spatial/scale/index.d.ts.map +0 -1
- package/dist/spatial/scale/scale.d.ts.map +0 -1
- package/dist/spatial/scale/scale.spec.d.ts.map +0 -1
- package/dist/spatial/spatial.d.ts +0 -2
- package/dist/spatial/spatial.d.ts.map +0 -1
- package/dist/spatial/xy/index.d.ts.map +0 -1
- package/dist/spatial/xy/xy.d.ts.map +0 -1
- package/dist/telem/generate.d.ts +0 -3
- package/dist/telem/generate.d.ts.map +0 -1
- package/dist/telem/gl.d.ts.map +0 -1
- package/dist/telem/index.d.ts.map +0 -1
- package/dist/telem/series.d.ts.map +0 -1
- package/dist/telem/telem.d.ts.map +0 -1
- package/dist/toArray.d.ts.map +0 -1
- package/dist/transform.d.ts +0 -2
- package/dist/transform.d.ts.map +0 -1
- package/dist/unique.d.ts.map +0 -1
- package/dist/url/index.d.ts +0 -2
- package/dist/url/index.d.ts.map +0 -1
- package/dist/url/url.d.ts.map +0 -1
- package/dist/worker/worker.d.ts.map +0 -1
- package/dist/worker/worker.spec.d.ts.map +0 -1
- package/dist/x.cjs +0 -12
- package/dist/x.cjs.map +0 -1
- package/dist/x.js +0 -5935
- package/dist/x.js.map +0 -1
- package/src/deep/memo.ts +0 -24
- /package/dist/{binary → src/binary}/encoder.spec.d.ts +0 -0
- /package/dist/{binary → src/binary}/index.d.ts +0 -0
- /package/dist/{change → src/change}/index.d.ts +0 -0
- /package/dist/{clamp.d.ts → src/clamp/clamp.d.ts} +0 -0
- /package/dist/{compare → src/compare}/index.d.ts +0 -0
- /package/dist/{debounce.d.ts → src/debounce/debounce.d.ts} +0 -0
- /package/dist/{deep → src/deep}/copy.d.ts +0 -0
- /package/dist/{deep → src/deep}/delete.spec.d.ts +0 -0
- /package/dist/{deep → src/deep}/difference.d.ts +0 -0
- /package/dist/{deep → src/deep}/difference.spec.d.ts +0 -0
- /package/dist/{deep → src/deep}/equal.d.ts +0 -0
- /package/dist/{deep → src/deep}/equal.spec.d.ts +0 -0
- /package/dist/{deep → src/deep}/index.d.ts +0 -0
- /package/dist/{deep → src/deep}/merge.spec.d.ts +0 -0
- /package/dist/{deep → src/deep}/partial.d.ts +0 -0
- /package/dist/{deep → src/deep}/path.spec.d.ts +0 -0
- /package/dist/{destructor.d.ts → src/destructor.d.ts} +0 -0
- /package/dist/{invert.d.ts → src/invert.d.ts} +0 -0
- /package/dist/{join.d.ts → src/join.d.ts} +0 -0
- /package/dist/{kv → src/kv}/index.d.ts +0 -0
- /package/dist/{kv → src/kv}/types.d.ts +0 -0
- /package/dist/{migrate → src/migrate}/index.d.ts +0 -0
- /package/dist/{migrate → src/migrate}/migrate.spec.d.ts +0 -0
- /package/dist/{mock → src/mock}/index.d.ts +0 -0
- /package/dist/{observe → src/observe}/index.d.ts +0 -0
- /package/dist/{optional.d.ts → src/optional.d.ts} +0 -0
- /package/dist/{runtime → src/runtime}/detect.d.ts +0 -0
- /package/dist/{runtime → src/runtime}/external.d.ts +0 -0
- /package/dist/{runtime → src/runtime}/index.d.ts +0 -0
- /package/dist/{spatial → src/spatial}/bounds/bounds.spec.d.ts +0 -0
- /package/dist/{spatial → src/spatial}/bounds/index.d.ts +0 -0
- /package/dist/{spatial → src/spatial}/box/box.spec.d.ts +0 -0
- /package/dist/{spatial → src/spatial}/box/index.d.ts +0 -0
- /package/dist/{spatial → src/spatial}/dimensions/dimensions.spec.d.ts +0 -0
- /package/dist/{spatial → src/spatial}/dimensions/index.d.ts +0 -0
- /package/dist/{spatial → src/spatial}/direction/direction.spec.d.ts +0 -0
- /package/dist/{spatial → src/spatial}/direction/index.d.ts +0 -0
- /package/dist/{spatial → src/spatial}/index.d.ts +0 -0
- /package/dist/{spatial → src/spatial}/location/index.d.ts +0 -0
- /package/dist/{spatial → src/spatial}/location/location.spec.d.ts +0 -0
- /package/dist/{spatial → src/spatial}/position/index.d.ts +0 -0
- /package/dist/{spatial → src/spatial}/position/position.spec.d.ts +0 -0
- /package/dist/{spatial → src/spatial}/scale/index.d.ts +0 -0
- /package/dist/{spatial → src/spatial}/scale/scale.spec.d.ts +0 -0
- /package/dist/{spatial → src/spatial}/xy/index.d.ts +0 -0
- /package/dist/{spatial → src/spatial}/xy/xy.spec.d.ts +0 -0
- /package/dist/{telem → src/telem}/gl.d.ts +0 -0
- /package/dist/{telem → src/telem}/series.spec.d.ts +0 -0
- /package/dist/{telem → src/telem}/telem.spec.d.ts +0 -0
- /package/dist/{toArray.d.ts → src/toArray.d.ts} +0 -0
- /package/dist/{unique.d.ts → src/unique.d.ts} +0 -0
- /package/dist/{url → src/url}/url.d.ts +0 -0
- /package/dist/{url → src/url}/url.spec.d.ts +0 -0
- /package/dist/{worker → src/worker}/worker.spec.d.ts +0 -0
package/src/kv/index.ts
CHANGED
package/src/kv/types.ts
CHANGED
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
// Copyright 2024 Synnax Labs, Inc.
|
|
2
|
+
//
|
|
3
|
+
// Use of this software is governed by the Business Source License included in the file
|
|
4
|
+
// licenses/BSL.txt.
|
|
5
|
+
//
|
|
6
|
+
// As of the Change Date specified in that file, in accordance with the Business Source
|
|
7
|
+
// License, use of this software will be governed by the Apache License, Version 2.0,
|
|
8
|
+
// included in the file licenses/APL.txt.
|
|
9
|
+
|
|
10
|
+
export * as math from "@/math/math";
|
package/src/math/math.ts
ADDED
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
// Copyright 2024 Synnax Labs, Inc.
|
|
2
|
+
//
|
|
3
|
+
// Use of this software is governed by the Business Source License included in the file
|
|
4
|
+
// licenses/BSL.txt.
|
|
5
|
+
//
|
|
6
|
+
// As of the Change Date specified in that file, in accordance with the Business Source
|
|
7
|
+
// License, use of this software will be governed by the Apache License, Version 2.0,
|
|
8
|
+
// included in the file licenses/APL.txt.
|
|
9
|
+
|
|
10
|
+
type Value = number | bigint;
|
|
11
|
+
|
|
12
|
+
/** @returns the product of a and b, coercing b to the type of a if necessary. */
|
|
13
|
+
export const sub = <V extends Value>(a: V, b: Value): V => {
|
|
14
|
+
if (typeof a === "bigint") return (a - BigInt(b)) as V;
|
|
15
|
+
return (a - Number(b)) as V;
|
|
16
|
+
};
|
|
17
|
+
|
|
18
|
+
/** @returns the sum of a and b, coercing b to the type of a if necessary. */
|
|
19
|
+
export const add = <V extends Value>(a: V, b: Value): V => {
|
|
20
|
+
if (typeof a === "bigint") return (a + BigInt(b)) as V;
|
|
21
|
+
// @ts-expect-error - a is a number but typescript doesn't recognize that.
|
|
22
|
+
return (a + Number(b)) as V;
|
|
23
|
+
};
|
|
24
|
+
|
|
25
|
+
/** @returns true if a is close to b within epsilon. */
|
|
26
|
+
export const closeTo = (a: number, b: number, epsilon = 0.0001): boolean =>
|
|
27
|
+
Math.abs(a - b) < epsilon;
|
|
28
|
+
|
|
29
|
+
/** @returns the nearest number to num with 1 significant digit. */
|
|
30
|
+
export const roundToNearestMagnitude = (num: number): number => {
|
|
31
|
+
const magnitude = Math.pow(10, Math.floor(Math.log10(num)));
|
|
32
|
+
return Math.round(num / magnitude) * magnitude;
|
|
33
|
+
};
|
package/src/migrate/index.ts
CHANGED
|
@@ -1 +1,10 @@
|
|
|
1
|
+
// Copyright 2024 Synnax Labs, Inc.
|
|
2
|
+
//
|
|
3
|
+
// Use of this software is governed by the Business Source License included in the file
|
|
4
|
+
// licenses/BSL.txt.
|
|
5
|
+
//
|
|
6
|
+
// As of the Change Date specified in that file, in accordance with the Business Source
|
|
7
|
+
// License, use of this software will be governed by the Apache License, Version 2.0,
|
|
8
|
+
// included in the file licenses/APL.txt.
|
|
9
|
+
|
|
1
10
|
export * as migrate from "@/migrate/migrate";
|
|
@@ -1,11 +1,20 @@
|
|
|
1
|
+
// Copyright 2024 Synnax Labs, Inc.
|
|
2
|
+
//
|
|
3
|
+
// Use of this software is governed by the Business Source License included in the file
|
|
4
|
+
// licenses/BSL.txt.
|
|
5
|
+
//
|
|
6
|
+
// As of the Change Date specified in that file, in accordance with the Business Source
|
|
7
|
+
// License, use of this software will be governed by the Apache License, Version 2.0,
|
|
8
|
+
// included in the file licenses/APL.txt.
|
|
9
|
+
|
|
1
10
|
import { describe, expect, it } from "vitest";
|
|
2
11
|
import { z } from "zod";
|
|
3
12
|
|
|
4
13
|
import {
|
|
5
|
-
type Migration,
|
|
6
14
|
migratable,
|
|
7
|
-
|
|
15
|
+
type Migration,
|
|
8
16
|
type Migrations,
|
|
17
|
+
migrator,
|
|
9
18
|
} from "@/migrate/migrate";
|
|
10
19
|
|
|
11
20
|
const entityV0_0_0 = migratable.extend({
|
|
@@ -29,6 +38,7 @@ type EntityV0_0_2 = z.infer<typeof entityV0_0_2>;
|
|
|
29
38
|
|
|
30
39
|
const migrations: Migrations = {
|
|
31
40
|
"0.0.0": ((entity: EntityV0_0_0): EntityV0_0_1 => {
|
|
41
|
+
|
|
32
42
|
const { name, ...rest } = entity;
|
|
33
43
|
return {
|
|
34
44
|
...rest,
|
package/src/migrate/migrate.ts
CHANGED
|
@@ -1,3 +1,12 @@
|
|
|
1
|
+
// Copyright 2024 Synnax Labs, Inc.
|
|
2
|
+
//
|
|
3
|
+
// Use of this software is governed by the Business Source License included in the file
|
|
4
|
+
// licenses/BSL.txt.
|
|
5
|
+
//
|
|
6
|
+
// As of the Change Date specified in that file, in accordance with the Business Source
|
|
7
|
+
// License, use of this software will be governed by the Apache License, Version 2.0,
|
|
8
|
+
// included in the file licenses/APL.txt.
|
|
9
|
+
|
|
1
10
|
import { z } from "zod";
|
|
2
11
|
|
|
3
12
|
import { compare } from "@/compare";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
// Copyright
|
|
1
|
+
// Copyright 2024 Synnax Labs, Inc.
|
|
2
2
|
//
|
|
3
3
|
// Use of this software is governed by the Business Source License included in the file
|
|
4
4
|
// licenses/BSL.txt.
|
|
@@ -7,9 +7,9 @@
|
|
|
7
7
|
// License, use of this software will be governed by the Apache License, Version 2.0,
|
|
8
8
|
// included in the file licenses/APL.txt.
|
|
9
9
|
|
|
10
|
-
import {
|
|
10
|
+
import { type Mock,vi } from "vitest";
|
|
11
11
|
|
|
12
|
-
import { GLBufferController } from "@/telem/gl";
|
|
12
|
+
import { type GLBufferController } from "@/telem/gl";
|
|
13
13
|
|
|
14
14
|
export class MockGLBufferController implements GLBufferController {
|
|
15
15
|
ARRAY_BUFFER: number = 1;
|
|
@@ -27,7 +27,7 @@ export class MockGLBufferController implements GLBufferController {
|
|
|
27
27
|
deleteBufferMock: Mock<[WebGLBuffer | null]> = vi.fn();
|
|
28
28
|
|
|
29
29
|
deleteBuffer(buffer: WebGLBuffer | null): void {
|
|
30
|
-
|
|
30
|
+
|
|
31
31
|
if (buffer != null) delete this.buffers[buffer as number];
|
|
32
32
|
this.deleteBufferMock(buffer);
|
|
33
33
|
}
|
|
@@ -42,13 +42,13 @@ export class MockGLBufferController implements GLBufferController {
|
|
|
42
42
|
bufferData(
|
|
43
43
|
target: number,
|
|
44
44
|
dataOrSize: ArrayBufferLike | number,
|
|
45
|
-
usage: number
|
|
45
|
+
usage: number,
|
|
46
46
|
): void {
|
|
47
47
|
if (typeof dataOrSize === "number")
|
|
48
48
|
this.buffers[this.targets[target]] = new ArrayBuffer(dataOrSize);
|
|
49
49
|
else this.buffers[this.targets[target]] = dataOrSize;
|
|
50
50
|
|
|
51
|
-
this.bufferDataMock(target, dataOrSize
|
|
51
|
+
this.bufferDataMock(target, dataOrSize, usage);
|
|
52
52
|
}
|
|
53
53
|
|
|
54
54
|
bindBuffer(target: number, buffer: WebGLBuffer | null): void {
|
package/src/mock/index.ts
CHANGED
package/src/observe/index.ts
CHANGED
package/src/observe/observe.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
// Copyright
|
|
1
|
+
// Copyright 2024 Synnax Labs, Inc.
|
|
2
2
|
//
|
|
3
3
|
// Use of this software is governed by the Business Source License included in the file
|
|
4
4
|
// licenses/BSL.txt.
|
|
@@ -15,19 +15,50 @@ export interface Observable<T> {
|
|
|
15
15
|
onChange: (handler: Handler<T>) => Destructor;
|
|
16
16
|
}
|
|
17
17
|
|
|
18
|
-
export
|
|
19
|
-
|
|
18
|
+
export interface ObservableAsyncCloseable<T> extends Observable<T> {
|
|
19
|
+
close: () => Promise<void>;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
export type Transform<I, O> = (value: I) => [O, true] | [O | null, false];
|
|
23
|
+
|
|
24
|
+
export class Observer<I, O = I> implements Observable<O> {
|
|
25
|
+
private readonly handlers: Map<Handler<O>, null>;
|
|
26
|
+
private readonly transform?: Transform<I, O>;
|
|
27
|
+
|
|
28
|
+
constructor(transform?: Transform<I, O>, handlers?: Map<Handler<O>, null>) {
|
|
29
|
+
this.transform = transform;
|
|
30
|
+
this.handlers = handlers ?? new Map();
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
onChange(handler: Handler<O>): Destructor {
|
|
34
|
+
this.handlers.set(handler, null);
|
|
35
|
+
return () => this.handlers.delete(handler);
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
notify(value: I): void {
|
|
39
|
+
let newValue: O = value as unknown as O;
|
|
40
|
+
if (this.transform != null) {
|
|
41
|
+
const [nv, changed] = this.transform(value);
|
|
42
|
+
if (!changed) return;
|
|
43
|
+
newValue = nv;
|
|
44
|
+
}
|
|
45
|
+
this.handlers.forEach((_, handler) => handler(newValue));
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
export class BaseObserver<V> implements Observable<V> {
|
|
50
|
+
private readonly handlers: Map<Handler<V>, null>;
|
|
20
51
|
|
|
21
|
-
constructor(handlers?: Map<Handler<
|
|
52
|
+
constructor(handlers?: Map<Handler<V>, null>) {
|
|
22
53
|
this.handlers = handlers ?? new Map();
|
|
23
54
|
}
|
|
24
55
|
|
|
25
|
-
onChange(handler: Handler<
|
|
56
|
+
onChange(handler: Handler<V>): Destructor {
|
|
26
57
|
this.handlers.set(handler, null);
|
|
27
58
|
return () => this.handlers.delete(handler);
|
|
28
59
|
}
|
|
29
60
|
|
|
30
|
-
notify(value:
|
|
61
|
+
notify(value: V): void {
|
|
31
62
|
this.handlers.forEach((_, handler) => handler(value));
|
|
32
63
|
}
|
|
33
64
|
}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
// Copyright 2024 Synnax Labs, Inc.
|
|
2
|
+
//
|
|
3
|
+
// Use of this software is governed by the Business Source License included in the file
|
|
4
|
+
// licenses/BSL.txt.
|
|
5
|
+
//
|
|
6
|
+
// As of the Change Date specified in that file, in accordance with the Business Source
|
|
7
|
+
// License, use of this software will be governed by the Apache License, Version 2.0,
|
|
8
|
+
// included in the file licenses/APL.txt.
|
|
9
|
+
|
|
10
|
+
import { describe, expect, it } from "vitest";
|
|
11
|
+
|
|
12
|
+
import { observe } from "@/observe";
|
|
13
|
+
|
|
14
|
+
describe("observe", () => {
|
|
15
|
+
describe("Observer", () => {
|
|
16
|
+
it("should correctly notify the receives of values", () => {
|
|
17
|
+
const observer = new observe.Observer<number>();
|
|
18
|
+
const values: number[] = [];
|
|
19
|
+
observer.onChange((value) => values.push(value));
|
|
20
|
+
observer.notify(1);
|
|
21
|
+
observer.notify(2);
|
|
22
|
+
expect(values).toEqual([1, 2]);
|
|
23
|
+
});
|
|
24
|
+
it("should stop notifying a handler after the destructor is called", () => {
|
|
25
|
+
const observer = new observe.Observer<number>();
|
|
26
|
+
const values: number[] = [];
|
|
27
|
+
const destructor = observer.onChange((value) => values.push(value));
|
|
28
|
+
observer.notify(1);
|
|
29
|
+
destructor();
|
|
30
|
+
observer.notify(2);
|
|
31
|
+
expect(values).toEqual([1]);
|
|
32
|
+
});
|
|
33
|
+
it("should correctly transform an observed value", () => {
|
|
34
|
+
const observer = new observe.Observer<number, string>((value) => [
|
|
35
|
+
value.toString(),
|
|
36
|
+
true,
|
|
37
|
+
]);
|
|
38
|
+
const values: string[] = [];
|
|
39
|
+
observer.onChange((value) => values.push(value));
|
|
40
|
+
observer.notify(1);
|
|
41
|
+
observer.notify(2);
|
|
42
|
+
expect(values).toEqual(["1", "2"]);
|
|
43
|
+
});
|
|
44
|
+
it("should not notify when the transform returns false", () => {
|
|
45
|
+
const observer = new observe.Observer<number, string>((value) => [
|
|
46
|
+
value.toString(),
|
|
47
|
+
false,
|
|
48
|
+
]);
|
|
49
|
+
const values: string[] = [];
|
|
50
|
+
observer.onChange((value) => values.push(value));
|
|
51
|
+
observer.notify(1);
|
|
52
|
+
observer.notify(2);
|
|
53
|
+
expect(values).toEqual([]);
|
|
54
|
+
});
|
|
55
|
+
});
|
|
56
|
+
});
|
package/src/optional.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
// Copyright
|
|
1
|
+
// Copyright 2024 Synnax Labs, Inc.
|
|
2
2
|
//
|
|
3
3
|
// Use of this software is governed by the Business Source License included in the file
|
|
4
4
|
// licenses/BSL.txt.
|
|
@@ -9,7 +9,6 @@
|
|
|
9
9
|
|
|
10
10
|
export type Optional<T, K extends keyof T> = Pick<Partial<T>, K> & Omit<T, K>;
|
|
11
11
|
|
|
12
|
-
|
|
13
12
|
export type Required<T> = {
|
|
14
|
-
|
|
15
|
-
};
|
|
13
|
+
[P in keyof T]-?: T[P];
|
|
14
|
+
};
|
package/src/primitive.ts
CHANGED
package/src/record.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
// Copyright
|
|
1
|
+
// Copyright 2024 Synnax Labs, Inc.
|
|
2
2
|
//
|
|
3
3
|
// Use of this software is governed by the Business Source License included in the file
|
|
4
4
|
// licenses/BSL.txt.
|
|
@@ -11,18 +11,22 @@ import { z } from "zod";
|
|
|
11
11
|
|
|
12
12
|
export type Key = string | number | symbol;
|
|
13
13
|
|
|
14
|
-
export type UnknownRecord =
|
|
14
|
+
export type UnknownRecord = Record<Key, unknown>;
|
|
15
15
|
|
|
16
|
-
export
|
|
16
|
+
export interface Keyed<K extends Key> {
|
|
17
|
+
key: K;
|
|
18
|
+
}
|
|
17
19
|
|
|
18
20
|
export const unknownRecordZ = z.record(
|
|
19
21
|
z.union([z.number(), z.string(), z.symbol()]),
|
|
20
22
|
z.unknown(),
|
|
21
23
|
);
|
|
22
24
|
|
|
23
|
-
export type Entries<T> =
|
|
24
|
-
|
|
25
|
-
|
|
25
|
+
export type Entries<T> = Array<
|
|
26
|
+
{
|
|
27
|
+
[K in keyof T]: [K, T[K]];
|
|
28
|
+
}[keyof T]
|
|
29
|
+
>;
|
|
26
30
|
|
|
27
31
|
export const getEntries = <T extends Record<Key, unknown>>(obj: T): Entries<T> =>
|
|
28
32
|
Object.entries(obj) as Entries<T>;
|
package/src/renderable.ts
CHANGED
package/src/runtime/detect.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
// Copyright
|
|
1
|
+
// Copyright 2024 Synnax Labs, Inc.
|
|
2
2
|
//
|
|
3
3
|
// Use of this software is governed by the Business Source License included in the file
|
|
4
4
|
// licenses/BSL.txt.
|
|
@@ -17,14 +17,14 @@ export type Runtime = "browser" | "node" | "webworker";
|
|
|
17
17
|
*/
|
|
18
18
|
export const detect = (): Runtime => {
|
|
19
19
|
if (
|
|
20
|
-
|
|
20
|
+
|
|
21
21
|
typeof process !== "undefined" &&
|
|
22
22
|
process.versions != null &&
|
|
23
23
|
process.versions.node != null
|
|
24
24
|
)
|
|
25
25
|
return "node";
|
|
26
26
|
|
|
27
|
-
|
|
27
|
+
|
|
28
28
|
if (typeof window === "undefined" || window.document === undefined)
|
|
29
29
|
return "webworker";
|
|
30
30
|
|
package/src/runtime/external.ts
CHANGED
package/src/runtime/index.ts
CHANGED
package/src/runtime/os.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
// Copyright
|
|
1
|
+
// Copyright 2024 Synnax Labs, Inc.
|
|
2
2
|
//
|
|
3
3
|
// Use of this software is governed by the Business Source License included in the file
|
|
4
4
|
// licenses/BSL.txt.
|
|
@@ -13,10 +13,17 @@ export const OPERATING_SYSTEMS = ["MacOS", "Windows", "Linux", "Docker"] as cons
|
|
|
13
13
|
export const osZ = z.enum(OPERATING_SYSTEMS);
|
|
14
14
|
export type OS = (typeof OPERATING_SYSTEMS)[number];
|
|
15
15
|
|
|
16
|
-
export
|
|
16
|
+
export type RequiredGetOSProps = {
|
|
17
17
|
force?: OS;
|
|
18
18
|
default?: OS;
|
|
19
|
-
}
|
|
19
|
+
};
|
|
20
|
+
|
|
21
|
+
export type OptionalGetOSProps = {
|
|
22
|
+
force?: OS | undefined;
|
|
23
|
+
default: OS;
|
|
24
|
+
};
|
|
25
|
+
|
|
26
|
+
export type GetOSProps = RequiredGetOSProps | OptionalGetOSProps;
|
|
20
27
|
|
|
21
28
|
let os: OS | undefined;
|
|
22
29
|
|
|
@@ -29,10 +36,15 @@ const evalOS = (): OS | undefined => {
|
|
|
29
36
|
return undefined;
|
|
30
37
|
};
|
|
31
38
|
|
|
32
|
-
export
|
|
39
|
+
export interface GetOS {
|
|
40
|
+
(props?: RequiredGetOSProps): OS;
|
|
41
|
+
(props?: OptionalGetOSProps): OS | undefined;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
export const getOS = ((props: GetOSProps = {}): OS | undefined => {
|
|
33
45
|
const { force, default: default_ } = props;
|
|
34
46
|
if (force != null) return force;
|
|
35
47
|
if (os != null) return os;
|
|
36
48
|
os = evalOS();
|
|
37
49
|
return os ?? default_;
|
|
38
|
-
};
|
|
50
|
+
}) as unknown as GetOS;
|
package/src/search.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
// Copyright
|
|
1
|
+
// Copyright 2024 Synnax Labs, Inc.
|
|
2
2
|
//
|
|
3
3
|
// Use of this software is governed by the Business Source License included in the file
|
|
4
4
|
// licenses/BSL.txt.
|
|
@@ -28,12 +28,14 @@ export const Search = {
|
|
|
28
28
|
};
|
|
29
29
|
|
|
30
30
|
export interface TermSearcher<T, K extends Key, E extends Keyed<K>> {
|
|
31
|
+
readonly type: string;
|
|
31
32
|
search: (term: T) => E[];
|
|
32
33
|
retrieve: (keys: K[]) => E[];
|
|
33
34
|
page: (offset: number, limit: number) => E[];
|
|
34
35
|
}
|
|
35
36
|
|
|
36
37
|
export interface AsyncTermSearcher<T, K extends Key, E extends Keyed<K>> {
|
|
38
|
+
readonly type: string;
|
|
37
39
|
search: (term: T) => Promise<E[]>;
|
|
38
40
|
retrieve: (keys: K[]) => Promise<E[]>;
|
|
39
41
|
page: (offset: number, limit: number) => Promise<E[]>;
|
package/src/shallowCopy.ts
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
|
|
2
1
|
// Copyright 2024 Synnax Labs, Inc.
|
|
3
2
|
//
|
|
4
3
|
// Use of this software is governed by the Business Source License included in the file
|
|
@@ -8,8 +7,8 @@
|
|
|
8
7
|
// License, use of this software will be governed by the Apache License, Version 2.0,
|
|
9
8
|
// included in the file licenses/APL.txt.
|
|
10
9
|
|
|
11
|
-
export const shallowCopy = <T
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
}
|
|
10
|
+
export const shallowCopy = <T>(obj: T): T => {
|
|
11
|
+
if (Array.isArray(obj)) return [...obj] as T;
|
|
12
|
+
if (typeof obj === "object" && obj !== null) return { ...obj };
|
|
13
|
+
return obj;
|
|
14
|
+
};
|
package/src/spatial/base.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
// Copyright
|
|
1
|
+
// Copyright 2024 Synnax Labs, Inc.
|
|
2
2
|
//
|
|
3
3
|
// Use of this software is governed by the Business Source License included in the file
|
|
4
4
|
// licenses/BSL.txt.
|
|
@@ -10,7 +10,8 @@
|
|
|
10
10
|
import { z } from "zod";
|
|
11
11
|
|
|
12
12
|
export const numberCouple = z.tuple([z.number(), z.number()]);
|
|
13
|
-
export
|
|
13
|
+
export const bigNumberCouple = z.tuple([z.bigint(), z.bigint()]);
|
|
14
|
+
export type NumberCouple<T extends number | bigint = number> = [T, T];
|
|
14
15
|
|
|
15
16
|
// Dimensions
|
|
16
17
|
|
|
@@ -53,7 +54,7 @@ export const Y_LOCATIONS = ["top", "bottom"] as const;
|
|
|
53
54
|
export const yLocation = z.enum(Y_LOCATIONS);
|
|
54
55
|
export type YLocation = (typeof Y_LOCATIONS)[number];
|
|
55
56
|
export const CENTER_LOCATIONS = ["center"] as const;
|
|
56
|
-
export const
|
|
57
|
+
export const centerLocation = z.enum(CENTER_LOCATIONS);
|
|
57
58
|
export type CenterLocation = (typeof CENTER_LOCATIONS)[number];
|
|
58
59
|
export const LOCATIONS = [...OUTER_LOCATIONS, ...CENTER_LOCATIONS] as const;
|
|
59
60
|
export const location = z.enum(LOCATIONS);
|
|
@@ -70,10 +71,17 @@ export type Order = (typeof ORDERS)[number];
|
|
|
70
71
|
// Bounds
|
|
71
72
|
|
|
72
73
|
export const bounds = z.object({ lower: z.number(), upper: z.number() });
|
|
73
|
-
export
|
|
74
|
+
export const bigBounds = z.object({ lower: z.bigint(), upper: z.bigint() });
|
|
75
|
+
export interface Bounds<T extends number | bigint = number> {
|
|
76
|
+
lower: T;
|
|
77
|
+
upper: T;
|
|
78
|
+
}
|
|
74
79
|
|
|
75
80
|
export const crudeBounds = z.union([bounds, numberCouple]);
|
|
76
|
-
export
|
|
81
|
+
export const bigCrudeBounds = z.union([bigBounds, numberCouple]);
|
|
82
|
+
export type CrudeBounds<T extends number | bigint = number> =
|
|
83
|
+
| Bounds<T>
|
|
84
|
+
| NumberCouple<T>;
|
|
77
85
|
export const crudeDirection = z.union([direction, location]);
|
|
78
86
|
export type CrudeDirection = z.infer<typeof crudeDirection>;
|
|
79
87
|
export const crudeLocation = z.union([direction, location, z.instanceof(String)]);
|