@daneren2005/shared-memory-objects 1.6.0 → 1.6.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (40) hide show
  1. package/dist/allocated-memory.js.map +1 -1
  2. package/dist/cached-item-list.js.map +1 -1
  3. package/dist/constant-string.js.map +1 -1
  4. package/dist/local-pool.js.map +1 -1
  5. package/dist/lock/read-write-lock.js.map +1 -1
  6. package/dist/lock/simple-lock.js.map +1 -1
  7. package/dist/memory-buffer.js.map +1 -1
  8. package/dist/memory-heap.js.map +1 -1
  9. package/dist/serialize-object.js.map +1 -1
  10. package/dist/shared-list.js.map +1 -1
  11. package/dist/shared-map.d.ts +3 -0
  12. package/dist/shared-map.js +42 -24
  13. package/dist/shared-map.js.map +1 -1
  14. package/dist/shared-pointer-list.js.map +1 -1
  15. package/dist/shared-pool.js.map +1 -1
  16. package/dist/shared-stack.js.map +1 -1
  17. package/dist/shared-string.js.map +1 -1
  18. package/dist/shared-vector.js.map +1 -1
  19. package/dist/spatial/shared-quadtree.js.map +1 -1
  20. package/dist/spatial/shared-spatial-grid.js.map +1 -1
  21. package/dist/spatial/shared-spatial-map.js.map +1 -1
  22. package/dist/spatial/spatial-entity.js.map +1 -1
  23. package/dist/spatial/spatial-neighbors.js.map +1 -1
  24. package/dist/utils/16-from-32-float.js.map +1 -1
  25. package/dist/utils/16-from-32-int.js.map +1 -1
  26. package/dist/utils/16-from-32-uint.js.map +1 -1
  27. package/dist/utils/16-from-64-float.js.map +1 -1
  28. package/dist/utils/16-from-64-int.js.map +1 -1
  29. package/dist/utils/16-from-64-uint.js.map +1 -1
  30. package/dist/utils/32-from-64-float.js.map +1 -1
  31. package/dist/utils/32-from-64-int.js.map +1 -1
  32. package/dist/utils/32-from-64-uint.js.map +1 -1
  33. package/dist/utils/array-type.js.map +1 -1
  34. package/dist/utils/atomic-math.js.map +1 -1
  35. package/dist/utils/float32-atomics.js.map +1 -1
  36. package/dist/utils/float64-atomics.js.map +1 -1
  37. package/dist/utils/hash.js.map +1 -1
  38. package/dist/utils/pointer.js.map +1 -1
  39. package/dist/utils/typedarray.js.map +1 -1
  40. package/package.json +8 -8
