dolphindb 0.0.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.
- package/README.md +273 -0
- package/browser.d.ts +249 -0
- package/browser.js +1140 -0
- package/browser.js.map +1 -0
- package/ddb.svg +1 -0
- package/index.d.ts +252 -0
- package/index.js +1143 -0
- package/index.js.map +1 -0
- package/package.json +42 -0
- package/test.d.ts +1 -0
- package/test.js +10 -0
- package/test.js.map +1 -0
package/browser.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"browser.js","sourceRoot":"","sources":["browser.ts"],"names":[],"mappings":"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","sourcesContent":["import dayjs from 'dayjs'\n\nimport 'xshell/prototype.browser'\nimport { concat } from 'xshell/utils.browser'\n\nimport { blue, yellow } from 'xshell/chalk.browser'\n\nexport enum DdbForm {\n scalar = 0,\n vector = 1,\n pair = 2,\n matrix = 3,\n set = 4,\n dict = 5,\n table = 6,\n chart = 7,\n chunk = 8,\n}\n\nexport enum DdbType {\n void = 0,\n bool = 1,\n char = 2,\n short = 3,\n int = 4,\n long = 5,\n date = 6,\n month = 7,\n time = 8,\n minute = 9,\n second = 10,\n datetime = 11,\n timestamp = 12,\n nanotime = 13,\n nanotimestamp = 14,\n float = 15,\n double = 16,\n symbol = 17,\n string = 18,\n uuid = 19,\n functiondef = 20,\n handle = 21,\n code = 22,\n datasource = 23,\n resource = 24,\n any = 25,\n compress = 26,\n dict = 27,\n datehour = 28,\n ipaddr = 30,\n int128 = 31,\n blob = 32,\n complex = 34,\n point = 35,\n duration = 36,\n \n symbol_extended = 145,\n}\n\nexport enum DdbFunctionType {\n SystemFunc = 0,\n SystemProc = 1,\n OperatorFunc = 2,\n UserDefinedFunc = 3,\n PartialFunc = 4,\n DynamicFunc = 5,\n PiecewiseFunc = 6,\n JitFunc = 7,\n JitPartialFunc = 8,\n}\n\nexport interface DdbFunctionDefValue {\n type: DdbFunctionType\n name: string\n}\n\nexport interface DdbSymbolExtendedValue {\n base_id: number\n base: string[]\n value: Uint32Array\n}\n\nexport type DdbValue = null | boolean | number | [number, number] | bigint | string | string[] | Uint8Array | Int16Array | Int32Array | Float32Array | Float64Array | BigInt64Array | Uint8Array[] | DdbObj[] | DdbFunctionDefValue | DdbSymbolExtendedValue\n\n\nexport type DdbVectorValue = string | string[] | Uint8Array | Int16Array | Int32Array | Float32Array | Float64Array | BigInt64Array | Uint8Array[] | DdbObj[] | DdbSymbolExtendedValue\n\n\nexport const nulls = {\n char: '\\x80',\n int16: -0x80_00, // -32768\n int32: -0x80_00_00_00, // -21_4748_3648\n int64: -0x80_00_00_00_00_00_00_00n, // -922_3372_0368_5477_5808\n} as const\n\nexport class DdbObj <T extends DdbValue = DdbValue> {\n static dec = new TextDecoder('utf-8')\n \n static enc = new TextEncoder()\n \n /** 维护已解析的 symbol base,比如流数据中后续的 symbol 向量可能只发送一个 base.id, base.size == 0, 依赖之前发送的 symbol base */\n static symbol_bases: Record<number, string[]> = { }\n \n /** little endian (client) */\n static le_client = Boolean(\n new Uint8Array(\n Uint32Array.of(1).buffer\n )[0]\n )\n \n /** 是否为小端 (little endian) */\n le = DdbObj.le_client\n \n /** 数据形式 https://www.dolphindb.cn/cn/help/DataTypesandStructures/DataForms/index.html */\n form: DdbForm\n \n /** 数据类型 https://www.dolphindb.cn/cn/help/DataTypesandStructures/DataTypes/index.html */\n type: DdbType\n \n /** 占用 parse 时传入的 buf 的长度 */\n length: number\n \n /** table name / column name */\n name?: string\n \n /**\n 最低维、第 1 维\n - vector: rows = n, cols = 1\n - pair: rows = 2, cols = 1\n - matrix: rows = n, cols = m\n - set: 同 vector\n - dict: 包含 keys, values 向量\n - table: 同 matrix\n */\n rows?: number\n \n /** 第 2 维 */\n cols?: number\n \n \n /** matrix 中值的类型,仅 matrix 才有 */\n datatype?: DdbType\n \n /** 实际数据。不同的 DdbForm, DdbType 使用 DdbValue 中不同的类型来表示实际数据 */\n value: T\n \n \n constructor (data: Partial<DdbObj> & { form: DdbForm, type: DdbType, length: number }) {\n Object.assign(this, data)\n }\n \n \n static parse (buf: Uint8Array, le: boolean) {\n if (!buf.length)\n return new this({\n le,\n form: DdbForm.scalar,\n type: DdbType.void,\n length: 0,\n value: undefined\n })\n \n const type = buf[0]\n const form = buf[1]\n \n if (buf.length <= 2) {\n return new this({\n le,\n form,\n type,\n length: 2,\n value: null,\n })\n }\n \n // set 里面 data 嵌套了一个 vector, 跳过 vector 的 type 和 form\n const i_data = form === DdbForm.set ? 4 : 2\n const buf_data = buf.subarray(i_data)\n \n switch (form) {\n case DdbForm.scalar: {\n const [length, value] = this.parse_scalar(buf_data, le, type)\n return new this({\n le,\n form, \n type,\n length: 2 + length,\n value,\n })\n }\n \n case DdbForm.vector:\n case DdbForm.pair:\n case DdbForm.set: {\n let vector = this.parse_vector(buf_data, le, type)\n vector.length += 2\n vector.form = form\n return vector\n }\n \n \n case DdbForm.table: {\n // table([\n // [1, 2] as a,\n // [1, 2] as b\n // ])\n \n // <Buffer \n // 00 06 form = table\n // 02 00 00 00 02 00 00 00 rows = 2, cols = 2\n // 00 行名称\n // 61 00 62 00 列名称 a, b\n \n // 04 01 form = vector, type = int\n // 02 00 00 00 01 00 00 00 cols = 2, rows = 1\n // 01 00 00 00 02 00 00 00 \n \n // 04 01 \n // 02 00 00 00 01 00 00 00 \n // 01 00 00 00 02 00 00 00>\n \n const dv = new DataView(buf.buffer, buf.byteOffset + i_data)\n \n const rows = dv.getUint32(0, le)\n const cols = dv.getUint32(4, le)\n const i_name_tail = buf_data.indexOf(0, 8)\n const name = this.dec.decode(\n buf_data.subarray(8, i_name_tail)\n )\n \n const i_items_start = i_name_tail + 1\n \n const [len_items, colnames] = this.parse_vector_items(\n buf_data.subarray(i_items_start),\n le,\n DdbType.string,\n cols\n ) as [number, string[]]\n \n let value = new Array(cols)\n let i_start = i_items_start + len_items\n for (let i = 0; i < cols; i++) {\n const type = buf_data[i_start] as DdbType\n \n const i_vector_head = i_start + 2\n \n let col = this.parse_vector(\n buf_data.subarray(i_vector_head),\n le,\n type\n )\n \n col.name = colnames[i]\n \n value[i] = col\n \n i_start = i_vector_head + col.length\n }\n \n return new this({\n le,\n form,\n type,\n length: i_start,\n name,\n rows,\n cols,\n value,\n })\n }\n \n \n case DdbForm.dict: {\n // <Buffer 19 05 type = any, form = dict\n // 12 01 keys.type = string, keys.form = vector\n // 03 00 00 00 01 00 00 00 keys.cols = 3, keys.rows = 1\n // 63 00 62 00 61 00 \n \n // 19 01 values.type = any, values.form = vector\n // 03 00 00 00 01 00 00 00 values.cols = 3, values.rows = 1\n // 04 00 03 00 00 00 04 00 02 00 00 00 04 00 01 00 00 00>\n \n let keys = this.parse_vector(\n buf_data.subarray(2),\n le,\n buf_data[0]\n )\n \n keys.length += 2\n \n let values = this.parse_vector(\n buf_data.subarray(keys.length + 2),\n le,\n buf_data[keys.length]\n )\n \n values.length += 2\n \n return new this({\n le,\n form,\n type,\n length: 2 + keys.length + values.length,\n rows: keys.rows,\n cols: 2,\n value: [\n keys,\n values\n ],\n })\n }\n \n \n case DdbForm.matrix: {\n // matrix([\n // [1, 2, 3],\n // [3, 2, 1]\n // ])\n \n // <Buffer 00 has_row_label = , has_col_label = \n // 04 03 type = int, form = matrix\n // 03 00 00 00 02 00 00 00 rows = 3, cols = 2\n // 01 00 00 00 02 00 00 00 03 00 00 00 03 00 00 00 02 00 00 00 01 00 00 00>\n \n const dv = new DataView(buf.buffer, buf.byteOffset + i_data)\n \n const label_flags = buf_data[0]\n const has_row_labels = Boolean(label_flags & 0x01)\n const has_col_labels = Boolean(label_flags & 0x02)\n \n if (has_row_labels || has_col_labels)\n throw new Error('matrix 暂不支持 row labels 和 col labels')\n \n const datatype = buf_data[1] as DdbType\n const rows = dv.getUint32(3, le)\n const cols = dv.getUint32(7, le)\n \n const [len_items, value] = this.parse_vector_items(\n buf_data.subarray(11),\n le,\n datatype,\n rows * cols // 假设小于 2**32\n )\n \n return new this({\n le,\n form, \n type,\n length: 11 + len_items,\n rows,\n cols,\n datatype,\n value,\n }) \n }\n \n \n default:\n return new this({\n le,\n form,\n type,\n length: buf_data.length,\n value: buf_data\n })\n }\n }\n \n \n static parse_scalar (buf: Uint8Array, le: boolean, type: DdbType): [number, DdbValue] {\n switch (type) {\n case DdbType.void:\n return [1, null]\n \n \n case DdbType.bool:\n return [1, Boolean(buf[0])]\n \n \n case DdbType.char:\n return [1, String.fromCharCode(buf[0])]\n \n \n case DdbType.short: {\n const dv = new DataView(buf.buffer, buf.byteOffset)\n return [2, dv.getInt16(0, le)]\n }\n \n \n case DdbType.int:\n // datetime\n case DdbType.date:\n case DdbType.month:\n case DdbType.time:\n case DdbType.minute:\n case DdbType.second:\n case DdbType.datetime: \n case DdbType.datehour: {\n const dv = new DataView(buf.buffer, buf.byteOffset)\n return [4, dv.getInt32(0, le)]\n }\n \n \n case DdbType.float: {\n const dv = new DataView(buf.buffer, buf.byteOffset)\n return [4, dv.getFloat32(0, le)]\n }\n \n \n case DdbType.double: {\n const dv = new DataView(buf.buffer, buf.byteOffset)\n return [8, dv.getFloat64(0, le)]\n }\n \n \n case DdbType.long:\n // timestamp\n case DdbType.timestamp:\n case DdbType.nanotime:\n case DdbType.nanotimestamp: {\n const dv = new DataView(buf.buffer, buf.byteOffset)\n return [8, dv.getBigInt64(0, le)]\n }\n \n \n case DdbType.string:\n case DdbType.symbol:\n case DdbType.code:\n case DdbType.functiondef: {\n const i_head = type === DdbType.functiondef ? 1 : 0\n let i_zero = buf.indexOf(0, i_head)\n let i_end: number // 整个字符串(包括 0)的末尾,excluding\n if (i_zero === -1)\n i_end = i_zero = buf.length\n else\n i_end = i_zero + 1\n // 调整了 i_zero 到字符串(不包括 0)的末尾,excluding\n \n const str = this.dec.decode(\n buf.subarray(i_head, i_zero)\n )\n \n return [\n i_end,\n type === DdbType.functiondef ?\n {\n type: buf[0] as DdbFunctionType,\n name: str\n }\n :\n str\n ]\n }\n \n \n case DdbType.uuid:\n case DdbType.ipaddr:\n case DdbType.int128:\n return [\n 16,\n buf.slice(0, 16)\n ]\n \n \n case DdbType.blob: {\n const dv = new DataView(buf.buffer, buf.byteOffset)\n const length = dv.getUint32(0, le)\n \n return [\n 4 + length,\n buf.slice(4, 4 + length)\n ]\n }\n \n \n case DdbType.complex:\n case DdbType.point: {\n const dv = new DataView(buf.buffer, buf.byteOffset)\n return [\n 16,\n [\n dv.getFloat64(0, le),\n dv.getFloat64(8, le)\n ] as [number, number]\n ]\n }\n \n \n default:\n return [0, buf]\n }\n }\n \n \n /** parse: rows, cols, items \n 返回的 ddbobj.length 不包括 vector 的 type 和 form\n */\n static parse_vector (buf: Uint8Array, le: boolean, type: DdbType): DdbObj {\n const dv = new DataView(buf.buffer, buf.byteOffset)\n \n const rows = dv.getUint32(0, le)\n \n const i_items_start = 8\n \n const [len_items, value] = this.parse_vector_items(\n buf.subarray(i_items_start),\n le,\n type,\n rows\n )\n \n return new this({\n le,\n form: DdbForm.vector,\n type,\n length: i_items_start + len_items,\n cols: 1,\n rows,\n value,\n })\n }\n \n \n /** 有可能没有字节对齐,不能直接使用原有 message 的 arraybuffer, 统一复制出来,让原有 arraybuffer 被回收掉比较好 */\n static parse_vector_items (\n buf: Uint8Array, \n le: boolean,\n type: DdbType, \n length: number\n ): [\n number, \n DdbVectorValue\n ] {\n switch (type) {\n case DdbType.bool:\n return [length, buf.slice(0, length)]\n \n \n case DdbType.char:\n return [\n length,\n this.dec.decode(\n buf.subarray(0, length)\n )\n ]\n \n \n case DdbType.short:\n return [\n 2 * length,\n new Int16Array(\n buf.buffer.slice(\n buf.byteOffset,\n buf.byteOffset + 2 * length\n )\n )\n ]\n \n \n case DdbType.int:\n // datetime\n case DdbType.date:\n case DdbType.month:\n case DdbType.time:\n case DdbType.minute:\n case DdbType.second:\n case DdbType.datetime:\n return [\n 4 * length,\n new Int32Array(\n buf.buffer.slice(\n buf.byteOffset,\n buf.byteOffset + 4 * length\n )\n )\n ]\n \n \n case DdbType.float:\n return [\n 4 * length,\n new Float32Array(\n buf.buffer.slice(\n buf.byteOffset,\n buf.byteOffset + 4 * length\n )\n )\n ]\n \n \n case DdbType.double:\n return [\n 8 * length,\n new Float64Array(\n buf.buffer.slice(\n buf.byteOffset, \n buf.byteOffset + 8 * length\n )\n )\n ]\n \n \n case DdbType.long:\n // timestamp\n case DdbType.timestamp:\n case DdbType.nanotime:\n case DdbType.nanotimestamp:\n return [\n 8 * length,\n new BigInt64Array(\n buf.buffer.slice(\n buf.byteOffset,\n buf.byteOffset + 8 * length\n )\n )\n ]\n \n \n case DdbType.string: \n case DdbType.symbol: \n case DdbType.code: {\n let value = new Array<string>(length)\n let i_head = 0, i_tail = i_head\n for (let i = 0; i < length; i++) {\n i_tail = buf.indexOf(0, i_head)\n value[i] = this.dec.decode(\n buf.subarray(i_head, i_tail)\n )\n i_head = i_tail + 1\n }\n return [i_head, value]\n }\n \n \n case DdbType.symbol_extended: {\n // <Buffer 91 01 type = symbol extended, form = vector\n // 05 00 00 00 01 00 00 00 row = 5, col = 1\n \n // buf:\n // 00 00 00 00 symbol base id = 0 (uint32)\n // 02 00 00 00 symbol base size = 2\n // 00 61 61 00 以 \\0 分割的字符串\n // 01 00 00 00 01 00 00 00 01 00 00 00 01 00 00 00 01 00 00 00>\n \n const dv = new DataView(buf.buffer, buf.byteOffset, buf.byteLength)\n const base_id = dv.getUint32(0, le)\n const base_size = dv.getUint32(4, le)\n \n let base_length = 0\n let base = this.symbol_bases[base_id]\n \n // base_size 为 0 时复用之前的 symbol base\n if (base_size) {\n [base_length, base] = this.parse_vector_items(\n buf.subarray(8),\n le,\n DdbType.string,\n base_size\n ) as [number, string[]]\n \n this.symbol_bases[base_id] = base\n }\n \n const value_start = 8 + base_length\n const value_end = value_start + length * 4\n \n const value = new Uint32Array(\n buf.buffer.slice(\n buf.byteOffset + value_start,\n buf.byteOffset + value_end\n )\n )\n \n return [\n value_end,\n {\n base_id,\n base,\n value\n }\n ]\n }\n \n \n case DdbType.uuid:\n case DdbType.ipaddr:\n case DdbType.int128:\n return [\n 16 * length,\n new Uint8Array(\n buf.buffer.slice(\n buf.byteOffset,\n buf.byteOffset + 16 * length\n )\n )\n ]\n \n \n case DdbType.blob: {\n // <Buffer 20 01 type = blob, form = vector\n // 02 00 00 00 01 00 00 00 cols = 2, rows = 1\n // 04 00 00 00 61 62 63 64 \n // 04 00 00 00 61 62 63 64>\n \n let value = new Array<Uint8Array>(length)\n const dv = new DataView(buf.buffer, buf.byteOffset, buf.byteLength)\n let i_head = 0\n for (let i = 0; i < length; i++) {\n const sublen = dv.getUint32(i_head, le)\n const i_blob_head = i_head + 4\n const i_blob_tail = i_blob_head + sublen\n value[i] = buf.slice(i_blob_head, i_blob_tail)\n i_head = i_blob_tail\n }\n \n return [i_head, value]\n }\n \n \n case DdbType.complex:\n case DdbType.point: \n return [\n 16 * length,\n new Float64Array(\n buf.buffer.slice(\n buf.byteOffset,\n buf.byteOffset + 16 * length\n )\n )\n ]\n \n \n case DdbType.any: {\n // [1, 2, 'a', 'aaa']\n // any[4](<Buffer \n // 04 00 DdbType.int, DdbForm.scalar\n // 01 00 00 00 \n // 04 00 DdbType.int, DdbForm.scalar\n // 02 00 00 00 \n // 02 00 DdbType.char, DdbForm.scalar\n // 61 \n // 12 00 DdbType.string, DdbForm.scalar\n // 61 61 61 00>)\n \n \n let values = new Array<DdbObj>(length)\n let i_head = 0\n for (let i = 0; i < length; i++) {\n const obj = this.parse(\n buf.subarray(i_head),\n le\n )\n values[i] = obj\n i_head += obj.length\n }\n \n return [\n i_head,\n values\n ]\n }\n \n \n default:\n return [0, buf]\n }\n }\n \n \n pack (): Uint8Array {\n const { form, type, value } = this\n \n let header = new Uint8Array(new ArrayBuffer(2))\n header[0] = type\n header[1] = form\n \n const body = (() => {\n switch (form) {\n case DdbForm.scalar:\n switch (type) {\n case DdbType.void:\n return [Uint8Array.of(1)]\n \n case DdbType.bool:\n return [Uint8Array.of(Number(value as boolean))]\n \n \n case DdbType.char:\n return [Uint8Array.of((value as string).charCodeAt(0))]\n \n \n case DdbType.short:\n return [Int16Array.of(value as number)]\n \n \n case DdbType.int:\n // datetime\n case DdbType.date:\n case DdbType.month:\n case DdbType.time:\n case DdbType.minute:\n case DdbType.second:\n case DdbType.datetime:\n case DdbType.datehour:\n return [Int32Array.of(value as number)]\n \n \n case DdbType.float:\n return [Float32Array.of(value as number)]\n \n \n case DdbType.double:\n return [Float64Array.of(value as number)]\n \n \n case DdbType.long:\n // timestamp\n case DdbType.timestamp:\n case DdbType.nanotime:\n case DdbType.nanotimestamp:\n return [BigInt64Array.of(this.value as bigint)]\n \n \n case DdbType.string:\n case DdbType.symbol:\n case DdbType.code:\n return [\n DdbObj.enc.encode(value as string),\n Uint8Array.of(0),\n ]\n \n case DdbType.functiondef:\n return [\n Uint8Array.of((value as DdbFunctionDefValue).type),\n DdbObj.enc.encode((value as DdbFunctionDefValue).name),\n Uint8Array.of(0)\n ]\n \n case DdbType.uuid:\n case DdbType.ipaddr:\n case DdbType.int128:\n return [this.value as Uint8Array]\n \n \n case DdbType.blob:\n return [\n Uint32Array.of(\n (this.value as Uint8Array).byteLength\n ),\n this.value as Uint8Array\n ]\n \n \n case DdbType.complex:\n case DdbType.point:\n return [Float64Array.from(this.value as [number, number])]\n \n \n case DdbType.duration:\n return [value as Uint8Array]\n \n default:\n throw new Error(`${DdbType[type]} 暂时不支持序列化`)\n }\n \n \n case DdbForm.vector:\n case DdbForm.pair:\n return [\n Uint32Array.of(this.rows, 1),\n ... DdbObj.pack_vector_body(value as DdbVectorValue, type, this.rows)\n ]\n \n \n case DdbForm.set:\n return [\n new DdbObj({\n ...this,\n form: DdbForm.vector,\n }).pack()\n ]\n \n \n case DdbForm.table:\n return [\n Uint32Array.of(this.rows, this.cols),\n DdbObj.enc.encode(this.name),\n Uint8Array.of(0),\n ...DdbObj.pack_vector_body(\n (this.value as DdbObj[]).map(col => col.name),\n DdbType.string, \n this.cols\n ),\n ...(() => {\n let cols = new Array<Uint8Array>(this.cols)\n for (let i = 0; i < cols.length; i++)\n cols[i] = (this.value as DdbObj[])[i].pack()\n return cols\n })()\n ]\n \n \n case DdbForm.dict:\n return [\n (value as [DdbObj, DdbObj])[0].pack(),\n (value as [DdbObj, DdbObj])[1].pack(),\n ]\n \n \n case DdbForm.matrix:\n return [\n Uint8Array.of(0, this.datatype, this.form),\n Uint32Array.of(this.rows, this.cols),\n ... DdbObj.pack_vector_body(value as DdbVectorValue, this.datatype, this.rows * this.cols)\n ]\n \n \n default:\n throw new Error(`${DdbForm[form]} 暂不支持序列化`)\n }\n })()\n \n \n if (!body)\n return new Uint8Array(0)\n \n return concat([\n header,\n ...body\n ])\n }\n \n \n static pack_vector_body (\n value: DdbVectorValue,\n type: DdbType,\n length: number\n ): ArrayBufferView[] {\n switch (type) {\n case DdbType.bool:\n return [value as Uint8Array]\n \n \n case DdbType.char:\n return [this.enc.encode(value as string)]\n \n \n case DdbType.short:\n return [value as Int16Array]\n \n \n case DdbType.int:\n // datetime\n case DdbType.date:\n case DdbType.month:\n case DdbType.time:\n case DdbType.minute:\n case DdbType.second:\n case DdbType.datetime:\n return [value as Int32Array]\n \n \n case DdbType.float:\n return [value as Float32Array]\n \n \n case DdbType.double:\n return [value as Float64Array]\n \n case DdbType.long:\n // timestamp\n case DdbType.timestamp:\n case DdbType.nanotime:\n case DdbType.nanotimestamp:\n return [value as BigInt64Array]\n \n \n case DdbType.string: \n case DdbType.symbol: \n case DdbType.code: {\n let bufs = new Array<Uint8Array>(length * 2)\n for (let i = 0; i < length; i++) {\n bufs[2 * i] = this.enc.encode((value as string[])[i])\n bufs[2 * i + 1] = Uint8Array.of(0)\n }\n return bufs\n }\n \n \n case DdbType.uuid:\n case DdbType.ipaddr:\n case DdbType.int128:\n return [value as Uint8Array]\n \n \n case DdbType.blob: {\n let bufs = new Array<ArrayBufferView>(length * 2)\n for (let i = 0; i < length; i++) {\n const blob_value = (value as Uint8Array[])[i]\n bufs[2 * i] = Uint32Array.of(blob_value.length)\n bufs[2 * i + 1] = blob_value\n }\n return bufs\n }\n \n \n case DdbType.complex:\n case DdbType.point: \n return [value as Float64Array]\n \n \n case DdbType.any: {\n // [1, 2, 'a', 'aaa']\n // any[4](<Buffer \n // 04 00 DdbType.int, DdbForm.scalar\n // 01 00 00 00 \n // 04 00 DdbType.int, DdbForm.scalar\n // 02 00 00 00 \n // 02 00 DdbType.char, DdbForm.scalar\n // 61 \n // 12 00 DdbType.string, DdbForm.scalar\n // 61 61 61 00>)\n \n let bufs = new Array<Uint8Array>(length)\n for (let i = 0; i < length; i++)\n bufs[i] = (value as DdbObj[])[i].pack()\n return bufs\n }\n \n default:\n throw new Error(`vector ${DdbType[type]} 暂不支持序列化`)\n }\n }\n \n \n toString () {\n const type = (() => {\n const tname = DdbType[this.type]\n \n switch (this.form) {\n case DdbForm.scalar:\n if (this.type === DdbType.functiondef)\n return `functiondef<${DdbFunctionType[(this.value as DdbFunctionDefValue).type]}>`\n return tname\n \n case DdbForm.vector:\n return `${tname}[${this.rows}]`\n \n case DdbForm.pair:\n return `pair<${tname}>`\n \n case DdbForm.set:\n return `set<${tname}>`\n \n case DdbForm.table:\n return `table[${this.rows} rows][${this.cols} cols]`\n \n case DdbForm.dict:\n return `dict<${DdbType[(this.value[0] as DdbObj).type]}, ${DdbType[(this.value[1] as DdbObj).type]}>`\n \n case DdbForm.matrix:\n return `matrix<${DdbType[this.datatype]}>[${this.rows} rows][${this.cols} cols]`\n \n default:\n return `${DdbForm[this.form]} ${tname}`\n }\n })()\n \n const data = (() => {\n if (this.form === DdbForm.pair)\n return `${this.value[0]}, ${this.value[1]}`\n \n if (this.form === DdbForm.scalar && this.type === DdbType.functiondef)\n return `'${(this.value as DdbFunctionDefValue).name}'`\n \n return this.value\n })()\n \n return `${blue(type)}(${ this.name ? `'${yellow(this.name)}', ` : '' }${data})\\n`\n }\n \n \n to_cols () {\n return (this.value as DdbObj[]).map(col => {\n let col_: any = {\n title: col.name,\n dataIndex: col.name,\n }\n \n switch (col.type) {\n case DdbType.timestamp:\n col_.render = (value: bigint) => {\n if (value === nulls.int64)\n return ''\n \n return dayjs(\n Number(value)\n ).format('YYYY.MM.DD HH:mm:ss.SSS')\n }\n break\n \n case DdbType.date:\n col_.render = (value: number) => {\n if (value === nulls.int32)\n return ''\n return dayjs(\n Number(1000 * 3600 * 24 * value)\n ).format('YYYY.MM.DD')\n }\n break\n \n case DdbType.ipaddr:\n col_.render = value =>\n (value as Uint8Array).slice().reverse().join('.').replace(/^(0\\.)+/, '')\n break\n }\n \n return col_\n })\n }\n \n \n to_rows <T extends Record<string, any> = Record<string, any>> () {\n let rows = new Array<T>(this.rows)\n \n for (let i = 0; i < this.rows; i++) {\n let row: any = { }\n for (let j = 0; j < this.cols; j++) {\n const c: DdbObj = this.value[j]\n \n if (c.type === DdbType.ipaddr) {\n row[c.name] = (c.value as Uint8Array).subarray(16 * i, 16 * (i + 1))\n continue\n }\n \n row[c.name] = c.value[i]\n }\n rows[i] = row\n }\n \n return rows\n }\n}\n\n\nexport class DdbBool extends DdbObj<boolean> {\n constructor (value: boolean) {\n super({\n form: DdbForm.scalar,\n type: DdbType.bool,\n length: 1,\n value,\n })\n }\n}\n\nexport class DdbInt extends DdbObj<number> {\n constructor (value: number) {\n super({\n form: DdbForm.scalar,\n type: DdbType.int,\n length: 4,\n value\n })\n }\n}\n\nexport class DdbString extends DdbObj<string> {\n constructor (value: string) {\n super({\n form: DdbForm.scalar,\n type: DdbType.string,\n length: 0,\n value\n })\n }\n}\n\nexport class DdbLong extends DdbObj<bigint> {\n constructor (value: bigint) {\n super({\n form: DdbForm.scalar,\n type: DdbType.long,\n length: 8,\n value\n })\n }\n}\n\nexport class DdbDouble extends DdbObj<number> {\n constructor (value: number) {\n super({\n form: DdbForm.scalar,\n type: DdbType.double,\n length: 8,\n value\n })\n }\n}\n\nexport class DdbVectorInt extends DdbObj<Int32Array> {\n constructor (value: number[]) {\n super({\n form: DdbForm.vector,\n type: DdbType.int,\n length: 0,\n rows: value.length,\n cols: 1,\n value: Int32Array.from(value),\n })\n }\n}\n\nexport class DdbVectorString extends DdbObj<string[]> {\n constructor (value: string[]) {\n super({\n form: DdbForm.vector,\n type: DdbType.string,\n length: 0,\n rows: value.length,\n cols: 1,\n value\n })\n }\n}\n\nexport class DdbVectorDouble extends DdbObj<Float64Array> {\n constructor (value: number[]) {\n super({\n form: DdbForm.vector,\n type: DdbType.double,\n length: 0,\n rows: value.length,\n cols: 1,\n value: Float64Array.from(value)\n })\n }\n}\n\nexport class DdbVectorAny extends DdbObj {\n constructor (value: DdbObj<DdbValue>[]) {\n super({\n form: DdbForm.vector,\n type: DdbType.any,\n length: 0,\n rows: value.length,\n cols: 1,\n value\n })\n }\n}\n\nexport class DdbPair extends DdbObj<Int32Array> {\n constructor (l: number, r = -2147483648) {\n super({\n form: DdbForm.pair,\n type: DdbType.int,\n length: 0,\n rows: 2,\n cols: 1,\n value: Int32Array.of(l, r)\n })\n }\n}\n\nexport class DdbFunction extends DdbObj<DdbFunctionDefValue> {\n constructor (name: string, type: DdbFunctionType) {\n super({\n form: DdbForm.scalar,\n type: DdbType.functiondef,\n length: 0,\n value: { type, name }\n })\n }\n}\n\n\nexport class DDB {\n /** 当前的 session id (http 或 tcp) */\n sid = '0'\n \n /** utf-8 text decoder */\n dec = new TextDecoder('utf-8')\n \n enc = new TextEncoder()\n \n \n ws_url: string\n \n ws = null as WebSocket\n \n /** little endian (server) */\n le = true\n \n /** little endian (client) */\n static le_client = Boolean(\n new Uint8Array(\n Uint32Array.of(1).buffer\n )[0]\n )\n \n /** resolver, rejector, promise of last rpc */\n presolver (buf: Uint8Array) { }\n prejector (error: Error) { }\n presult = Promise.resolve(null) as Promise<Uint8Array>\n \n \n constructor (ws_url?: string) {\n if (!ws_url) {\n const url = new URL(location.href)\n \n const hostname = url.searchParams.get('hostname') || location.hostname\n \n const port = url.searchParams.get('port') || location.port\n \n ws_url = `${ location.protocol === 'https:' ? 'wss' : 'ws' }://${hostname}${ port ? `:${port}` : '' }/`\n }\n \n this.ws_url = ws_url\n }\n \n \n /** 连接到 DolphinDB Server */\n async connect (\n {\n ws_url = this.ws_url,\n login = true,\n username = 'admin',\n password = '123456',\n }: {\n /** 默认使用实例初始化时传入的 WebSocket 链接地址 */\n ws_url?: string\n \n /** 是否在建立连接后自动登录,默认 true */\n login?: boolean\n \n /** DolphinDB 登录用户名 */\n username?: string\n \n /** DolphinDB 登录密码 */\n password?: string\n } = { }\n ) {\n this.ws_url = ws_url\n \n if (this.ws?.readyState === WebSocket.OPEN)\n this.disconnect()\n \n let ws = new WebSocket(ws_url)\n \n // https://stackoverflow.com/questions/11821096/what-is-the-difference-between-an-arraybuffer-and-a-blob/39951543\n ws.binaryType = 'arraybuffer'\n \n this.ws = ws\n \n ws.addEventListener('open', ev => {\n console.log(`${this.ws_url} opened`)\n \n ws.send(\n `API ${this.sid} 8\\n` +\n 'connect\\n'\n )\n })\n \n ws.addEventListener('close', ev => {\n console.log(`${this.ws_url} closed with code = ${ev.code}, reason = '${ev.reason}'`)\n })\n \n ws.addEventListener('error', ev => {\n console.log(`${this.ws_url} errored`, ev)\n })\n \n // 为首个 connect 响应报文初始化 presult 链表头结点\n this.presult = new Promise((resolve, reject) => {\n this.presolver = resolve\n this.prejector = reject\n })\n \n ws.addEventListener('message', ({ data: buf }) => {\n try {\n this.presolver(\n this.parse_message(\n new Uint8Array(buf as ArrayBuffer)\n )\n )\n } catch (error) {\n this.prejector(error)\n }\n })\n \n await this.presult\n \n await this.eval(\n 'def pnode_run (nodes, func_name, args, add_node_alias = true) {\\n' +\n ' nargs = size(args)\\n' +\n ' func = funcByName(func_name)\\n' +\n ' \\n' +\n ' if (!nargs)\\n' +\n ' return pnodeRun(func, nodes, add_node_alias)\\n' +\n ' \\n' +\n ' args_partial = array(any, 1 + nargs, 1 + nargs)\\n' +\n ' args_partial[0] = func\\n' +\n ' args_partial[1:] = args\\n' +\n ' return pnodeRun(\\n' +\n ' unifiedCall(partial, args_partial),\\n' +\n ' nodes,\\n' +\n ' add_node_alias\\n' +\n ' )\\n' +\n '}\\n',\n { urgent: true }\n )\n \n if (login)\n await this.call('login', [username, password], { urgent: true })\n }\n \n \n disconnect () {\n this.ws?.close(1000)\n }\n \n \n /** rpc through websocket (function command) \n - type: API 类型: 'script' | 'function' | 'variable'\n - options:\n - urgent?: 决定 `行为标识` 那一行字符串的取值(只适用于 script 和 function)\n - vars?: type === 'variable' 时必传,variable 指令中待上传的变量名\n */\n async rpc <T extends DdbObj = DdbObj> (\n type: 'script' | 'function' | 'variable',\n {\n script,\n func,\n args = [ ],\n vars = [ ],\n urgent,\n }: {\n script?: string\n func?: string\n args?: (DdbObj | string | boolean)[]\n vars?: string[]\n urgent?: boolean\n }) {\n if (!this.ws)\n await this.connect()\n \n if (this.ws.readyState !== WebSocket.OPEN)\n throw new Error('ws 连接已断开')\n \n // 临界区:保证多个 rpc 并发时形成 promise 链\n // ddb 世界观:需要等待上一个 rpc 结果从 server 返回之后才能发起下一个调用 \n // 违反世界观可能造成: \n // 1. 并发多个请求只返回第一个结果(阻塞,需后续请求疏通)\n // 2. windows 下 ddb server 返回多个相同的结果\n \n const ptail = this.presult\n let presolver: (buf: Uint8Array) => void\n let prejector: (error: Error) => void\n \n const presult = this.presult = new Promise<Uint8Array>((resolve, reject) => {\n presolver = resolve\n prejector = reject\n })\n \n try {\n await ptail\n } catch { }\n \n this.presolver = presolver\n this.prejector = prejector\n // 临界区结束,只有一个 rpc 请求可以写 WebSocket\n \n if (urgent && type !== 'script' && type !== 'function')\n throw new Error('urgent 只适用于 script 和 funciton')\n \n this.to_ddbobjs(args)\n \n const command = this.enc.encode(\n (() => {\n switch (type) {\n case 'function':\n return 'function\\n' +\n `${func}\\n` +\n `${args.length}\\n` +\n `${Number(DDB.le_client)}\\n`\n \n case 'script':\n return 'script\\n' +\n script\n \n case 'variable':\n return 'variable\\n' +\n `${vars.join(',')}\\n` +\n `${vars.length}\\n` +\n `${Number(DDB.le_client)}\\n`\n }\n })()\n )\n \n const message = concat([\n this.enc.encode(\n `API ${this.sid} ${command.length}${ urgent ? ` / 1_1_8_8` : '' }\\n`\n ),\n command,\n ... args.map((arg: DdbObj) =>\n arg.pack()\n )\n ])\n \n this.ws.send(message)\n \n return DdbObj.parse(\n await presult, // data_buf\n this.le\n ) as T\n }\n \n \n /** eval script through websocket (script command) */\n async eval <T extends DdbObj> (\n /** 执行的脚本 */\n script: string,\n \n /** 执行选项 */\n {\n urgent\n }: {\n /** 紧急 flag,使用 urgent worker 处理,防止被其它作业阻塞 */\n urgent?: boolean\n } = { }\n ) {\n return this.rpc<T>('script', { script, urgent })\n }\n \n \n /** call function through websocket (function command) \n - func: 函数名\n - args?: `[ ]` 调用参数 (传入的原生 string 和 boolean 会被自动转换为 DdbObj<string> 和 DdbObj<boolean>)\n - options?: 调用选项\n - urgent?: 紧急 flag,使用 urgent worker 处理,防止被其它作业阻塞\n - node?: 设置结点 alias 时发送到集群中对应的结点执行 (使用 DolphinDB 中的 rpc 方法)\n - nodes?: 设置多个结点 alias 时发送到集群中对应的多个结点执行 (使用 DolphinDB 中的 pnodeRun 方法)\n - func_type?: 设置 node 参数时必传,需指定函数类型,其它情况下不传\n - add_node_alias?: 设置 nodes 参数时选传,其它情况不传\n */\n async call <T extends DdbObj> (\n func: string,\n args: (DdbObj | string | boolean)[] = [ ],\n {\n urgent,\n node,\n nodes,\n func_type,\n add_node_alias\n }: {\n urgent?: boolean\n node?: string\n nodes?: string[]\n func_type?: DdbFunctionType\n add_node_alias?: boolean\n } = { }\n ) {\n if (node) {\n if (typeof func_type === 'undefined')\n throw new Error('指定 node 时必须设置 func_type')\n \n args = [\n node,\n new DdbFunction(func, func_type),\n ...args\n ]\n func = 'rpc'\n }\n \n if (nodes) {\n args = [\n new DdbVectorString(nodes),\n func,\n new DdbVectorAny(\n this.to_ddbobjs(args)\n ),\n ... typeof add_node_alias === 'undefined' ? [ ] : [add_node_alias]\n ]\n func = 'pnode_run'\n }\n \n return this.rpc<T>('function', {\n func,\n args,\n urgent,\n })\n }\n \n \n /** upload variable through websocket (variable command) */\n async upload (\n /** 上传的变量名 */\n vars: string[],\n \n /** 上传的变量值 */\n args: (DdbObj | string | boolean)[]\n ) {\n if (!args.length || args.length !== vars.length)\n throw new Error('variable 指令参数为空或参数名为空,或数量不匹配')\n \n return this.rpc('variable', { vars, args })\n }\n \n \n /** 解析服务端响应报文,返回去掉 header 的 data buf */\n parse_message (buf: Uint8Array) {\n // '1166953221 1 1\\n'\n // 'OK\\n'\n // '\\x04\\x00\\x02\\x00\\x00\\x00'\n \n /** index of line feed 0 */\n const i_lf_0 = buf.indexOf(0x0a) // '\\n'\n \n const parts = this.dec.decode(\n buf.subarray(0, i_lf_0)\n ).split(' ')\n \n /** session id */\n const sid = parts[0]\n if (sid !== this.sid) {\n console.log(`sid 从 ${this.sid} 变为 ${sid}`)\n this.sid = sid\n }\n \n /** 返回对象的数量 */\n const n_obj = Number(parts[1])\n \n /** 大小端: 协议中大端为 0, 小端为 1 */\n this.le = Number(parts[2]) !== 0\n \n const i_ls_1 = i_lf_0 + 1\n const i_lf_1 = buf.indexOf(0x0a, i_ls_1) // '\\n'\n /** 'OK' 表示成功,其它文本表示失败 */\n const message = this.dec.decode(\n buf.subarray(i_ls_1, i_lf_1)\n )\n \n if (message !== 'OK')\n throw new Error(message)\n \n return buf.subarray(i_lf_1 + 1)\n }\n \n \n /** 自动转换 js string, boolean 为 DdbObj */\n to_ddbobj (value: DdbObj | string | boolean): DdbObj {\n if (value instanceof DdbObj)\n return value\n \n const type = typeof value\n \n switch (type) {\n case 'string':\n return new DdbString(value as string)\n \n case 'boolean':\n return new DdbBool(value as boolean)\n \n default: \n throw new Error(`不能自动转换 ${type} 至 DdbObj`)\n }\n }\n \n \n /** 转换 js 数组为 DdbObj[] (in place, 会修改原数组) */\n to_ddbobjs (values: any[]) {\n for (let i = 0; i < values.length; i++)\n values[i] = this.to_ddbobj(values[i])\n return values as DdbObj<DdbValue>[]\n }\n}\n\nexport let ddb = (window as any).ddb = new DDB()\n\nexport default ddb\n"]}
|
package/ddb.svg
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg id="图层_1" data-name="图层 1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 396.19 92.06"><defs><style>.cls-1{fill:none;}.cls-2{fill:url(#未命名的渐变);}.cls-3{clip-path:url(#clip-path);}.cls-4{isolation:isolate;opacity:0.75;}.cls-5{fill:#fff;}.cls-6{fill:url(#未命名的渐变_2);}.cls-7{fill:url(#未命名的渐变_3);}.cls-8{fill:url(#未命名的渐变_8);}.cls-9{fill:url(#未命名的渐变_9);}</style><radialGradient id="未命名的渐变" cx="1046.73" cy="997.18" r="74.74" gradientTransform="matrix(1, 0, 0.2, 1, -1246.49, -998.72)" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#00a0cd"/><stop offset="0.42" stop-color="#009199"/><stop offset="1" stop-color="#1e247e"/></radialGradient><clipPath id="clip-path" transform="translate(-0.14 -0.19)"><path class="cls-1" d="M35.49,0h-30L0,76.38H30c12.31,0,23-10.28,23.94-23L56.14,23C57,10.28,47.8,0,35.49,0Z"/></clipPath><radialGradient id="未命名的渐变_2" cx="2428.16" cy="1112.39" r="1013.15" gradientTransform="translate(-0.14 -998.72)" xlink:href="#未命名的渐变"/><radialGradient id="未命名的渐变_3" cx="2428.16" cy="1112.39" r="1013.14" gradientTransform="translate(-0.14 -998.72)" xlink:href="#未命名的渐变"/><radialGradient id="未命名的渐变_8" cx="2178.35" cy="1112.39" r="1013.17" gradientTransform="matrix(1.02, 0, 0.22, 1, -1297.62, -998.72)" xlink:href="#未命名的渐变"/><radialGradient id="未命名的渐变_9" cx="2178.35" cy="1112.39" r="1013.18" gradientTransform="matrix(1.02, 0, 0.22, 1, -1297.62, -998.72)" xlink:href="#未命名的渐变"/></defs><path class="cls-2" d="M35.46.19H5.58l-5.44,76H30c12.25,0,22.92-10.23,23.82-22.85L56,23.07C56.91,10.42,47.71.19,35.46.19Z" transform="translate(-0.14 -0.19)"/><g class="cls-3"><image class="cls-4" width="547" height="598" transform="matrix(0.1, 0, 0.02, 0.1, 1.9, 25.62)" xlink:href="data:image/png;base64,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"/></g><path class="cls-5" d="M48.18,39.14c-.87-3.43,7.71-1.87,4.42-4.26s-8.39.73-14.38-2.28-16.4-6.54-21.14-6.29-3.14,3.39-6.41,3.24S7.46,31,7.46,31c0,.89,4.13,1.62,4.59,1.68s9.55,1.9,12.77,8.58a18.7,18.7,0,0,0,7.85,8.64c.18.09,0-.25-.1-.49a57.48,57.48,0,0,1-2.39-6.07c-.05-.13.07-.15.14-.13A29.9,29.9,0,0,1,43,51.15c2,2.09,6.19,9.34,4.12,15.36a15.5,15.5,0,0,1-7.5,8.22A25.19,25.19,0,0,0,54,54.92c-.07-.54-.15-1.08-.24-1.61C52.52,46.62,49.06,42.56,48.18,39.14Z" transform="translate(-0.14 -0.19)"/><path class="cls-5" d="M54,54.92" transform="translate(-0.14 -0.19)"/><path class="cls-5" d="M39.65,74.73a22.59,22.59,0,0,1-9.48,2.1A20.3,20.3,0,0,0,39.65,74.73Z" transform="translate(-0.14 -0.19)"/><path class="cls-6" d="M84.11,23.43l1.13.17,1.2-.17q11,0,15.88,9a21.72,21.72,0,0,1,1.52,4.79q.57,3.59-.93,22.84A20,20,0,0,1,98,69.54a17.15,17.15,0,0,1-12.3,5H81.06q-8,0-13.16-6.83A18.58,18.58,0,0,1,65,60.4q-.42-2.82.91-21.91Q67.66,30,73.54,26.36A20.63,20.63,0,0,1,84.11,23.43ZM75,60.09c.5,3.22,2.78,4.82,6.84,4.82h2.62q8.74,0,9-10.09c.67-9.62.91-15.11.69-16.47L94,37.41c-.44-2.78-2.94-4.17-7.52-4.17H85.36q-6.87,0-8.78,4.5-1.29,2.53-1.77,19.57C74.59,57.31,74.66,58.24,75,60.09Z" transform="translate(-0.14 -0.19)"/><path class="cls-7" d="M116.77,1q5.31,0,7.5,4.29l.45,1.88v.16l-2.6,50.35.13,1.88a5.86,5.86,0,0,0,4.26,5.07q7.72,0,9.16,2.86a6.77,6.77,0,0,1,1.5,3.63q.09,3.48-.39,3.48h-6.5q-13,0-17-10.59l-.8-3-.3-1.92q-.3-2,.88-21.83l2.09-36.08.14-.16Z" transform="translate(-0.14 -0.19)"/><path class="cls-6" d="M147.25,23.47q4.2,0,6.35,2.25h.13a15.3,15.3,0,0,1,8.51-2.25h.42q9.69,0,12.38,2.58a16.06,16.06,0,0,1,6.89,11.07q.48,3.1-1.06,22Q177.51,72.8,162.59,72.8h-9.73l-1.2,19.45h-2a6.53,6.53,0,0,1-6.36-4.37l-.38-1.35-.11-.73q-.12-3.6,3.42-62.33Zm6.22,39.89h.19l4.68.12H163q7.56,0,8.77-8.21.87-13.86.76-17.13l-.09-.61a5.18,5.18,0,0,0-3.68-4.45,14.57,14.57,0,0,0-3.36-.33h-.29q-8.34,0-9.92,5.56Q154.46,41.91,153.47,63.36Z" transform="translate(-0.14 -0.19)"/><path class="cls-7" d="M193.38,1a7,7,0,0,1,6.84,4.29l.65,2L200,24l.19.13a20.1,20.1,0,0,1,8-1.39h.17q13.38,0,17.8,8.54a21.2,21.2,0,0,1,1.54,5l.12.77q.48,3.06-.74,19.62l-1,17.9h-2.7q-5,0-6.62-6l-.2-1.27q1.56-26.36,1.39-29.58-.81-5.24-7.64-5.24-7.83,0-9.43,3.48-2.1,1.92-2.52,16.3L197.07,74.4l-.14.17h-2.54q-5,0-6.61-6l-.15-.94L191.32,1Z" transform="translate(-0.14 -0.19)"/><path class="cls-6" d="M240,23.35a7.15,7.15,0,0,1,6.19,2.78A6.61,6.61,0,0,1,247.43,29l.11.74q.18,1-2.33,44.7l-.14.17H244q-7.2,0-8.17-6.26.12-8.13,2.46-44.95ZM239.88,1h2.37q5.88.73,6.66,5.76l.15.94q-.09,7.44-.56,7.44h-.94q-5.43,0-7.44-3.72L239.28,9C239.28,3.68,239.52,1,239.88,1Z" transform="translate(-0.14 -0.19)"/><path class="cls-6" d="M261.59,23.6h1.22a7.35,7.35,0,0,1,4.81,2,16.31,16.31,0,0,1,8.23-2h4.81q9,0,14.16,7.92A19,19,0,0,1,296.66,37q.54,3.48-1.24,30c-.13,4.71-.36,7.25-.69,7.6h-1.07a7.91,7.91,0,0,1-7.31-3.89l-.5-1.38L285.66,68,287,39.9l-.18-2.16A4.37,4.37,0,0,0,284,34a16.36,16.36,0,0,0-6.2-.94q-7.92,0-9.34,7.93l-1.94,33.4-.14.17h-1.23q-5.07,0-7.26-3.89l-.55-1.38-.12-.78q-.09-2.7,2.36-44.59A4.92,4.92,0,0,1,261.59,23.6Z" transform="translate(-0.14 -0.19)"/><path class="cls-8" d="M357.53.71h20.56q13.08,0,17.35,10.84a11.26,11.26,0,0,1,.89,4.62l-.67,12.74c-.14,2.73-1.88,5.65-5.2,8.79q4.5,4.17,4.25,8.74l-.63,11.63q-.48,9-10.08,14.68a20.48,20.48,0,0,1-9.1,2.07H353.52l-.32-.33L357.2,1Zm7.62,42.39L364,64.92h11.1q6.45,0,8.63-5.9l.53-9.69q.27-4.9-7-6.06l-2.1-.17ZM367,10.6l-1.23,22.6h9.16q8.76-.36,10.52-4.9l.26-1.61q.69-12.47-.3-12.46c-1.28-2.42-4-3.63-8.12-3.63Z" transform="translate(-0.14 -0.19)"/><path class="cls-9" d="M318,.71h12.57q13.77,0,17.71,10.51a24.84,24.84,0,0,1,1,8.91l-1.84,34q-.73,14.61-10.64,18.81a23.31,23.31,0,0,1-9.43,1.9H306.48l-.32-.33,4-73.29.18-.16V.89Zm1.91,9.89L317,64.92h10.9q6.27,0,8.11-4.79a14.94,14.94,0,0,0,1.11-5.56l1.76-32.5q.45-8.13-2.7-10.19c-1.44-.85-4.42-1.28-8.92-1.28Z" transform="translate(-0.14 -0.19)"/></svg>
|