@thi.ng/soa 0.2.24 → 0.3.3

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/CHANGELOG.md CHANGED
@@ -3,7 +3,7 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
- ## [0.2.24](https://github.com/thi-ng/umbrella/compare/@thi.ng/soa@0.2.23...@thi.ng/soa@0.2.24) (2021-08-19)
6
+ ## [0.3.3](https://github.com/thi-ng/umbrella/compare/@thi.ng/soa@0.3.2...@thi.ng/soa@0.3.3) (2021-10-15)
7
7
 
8
8
  **Note:** Version bump only for package @thi.ng/soa
9
9
 
@@ -11,7 +11,7 @@ See [Conventional Commits](https://conventionalcommits.org) for commit guideline
11
11
 
12
12
 
13
13
 
14
- ## [0.2.23](https://github.com/thi-ng/umbrella/compare/@thi.ng/soa@0.2.22...@thi.ng/soa@0.2.23) (2021-08-19)
14
+ ## [0.3.2](https://github.com/thi-ng/umbrella/compare/@thi.ng/soa@0.3.1...@thi.ng/soa@0.3.2) (2021-10-15)
15
15
 
16
16
  **Note:** Version bump only for package @thi.ng/soa
17
17
 
@@ -19,7 +19,7 @@ See [Conventional Commits](https://conventionalcommits.org) for commit guideline
19
19
 
20
20
 
21
21
 
22
- ## [0.2.22](https://github.com/thi-ng/umbrella/compare/@thi.ng/soa@0.2.21...@thi.ng/soa@0.2.22) (2021-08-17)
22
+ ## [0.3.1](https://github.com/thi-ng/umbrella/compare/@thi.ng/soa@0.3.0...@thi.ng/soa@0.3.1) (2021-10-13)
23
23
 
24
24
  **Note:** Version bump only for package @thi.ng/soa
25
25
 
@@ -27,93 +27,58 @@ See [Conventional Commits](https://conventionalcommits.org) for commit guideline
27
27
 
28
28
 
29
29
 
30
- ## [0.2.21](https://github.com/thi-ng/umbrella/compare/@thi.ng/soa@0.2.20...@thi.ng/soa@0.2.21) (2021-08-08)
30
+ # [0.3.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/soa@0.2.25...@thi.ng/soa@0.3.0) (2021-10-12)
31
31
 
32
- **Note:** Version bump only for package @thi.ng/soa
33
-
34
-
35
-
36
-
37
-
38
- ## [0.2.20](https://github.com/thi-ng/umbrella/compare/@thi.ng/soa@0.2.19...@thi.ng/soa@0.2.20) (2021-08-08)
39
-
40
- **Note:** Version bump only for package @thi.ng/soa
41
-
42
-
43
-
44
-
45
-
46
- ## [0.2.19](https://github.com/thi-ng/umbrella/compare/@thi.ng/soa@0.2.18...@thi.ng/soa@0.2.19) (2021-08-04)
47
-
48
- **Note:** Version bump only for package @thi.ng/soa
49
-
50
-
51
-
52
-
53
-
54
- ## [0.2.18](https://github.com/thi-ng/umbrella/compare/@thi.ng/soa@0.2.17...@thi.ng/soa@0.2.18) (2021-08-04)
55
-
56
- **Note:** Version bump only for package @thi.ng/soa
57
32
 
33
+ ### Build System
58
34
 
35
+ * major update of ALL pkgs (export maps, ESM only) ([0d1d6ea](https://github.com/thi-ng/umbrella/commit/0d1d6ea9fab2a645d6c5f2bf2591459b939c09b6))
59
36
 
60
37
 
38
+ ### BREAKING CHANGES
61
39
 
62
- ## [0.2.17](https://github.com/thi-ng/umbrella/compare/@thi.ng/soa@0.2.16...@thi.ng/soa@0.2.17) (2021-07-27)
63
-
64
- **Note:** Version bump only for package @thi.ng/soa
65
-
66
-
67
-
68
-
69
-
70
- ## [0.2.16](https://github.com/thi-ng/umbrella/compare/@thi.ng/soa@0.2.15...@thi.ng/soa@0.2.16) (2021-07-01)
71
-
72
- **Note:** Version bump only for package @thi.ng/soa
73
-
74
-
75
-
76
-
77
-
78
- ## [0.2.15](https://github.com/thi-ng/umbrella/compare/@thi.ng/soa@0.2.14...@thi.ng/soa@0.2.15) (2021-06-08)
79
-
80
- **Note:** Version bump only for package @thi.ng/soa
81
-
82
-
83
-
84
-
40
+ * discontinue CommonJS & UMD versions
85
41
 
86
- # [0.2.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/soa@0.1.47...@thi.ng/soa@0.2.0) (2021-02-20)
42
+ - only ESM modules will be published from now on
43
+ - CJS obsolete due to ESM support in recent versions of node:
44
+ - i.e. launch NodeJS via:
45
+ - `node --experimental-specifier-resolution=node --experimental-repl-await`
46
+ - in the node REPL use `await import(...)` instead of `require()`
47
+ - UMD obsolete due to widespread browser support for ESM
87
48
 
49
+ Also:
50
+ - normalize/restructure/reorg all package.json files
51
+ - cleanup all build scripts, remove obsolete
52
+ - switch from mocha to @thi.ng/testament for all tests
88
53
 
89
- ### Code Refactoring
90
54
 
91
- * **soa:** update attrib type handling ([274dadf](https://github.com/thi-ng/umbrella/commit/274dadf2507ac4daeea59c53a0f408343d582d8e))
92
55
 
93
56
 
94
- ### BREAKING CHANGES
95
57
 
96
- * **soa:** attrib buffer data type use string consts
97
58
 
98
- - part of unified umbrella-wide changes to thi.ng/api Type alias
99
- (see a333d4182)
59
+ # [0.2.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/soa@0.1.47...@thi.ng/soa@0.2.0) (2021-02-20)
100
60
 
61
+ ### Code Refactoring
101
62
 
63
+ - **soa:** update attrib type handling ([274dadf](https://github.com/thi-ng/umbrella/commit/274dadf2507ac4daeea59c53a0f408343d582d8e))
102
64
 
65
+ ### BREAKING CHANGES
103
66
 
67
+ - **soa:** attrib buffer data type use string consts
68
+ - part of unified umbrella-wide changes to thi.ng/api Type alias (see a333d4182)
104
69
 
105
- # 0.1.0 (2019-11-09)
70
+ # 0.1.0 (2019-11-09)
106
71
 
107
- ### Bug Fixes
72
+ ### Bug Fixes
108
73
 
109
- * **soa:** remove obsolete imports ([2309ccd](https://github.com/thi-ng/umbrella/commit/2309ccd6e581b6f385f4a2720fd2ad5cfb8a0d79))
74
+ - **soa:** remove obsolete imports ([2309ccd](https://github.com/thi-ng/umbrella/commit/2309ccd6e581b6f385f4a2720fd2ad5cfb8a0d79))
110
75
 
111
- ### Features
76
+ ### Features
112
77
 
113
- * **soa:** add new pkg [@thi](https://github.com/thi).ng/soa ([5f8ffa1](https://github.com/thi-ng/umbrella/commit/5f8ffa175fabc4518f6b931c8c57473ea8ab1a74))
114
- * **soa:** add/update types, update aos(), add SOA.setValues(), tests ([b8e0780](https://github.com/thi-ng/umbrella/commit/b8e07806427041a7ef3413ca47357e3360f6a4c8))
115
- * **soa:** update SOAAttribSpec.buf to use ArrayBuffer w/ opt offset ([2759570](https://github.com/thi-ng/umbrella/commit/27595700ce0df21258dad58e18abf98b8ddb7c30))
78
+ - **soa:** add new pkg [@thi](https://github.com/thi).ng/soa ([5f8ffa1](https://github.com/thi-ng/umbrella/commit/5f8ffa175fabc4518f6b931c8c57473ea8ab1a74))
79
+ - **soa:** add/update types, update aos(), add SOA.setValues(), tests ([b8e0780](https://github.com/thi-ng/umbrella/commit/b8e07806427041a7ef3413ca47357e3360f6a4c8))
80
+ - **soa:** update SOAAttribSpec.buf to use ArrayBuffer w/ opt offset ([2759570](https://github.com/thi-ng/umbrella/commit/27595700ce0df21258dad58e18abf98b8ddb7c30))
116
81
 
117
- ### Performance Improvements
82
+ ### Performance Improvements
118
83
 
119
- * **soa:** update attribValues() impl ([786a02f](https://github.com/thi-ng/umbrella/commit/786a02f66fd0f50e678f3eb048964fadf293db3f))
84
+ - **soa:** update attribValues() impl ([786a02f](https://github.com/thi-ng/umbrella/commit/786a02f66fd0f50e678f3eb048964fadf293db3f))
package/README.md CHANGED
@@ -66,15 +66,24 @@ by
66
66
  yarn add @thi.ng/soa
67
67
  ```
68
68
 
69
+ ES module import:
70
+
69
71
  ```html
70
- // ES module
71
- <script type="module" src="https://unpkg.com/@thi.ng/soa?module" crossorigin></script>
72
+ <script type="module" src="https://cdn.skypack.dev/@thi.ng/soa"></script>
73
+ ```
74
+
75
+ [Skypack documentation](https://docs.skypack.dev/)
76
+
77
+ For Node.js REPL:
78
+
79
+ ```text
80
+ # with flag only for < v16
81
+ node --experimental-repl-await
72
82
 
73
- // UMD
74
- <script src="https://unpkg.com/@thi.ng/soa/lib/index.umd.js" crossorigin></script>
83
+ > const soa = await import("@thi.ng/soa");
75
84
  ```
76
85
 
77
- Package sizes (gzipped, pre-treeshake): ESM: 1.41 KB / CJS: 1.49 KB / UMD: 1.59 KB
86
+ Package sizes (gzipped, pre-treeshake): ESM: 1.43 KB
78
87
 
79
88
  ## Dependencies
80
89
 
@@ -93,7 +102,7 @@ directory are using this package.
93
102
  A selection:
94
103
 
95
104
  | Screenshot | Description | Live demo | Source |
96
- | ------------------------------------------------------------------------------------------------------------------- | -------------------------------------------- | ------------------------------------------------ | ----------------------------------------------------------------------------- |
105
+ |:--------------------------------------------------------------------------------------------------------------------|:---------------------------------------------|:-------------------------------------------------|:------------------------------------------------------------------------------|
97
106
  | <img src="https://raw.githubusercontent.com/thi-ng/umbrella/develop/assets/examples/soa-ecs-100k.png" width="240"/> | Entity Component System w/ 100k 3D particles | [Demo](https://demo.thi.ng/umbrella/soa-ecs/) | [Source](https://github.com/thi-ng/umbrella/tree/develop/examples/soa-ecs) |
98
107
  | <img src="https://raw.githubusercontent.com/thi-ng/umbrella/develop/assets/examples/webgl-cube.png" width="240"/> | WebGL multi-colored cube mesh | [Demo](https://demo.thi.ng/umbrella/webgl-cube/) | [Source](https://github.com/thi-ng/umbrella/tree/develop/examples/webgl-cube) |
99
108
 
package/aos.d.ts CHANGED
@@ -1,5 +1,5 @@
1
- import type { AOSSpecs } from "./api";
2
- import { SOA } from "./soa";
1
+ import type { AOSSpecs } from "./api.js";
2
+ import { SOA } from "./soa.js";
3
3
  /**
4
4
  * Constructs SOA instance from given attrib specs and optional
5
5
  * ArrayBuffer (w/ optional start address / byte offset, which MUST be
package/aos.js CHANGED
@@ -1,7 +1,7 @@
1
- import { SIZEOF } from "@thi.ng/api";
2
- import { align } from "@thi.ng/binary";
3
- import { SOA } from "./soa";
4
- import { prepareSpec } from "./utils";
1
+ import { SIZEOF } from "@thi.ng/api/typedarray";
2
+ import { align } from "@thi.ng/binary/align";
3
+ import { SOA } from "./soa.js";
4
+ import { prepareSpec } from "./utils.js";
5
5
  /**
6
6
  * Constructs SOA instance from given attrib specs and optional
7
7
  * ArrayBuffer (w/ optional start address / byte offset, which MUST be
package/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
- export * from "./api";
2
- export * from "./aos";
3
- export * from "./soa";
4
- export * from "./serialize";
1
+ export * from "./api.js";
2
+ export * from "./aos.js";
3
+ export * from "./soa.js";
4
+ export * from "./serialize.js";
5
5
  //# sourceMappingURL=index.d.ts.map
package/index.js CHANGED
@@ -1,4 +1,4 @@
1
- export * from "./api";
2
- export * from "./aos";
3
- export * from "./soa";
4
- export * from "./serialize";
1
+ export * from "./api.js";
2
+ export * from "./aos.js";
3
+ export * from "./soa.js";
4
+ export * from "./serialize.js";
package/package.json CHANGED
@@ -1,11 +1,11 @@
1
1
  {
2
2
  "name": "@thi.ng/soa",
3
- "version": "0.2.24",
3
+ "version": "0.3.3",
4
4
  "description": "SOA & AOS memory mapped structured views with optional & extensible serialization",
5
+ "type": "module",
5
6
  "module": "./index.js",
6
- "main": "./lib/index.js",
7
- "umd:main": "./lib/index.umd.js",
8
7
  "typings": "./index.d.ts",
8
+ "sideEffects": false,
9
9
  "repository": {
10
10
  "type": "git",
11
11
  "url": "https://github.com/thi-ng/umbrella.git"
@@ -24,34 +24,26 @@
24
24
  "author": "Karsten Schmidt <k+npm@thi.ng>",
25
25
  "license": "Apache-2.0",
26
26
  "scripts": {
27
- "build": "yarn clean && yarn build:es6 && node ../../scripts/bundle-module",
28
- "build:release": "yarn clean && yarn build:es6 && node ../../scripts/bundle-module all",
29
- "build:es6": "tsc --declaration",
30
- "build:test": "rimraf build && tsc -p test/tsconfig.json",
31
- "build:check": "tsc --isolatedModules --noEmit",
32
- "test": "mocha test",
33
- "cover": "nyc mocha test && nyc report --reporter=lcov",
34
- "clean": "rimraf *.js *.d.ts *.map .nyc_output build coverage doc lib",
35
- "doc:readme": "ts-node -P ../../tools/tsconfig.json ../../tools/src/readme.ts",
36
- "doc": "typedoc --excludePrivate --out doc --theme ../../tools/doc/typedoc-theme src/index.ts",
27
+ "build": "yarn clean && tsc --declaration",
28
+ "clean": "rimraf *.js *.d.ts *.map doc",
29
+ "doc": "typedoc --excludePrivate --excludeInternal --out doc src/index.ts",
37
30
  "doc:ae": "mkdir -p .ae/doc .ae/temp && node_modules/.bin/api-extractor run --local --verbose",
38
- "pub": "yarn build:release && yarn publish --access public"
39
- },
40
- "devDependencies": {
41
- "@thi.ng/equiv": "^1.0.45"
31
+ "doc:readme": "yarn doc:stats && ../../scripts/node-esm ../../tools/src/readme.ts",
32
+ "doc:stats": "../../scripts/node-esm ../../tools/src/module-stats.ts",
33
+ "pub": "yarn build && yarn publish --access public",
34
+ "test": "testament test"
42
35
  },
43
36
  "dependencies": {
44
- "@thi.ng/api": "^7.1.9",
45
- "@thi.ng/binary": "^2.2.10",
46
- "@thi.ng/errors": "^1.3.4",
47
- "@thi.ng/transducers-binary": "^1.0.4",
48
- "@thi.ng/vectors": "^6.1.2"
37
+ "@thi.ng/api": "^8.0.3",
38
+ "@thi.ng/binary": "^3.0.3",
39
+ "@thi.ng/errors": "^2.0.3",
40
+ "@thi.ng/transducers-binary": "^2.0.3",
41
+ "@thi.ng/vectors": "^7.0.3"
42
+ },
43
+ "devDependencies": {
44
+ "@thi.ng/equiv": "^2.0.3",
45
+ "@thi.ng/testament": "^0.1.3"
49
46
  },
50
- "files": [
51
- "*.js",
52
- "*.d.ts",
53
- "lib"
54
- ],
55
47
  "keywords": [
56
48
  "acceleration",
57
49
  "aos",
@@ -72,7 +64,30 @@
72
64
  "publishConfig": {
73
65
  "access": "public"
74
66
  },
75
- "sideEffects": false,
67
+ "engines": {
68
+ "node": ">=12.7"
69
+ },
70
+ "files": [
71
+ "*.js",
72
+ "*.d.ts"
73
+ ],
74
+ "exports": {
75
+ ".": {
76
+ "import": "./index.js"
77
+ },
78
+ "./aos": {
79
+ "import": "./aos.js"
80
+ },
81
+ "./api": {
82
+ "import": "./api.js"
83
+ },
84
+ "./serialize": {
85
+ "import": "./serialize.js"
86
+ },
87
+ "./soa": {
88
+ "import": "./soa.js"
89
+ }
90
+ },
76
91
  "thi.ng": {
77
92
  "related": [
78
93
  "ecs",
@@ -85,5 +100,5 @@
85
100
  "status": "alpha",
86
101
  "year": 2019
87
102
  },
88
- "gitHead": "84a067278ef79ccd538eeb652046eb8e03f3e34e"
103
+ "gitHead": "1fb38cac74d6c009d96855c28784a267a81badf1"
89
104
  }
package/serialize.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import type { Vec } from "@thi.ng/vectors";
2
- import type { Serializer, SerializerPair, SerializerSpecs } from "./api";
2
+ import type { Serializer, SerializerPair, SerializerSpecs } from "./api.js";
3
3
  /**
4
4
  * Identity serializer pair (no op).
5
5
  */
package/serialize.js CHANGED
@@ -1,5 +1,5 @@
1
- import { assert } from "@thi.ng/api";
2
- import { utf8Decode, utf8Encode } from "@thi.ng/transducers-binary";
1
+ import { assert } from "@thi.ng/errors/assert";
2
+ import { utf8Decode, utf8Encode } from "@thi.ng/transducers-binary/utf8";
3
3
  /**
4
4
  * Identity serializer pair (no op).
5
5
  */
package/soa.d.ts CHANGED
@@ -1,6 +1,7 @@
1
- import { ILength, TypedArray } from "@thi.ng/api";
1
+ import type { ILength } from "@thi.ng/api";
2
+ import { TypedArray } from "@thi.ng/api/typedarray";
2
3
  import type { ReadonlyVec, Vec } from "@thi.ng/vectors";
3
- import type { SOAAttribSpec, SOASpecs, SOATuple } from "./api";
4
+ import type { SOAAttribSpec, SOASpecs, SOATuple } from "./api.js";
4
5
  export declare class SOA<K extends string> implements ILength {
5
6
  length: number;
6
7
  buffers: Record<K, TypedArray>;
package/soa.js CHANGED
@@ -1,6 +1,7 @@
1
- import { assert, SIZEOF, typedArray } from "@thi.ng/api";
2
- import { ensureIndex } from "@thi.ng/errors";
3
- import { prepareSpec } from "./utils";
1
+ import { SIZEOF, typedArray } from "@thi.ng/api/typedarray";
2
+ import { assert } from "@thi.ng/errors/assert";
3
+ import { ensureIndex } from "@thi.ng/errors/out-of-bounds";
4
+ import { prepareSpec } from "./utils.js";
4
5
  export class SOA {
5
6
  constructor(num, specs) {
6
7
  this.length = num;
package/utils.d.ts CHANGED
@@ -1,3 +1,3 @@
1
- import type { SOAAttribSpec } from "./api";
1
+ import type { SOAAttribSpec } from "./api.js";
2
2
  export declare const prepareSpec: (spec: Partial<SOAAttribSpec>) => Partial<SOAAttribSpec>;
3
3
  //# sourceMappingURL=utils.d.ts.map
package/utils.js CHANGED
@@ -1,5 +1,5 @@
1
1
  export const prepareSpec = (spec) => {
2
- spec = Object.assign({ type: "f32", size: 1 }, spec);
2
+ spec = { type: "f32", size: 1, ...spec };
3
3
  !spec.stride && (spec.stride = spec.size);
4
4
  return spec;
5
5
  };
package/lib/index.js DELETED
@@ -1,246 +0,0 @@
1
- 'use strict';
2
-
3
- Object.defineProperty(exports, '__esModule', { value: true });
4
-
5
- var api = require('@thi.ng/api');
6
- var binary = require('@thi.ng/binary');
7
- var errors = require('@thi.ng/errors');
8
- var transducersBinary = require('@thi.ng/transducers-binary');
9
-
10
- const prepareSpec = (spec) => {
11
- spec = Object.assign({ type: "f32", size: 1 }, spec);
12
- !spec.stride && (spec.stride = spec.size);
13
- return spec;
14
- };
15
-
16
- class SOA {
17
- constructor(num, specs) {
18
- this.length = num;
19
- this.buffers = {};
20
- this.specs = {};
21
- this.addSpecs(specs);
22
- }
23
- keys() {
24
- return Object.keys(this.specs);
25
- }
26
- *values(from = 0, to = this.length) {
27
- errors.ensureIndex(from, 0, this.length);
28
- errors.ensureIndex(to, from, this.length + 1);
29
- for (; from < to; from++) {
30
- yield this.indexUnsafe(from);
31
- }
32
- }
33
- attribValues(id, from = 0, to = this.length) {
34
- this.ensureAttrib(id);
35
- errors.ensureIndex(from, 0, this.length);
36
- errors.ensureIndex(to, from, this.length + 1);
37
- let { size, stride, type } = this.specs[id];
38
- const buf = this.buffers[id].buffer;
39
- stride *= api.SIZEOF[type];
40
- from *= stride;
41
- to *= stride;
42
- const res = [];
43
- for (; from < to; from += stride) {
44
- res.push(api.typedArray(type, buf, from, size));
45
- }
46
- return res;
47
- }
48
- attribValue(id, i) {
49
- this.ensureAttrib(id);
50
- errors.ensureIndex(i, 0, this.length);
51
- return this.attribValueUnsafe(id, i);
52
- }
53
- attribValueUnsafe(id, i) {
54
- const spec = this.specs[id];
55
- i *= spec.stride;
56
- return this.buffers[id].subarray(i, i + spec.size);
57
- }
58
- setAttribValue(id, i, val) {
59
- this.ensureAttrib(id);
60
- errors.ensureIndex(i, 0, this.length);
61
- const spec = this.specs[id];
62
- api.assert(val.length <= spec.size, `${id} value too large`);
63
- this.buffers[id].set(val, i * spec.stride);
64
- }
65
- setAttribValueUnsafe(id, i, val) {
66
- this.buffers[id].set(val, i * this.specs[id].stride);
67
- return this;
68
- }
69
- setAttribValues(id, vals, from = 0) {
70
- this.ensureAttrib(id);
71
- errors.ensureIndex(from, 0, this.length);
72
- const buf = this.buffers[id];
73
- const stride = this.specs[id].stride;
74
- const end = this.length * stride;
75
- let i = from * stride;
76
- for (let v of vals) {
77
- buf.set(v, i);
78
- i += stride;
79
- if (i >= end)
80
- break;
81
- }
82
- return this;
83
- }
84
- index(i, ids) {
85
- errors.ensureIndex(i, 0, this.length);
86
- return this.indexUnsafe(i, ids);
87
- }
88
- indexUnsafe(i, ids) {
89
- const res = {};
90
- if (ids) {
91
- for (let i = ids.length; --i >= 0;) {
92
- const id = ids[i];
93
- res[id] = this.attribValueUnsafe(id, i);
94
- }
95
- }
96
- else {
97
- for (let id in this.specs) {
98
- res[id] = this.attribValueUnsafe(id, i);
99
- }
100
- }
101
- return res;
102
- }
103
- setIndex(i, vals) {
104
- errors.ensureIndex(i, 0, this.length);
105
- for (let id in vals) {
106
- this.setAttribValue(id, i, vals[id]);
107
- }
108
- return this;
109
- }
110
- setIndexUnsafe(i, vals) {
111
- for (let id in vals) {
112
- this.setAttribValueUnsafe(id, i, vals[id]);
113
- }
114
- return this;
115
- }
116
- setValues(vals, from = 0) {
117
- for (let id in vals) {
118
- this.setAttribValues(id, vals[id], from);
119
- }
120
- return this;
121
- }
122
- copyTo(dest, ids, destFrom = 0, srcFrom = 0, srcTo = this.length) {
123
- errors.ensureIndex(srcFrom, 0, this.length);
124
- errors.ensureIndex(srcTo, srcFrom, this.length + 1);
125
- const num = srcTo - srcFrom;
126
- errors.ensureIndex(destFrom, 0, dest.length);
127
- errors.ensureIndex(destFrom + num, destFrom, dest.length + 1);
128
- ids = ids || Object.keys(this.specs);
129
- for (let k = ids.length; --k >= 0;) {
130
- const id = ids[k];
131
- for (let i = srcFrom, j = destFrom; i < srcTo; i++, j++) {
132
- dest.setAttribValueUnsafe(id, j, this.attribValueUnsafe(id, i));
133
- }
134
- }
135
- return dest;
136
- }
137
- addSpecs(specs) {
138
- const num = this.length;
139
- for (let id in specs) {
140
- api.assert(!this.specs[id], `attrib ${id} already exists`);
141
- const spec = prepareSpec(specs[id]);
142
- this.validateSpec(id, spec);
143
- const { stride, default: defVal } = spec;
144
- const buffer = spec.buf
145
- ? api.typedArray(spec.type, spec.buf, spec.byteOffset || 0)
146
- : api.typedArray(spec.type, num * stride);
147
- if (defVal) {
148
- for (let i = 0; i < num; i++) {
149
- buffer.set(defVal, i * stride);
150
- }
151
- }
152
- this.specs[id] = spec;
153
- this.buffers[id] = buffer;
154
- }
155
- }
156
- validateSpec(id, spec) {
157
- api.assert(spec.stride >= spec.size, `${id} illegal stride`);
158
- api.assert(!spec.buf ||
159
- spec.buf.byteLength >=
160
- ((this.length - 1) * spec.stride + spec.size) *
161
- api.SIZEOF[spec.type], `${id} buffer too small`);
162
- api.assert(spec.default === undefined || spec.default.length === spec.size, `illegal default value for ${id}, expected size: ${spec.size}`);
163
- }
164
- ensureAttrib(id) {
165
- api.assert(!!this.specs[id], `invalid attrib ${id}`);
166
- }
167
- }
168
- const soa = (num, specs) => new SOA(num, specs);
169
-
170
- const aos = (num, specs, buf, byteOffset = 0) => {
171
- let total = 0;
172
- let maxSize = 0;
173
- const offsets = {};
174
- const soaSpecs = {};
175
- for (let id in specs) {
176
- const spec = prepareSpec(specs[id]);
177
- const tsize = api.SIZEOF[spec.type];
178
- maxSize = Math.max(maxSize, tsize);
179
- total = binary.align(total, tsize);
180
- offsets[id] = total;
181
- total += tsize * spec.size;
182
- soaSpecs[id] = spec;
183
- }
184
- total = binary.align(total, maxSize);
185
- buf = buf || new ArrayBuffer(total * num + byteOffset);
186
- for (let id in soaSpecs) {
187
- const spec = soaSpecs[id];
188
- const tsize = api.SIZEOF[spec.type];
189
- spec.stride = total / tsize;
190
- spec.buf = buf;
191
- spec.byteOffset = byteOffset + offsets[id];
192
- }
193
- return new SOA(num, soaSpecs);
194
- };
195
-
196
- const ident = {
197
- decode: (x) => x,
198
- encode: (x) => x,
199
- };
200
- const scalar = {
201
- decode: (v) => v[0],
202
- encode: (x) => [x],
203
- };
204
- const toUTF8 = transducersBinary.utf8Decode();
205
- const utf8z = (maxLen) => ({
206
- decode: (v) => {
207
- let acc = "";
208
- const xf = toUTF8([null, null, (_, x) => (acc += x)])[2];
209
- for (let i = 0, n = v.length; i < n; i++) {
210
- const c = v[i];
211
- if (c === 0)
212
- break;
213
- xf(acc, c);
214
- }
215
- return acc;
216
- },
217
- encode: (v) => {
218
- const bytes = [...transducersBinary.utf8Encode(v), 0];
219
- api.assert(bytes.length <= maxLen, `string too large: "${v}"`);
220
- return bytes;
221
- },
222
- });
223
- const serializer = (specs) => ({
224
- decode(tuple) {
225
- const res = {};
226
- for (let id in tuple) {
227
- res[id] = specs[id].decode(tuple[id]);
228
- }
229
- return res;
230
- },
231
- encode: (tuple) => {
232
- const res = {};
233
- for (let id in tuple) {
234
- res[id] = specs[id].encode(tuple[id]);
235
- }
236
- return res;
237
- },
238
- });
239
-
240
- exports.SOA = SOA;
241
- exports.aos = aos;
242
- exports.ident = ident;
243
- exports.scalar = scalar;
244
- exports.serializer = serializer;
245
- exports.soa = soa;
246
- exports.utf8z = utf8z;
package/lib/index.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sources":["../utils.js","../soa.js","../aos.js","../serialize.js"],"sourcesContent":null,"names":["ensureIndex","SIZEOF","typedArray","assert","align","utf8Decode","utf8Encode"],"mappings":"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"}
package/lib/index.umd.js DELETED
@@ -1 +0,0 @@
1
- !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("@thi.ng/api"),require("@thi.ng/binary"),require("@thi.ng/errors"),require("@thi.ng/transducers-binary")):"function"==typeof define&&define.amd?define(["exports","@thi.ng/api","@thi.ng/binary","@thi.ng/errors","@thi.ng/transducers-binary"],t):t(((e="undefined"!=typeof globalThis?globalThis:e||self).thi=e.thi||{},e.thi.ng=e.thi.ng||{},e.thi.ng.soa={}),e.thi.ng.api,e.thi.ng.binary,e.thi.ng.errors,e.thi.ng.transducersBinary)}(this,(function(e,t,s,n,i){"use strict";const r=e=>(!(e=Object.assign({type:"f32",size:1},e)).stride&&(e.stride=e.size),e);class h{constructor(e,t){this.length=e,this.buffers={},this.specs={},this.addSpecs(t)}keys(){return Object.keys(this.specs)}*values(e=0,t=this.length){for(n.ensureIndex(e,0,this.length),n.ensureIndex(t,e,this.length+1);e<t;e++)yield this.indexUnsafe(e)}attribValues(e,s=0,i=this.length){this.ensureAttrib(e),n.ensureIndex(s,0,this.length),n.ensureIndex(i,s,this.length+1);let{size:r,stride:h,type:a}=this.specs[e];const l=this.buffers[e].buffer;h*=t.SIZEOF[a],s*=h,i*=h;const u=[];for(;s<i;s+=h)u.push(t.typedArray(a,l,s,r));return u}attribValue(e,t){return this.ensureAttrib(e),n.ensureIndex(t,0,this.length),this.attribValueUnsafe(e,t)}attribValueUnsafe(e,t){const s=this.specs[e];return t*=s.stride,this.buffers[e].subarray(t,t+s.size)}setAttribValue(e,s,i){this.ensureAttrib(e),n.ensureIndex(s,0,this.length);const r=this.specs[e];t.assert(i.length<=r.size,`${e} value too large`),this.buffers[e].set(i,s*r.stride)}setAttribValueUnsafe(e,t,s){return this.buffers[e].set(s,t*this.specs[e].stride),this}setAttribValues(e,t,s=0){this.ensureAttrib(e),n.ensureIndex(s,0,this.length);const i=this.buffers[e],r=this.specs[e].stride,h=this.length*r;let a=s*r;for(let e of t)if(i.set(e,a),a+=r,a>=h)break;return this}index(e,t){return n.ensureIndex(e,0,this.length),this.indexUnsafe(e,t)}indexUnsafe(e,t){const s={};if(t)for(let e=t.length;--e>=0;){const n=t[e];s[n]=this.attribValueUnsafe(n,e)}else for(let t in this.specs)s[t]=this.attribValueUnsafe(t,e);return s}setIndex(e,t){n.ensureIndex(e,0,this.length);for(let s in t)this.setAttribValue(s,e,t[s]);return this}setIndexUnsafe(e,t){for(let s in t)this.setAttribValueUnsafe(s,e,t[s]);return this}setValues(e,t=0){for(let s in e)this.setAttribValues(s,e[s],t);return this}copyTo(e,t,s=0,i=0,r=this.length){n.ensureIndex(i,0,this.length),n.ensureIndex(r,i,this.length+1);const h=r-i;n.ensureIndex(s,0,e.length),n.ensureIndex(s+h,s,e.length+1);for(let n=(t=t||Object.keys(this.specs)).length;--n>=0;){const h=t[n];for(let t=i,n=s;t<r;t++,n++)e.setAttribValueUnsafe(h,n,this.attribValueUnsafe(h,t))}return e}addSpecs(e){const s=this.length;for(let n in e){t.assert(!this.specs[n],`attrib ${n} already exists`);const i=r(e[n]);this.validateSpec(n,i);const{stride:h,default:a}=i,l=i.buf?t.typedArray(i.type,i.buf,i.byteOffset||0):t.typedArray(i.type,s*h);if(a)for(let e=0;e<s;e++)l.set(a,e*h);this.specs[n]=i,this.buffers[n]=l}}validateSpec(e,s){t.assert(s.stride>=s.size,`${e} illegal stride`),t.assert(!s.buf||s.buf.byteLength>=((this.length-1)*s.stride+s.size)*t.SIZEOF[s.type],`${e} buffer too small`),t.assert(void 0===s.default||s.default.length===s.size,`illegal default value for ${e}, expected size: ${s.size}`)}ensureAttrib(e){t.assert(!!this.specs[e],`invalid attrib ${e}`)}}const a=i.utf8Decode();e.SOA=h,e.aos=(e,n,i,a=0)=>{let l=0,u=0;const f={},o={};for(let e in n){const i=r(n[e]),h=t.SIZEOF[i.type];u=Math.max(u,h),l=s.align(l,h),f[e]=l,l+=h*i.size,o[e]=i}l=s.align(l,u),i=i||new ArrayBuffer(l*e+a);for(let e in o){const s=o[e],n=t.SIZEOF[s.type];s.stride=l/n,s.buf=i,s.byteOffset=a+f[e]}return new h(e,o)},e.ident={decode:e=>e,encode:e=>e},e.scalar={decode:e=>e[0],encode:e=>[e]},e.serializer=e=>({decode(t){const s={};for(let n in t)s[n]=e[n].decode(t[n]);return s},encode:t=>{const s={};for(let n in t)s[n]=e[n].encode(t[n]);return s}}),e.soa=(e,t)=>new h(e,t),e.utf8z=e=>({decode:e=>{let t="";const s=a([null,null,(e,s)=>t+=s])[2];for(let n=0,i=e.length;n<i;n++){const i=e[n];if(0===i)break;s(t,i)}return t},encode:s=>{const n=[...i.utf8Encode(s),0];return t.assert(n.length<=e,`string too large: "${s}"`),n}}),Object.defineProperty(e,"__esModule",{value:!0})}));
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.umd.js","sources":["../utils.js","../soa.js","../aos.js","../serialize.js"],"sourcesContent":null,"names":["ensureIndex","SIZEOF","typedArray","assert","align","utf8Decode","utf8Encode"],"mappings":"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"}