@@ -1 +1 @@
1
- {"version":3,"file":"float32-atomics.js","names":[],"sources":["../../src/utils/float32-atomics.ts"],"sourcesContent":["// For doing Atomic operations on floats in SharedArrayBuffers\nconst buffer = new ArrayBuffer(4);\nconst float32 = new Float32Array(buffer);\nconst int32 = new Int32Array(buffer);\n\nexport function loadFloat32(data: Int32Array | Uint32Array | Float32Array, index: number) {\n\tif(data instanceof Float32Array) {\n\t\tdata = new Int32Array(data.buffer, data.byteOffset, data.length);\n\t}\n\n\treturn convertInt32ToFloat32(Atomics.load(data, index));\n}\nexport function storeFloat32(data: Int32Array | Uint32Array | Float32Array, index: number, value: number) {\n\tif(data instanceof Float32Array) {\n\t\tdata = new Int32Array(data.buffer, data.byteOffset, data.length);\n\t}\n\n\tAtomics.store(data, index, convertFloat32ToInt32(value));\n}\n\nexport function convertInt32ToFloat32(value: number) {\n\tint32[0] = value;\n\n\treturn float32[0];\n}\nexport function convertFloat32ToInt32(value: number) {\n\tfloat32[0] = value;\n\n\treturn int32[0];\n}\n\nexport function exchangeFloat32(data: Int32Array | Uint32Array | Float32Array, index: number, value: number) {\n\tif(data instanceof Float32Array) {\n\t\tdata = new Int32Array(data.buffer, data.byteOffset, data.length);\n\t}\n\n\treturn convertInt32ToFloat32(Atomics.exchange(data, index, convertFloat32ToInt32(value)));\n}\n\nexport function compareExchangeFloat32(data: Int32Array | Uint32Array | Float32Array, index: number, expectedValue: number, replacementValue: number) {\n\tif(data instanceof Float32Array) {\n\t\tdata = new Int32Array(data.buffer, data.byteOffset, data.length);\n\t}\n\n\treturn convertInt32ToFloat32(Atomics.compareExchange(data, index, convertFloat32ToInt32(expectedValue), convertFloat32ToInt32(replacementValue)));\n}"],"mappings":";AACA,IAAM,oBAAS,IAAI,YAAY,CAAC,GAC1B,IAAU,IAAI,aAAa,CAAM,GACjC,IAAQ,IAAI,WAAW,CAAM;AAEnC,SAAgB,EAAY,GAA+C,GAAe;CAKzF,OAJG,aAAgB,iBAClB,IAAO,IAAI,WAAW,EAAK,QAAQ,EAAK,YAAY,EAAK,MAAM,IAGzD,EAAsB,QAAQ,KAAK,GAAM,CAAK,CAAC;AACvD;AACA,SAAgB,EAAa,GAA+C,GAAe,GAAe;CAKzG,AAJG,aAAgB,iBAClB,IAAO,IAAI,WAAW,EAAK,QAAQ,EAAK,YAAY,EAAK,MAAM,IAGhE,QAAQ,MAAM,GAAM,GAAO,EAAsB,CAAK,CAAC;AACxD;AAEA,SAAgB,EAAsB,GAAe;CAGpD,OAFA,EAAM,KAAK,GAEJ,EAAQ;AAChB;AACA,SAAgB,EAAsB,GAAe;CAGpD,OAFA,EAAQ,KAAK,GAEN,EAAM;AACd;AAEA,SAAgB,EAAgB,GAA+C,GAAe,GAAe;CAK5G,OAJG,aAAgB,iBAClB,IAAO,IAAI,WAAW,EAAK,QAAQ,EAAK,YAAY,EAAK,MAAM,IAGzD,EAAsB,QAAQ,SAAS,GAAM,GAAO,EAAsB,CAAK,CAAC,CAAC;AACzF;AAEA,SAAgB,EAAuB,GAA+C,GAAe,GAAuB,GAA0B;CAKrJ,OAJG,aAAgB,iBAClB,IAAO,IAAI,WAAW,EAAK,QAAQ,EAAK,YAAY,EAAK,MAAM,IAGzD,EAAsB,QAAQ,gBAAgB,GAAM,GAAO,EAAsB,CAAa,GAAG,EAAsB,CAAgB,CAAC,CAAC;AACjJ"}
1
+ {"version":3,"file":"float32-atomics.js","names":["buffer","float32","int32","loadFloat32","data","convertInt32ToFloat32","index","storeFloat32","convertFloat32ToInt32","value","exchangeFloat32","compareExchangeFloat32","expectedValue","replacementValue"],"sources":["../../src/utils/float32-atomics.ts"],"sourcesContent":["// For doing Atomic operations on floats in SharedArrayBuffers\nconst buffer = new ArrayBuffer(4);\nconst float32 = new Float32Array(buffer);\nconst int32 = new Int32Array(buffer);\n\nexport function loadFloat32(data: Int32Array | Uint32Array | Float32Array, index: number) {\n\tif(data instanceof Float32Array) {\n\t\tdata = new Int32Array(data.buffer, data.byteOffset, data.length);\n\t}\n\n\treturn convertInt32ToFloat32(Atomics.load(data, index));\n}\nexport function storeFloat32(data: Int32Array | Uint32Array | Float32Array, index: number, value: number) {\n\tif(data instanceof Float32Array) {\n\t\tdata = new Int32Array(data.buffer, data.byteOffset, data.length);\n\t}\n\n\tAtomics.store(data, index, convertFloat32ToInt32(value));\n}\n\nexport function convertInt32ToFloat32(value: number) {\n\tint32[0] = value;\n\n\treturn float32[0];\n}\nexport function convertFloat32ToInt32(value: number) {\n\tfloat32[0] = value;\n\n\treturn int32[0];\n}\n\nexport function exchangeFloat32(data: Int32Array | Uint32Array | Float32Array, index: number, value: number) {\n\tif(data instanceof Float32Array) {\n\t\tdata = new Int32Array(data.buffer, data.byteOffset, data.length);\n\t}\n\n\treturn convertInt32ToFloat32(Atomics.exchange(data, index, convertFloat32ToInt32(value)));\n}\n\nexport function compareExchangeFloat32(data: Int32Array | Uint32Array | Float32Array, index: number, expectedValue: number, replacementValue: number) {\n\tif(data instanceof Float32Array) {\n\t\tdata = new Int32Array(data.buffer, data.byteOffset, data.length);\n\t}\n\n\treturn convertInt32ToFloat32(Atomics.compareExchange(data, index, convertFloat32ToInt32(expectedValue), convertFloat32ToInt32(replacementValue)));\n}"],"mappings":";AACA,IAAMA,oBAAS,IAAI,YAAY,CAAC,GAC1BC,IAAU,IAAI,aAAaD,CAAM,GACjCE,IAAQ,IAAI,WAAWF,CAAM;AAEnC,SAAgBG,EAAY,GAA+C,GAAe;CAKzF,OAJGC,aAAgB,iBAClB,IAAO,IAAI,WAAWA,EAAK,QAAQA,EAAK,YAAYA,EAAK,MAAM,IAGzDC,EAAsB,QAAQ,KAAKD,GAAME,CAAK,CAAC;AACvD;AACA,SAAgBC,EAAa,GAA+C,GAAe,GAAe;CAKzG,AAJGH,aAAgB,iBAClB,IAAO,IAAI,WAAWA,EAAK,QAAQA,EAAK,YAAYA,EAAK,MAAM,IAGhE,QAAQ,MAAMA,GAAME,GAAOE,EAAsBC,CAAK,CAAC;AACxD;AAEA,SAAgBJ,EAAsB,GAAe;CAGpD,OAFA,EAAM,KAAKI,GAEJR,EAAQ;AAChB;AACA,SAAgBO,EAAsB,GAAe;CAGpD,OAFA,EAAQ,KAAKC,GAENP,EAAM;AACd;AAEA,SAAgBQ,EAAgB,GAA+C,GAAe,GAAe;CAK5G,OAJGN,aAAgB,iBAClB,IAAO,IAAI,WAAWA,EAAK,QAAQA,EAAK,YAAYA,EAAK,MAAM,IAGzDC,EAAsB,QAAQ,SAASD,GAAME,GAAOE,EAAsBC,CAAK,CAAC,CAAC;AACzF;AAEA,SAAgBE,EAAuB,GAA+C,GAAe,GAAuB,GAA0B;CAKrJ,OAJGP,aAAgB,iBAClB,IAAO,IAAI,WAAWA,EAAK,QAAQA,EAAK,YAAYA,EAAK,MAAM,IAGzDC,EAAsB,QAAQ,gBAAgBD,GAAME,GAAOE,EAAsBI,CAAa,GAAGJ,EAAsBK,CAAgB,CAAC,CAAC;AACjJ"}
@@ -1 +1 @@
1
- {"version":3,"file":"float64-atomics.js","names":[],"sources":["../../src/utils/float64-atomics.ts"],"sourcesContent":["// For doing Atomic operations on floats in SharedArrayBuffers\nconst buffer = new ArrayBuffer(8);\nconst float64 = new Float64Array(buffer);\nconst int64 = new BigInt64Array(buffer);\n\nexport function loadFloat64(data: BigInt64Array | Float64Array, index: number) {\n\tif(data instanceof Float64Array) {\n\t\tdata = new BigInt64Array(data.buffer, data.byteOffset, data.length);\n\t}\n\n\treturn convertInt64ToFloat64(Atomics.load(data, index));\n}\nexport function storeFloat64(data: BigInt64Array | Float64Array, index: number, value: number) {\n\tif(data instanceof Float64Array) {\n\t\tdata = new BigInt64Array(data.buffer, data.byteOffset, data.length);\n\t}\n\n\tAtomics.store(data, index, convertFloat64ToInt64(value));\n}\n\nexport function convertInt64ToFloat64(value: bigint) {\n\tint64[0] = value;\n\n\treturn float64[0];\n}\nexport function convertFloat64ToInt64(value: number) {\n\tfloat64[0] = value;\n\n\treturn int64[0];\n}\n\nexport function exchangeFloat64(data: BigInt64Array | Float64Array, index: number, value: number) {\n\tif(data instanceof Float64Array) {\n\t\tdata = new BigInt64Array(data.buffer, data.byteOffset, data.length);\n\t}\n\n\treturn convertInt64ToFloat64(Atomics.exchange(data, index, convertFloat64ToInt64(value)));\n}\n\nexport function compareExchangeFloat64(data: BigInt64Array | Float64Array, index: number, expectedValue: number, replacementValue: number) {\n\tif(data instanceof Float64Array) {\n\t\tdata = new BigInt64Array(data.buffer, data.byteOffset, data.length);\n\t}\n\n\treturn convertInt64ToFloat64(Atomics.compareExchange(data, index, convertFloat64ToInt64(expectedValue), convertFloat64ToInt64(replacementValue)));\n}"],"mappings":";AACA,IAAM,oBAAS,IAAI,YAAY,CAAC,GAC1B,IAAU,IAAI,aAAa,CAAM,GACjC,IAAQ,IAAI,cAAc,CAAM;AAEtC,SAAgB,EAAY,GAAoC,GAAe;CAK9E,OAJG,aAAgB,iBAClB,IAAO,IAAI,cAAc,EAAK,QAAQ,EAAK,YAAY,EAAK,MAAM,IAG5D,EAAsB,QAAQ,KAAK,GAAM,CAAK,CAAC;AACvD;AACA,SAAgB,EAAa,GAAoC,GAAe,GAAe;CAK9F,AAJG,aAAgB,iBAClB,IAAO,IAAI,cAAc,EAAK,QAAQ,EAAK,YAAY,EAAK,MAAM,IAGnE,QAAQ,MAAM,GAAM,GAAO,EAAsB,CAAK,CAAC;AACxD;AAEA,SAAgB,EAAsB,GAAe;CAGpD,OAFA,EAAM,KAAK,GAEJ,EAAQ;AAChB;AACA,SAAgB,EAAsB,GAAe;CAGpD,OAFA,EAAQ,KAAK,GAEN,EAAM;AACd;AAEA,SAAgB,EAAgB,GAAoC,GAAe,GAAe;CAKjG,OAJG,aAAgB,iBAClB,IAAO,IAAI,cAAc,EAAK,QAAQ,EAAK,YAAY,EAAK,MAAM,IAG5D,EAAsB,QAAQ,SAAS,GAAM,GAAO,EAAsB,CAAK,CAAC,CAAC;AACzF;AAEA,SAAgB,EAAuB,GAAoC,GAAe,GAAuB,GAA0B;CAK1I,OAJG,aAAgB,iBAClB,IAAO,IAAI,cAAc,EAAK,QAAQ,EAAK,YAAY,EAAK,MAAM,IAG5D,EAAsB,QAAQ,gBAAgB,GAAM,GAAO,EAAsB,CAAa,GAAG,EAAsB,CAAgB,CAAC,CAAC;AACjJ"}
1
+ {"version":3,"file":"float64-atomics.js","names":["buffer","float64","int64","loadFloat64","data","convertInt64ToFloat64","index","storeFloat64","convertFloat64ToInt64","value","exchangeFloat64","compareExchangeFloat64","expectedValue","replacementValue"],"sources":["../../src/utils/float64-atomics.ts"],"sourcesContent":["// For doing Atomic operations on floats in SharedArrayBuffers\nconst buffer = new ArrayBuffer(8);\nconst float64 = new Float64Array(buffer);\nconst int64 = new BigInt64Array(buffer);\n\nexport function loadFloat64(data: BigInt64Array | Float64Array, index: number) {\n\tif(data instanceof Float64Array) {\n\t\tdata = new BigInt64Array(data.buffer, data.byteOffset, data.length);\n\t}\n\n\treturn convertInt64ToFloat64(Atomics.load(data, index));\n}\nexport function storeFloat64(data: BigInt64Array | Float64Array, index: number, value: number) {\n\tif(data instanceof Float64Array) {\n\t\tdata = new BigInt64Array(data.buffer, data.byteOffset, data.length);\n\t}\n\n\tAtomics.store(data, index, convertFloat64ToInt64(value));\n}\n\nexport function convertInt64ToFloat64(value: bigint) {\n\tint64[0] = value;\n\n\treturn float64[0];\n}\nexport function convertFloat64ToInt64(value: number) {\n\tfloat64[0] = value;\n\n\treturn int64[0];\n}\n\nexport function exchangeFloat64(data: BigInt64Array | Float64Array, index: number, value: number) {\n\tif(data instanceof Float64Array) {\n\t\tdata = new BigInt64Array(data.buffer, data.byteOffset, data.length);\n\t}\n\n\treturn convertInt64ToFloat64(Atomics.exchange(data, index, convertFloat64ToInt64(value)));\n}\n\nexport function compareExchangeFloat64(data: BigInt64Array | Float64Array, index: number, expectedValue: number, replacementValue: number) {\n\tif(data instanceof Float64Array) {\n\t\tdata = new BigInt64Array(data.buffer, data.byteOffset, data.length);\n\t}\n\n\treturn convertInt64ToFloat64(Atomics.compareExchange(data, index, convertFloat64ToInt64(expectedValue), convertFloat64ToInt64(replacementValue)));\n}"],"mappings":";AACA,IAAMA,oBAAS,IAAI,YAAY,CAAC,GAC1BC,IAAU,IAAI,aAAaD,CAAM,GACjCE,IAAQ,IAAI,cAAcF,CAAM;AAEtC,SAAgBG,EAAY,GAAoC,GAAe;CAK9E,OAJGC,aAAgB,iBAClB,IAAO,IAAI,cAAcA,EAAK,QAAQA,EAAK,YAAYA,EAAK,MAAM,IAG5DC,EAAsB,QAAQ,KAAKD,GAAME,CAAK,CAAC;AACvD;AACA,SAAgBC,EAAa,GAAoC,GAAe,GAAe;CAK9F,AAJGH,aAAgB,iBAClB,IAAO,IAAI,cAAcA,EAAK,QAAQA,EAAK,YAAYA,EAAK,MAAM,IAGnE,QAAQ,MAAMA,GAAME,GAAOE,EAAsBC,CAAK,CAAC;AACxD;AAEA,SAAgBJ,EAAsB,GAAe;CAGpD,OAFA,EAAM,KAAKI,GAEJR,EAAQ;AAChB;AACA,SAAgBO,EAAsB,GAAe;CAGpD,OAFA,EAAQ,KAAKC,GAENP,EAAM;AACd;AAEA,SAAgBQ,EAAgB,GAAoC,GAAe,GAAe;CAKjG,OAJGN,aAAgB,iBAClB,IAAO,IAAI,cAAcA,EAAK,QAAQA,EAAK,YAAYA,EAAK,MAAM,IAG5DC,EAAsB,QAAQ,SAASD,GAAME,GAAOE,EAAsBC,CAAK,CAAC,CAAC;AACzF;AAEA,SAAgBE,EAAuB,GAAoC,GAAe,GAAuB,GAA0B;CAK1I,OAJGP,aAAgB,iBAClB,IAAO,IAAI,cAAcA,EAAK,QAAQA,EAAK,YAAYA,EAAK,MAAM,IAG5DC,EAAsB,QAAQ,gBAAgBD,GAAME,GAAOE,EAAsBI,CAAa,GAAGJ,EAAsBK,CAAgB,CAAC,CAAC;AACjJ"}
@@ -1 +1 @@
1
- {"version":3,"file":"hash.js","names":[],"sources":["../../src/utils/hash.ts"],"sourcesContent":["export function get32BitHash<K extends string | number>(key: K): number {\n\tif(typeof key === 'number') {\n\t\treturn key;\n\t} else if(typeof key === 'string') {\n\t\treturn hashString(key);\n\t} else {\n\t\treturn key;\n\t}\n}\n\n// Copied from https://github.com/mmomtchev/SharedMap/blob/master/index.js - MurmurHash2\nexport function hashString(str: string): number {\n\tlet\n\t\tl = str.length,\n\t\th = 17 ^ l,\n\t\ti = 0,\n\t\tk;\n\twhile(l >= 4) {\n\t\tk =\n\t\t\t((str.charCodeAt(i) & 0xff)) |\n\t\t\t((str.charCodeAt(++i) & 0xff) << 8) |\n\t\t\t((str.charCodeAt(++i) & 0xff) << 16) |\n\t\t\t((str.charCodeAt(++i) & 0xff) << 14);\n\t\tk = (((k & 0xffff) * 0x5bd1e995) + ((((k >>> 16) * 0x5bd1e995) & 0xffff) << 16));\n\t\tk ^= k >>> 14;\n\t\tk = (((k & 0xffff) * 0x5bd1e995) + ((((k >>> 16) * 0x5bd1e995) & 0xffff) << 16));\n\t\th = (((h & 0xffff) * 0x5bd1e995) + ((((h >>> 16) * 0x5bd1e995) & 0xffff) << 16)) ^ k;\n\t\tl -= 4;\n\t\t++i;\n\t}\n\t/* eslint-disable no-fallthrough */\n\tswitch(l) {\n\t\tcase 3: h ^= (str.charCodeAt(i + 2) & 0xff) << 16;\n\t\tcase 2: h ^= (str.charCodeAt(i + 1) & 0xff) << 8;\n\t\tcase 1: h ^= (str.charCodeAt(i) & 0xff);\n\t\t\th = (((h & 0xffff) * 0x5bd1e995) + ((((h >>> 16) * 0x5bd1e995) & 0xffff) << 16));\n\t}\n\t/* eslint-enable no-fallthrough */\n\th ^= h >>> 13;\n\th = (((h & 0xffff) * 0x5bd1e995) + ((((h >>> 16) * 0x5bd1e995) & 0xffff) << 16));\n\th ^= h >>> 15;\n\th = h >>> 0;\n\treturn h;\n}\n\n// Fibonacci/avalanche mix so patterned integer keys (e.g. sequential ids) spread across a power-of-two table instead of\n// clustering. Returns an unsigned 32-bit value; callers mask with (capacity - 1).\nexport function mix32(h: number): number {\n\th = Math.imul(h ^ (h >>> 16), 0x45d9f3b);\n\th = Math.imul(h ^ (h >>> 16), 0x45d9f3b);\n\th = (h ^ (h >>> 16)) >>> 0;\n\treturn h;\n}\n"],"mappings":";AAAA,SAAgB,EAAwC,GAAgB;CAMtE,OALE,OAAO,KAAQ,WACV,IACE,OAAO,KAAQ,WACjB,EAAW,CAAG,IAEd;AAET;AAGA,SAAgB,EAAW,GAAqB;CAC/C,IACC,IAAI,EAAI,QACR,IAAI,KAAK,GACT,IAAI,GACJ;CACD,OAAM,KAAK,IAWV,AAVA,IACG,EAAI,WAAW,CAAC,IAAI,OACpB,EAAI,WAAW,EAAE,CAAC,IAAI,QAAS,KAC/B,EAAI,WAAW,EAAE,CAAC,IAAI,QAAS,MAC/B,EAAI,WAAW,EAAE,CAAC,IAAI,QAAS,IAClC,KAAO,IAAI,SAAU,gBAAkB,MAAM,MAAM,aAAc,UAAW,KAC5E,KAAK,MAAM,IACX,KAAO,IAAI,SAAU,gBAAkB,MAAM,MAAM,aAAc,UAAW,KAC5E,KAAO,IAAI,SAAU,gBAAkB,MAAM,MAAM,aAAc,UAAW,MAAO,GACnF,KAAK,GACL,EAAE;CAGH,QAAO,GAAP;EACC,KAAK,GAAG,MAAM,EAAI,WAAW,IAAI,CAAC,IAAI,QAAS;EAC/C,KAAK,GAAG,MAAM,EAAI,WAAW,IAAI,CAAC,IAAI,QAAS;EAC/C,KAAK,GACJ,AADO,KAAM,EAAI,WAAW,CAAC,IAAI,KACjC,KAAO,IAAI,SAAU,gBAAkB,MAAM,MAAM,aAAc,UAAW;CAC9E;CAMA,OAJA,KAAK,MAAM,IACX,KAAO,IAAI,SAAU,gBAAkB,MAAM,MAAM,aAAc,UAAW,KAC5E,KAAK,MAAM,IACX,OAAU,GACH;AACR;AAIA,SAAgB,EAAM,GAAmB;CAIxC,OAHA,IAAI,KAAK,KAAK,IAAK,MAAM,IAAK,QAAS,GACvC,IAAI,KAAK,KAAK,IAAK,MAAM,IAAK,QAAS,GACvC,KAAK,IAAK,MAAM,QAAS,GAClB;AACR"}
1
+ {"version":3,"file":"hash.js","names":["get32BitHash","key","hashString","l","str","h","i","k","mix32"],"sources":["../../src/utils/hash.ts"],"sourcesContent":["export function get32BitHash<K extends string | number>(key: K): number {\n\tif(typeof key === 'number') {\n\t\treturn key;\n\t} else if(typeof key === 'string') {\n\t\treturn hashString(key);\n\t} else {\n\t\treturn key;\n\t}\n}\n\n// Copied from https://github.com/mmomtchev/SharedMap/blob/master/index.js - MurmurHash2\nexport function hashString(str: string): number {\n\tlet\n\t\tl = str.length,\n\t\th = 17 ^ l,\n\t\ti = 0,\n\t\tk;\n\twhile(l >= 4) {\n\t\tk =\n\t\t\t((str.charCodeAt(i) & 0xff)) |\n\t\t\t((str.charCodeAt(++i) & 0xff) << 8) |\n\t\t\t((str.charCodeAt(++i) & 0xff) << 16) |\n\t\t\t((str.charCodeAt(++i) & 0xff) << 14);\n\t\tk = (((k & 0xffff) * 0x5bd1e995) + ((((k >>> 16) * 0x5bd1e995) & 0xffff) << 16));\n\t\tk ^= k >>> 14;\n\t\tk = (((k & 0xffff) * 0x5bd1e995) + ((((k >>> 16) * 0x5bd1e995) & 0xffff) << 16));\n\t\th = (((h & 0xffff) * 0x5bd1e995) + ((((h >>> 16) * 0x5bd1e995) & 0xffff) << 16)) ^ k;\n\t\tl -= 4;\n\t\t++i;\n\t}\n\t/* eslint-disable no-fallthrough */\n\tswitch(l) {\n\t\tcase 3: h ^= (str.charCodeAt(i + 2) & 0xff) << 16;\n\t\tcase 2: h ^= (str.charCodeAt(i + 1) & 0xff) << 8;\n\t\tcase 1: h ^= (str.charCodeAt(i) & 0xff);\n\t\t\th = (((h & 0xffff) * 0x5bd1e995) + ((((h >>> 16) * 0x5bd1e995) & 0xffff) << 16));\n\t}\n\t/* eslint-enable no-fallthrough */\n\th ^= h >>> 13;\n\th = (((h & 0xffff) * 0x5bd1e995) + ((((h >>> 16) * 0x5bd1e995) & 0xffff) << 16));\n\th ^= h >>> 15;\n\th = h >>> 0;\n\treturn h;\n}\n\n// Fibonacci/avalanche mix so patterned integer keys (e.g. sequential ids) spread across a power-of-two table instead of\n// clustering. Returns an unsigned 32-bit value; callers mask with (capacity - 1).\nexport function mix32(h: number): number {\n\th = Math.imul(h ^ (h >>> 16), 0x45d9f3b);\n\th = Math.imul(h ^ (h >>> 16), 0x45d9f3b);\n\th = (h ^ (h >>> 16)) >>> 0;\n\treturn h;\n}\n"],"mappings":";AAAA,SAAgBA,EAAwC,GAAgB;CAMtE,OALE,OAAOC,KAAQ,WACVA,IACE,OAAOA,KAAQ,WACjBC,EAAWD,CAAG,IAEdA;AAET;AAGA,SAAgBC,EAAW,GAAqB;CAC/C,IACCC,IAAIC,EAAI,QACRC,IAAI,KAAKF,GACTG,IAAI,GACJC;CACD,OAAMJ,KAAK,IAWV,AAVA,IACGC,EAAI,WAAWE,CAAC,IAAI,OACpBF,EAAI,WAAW,EAAEE,CAAC,IAAI,QAAS,KAC/BF,EAAI,WAAW,EAAEE,CAAC,IAAI,QAAS,MAC/BF,EAAI,WAAW,EAAEE,CAAC,IAAI,QAAS,IAClC,KAAOC,IAAI,SAAU,gBAAkBA,MAAM,MAAM,aAAc,UAAW,KAC5E,KAAKA,MAAM,IACX,KAAOA,IAAI,SAAU,gBAAkBA,MAAM,MAAM,aAAc,UAAW,KAC5E,KAAOF,IAAI,SAAU,gBAAkBA,MAAM,MAAM,aAAc,UAAW,MAAOE,GACnF,KAAK,GACL,EAAED;CAGH,QAAOH,GAAP;EACC,KAAK,GAAG,MAAMC,EAAI,WAAWE,IAAI,CAAC,IAAI,QAAS;EAC/C,KAAK,GAAG,MAAMF,EAAI,WAAWE,IAAI,CAAC,IAAI,QAAS;EAC/C,KAAK,GACJ,AADO,KAAMF,EAAI,WAAWE,CAAC,IAAI,KACjC,KAAOD,IAAI,SAAU,gBAAkBA,MAAM,MAAM,aAAc,UAAW;CAC9E;CAMA,OAJA,KAAKA,MAAM,IACX,KAAOA,IAAI,SAAU,gBAAkBA,MAAM,MAAM,aAAc,UAAW,KAC5E,KAAKA,MAAM,IACX,OAAU,GACHA;AACR;AAIA,SAAgBG,EAAM,GAAmB;CAIxC,OAHA,IAAI,KAAK,KAAKH,IAAKA,MAAM,IAAK,QAAS,GACvC,IAAI,KAAK,KAAKA,IAAKA,MAAM,IAAK,QAAS,GACvC,KAAKA,IAAKA,MAAM,QAAS,GAClBA;AACR"}
@@ -1 +1 @@
1
- {"version":3,"file":"pointer.js","names":[],"sources":["../../src/utils/pointer.ts"],"sourcesContent":["// A pointer packs (bufferByteOffset, bufferPosition) into one u32: the low `positionBits` bits hold the buffer position,\n// the high `32 - positionBits` bits hold the byte offset within that buffer. The split is per-heap (derived from the\n// heap's bufferSize) so a heap with larger buffers trades buffer count for buffer size while keeping the full 32-bit\n// (4GB) address space. `positionBits` defaults to DEFAULT_POSITION_BITS so callers that predate the per-heap split keep\n// working on default-sized heaps.\n\n// bottom 12 bits (4096) for bufferPosition, top 20 bits (1MB) for bufferByteOffset\nconst BYTE_OFFSET_BIT_COUNT = 20;\nconst POSITION_BIT_COUNT = 32 - BYTE_OFFSET_BIT_COUNT;\nconst DEFAULT_POSITION_BITS = POSITION_BIT_COUNT;\nconst MAX_BYTE_OFFSET_LENGTH = Math.pow(2, BYTE_OFFSET_BIT_COUNT);\nconst MAX_POSITION_LENGTH = Math.pow(2, POSITION_BIT_COUNT);\n\n// Smallest byte-offset bit count that can address a buffer of `bufferSize` bytes, and the resulting position bits.\nexport function positionBitsForBufferSize(bufferSize: number): number {\n\tlet offsetBits = bufferSize <= 1 ? 0 : 32 - Math.clz32(bufferSize - 1);\n\tlet positionBits = 32 - offsetBits;\n\tif(positionBits < 1) {\n\t\tthrow new Error(`Buffer size ${bufferSize} leaves no bits for buffer position (max ${Math.pow(2, 31)})`);\n\t}\n\treturn positionBits;\n}\n\nexport function loadPointer(data: Uint32Array, index: number = 0, positionBits: number = DEFAULT_POSITION_BITS) {\n\treturn getPointer(Atomics.load(data, index), positionBits);\n}\nexport function loadRawPointer(data: Uint32Array, index: number = 0) {\n\treturn Atomics.load(data, index);\n}\n\nexport function storePointer(data: Uint32Array, index: number = 0, bufferPosition: number, bufferByteOffset: number, positionBits: number = DEFAULT_POSITION_BITS) {\n\tAtomics.store(data, index, createPointer(bufferPosition, bufferByteOffset, positionBits));\n}\nexport function storeRawPointer(data: Uint32Array, index: number = 0, pointer: number) {\n\tAtomics.store(data, index, pointer);\n}\n\nexport function replacePointer(\n\tdata: Uint32Array,\n\tindex: number,\n\tnewBufferPosition: number,\n\tnewBufferByteOffset: number,\n\toldBufferPosition: number,\n\toldBufferByteOffset: number,\n\tpositionBits: number = DEFAULT_POSITION_BITS,\n) {\n\tlet oldPointer = createPointer(oldBufferPosition, oldBufferByteOffset, positionBits);\n\treturn Atomics.compareExchange(data, index, oldPointer, createPointer(newBufferPosition, newBufferByteOffset, positionBits)) === oldPointer;\n}\nexport function replaceRawPointer(data: Uint32Array, index: number, newPointer: number, oldPointer: number): boolean {\n\treturn Atomics.compareExchange(data, index, oldPointer, newPointer) === oldPointer;\n}\n\nexport function getPointer(value: number, positionBits: number = DEFAULT_POSITION_BITS) {\n\treturn {\n\t\tbufferPosition: value & ((1 << positionBits) - 1),\n\t\tbufferByteOffset: value >>> positionBits,\n\t};\n}\nexport function createPointer(bufferPosition: number, bufferByteOffset: number, positionBits: number = DEFAULT_POSITION_BITS) {\n\treturn bufferPosition + (bufferByteOffset << positionBits);\n}\n\nexport { BYTE_OFFSET_BIT_COUNT, POSITION_BIT_COUNT, DEFAULT_POSITION_BITS, MAX_BYTE_OFFSET_LENGTH, MAX_POSITION_LENGTH };\n"],"mappings":";AAOA,IAAM,IAAwB,IACxB,IAAqB,IACrB,IAAA,IACA,IAAkC,KAAA,IAClC,IAAsB;AAG5B,SAAgB,EAA0B,GAA4B;CAErE,IAAI,IAAe,MADF,KAAc,IAAI,IAAI,KAAK,KAAK,MAAM,IAAa,CAAC;CAErE,IAAG,IAAe,GACjB,MAAU,MAAM,eAAe,EAAW,2CAAoD,KAAG,GAAI,EAAE;CAExG,OAAO;AACR;AAEA,SAAgB,EAAY,GAAmB,IAAgB,GAAG,IAAA,IAA8C;CAC/G,OAAO,EAAW,QAAQ,KAAK,GAAM,CAAK,GAAG,CAAY;AAC1D;AACA,SAAgB,EAAe,GAAmB,IAAgB,GAAG;CACpE,OAAO,QAAQ,KAAK,GAAM,CAAK;AAChC;AAEA,SAAgB,EAAa,GAAmB,IAAgB,GAAG,GAAwB,GAA0B,IAAA,IAA8C;CAClK,QAAQ,MAAM,GAAM,GAAO,EAAc,GAAgB,GAAkB,CAAY,CAAC;AACzF;AACA,SAAgB,EAAgB,GAAmB,IAAgB,GAAG,GAAiB;CACtF,QAAQ,MAAM,GAAM,GAAO,CAAO;AACnC;AAEA,SAAgB,EACf,GACA,GACA,GACA,GACA,GACA,GACA,IAAA,IACC;CACD,IAAI,IAAa,EAAc,GAAmB,GAAqB,CAAY;CACnF,OAAO,QAAQ,gBAAgB,GAAM,GAAO,GAAY,EAAc,GAAmB,GAAqB,CAAY,CAAC,MAAM;AAClI;AACA,SAAgB,EAAkB,GAAmB,GAAe,GAAoB,GAA6B;CACpH,OAAO,QAAQ,gBAAgB,GAAM,GAAO,GAAY,CAAU,MAAM;AACzE;AAEA,SAAgB,EAAW,GAAe,IAAA,IAA8C;CACvF,OAAO;EACN,gBAAgB,KAAU,KAAK,KAAgB;EAC/C,kBAAkB,MAAU;CAC7B;AACD;AACA,SAAgB,EAAc,GAAwB,GAA0B,IAAA,IAA8C;CAC7H,OAAO,KAAkB,KAAoB;AAC9C"}
1
+ {"version":3,"file":"pointer.js","names":["BYTE_OFFSET_BIT_COUNT","POSITION_BIT_COUNT","DEFAULT_POSITION_BITS","MAX_BYTE_OFFSET_LENGTH","MAX_POSITION_LENGTH","positionBitsForBufferSize","positionBits","bufferSize","loadPointer","getPointer","data","index","loadRawPointer","storePointer","createPointer","bufferPosition","bufferByteOffset","storeRawPointer","pointer","replacePointer","oldPointer","oldBufferPosition","oldBufferByteOffset","newBufferPosition","newBufferByteOffset","replaceRawPointer","newPointer","value"],"sources":["../../src/utils/pointer.ts"],"sourcesContent":["// A pointer packs (bufferByteOffset, bufferPosition) into one u32: the low `positionBits` bits hold the buffer position,\n// the high `32 - positionBits` bits hold the byte offset within that buffer. The split is per-heap (derived from the\n// heap's bufferSize) so a heap with larger buffers trades buffer count for buffer size while keeping the full 32-bit\n// (4GB) address space. `positionBits` defaults to DEFAULT_POSITION_BITS so callers that predate the per-heap split keep\n// working on default-sized heaps.\n\n// bottom 12 bits (4096) for bufferPosition, top 20 bits (1MB) for bufferByteOffset\nconst BYTE_OFFSET_BIT_COUNT = 20;\nconst POSITION_BIT_COUNT = 32 - BYTE_OFFSET_BIT_COUNT;\nconst DEFAULT_POSITION_BITS = POSITION_BIT_COUNT;\nconst MAX_BYTE_OFFSET_LENGTH = Math.pow(2, BYTE_OFFSET_BIT_COUNT);\nconst MAX_POSITION_LENGTH = Math.pow(2, POSITION_BIT_COUNT);\n\n// Smallest byte-offset bit count that can address a buffer of `bufferSize` bytes, and the resulting position bits.\nexport function positionBitsForBufferSize(bufferSize: number): number {\n\tlet offsetBits = bufferSize <= 1 ? 0 : 32 - Math.clz32(bufferSize - 1);\n\tlet positionBits = 32 - offsetBits;\n\tif(positionBits < 1) {\n\t\tthrow new Error(`Buffer size ${bufferSize} leaves no bits for buffer position (max ${Math.pow(2, 31)})`);\n\t}\n\treturn positionBits;\n}\n\nexport function loadPointer(data: Uint32Array, index: number = 0, positionBits: number = DEFAULT_POSITION_BITS) {\n\treturn getPointer(Atomics.load(data, index), positionBits);\n}\nexport function loadRawPointer(data: Uint32Array, index: number = 0) {\n\treturn Atomics.load(data, index);\n}\n\nexport function storePointer(data: Uint32Array, index: number = 0, bufferPosition: number, bufferByteOffset: number, positionBits: number = DEFAULT_POSITION_BITS) {\n\tAtomics.store(data, index, createPointer(bufferPosition, bufferByteOffset, positionBits));\n}\nexport function storeRawPointer(data: Uint32Array, index: number = 0, pointer: number) {\n\tAtomics.store(data, index, pointer);\n}\n\nexport function replacePointer(\n\tdata: Uint32Array,\n\tindex: number,\n\tnewBufferPosition: number,\n\tnewBufferByteOffset: number,\n\toldBufferPosition: number,\n\toldBufferByteOffset: number,\n\tpositionBits: number = DEFAULT_POSITION_BITS,\n) {\n\tlet oldPointer = createPointer(oldBufferPosition, oldBufferByteOffset, positionBits);\n\treturn Atomics.compareExchange(data, index, oldPointer, createPointer(newBufferPosition, newBufferByteOffset, positionBits)) === oldPointer;\n}\nexport function replaceRawPointer(data: Uint32Array, index: number, newPointer: number, oldPointer: number): boolean {\n\treturn Atomics.compareExchange(data, index, oldPointer, newPointer) === oldPointer;\n}\n\nexport function getPointer(value: number, positionBits: number = DEFAULT_POSITION_BITS) {\n\treturn {\n\t\tbufferPosition: value & ((1 << positionBits) - 1),\n\t\tbufferByteOffset: value >>> positionBits,\n\t};\n}\nexport function createPointer(bufferPosition: number, bufferByteOffset: number, positionBits: number = DEFAULT_POSITION_BITS) {\n\treturn bufferPosition + (bufferByteOffset << positionBits);\n}\n\nexport { BYTE_OFFSET_BIT_COUNT, POSITION_BIT_COUNT, DEFAULT_POSITION_BITS, MAX_BYTE_OFFSET_LENGTH, MAX_POSITION_LENGTH };\n"],"mappings":";AAOA,IAAMA,IAAwB,IACxBC,IAAqB,IACrBC,IAAA,IACAC,IAAkC,KAAA,IAClCC,IAAsB;AAG5B,SAAgBC,EAA0B,GAA4B;CAErE,IAAIC,IAAe,MADFC,KAAc,IAAI,IAAI,KAAK,KAAK,MAAMA,IAAa,CAAC;CAErE,IAAGD,IAAe,GACjB,MAAU,MAAM,eAAeC,EAAW,2CAAoD,KAAG,GAAI,EAAE;CAExG,OAAOD;AACR;AAEA,SAAgBE,EAAY,GAAmB,IAAgB,GAAG,IAAA,IAA8C;CAC/G,OAAOC,EAAW,QAAQ,KAAKC,GAAMC,CAAK,GAAGL,CAAY;AAC1D;AACA,SAAgBM,EAAe,GAAmB,IAAgB,GAAG;CACpE,OAAO,QAAQ,KAAKF,GAAMC,CAAK;AAChC;AAEA,SAAgBE,EAAa,GAAmB,IAAgB,GAAG,GAAwB,GAA0B,IAAA,IAA8C;CAClK,QAAQ,MAAMH,GAAMC,GAAOG,EAAcC,GAAgBC,GAAkBV,CAAY,CAAC;AACzF;AACA,SAAgBW,EAAgB,GAAmB,IAAgB,GAAG,GAAiB;CACtF,QAAQ,MAAMP,GAAMC,GAAOO,CAAO;AACnC;AAEA,SAAgBC,EACf,GACA,GACA,GACA,GACA,GACA,GACA,IAAA,IACC;CACD,IAAIC,IAAaN,EAAcO,GAAmBC,GAAqBhB,CAAY;CACnF,OAAO,QAAQ,gBAAgBI,GAAMC,GAAOS,GAAYN,EAAcS,GAAmBC,GAAqBlB,CAAY,CAAC,MAAMc;AAClI;AACA,SAAgBK,EAAkB,GAAmB,GAAe,GAAoB,GAA6B;CACpH,OAAO,QAAQ,gBAAgBf,GAAMC,GAAOS,GAAYM,CAAU,MAAMN;AACzE;AAEA,SAAgBX,EAAW,GAAe,IAAA,IAA8C;CACvF,OAAO;EACN,gBAAgBkB,KAAU,KAAKrB,KAAgB;EAC/C,kBAAkBqB,MAAUrB;CAC7B;AACD;AACA,SAAgBQ,EAAc,GAAwB,GAA0B,IAAA,IAA8C;CAC7H,OAAOC,KAAkBC,KAAoBV;AAC9C"}
@@ -1 +1 @@
1
- {"version":3,"file":"typedarray.js","names":[],"sources":["../../src/utils/typedarray.js"],"sourcesContent":["// Copied from @thi.ng/api/typedarray\n// TODO: rewrite without this but for now just forked in order to add Atomics to base library\n\nconst GLType = /* @__PURE__ */ ((GLType2) => {\n\tGLType2[GLType2['I8'] = 5120] = 'I8';\n\tGLType2[GLType2['U8'] = 5121] = 'U8';\n\tGLType2[GLType2['I16'] = 5122] = 'I16';\n\tGLType2[GLType2['U16'] = 5123] = 'U16';\n\tGLType2[GLType2['I32'] = 5124] = 'I32';\n\tGLType2[GLType2['U32'] = 5125] = 'U32';\n\tGLType2[GLType2['F32'] = 5126] = 'F32';\n\treturn GLType2;\n})({});\nconst GL2TYPE = {\n\t[5120 /* I8 */]: 'i8',\n\t[5121 /* U8 */]: 'u8',\n\t[5122 /* I16 */]: 'i16',\n\t[5123 /* U16 */]: 'u16',\n\t[5124 /* I32 */]: 'i32',\n\t[5125 /* U32 */]: 'u32',\n\t[5126 /* F32 */]: 'f32',\n};\nconst TYPE2GL = {\n\ti8: 5120 /* I8 */,\n\tu8: 5121 /* U8 */,\n\tu8c: 5121 /* U8 */,\n\ti16: 5122 /* I16 */,\n\tu16: 5123 /* U16 */,\n\ti32: 5124 /* I32 */,\n\tu32: 5125 /* U32 */,\n\tf32: 5126 /* F32 */,\n\tf64: void 0,\n};\nconst SIZEOF = {\n\tu8: 1,\n\tu8c: 1,\n\ti8: 1,\n\tu16: 2,\n\ti16: 2,\n\tu32: 4,\n\ti32: 4,\n\ti64: 8,\n\tu64: 8,\n\tf32: 4,\n\tf64: 8,\n};\nconst BIT_SHIFTS = {\n\ti8: 0,\n\tu8: 0,\n\tu8c: 0,\n\ti16: 1,\n\tu16: 1,\n\ti32: 2,\n\tu32: 2,\n\ti64: 3,\n\tu64: 3,\n\tf32: 2,\n\tf64: 3,\n};\nconst FLOAT_ARRAY_CTORS = {\n\tf32: Float32Array,\n\tf64: Float64Array,\n};\nconst INT_ARRAY_CTORS = {\n\ti8: Int8Array,\n\ti16: Int16Array,\n\ti32: Int32Array,\n};\nconst UINT_ARRAY_CTORS = {\n\tu8: Uint8Array,\n\tu8c: Uint8ClampedArray,\n\tu16: Uint16Array,\n\tu32: Uint32Array,\n};\nconst BIGINT_ARRAY_CTORS = {\n\ti64: BigInt64Array,\n\tu64: BigUint64Array,\n};\nconst TYPEDARRAY_CTORS = {\n\t...FLOAT_ARRAY_CTORS,\n\t...INT_ARRAY_CTORS,\n\t...UINT_ARRAY_CTORS,\n};\nconst asNativeType = (type) => {\n\tconst t = GL2TYPE[type];\n\treturn t !== void 0 ? t : type;\n};\nconst asGLType = (type) => {\n\tconst t = TYPE2GL[type];\n\treturn t !== void 0 ? t : type;\n};\nconst asInt = (...args) => args.map((x) => x | 0);\nconst sizeOf = (type) => SIZEOF[type] || SIZEOF[asNativeType(type)];\nfunction typedArray(type, ...xs) {\n\tconst ctor = BIGINT_ARRAY_CTORS[type];\n\treturn new (ctor || TYPEDARRAY_CTORS[asNativeType(type)])(...xs);\n}\nfunction typedArrayOfVec(type, data, stride) {\n\tconst $data = Array.isArray(data) ? data : [...data];\n\tif(stride === void 0)\n\t\tstride = $data[0].length;\n\tconst num = $data.length;\n\tconst res = typedArray(type, num * stride);\n\tfor(let i = 0, j = 0; i < num; i++, j += stride) {\n\t\tres.set($data[i], j);\n\t}\n\treturn res;\n}\nconst typedArrayType = (x) => {\n\tif(Array.isArray(x))\n\t\treturn 'f64';\n\tfor(let id in TYPEDARRAY_CTORS) {\n\t\tif(x instanceof TYPEDARRAY_CTORS[id])\n\t\t\treturn id;\n\t}\n\treturn 'f64';\n};\nconst uintTypeForSize = (x) => x <= 256 ? 'u8' : x <= 65536 ? 'u16' : 'u32';\nconst intTypeForSize = (x) => x >= -128 && x < 128 ? 'i8' : x >= -32768 && x < 32768 ? 'i16' : 'i32';\nconst uintTypeForBits = (x) => x > 16 ? 'u32' : x > 8 ? 'u16' : 'u8';\nconst intTypeForBits = (x) => x > 16 ? 'i32' : x > 8 ? 'i16' : 'i8';\nconst narrowInt = (t) => t === 'i64' ? 'i32' : t === 'i32' ? 'i16' : t === 'i16' ? 'i8' : 'i8';\nconst widenInt = (t) => t === 'i8' ? 'i16' : t === 'i16' ? 'i32' : t === 'i32' ? 'i64' : 'i64';\nconst narrowUint = (t) => t === 'u64' ? 'u32' : t === 'u32' ? 'u16' : t === 'u16' ? 'u8' : 'u8';\nconst widenUint = (t) => t === 'u8' || t === 'u8c' ? 'u16' : t === 'u16' ? 'u32' : t === 'u32' ? 'u64' : 'u64';\nconst narrowFloat = (t) => t === 'f64' ? 'f32' : 'f32';\nconst widenFloat = (t) => t === 'f32' ? 'f64' : 'f64';\nconst narrowType = (t) => t[0] === 'i' ? narrowInt(t) : t[0] === 'u' ? narrowUint(t) : narrowFloat(t);\nconst widenType = (t) => t[0] === 'i' ? widenInt(t) : t[0] === 'u' ? widenUint(t) : widenFloat(t);\nexport {\n\tBIGINT_ARRAY_CTORS,\n\tBIT_SHIFTS,\n\tFLOAT_ARRAY_CTORS,\n\tGL2TYPE,\n\tGLType,\n\tINT_ARRAY_CTORS,\n\tSIZEOF,\n\tTYPE2GL,\n\tTYPEDARRAY_CTORS,\n\tUINT_ARRAY_CTORS,\n\tasGLType,\n\tasInt,\n\tasNativeType,\n\tintTypeForBits,\n\tintTypeForSize,\n\tnarrowFloat,\n\tnarrowInt,\n\tnarrowType,\n\tnarrowUint,\n\tsizeOf,\n\ttypedArray,\n\ttypedArrayOfVec,\n\ttypedArrayType,\n\tuintTypeForBits,\n\tuintTypeForSize,\n\twidenFloat,\n\twidenInt,\n\twidenType,\n\twidenUint,\n};\n"],"mappings":";AAaA,IAAM,IAAU;CACd,MAAgB;CAChB,MAAgB;CAChB,MAAiB;CACjB,MAAiB;CACjB,MAAiB;CACjB,MAAiB;CACjB,MAAiB;AACnB,GAsCM,IAAoB;CACzB,KAAK;CACL,KAAK;AACN,GACM,IAAkB;CACvB,IAAI;CACJ,KAAK;CACL,KAAK;AACN,GACM,IAAmB;CACxB,IAAI;CACJ,KAAK;CACL,KAAK;CACL,KAAK;AACN,GACM,IAAqB;CAC1B,KAAK;CACL,KAAK;AACN,GACM,IAAmB;CACxB,GAAG;CACH,GAAG;CACH,GAAG;AACJ,GACM,KAAgB,MAAS;CAC9B,IAAM,IAAI,EAAQ;CAClB,OAAO,MAAM,KAAK,IAAQ,IAAJ;AACvB;AAOA,SAAS,EAAW,GAAM,GAAG,GAAI;CAEhC,OAAO,KADM,EAAmB,MACZ,EAAiB,EAAa,CAAI,IAAI,GAAG,CAAE;AAChE"}
1
+ {"version":3,"file":"typedarray.js","names":["GL2TYPE","FLOAT_ARRAY_CTORS","INT_ARRAY_CTORS","UINT_ARRAY_CTORS","BIGINT_ARRAY_CTORS","TYPEDARRAY_CTORS","asNativeType","t","type","typedArray","xs"],"sources":["../../src/utils/typedarray.js"],"sourcesContent":["// Copied from @thi.ng/api/typedarray\n// TODO: rewrite without this but for now just forked in order to add Atomics to base library\n\nconst GLType = /* @__PURE__ */ ((GLType2) => {\n\tGLType2[GLType2['I8'] = 5120] = 'I8';\n\tGLType2[GLType2['U8'] = 5121] = 'U8';\n\tGLType2[GLType2['I16'] = 5122] = 'I16';\n\tGLType2[GLType2['U16'] = 5123] = 'U16';\n\tGLType2[GLType2['I32'] = 5124] = 'I32';\n\tGLType2[GLType2['U32'] = 5125] = 'U32';\n\tGLType2[GLType2['F32'] = 5126] = 'F32';\n\treturn GLType2;\n})({});\nconst GL2TYPE = {\n\t[5120 /* I8 */]: 'i8',\n\t[5121 /* U8 */]: 'u8',\n\t[5122 /* I16 */]: 'i16',\n\t[5123 /* U16 */]: 'u16',\n\t[5124 /* I32 */]: 'i32',\n\t[5125 /* U32 */]: 'u32',\n\t[5126 /* F32 */]: 'f32',\n};\nconst TYPE2GL = {\n\ti8: 5120 /* I8 */,\n\tu8: 5121 /* U8 */,\n\tu8c: 5121 /* U8 */,\n\ti16: 5122 /* I16 */,\n\tu16: 5123 /* U16 */,\n\ti32: 5124 /* I32 */,\n\tu32: 5125 /* U32 */,\n\tf32: 5126 /* F32 */,\n\tf64: void 0,\n};\nconst SIZEOF = {\n\tu8: 1,\n\tu8c: 1,\n\ti8: 1,\n\tu16: 2,\n\ti16: 2,\n\tu32: 4,\n\ti32: 4,\n\ti64: 8,\n\tu64: 8,\n\tf32: 4,\n\tf64: 8,\n};\nconst BIT_SHIFTS = {\n\ti8: 0,\n\tu8: 0,\n\tu8c: 0,\n\ti16: 1,\n\tu16: 1,\n\ti32: 2,\n\tu32: 2,\n\ti64: 3,\n\tu64: 3,\n\tf32: 2,\n\tf64: 3,\n};\nconst FLOAT_ARRAY_CTORS = {\n\tf32: Float32Array,\n\tf64: Float64Array,\n};\nconst INT_ARRAY_CTORS = {\n\ti8: Int8Array,\n\ti16: Int16Array,\n\ti32: Int32Array,\n};\nconst UINT_ARRAY_CTORS = {\n\tu8: Uint8Array,\n\tu8c: Uint8ClampedArray,\n\tu16: Uint16Array,\n\tu32: Uint32Array,\n};\nconst BIGINT_ARRAY_CTORS = {\n\ti64: BigInt64Array,\n\tu64: BigUint64Array,\n};\nconst TYPEDARRAY_CTORS = {\n\t...FLOAT_ARRAY_CTORS,\n\t...INT_ARRAY_CTORS,\n\t...UINT_ARRAY_CTORS,\n};\nconst asNativeType = (type) => {\n\tconst t = GL2TYPE[type];\n\treturn t !== void 0 ? t : type;\n};\nconst asGLType = (type) => {\n\tconst t = TYPE2GL[type];\n\treturn t !== void 0 ? t : type;\n};\nconst asInt = (...args) => args.map((x) => x | 0);\nconst sizeOf = (type) => SIZEOF[type] || SIZEOF[asNativeType(type)];\nfunction typedArray(type, ...xs) {\n\tconst ctor = BIGINT_ARRAY_CTORS[type];\n\treturn new (ctor || TYPEDARRAY_CTORS[asNativeType(type)])(...xs);\n}\nfunction typedArrayOfVec(type, data, stride) {\n\tconst $data = Array.isArray(data) ? data : [...data];\n\tif(stride === void 0) {\n\t\tstride = $data[0].length;\n\t}\n\tconst num = $data.length;\n\tconst res = typedArray(type, num * stride);\n\tfor(let i = 0, j = 0; i < num; i++, j += stride) {\n\t\tres.set($data[i], j);\n\t}\n\treturn res;\n}\nconst typedArrayType = (x) => {\n\tif(Array.isArray(x)) {\n\t\treturn 'f64';\n\t}\n\tfor(let id in TYPEDARRAY_CTORS) {\n\t\tif(x instanceof TYPEDARRAY_CTORS[id]) {\n\t\t\treturn id;\n\t\t}\n\t}\n\treturn 'f64';\n};\nconst uintTypeForSize = (x) => x <= 256 ? 'u8' : x <= 65536 ? 'u16' : 'u32';\nconst intTypeForSize = (x) => x >= -128 && x < 128 ? 'i8' : x >= -32768 && x < 32768 ? 'i16' : 'i32';\nconst uintTypeForBits = (x) => x > 16 ? 'u32' : x > 8 ? 'u16' : 'u8';\nconst intTypeForBits = (x) => x > 16 ? 'i32' : x > 8 ? 'i16' : 'i8';\nconst narrowInt = (t) => t === 'i64' ? 'i32' : t === 'i32' ? 'i16' : t === 'i16' ? 'i8' : 'i8';\nconst widenInt = (t) => t === 'i8' ? 'i16' : t === 'i16' ? 'i32' : t === 'i32' ? 'i64' : 'i64';\nconst narrowUint = (t) => t === 'u64' ? 'u32' : t === 'u32' ? 'u16' : t === 'u16' ? 'u8' : 'u8';\nconst widenUint = (t) => t === 'u8' || t === 'u8c' ? 'u16' : t === 'u16' ? 'u32' : t === 'u32' ? 'u64' : 'u64';\nconst narrowFloat = (t) => t === 'f64' ? 'f32' : 'f32';\nconst widenFloat = (t) => t === 'f32' ? 'f64' : 'f64';\nconst narrowType = (t) => t[0] === 'i' ? narrowInt(t) : t[0] === 'u' ? narrowUint(t) : narrowFloat(t);\nconst widenType = (t) => t[0] === 'i' ? widenInt(t) : t[0] === 'u' ? widenUint(t) : widenFloat(t);\nexport {\n\tBIGINT_ARRAY_CTORS,\n\tBIT_SHIFTS,\n\tFLOAT_ARRAY_CTORS,\n\tGL2TYPE,\n\tGLType,\n\tINT_ARRAY_CTORS,\n\tSIZEOF,\n\tTYPE2GL,\n\tTYPEDARRAY_CTORS,\n\tUINT_ARRAY_CTORS,\n\tasGLType,\n\tasInt,\n\tasNativeType,\n\tintTypeForBits,\n\tintTypeForSize,\n\tnarrowFloat,\n\tnarrowInt,\n\tnarrowType,\n\tnarrowUint,\n\tsizeOf,\n\ttypedArray,\n\ttypedArrayOfVec,\n\ttypedArrayType,\n\tuintTypeForBits,\n\tuintTypeForSize,\n\twidenFloat,\n\twidenInt,\n\twidenType,\n\twidenUint,\n};\n"],"mappings":";AAaA,IAAMA,IAAU;CACd,MAAgB;CAChB,MAAgB;CAChB,MAAiB;CACjB,MAAiB;CACjB,MAAiB;CACjB,MAAiB;CACjB,MAAiB;AACnB,GAsCMC,IAAoB;CACzB,KAAK;CACL,KAAK;AACN,GACMC,IAAkB;CACvB,IAAI;CACJ,KAAK;CACL,KAAK;AACN,GACMC,IAAmB;CACxB,IAAI;CACJ,KAAK;CACL,KAAK;CACL,KAAK;AACN,GACMC,IAAqB;CAC1B,KAAK;CACL,KAAK;AACN,GACMC,IAAmB;CACxB,GAAGJ;CACH,GAAGC;CACH,GAAGC;AACJ,GACMG,KAAgB,MAAS;CAC9B,IAAMC,IAAIP,EAAQQ;CAClB,OAAOD,MAAM,KAAK,IAAQC,IAAJD;AACvB;AAOA,SAASE,EAAW,GAAM,GAAGC,GAAI;CAEhC,OAAO,KADMN,EAAmBI,MACZH,EAAiBC,EAAaE,CAAI,IAAI,GAAGE,CAAE;AAChE"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@daneren2005/shared-memory-objects",
3
- "version": "1.6.0",
3
+ "version": "1.6.1",
4
4
  "author": "daneren2005@gmail.com",
5
5
  "description": "Creating objects with a SharedArrayBuffer",
6
6
  "homepage": "https://github.com/daneren2005/shared-memory-objects#readme",
@@ -54,19 +54,19 @@
54
54
  "@semantic-release/git": "^11.0.1",
55
55
  "@stylistic/eslint-plugin": "^5.10.0",
56
56
  "@timohausmann/quadtree-ts": "^2.3.0",
57
- "@types/node": "^26.5.1",
58
- "@vitest/coverage-v8": "^4.1.11",
59
- "@vitest/ui": "^4.1.11",
57
+ "@types/node": "^26.6.2",
58
+ "@vitest/coverage-v8": "^5.0.1",
59
+ "@vitest/ui": "^5.0.1",
60
60
  "cross-env": "^10.1.0",
61
61
  "flatbush": "^4.6.2",
62
62
  "husky": "^9.1.7",
63
63
  "lint-staged": "^17.5.1",
64
- "oxlint": "^1.82.0",
65
- "oxlint-tsgolint": "^7.0.2001",
64
+ "oxlint": "^1.85.0",
65
+ "oxlint-tsgolint": "^7.0.2003",
66
66
  "pretty-bytes": "^7.1.3",
67
67
  "semantic-release": "^25.0.9",
68
68
  "typescript": "^7.0.2",
69
- "vite": "^8.3.0",
70
- "vitest": "^4.1.11"
69
+ "vite": "^8.3.1",
70
+ "vitest": "^5.0.1"
71
71
  }
72
72
  }