dolphindb 2.0.973 → 2.0.974

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/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "dolphindb",
3
3
  "description": "DolphinDB JavaScript API",
4
- "version": "2.0.973",
4
+ "version": "2.0.974",
5
5
  "type": "module",
6
6
  "main": "./index.js",
7
7
  "browser": "./browser.js",
@@ -1,4 +1,8 @@
1
1
  import { getBigInt128, setBigInt128 } from './data-view-extends.js';
2
+ /** https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/SharedArrayBuffer#security_requirements
3
+ SharedArrayBuffer is disabled by default in most browsers as a security precaution to avoid Spectre attacks.
4
+ But it's still available in Node.js or some browsers. */
5
+ const HAS_SHARED_ARRAY_BUFFER = typeof SharedArrayBuffer !== 'undefined';
2
6
  export class BigInt128Array {
3
7
  static of(...items) {
4
8
  return new BigInt128Array(items);
@@ -26,7 +30,7 @@ export class BigInt128Array {
26
30
  this.byteOffset = 0;
27
31
  this.byteLength = length * this.BYTES_PER_ELEMENT;
28
32
  }
29
- else if (fisrtArg instanceof ArrayBuffer || fisrtArg instanceof SharedArrayBuffer) {
33
+ else if (fisrtArg instanceof ArrayBuffer || (HAS_SHARED_ARRAY_BUFFER && fisrtArg instanceof SharedArrayBuffer)) {
30
34
  this.buffer = fisrtArg;
31
35
  this.byteOffset = byteOffset ?? 0;
32
36
  let byteLength = 0;
@@ -1 +1 @@
1
- {"version":3,"file":"bigint-128-array.js","sourceRoot":"","sources":["bigint-128-array.ts"],"names":[],"mappings":"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","sourcesContent":["import { getBigInt128, setBigInt128 } from './data-view-extends.js'\n\n\nexport class BigInt128Array {\n static of (...items: bigint[]): BigInt128Array {\n return new BigInt128Array(items)\n }\n \n \n static from (arrayLike: ArrayLike<bigint>): BigInt128Array\n static from<U>(arrayLike: ArrayLike<U>, mapfn: (v: U, k: number) => bigint, thisArg?: any): BigInt128Array\n static from<U>(arrayLike: ArrayLike<U>, mapfn?: (v: U, k: number) => bigint, thisArg?: any) {\n if (mapfn) {\n const array: bigint[] = [ ]\n for (let i = 0; i < arrayLike.length; i++) \n array.push(mapfn.call(thisArg, arrayLike[i], i))\n \n return new BigInt128Array(array)\n } else {\n const v = new BigInt128Array(arrayLike.length)\n v.set(arrayLike as ArrayLike<bigint>)\n }\n }\n \n \n readonly BYTES_PER_ELEMENT: number = 16\n readonly buffer: ArrayBufferLike\n readonly byteLength: number\n readonly byteOffset: number\n \n \n constructor (length?: number)\n constructor (array: Iterable<bigint>)\n constructor (buffer: ArrayBufferLike, byteOffset?: number, length?: number)\n constructor (fisrtArg: number | Iterable<bigint> | ArrayBufferLike, byteOffset?: number, length?: number) {\n if (typeof fisrtArg === 'number') {\n const length = fisrtArg\n this.buffer = new ArrayBuffer(length * this.BYTES_PER_ELEMENT)\n this.byteOffset = 0\n this.byteLength = length * this.BYTES_PER_ELEMENT\n } else if (fisrtArg instanceof ArrayBuffer || fisrtArg instanceof SharedArrayBuffer) {\n this.buffer = fisrtArg\n this.byteOffset = byteOffset ?? 0\n \n let byteLength = 0\n if (length !== undefined) {\n byteLength = length * this.BYTES_PER_ELEMENT\n if (byteLength + this.byteOffset > fisrtArg.byteLength) \n throw new RangeError(`valid typed array length: ${length}`)\n } else {\n byteLength = fisrtArg.byteLength - this.byteOffset\n if (byteLength % this.BYTES_PER_ELEMENT !== 0) \n throw new RangeError('byte length of BigInt128Array should be a multiple of 16')\n }\n \n this.byteLength = byteLength\n } else {\n const array: bigint[] = [ ]\n for (const value of fisrtArg) \n array.push(value)\n \n this.buffer = new ArrayBuffer(array.length * this.BYTES_PER_ELEMENT)\n this.byteOffset = 0\n this.byteLength = array.length * this.BYTES_PER_ELEMENT\n this.set(array)\n }\n \n return new Proxy(this, {\n get (target, key) {\n if (typeof key === 'string') {\n const index = Number(key)\n // only positive integer index is allowed\n if (Number.isInteger(index) && index >= 0 && index < target.length) \n return target.at(index)\n }\n \n return Reflect.get(target, key)\n },\n \n set (target, key, value) {\n if (typeof key === 'string') {\n const index = Number(key)\n if (Number.isInteger(index) && index >= 0 && index < target.length) \n target.set([value], index)\n \n // ignore invalid number index setter, and never set value to target\n return true\n }\n \n return Reflect.set(target, key, value)\n }\n })\n }\n \n \n get length () {\n return this.byteLength / this.BYTES_PER_ELEMENT\n }\n \n \n set (array: ArrayLike<bigint>, offset: number = 0) {\n if (offset + array.length > this.length) \n throw new RangeError('offset is out of bounds')\n \n const dv = new DataView(this.buffer)\n for (let i = 0; i < array.length; i++) {\n const byteOffset = this.byteOffset + (offset + i) * this.BYTES_PER_ELEMENT\n setBigInt128(dv, byteOffset, array[i])\n }\n }\n \n \n at (index: number) {\n const length = this.length\n \n if (index < 0) \n index += length\n \n if (index >= length || index < 0)\n return undefined\n \n const dv = new DataView(this.buffer)\n return getBigInt128(dv, this.byteOffset + index * this.BYTES_PER_ELEMENT)\n }\n \n \n subarray (begin: number = 0, end: number = this.length) {\n const length = this.length\n // subarray arguments should be the same behavior as other TypedArray\n // https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/TypedArray/subarray#%E8%AF%B4%E6%98%8E\n if (begin < 0)\n begin += length\n \n if (end < 0)\n end += length\n \n if (begin < 0)\n begin = 0\n else if (begin > length)\n begin = length\n \n if (end < 0)\n end = 0\n else if (end > length)\n end = length\n \n const newLength = Math.max(end - begin, 0)\n return new BigInt128Array(this.buffer, this.byteOffset + begin * this.BYTES_PER_ELEMENT, newLength)\n }\n \n \n [Symbol.iterator] () {\n let index = 0\n const array = this\n return {\n next () {\n if (index < array.length) \n return { value: array.at(index++), done: false }\n else \n return { done: true }\n },\n }\n }\n \n \n toString () {\n const values: bigint[] = [ ]\n for (const value of this) \n values.push(value)\n return values.join(',')\n }\n}\n\n\nObject.defineProperty(BigInt128Array.prototype, Symbol.toStringTag, {\n configurable: false,\n writable: false,\n enumerable: false,\n value: 'BigInt128Array',\n})\n"]}
1
+ {"version":3,"file":"bigint-128-array.js","sourceRoot":"","sources":["bigint-128-array.ts"],"names":[],"mappings":"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","sourcesContent":["import { getBigInt128, setBigInt128 } from './data-view-extends.js'\n\n\n/** https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/SharedArrayBuffer#security_requirements\n SharedArrayBuffer is disabled by default in most browsers as a security precaution to avoid Spectre attacks.\n But it's still available in Node.js or some browsers. */\nconst HAS_SHARED_ARRAY_BUFFER = typeof SharedArrayBuffer !== 'undefined'\n\n\nexport class BigInt128Array {\n static of (...items: bigint[]): BigInt128Array {\n return new BigInt128Array(items)\n }\n \n \n static from (arrayLike: ArrayLike<bigint>): BigInt128Array\n static from<U>(arrayLike: ArrayLike<U>, mapfn: (v: U, k: number) => bigint, thisArg?: any): BigInt128Array\n static from<U>(arrayLike: ArrayLike<U>, mapfn?: (v: U, k: number) => bigint, thisArg?: any) {\n if (mapfn) {\n const array: bigint[] = [ ]\n for (let i = 0; i < arrayLike.length; i++) \n array.push(mapfn.call(thisArg, arrayLike[i], i))\n \n return new BigInt128Array(array)\n } else {\n const v = new BigInt128Array(arrayLike.length)\n v.set(arrayLike as ArrayLike<bigint>)\n }\n }\n \n \n readonly BYTES_PER_ELEMENT: number = 16\n readonly buffer: ArrayBufferLike\n readonly byteLength: number\n readonly byteOffset: number\n \n \n constructor (length?: number)\n constructor (array: Iterable<bigint>)\n constructor (buffer: ArrayBufferLike, byteOffset?: number, length?: number)\n constructor (fisrtArg: number | Iterable<bigint> | ArrayBufferLike, byteOffset?: number, length?: number) {\n if (typeof fisrtArg === 'number') {\n const length = fisrtArg\n this.buffer = new ArrayBuffer(length * this.BYTES_PER_ELEMENT)\n this.byteOffset = 0\n this.byteLength = length * this.BYTES_PER_ELEMENT\n } else if (fisrtArg instanceof ArrayBuffer || (HAS_SHARED_ARRAY_BUFFER && fisrtArg instanceof SharedArrayBuffer)) {\n this.buffer = fisrtArg\n this.byteOffset = byteOffset ?? 0\n \n let byteLength = 0\n if (length !== undefined) {\n byteLength = length * this.BYTES_PER_ELEMENT\n if (byteLength + this.byteOffset > fisrtArg.byteLength) \n throw new RangeError(`valid typed array length: ${length}`)\n } else {\n byteLength = fisrtArg.byteLength - this.byteOffset\n if (byteLength % this.BYTES_PER_ELEMENT !== 0) \n throw new RangeError('byte length of BigInt128Array should be a multiple of 16')\n }\n \n this.byteLength = byteLength\n } else {\n const array: bigint[] = [ ]\n for (const value of fisrtArg as Iterable<bigint>) \n array.push(value)\n \n this.buffer = new ArrayBuffer(array.length * this.BYTES_PER_ELEMENT)\n this.byteOffset = 0\n this.byteLength = array.length * this.BYTES_PER_ELEMENT\n this.set(array)\n }\n \n return new Proxy(this, {\n get (target, key) {\n if (typeof key === 'string') {\n const index = Number(key)\n // only positive integer index is allowed\n if (Number.isInteger(index) && index >= 0 && index < target.length) \n return target.at(index)\n }\n \n return Reflect.get(target, key)\n },\n \n set (target, key, value) {\n if (typeof key === 'string') {\n const index = Number(key)\n if (Number.isInteger(index) && index >= 0 && index < target.length) \n target.set([value], index)\n \n // ignore invalid number index setter, and never set value to target\n return true\n }\n \n return Reflect.set(target, key, value)\n }\n })\n }\n \n \n get length () {\n return this.byteLength / this.BYTES_PER_ELEMENT\n }\n \n \n set (array: ArrayLike<bigint>, offset: number = 0) {\n if (offset + array.length > this.length) \n throw new RangeError('offset is out of bounds')\n \n const dv = new DataView(this.buffer)\n for (let i = 0; i < array.length; i++) {\n const byteOffset = this.byteOffset + (offset + i) * this.BYTES_PER_ELEMENT\n setBigInt128(dv, byteOffset, array[i])\n }\n }\n \n \n at (index: number) {\n const length = this.length\n \n if (index < 0) \n index += length\n \n if (index >= length || index < 0)\n return undefined\n \n const dv = new DataView(this.buffer)\n return getBigInt128(dv, this.byteOffset + index * this.BYTES_PER_ELEMENT)\n }\n \n \n subarray (begin: number = 0, end: number = this.length) {\n const length = this.length\n // subarray arguments should be the same behavior as other TypedArray\n // https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/TypedArray/subarray#%E8%AF%B4%E6%98%8E\n if (begin < 0)\n begin += length\n \n if (end < 0)\n end += length\n \n if (begin < 0)\n begin = 0\n else if (begin > length)\n begin = length\n \n if (end < 0)\n end = 0\n else if (end > length)\n end = length\n \n const newLength = Math.max(end - begin, 0)\n return new BigInt128Array(this.buffer, this.byteOffset + begin * this.BYTES_PER_ELEMENT, newLength)\n }\n \n \n [Symbol.iterator] () {\n let index = 0\n const array = this\n return {\n next () {\n if (index < array.length) \n return { value: array.at(index++), done: false }\n else \n return { done: true }\n },\n }\n }\n \n \n toString () {\n const values: bigint[] = [ ]\n for (const value of this) \n values.push(value)\n return values.join(',')\n }\n}\n\n\nObject.defineProperty(BigInt128Array.prototype, Symbol.toStringTag, {\n configurable: false,\n writable: false,\n enumerable: false,\n value: 'BigInt128Array',\n})\n"]}