@xbbg/core 1.2.1 → 1.2.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/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/errors.ts","../src/arrow-zero-copy.ts","../src/dates.ts","../src/native/platform-map.ts","../src/native/resolve-native.ts","../src/index.ts"],"names":["Field","Schema","makeData","Struct","Table","RecordBatch","Bool","Binary","DateDay","DateMillisecond","Float32","Float64","Int8","Int16","Int32","Int64","LargeBinary","LargeUtf8","Null","TimeMillisecond","TimeSecond","TimeMicrosecond","TimeNanosecond","TimestampMillisecond","TimestampNanosecond","TimestampSecond","TimestampMicrosecond","Uint8","Uint16","Uint32","Uint64","Utf8","dt","createRequire","fs","path","nodeRequire","tableFromIPC","json"],"mappings":"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","file":"index.js","sourcesContent":["export interface BlpRequestErrorOptions {\n readonly service?: string;\n readonly operation?: string;\n readonly request_id?: string;\n readonly code?: string | number;\n}\n\nexport interface BlpValidationErrorOptions {\n readonly element?: string;\n readonly suggestion?: string;\n}\n\nexport class BlpError extends Error {\n public constructor(message: string) {\n super(message);\n this.name = new.target.name;\n }\n}\n\nexport class BlpSessionError extends BlpError {}\n\nexport class BlpRequestError extends BlpError {\n public readonly service?: string;\n public readonly operation?: string;\n public readonly request_id?: string;\n public readonly code?: string | number;\n\n public constructor(message: string, options: BlpRequestErrorOptions = {}) {\n super(message);\n this.service = options.service;\n this.operation = options.operation;\n this.request_id = options.request_id;\n this.code = options.code;\n }\n}\n\nexport class BlpValidationError extends BlpError {\n public readonly element?: string;\n public readonly suggestion?: string;\n\n public constructor(message: string, options: BlpValidationErrorOptions = {}) {\n super(message);\n this.element = options.element;\n this.suggestion = options.suggestion;\n }\n}\n\nexport class BlpTimeoutError extends BlpError {}\n\nexport class BlpInternalError extends BlpError {}\n\nexport function wrapError(napiError: unknown): BlpError {\n if (napiError instanceof BlpError) {\n return napiError;\n }\n const msg =\n napiError instanceof Error\n ? napiError.message\n : typeof napiError === 'string'\n ? napiError\n : '';\n\n // Session errors\n if (\n msg.includes('Session start failed') ||\n msg.includes('session start failed') ||\n msg.includes('Failed to start session') ||\n msg.includes('Failed to open service') ||\n msg.includes('failed to spawn worker') ||\n msg.includes('connect event failed')\n ) {\n return new BlpSessionError(msg);\n }\n\n // Request errors\n if (msg.includes('Request failed') || msg.includes('Subscription failed')) {\n const options: BlpRequestErrorOptions = parseRequestOptions(msg);\n return new BlpRequestError(msg, options);\n }\n\n // Validation errors\n if (\n msg.includes('Invalid argument') ||\n msg.includes('Configuration error') ||\n msg.includes('Operation not found') ||\n msg.includes('Schema element not found') ||\n msg.includes('Schema type mismatch') ||\n msg.includes('Unsupported schema') ||\n msg.includes('invalid extractor') ||\n msg.includes('(did you mean')\n ) {\n const options: BlpValidationErrorOptions = parseValidationOptions(msg);\n return new BlpValidationError(msg, options);\n }\n\n // Timeout errors\n if (msg.includes('Request timed out')) {\n return new BlpTimeoutError(msg);\n }\n\n // Internal errors\n if (\n msg.includes('Internal error') ||\n msg.includes('Channel closed') ||\n msg.includes('Stream buffer full') ||\n msg.includes('Request was cancelled')\n ) {\n return new BlpInternalError(msg);\n }\n\n return new BlpError(msg);\n}\n\nfunction parseRequestOptions(msg: string): BlpRequestErrorOptions {\n const options: {\n service?: string;\n operation?: string;\n request_id?: string;\n code?: string | number;\n } = {};\n const serviceOpMatch = /on ([^:]+)::([^ (]+)/.exec(msg);\n if (serviceOpMatch !== null) {\n options.service = serviceOpMatch[1];\n options.operation = serviceOpMatch[2];\n }\n const requestIdMatch = /\\[request_id=([^\\]]+)\\]/.exec(msg);\n if (requestIdMatch !== null) {\n options.request_id = requestIdMatch[1];\n }\n return options;\n}\n\nfunction parseValidationOptions(msg: string): BlpValidationErrorOptions {\n const options: { element?: string; suggestion?: string } = {};\n const suggestionMatch = /\\(did you mean '([^']+)'\\?\\)/.exec(msg);\n if (suggestionMatch !== null) {\n options.suggestion = suggestionMatch[1];\n }\n return options;\n}\n","import {\n Binary,\n Bool,\n DateDay,\n DateMillisecond,\n Field,\n Float32,\n Float64,\n Int8,\n Int16,\n Int32,\n Int64,\n LargeBinary,\n LargeUtf8,\n Null,\n RecordBatch,\n Schema,\n Struct,\n Table,\n TimeMillisecond,\n TimeMicrosecond,\n TimeNanosecond,\n TimeSecond,\n TimestampMillisecond,\n TimestampMicrosecond,\n TimestampNanosecond,\n TimestampSecond,\n Uint8,\n Uint16,\n Uint32,\n Uint64,\n Utf8,\n makeData,\n type Data,\n type DataType,\n} from 'apache-arrow';\n\nimport type { NativeArrowColumn, NativeArrowZeroCopyBatch } from './napi';\n\nconst NATIVE_ARROW_BUFFERS = Symbol('@xbbg/nativeArrowBuffers');\n\ntype TypedArrayConstructor<T extends ArrayBufferView> = new (\n buffer: ArrayBufferLike,\n byteOffset: number,\n length: number,\n) => T;\n\nexport function tableFromNativeArrowBatch(batch: NativeArrowZeroCopyBatch): Table {\n const retainedBuffers: Buffer[] = [];\n const fields = batch.columns.map((column) => {\n const type = arrowType(column);\n return new Field(column.name, type, column.nullable);\n });\n const children = batch.columns.map((column) => dataFromColumn(column, retainedBuffers));\n\n const schema = new Schema(fields);\n const structData = makeData({\n type: new Struct(fields),\n length: batch.numRows,\n children,\n });\n const table = new Table(schema, new RecordBatch(schema, structData));\n\n // Keep the original Node Buffer views alive. Numeric Arrow vectors retain typed\n // views over the same backing ArrayBuffers, but keeping these Buffer objects on\n // the Table makes the NAPI external-buffer lifetime explicit.\n Object.defineProperty(table, NATIVE_ARROW_BUFFERS, {\n value: retainedBuffers,\n enumerable: false,\n });\n\n return table;\n}\n\nfunction dataFromColumn(\n column: NativeArrowColumn,\n retainedBuffers: Buffer[],\n): Data {\n const nullBitmap = optionalUint8View(column.nullBitmap, retainedBuffers);\n switch (column.type) {\n case 'bool':\n return makeData({\n type: new Bool(),\n length: column.length,\n nullCount: column.nullCount,\n nullBitmap,\n data: requiredUint8View(column, retainedBuffers, Math.ceil(column.length / 8)),\n });\n case 'binary':\n return makeData({\n type: new Binary(),\n length: column.length,\n nullCount: column.nullCount,\n nullBitmap,\n valueOffsets: requiredOffsets(column, retainedBuffers),\n data: requiredUint8View(column, retainedBuffers),\n });\n case 'date32':\n return scalarData(column, retainedBuffers, nullBitmap, new DateDay(), Int32Array);\n case 'date64':\n return scalarData(column, retainedBuffers, nullBitmap, new DateMillisecond(), BigInt64Array);\n case 'float32':\n return scalarData(column, retainedBuffers, nullBitmap, new Float32(), Float32Array);\n case 'float64':\n return scalarData(column, retainedBuffers, nullBitmap, new Float64(), Float64Array);\n case 'int8':\n return scalarData(column, retainedBuffers, nullBitmap, new Int8(), Int8Array);\n case 'int16':\n return scalarData(column, retainedBuffers, nullBitmap, new Int16(), Int16Array);\n case 'int32':\n return scalarData(column, retainedBuffers, nullBitmap, new Int32(), Int32Array);\n case 'int64':\n return scalarData(column, retainedBuffers, nullBitmap, new Int64(), BigInt64Array);\n case 'large_binary':\n return makeData({\n type: new LargeBinary(),\n length: column.length,\n nullCount: column.nullCount,\n nullBitmap,\n valueOffsets: requiredLargeOffsets(column, retainedBuffers),\n data: requiredUint8View(column, retainedBuffers),\n });\n case 'large_utf8':\n return makeData({\n type: new LargeUtf8(),\n length: column.length,\n nullCount: column.nullCount,\n nullBitmap,\n valueOffsets: requiredLargeOffsets(column, retainedBuffers),\n data: requiredUint8View(column, retainedBuffers),\n });\n case 'null':\n return makeData({\n type: new Null(),\n length: column.length,\n });\n case 'time32_ms':\n return scalarData(column, retainedBuffers, nullBitmap, new TimeMillisecond(), Int32Array);\n case 'time32_s':\n return scalarData(column, retainedBuffers, nullBitmap, new TimeSecond(), Int32Array);\n case 'time64_us':\n return scalarData(column, retainedBuffers, nullBitmap, new TimeMicrosecond(), BigInt64Array);\n case 'time64_ns':\n return scalarData(column, retainedBuffers, nullBitmap, new TimeNanosecond(), BigInt64Array);\n case 'timestamp_ms':\n return scalarData(\n column,\n retainedBuffers,\n nullBitmap,\n new TimestampMillisecond(column.timezone),\n BigInt64Array,\n );\n case 'timestamp_ns':\n return scalarData(\n column,\n retainedBuffers,\n nullBitmap,\n new TimestampNanosecond(column.timezone),\n BigInt64Array,\n );\n case 'timestamp_s':\n return scalarData(\n column,\n retainedBuffers,\n nullBitmap,\n new TimestampSecond(column.timezone),\n BigInt64Array,\n );\n case 'timestamp_us':\n return scalarData(\n column,\n retainedBuffers,\n nullBitmap,\n new TimestampMicrosecond(column.timezone),\n BigInt64Array,\n );\n case 'uint8':\n return scalarData(column, retainedBuffers, nullBitmap, new Uint8(), Uint8Array);\n case 'uint16':\n return scalarData(column, retainedBuffers, nullBitmap, new Uint16(), Uint16Array);\n case 'uint32':\n return scalarData(column, retainedBuffers, nullBitmap, new Uint32(), Uint32Array);\n case 'uint64':\n return scalarData(column, retainedBuffers, nullBitmap, new Uint64(), BigUint64Array);\n case 'utf8':\n return makeData({\n type: new Utf8(),\n length: column.length,\n nullCount: column.nullCount,\n nullBitmap,\n valueOffsets: requiredOffsets(column, retainedBuffers),\n data: requiredUint8View(column, retainedBuffers),\n });\n }\n}\n\nfunction arrowType(column: NativeArrowColumn): DataType {\n switch (column.type) {\n case 'bool':\n return new Bool();\n case 'binary':\n return new Binary();\n case 'date32':\n return new DateDay();\n case 'date64':\n return new DateMillisecond();\n case 'float32':\n return new Float32();\n case 'float64':\n return new Float64();\n case 'int8':\n return new Int8();\n case 'int16':\n return new Int16();\n case 'int32':\n return new Int32();\n case 'int64':\n return new Int64();\n case 'large_binary':\n return new LargeBinary();\n case 'large_utf8':\n return new LargeUtf8();\n case 'null':\n return new Null();\n case 'time32_ms':\n return new TimeMillisecond();\n case 'time32_s':\n return new TimeSecond();\n case 'time64_us':\n return new TimeMicrosecond();\n case 'time64_ns':\n return new TimeNanosecond();\n case 'timestamp_ms':\n return new TimestampMillisecond(column.timezone);\n case 'timestamp_ns':\n return new TimestampNanosecond(column.timezone);\n case 'timestamp_s':\n return new TimestampSecond(column.timezone);\n case 'timestamp_us':\n return new TimestampMicrosecond(column.timezone);\n case 'uint8':\n return new Uint8();\n case 'uint16':\n return new Uint16();\n case 'uint32':\n return new Uint32();\n case 'uint64':\n return new Uint64();\n case 'utf8':\n return new Utf8();\n }\n}\n\nfunction scalarData<T extends DataType & { TArray: ArrayBufferView }>(\n column: NativeArrowColumn,\n retainedBuffers: Buffer[],\n nullBitmap: Uint8Array | undefined,\n type: T,\n ctor: TypedArrayConstructor<T['TArray']>,\n): Data<T> {\n return makeData({\n type,\n length: column.length,\n nullCount: column.nullCount,\n nullBitmap,\n data: requiredTypedView(column, ctor, retainedBuffers),\n } as never) as Data<T>;\n}\n\nfunction requiredTypedView<T extends ArrayBufferView>(\n column: NativeArrowColumn,\n ctor: TypedArrayConstructor<T>,\n retainedBuffers: Buffer[],\n): T {\n const buffer = requireBuffer(column, 'data');\n retainedBuffers.push(buffer);\n return new ctor(buffer.buffer, buffer.byteOffset, column.length);\n}\n\nfunction requiredOffsets(\n column: NativeArrowColumn,\n retainedBuffers: Buffer[],\n): Int32Array {\n const buffer = requireBuffer(column, 'offsets');\n retainedBuffers.push(buffer);\n return new Int32Array(buffer.buffer, buffer.byteOffset, column.length + 1);\n}\n\nfunction requiredLargeOffsets(\n column: NativeArrowColumn,\n retainedBuffers: Buffer[],\n): BigInt64Array {\n const buffer = requireBuffer(column, 'offsets');\n retainedBuffers.push(buffer);\n return new BigInt64Array(buffer.buffer, buffer.byteOffset, column.length + 1);\n}\n\nfunction requiredUint8View(\n column: NativeArrowColumn,\n retainedBuffers: Buffer[],\n byteLength?: number,\n): Uint8Array {\n const buffer = requireBuffer(column, 'data');\n retainedBuffers.push(buffer);\n return new Uint8Array(buffer.buffer, buffer.byteOffset, byteLength ?? buffer.byteLength);\n}\n\nfunction optionalUint8View(\n buffer: Buffer | undefined,\n retainedBuffers: Buffer[],\n): Uint8Array | undefined {\n if (buffer === undefined) {\n return undefined;\n }\n retainedBuffers.push(buffer);\n return new Uint8Array(buffer.buffer, buffer.byteOffset, buffer.byteLength);\n}\n\nfunction requireBuffer(\n column: NativeArrowColumn,\n property: 'data' | 'offsets',\n): Buffer {\n const buffer = column[property];\n if (buffer === undefined) {\n throw new Error(`native Arrow column ${column.name} is missing ${property} buffer`);\n }\n return buffer;\n}\n","/**\n * Date / datetime normalization helpers (issue #317).\n *\n * These helpers convert user-supplied date-like values into the wire formats\n * the Bloomberg engine expects:\n *\n * - {@link formatDate} -> Bloomberg-native ``YYYYMMDD`` (used by historical\n * requests, override fields, recipe inputs).\n * - {@link formatDateTime} -> RFC 3339 / ISO 8601 with optional offset (used\n * by intraday requests).\n *\n * They live in a dedicated module so the public surface in ``index.ts`` can\n * be tested without dragging in the native NAPI addon.\n */\n\nimport type { DateLike, DateTimeLike } from './types';\n\nconst ISO_DATE_RE = /^\\d{4}[-/]\\d{2}[-/]\\d{2}$/;\nconst BBG_DATE_RE = /^\\d{8}$/;\n// Whole-string ambiguous (e.g. \"01/17/2023\") OR ambiguous prefix in a\n// datetime string (e.g. \"01/17/2023 10:30\" / \"01/17/2023T10:30\"). Year-leading\n// ISO is not flagged because ISO_DATE_RE matches it explicitly.\nconst AMBIGUOUS_DATE_RE = /^\\d{1,2}[-/]\\d{1,2}[-/]\\d{2,4}([T \\D]|$)/;\n\nexport function hasToJSDate(value: unknown): value is { toJSDate: () => Date } {\n return (\n typeof value === 'object' &&\n value !== null &&\n 'toJSDate' in value &&\n typeof (value as { toJSDate?: unknown }).toJSDate === 'function'\n );\n}\n\nfunction rejectAmbiguousString(value: string): void {\n if (AMBIGUOUS_DATE_RE.test(value) && !ISO_DATE_RE.test(value.trim())) {\n throw new TypeError(\n `Ambiguous date format ${JSON.stringify(value)}: month/day order cannot be inferred. ` +\n `Use ISO 8601 (YYYY-MM-DD), Bloomberg-native (YYYYMMDD), or pass a Date / Luxon DateTime.`,\n );\n }\n}\n\nfunction dateLikeToJSDate(value: DateLike): Date {\n if (value instanceof Date) {\n return value;\n }\n if (typeof value === 'number') {\n return new Date(value);\n }\n if (hasToJSDate(value)) {\n return value.toJSDate();\n }\n if (typeof value === 'string') {\n const text = value.trim();\n rejectAmbiguousString(text);\n if (BBG_DATE_RE.test(text)) {\n const year = Number(text.slice(0, 4));\n const month = Number(text.slice(4, 6)) - 1;\n const day = Number(text.slice(6, 8));\n const dt = new Date(Date.UTC(year, month, day));\n if (Number.isNaN(dt.getTime())) {\n throw new TypeError(`Invalid Bloomberg-native date ${JSON.stringify(value)}`);\n }\n return dt;\n }\n // Replace the first separating space with 'T' so \"2023-01-17 10:30\" parses.\n const normalized = text.replace(' ', 'T');\n const dt = new Date(normalized);\n if (Number.isNaN(dt.getTime())) {\n throw new TypeError(\n `Cannot parse ${JSON.stringify(value)} as a date. Expected ISO 8601, ` +\n `Bloomberg-native YYYYMMDD, Date, epoch ms, or Luxon DateTime.`,\n );\n }\n return dt;\n }\n throw new TypeError(\n `Cannot convert ${typeof value} value ${String(value)} to a Date.`,\n );\n}\n\n/**\n * Format a date-like value to ``YYYYMMDD`` (Bloomberg-native).\n *\n * Accepts ``Date``, ISO 8601 / Bloomberg-native strings, epoch ms, and any\n * duck-typed Luxon-style ``{ toJSDate(): Date }``. Strict on ambiguous formats.\n */\nexport function formatDate(value: DateLike | undefined | null): string | undefined {\n if (value === undefined || value === null) {\n return undefined;\n }\n if (typeof value === 'string') {\n const text = value.trim();\n if (text.length === 0) {\n return undefined;\n }\n if (BBG_DATE_RE.test(text)) {\n return text;\n }\n rejectAmbiguousString(text);\n if (ISO_DATE_RE.test(text)) {\n return text.replace(/[-/]/g, '');\n }\n }\n const date = dateLikeToJSDate(value);\n const y = String(date.getUTCFullYear()).padStart(4, '0');\n const m = String(date.getUTCMonth() + 1).padStart(2, '0');\n const d = String(date.getUTCDate()).padStart(2, '0');\n return `${y}${m}${d}`;\n}\n\n/**\n * Format a datetime-like value to RFC 3339 (ISO 8601 with optional offset).\n *\n * Naive ISO strings without a tz suffix are returned as-is so the Rust engine\n * can apply the caller's ``request_tz``. Anything else (Date, epoch ms, Luxon\n * DateTime, or ISO with explicit tz) is converted to a tz-bearing ISO string.\n */\nexport function formatDateTime(\n value: DateTimeLike | undefined | null,\n): string | undefined {\n if (value === undefined || value === null) {\n return undefined;\n }\n if (typeof value === 'string') {\n const text = value.trim();\n if (text.length === 0) {\n return undefined;\n }\n rejectAmbiguousString(text);\n if (BBG_DATE_RE.test(text)) {\n return `${text.slice(0, 4)}-${text.slice(4, 6)}-${text.slice(6, 8)}T00:00:00`;\n }\n // Preserve user-supplied naive strings; the Rust engine interprets them\n // according to ``request_tz``.\n return text.replace(' ', 'T');\n }\n const date = dateLikeToJSDate(value);\n return date.toISOString();\n}\n","export const platformPackages = Object.freeze({\n 'darwin-arm64': '@xbbg/core-darwin-arm64',\n 'linux-x64': '@xbbg/core-linux-x64',\n 'win32-x64': '@xbbg/core-win32-x64',\n} as const);\n\nexport type PlatformKey = keyof typeof platformPackages;\n\nexport function platformKey(\n platform: NodeJS.Platform = process.platform,\n arch: string = process.arch,\n): string {\n return `${platform}-${arch}`;\n}\n","import fs from 'node:fs';\nimport path from 'node:path';\nimport { createRequire } from 'node:module';\n\nimport { platformKey, platformPackages } from './platform-map';\n\nconst nodeRequire = createRequire(__filename);\n\ninterface NativePackageResolution {\n readonly binaryPath: string;\n}\n\nexport interface NativeAddonResolution {\n readonly key: string;\n readonly packageName: string | null;\n readonly binaryPath: string | null;\n}\n\nexport interface NativeResolverOptions {\n readonly key: string;\n readonly packageName: string | null;\n readonly repoRoot: string;\n readonly requirePackage: (id: string) => unknown;\n readonly exists: (target: string) => boolean;\n}\n\nfunction exists(target: string): boolean {\n try {\n fs.accessSync(target);\n return true;\n } catch {\n return false;\n }\n}\n\nfunction isResolutionObject(value: unknown): value is NativePackageResolution {\n return typeof value === 'object' && value !== null && !Array.isArray(value);\n}\n\nfunction validateNativePackage(packageName: string, resolved: unknown): NativePackageResolution {\n if (!isResolutionObject(resolved)) {\n throw new Error(`Invalid native package ${packageName}: expected an object with binaryPath`);\n }\n if (!('binaryPath' in resolved)) {\n throw new Error(`Invalid native package ${packageName}: missing binaryPath`);\n }\n if (typeof resolved.binaryPath !== 'string') {\n throw new Error(`Invalid native package ${packageName}: binaryPath must be a string`);\n }\n return resolved;\n}\n\nfunction localPackageIndex(repoRoot: string, packageName: string): string {\n const dirName = packageName.replace('@xbbg/', 'xbbg-');\n return path.join(repoRoot, 'packages', dirName, 'index.js');\n}\n\nfunction isOptionalPackageMissing(err: unknown, packageName: string): boolean {\n if (!(err instanceof Error)) {\n return false;\n }\n const code = 'code' in err ? (err as { readonly code?: unknown }).code : undefined;\n if (code !== 'MODULE_NOT_FOUND') {\n return false;\n }\n return (\n err.message.includes(`Cannot find module '${packageName}'`) ||\n err.message.includes(`Cannot find module \"${packageName}\"`) ||\n err.message.includes(`Cannot find package '${packageName}'`) ||\n err.message.includes(`Cannot find package \"${packageName}\"`)\n );\n}\n\nfunction resolveInstalledPackage(\n packageName: string,\n requirePackage: (id: string) => unknown,\n existsFile: (target: string) => boolean,\n): NativePackageResolution | null {\n try {\n const resolved = validateNativePackage(packageName, requirePackage(packageName));\n if (!existsFile(resolved.binaryPath)) {\n throw new Error(\n `Invalid native package ${packageName}: binaryPath does not exist: ${resolved.binaryPath}`,\n );\n }\n return resolved;\n } catch (err) {\n if (isOptionalPackageMissing(err, packageName)) {\n return null;\n }\n throw err;\n }\n}\n\nfunction resolveLocalPackage(\n repoRoot: string,\n packageName: string,\n requirePackage: (id: string) => unknown,\n existsFile: (target: string) => boolean,\n): NativePackageResolution | null {\n const localIndex = localPackageIndex(repoRoot, packageName);\n if (!existsFile(localIndex)) {\n return null;\n }\n\n const resolved = validateNativePackage(packageName, requirePackage(localIndex));\n if (!existsFile(resolved.binaryPath)) {\n throw new Error(\n `Invalid native package ${packageName}: binaryPath does not exist: ${resolved.binaryPath}`,\n );\n }\n return resolved;\n}\n\nexport function resolveNativeAddonCore(options: NativeResolverOptions): NativeAddonResolution {\n const { key, packageName, repoRoot, requirePackage, exists: existsFile } = options;\n if (packageName === null) {\n return { key, packageName: null, binaryPath: null };\n }\n\n const installed = resolveInstalledPackage(packageName, requirePackage, existsFile);\n if (installed !== null) {\n return { key, packageName, binaryPath: installed.binaryPath };\n }\n\n const local = resolveLocalPackage(repoRoot, packageName, requirePackage, existsFile);\n if (local !== null) {\n return { key, packageName, binaryPath: local.binaryPath };\n }\n\n return { key, packageName, binaryPath: null };\n}\n\nexport function resolveNativeAddon(repoRoot: string): NativeAddonResolution {\n const key = platformKey();\n const packageName = (platformPackages as Readonly<Record<string, string>>)[key] ?? null;\n return resolveNativeAddonCore({\n key,\n packageName,\n repoRoot,\n requirePackage: (id: string): unknown => nodeRequire(id) as unknown,\n exists,\n });\n}\n","import fs from 'node:fs';\nimport path from 'node:path';\nimport { createRequire } from 'node:module';\nimport { tableFromIPC, type Table } from 'apache-arrow';\n\nimport {\n BlpError,\n BlpInternalError,\n BlpRequestError,\n BlpSessionError,\n BlpTimeoutError,\n BlpValidationError,\n wrapError,\n} from './errors';\nimport { tableFromNativeArrowBatch } from './arrow-zero-copy';\n// Date / datetime helpers (#317): isolated module so they can be tested\n// without loading the native NAPI addon. Re-exported as public API below.\nimport { formatDate, formatDateTime, hasToJSDate } from './dates';\nimport { resolveNativeAddon } from './native/resolve-native';\nimport type {\n ActiveCdxOptions,\n AuthConfig,\n BackendKind,\n BdhOptions,\n BdibOptions,\n BdpOptions,\n BdtickOptions,\n BeqsOptions,\n BfldsOptions,\n BlkpOptions,\n BqlOptions,\n BqrOptions,\n BsrchOptions,\n BtaOptions,\n CdxOptions,\n CdxTickerInfo,\n CorporateBondsOptions,\n DateLike,\n DateTimeLike,\n DividendOptions,\n EngineConfig,\n EtfHoldingsOptions,\n ExchangeInfoResult,\n ExchangeOverrideInput,\n FieldInfo,\n FormatKind,\n FuturesCandidate,\n FuturesResolveOptions,\n FxPairInfo,\n MarketRule,\n OverridesMap,\n PreferredsOptions,\n PrimitiveValue,\n RecipeBackendOptions,\n RequestInput,\n RequestOptions,\n ServerAddress,\n SessionWindowsInfo,\n Socks5Config,\n StreamOptions,\n StringPair,\n SubscriptionStats,\n TickerParts,\n TimeRange,\n TlsConfig,\n TurnoverOptions,\n YasOptions,\n} from './types';\nimport type {\n NativeAddon,\n NativeArrowZeroCopyBatch,\n NativeEngine,\n NativeSubscription,\n NativeSubscriptionUpdate,\n} from './napi';\n\nconst nodeRequire = createRequire(__filename);\n\ninterface PackageJsonShape {\n readonly version: string;\n}\n\ninterface PolarsModule {\n readIPC(buffer: Buffer): unknown;\n}\n\nconst packageJson = nodeRequire('../package.json') as PackageJsonShape;\n\nfunction containsBlpapiRuntime(dir: string): boolean {\n if (dir.length === 0 || !fs.existsSync(dir)) {\n return false;\n }\n return [\n 'blpapi3_64.dll',\n 'blpapi3_32.dll',\n 'libblpapi3.dylib',\n 'libblpapi3_64.so',\n 'libblpapi3.so',\n ].some((name) => fs.existsSync(path.join(dir, name)));\n}\n\nfunction parseVersionParts(name: string): number[] | null {\n const parts = name.split('.').map((part) => Number(part));\n return parts.every((part) => Number.isInteger(part) && part >= 0) ? parts : null;\n}\n\nfunction compareSdkRoots(left: string, right: string): number {\n const leftParts = parseVersionParts(path.basename(left));\n const rightParts = parseVersionParts(path.basename(right));\n if (leftParts !== null && rightParts !== null) {\n const length = Math.max(leftParts.length, rightParts.length);\n for (let index = 0; index < length; index += 1) {\n const leftPart = leftParts[index] ?? 0;\n const rightPart = rightParts[index] ?? 0;\n if (leftPart !== rightPart) {\n return rightPart - leftPart;\n }\n }\n }\n if (leftParts !== null) return -1;\n if (rightParts !== null) return 1;\n return right.localeCompare(left);\n}\n\nfunction pushSdkRuntimeCandidates(candidates: string[], sdkRoot: string): void {\n const resolved = path.resolve(sdkRoot);\n candidates.push(resolved, path.join(resolved, 'bin'), path.join(resolved, 'lib'));\n}\n\nfunction resolveVendorSdkRoot(repoRoot: string): string | null {\n const vendorDir = path.join(repoRoot, 'vendor', 'blpapi-sdk');\n if (!fs.existsSync(vendorDir)) {\n return null;\n }\n const candidates = [vendorDir];\n for (const entry of fs.readdirSync(vendorDir, { withFileTypes: true })) {\n if (entry.isDirectory()) {\n candidates.push(path.join(vendorDir, entry.name));\n }\n }\n candidates.sort(compareSdkRoots);\n return candidates.find((candidate) => {\n const dirs = [candidate, path.join(candidate, 'bin'), path.join(candidate, 'lib')];\n return dirs.some(containsBlpapiRuntime);\n }) ?? null;\n}\n\nfunction configureRuntimeSearchPath(): void {\n if (process.platform !== 'win32') {\n return;\n }\n\n const candidates: string[] = [];\n const libDir = process.env.BLPAPI_LIB_DIR;\n if (libDir !== undefined && libDir.length > 0) {\n candidates.push(path.resolve(libDir));\n }\n const root = process.env.BLPAPI_ROOT;\n if (root !== undefined && root.length > 0) {\n pushSdkRuntimeCandidates(candidates, root);\n }\n const repoRoot = path.resolve(__dirname, '..', '..');\n const devRoot = process.env.XBBG_DEV_SDK_ROOT;\n if (devRoot !== undefined && devRoot.length > 0) {\n pushSdkRuntimeCandidates(\n candidates,\n path.isAbsolute(devRoot) ? devRoot : path.resolve(repoRoot, devRoot),\n );\n }\n const vendorRoot = resolveVendorSdkRoot(repoRoot);\n if (vendorRoot !== null) {\n pushSdkRuntimeCandidates(candidates, vendorRoot);\n }\n\n for (const candidate of candidates) {\n if (!containsBlpapiRuntime(candidate)) {\n continue;\n }\n const currentPath = process.env.PATH ?? '';\n const parts = currentPath.split(';').filter((part) => part.length > 0);\n if (!parts.includes(candidate)) {\n process.env.PATH =\n currentPath.length > 0 ? `${candidate};${currentPath}` : candidate;\n }\n break;\n }\n}\n\nconfigureRuntimeSearchPath();\n\nfunction loadNative(): NativeAddon {\n const root = path.resolve(__dirname, '..', '..');\n\n const candidates = [\n path.join(__dirname, 'napi_xbbg.node'),\n path.join(__dirname, '..', 'napi_xbbg.node'),\n path.join(__dirname, 'napi-xbbg.node'),\n ];\n\n for (const candidate of candidates) {\n if (fs.existsSync(candidate)) {\n return nodeRequire(candidate) as NativeAddon;\n }\n }\n\n const { key, packageName, binaryPath } = resolveNativeAddon(root);\n if (binaryPath !== null) {\n return nodeRequire(binaryPath) as NativeAddon;\n }\n if (packageName === null) {\n throw new Error(\n `No packaged @xbbg/core native addon is available for ${key}. Build it locally with \"npm run build\" from js-xbbg.`,\n );\n }\n\n throw new Error(\n `Unable to load native napi-xbbg module for ${key}. Install ${packageName} via Bun/npm, or build it locally with \"npm run build\" from js-xbbg.`,\n );\n}\n\nconst native = loadNative();\n\n// ── Constants ───────────────────────────────────────────────────────────\n\nexport const Backend = Object.freeze({\n ARROW: 'arrow',\n JSON: 'json',\n POLARS: 'polars',\n}) satisfies Readonly<Record<string, BackendKind>>;\n\nexport const Format = Object.freeze({\n LONG: 'long',\n LONG_TYPED: 'long_typed',\n LONG_WITH_METADATA: 'long_with_metadata',\n SEMI_LONG: 'semi_long',\n}) satisfies Readonly<Record<string, FormatKind>>;\n\nconst CDX_INFO_FIELDS = Object.freeze([\n 'ROLLING_SERIES',\n 'VERSION',\n 'ON_THE_RUN_CURRENT_BD_INDICATOR',\n 'CDS_FIRST_ACCRUAL_START_DATE',\n 'NAME',\n 'NUM_CURRENT_COMPANIES_CCY_TKR',\n 'NUM_ORIG_COMPANIES_CRNCY_TKR',\n 'PX_LAST',\n]);\n\nconst CDX_PRICING_FIELDS = Object.freeze([\n 'PX_LAST',\n 'PX_BID',\n 'PX_ASK',\n 'UPFRONT_LAST',\n 'UPFRONT_BID',\n 'UPFRONT_ASK',\n 'CDS_FLAT_SPREAD',\n 'UPFRONT_FEE',\n 'PV_CDS_PREMIUM_LEG',\n 'PV_CDS_DEFAULT_LEG',\n]);\n\nconst CDX_RISK_FIELDS = Object.freeze([\n 'SW_CNV_BPV',\n 'SW_EQV_BPV',\n 'CDS_SPREAD_MID_MODIFIED_DURATION',\n 'CDS_SPREAD_MID_CONVEXITY',\n 'RECOVERY_RATE_SEN',\n 'CDS_RECOVERY_RT',\n]);\n\nconst TA_STUDIES: Readonly<Record<string, string>> = Object.freeze({\n smavg: 'smavgStudyAttributes',\n sma: 'smavgStudyAttributes',\n emavg: 'emavgStudyAttributes',\n ema: 'emavgStudyAttributes',\n wmavg: 'wmavgStudyAttributes',\n wma: 'wmavgStudyAttributes',\n vmavg: 'vmavgStudyAttributes',\n vma: 'vmavgStudyAttributes',\n tmavg: 'tmavgStudyAttributes',\n tma: 'tmavgStudyAttributes',\n ipmavg: 'ipmavgStudyAttributes',\n rsi: 'rsiStudyAttributes',\n macd: 'macdStudyAttributes',\n mao: 'maoStudyAttributes',\n momentum: 'momentumStudyAttributes',\n mom: 'momentumStudyAttributes',\n roc: 'rocStudyAttributes',\n boll: 'bollStudyAttributes',\n bb: 'bollStudyAttributes',\n kltn: 'kltnStudyAttributes',\n keltner: 'kltnStudyAttributes',\n mae: 'maeStudyAttributes',\n te: 'teStudyAttributes',\n al: 'alStudyAttributes',\n dmi: 'dmiStudyAttributes',\n adx: 'dmiStudyAttributes',\n tas: 'tasStudyAttributes',\n stoch: 'tasStudyAttributes',\n trender: 'trenderStudyAttributes',\n ptps: 'ptpsStudyAttributes',\n parabolic: 'ptpsStudyAttributes',\n sar: 'ptpsStudyAttributes',\n chko: 'chkoStudyAttributes',\n ado: 'adoStudyAttributes',\n vat: 'vatStudyAttributes',\n tvat: 'tvatStudyAttributes',\n atr: 'atrStudyAttributes',\n hurst: 'hurstStudyAttributes',\n fg: 'fgStudyAttributes',\n fear_greed: 'fgStudyAttributes',\n goc: 'gocStudyAttributes',\n ichimoku: 'gocStudyAttributes',\n cmci: 'cmciStudyAttributes',\n wlpr: 'wlprStudyAttributes',\n williams: 'wlprStudyAttributes',\n maxmin: 'maxminStudyAttributes',\n rex: 'rexStudyAttributes',\n etd: 'etdStudyAttributes',\n pd: 'pdStudyAttributes',\n rv: 'rvStudyAttributes',\n pivot: 'pivotStudyAttributes',\n or: 'orStudyAttributes',\n pcr: 'pcrStudyAttributes',\n bs: 'bsStudyAttributes',\n});\n\ntype StudyParams = Record<string, PrimitiveValue | undefined>;\n\nconst TA_DEFAULTS: Readonly<Record<string, Readonly<StudyParams>>> = Object.freeze({\n smavgStudyAttributes: Object.freeze({ period: 20, priceSourceClose: 'PX_LAST' }),\n emavgStudyAttributes: Object.freeze({ period: 20, priceSourceClose: 'PX_LAST' }),\n wmavgStudyAttributes: Object.freeze({ period: 20, priceSourceClose: 'PX_LAST' }),\n vmavgStudyAttributes: Object.freeze({ period: 20, priceSourceClose: 'PX_LAST' }),\n tmavgStudyAttributes: Object.freeze({ period: 20, priceSourceClose: 'PX_LAST' }),\n rsiStudyAttributes: Object.freeze({ period: 14, priceSourceClose: 'PX_LAST' }),\n macdStudyAttributes: Object.freeze({\n maPeriod1: 12,\n maPeriod2: 26,\n sigPeriod: 9,\n priceSourceClose: 'PX_LAST',\n }),\n bollStudyAttributes: Object.freeze({\n period: 20,\n upperBand: 2.0,\n lowerBand: 2.0,\n priceSourceClose: 'PX_LAST',\n }),\n dmiStudyAttributes: Object.freeze({\n period: 14,\n priceSourceHigh: 'PX_HIGH',\n priceSourceLow: 'PX_LOW',\n priceSourceClose: 'PX_LAST',\n }),\n atrStudyAttributes: Object.freeze({\n maType: 'Simple',\n period: 14,\n priceSourceHigh: 'PX_HIGH',\n priceSourceLow: 'PX_LOW',\n priceSourceClose: 'PX_LAST',\n }),\n tasStudyAttributes: Object.freeze({\n periodK: 14,\n periodD: 3,\n periodDS: 3,\n periodDSS: 3,\n priceSourceHigh: 'PX_HIGH',\n priceSourceLow: 'PX_LOW',\n priceSourceClose: 'PX_LAST',\n }),\n});\n\nconst MKTDATA_SERVICE = '//blp/mktdata';\n\n\n// ── Helpers ─────────────────────────────────────────────────────────────\n\nfunction toArrowTableFromNative(batch: NativeArrowZeroCopyBatch): Table {\n return tableFromNativeArrowBatch(batch);\n}\n\nfunction isPlainObject(value: unknown): value is Record<string, unknown> {\n return typeof value === 'object' && value !== null && !Array.isArray(value);\n}\n\nfunction toRequestString(value: unknown): string {\n return String(value);\n}\n\nfunction mapObjectToPairs(\n obj: OverridesMap | undefined,\n): StringPair[] | undefined {\n if (obj === undefined) {\n return undefined;\n }\n return Object.entries(obj).map(([key, value]) => ({\n key: toRequestString(key),\n value: toRequestString(value),\n }));\n}\n\ntype BdtickBooleanOption =\n | 'includeConditionCodes'\n | 'includeExchangeCodes'\n | 'includeBrokerCodes'\n | 'includeRpsCodes'\n | 'includeBicMicCodes'\n | 'includeNonPlottableEvents'\n | 'includeBloombergStandardConditionCodes';\n\nconst BDTICK_BOOLEAN_KWARGS: readonly [BdtickBooleanOption, string][] = Object.freeze([\n ['includeConditionCodes', 'includeConditionCodes'],\n ['includeExchangeCodes', 'includeExchangeCodes'],\n ['includeBrokerCodes', 'includeBrokerCodes'],\n ['includeRpsCodes', 'includeRpsCodes'],\n ['includeBicMicCodes', 'includeBicMicCodes'],\n ['includeNonPlottableEvents', 'includeNonPlottableEvents'],\n ['includeBloombergStandardConditionCodes', 'includeBloombergStandardConditionCodes'],\n]);\n\nfunction upsertStringPair(pairs: StringPair[], key: string, value: string): void {\n const existing = pairs.find((pair) => pair.key === key);\n if (existing === undefined) {\n pairs.push({ key, value });\n return;\n }\n existing.value = value;\n}\n\nfunction buildBdtickKwargs(options: BdtickOptions): StringPair[] | undefined {\n const pairs = mapObjectToPairs(options.kwargs) ?? [];\n for (const [optionName, requestName] of BDTICK_BOOLEAN_KWARGS) {\n const typedValue = options[optionName];\n if (typedValue !== undefined) {\n upsertStringPair(pairs, requestName, typedValue ? 'true' : 'false');\n }\n }\n return pairs.length > 0 ? pairs : undefined;\n}\n\nfunction toStringArray(value: string | readonly string[] | null | undefined): string[] {\n if (Array.isArray(value)) {\n return value.map((item) => toRequestString(item));\n }\n if (value === null || value === undefined) {\n return [];\n }\n return [toRequestString(value)];\n}\n\nfunction subscriptionOptionKey(option: string): string {\n return normalizeSubscriptionOption(option).split('=')[0]?.trim().toLowerCase() ?? '';\n}\n\nfunction normalizeSubscriptionOption(option: string): string {\n let clean = option.trim();\n while (clean.startsWith('&')) {\n clean = clean.slice(1).trim();\n }\n return clean;\n}\n\nfunction buildStreamSubscriptionOptions(\n service: string,\n options: StreamOptions,\n): readonly string[] | undefined {\n const rawOptions = options.options;\n const conflate = options.conflate;\n\n if (rawOptions === undefined && conflate !== true) {\n return undefined;\n }\n\n const subscriptionOptions = (rawOptions ?? [])\n .map((option) => normalizeSubscriptionOption(option))\n .filter((option) => option.length > 0);\n\n if (conflate === true) {\n if (service !== MKTDATA_SERVICE) {\n throw new BlpValidationError(\n 'conflate=true is only supported for //blp/mktdata subscriptions',\n { element: 'conflate' },\n );\n }\n if (subscriptionOptions.some((option) => subscriptionOptionKey(option) === 'interval')) {\n throw new BlpValidationError(\n 'conflate=true cannot be combined with interval options; intervalization overrides conflation',\n { element: 'conflate' },\n );\n }\n if (!subscriptionOptions.some((option) => subscriptionOptionKey(option) === 'conflate')) {\n subscriptionOptions.push('conflate');\n }\n }\n\n return subscriptionOptions.length > 0 || rawOptions !== undefined ? subscriptionOptions : undefined;\n}\n\nfunction normalizeConfigureArgs(\n configOrHost?: EngineConfig | string,\n port?: number,\n): EngineConfig | undefined {\n if (configOrHost === undefined) {\n return undefined;\n }\n if (typeof configOrHost === 'string' || port !== undefined) {\n const config: EngineConfig = {};\n if (typeof configOrHost === 'string') {\n config.host = configOrHost;\n }\n if (port !== undefined) {\n config.port = port;\n }\n return config;\n }\n if (isPlainObject(configOrHost)) {\n return { ...(configOrHost as EngineConfig) };\n }\n throw new TypeError(\n 'configure expects either a config object or host/port arguments',\n );\n}\n\nfunction normalizeRecoveryOptions(options: CdxOptions = {}): BdpOptions {\n const normalized: CdxOptions = { ...options };\n const recoveryRate = normalized.recoveryRate ?? normalized.recovery_rate;\n delete normalized.recoveryRate;\n delete normalized.recovery_rate;\n if (recoveryRate !== undefined) {\n normalized.overrides = {\n ...(normalized.overrides ?? {}),\n CDS_RR: toRequestString(recoveryRate),\n };\n }\n return normalized;\n}\n\nfunction fullDayRange(dt: DateTimeLike): TimeRange {\n const formatted = formatDate(dt);\n if (formatted === undefined) {\n throw new TypeError('dt must be a non-empty date-like value');\n }\n const day = `${formatted.slice(0, 4)}-${formatted.slice(4, 6)}-${formatted.slice(6, 8)}`;\n return {\n start: `${day}T00:00:00`,\n end: `${day}T23:59:59`,\n };\n}\n\nfunction normalizeDate(value: DateLike | undefined): string | undefined {\n return formatDate(value);\n}\n\nfunction getStudyAttrName(study: string): string {\n const normalized = study.toLowerCase().replace(/-/g, '_').replace(/ /g, '_');\n const mapped = TA_STUDIES[normalized];\n if (mapped !== undefined) {\n return mapped;\n }\n if (normalized.endsWith('studyattributes')) {\n return normalized;\n }\n return `${normalized}StudyAttributes`;\n}\n\ninterface RawStudy {\n studyType?: string;\n study?: string;\n calcInterval?: string;\n interval?: number | string;\n length?: number;\n period?: number;\n [key: string]: PrimitiveValue | undefined;\n}\n\nfunction buildTaRequest(\n ticker: string,\n study: string | RawStudy,\n options: BtaOptions = {},\n): StringPair[] {\n const rawStudy: RawStudy =\n typeof study === 'string' ? { studyType: study } : { ...study };\n const studyType = rawStudy.studyType ?? rawStudy.study ?? (typeof study === 'string' ? study : '');\n const attrName = getStudyAttrName(toRequestString(studyType));\n\n const kwargs: Record<string, PrimitiveValue> = { ...(options.kwargs ?? {}) };\n const startDate = normalizeDate(\n stringOrUndef(kwargs.startDate) ??\n stringOrUndef(kwargs.start_date) ??\n options.startDate ??\n options.start_date,\n );\n const endDate = normalizeDate(\n stringOrUndef(kwargs.endDate) ??\n stringOrUndef(kwargs.end_date) ??\n options.endDate ??\n options.end_date,\n );\n const periodicity = toRequestString(stringOrUndef(kwargs.periodicitySelection) ??\n stringOrUndef(kwargs.periodicity) ??\n rawStudy.calcInterval ??\n options.periodicity ??\n 'DAILY').toUpperCase();\n const interval =\n kwargs.interval ?? rawStudy.interval ?? options.interval;\n\n delete kwargs.startDate;\n delete kwargs.start_date;\n delete kwargs.endDate;\n delete kwargs.end_date;\n delete kwargs.periodicitySelection;\n delete kwargs.periodicity;\n delete rawStudy.studyType;\n delete rawStudy.study;\n delete rawStudy.calcInterval;\n\n if (rawStudy.length !== undefined && rawStudy.period === undefined) {\n rawStudy.period = rawStudy.length;\n }\n delete rawStudy.length;\n\n const params: StudyParams = {\n ...(TA_DEFAULTS[attrName] ?? {}),\n ...(options.studyParams ?? {}),\n ...(rawStudy as StudyParams),\n };\n\n if (params.length !== undefined && params.period === undefined) {\n params.period = params.length;\n }\n delete params.length;\n delete params.calcInterval;\n\n const elements: StringPair[] = [\n { key: 'priceSource.securityName', value: toRequestString(ticker) },\n ];\n\n if (periodicity === 'INTRADAY') {\n const prefix = 'priceSource.dataRange.intraday';\n if (startDate !== undefined) {\n elements.push({ key: `${prefix}.startDate`, value: startDate });\n }\n if (endDate !== undefined) {\n elements.push({ key: `${prefix}.endDate`, value: endDate });\n }\n elements.push({ key: `${prefix}.eventType`, value: 'TRADE' });\n if (interval !== undefined) {\n elements.push({ key: `${prefix}.interval`, value: toRequestString(interval) });\n }\n } else {\n const prefix = 'priceSource.dataRange.historical';\n if (startDate !== undefined) {\n elements.push({ key: `${prefix}.startDate`, value: startDate });\n }\n if (endDate !== undefined) {\n elements.push({ key: `${prefix}.endDate`, value: endDate });\n }\n elements.push({ key: `${prefix}.periodicitySelection`, value: periodicity });\n }\n\n for (const [key, value] of Object.entries(params)) {\n if (value === undefined) {\n continue;\n }\n elements.push({\n key: `studyAttributes.${attrName}.${key}`,\n value: toRequestString(value),\n });\n }\n\n for (const [key, value] of Object.entries(kwargs)) {\n elements.push({ key: toRequestString(key), value: toRequestString(value) });\n }\n\n return elements;\n}\n\nfunction stringOrUndef(value: unknown): string | undefined {\n return typeof value === 'string' ? value : undefined;\n}\n\nlet polarsModule: PolarsModule | undefined;\nlet polarsLoadError: Error | undefined;\n\nfunction cachePolarsLoadError(err: unknown): Error {\n const error = new Error(\n 'nodejs-polars is required for Polars backend. Install: npm install nodejs-polars',\n );\n Object.defineProperty(error, 'cause', { value: err, configurable: true });\n polarsLoadError = error;\n return error;\n}\n\nfunction loadPolars(): PolarsModule {\n if (polarsModule !== undefined) {\n return polarsModule;\n }\n if (polarsLoadError !== undefined) {\n throw polarsLoadError;\n }\n try {\n polarsModule = nodeRequire('nodejs-polars') as PolarsModule;\n return polarsModule;\n } catch (err) {\n throw cachePolarsLoadError(err);\n }\n}\n\nfunction normalizeBackend(backend: BackendKind | undefined): BackendKind {\n const selected: unknown = backend ?? Backend.ARROW;\n if (selected === Backend.ARROW || selected === Backend.JSON || selected === Backend.POLARS) {\n return selected;\n }\n throw new TypeError(\n `Unsupported @xbbg/core backend \"${toRequestString(selected)}\". Expected one of: ${Object.values(\n Backend,\n ).join(', ')}`,\n );\n}\n\nfunction ipcToBackend(buffer: Buffer, backend: BackendKind | undefined): unknown {\n const selected = normalizeBackend(backend);\n if (selected === Backend.JSON) {\n return Array.from(tableFromIPC(buffer));\n }\n if (selected === Backend.POLARS) {\n return loadPolars().readIPC(buffer);\n }\n return tableFromIPC(buffer);\n}\n\n// ── Configured engine state ─────────────────────────────────────────────\n\nlet configuredEngineConfig: EngineConfig | undefined;\nlet configuredEnginePromise: Promise<Engine> | undefined;\n\nfunction clearConfiguredEngine(): void {\n const existing = configuredEnginePromise;\n configuredEnginePromise = undefined;\n if (existing !== undefined) {\n existing\n .then((engine) => {\n engine.signalShutdown();\n })\n .catch(() => {\n /* ignore shutdown errors */\n });\n }\n}\n\nasync function getConfiguredEngine(): Promise<Engine> {\n if (configuredEnginePromise === undefined) {\n const pending = connect(configuredEngineConfig);\n pending.catch(() => {\n if (configuredEnginePromise === pending) {\n configuredEnginePromise = undefined;\n }\n });\n configuredEnginePromise = pending;\n }\n return await configuredEnginePromise;\n}\n\n// ── Subscription class ──────────────────────────────────────────────────\n\nexport type TickValue = null | boolean | number | bigint | string | Date;\n\nexport class FieldHandle {\n public constructor(public readonly name: string) {}\n}\n\nexport class Tick {\n private readonly _positions: Map<string, number>;\n\n public constructor(private readonly _update: NativeSubscriptionUpdate) {\n this._positions = new Map(_update.fields.map((field, index) => [field, index]));\n }\n\n public get topic(): string {\n return this._update.topic;\n }\n\n public get timestampUs(): number {\n return this._update.timestampUs;\n }\n\n public get layoutVersion(): number {\n return this._update.layoutVersion;\n }\n\n public get(field: string | FieldHandle): TickValue {\n const name = typeof field === 'string' ? field : field.name;\n const index = this._positions.get(name);\n if (index === undefined) return null;\n const value = this._update.values[index] ?? null;\n const kind = this._update.valueKinds[index] ?? 'unknown';\n if (value === null) return null;\n if (kind === 'i64' || kind === 'time64_us' || kind === 'timestamp_us') {\n try {\n return BigInt(String(value));\n } catch {\n return null;\n }\n }\n if (kind === 'date32' && typeof value === 'number') {\n return new Date(Date.UTC(1970, 0, 1 + value));\n }\n return value;\n }\n\n public f64(field: string | FieldHandle): number | null {\n const value = this.get(field);\n if (value === null) return null;\n const parsed = Number(value);\n return Number.isFinite(parsed) ? parsed : null;\n }\n\n public i64(field: string | FieldHandle): bigint | null {\n const value = this.get(field);\n if (value === null) return null;\n try {\n return BigInt(String(value));\n } catch {\n return null;\n }\n }\n\n public str(field: string | FieldHandle): string | null {\n const value = this.get(field);\n return value === null ? null : String(value);\n }\n\n public toObject(): Record<string, unknown> {\n const out: Record<string, unknown> = { topic: this.topic, timestampUs: this.timestampUs };\n for (const field of this._update.fields) {\n out[field] = this.get(field);\n }\n return out;\n }\n}\n\nexport class ArrowSubscription implements AsyncIterator<Table>, AsyncIterable<Table> {\n public constructor(private readonly _inner: NativeSubscription) {}\n\n public async next(): Promise<IteratorResult<Table>> {\n try {\n const batch = await this._inner.nextArrow();\n if (batch === null) {\n return { done: true, value: undefined };\n }\n return { done: false, value: toArrowTableFromNative(batch) };\n } catch (err) {\n throw wrapError(err);\n }\n }\n\n public async unsubscribe(drain = false): Promise<Table[]> {\n try {\n const drained = await this._inner.unsubscribeArrow(drain);\n return drained?.map(toArrowTableFromNative) ?? [];\n } catch (err) {\n throw wrapError(err);\n }\n }\n\n public [Symbol.asyncIterator](): this {\n return this;\n }\n}\n\nexport class Subscription implements AsyncIterator<Tick>, AsyncIterable<Tick> {\n private readonly _inner: NativeSubscription;\n\n public constructor(inner: NativeSubscription) {\n this._inner = inner;\n }\n\n public async next(): Promise<IteratorResult<Tick>> {\n try {\n const update = await this._inner.nextUpdate();\n if (update === null) {\n return { done: true, value: undefined };\n }\n return { done: false, value: new Tick(update) };\n } catch (err) {\n throw wrapError(err);\n }\n }\n\n public async add(tickers: readonly string[]): Promise<void> {\n try {\n await this._inner.add(tickers);\n } catch (err) {\n throw wrapError(err);\n }\n }\n\n public async remove(tickers: readonly string[]): Promise<void> {\n try {\n await this._inner.remove(tickers);\n } catch (err) {\n throw wrapError(err);\n }\n }\n\n public async unsubscribe(drain = false): Promise<Tick[]> {\n try {\n const drained = await this._inner.unsubscribe(drain);\n if (drained === null) {\n return [];\n }\n return drained.map((update) => new Tick(update));\n } catch (err) {\n throw wrapError(err);\n }\n }\n\n public field(name: string): FieldHandle {\n return new FieldHandle(name);\n }\n\n public arrow(): ArrowSubscription {\n return new ArrowSubscription(this._inner);\n }\n\n public get tickers(): string[] {\n return this._inner.tickers;\n }\n\n public get fields(): string[] {\n return this._inner.fields;\n }\n\n public get isActive(): boolean {\n return this._inner.isActive;\n }\n\n public get stats(): SubscriptionStats {\n return this._inner.stats;\n }\n\n public [Symbol.asyncIterator](): this {\n return this;\n }\n}\n\n// ── Engine class ────────────────────────────────────────────────────────\n\nexport class Engine {\n // Set via constructor or via `withConfig` (which instantiates via Object.create).\n private _inner!: NativeEngine;\n\n public constructor(host = 'localhost', port = 8194) {\n try {\n this._inner = new native.JsEngine(host, port);\n } catch (err) {\n throw wrapError(err);\n }\n }\n\n public static withConfig(config: EngineConfig = {}): Engine {\n const engine: Engine = Object.create(Engine.prototype) as Engine;\n try {\n engine._inner = native.JsEngine.withConfig(config);\n } catch (err) {\n throw wrapError(err);\n }\n return engine;\n }\n\n public async request(params: RequestInput): Promise<unknown> {\n const backend = normalizeBackend(params.backend);\n const { backend: _discarded, ...nativeParams } = params;\n try {\n const buffer = await this._inner.request(nativeParams);\n return ipcToBackend(buffer, backend);\n } catch (err) {\n throw wrapError(err);\n }\n }\n\n public async requestRaw(params: RequestInput): Promise<Buffer> {\n try {\n return await this._inner.request(params);\n } catch (err) {\n throw wrapError(err);\n }\n }\n\n public async bdp(\n tickers: readonly string[],\n fields: readonly string[],\n options: BdpOptions = {},\n ): Promise<unknown> {\n return await this.request({\n service: '//blp/refdata',\n operation: 'ReferenceDataRequest',\n securities: tickers,\n fields,\n overrides: mapObjectToPairs(options.overrides),\n kwargs: mapObjectToPairs(options.kwargs),\n format: options.format,\n backend: options.backend,\n includeSecurityErrors: Boolean(options.includeSecurityErrors),\n validateFields: options.validateFields,\n extractor: 'refdata',\n });\n }\n\n public async bds(\n tickers: readonly string[],\n fields: readonly string[],\n options: BdpOptions = {},\n ): Promise<unknown> {\n return await this.request({\n service: '//blp/refdata',\n operation: 'ReferenceDataRequest',\n securities: tickers,\n fields,\n overrides: mapObjectToPairs(options.overrides),\n kwargs: mapObjectToPairs(options.kwargs),\n format: options.format,\n backend: options.backend,\n validateFields: options.validateFields,\n extractor: 'bulk',\n });\n }\n\n public async bdh(\n tickers: readonly string[],\n fields: readonly string[],\n options: BdhOptions = {},\n ): Promise<unknown> {\n return await this.request({\n service: '//blp/refdata',\n operation: 'HistoricalDataRequest',\n securities: tickers,\n fields,\n startDate: formatDate(options.start),\n endDate: formatDate(options.end),\n overrides: mapObjectToPairs(options.overrides),\n kwargs: mapObjectToPairs(options.kwargs),\n format: options.format,\n backend: options.backend,\n validateFields: options.validateFields,\n extractor: 'histdata',\n });\n }\n\n public async bdib(ticker: string, options: BdibOptions = {}): Promise<unknown> {\n return await this.request({\n service: '//blp/refdata',\n operation: 'IntradayBarRequest',\n security: ticker,\n eventType: options.eventType ?? 'TRADE',\n interval: options.interval ?? 1,\n startDatetime: formatDateTime(options.start),\n endDatetime: formatDateTime(options.end),\n requestTz: options.requestTz,\n outputTz: options.outputTz,\n kwargs: mapObjectToPairs(options.kwargs),\n backend: options.backend,\n extractor: 'intraday_bar',\n });\n }\n\n public async bdtick(ticker: string, options: BdtickOptions = {}): Promise<unknown> {\n return await this.request({\n service: '//blp/refdata',\n operation: 'IntradayTickRequest',\n security: ticker,\n eventTypes: options.eventTypes ?? ['TRADE'],\n startDatetime: formatDateTime(options.start),\n endDatetime: formatDateTime(options.end),\n requestTz: options.requestTz,\n outputTz: options.outputTz,\n kwargs: buildBdtickKwargs(options),\n backend: options.backend,\n extractor: 'intraday_tick',\n });\n }\n\n public async bql(query: string, options: BqlOptions = {}): Promise<unknown> {\n return await this.request({\n service: '//blp/bqlsvc',\n operation: 'sendQuery',\n elements: [{ key: 'expression', value: toRequestString(query) }],\n backend: options.backend,\n kwargs: mapObjectToPairs(options.kwargs),\n format: options.format,\n extractor: 'bql',\n });\n }\n\n public async beqs(screen: string, options: BeqsOptions = {}): Promise<unknown> {\n const elements: StringPair[] = [\n { key: 'screenName', value: toRequestString(screen) },\n { key: 'screenType', value: toRequestString(options.screenType ?? 'PRIVATE') },\n { key: 'Group', value: toRequestString(options.group ?? 'General') },\n ];\n if (options.asof !== undefined) {\n const asofFormatted = formatDate(options.asof);\n if (asofFormatted !== undefined) {\n elements.push({ key: 'asOfDate', value: asofFormatted });\n }\n }\n const overrides: OverridesMap = { ...(options.overrides ?? {}) };\n return await this.request({\n service: '//blp/refdata',\n operation: 'BeqsRequest',\n elements,\n backend: options.backend,\n kwargs: mapObjectToPairs(options.kwargs),\n overrides: mapObjectToPairs(overrides),\n format: options.format,\n extractor: 'generic',\n });\n }\n\n public async bsrch(searchSpec: string, options: BsrchOptions = {}): Promise<unknown> {\n const elements: OverridesMap = {\n Domain: toRequestString(searchSpec),\n ...(options.overrides ?? {}),\n ...(options.kwargs ?? {}),\n };\n return await this.request({\n service: '//blp/exrsvc',\n operation: 'ExcelGetGridRequest',\n backend: options.backend,\n elements: mapObjectToPairs(elements),\n format: options.format,\n extractor: 'bsrch',\n });\n }\n\n public async bta(\n ticker: string,\n study: string | RawStudy,\n options: BtaOptions = {},\n ): Promise<unknown> {\n return await this.request({\n service: '//blp/tasvc',\n operation: 'studyRequest',\n elements: buildTaRequest(ticker, study, options),\n backend: options.backend,\n format: options.format,\n extractor: 'generic',\n });\n }\n\n public async bflds(options: BfldsOptions = {}): Promise<unknown> {\n if (options.searchSpec !== undefined) {\n return await this.request({\n service: '//blp/apiflds',\n operation: 'FieldSearchRequest',\n searchSpec: toRequestString(options.searchSpec),\n backend: options.backend,\n kwargs: mapObjectToPairs(options.kwargs),\n format: options.format,\n });\n }\n const fields: string[] = Array.isArray(options.fields)\n ? (options.fields as string[])\n : typeof options.fields === 'string'\n ? [options.fields]\n : [];\n return await this.request({\n service: '//blp/apiflds',\n operation: 'FieldInfoRequest',\n fieldIds: fields,\n backend: options.backend,\n kwargs: mapObjectToPairs(options.kwargs),\n format: options.format,\n });\n }\n\n public async blkp(query: string, options: BlkpOptions = {}): Promise<unknown> {\n return await this.request({\n service: '//blp/instruments',\n operation: 'instrumentListRequest',\n elements: [{ key: 'query', value: toRequestString(query) }],\n backend: options.backend,\n kwargs: mapObjectToPairs(options.kwargs),\n format: options.format,\n });\n }\n\n public async bport(\n portfolio: string,\n fields: string | readonly string[],\n options: RequestOptions = {},\n ): Promise<unknown> {\n return await this.request({\n service: '//blp/refdata',\n operation: 'PortfolioDataRequest',\n security: toRequestString(portfolio),\n fields: Array.isArray(fields) ? fields : [toRequestString(fields)],\n backend: options.backend,\n overrides: mapObjectToPairs(options.overrides),\n kwargs: mapObjectToPairs(options.kwargs),\n format: options.format,\n });\n }\n\n public async bcurves(ticker: string, options: RequestOptions = {}): Promise<unknown> {\n return await this.request({\n service: '//blp/instruments',\n operation: 'curveListRequest',\n elements: [{ key: 'query', value: toRequestString(ticker) }],\n backend: options.backend,\n kwargs: mapObjectToPairs(options.kwargs),\n format: options.format,\n });\n }\n\n public async bgovts(ticker: string, options: RequestOptions = {}): Promise<unknown> {\n return await this.request({\n service: '//blp/instruments',\n operation: 'govtListRequest',\n elements: [{ key: 'query', value: toRequestString(ticker) }],\n backend: options.backend,\n kwargs: mapObjectToPairs(options.kwargs),\n format: options.format,\n });\n }\n\n public async resolveFieldTypes(\n fields: readonly string[],\n overrides?: OverridesMap ,\n defaultType = 'string',\n ): Promise<Record<string, string>> {\n const items = await this._inner.resolveFieldTypes(\n fields,\n mapObjectToPairs(overrides),\n defaultType,\n );\n return Object.fromEntries(items.map((item) => [item.key, item.value]));\n }\n\n public getFieldInfo(field: string): FieldInfo | null {\n return this._inner.getFieldInfo(field);\n }\n\n public clearFieldCache(): void {\n this._inner.clearFieldCache();\n }\n\n public saveFieldCache(): void {\n this._inner.saveFieldCache();\n }\n\n public async validateFields(fields: readonly string[]): Promise<string[]> {\n return await this._inner.validateFields(fields);\n }\n\n public isFieldValidationEnabled(): boolean {\n return this._inner.isFieldValidationEnabled();\n }\n\n public async getSchema(service: string): Promise<unknown> {\n const json = await this._inner.getSchema(service);\n return JSON.parse(json) as unknown;\n }\n\n public async getOperation(service: string, operation: string): Promise<unknown> {\n const json = await this._inner.getOperation(service, operation);\n return JSON.parse(json) as unknown;\n }\n\n public async listOperations(service: string): Promise<string[]> {\n return await this._inner.listOperations(service);\n }\n\n public getCachedSchema(service: string): unknown {\n const json = this._inner.getCachedSchema(service);\n return json === null ? null : (JSON.parse(json) as unknown);\n }\n\n public invalidateSchema(service: string): void {\n this._inner.invalidateSchema(service);\n }\n\n public clearSchemaCache(): void {\n this._inner.clearSchemaCache();\n }\n\n public listCachedSchemas(): string[] {\n return this._inner.listCachedSchemas();\n }\n\n public async getEnumValues(\n service: string,\n operation: string,\n element: string,\n ): Promise<string[] | null> {\n return await this._inner.getEnumValues(service, operation, element);\n }\n\n public async listValidElements(\n service: string,\n operation: string,\n ): Promise<string[] | null> {\n return await this._inner.listValidElements(service, operation);\n }\n\n public async subscribe(\n tickers: readonly string[],\n fields: readonly string[],\n options: StreamOptions = {},\n ): Promise<Subscription> {\n try {\n const subscriptionOptions = buildStreamSubscriptionOptions(MKTDATA_SERVICE, options);\n const useOptions =\n subscriptionOptions !== undefined ||\n options.flushThreshold !== undefined ||\n options.overflowPolicy !== undefined ||\n options.streamCapacity !== undefined;\n const stream = useOptions\n ? await this._inner.subscribeWithOptions(\n MKTDATA_SERVICE,\n tickers,\n fields,\n subscriptionOptions,\n options.flushThreshold,\n options.overflowPolicy,\n options.streamCapacity,\n options.allFields,\n )\n : await this._inner.subscribe(tickers, fields, options.allFields);\n return new Subscription(stream);\n } catch (err) {\n throw wrapError(err);\n }\n }\n\n public async subscribeWithOptions(\n service: string,\n tickers: readonly string[],\n fields: readonly string[],\n options?: readonly string[],\n flushThreshold?: number,\n overflowPolicy?: string,\n streamCapacity?: number,\n allFields?: boolean,\n ): Promise<Subscription> {\n try {\n const stream = await this._inner.subscribeWithOptions(\n service,\n tickers,\n fields,\n options,\n flushThreshold,\n overflowPolicy,\n streamCapacity,\n allFields,\n );\n return new Subscription(stream);\n } catch (err) {\n throw wrapError(err);\n }\n }\n\n public signalShutdown(): void {\n this._inner.signalShutdown();\n }\n\n public isAvailable(): boolean {\n return this._inner.isAvailable();\n }\n\n public async stream(\n tickers: readonly string[],\n fields: readonly string[],\n options: StreamOptions = {},\n ): Promise<Subscription> {\n return await this.subscribeWithOptions(\n MKTDATA_SERVICE,\n tickers,\n fields,\n buildStreamSubscriptionOptions(MKTDATA_SERVICE, options),\n options.flushThreshold,\n options.overflowPolicy,\n options.streamCapacity,\n options.allFields,\n );\n }\n\n public async vwap(\n tickers: readonly string[],\n fields: readonly string[],\n options: StreamOptions = {},\n ): Promise<Subscription> {\n return await this.subscribeWithOptions(\n '//blp/mktvwap',\n tickers,\n fields,\n buildStreamSubscriptionOptions('//blp/mktvwap', options),\n options.flushThreshold,\n options.overflowPolicy,\n options.streamCapacity,\n options.allFields,\n );\n }\n\n public async mktbar(ticker: string, options: StreamOptions = {}): Promise<Subscription> {\n return await this.subscribeWithOptions(\n '//blp/mktbar',\n [ticker],\n options.fields ?? [],\n buildStreamSubscriptionOptions('//blp/mktbar', options),\n options.flushThreshold,\n options.overflowPolicy,\n options.streamCapacity,\n options.allFields,\n );\n }\n\n public async depth(ticker: string, options: StreamOptions = {}): Promise<Subscription> {\n return await this.subscribeWithOptions(\n '//blp/mktdepthdata',\n [ticker],\n options.fields ?? [],\n buildStreamSubscriptionOptions('//blp/mktdepthdata', options),\n options.flushThreshold,\n options.overflowPolicy,\n options.streamCapacity,\n options.allFields,\n );\n }\n\n public async chains(ticker: string, options: StreamOptions = {}): Promise<Subscription> {\n return await this.subscribeWithOptions(\n '//blp/mktlist',\n [ticker],\n options.fields ?? [],\n buildStreamSubscriptionOptions('//blp/mktlist', options),\n options.flushThreshold,\n options.overflowPolicy,\n options.streamCapacity,\n options.allFields,\n );\n }\n\n public async bops(service: string): Promise<string[]> {\n return await this._inner.listOperations(service);\n }\n\n public async bschema(service: string, operation?: string): Promise<unknown> {\n if (operation !== undefined) {\n const json = await this._inner.getOperation(service, operation);\n return JSON.parse(json) as unknown;\n }\n const json = await this._inner.getSchema(service);\n return JSON.parse(json) as unknown;\n }\n\n public async fieldInfo(\n fields: string | readonly string[],\n options: BfldsOptions = {},\n ): Promise<unknown> {\n return await this.bflds({\n fields: Array.isArray(fields) ? (fields as string[]) : [toRequestString(fields)],\n ...options,\n });\n }\n\n public async fieldSearch(\n searchSpec: string,\n options: BfldsOptions = {},\n ): Promise<unknown> {\n return await this.bflds({ searchSpec: toRequestString(searchSpec), ...options });\n }\n\n // ── Recipes ─────────────────────────────────────────────────────────\n\n public async bqr(ticker: string, options: BqrOptions = {}): Promise<unknown> {\n const backend = normalizeBackend(options.backend);\n try {\n const buffer = await this._inner.recipeBqr(\n toRequestString(ticker),\n formatDateTime(options.startDatetime),\n formatDateTime(options.endDatetime),\n options.eventTypes ?? null,\n options.includeBrokerCodes !== false,\n );\n return ipcToBackend(buffer, backend);\n } catch (err) {\n throw wrapError(err);\n }\n }\n\n public async yas(\n tickers: string | readonly string[],\n fields: string | readonly string[],\n options: YasOptions = {},\n ): Promise<unknown> {\n const backend = normalizeBackend(options.backend);\n try {\n const buffer = await this._inner.recipeYas(\n toStringArray(tickers),\n toStringArray(fields),\n formatDate(options.settleDt),\n options.yieldType ?? undefined,\n options.spread ?? undefined,\n options.yieldVal ?? undefined,\n options.price ?? undefined,\n options.benchmark ?? undefined,\n );\n return ipcToBackend(buffer, backend);\n } catch (err) {\n throw wrapError(err);\n }\n }\n\n public async preferreds(\n equityTicker: string,\n options: PreferredsOptions = {},\n ): Promise<unknown> {\n const backend = normalizeBackend(options.backend);\n try {\n const buffer = await this._inner.recipePreferreds(\n toRequestString(equityTicker),\n options.fields !== undefined ? toStringArray(options.fields) : null,\n );\n return ipcToBackend(buffer, backend);\n } catch (err) {\n throw wrapError(err);\n }\n }\n\n public async corporateBonds(\n ticker: string,\n options: CorporateBondsOptions = {},\n ): Promise<unknown> {\n const backend = normalizeBackend(options.backend);\n try {\n const buffer = await this._inner.recipeCorporateBonds(\n toRequestString(ticker),\n options.ccy ?? undefined,\n options.fields !== undefined ? toStringArray(options.fields) : null,\n options.activeOnly !== false,\n );\n return ipcToBackend(buffer, backend);\n } catch (err) {\n throw wrapError(err);\n }\n }\n\n public async futTicker(\n genTicker: string,\n dt: DateLike,\n options: FuturesResolveOptions = {},\n ): Promise<unknown> {\n const backend = normalizeBackend(options.backend);\n try {\n const buffer = await this._inner.recipeFutTicker(\n toRequestString(genTicker),\n formatDate(dt) ?? '',\n options.freq ?? undefined,\n );\n return ipcToBackend(buffer, backend);\n } catch (err) {\n throw wrapError(err);\n }\n }\n\n public async activeFutures(\n genTicker: string,\n dt: DateLike,\n options: FuturesResolveOptions = {},\n ): Promise<unknown> {\n const backend = normalizeBackend(options.backend);\n try {\n const buffer = await this._inner.recipeActiveFutures(\n toRequestString(genTicker),\n formatDate(dt) ?? '',\n options.freq ?? undefined,\n );\n return ipcToBackend(buffer, backend);\n } catch (err) {\n throw wrapError(err);\n }\n }\n\n public async cdxTicker(\n genTicker: string,\n dt: DateLike,\n options: RecipeBackendOptions = {},\n ): Promise<unknown> {\n const backend = normalizeBackend(options.backend);\n try {\n const buffer = await this._inner.recipeCdxTicker(\n toRequestString(genTicker),\n formatDate(dt) ?? '',\n );\n return ipcToBackend(buffer, backend);\n } catch (err) {\n throw wrapError(err);\n }\n }\n\n public async activeCdx(\n genTicker: string,\n dt: DateLike,\n options: ActiveCdxOptions = {},\n ): Promise<unknown> {\n const backend = normalizeBackend(options.backend);\n try {\n const buffer = await this._inner.recipeActiveCdx(\n toRequestString(genTicker),\n formatDate(dt) ?? '',\n options.lookbackDays ?? undefined,\n );\n return ipcToBackend(buffer, backend);\n } catch (err) {\n throw wrapError(err);\n }\n }\n\n public async dividend(\n tickers: string | readonly string[],\n startDate: DateLike,\n endDate: DateLike,\n options: DividendOptions = {},\n ): Promise<unknown> {\n const backend = normalizeBackend(options.backend);\n try {\n const buffer = await this._inner.recipeDividend(\n toStringArray(tickers),\n formatDate(startDate) ?? '',\n formatDate(endDate) ?? '',\n options.dvdType ?? undefined,\n );\n return ipcToBackend(buffer, backend);\n } catch (err) {\n throw wrapError(err);\n }\n }\n\n public async turnover(\n tickers: string | readonly string[],\n startDate: DateLike,\n endDate: DateLike,\n options: TurnoverOptions = {},\n ): Promise<unknown> {\n const backend = normalizeBackend(options.backend);\n try {\n const buffer = await this._inner.recipeTurnover(\n toStringArray(tickers),\n formatDate(startDate) ?? '',\n formatDate(endDate) ?? '',\n options.ccy ?? undefined,\n options.factor ?? undefined,\n );\n return ipcToBackend(buffer, backend);\n } catch (err) {\n throw wrapError(err);\n }\n }\n\n public async etfHoldings(\n etfTicker: string,\n options: EtfHoldingsOptions = {},\n ): Promise<unknown> {\n const backend = normalizeBackend(options.backend);\n try {\n const buffer = await this._inner.recipeEtfHoldings(\n toRequestString(etfTicker),\n options.fields !== undefined ? toStringArray(options.fields) : null,\n );\n return ipcToBackend(buffer, backend);\n } catch (err) {\n throw wrapError(err);\n }\n }\n\n public async currencyConversion(\n ticker: string,\n targetCcy: string,\n startDate: DateLike,\n endDate: DateLike,\n options: RecipeBackendOptions = {},\n ): Promise<unknown> {\n const backend = normalizeBackend(options.backend);\n try {\n const buffer = await this._inner.recipeCurrencyConversion(\n toRequestString(ticker),\n toRequestString(targetCcy),\n formatDate(startDate) ?? '',\n formatDate(endDate) ?? '',\n );\n return ipcToBackend(buffer, backend);\n } catch (err) {\n throw wrapError(err);\n }\n }\n}\n\n// ── Top-level wrappers ──────────────────────────────────────────────────\n\nexport async function connect(config?: EngineConfig): Promise<Engine> {\n return await Promise.resolve(\n config === undefined ? new Engine() : Engine.withConfig(config),\n );\n}\n\nexport function configure(config?: EngineConfig): EngineConfig | undefined;\nexport function configure(host?: string, port?: number): EngineConfig | undefined;\nexport function configure(\n configOrHost?: EngineConfig | string,\n port?: number,\n): EngineConfig | undefined {\n configuredEngineConfig = normalizeConfigureArgs(configOrHost, port);\n clearConfiguredEngine();\n return configuredEngineConfig;\n}\n\nexport async function abdp(\n tickers: string | readonly string[],\n fields: string | readonly string[],\n options: BdpOptions = {},\n): Promise<unknown> {\n const engine = await getConfiguredEngine();\n return await engine.bdp(toStringArray(tickers), toStringArray(fields), options);\n}\n\nexport async function bdp(\n tickers: string | readonly string[],\n fields: string | readonly string[],\n options: BdpOptions = {},\n): Promise<unknown> {\n return await abdp(tickers, fields, options);\n}\n\nexport async function abdh(\n tickers: string | readonly string[],\n fields: string | readonly string[],\n start?: DateLike | BdhOptions,\n end?: DateLike,\n options: BdhOptions = {},\n): Promise<unknown> {\n const engine = await getConfiguredEngine();\n // ``BdhOptions`` is a plain object literal; Dates / Luxon DateTimes are\n // typed objects so they fall through to the date-typed branch.\n if (isPlainObject(start) && !(start instanceof Date) && !hasToJSDate(start) && end === undefined) {\n return await engine.bdh(\n toStringArray(tickers),\n toStringArray(fields),\n start,\n );\n }\n return await engine.bdh(toStringArray(tickers), toStringArray(fields), {\n ...options,\n start: start as DateLike | undefined,\n end,\n });\n}\n\nexport async function bdh(\n tickers: string | readonly string[],\n fields: string | readonly string[],\n options: BdhOptions = {},\n): Promise<unknown> {\n return await abdh(tickers, fields, options);\n}\n\nexport async function abds(\n tickers: string | readonly string[],\n fields: string | readonly string[],\n overrides?: OverridesMap ,\n options: BdpOptions = {},\n): Promise<unknown> {\n const engine = await getConfiguredEngine();\n const normalizedOptions: BdpOptions = isPlainObject(overrides)\n ? { ...options, overrides: { ...(options.overrides ?? {}), ...overrides } }\n : options;\n return await engine.bds(\n toStringArray(tickers),\n toStringArray(fields),\n normalizedOptions,\n );\n}\n\nexport async function bds(\n tickers: string | readonly string[],\n fields: string | readonly string[],\n options: BdpOptions = {},\n): Promise<unknown> {\n return await abds(tickers, fields, undefined, options);\n}\n\nexport async function abdib(\n ticker: string,\n dt?: DateTimeLike | BdibOptions,\n interval: number | BdibOptions = 1,\n options: BdibOptions = {},\n): Promise<unknown> {\n const engine = await getConfiguredEngine();\n // Distinguish a BdibOptions plain object from a Date / Luxon DateTime, both\n // of which would also pass an ``isPlainObject`` check on bare typeof checks.\n const dtIsOptions =\n isPlainObject(dt) && !(dt instanceof Date) && !hasToJSDate(dt);\n if (dtIsOptions && interval === 1 && Object.keys(options).length === 0) {\n return await engine.bdib(toRequestString(ticker), dt);\n }\n const normalizedOptions: BdibOptions = isPlainObject(interval)\n ? { ...(interval as BdibOptions) }\n : { ...options, interval: typeof interval === 'number' ? interval : 1 };\n if (\n normalizedOptions.start === undefined &&\n normalizedOptions.end === undefined\n ) {\n if (dt === undefined) {\n throw new TypeError('abdib requires dt or explicit start/end options');\n }\n const range = fullDayRange(dt as DateTimeLike);\n normalizedOptions.start = range.start;\n normalizedOptions.end = range.end;\n }\n return await engine.bdib(toRequestString(ticker), normalizedOptions);\n}\n\nexport async function bdib(ticker: string, options: BdibOptions = {}): Promise<unknown> {\n return await abdib(ticker, options);\n}\n\nexport async function abdtick(\n ticker: string,\n start: DateTimeLike | null | undefined,\n end: DateTimeLike | null | undefined,\n options: BdtickOptions = {},\n): Promise<unknown> {\n if (start === undefined || start === null || end === undefined || end === null) {\n throw new TypeError('abdtick requires both start and end datetimes');\n }\n const engine = await getConfiguredEngine();\n return await engine.bdtick(toRequestString(ticker), { ...options, start, end });\n}\n\nexport async function bdtick(ticker: string, options: BdtickOptions = {}): Promise<unknown> {\n const engine = await getConfiguredEngine();\n return await engine.bdtick(toRequestString(ticker), options);\n}\n\nexport async function asubscribe(\n tickers: string | readonly string[],\n fields: string | readonly string[],\n options: StreamOptions = {},\n): Promise<Subscription> {\n const engine = await getConfiguredEngine();\n return await engine.subscribe(toStringArray(tickers), toStringArray(fields), options);\n}\n\nexport async function subscribe(\n tickers: string | readonly string[],\n fields: string | readonly string[],\n options: StreamOptions = {},\n): Promise<Subscription> {\n return await asubscribe(tickers, fields, options);\n}\n\nasync function acdxInfo(ticker: string, options: BdpOptions = {}): Promise<unknown> {\n const engine = await getConfiguredEngine();\n return await engine.bdp([toRequestString(ticker)], [...CDX_INFO_FIELDS], options);\n}\n\nasync function acdxPricing(ticker: string, options: CdxOptions = {}): Promise<unknown> {\n const engine = await getConfiguredEngine();\n return await engine.bdp(\n [toRequestString(ticker)],\n [...CDX_PRICING_FIELDS],\n normalizeRecoveryOptions(options),\n );\n}\n\nasync function acdxRisk(ticker: string, options: CdxOptions = {}): Promise<unknown> {\n const engine = await getConfiguredEngine();\n return await engine.bdp(\n [toRequestString(ticker)],\n [...CDX_RISK_FIELDS],\n normalizeRecoveryOptions(options),\n );\n}\n\nexport const blp = Object.freeze({\n bdp,\n bdh,\n bds,\n bdib,\n bdtick,\n subscribe,\n abdp,\n abdh,\n abds,\n abdib,\n abdtick,\n asubscribe,\n});\n\nexport const ext = Object.freeze({\n cdx: Object.freeze({\n acdx_info: acdxInfo,\n acdx_pricing: acdxPricing,\n acdx_risk: acdxRisk,\n }),\n\n parseDate: native.extParseDate,\n fmtDate: native.extFmtDate,\n\n pivotToWide: native.extPivotToWide,\n isLongFormat: native.extIsLongFormat,\n\n parseTicker: native.extParseTicker,\n isSpecificContract: native.extIsSpecificContract,\n buildFuturesTicker: native.extBuildFuturesTicker,\n normalizeTickers: native.extNormalizeTickers,\n filterEquityTickers: native.extFilterEquityTickers,\n\n generateFuturesCandidates: native.extGenerateFuturesCandidates,\n validateGenericTicker: native.extValidateGenericTicker,\n contractIndex: native.extContractIndex,\n filterCandidatesByCycle: native.extFilterCandidatesByCycle,\n filterValidContracts: native.extFilterValidContracts,\n\n parseCdxTicker: native.extParseCdxTicker,\n previousCdxSeries: native.extPreviousCdxSeries,\n cdxGenToSpecific: native.extCdxGenToSpecific,\n\n buildFxPair: native.extBuildFxPair,\n sameCurrency: native.extSameCurrency,\n currenciesNeedingConversion: native.extCurrenciesNeedingConversion,\n\n renameDividendColumns: native.extRenameDividendColumns,\n renameEtfColumns: native.extRenameEtfColumns,\n\n getMonthCode: native.extGetMonthCode,\n getMonthName: native.extGetMonthName,\n getFuturesMonths: native.extGetFuturesMonths,\n getDvdType: native.extGetDvdType,\n getDvdTypes: native.extGetDvdTypes,\n getDvdCols: native.extGetDvdCols,\n getEtfCols: native.extGetEtfCols,\n\n buildYasOverrides: native.extBuildYasOverrides,\n\n buildEarningHeaderRename: native.extBuildEarningHeaderRename,\n calculateLevelPercentages: native.extCalculateLevelPercentages,\n\n buildPreferredsQuery: native.extBuildPreferredsQuery,\n buildCorporateBondsQuery: native.extBuildCorporateBondsQuery,\n buildEtfHoldingsQuery: native.extBuildEtfHoldingsQuery,\n\n defaultTurnoverDates: native.extDefaultTurnoverDates,\n defaultBqrDatetimes: native.extDefaultBqrDatetimes,\n\n deriveSessions: native.extDeriveSessions,\n getMarketRule: native.extGetMarketRule,\n inferTimezone: native.extInferTimezone,\n setExchangeOverride: native.extSetExchangeOverride,\n getExchangeOverride: native.extGetExchangeOverride,\n clearExchangeOverride: native.extClearExchangeOverride,\n listExchangeOverrides: native.extListExchangeOverrides,\n sessionTimesToUtc: native.extSessionTimesToUtc,\n});\n\nexport function version(): string {\n return packageJson.version;\n}\n\nexport const setLogLevel = native.setLogLevel;\nexport const getLogLevel = native.getLogLevel;\n\n// Issue #317: native datetime/date acceptance helpers, re-exported.\nexport { formatDate, formatDateTime } from './dates';\n\nexport {\n BlpError,\n BlpSessionError,\n BlpRequestError,\n BlpValidationError,\n BlpTimeoutError,\n BlpInternalError,\n wrapError,\n};\n\nexport type {\n ActiveCdxOptions,\n AuthConfig,\n BackendKind,\n BdhOptions,\n BdibOptions,\n BdpOptions,\n BdtickOptions,\n BeqsOptions,\n BfldsOptions,\n BlkpOptions,\n BqlOptions,\n BqrOptions,\n BsrchOptions,\n BtaOptions,\n CdxOptions,\n CdxTickerInfo,\n CorporateBondsOptions,\n DateLike,\n DateTimeLike,\n DividendOptions,\n EngineConfig,\n EtfHoldingsOptions,\n ExchangeInfoResult,\n ExchangeOverrideInput,\n FieldInfo,\n FormatKind,\n FuturesCandidate,\n FuturesResolveOptions,\n FxPairInfo,\n MarketRule,\n OverridesMap,\n PreferredsOptions,\n PrimitiveValue,\n RecipeBackendOptions,\n RequestInput,\n RequestOptions,\n ServerAddress,\n SessionWindowsInfo,\n Socks5Config,\n StreamOptions,\n StringPair,\n SubscriptionStats,\n TickerParts,\n TimeRange,\n TlsConfig,\n TurnoverOptions,\n YasOptions,\n};\n"]}
1
+ {"version":3,"sources":["../src/arrow-zero-copy.ts","../src/dates.ts","../src/errors.ts","../src/native/platform-map.ts","../src/native/resolve-native.ts","../src/index.ts"],"names":["Field","Schema","makeData","Struct","Table","RecordBatch","Bool","Binary","DateDay","DateMillisecond","Float32","Float64","Int8","Int16","Int32","Int64","LargeBinary","LargeUtf8","Null","TimeMillisecond","TimeSecond","TimeMicrosecond","TimeNanosecond","TimestampMillisecond","TimestampNanosecond","TimestampSecond","TimestampMicrosecond","Uint8","Uint16","Uint32","Uint64","Utf8","dt","createRequire","fs","path","nodeRequire","tableFromIPC","json"],"mappings":"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","file":"index.js","sourcesContent":["import type { Data, DataType } from 'apache-arrow';\n\nimport {\n Binary,\n Bool,\n DateDay,\n DateMillisecond,\n Field,\n Float32,\n Float64,\n Int8,\n Int16,\n Int32,\n Int64,\n LargeBinary,\n LargeUtf8,\n Null,\n RecordBatch,\n Schema,\n Struct,\n Table,\n TimeMillisecond,\n TimeMicrosecond,\n TimeNanosecond,\n TimeSecond,\n TimestampMillisecond,\n TimestampMicrosecond,\n TimestampNanosecond,\n TimestampSecond,\n Uint8,\n Uint16,\n Uint32,\n Uint64,\n Utf8,\n makeData,\n} from 'apache-arrow';\n\nimport type { NativeArrowColumn, NativeArrowZeroCopyBatch } from './napi';\n\nconst NATIVE_ARROW_BUFFERS = Symbol('@xbbg/nativeArrowBuffers');\n\nfunction unsupportedNativeArrowType(type: never): never {\n throw new Error(`Unsupported native Arrow column type: ${String(type)}`);\n}\n\ninterface TypedArrayConstructor<T extends ArrayBufferView> {\n readonly BYTES_PER_ELEMENT: number;\n new (buffer: ArrayBufferLike, byteOffset: number, length: number): T;\n}\n\nexport function tableFromNativeArrowBatch(batch: NativeArrowZeroCopyBatch): Table {\n const retainedBuffers: Buffer[] = [];\n const fields = batch.columns.map((column) => {\n const type = arrowType(column);\n return new Field(column.name, type, column.nullable);\n });\n const children = batch.columns.map((column) => dataFromColumn(column, retainedBuffers));\n\n const schema = new Schema(fields);\n const structData = makeData({\n children,\n length: batch.numRows,\n type: new Struct(fields),\n });\n const table = new Table(schema, new RecordBatch(schema, structData));\n\n // Keep the original Node Buffer views alive. Numeric Arrow vectors retain typed\n // Views over the same backing ArrayBuffers, but keeping these Buffer objects on\n // The Table makes the NAPI external-buffer lifetime explicit.\n Object.defineProperty(table, NATIVE_ARROW_BUFFERS, {\n enumerable: false,\n value: retainedBuffers,\n });\n\n return table;\n}\n\nfunction dataFromColumn(column: NativeArrowColumn, retainedBuffers: Buffer[]): Data {\n const nullBitmap = optionalUint8View(column.nullBitmap, retainedBuffers);\n switch (column.type) {\n case 'bool': {\n return makeData({\n type: new Bool(),\n length: column.length,\n nullCount: column.nullCount,\n nullBitmap,\n data: requiredUint8View(column, retainedBuffers, Math.ceil(column.length / 8)),\n });\n }\n case 'binary': {\n return makeData({\n type: new Binary(),\n length: column.length,\n nullCount: column.nullCount,\n nullBitmap,\n valueOffsets: requiredOffsets(column, retainedBuffers),\n data: requiredUint8View(column, retainedBuffers),\n });\n }\n case 'date32': {\n return scalarData(column, retainedBuffers, nullBitmap, new DateDay(), Int32Array);\n }\n case 'date64': {\n return scalarData(column, retainedBuffers, nullBitmap, new DateMillisecond(), BigInt64Array);\n }\n case 'float32': {\n return scalarData(column, retainedBuffers, nullBitmap, new Float32(), Float32Array);\n }\n case 'float64': {\n return scalarData(column, retainedBuffers, nullBitmap, new Float64(), Float64Array);\n }\n case 'int8': {\n return scalarData(column, retainedBuffers, nullBitmap, new Int8(), Int8Array);\n }\n case 'int16': {\n return scalarData(column, retainedBuffers, nullBitmap, new Int16(), Int16Array);\n }\n case 'int32': {\n return scalarData(column, retainedBuffers, nullBitmap, new Int32(), Int32Array);\n }\n case 'int64': {\n return scalarData(column, retainedBuffers, nullBitmap, new Int64(), BigInt64Array);\n }\n case 'large_binary': {\n return makeData({\n type: new LargeBinary(),\n length: column.length,\n nullCount: column.nullCount,\n nullBitmap,\n valueOffsets: requiredLargeOffsets(column, retainedBuffers),\n data: requiredUint8View(column, retainedBuffers),\n });\n }\n case 'large_utf8': {\n return makeData({\n type: new LargeUtf8(),\n length: column.length,\n nullCount: column.nullCount,\n nullBitmap,\n valueOffsets: requiredLargeOffsets(column, retainedBuffers),\n data: requiredUint8View(column, retainedBuffers),\n });\n }\n case 'null': {\n return makeData({\n type: new Null(),\n length: column.length,\n });\n }\n case 'time32_ms': {\n return scalarData(column, retainedBuffers, nullBitmap, new TimeMillisecond(), Int32Array);\n }\n case 'time32_s': {\n return scalarData(column, retainedBuffers, nullBitmap, new TimeSecond(), Int32Array);\n }\n case 'time64_us': {\n return scalarData(column, retainedBuffers, nullBitmap, new TimeMicrosecond(), BigInt64Array);\n }\n case 'time64_ns': {\n return scalarData(column, retainedBuffers, nullBitmap, new TimeNanosecond(), BigInt64Array);\n }\n case 'timestamp_ms': {\n return scalarData(\n column,\n retainedBuffers,\n nullBitmap,\n new TimestampMillisecond(column.timezone),\n BigInt64Array,\n );\n }\n case 'timestamp_ns': {\n return scalarData(\n column,\n retainedBuffers,\n nullBitmap,\n new TimestampNanosecond(column.timezone),\n BigInt64Array,\n );\n }\n case 'timestamp_s': {\n return scalarData(\n column,\n retainedBuffers,\n nullBitmap,\n new TimestampSecond(column.timezone),\n BigInt64Array,\n );\n }\n case 'timestamp_us': {\n return scalarData(\n column,\n retainedBuffers,\n nullBitmap,\n new TimestampMicrosecond(column.timezone),\n BigInt64Array,\n );\n }\n case 'uint8': {\n return scalarData(column, retainedBuffers, nullBitmap, new Uint8(), Uint8Array);\n }\n case 'uint16': {\n return scalarData(column, retainedBuffers, nullBitmap, new Uint16(), Uint16Array);\n }\n case 'uint32': {\n return scalarData(column, retainedBuffers, nullBitmap, new Uint32(), Uint32Array);\n }\n case 'uint64': {\n return scalarData(column, retainedBuffers, nullBitmap, new Uint64(), BigUint64Array);\n }\n case 'utf8': {\n return makeData({\n type: new Utf8(),\n length: column.length,\n nullCount: column.nullCount,\n nullBitmap,\n valueOffsets: requiredOffsets(column, retainedBuffers),\n data: requiredUint8View(column, retainedBuffers),\n });\n }\n }\n return unsupportedNativeArrowType(column.type);\n}\n\nfunction arrowType(column: NativeArrowColumn): DataType {\n switch (column.type) {\n case 'bool': {\n return new Bool();\n }\n case 'binary': {\n return new Binary();\n }\n case 'date32': {\n return new DateDay();\n }\n case 'date64': {\n return new DateMillisecond();\n }\n case 'float32': {\n return new Float32();\n }\n case 'float64': {\n return new Float64();\n }\n case 'int8': {\n return new Int8();\n }\n case 'int16': {\n return new Int16();\n }\n case 'int32': {\n return new Int32();\n }\n case 'int64': {\n return new Int64();\n }\n case 'large_binary': {\n return new LargeBinary();\n }\n case 'large_utf8': {\n return new LargeUtf8();\n }\n case 'null': {\n return new Null();\n }\n case 'time32_ms': {\n return new TimeMillisecond();\n }\n case 'time32_s': {\n return new TimeSecond();\n }\n case 'time64_us': {\n return new TimeMicrosecond();\n }\n case 'time64_ns': {\n return new TimeNanosecond();\n }\n case 'timestamp_ms': {\n return new TimestampMillisecond(column.timezone);\n }\n case 'timestamp_ns': {\n return new TimestampNanosecond(column.timezone);\n }\n case 'timestamp_s': {\n return new TimestampSecond(column.timezone);\n }\n case 'timestamp_us': {\n return new TimestampMicrosecond(column.timezone);\n }\n case 'uint8': {\n return new Uint8();\n }\n case 'uint16': {\n return new Uint16();\n }\n case 'uint32': {\n return new Uint32();\n }\n case 'uint64': {\n return new Uint64();\n }\n case 'utf8': {\n return new Utf8();\n }\n }\n return unsupportedNativeArrowType(column.type);\n}\n\nfunction scalarData<T extends DataType & { TArray: ArrayBufferView }>(\n column: NativeArrowColumn,\n retainedBuffers: Buffer[],\n nullBitmap: Uint8Array | undefined,\n type: T,\n ctor: TypedArrayConstructor<T['TArray']>,\n): Data<T> {\n return makeData({\n data: requiredTypedView(column, ctor, retainedBuffers),\n length: column.length,\n nullBitmap,\n nullCount: column.nullCount,\n type,\n } as never) as Data<T>;\n}\n\nfunction requiredTypedView<T extends ArrayBufferView>(\n column: NativeArrowColumn,\n ctor: TypedArrayConstructor<T>,\n retainedBuffers: Buffer[],\n): T {\n const buffer = requireBuffer(column, 'data');\n assertBufferByteLength(column, 'data', buffer, column.length, ctor.BYTES_PER_ELEMENT);\n retainedBuffers.push(buffer);\n return new ctor(buffer.buffer, buffer.byteOffset, column.length);\n}\n\nfunction requiredOffsets(column: NativeArrowColumn, retainedBuffers: Buffer[]): Int32Array {\n const buffer = requireBuffer(column, 'offsets');\n assertBufferByteLength(\n column,\n 'offsets',\n buffer,\n column.length + 1,\n Int32Array.BYTES_PER_ELEMENT,\n );\n retainedBuffers.push(buffer);\n return new Int32Array(buffer.buffer, buffer.byteOffset, column.length + 1);\n}\n\nfunction requiredLargeOffsets(column: NativeArrowColumn, retainedBuffers: Buffer[]): BigInt64Array {\n const buffer = requireBuffer(column, 'offsets');\n assertBufferByteLength(\n column,\n 'offsets',\n buffer,\n column.length + 1,\n BigInt64Array.BYTES_PER_ELEMENT,\n );\n retainedBuffers.push(buffer);\n return new BigInt64Array(buffer.buffer, buffer.byteOffset, column.length + 1);\n}\n\nfunction requiredUint8View(\n column: NativeArrowColumn,\n retainedBuffers: Buffer[],\n byteLength?: number,\n): Uint8Array {\n const buffer = requireBuffer(column, 'data');\n if (byteLength !== undefined) {\n assertBufferByteLength(column, 'data', buffer, byteLength, 1);\n }\n retainedBuffers.push(buffer);\n return new Uint8Array(buffer.buffer, buffer.byteOffset, byteLength ?? buffer.byteLength);\n}\n\nfunction optionalUint8View(\n buffer: Buffer | undefined,\n retainedBuffers: Buffer[],\n): Uint8Array | undefined {\n if (buffer === undefined) {\n return undefined;\n }\n retainedBuffers.push(buffer);\n return new Uint8Array(buffer.buffer, buffer.byteOffset, buffer.byteLength);\n}\n\nfunction assertBufferByteLength(\n column: NativeArrowColumn,\n property: 'data' | 'offsets',\n buffer: Buffer,\n elements: number,\n bytesPerElement: number,\n): void {\n if (!Number.isSafeInteger(elements) || elements < 0) {\n throw new Error(\n `native Arrow column ${column.name} has invalid ${property} element count: ${elements}`,\n );\n }\n const requiredBytes = elements * bytesPerElement;\n if (!Number.isSafeInteger(requiredBytes) || buffer.byteLength < requiredBytes) {\n throw new Error(\n `native Arrow column ${column.name} ${property} buffer is too small: ` +\n `expected at least ${requiredBytes} bytes, got ${buffer.byteLength}`,\n );\n }\n}\n\nfunction requireBuffer(column: NativeArrowColumn, property: 'data' | 'offsets'): Buffer {\n const buffer = column[property];\n if (buffer === undefined) {\n throw new Error(`native Arrow column ${column.name} is missing ${property} buffer`);\n }\n return buffer;\n}\n","/**\n * Date / datetime normalization helpers (issue #317).\n *\n * These helpers convert user-supplied date-like values into the wire formats\n * the Bloomberg engine expects:\n *\n * - {@link formatDate} -> Bloomberg-native ``YYYYMMDD`` (used by historical\n * requests, override fields, recipe inputs).\n * - {@link formatDateTime} -> RFC 3339 / ISO 8601 with optional offset (used\n * by intraday requests).\n *\n * They live in a dedicated module so the public surface in ``index.ts`` can\n * be tested without dragging in the native NAPI addon.\n */\n\nimport type { DateLike, DateTimeLike } from './types';\n\nconst ISO_DATE_RE = /^\\d{4}[-/]\\d{2}[-/]\\d{2}$/u;\nconst BBG_DATE_RE = /^\\d{8}$/u;\n// Whole-string ambiguous (e.g. \"01/17/2023\") OR ambiguous prefix in a\n// Datetime string (e.g. \"01/17/2023 10:30\" / \"01/17/2023T10:30\"). Year-leading\n// ISO is not flagged because ISO_DATE_RE matches it explicitly.\nconst AMBIGUOUS_DATE_RE = /^\\d{1,2}[-/]\\d{1,2}[-/]\\d{2,4}([T \\D]|$)/u;\n\nexport function hasToJSDate(value: unknown): value is { toJSDate: () => Date } {\n return (\n typeof value === 'object' &&\n value !== null &&\n 'toJSDate' in value &&\n typeof (value as { toJSDate?: unknown }).toJSDate === 'function'\n );\n}\n\nfunction rejectAmbiguousString(value: string): void {\n if (AMBIGUOUS_DATE_RE.test(value) && !ISO_DATE_RE.test(value.trim())) {\n throw new TypeError(\n `Ambiguous date format ${JSON.stringify(value)}: month/day order cannot be inferred. ` +\n `Use ISO 8601 (YYYY-MM-DD), Bloomberg-native (YYYYMMDD), or pass a Date / Luxon DateTime.`,\n );\n }\n}\n\nfunction dateLikeToJSDate(value: DateLike): Date {\n if (value instanceof Date) {\n return value;\n }\n if (typeof value === 'number') {\n return new Date(value);\n }\n if (hasToJSDate(value)) {\n return value.toJSDate();\n }\n if (typeof value === 'string') {\n const text = value.trim();\n rejectAmbiguousString(text);\n if (BBG_DATE_RE.test(text)) {\n const year = Number(text.slice(0, 4));\n const month = Number(text.slice(4, 6)) - 1;\n const day = Number(text.slice(6, 8));\n const dt = new Date(Date.UTC(year, month, day));\n if (Number.isNaN(dt.getTime())) {\n throw new TypeError(`Invalid Bloomberg-native date ${JSON.stringify(value)}`);\n }\n return dt;\n }\n // Replace the first separating space with 'T' so \"2023-01-17 10:30\" parses.\n const normalized = text.replace(' ', 'T');\n const dt = new Date(normalized);\n if (Number.isNaN(dt.getTime())) {\n throw new TypeError(\n `Cannot parse ${JSON.stringify(value)} as a date. Expected ISO 8601, ` +\n `Bloomberg-native YYYYMMDD, Date, epoch ms, or Luxon DateTime.`,\n );\n }\n return dt;\n }\n throw new TypeError(`Cannot convert ${typeof value} value ${String(value)} to a Date.`);\n}\n\n/**\n * Format a date-like value to ``YYYYMMDD`` (Bloomberg-native).\n *\n * Accepts ``Date``, ISO 8601 / Bloomberg-native strings, epoch ms, and any\n * duck-typed Luxon-style ``{ toJSDate(): Date }``. Strict on ambiguous formats.\n */\nexport function formatDate(value: DateLike | undefined | null): string | undefined {\n if (value === undefined || value === null) {\n return undefined;\n }\n if (typeof value === 'string') {\n const text = value.trim();\n if (text.length === 0) {\n return undefined;\n }\n if (BBG_DATE_RE.test(text)) {\n return text;\n }\n rejectAmbiguousString(text);\n if (ISO_DATE_RE.test(text)) {\n return text.replaceAll(/[-/]/gu, '');\n }\n }\n const date = dateLikeToJSDate(value);\n const y = String(date.getUTCFullYear()).padStart(4, '0');\n const m = String(date.getUTCMonth() + 1).padStart(2, '0');\n const d = String(date.getUTCDate()).padStart(2, '0');\n return `${y}${m}${d}`;\n}\n\n/**\n * Format a datetime-like value to RFC 3339 (ISO 8601 with optional offset).\n *\n * Naive ISO strings without a tz suffix are returned as-is so the Rust engine\n * can apply the caller's ``request_tz``. Anything else (Date, epoch ms, Luxon\n * DateTime, or ISO with explicit tz) is converted to a tz-bearing ISO string.\n */\nexport function formatDateTime(value: DateTimeLike | undefined | null): string | undefined {\n if (value === undefined || value === null) {\n return undefined;\n }\n if (typeof value === 'string') {\n const text = value.trim();\n if (text.length === 0) {\n return undefined;\n }\n rejectAmbiguousString(text);\n if (BBG_DATE_RE.test(text)) {\n return `${text.slice(0, 4)}-${text.slice(4, 6)}-${text.slice(6, 8)}T00:00:00`;\n }\n // Preserve user-supplied naive strings; the Rust engine interprets them\n // According to ``request_tz``.\n return text.replace(' ', 'T');\n }\n const date = dateLikeToJSDate(value);\n return date.toISOString();\n}\n","export interface BlpRequestErrorOptions {\n readonly service?: string;\n readonly operation?: string;\n readonly request_id?: string;\n readonly code?: string | number;\n}\n\nexport interface BlpValidationErrorOptions {\n readonly element?: string;\n readonly suggestion?: string;\n}\n\nexport class BlpError extends Error {\n public constructor(message: string) {\n super(message);\n this.name = new.target.name;\n }\n}\n\nexport class BlpSessionError extends BlpError {}\n\nexport class BlpRequestError extends BlpError {\n public readonly service?: string;\n public readonly operation?: string;\n public readonly request_id?: string;\n public readonly code?: string | number;\n\n public constructor(message: string, options: BlpRequestErrorOptions = {}) {\n super(message);\n this.service = options.service;\n this.operation = options.operation;\n this.request_id = options.request_id;\n this.code = options.code;\n }\n}\n\nexport class BlpValidationError extends BlpError {\n public readonly element?: string;\n public readonly suggestion?: string;\n\n public constructor(message: string, options: BlpValidationErrorOptions = {}) {\n super(message);\n this.element = options.element;\n this.suggestion = options.suggestion;\n }\n}\n\nexport class BlpTimeoutError extends BlpError {}\n\nexport class BlpInternalError extends BlpError {}\n\nexport function wrapError(napiError: unknown): BlpError {\n if (napiError instanceof BlpError) {\n return napiError;\n }\n const msg =\n napiError instanceof Error ? napiError.message : typeof napiError === 'string' ? napiError : '';\n\n // Session errors\n if (\n msg.includes('Session start failed') ||\n msg.includes('session start failed') ||\n msg.includes('Failed to start session') ||\n msg.includes('Failed to open service') ||\n msg.includes('failed to spawn worker') ||\n msg.includes('connect event failed')\n ) {\n return new BlpSessionError(msg);\n }\n\n // Request errors\n if (msg.includes('Request failed') || msg.includes('Subscription failed')) {\n const options: BlpRequestErrorOptions = parseRequestOptions(msg);\n return new BlpRequestError(msg, options);\n }\n\n // Validation errors\n if (\n msg.includes('Invalid argument') ||\n msg.includes('Configuration error') ||\n msg.includes('Operation not found') ||\n msg.includes('Schema element not found') ||\n msg.includes('Schema type mismatch') ||\n msg.includes('Unsupported schema') ||\n msg.includes('invalid extractor') ||\n msg.includes('(did you mean')\n ) {\n const options: BlpValidationErrorOptions = parseValidationOptions(msg);\n return new BlpValidationError(msg, options);\n }\n\n // Timeout errors\n if (msg.includes('Request timed out')) {\n return new BlpTimeoutError(msg);\n }\n\n // Internal errors\n if (\n msg.includes('Internal error') ||\n msg.includes('Channel closed') ||\n msg.includes('Stream buffer full') ||\n msg.includes('Request was cancelled')\n ) {\n return new BlpInternalError(msg);\n }\n\n return new BlpError(msg);\n}\n\nfunction parseRequestOptions(msg: string): BlpRequestErrorOptions {\n const options: {\n service?: string;\n operation?: string;\n request_id?: string;\n code?: string | number;\n } = {};\n const serviceOpMatch = /on ([^:]+)::([^ (]+)/u.exec(msg);\n if (serviceOpMatch !== null) {\n options.service = serviceOpMatch[1];\n options.operation = serviceOpMatch[2];\n }\n const requestIdMatch = /\\[request_id=([^\\]]+)\\]/u.exec(msg);\n if (requestIdMatch !== null) {\n options.request_id = requestIdMatch[1];\n }\n return options;\n}\n\nfunction parseValidationOptions(msg: string): BlpValidationErrorOptions {\n const options: { element?: string; suggestion?: string } = {};\n const suggestionMatch = /\\(did you mean '([^']+)'\\?\\)/u.exec(msg);\n if (suggestionMatch !== null) {\n options.suggestion = suggestionMatch[1];\n }\n return options;\n}\n","export const platformPackages = Object.freeze({\n 'darwin-arm64': '@xbbg/core-darwin-arm64',\n 'linux-x64': '@xbbg/core-linux-x64',\n 'win32-x64': '@xbbg/core-win32-x64',\n} as const);\n\nexport type PlatformKey = keyof typeof platformPackages;\n\nexport function platformKey(\n platform: NodeJS.Platform = process.platform,\n arch: string = process.arch,\n): string {\n return `${platform}-${arch}`;\n}\n","import fs from 'node:fs';\nimport { createRequire } from 'node:module';\nimport path from 'node:path';\n\nimport { platformKey, platformPackages } from './platform-map';\n\nconst nodeRequire = createRequire(__filename);\n\ninterface NativePackageResolution {\n readonly binaryPath: string;\n}\n\nexport interface NativeAddonResolution {\n readonly key: string;\n readonly packageName: string | null;\n readonly binaryPath: string | null;\n}\n\nexport interface NativeResolverOptions {\n readonly key: string;\n readonly packageName: string | null;\n readonly repoRoot: string;\n readonly requirePackage: (id: string) => unknown;\n readonly exists: (target: string) => boolean;\n}\n\nfunction exists(target: string): boolean {\n try {\n fs.accessSync(target);\n return true;\n } catch {\n return false;\n }\n}\n\nfunction isResolutionObject(value: unknown): value is NativePackageResolution {\n return typeof value === 'object' && value !== null && !Array.isArray(value);\n}\n\nfunction validateNativePackage(packageName: string, resolved: unknown): NativePackageResolution {\n if (!isResolutionObject(resolved)) {\n throw new Error(`Invalid native package ${packageName}: expected an object with binaryPath`);\n }\n if (!('binaryPath' in resolved)) {\n throw new Error(`Invalid native package ${packageName}: missing binaryPath`);\n }\n if (typeof resolved.binaryPath !== 'string') {\n throw new TypeError(`Invalid native package ${packageName}: binaryPath must be a string`);\n }\n return resolved;\n}\n\nfunction localPackageIndex(repoRoot: string, packageName: string): string {\n const dirName = packageName.replace('@xbbg/', 'xbbg-');\n return path.join(repoRoot, 'packages', dirName, 'index.js');\n}\n\nfunction isOptionalPackageMissing(err: unknown, packageName: string): boolean {\n if (!(err instanceof Error)) {\n return false;\n }\n const code = 'code' in err ? (err as { readonly code?: unknown }).code : undefined;\n if (code !== 'MODULE_NOT_FOUND') {\n return false;\n }\n return (\n err.message.includes(`Cannot find module '${packageName}'`) ||\n err.message.includes(`Cannot find module \"${packageName}\"`) ||\n err.message.includes(`Cannot find package '${packageName}'`) ||\n err.message.includes(`Cannot find package \"${packageName}\"`)\n );\n}\n\nfunction resolveInstalledPackage(\n packageName: string,\n requirePackage: (id: string) => unknown,\n existsFile: (target: string) => boolean,\n): NativePackageResolution | null {\n try {\n const resolved = validateNativePackage(packageName, requirePackage(packageName));\n if (!existsFile(resolved.binaryPath)) {\n throw new Error(\n `Invalid native package ${packageName}: binaryPath does not exist: ${resolved.binaryPath}`,\n );\n }\n return resolved;\n } catch (error) {\n if (isOptionalPackageMissing(error, packageName)) {\n return null;\n }\n throw error;\n }\n}\n\nfunction resolveLocalPackage(\n repoRoot: string,\n packageName: string,\n requirePackage: (id: string) => unknown,\n existsFile: (target: string) => boolean,\n): NativePackageResolution | null {\n const localIndex = localPackageIndex(repoRoot, packageName);\n if (!existsFile(localIndex)) {\n return null;\n }\n\n const resolved = validateNativePackage(packageName, requirePackage(localIndex));\n if (!existsFile(resolved.binaryPath)) {\n throw new Error(\n `Invalid native package ${packageName}: binaryPath does not exist: ${resolved.binaryPath}`,\n );\n }\n return resolved;\n}\n\nexport function resolveNativeAddonCore(options: NativeResolverOptions): NativeAddonResolution {\n const { key, packageName, repoRoot, requirePackage, exists: existsFile } = options;\n if (packageName === null) {\n return { binaryPath: null, key, packageName: null };\n }\n\n const installed = resolveInstalledPackage(packageName, requirePackage, existsFile);\n if (installed !== null) {\n return { binaryPath: installed.binaryPath, key, packageName };\n }\n\n const local = resolveLocalPackage(repoRoot, packageName, requirePackage, existsFile);\n if (local !== null) {\n return { binaryPath: local.binaryPath, key, packageName };\n }\n\n return { binaryPath: null, key, packageName };\n}\n\nexport function resolveNativeAddon(repoRoot: string): NativeAddonResolution {\n const key = platformKey();\n const packageName = (platformPackages as Readonly<Record<string, string>>)[key] ?? null;\n return resolveNativeAddonCore({\n exists,\n key,\n packageName,\n repoRoot,\n requirePackage: (id: string): unknown => nodeRequire(id) as unknown,\n });\n}\n","import type { Table } from 'apache-arrow';\n\nimport { tableFromIPC } from 'apache-arrow';\nimport fs from 'node:fs';\nimport { createRequire } from 'node:module';\nimport path from 'node:path';\n\nimport { tableFromNativeArrowBatch } from './arrow-zero-copy';\n// Date / datetime helpers (#317): isolated module so they can be tested\n// Without loading the native NAPI addon. Re-exported as public API below.\nimport { formatDate, formatDateTime, hasToJSDate } from './dates';\nimport {\n BlpError,\n BlpInternalError,\n BlpRequestError,\n BlpSessionError,\n BlpTimeoutError,\n BlpValidationError,\n wrapError,\n} from './errors';\nimport type {\n NativeAddon,\n NativeArrowZeroCopyBatch,\n NativeEngine,\n NativeSubscription,\n NativeSubscriptionUpdate,\n} from './napi';\nimport { resolveNativeAddon } from './native/resolve-native';\nimport type {\n ActiveCdxOptions,\n AuthConfig,\n BackendKind,\n BdhOptions,\n BdibOptions,\n BdpOptions,\n BdtickOptions,\n BeqsOptions,\n BfldsOptions,\n BlkpOptions,\n BqlOptions,\n BqrOptions,\n BsrchOptions,\n BtaOptions,\n CdxOptions,\n CdxTickerInfo,\n CorporateBondsOptions,\n DateLike,\n DateTimeLike,\n DividendOptions,\n DividendYieldOptions,\n EngineConfig,\n EtfHoldingsOptions,\n ExchangeInfoResult,\n ExchangeOverrideInput,\n FieldInfo,\n FormatKind,\n FuturesCandidate,\n FuturesResolveOptions,\n FuturesCurveOptions,\n FxPairInfo,\n MarketRule,\n OverridesMap,\n IndexMembersOptions,\n PreferredsOptions,\n PrimitiveValue,\n RecipeBackendOptions,\n RequestInput,\n RequestOptions,\n ServerAddress,\n SessionWindowsInfo,\n Socks5Config,\n StreamOptions,\n StringPair,\n SubscriptionStats,\n TickerParts,\n TimeRange,\n TlsConfig,\n TurnoverOptions,\n VolFieldSpec,\n VolSurfaceOptions,\n VolSurfacePreset,\n YasOptions,\n} from './types';\n\nconst nodeRequire = createRequire(__filename);\n\ninterface PackageJsonShape {\n readonly version: string;\n}\n\ninterface PolarsModule {\n readIPC(buffer: Buffer): unknown;\n}\n\nfunction parsePackageJsonShape(value: unknown): PackageJsonShape {\n if (isPlainObject(value) && typeof value.version === 'string') {\n return { version: value.version };\n }\n throw new TypeError('@xbbg/core package.json is missing a string version field');\n}\n\nfunction isNativeAddon(value: unknown): value is NativeAddon {\n return (\n isPlainObject(value) &&\n typeof value.JsEngine === 'function' &&\n typeof value.getLogLevel === 'function' &&\n typeof value.setLogLevel === 'function'\n );\n}\n\nfunction requireNativeAddon(modulePath: string): NativeAddon {\n const loaded: unknown = nodeRequire(modulePath);\n if (isNativeAddon(loaded)) {\n return loaded;\n }\n throw new TypeError(`Native addon ${modulePath} does not expose the expected @xbbg/core surface`);\n}\n\nfunction isPolarsModule(value: unknown): value is PolarsModule {\n return isPlainObject(value) && typeof value.readIPC === 'function';\n}\n\nfunction requirePolarsModule(): PolarsModule {\n const loaded: unknown = nodeRequire('nodejs-polars');\n if (isPolarsModule(loaded)) {\n return loaded;\n }\n throw new TypeError('nodejs-polars did not expose readIPC(buffer)');\n}\n\nfunction isBdhOptionsInput(value: DateLike | BdhOptions | undefined): value is BdhOptions {\n return isPlainObject(value) && !(value instanceof Date) && !hasToJSDate(value);\n}\n\nfunction isBdibOptionsInput(\n value: DateTimeLike | BdibOptions | number | undefined,\n): value is BdibOptions {\n return isPlainObject(value) && !(value instanceof Date) && !hasToJSDate(value);\n}\n\nconst packageJson = parsePackageJsonShape(nodeRequire('../package.json'));\n\nfunction containsBlpapiRuntime(dir: string): boolean {\n if (dir.length === 0 || !fs.existsSync(dir)) {\n return false;\n }\n return [\n 'blpapi3_64.dll',\n 'blpapi3_32.dll',\n 'libblpapi3.dylib',\n 'libblpapi3_64.so',\n 'libblpapi3.so',\n ].some((name) => fs.existsSync(path.join(dir, name)));\n}\n\nfunction parseVersionParts(name: string): number[] | null {\n const parts = name.split('.').map((part) => Number(part));\n return parts.every((part) => Number.isInteger(part) && part >= 0) ? parts : null;\n}\n\nfunction compareSdkRoots(left: string, right: string): number {\n const leftParts = parseVersionParts(path.basename(left));\n const rightParts = parseVersionParts(path.basename(right));\n if (leftParts !== null && rightParts !== null) {\n const length = Math.max(leftParts.length, rightParts.length);\n for (let index = 0; index < length; index += 1) {\n const leftPart = leftParts[index] ?? 0;\n const rightPart = rightParts[index] ?? 0;\n if (leftPart !== rightPart) {\n return rightPart - leftPart;\n }\n }\n }\n if (leftParts !== null) {\n return -1;\n }\n if (rightParts !== null) {\n return 1;\n }\n return right.localeCompare(left);\n}\n\nfunction pushSdkRuntimeCandidates(candidates: string[], sdkRoot: string): void {\n const resolved = path.resolve(sdkRoot);\n candidates.push(resolved, path.join(resolved, 'bin'), path.join(resolved, 'lib'));\n}\n\nfunction resolveVendorSdkRoot(repoRoot: string): string | null {\n const vendorDir = path.join(repoRoot, 'vendor', 'blpapi-sdk');\n if (!fs.existsSync(vendorDir)) {\n return null;\n }\n const candidates = [vendorDir];\n for (const entry of fs.readdirSync(vendorDir, { withFileTypes: true })) {\n if (entry.isDirectory()) {\n candidates.push(path.join(vendorDir, entry.name));\n }\n }\n candidates.sort(compareSdkRoots);\n return (\n candidates.find((candidate) => {\n const dirs = [candidate, path.join(candidate, 'bin'), path.join(candidate, 'lib')];\n return dirs.some(containsBlpapiRuntime);\n }) ?? null\n );\n}\n\nfunction configureRuntimeSearchPath(): void {\n if (process.platform !== 'win32') {\n return;\n }\n\n const candidates: string[] = [];\n const libDir = process.env.BLPAPI_LIB_DIR;\n if (libDir !== undefined && libDir.length > 0) {\n candidates.push(path.resolve(libDir));\n }\n const root = process.env.BLPAPI_ROOT;\n if (root !== undefined && root.length > 0) {\n pushSdkRuntimeCandidates(candidates, root);\n }\n const repoRoot = path.resolve(__dirname, '..', '..');\n const devRoot = process.env.XBBG_DEV_SDK_ROOT;\n if (devRoot !== undefined && devRoot.length > 0) {\n pushSdkRuntimeCandidates(\n candidates,\n path.isAbsolute(devRoot) ? devRoot : path.resolve(repoRoot, devRoot),\n );\n }\n const vendorRoot = resolveVendorSdkRoot(repoRoot);\n if (vendorRoot !== null) {\n pushSdkRuntimeCandidates(candidates, vendorRoot);\n }\n\n for (const candidate of candidates) {\n if (!containsBlpapiRuntime(candidate)) {\n continue;\n }\n const currentPath = process.env.PATH ?? '';\n const parts = currentPath.split(';').filter((part) => part.length > 0);\n if (!parts.includes(candidate)) {\n process.env.PATH = currentPath.length > 0 ? `${candidate};${currentPath}` : candidate;\n }\n break;\n }\n}\n\nconfigureRuntimeSearchPath();\n\nfunction loadNative(): NativeAddon {\n const root = path.resolve(__dirname, '..', '..');\n\n const candidates = [\n path.join(__dirname, 'napi_xbbg.node'),\n path.join(__dirname, '..', 'napi_xbbg.node'),\n path.join(__dirname, 'napi-xbbg.node'),\n ];\n\n for (const candidate of candidates) {\n if (fs.existsSync(candidate)) {\n return requireNativeAddon(candidate);\n }\n }\n\n const { key, packageName, binaryPath } = resolveNativeAddon(root);\n if (binaryPath !== null) {\n return requireNativeAddon(binaryPath);\n }\n if (packageName === null) {\n throw new Error(\n `No packaged @xbbg/core native addon is available for ${key}. Build it locally with \"npm run build\" from js-xbbg.`,\n );\n }\n\n throw new Error(\n `Unable to load native napi-xbbg module for ${key}. Install ${packageName} via Bun/npm, or build it locally with \"npm run build\" from js-xbbg.`,\n );\n}\n\nconst native = loadNative();\n\n// ── Constants ───────────────────────────────────────────────────────────\n\nexport const Backend = Object.freeze({\n ARROW: 'arrow',\n JSON: 'json',\n POLARS: 'polars',\n}) satisfies Readonly<Record<string, BackendKind>>;\n\nexport const Format = Object.freeze({\n LONG: 'long',\n LONG_TYPED: 'long_typed',\n LONG_WITH_METADATA: 'long_with_metadata',\n SEMI_LONG: 'semi_long',\n}) satisfies Readonly<Record<string, FormatKind>>;\n\nconst CDX_INFO_FIELDS = Object.freeze([\n 'ROLLING_SERIES',\n 'VERSION',\n 'ON_THE_RUN_CURRENT_BD_INDICATOR',\n 'CDS_FIRST_ACCRUAL_START_DATE',\n 'NAME',\n 'NUM_CURRENT_COMPANIES_CCY_TKR',\n 'NUM_ORIG_COMPANIES_CRNCY_TKR',\n 'PX_LAST',\n]);\n\nconst CDX_PRICING_FIELDS = Object.freeze([\n 'PX_LAST',\n 'PX_BID',\n 'PX_ASK',\n 'UPFRONT_LAST',\n 'UPFRONT_BID',\n 'UPFRONT_ASK',\n 'CDS_FLAT_SPREAD',\n 'UPFRONT_FEE',\n 'PV_CDS_PREMIUM_LEG',\n 'PV_CDS_DEFAULT_LEG',\n]);\n\nconst CDX_RISK_FIELDS = Object.freeze([\n 'SW_CNV_BPV',\n 'SW_EQV_BPV',\n 'CDS_SPREAD_MID_MODIFIED_DURATION',\n 'CDS_SPREAD_MID_CONVEXITY',\n 'RECOVERY_RATE_SEN',\n 'CDS_RECOVERY_RT',\n]);\n\nconst TA_STUDIES: Readonly<Record<string, string>> = Object.freeze({\n ado: 'adoStudyAttributes',\n adx: 'dmiStudyAttributes',\n al: 'alStudyAttributes',\n atr: 'atrStudyAttributes',\n bb: 'bollStudyAttributes',\n boll: 'bollStudyAttributes',\n bs: 'bsStudyAttributes',\n chko: 'chkoStudyAttributes',\n cmci: 'cmciStudyAttributes',\n dmi: 'dmiStudyAttributes',\n ema: 'emavgStudyAttributes',\n emavg: 'emavgStudyAttributes',\n etd: 'etdStudyAttributes',\n fear_greed: 'fgStudyAttributes',\n fg: 'fgStudyAttributes',\n goc: 'gocStudyAttributes',\n hurst: 'hurstStudyAttributes',\n ichimoku: 'gocStudyAttributes',\n ipmavg: 'ipmavgStudyAttributes',\n keltner: 'kltnStudyAttributes',\n kltn: 'kltnStudyAttributes',\n macd: 'macdStudyAttributes',\n mae: 'maeStudyAttributes',\n mao: 'maoStudyAttributes',\n maxmin: 'maxminStudyAttributes',\n mom: 'momentumStudyAttributes',\n momentum: 'momentumStudyAttributes',\n or: 'orStudyAttributes',\n parabolic: 'ptpsStudyAttributes',\n pcr: 'pcrStudyAttributes',\n pd: 'pdStudyAttributes',\n pivot: 'pivotStudyAttributes',\n ptps: 'ptpsStudyAttributes',\n rex: 'rexStudyAttributes',\n roc: 'rocStudyAttributes',\n rsi: 'rsiStudyAttributes',\n rv: 'rvStudyAttributes',\n sar: 'ptpsStudyAttributes',\n sma: 'smavgStudyAttributes',\n smavg: 'smavgStudyAttributes',\n stoch: 'tasStudyAttributes',\n tas: 'tasStudyAttributes',\n te: 'teStudyAttributes',\n tma: 'tmavgStudyAttributes',\n tmavg: 'tmavgStudyAttributes',\n trender: 'trenderStudyAttributes',\n tvat: 'tvatStudyAttributes',\n vat: 'vatStudyAttributes',\n vma: 'vmavgStudyAttributes',\n vmavg: 'vmavgStudyAttributes',\n williams: 'wlprStudyAttributes',\n wlpr: 'wlprStudyAttributes',\n wma: 'wmavgStudyAttributes',\n wmavg: 'wmavgStudyAttributes',\n});\n\ntype StudyParams = Record<string, PrimitiveValue | undefined>;\n\nconst TA_DEFAULTS: Readonly<Record<string, Readonly<StudyParams>>> = Object.freeze({\n atrStudyAttributes: Object.freeze({\n maType: 'Simple',\n period: 14,\n priceSourceHigh: 'PX_HIGH',\n priceSourceLow: 'PX_LOW',\n priceSourceClose: 'PX_LAST',\n }),\n bollStudyAttributes: Object.freeze({\n period: 20,\n upperBand: 2.0,\n lowerBand: 2.0,\n priceSourceClose: 'PX_LAST',\n }),\n dmiStudyAttributes: Object.freeze({\n period: 14,\n priceSourceHigh: 'PX_HIGH',\n priceSourceLow: 'PX_LOW',\n priceSourceClose: 'PX_LAST',\n }),\n emavgStudyAttributes: Object.freeze({ period: 20, priceSourceClose: 'PX_LAST' }),\n macdStudyAttributes: Object.freeze({\n maPeriod1: 12,\n maPeriod2: 26,\n sigPeriod: 9,\n priceSourceClose: 'PX_LAST',\n }),\n rsiStudyAttributes: Object.freeze({ period: 14, priceSourceClose: 'PX_LAST' }),\n smavgStudyAttributes: Object.freeze({ period: 20, priceSourceClose: 'PX_LAST' }),\n tasStudyAttributes: Object.freeze({\n periodK: 14,\n periodD: 3,\n periodDS: 3,\n periodDSS: 3,\n priceSourceHigh: 'PX_HIGH',\n priceSourceLow: 'PX_LOW',\n priceSourceClose: 'PX_LAST',\n }),\n tmavgStudyAttributes: Object.freeze({ period: 20, priceSourceClose: 'PX_LAST' }),\n vmavgStudyAttributes: Object.freeze({ period: 20, priceSourceClose: 'PX_LAST' }),\n wmavgStudyAttributes: Object.freeze({ period: 20, priceSourceClose: 'PX_LAST' }),\n});\n\nconst MKTDATA_SERVICE = '//blp/mktdata';\n\n// ── Helpers ─────────────────────────────────────────────────────────────\n\nfunction toArrowTableFromNative(batch: NativeArrowZeroCopyBatch): Table {\n return tableFromNativeArrowBatch(batch);\n}\n\nfunction isPlainObject(value: unknown): value is Record<string, unknown> {\n return typeof value === 'object' && value !== null && !Array.isArray(value);\n}\n\nfunction toRequestString(value: unknown): string {\n return String(value);\n}\n\nfunction mapObjectToPairs(obj: OverridesMap | undefined): StringPair[] | undefined {\n if (obj === undefined) {\n return undefined;\n }\n return Object.entries(obj).map(([key, value]) => ({\n key: toRequestString(key),\n value: toRequestString(value),\n }));\n}\n\ntype BdtickBooleanOption =\n | 'includeConditionCodes'\n | 'includeExchangeCodes'\n | 'includeBrokerCodes'\n | 'includeRpsCodes'\n | 'includeBicMicCodes'\n | 'includeNonPlottableEvents'\n | 'includeBloombergStandardConditionCodes';\n\nconst BDTICK_BOOLEAN_KWARGS: readonly [BdtickBooleanOption, string][] = Object.freeze([\n ['includeConditionCodes', 'includeConditionCodes'],\n ['includeExchangeCodes', 'includeExchangeCodes'],\n ['includeBrokerCodes', 'includeBrokerCodes'],\n ['includeRpsCodes', 'includeRpsCodes'],\n ['includeBicMicCodes', 'includeBicMicCodes'],\n ['includeNonPlottableEvents', 'includeNonPlottableEvents'],\n ['includeBloombergStandardConditionCodes', 'includeBloombergStandardConditionCodes'],\n]);\n\nfunction upsertStringPair(pairs: StringPair[], key: string, value: string): void {\n const existing = pairs.find((pair) => pair.key === key);\n if (existing === undefined) {\n pairs.push({ key, value });\n return;\n }\n existing.value = value;\n}\n\nfunction buildBdtickKwargs(options: BdtickOptions): StringPair[] | undefined {\n const pairs = mapObjectToPairs(options.kwargs) ?? [];\n for (const [optionName, requestName] of BDTICK_BOOLEAN_KWARGS) {\n const typedValue = options[optionName];\n if (typedValue !== undefined) {\n upsertStringPair(pairs, requestName, typedValue ? 'true' : 'false');\n }\n }\n return pairs.length > 0 ? pairs : undefined;\n}\n\nfunction toStringArray(value: string | readonly string[] | null | undefined): string[] {\n if (Array.isArray(value)) {\n return value.map((item) => toRequestString(item));\n }\n if (value === null || value === undefined) {\n return [];\n }\n return [toRequestString(value)];\n}\n\nfunction encodeVolFieldSpec(field: string, spec: VolFieldSpec | undefined): string {\n if (spec === undefined) {\n return field;\n }\n return [\n field,\n spec.metric ?? '',\n spec.tenor ?? '',\n spec.pointType ?? '',\n spec.point === undefined ? '' : String(spec.point),\n ].join('|');\n}\n\nfunction isVolFieldSpecMap(\n fields: VolSurfaceOptions['fields'],\n): fields is Record<string, VolFieldSpec> {\n return fields !== undefined && !Array.isArray(fields);\n}\n\nfunction normalizeVolFieldSpecs(fields: VolSurfaceOptions['fields'] | undefined): string[] | null {\n if (fields === undefined) {\n return null;\n }\n if (!isVolFieldSpecMap(fields)) {\n return fields.map((field) => toRequestString(field));\n }\n return Object.entries(fields).map(([field, spec]) => encodeVolFieldSpec(field, spec));\n}\n\nfunction isVolSurfacePresetArray(\n preset: VolSurfaceOptions['preset'],\n): preset is readonly VolSurfacePreset[] {\n return Array.isArray(preset);\n}\nfunction normalizeVolPresets(preset: VolSurfaceOptions['preset'] | undefined): string[] | null {\n if (preset === undefined || preset === null) {\n return null;\n }\n return isVolSurfacePresetArray(preset) ? [...preset] : [preset];\n}\n\nfunction subscriptionOptionKey(option: string): string {\n return normalizeSubscriptionOption(option).split('=')[0]?.trim().toLowerCase() ?? '';\n}\n\nfunction normalizeSubscriptionOption(option: string): string {\n let clean = option.trim();\n while (clean.startsWith('&')) {\n clean = clean.slice(1).trim();\n }\n return clean;\n}\n\nfunction buildStreamSubscriptionOptions(\n service: string,\n options: StreamOptions,\n): readonly string[] | undefined {\n const rawOptions = options.options;\n const { conflate } = options;\n\n if (rawOptions === undefined && conflate !== true) {\n return undefined;\n }\n\n const subscriptionOptions = (rawOptions ?? [])\n .map((option) => normalizeSubscriptionOption(option))\n .filter((option) => option.length > 0);\n\n if (conflate === true) {\n if (service !== MKTDATA_SERVICE) {\n throw new BlpValidationError(\n 'conflate=true is only supported for //blp/mktdata subscriptions',\n { element: 'conflate' },\n );\n }\n if (subscriptionOptions.some((option) => subscriptionOptionKey(option) === 'interval')) {\n throw new BlpValidationError(\n 'conflate=true cannot be combined with interval options; intervalization overrides conflation',\n { element: 'conflate' },\n );\n }\n if (!subscriptionOptions.some((option) => subscriptionOptionKey(option) === 'conflate')) {\n subscriptionOptions.push('conflate');\n }\n }\n\n return subscriptionOptions.length > 0 || rawOptions !== undefined\n ? subscriptionOptions\n : undefined;\n}\n\nfunction normalizeConfigureArgs(\n configOrHost?: EngineConfig | string,\n port?: number,\n): EngineConfig | undefined {\n if (configOrHost === undefined) {\n return undefined;\n }\n if (typeof configOrHost === 'string' || port !== undefined) {\n const config: EngineConfig = {};\n if (typeof configOrHost === 'string') {\n config.host = configOrHost;\n }\n if (port !== undefined) {\n config.port = port;\n }\n return config;\n }\n if (isPlainObject(configOrHost)) {\n return { ...(configOrHost as EngineConfig) };\n }\n throw new TypeError('configure expects either a config object or host/port arguments');\n}\n\nfunction normalizeRecoveryOptions(options: CdxOptions = {}): BdpOptions {\n const normalized: CdxOptions = { ...options };\n const recoveryRate = normalized.recoveryRate ?? normalized.recovery_rate;\n delete normalized.recoveryRate;\n delete normalized.recovery_rate;\n if (recoveryRate !== undefined) {\n normalized.overrides = {\n ...normalized.overrides,\n CDS_RR: toRequestString(recoveryRate),\n };\n }\n return normalized;\n}\n\nfunction fullDayRange(dt: DateTimeLike): TimeRange {\n const formatted = formatDate(dt);\n if (formatted === undefined) {\n throw new TypeError('dt must be a non-empty date-like value');\n }\n const day = `${formatted.slice(0, 4)}-${formatted.slice(4, 6)}-${formatted.slice(6, 8)}`;\n return {\n end: `${day}T23:59:59`,\n start: `${day}T00:00:00`,\n };\n}\n\nfunction normalizeDate(value: DateLike | undefined): string | undefined {\n return formatDate(value);\n}\n\nfunction getStudyAttrName(study: string): string {\n const normalized = study.toLowerCase().replaceAll(/-/gu, '_').replaceAll(/ /gu, '_');\n const mapped = TA_STUDIES[normalized];\n if (mapped !== undefined) {\n return mapped;\n }\n if (normalized.endsWith('studyattributes')) {\n return normalized;\n }\n return `${normalized}StudyAttributes`;\n}\n\ninterface RawStudy {\n studyType?: string;\n study?: string;\n calcInterval?: string;\n interval?: number | string;\n length?: number;\n period?: number;\n [key: string]: PrimitiveValue | undefined;\n}\n\nfunction buildTaRequest(\n ticker: string,\n study: string | RawStudy,\n options: BtaOptions = {},\n): StringPair[] {\n const rawStudy: RawStudy = typeof study === 'string' ? { studyType: study } : { ...study };\n const studyType =\n rawStudy.studyType ?? rawStudy.study ?? (typeof study === 'string' ? study : '');\n const attrName = getStudyAttrName(toRequestString(studyType));\n\n const kwargs: Record<string, PrimitiveValue> = { ...options.kwargs };\n const startDate = normalizeDate(\n stringOrUndef(kwargs.startDate) ??\n stringOrUndef(kwargs.start_date) ??\n options.startDate ??\n options.start_date,\n );\n const endDate = normalizeDate(\n stringOrUndef(kwargs.endDate) ??\n stringOrUndef(kwargs.end_date) ??\n options.endDate ??\n options.end_date,\n );\n const periodicity = toRequestString(\n stringOrUndef(kwargs.periodicitySelection) ??\n stringOrUndef(kwargs.periodicity) ??\n rawStudy.calcInterval ??\n options.periodicity ??\n 'DAILY',\n ).toUpperCase();\n const interval = kwargs.interval ?? rawStudy.interval ?? options.interval;\n\n delete kwargs.startDate;\n delete kwargs.start_date;\n delete kwargs.endDate;\n delete kwargs.end_date;\n delete kwargs.periodicitySelection;\n delete kwargs.periodicity;\n delete rawStudy.studyType;\n delete rawStudy.study;\n delete rawStudy.calcInterval;\n\n if (rawStudy.length !== undefined && rawStudy.period === undefined) {\n rawStudy.period = rawStudy.length;\n }\n delete rawStudy.length;\n\n const params: StudyParams = {\n ...TA_DEFAULTS[attrName],\n ...options.studyParams,\n ...(rawStudy as StudyParams),\n };\n\n if (params.length !== undefined && params.period === undefined) {\n params.period = params.length;\n }\n delete params.length;\n delete params.calcInterval;\n\n const elements: StringPair[] = [\n { key: 'priceSource.securityName', value: toRequestString(ticker) },\n ];\n\n if (periodicity === 'INTRADAY') {\n const prefix = 'priceSource.dataRange.intraday';\n if (startDate !== undefined) {\n elements.push({ key: `${prefix}.startDate`, value: startDate });\n }\n if (endDate !== undefined) {\n elements.push({ key: `${prefix}.endDate`, value: endDate });\n }\n elements.push({ key: `${prefix}.eventType`, value: 'TRADE' });\n if (interval !== undefined) {\n elements.push({ key: `${prefix}.interval`, value: toRequestString(interval) });\n }\n } else {\n const prefix = 'priceSource.dataRange.historical';\n if (startDate !== undefined) {\n elements.push({ key: `${prefix}.startDate`, value: startDate });\n }\n if (endDate !== undefined) {\n elements.push({ key: `${prefix}.endDate`, value: endDate });\n }\n elements.push({ key: `${prefix}.periodicitySelection`, value: periodicity });\n }\n\n for (const [key, value] of Object.entries(params)) {\n if (value === undefined) {\n continue;\n }\n elements.push({\n key: `studyAttributes.${attrName}.${key}`,\n value: toRequestString(value),\n });\n }\n\n for (const [key, value] of Object.entries(kwargs)) {\n elements.push({ key: toRequestString(key), value: toRequestString(value) });\n }\n\n return elements;\n}\n\nfunction stringOrUndef(value: unknown): string | undefined {\n return typeof value === 'string' ? value : undefined;\n}\n\nlet polarsModule: PolarsModule | undefined;\nlet polarsLoadError: Error | undefined;\n\nfunction cachePolarsLoadError(err: unknown): Error {\n const error = new Error(\n 'nodejs-polars is required for Polars backend. Install: npm install nodejs-polars',\n );\n Object.defineProperty(error, 'cause', { configurable: true, value: err });\n polarsLoadError = error;\n return error;\n}\n\nfunction loadPolars(): PolarsModule {\n if (polarsModule !== undefined) {\n return polarsModule;\n }\n if (polarsLoadError !== undefined) {\n throw polarsLoadError;\n }\n try {\n polarsModule = requirePolarsModule();\n return polarsModule;\n } catch (error) {\n throw cachePolarsLoadError(error);\n }\n}\n\nfunction normalizeBackend(backend: BackendKind | undefined): BackendKind {\n const selected: unknown = backend ?? Backend.ARROW;\n if (selected === Backend.ARROW || selected === Backend.JSON || selected === Backend.POLARS) {\n return selected;\n }\n throw new TypeError(\n `Unsupported @xbbg/core backend \"${toRequestString(selected)}\". Expected one of: ${Object.values(\n Backend,\n ).join(', ')}`,\n );\n}\n\nfunction ipcToBackend(buffer: Buffer, backend: BackendKind | undefined): unknown {\n const selected = normalizeBackend(backend);\n if (selected === Backend.JSON) {\n return [...tableFromIPC(buffer)];\n }\n if (selected === Backend.POLARS) {\n return loadPolars().readIPC(buffer);\n }\n return tableFromIPC(buffer);\n}\n\n// ── Configured engine state ─────────────────────────────────────────────\n\nlet configuredEngineConfig: EngineConfig | undefined;\nlet configuredEnginePromise: Promise<Engine> | undefined;\n\nfunction clearConfiguredEngine(): void {\n const existing = configuredEnginePromise;\n configuredEnginePromise = undefined;\n if (existing !== undefined) {\n void (async (): Promise<void> => {\n try {\n const engine = await existing;\n engine.signalShutdown();\n } catch {\n /* Ignore shutdown errors */\n }\n })();\n }\n}\n\nasync function getConfiguredEngine(): Promise<Engine> {\n if (configuredEnginePromise === undefined) {\n const pending = connect(configuredEngineConfig);\n pending.catch(() => {\n if (configuredEnginePromise === pending) {\n configuredEnginePromise = undefined;\n }\n });\n configuredEnginePromise = pending;\n }\n return await configuredEnginePromise;\n}\n\n// ── Subscription class ──────────────────────────────────────────────────\n\nexport type TickValue = null | boolean | number | bigint | string | Date;\n\nexport class FieldHandle {\n public constructor(public readonly name: string) {}\n}\n\nexport class Tick {\n private readonly positions: Map<string, number>;\n\n public constructor(private readonly update: NativeSubscriptionUpdate) {\n this.positions = new Map(update.fields.map((field, index) => [field, index]));\n }\n\n public get topic(): string {\n return this.update.topic;\n }\n\n public get timestampUs(): number {\n return this.update.timestampUs;\n }\n\n public get layoutVersion(): number {\n return this.update.layoutVersion;\n }\n\n public get(field: string | FieldHandle): TickValue {\n const name = typeof field === 'string' ? field : field.name;\n const index = this.positions.get(name);\n if (index === undefined) {\n return null;\n }\n const value = this.update.values[index] ?? null;\n const kind = this.update.valueKinds[index] ?? 'unknown';\n if (value === null) {\n return null;\n }\n if (kind === 'i64' || kind === 'time64_us' || kind === 'timestamp_us') {\n try {\n return BigInt(String(value));\n } catch {\n return null;\n }\n }\n if (kind === 'date32' && typeof value === 'number') {\n return new Date(Date.UTC(1970, 0, 1 + value));\n }\n return value;\n }\n\n public f64(field: string | FieldHandle): number | null {\n const value = this.get(field);\n if (value === null) {\n return null;\n }\n const parsed = Number(value);\n return Number.isFinite(parsed) ? parsed : null;\n }\n\n public i64(field: string | FieldHandle): bigint | null {\n const value = this.get(field);\n if (value === null) {\n return null;\n }\n try {\n return BigInt(String(value));\n } catch {\n return null;\n }\n }\n\n public str(field: string | FieldHandle): string | null {\n const value = this.get(field);\n return value === null ? null : String(value);\n }\n\n public toObject(): Record<string, unknown> {\n const out: Record<string, unknown> = { timestampUs: this.timestampUs, topic: this.topic };\n for (const field of this.update.fields) {\n out[field] = this.get(field);\n }\n return out;\n }\n}\n\nexport class ArrowSubscription implements AsyncIterator<Table>, AsyncIterable<Table> {\n public constructor(private readonly inner: NativeSubscription) {}\n\n public async next(): Promise<IteratorResult<Table>> {\n try {\n const batch = await this.inner.nextArrow();\n if (batch === null) {\n return { done: true, value: undefined };\n }\n return { done: false, value: toArrowTableFromNative(batch) };\n } catch (error) {\n throw wrapError(error);\n }\n }\n\n public async unsubscribe(drain = false): Promise<Table[]> {\n try {\n const drained = await this.inner.unsubscribeArrow(drain);\n return drained?.map(toArrowTableFromNative) ?? [];\n } catch (error) {\n throw wrapError(error);\n }\n }\n\n public [Symbol.asyncIterator](): this {\n return this;\n }\n}\n\nexport class Subscription implements AsyncIterator<Tick>, AsyncIterable<Tick> {\n private readonly inner: NativeSubscription;\n\n public constructor(inner: NativeSubscription) {\n this.inner = inner;\n }\n\n public async next(): Promise<IteratorResult<Tick>> {\n try {\n const update = await this.inner.nextUpdate();\n if (update === null) {\n return { done: true, value: undefined };\n }\n return { done: false, value: new Tick(update) };\n } catch (error) {\n throw wrapError(error);\n }\n }\n\n public async add(tickers: readonly string[]): Promise<void> {\n try {\n await this.inner.add(tickers);\n } catch (error) {\n throw wrapError(error);\n }\n }\n\n public async remove(tickers: readonly string[]): Promise<void> {\n try {\n await this.inner.remove(tickers);\n } catch (error) {\n throw wrapError(error);\n }\n }\n\n public async unsubscribe(drain = false): Promise<Tick[]> {\n try {\n const drained = await this.inner.unsubscribe(drain);\n if (drained === null) {\n return [];\n }\n return drained.map((update) => new Tick(update));\n } catch (error) {\n throw wrapError(error);\n }\n }\n\n public field(name: string): FieldHandle {\n return new FieldHandle(name);\n }\n\n public arrow(): ArrowSubscription {\n return new ArrowSubscription(this.inner);\n }\n\n public get tickers(): string[] {\n return this.inner.tickers;\n }\n\n public get fields(): string[] {\n return this.inner.fields;\n }\n\n public get isActive(): boolean {\n return this.inner.isActive;\n }\n\n public get stats(): SubscriptionStats {\n return this.inner.stats;\n }\n\n public [Symbol.asyncIterator](): this {\n return this;\n }\n}\n\n// ── Engine class ────────────────────────────────────────────────────────\n\nexport class Engine {\n // Set via constructor or via `withConfig` (which instantiates via Object.create).\n private inner!: NativeEngine;\n\n public constructor(host = 'localhost', port = 8194) {\n try {\n this.inner = new native.JsEngine(host, port);\n } catch (error) {\n throw wrapError(error);\n }\n }\n\n public static withConfig(config: EngineConfig = {}): Engine {\n const maybeEngine: unknown = Object.create(Engine.prototype);\n if (!(maybeEngine instanceof Engine)) {\n throw new TypeError('Failed to allocate Engine instance');\n }\n const engine = maybeEngine;\n try {\n engine.inner = native.JsEngine.withConfig(config);\n } catch (error) {\n throw wrapError(error);\n }\n return engine;\n }\n\n public async request(params: RequestInput): Promise<unknown> {\n const backend = normalizeBackend(params.backend);\n const { backend: _discarded, ...nativeParams } = params;\n try {\n const buffer = await this.inner.request(nativeParams);\n return ipcToBackend(buffer, backend);\n } catch (error) {\n throw wrapError(error);\n }\n }\n\n public async requestRaw(params: RequestInput): Promise<Buffer> {\n try {\n return await this.inner.request(params);\n } catch (error) {\n throw wrapError(error);\n }\n }\n\n public async bdp(\n tickers: readonly string[],\n fields: readonly string[],\n options: BdpOptions = {},\n ): Promise<unknown> {\n return await this.request({\n backend: options.backend,\n extractor: 'refdata',\n fields,\n format: options.format,\n includeSecurityErrors: Boolean(options.includeSecurityErrors),\n kwargs: mapObjectToPairs(options.kwargs),\n operation: 'ReferenceDataRequest',\n overrides: mapObjectToPairs(options.overrides),\n securities: tickers,\n service: '//blp/refdata',\n validateFields: options.validateFields,\n });\n }\n\n public async bds(\n tickers: readonly string[],\n fields: readonly string[],\n options: BdpOptions = {},\n ): Promise<unknown> {\n return await this.request({\n backend: options.backend,\n extractor: 'bulk',\n fields,\n format: options.format,\n kwargs: mapObjectToPairs(options.kwargs),\n operation: 'ReferenceDataRequest',\n overrides: mapObjectToPairs(options.overrides),\n securities: tickers,\n service: '//blp/refdata',\n validateFields: options.validateFields,\n });\n }\n\n public async bdh(\n tickers: readonly string[],\n fields: readonly string[],\n options: BdhOptions = {},\n ): Promise<unknown> {\n return await this.request({\n backend: options.backend,\n endDate: formatDate(options.end),\n extractor: 'histdata',\n fields,\n format: options.format,\n kwargs: mapObjectToPairs(options.kwargs),\n operation: 'HistoricalDataRequest',\n overrides: mapObjectToPairs(options.overrides),\n securities: tickers,\n service: '//blp/refdata',\n startDate: formatDate(options.start),\n validateFields: options.validateFields,\n });\n }\n\n public async bdib(ticker: string, options: BdibOptions = {}): Promise<unknown> {\n return await this.request({\n backend: options.backend,\n endDatetime: formatDateTime(options.end),\n eventType: options.eventType ?? 'TRADE',\n extractor: 'intraday_bar',\n interval: options.interval ?? 1,\n kwargs: mapObjectToPairs(options.kwargs),\n operation: 'IntradayBarRequest',\n outputTz: options.outputTz,\n requestTz: options.requestTz,\n security: ticker,\n service: '//blp/refdata',\n startDatetime: formatDateTime(options.start),\n });\n }\n\n public async bdtick(ticker: string, options: BdtickOptions = {}): Promise<unknown> {\n return await this.request({\n backend: options.backend,\n endDatetime: formatDateTime(options.end),\n eventTypes: options.eventTypes ?? ['TRADE'],\n extractor: 'intraday_tick',\n kwargs: buildBdtickKwargs(options),\n operation: 'IntradayTickRequest',\n outputTz: options.outputTz,\n requestTz: options.requestTz,\n security: ticker,\n service: '//blp/refdata',\n startDatetime: formatDateTime(options.start),\n });\n }\n\n public async bql(query: string, options: BqlOptions = {}): Promise<unknown> {\n return await this.request({\n backend: options.backend,\n elements: [{ key: 'expression', value: toRequestString(query) }],\n extractor: 'bql',\n format: options.format,\n kwargs: mapObjectToPairs(options.kwargs),\n operation: 'sendQuery',\n service: '//blp/bqlsvc',\n });\n }\n\n public async beqs(screen: string, options: BeqsOptions = {}): Promise<unknown> {\n const elements: StringPair[] = [\n { key: 'screenName', value: toRequestString(screen) },\n { key: 'screenType', value: toRequestString(options.screenType ?? 'PRIVATE') },\n { key: 'Group', value: toRequestString(options.group ?? 'General') },\n ];\n if (options.asof !== undefined) {\n const asofFormatted = formatDate(options.asof);\n if (asofFormatted !== undefined) {\n elements.push({ key: 'asOfDate', value: asofFormatted });\n }\n }\n const overrides: OverridesMap = { ...options.overrides };\n return await this.request({\n backend: options.backend,\n elements,\n extractor: 'generic',\n format: options.format,\n kwargs: mapObjectToPairs(options.kwargs),\n operation: 'BeqsRequest',\n overrides: mapObjectToPairs(overrides),\n service: '//blp/refdata',\n });\n }\n\n public async bsrch(searchSpec: string, options: BsrchOptions = {}): Promise<unknown> {\n const elements: OverridesMap = {\n Domain: toRequestString(searchSpec),\n ...options.overrides,\n ...options.kwargs,\n };\n return await this.request({\n backend: options.backend,\n elements: mapObjectToPairs(elements),\n extractor: 'bsrch',\n format: options.format,\n operation: 'ExcelGetGridRequest',\n service: '//blp/exrsvc',\n });\n }\n\n public async bta(\n ticker: string,\n study: string | RawStudy,\n options: BtaOptions = {},\n ): Promise<unknown> {\n return await this.request({\n backend: options.backend,\n elements: buildTaRequest(ticker, study, options),\n extractor: 'generic',\n format: options.format,\n operation: 'studyRequest',\n service: '//blp/tasvc',\n });\n }\n\n public async bflds(options: BfldsOptions = {}): Promise<unknown> {\n if (options.searchSpec !== undefined) {\n return await this.request({\n backend: options.backend,\n format: options.format,\n kwargs: mapObjectToPairs(options.kwargs),\n operation: 'FieldSearchRequest',\n searchSpec: toRequestString(options.searchSpec),\n service: '//blp/apiflds',\n });\n }\n const fields = toStringArray(options.fields);\n return await this.request({\n backend: options.backend,\n fieldIds: fields,\n format: options.format,\n kwargs: mapObjectToPairs(options.kwargs),\n operation: 'FieldInfoRequest',\n service: '//blp/apiflds',\n });\n }\n\n public async blkp(query: string, options: BlkpOptions = {}): Promise<unknown> {\n return await this.request({\n backend: options.backend,\n elements: [{ key: 'query', value: toRequestString(query) }],\n format: options.format,\n kwargs: mapObjectToPairs(options.kwargs),\n operation: 'instrumentListRequest',\n service: '//blp/instruments',\n });\n }\n\n public async bport(\n portfolio: string,\n fields: string | readonly string[],\n options: RequestOptions = {},\n ): Promise<unknown> {\n return await this.request({\n backend: options.backend,\n fields: Array.isArray(fields) ? fields : [toRequestString(fields)],\n format: options.format,\n kwargs: mapObjectToPairs(options.kwargs),\n operation: 'PortfolioDataRequest',\n overrides: mapObjectToPairs(options.overrides),\n security: toRequestString(portfolio),\n service: '//blp/refdata',\n });\n }\n\n public async bcurves(ticker: string, options: RequestOptions = {}): Promise<unknown> {\n return await this.request({\n backend: options.backend,\n elements: [{ key: 'query', value: toRequestString(ticker) }],\n format: options.format,\n kwargs: mapObjectToPairs(options.kwargs),\n operation: 'curveListRequest',\n service: '//blp/instruments',\n });\n }\n\n public async bgovts(ticker: string, options: RequestOptions = {}): Promise<unknown> {\n return await this.request({\n backend: options.backend,\n elements: [{ key: 'query', value: toRequestString(ticker) }],\n format: options.format,\n kwargs: mapObjectToPairs(options.kwargs),\n operation: 'govtListRequest',\n service: '//blp/instruments',\n });\n }\n\n public async resolveFieldTypes(\n fields: readonly string[],\n overrides?: OverridesMap,\n defaultType = 'string',\n ): Promise<Record<string, string>> {\n const items = await this.inner.resolveFieldTypes(\n fields,\n mapObjectToPairs(overrides),\n defaultType,\n );\n return Object.fromEntries(items.map((item) => [item.key, item.value]));\n }\n\n public getFieldInfo(field: string): FieldInfo | null {\n return this.inner.getFieldInfo(field);\n }\n\n public clearFieldCache(): void {\n this.inner.clearFieldCache();\n }\n\n public saveFieldCache(): void {\n this.inner.saveFieldCache();\n }\n\n public async validateFields(fields: readonly string[]): Promise<string[]> {\n return await this.inner.validateFields(fields);\n }\n\n public isFieldValidationEnabled(): boolean {\n return this.inner.isFieldValidationEnabled();\n }\n\n public async getSchema(service: string): Promise<unknown> {\n const json = await this.inner.getSchema(service);\n return JSON.parse(json) as unknown;\n }\n\n public async getOperation(service: string, operation: string): Promise<unknown> {\n const json = await this.inner.getOperation(service, operation);\n return JSON.parse(json) as unknown;\n }\n\n public async listOperations(service: string): Promise<string[]> {\n return await this.inner.listOperations(service);\n }\n\n public getCachedSchema(service: string): unknown {\n const json = this.inner.getCachedSchema(service);\n return json === null ? null : (JSON.parse(json) as unknown);\n }\n\n public invalidateSchema(service: string): void {\n this.inner.invalidateSchema(service);\n }\n\n public clearSchemaCache(): void {\n this.inner.clearSchemaCache();\n }\n\n public listCachedSchemas(): string[] {\n return this.inner.listCachedSchemas();\n }\n\n public async getEnumValues(\n service: string,\n operation: string,\n element: string,\n ): Promise<string[] | null> {\n return await this.inner.getEnumValues(service, operation, element);\n }\n\n public async listValidElements(service: string, operation: string): Promise<string[] | null> {\n return await this.inner.listValidElements(service, operation);\n }\n\n public async subscribe(\n tickers: readonly string[],\n fields: readonly string[],\n options: StreamOptions = {},\n ): Promise<Subscription> {\n try {\n const subscriptionOptions = buildStreamSubscriptionOptions(MKTDATA_SERVICE, options);\n const useOptions =\n subscriptionOptions !== undefined ||\n options.flushThreshold !== undefined ||\n options.overflowPolicy !== undefined ||\n options.streamCapacity !== undefined;\n const stream = useOptions\n ? await this.inner.subscribeWithOptions(\n MKTDATA_SERVICE,\n tickers,\n fields,\n subscriptionOptions,\n options.flushThreshold,\n options.overflowPolicy,\n options.streamCapacity,\n options.allFields,\n )\n : await this.inner.subscribe(tickers, fields, options.allFields);\n return new Subscription(stream);\n } catch (error) {\n throw wrapError(error);\n }\n }\n\n public async subscribeWithOptions(\n service: string,\n tickers: readonly string[],\n fields: readonly string[],\n options?: readonly string[],\n flushThreshold?: number,\n overflowPolicy?: string,\n streamCapacity?: number,\n allFields?: boolean,\n ): Promise<Subscription> {\n try {\n const stream = await this.inner.subscribeWithOptions(\n service,\n tickers,\n fields,\n options,\n flushThreshold,\n overflowPolicy,\n streamCapacity,\n allFields,\n );\n return new Subscription(stream);\n } catch (error) {\n throw wrapError(error);\n }\n }\n\n public signalShutdown(): void {\n this.inner.signalShutdown();\n }\n\n public isAvailable(): boolean {\n return this.inner.isAvailable();\n }\n\n public async stream(\n tickers: readonly string[],\n fields: readonly string[],\n options: StreamOptions = {},\n ): Promise<Subscription> {\n return await this.subscribeWithOptions(\n MKTDATA_SERVICE,\n tickers,\n fields,\n buildStreamSubscriptionOptions(MKTDATA_SERVICE, options),\n options.flushThreshold,\n options.overflowPolicy,\n options.streamCapacity,\n options.allFields,\n );\n }\n\n public async vwap(\n tickers: readonly string[],\n fields: readonly string[],\n options: StreamOptions = {},\n ): Promise<Subscription> {\n return await this.subscribeWithOptions(\n '//blp/mktvwap',\n tickers,\n fields,\n buildStreamSubscriptionOptions('//blp/mktvwap', options),\n options.flushThreshold,\n options.overflowPolicy,\n options.streamCapacity,\n options.allFields,\n );\n }\n\n public async mktbar(ticker: string, options: StreamOptions = {}): Promise<Subscription> {\n return await this.subscribeWithOptions(\n '//blp/mktbar',\n [ticker],\n options.fields ?? [],\n buildStreamSubscriptionOptions('//blp/mktbar', options),\n options.flushThreshold,\n options.overflowPolicy,\n options.streamCapacity,\n options.allFields,\n );\n }\n\n public async depth(ticker: string, options: StreamOptions = {}): Promise<Subscription> {\n return await this.subscribeWithOptions(\n '//blp/mktdepthdata',\n [ticker],\n options.fields ?? [],\n buildStreamSubscriptionOptions('//blp/mktdepthdata', options),\n options.flushThreshold,\n options.overflowPolicy,\n options.streamCapacity,\n options.allFields,\n );\n }\n\n public async chains(ticker: string, options: StreamOptions = {}): Promise<Subscription> {\n return await this.subscribeWithOptions(\n '//blp/mktlist',\n [ticker],\n options.fields ?? [],\n buildStreamSubscriptionOptions('//blp/mktlist', options),\n options.flushThreshold,\n options.overflowPolicy,\n options.streamCapacity,\n options.allFields,\n );\n }\n\n public async bops(service: string): Promise<string[]> {\n return await this.inner.listOperations(service);\n }\n\n public async bschema(service: string, operation?: string): Promise<unknown> {\n if (operation !== undefined) {\n const json = await this.inner.getOperation(service, operation);\n return JSON.parse(json) as unknown;\n }\n const json = await this.inner.getSchema(service);\n return JSON.parse(json) as unknown;\n }\n\n public async fieldInfo(\n fields: string | readonly string[],\n options: BfldsOptions = {},\n ): Promise<unknown> {\n return await this.bflds({\n fields: toStringArray(fields),\n ...options,\n });\n }\n\n public async fieldSearch(searchSpec: string, options: BfldsOptions = {}): Promise<unknown> {\n return await this.bflds({ searchSpec: toRequestString(searchSpec), ...options });\n }\n\n // ── Recipes ─────────────────────────────────────────────────────────\n\n public async bqr(ticker: string, options: BqrOptions = {}): Promise<unknown> {\n const backend = normalizeBackend(options.backend);\n try {\n const buffer = await this.inner.recipeBqr(\n toRequestString(ticker),\n formatDateTime(options.startDatetime),\n formatDateTime(options.endDatetime),\n options.eventTypes ?? null,\n options.includeBrokerCodes !== false,\n );\n return ipcToBackend(buffer, backend);\n } catch (error) {\n throw wrapError(error);\n }\n }\n\n public async yas(\n tickers: string | readonly string[],\n fields: string | readonly string[],\n options: YasOptions = {},\n ): Promise<unknown> {\n const backend = normalizeBackend(options.backend);\n try {\n const buffer = await this.inner.recipeYas(\n toStringArray(tickers),\n toStringArray(fields),\n formatDate(options.settleDt),\n options.yieldType ?? undefined,\n options.spread ?? undefined,\n options.yieldVal ?? undefined,\n options.price ?? undefined,\n options.benchmark ?? undefined,\n );\n return ipcToBackend(buffer, backend);\n } catch (error) {\n throw wrapError(error);\n }\n }\n\n public async preferreds(equityTicker: string, options: PreferredsOptions = {}): Promise<unknown> {\n const backend = normalizeBackend(options.backend);\n try {\n const buffer = await this.inner.recipePreferreds(\n toRequestString(equityTicker),\n options.fields !== undefined ? toStringArray(options.fields) : null,\n );\n return ipcToBackend(buffer, backend);\n } catch (error) {\n throw wrapError(error);\n }\n }\n\n public async corporateBonds(\n ticker: string,\n options: CorporateBondsOptions = {},\n ): Promise<unknown> {\n const backend = normalizeBackend(options.backend);\n try {\n const buffer = await this.inner.recipeCorporateBonds(\n toRequestString(ticker),\n options.ccy ?? undefined,\n options.fields !== undefined ? toStringArray(options.fields) : null,\n options.activeOnly !== false,\n );\n return ipcToBackend(buffer, backend);\n } catch (error) {\n throw wrapError(error);\n }\n }\n\n public async futTicker(\n genTicker: string,\n dt: DateLike,\n options: FuturesResolveOptions = {},\n ): Promise<unknown> {\n const backend = normalizeBackend(options.backend);\n try {\n const buffer = await this.inner.recipeFutTicker(\n toRequestString(genTicker),\n formatDate(dt) ?? '',\n options.freq ?? undefined,\n );\n return ipcToBackend(buffer, backend);\n } catch (error) {\n throw wrapError(error);\n }\n }\n\n public async activeFutures(\n genTicker: string,\n dt: DateLike,\n options: FuturesResolveOptions = {},\n ): Promise<unknown> {\n const backend = normalizeBackend(options.backend);\n try {\n const buffer = await this.inner.recipeActiveFutures(\n toRequestString(genTicker),\n formatDate(dt) ?? '',\n options.freq ?? undefined,\n );\n return ipcToBackend(buffer, backend);\n } catch (error) {\n throw wrapError(error);\n }\n }\n\n public async futuresCurve(\n genTicker: string,\n options: FuturesCurveOptions = {},\n ): Promise<unknown> {\n const backend = normalizeBackend(options.backend);\n try {\n const buffer = await this.inner.recipeFuturesCurve(\n toRequestString(genTicker),\n options.asof === undefined ? undefined : (formatDate(options.asof) ?? ''),\n options.chainField ?? undefined,\n options.fields !== undefined ? toStringArray(options.fields) : null,\n options.maxContracts ?? undefined,\n );\n return ipcToBackend(buffer, backend);\n } catch (error) {\n throw wrapError(error);\n }\n }\n\n public async cdxTicker(\n genTicker: string,\n dt: DateLike,\n options: RecipeBackendOptions = {},\n ): Promise<unknown> {\n const backend = normalizeBackend(options.backend);\n try {\n const buffer = await this.inner.recipeCdxTicker(\n toRequestString(genTicker),\n formatDate(dt) ?? '',\n );\n return ipcToBackend(buffer, backend);\n } catch (error) {\n throw wrapError(error);\n }\n }\n\n public async activeCdx(\n genTicker: string,\n dt: DateLike,\n options: ActiveCdxOptions = {},\n ): Promise<unknown> {\n const backend = normalizeBackend(options.backend);\n try {\n const buffer = await this.inner.recipeActiveCdx(\n toRequestString(genTicker),\n formatDate(dt) ?? '',\n options.lookbackDays ?? undefined,\n );\n return ipcToBackend(buffer, backend);\n } catch (error) {\n throw wrapError(error);\n }\n }\n\n public async dividend(\n tickers: string | readonly string[],\n startDate: DateLike,\n endDate: DateLike,\n options: DividendOptions = {},\n ): Promise<unknown> {\n const backend = normalizeBackend(options.backend);\n try {\n const buffer = await this.inner.recipeDividend(\n toStringArray(tickers),\n formatDate(startDate) ?? '',\n formatDate(endDate) ?? '',\n options.dvdType ?? undefined,\n );\n return ipcToBackend(buffer, backend);\n } catch (error) {\n throw wrapError(error);\n }\n }\n\n public async dividendYield(\n tickers: string | readonly string[],\n startDate: DateLike,\n endDate: DateLike,\n options: DividendYieldOptions = {},\n ): Promise<unknown> {\n const backend = normalizeBackend(options.backend);\n try {\n const buffer = await this.inner.recipeDividendYield(\n toStringArray(tickers),\n formatDate(startDate) ?? '',\n formatDate(endDate) ?? '',\n options.dividendTypes !== undefined ? toStringArray(options.dividendTypes) : null,\n options.windowDays ?? undefined,\n );\n return ipcToBackend(buffer, backend);\n } catch (error) {\n throw wrapError(error);\n }\n }\n\n public async turnover(\n tickers: string | readonly string[],\n startDate: DateLike,\n endDate: DateLike,\n options: TurnoverOptions = {},\n ): Promise<unknown> {\n const backend = normalizeBackend(options.backend);\n try {\n const buffer = await this.inner.recipeTurnover(\n toStringArray(tickers),\n formatDate(startDate) ?? '',\n formatDate(endDate) ?? '',\n options.ccy ?? undefined,\n options.factor ?? undefined,\n );\n return ipcToBackend(buffer, backend);\n } catch (error) {\n throw wrapError(error);\n }\n }\n\n public async etfHoldings(etfTicker: string, options: EtfHoldingsOptions = {}): Promise<unknown> {\n const backend = normalizeBackend(options.backend);\n try {\n const buffer = await this.inner.recipeEtfHoldings(\n toRequestString(etfTicker),\n options.fields !== undefined ? toStringArray(options.fields) : null,\n );\n return ipcToBackend(buffer, backend);\n } catch (error) {\n throw wrapError(error);\n }\n }\n\n public async volSurface(\n tickers: string | readonly string[],\n startDate: DateLike,\n endDate: DateLike,\n options: VolSurfaceOptions = {},\n ): Promise<unknown> {\n const backend = normalizeBackend(options.backend);\n try {\n const buffer = await this.inner.recipeVolSurface(\n toStringArray(tickers),\n formatDate(startDate) ?? '',\n formatDate(endDate) ?? '',\n normalizeVolPresets(options.preset ?? 'MONEYNESS_30D'),\n normalizeVolFieldSpecs(options.fields),\n options.asDecimal ?? true,\n options.includeDerived ?? false,\n options.riskFreeRate ?? undefined,\n options.dividendYieldField ?? undefined,\n );\n return ipcToBackend(buffer, backend);\n } catch (error) {\n throw wrapError(error);\n }\n }\n\n public async indexMembers(index: string, options: IndexMembersOptions = {}): Promise<unknown> {\n const backend = normalizeBackend(options.backend);\n try {\n const buffer = await this.inner.recipeIndexMembers(\n toRequestString(index),\n options.field ?? undefined,\n options.asof === undefined ? undefined : (formatDate(options.asof) ?? ''),\n );\n return ipcToBackend(buffer, backend);\n } catch (error) {\n throw wrapError(error);\n }\n }\n\n public async resolveIsins(\n isins: string | readonly string[],\n options: RecipeBackendOptions = {},\n ): Promise<unknown> {\n const backend = normalizeBackend(options.backend);\n try {\n const buffer = await this.inner.recipeResolveIsins(toStringArray(isins));\n return ipcToBackend(buffer, backend);\n } catch (error) {\n throw wrapError(error);\n }\n }\n\n public async issuerIsins(\n bondIsins: string | readonly string[],\n options: RecipeBackendOptions = {},\n ): Promise<unknown> {\n const backend = normalizeBackend(options.backend);\n try {\n const buffer = await this.inner.recipeIssuerIsins(toStringArray(bondIsins));\n return ipcToBackend(buffer, backend);\n } catch (error) {\n throw wrapError(error);\n }\n }\n\n public async currencyConversion(\n ticker: string,\n targetCcy: string,\n startDate: DateLike,\n endDate: DateLike,\n options: RecipeBackendOptions = {},\n ): Promise<unknown> {\n const backend = normalizeBackend(options.backend);\n try {\n const buffer = await this.inner.recipeCurrencyConversion(\n toRequestString(ticker),\n toRequestString(targetCcy),\n formatDate(startDate) ?? '',\n formatDate(endDate) ?? '',\n );\n return ipcToBackend(buffer, backend);\n } catch (error) {\n throw wrapError(error);\n }\n }\n}\n\n// ── Top-level wrappers ──────────────────────────────────────────────────\n\nexport async function connect(config?: EngineConfig): Promise<Engine> {\n return await Promise.resolve(config === undefined ? new Engine() : Engine.withConfig(config));\n}\n\nexport function configure(config?: EngineConfig): EngineConfig | undefined;\nexport function configure(host?: string, port?: number): EngineConfig | undefined;\nexport function configure(\n configOrHost?: EngineConfig | string,\n port?: number,\n): EngineConfig | undefined {\n configuredEngineConfig = normalizeConfigureArgs(configOrHost, port);\n clearConfiguredEngine();\n return configuredEngineConfig;\n}\n\nexport async function abdp(\n tickers: string | readonly string[],\n fields: string | readonly string[],\n options: BdpOptions = {},\n): Promise<unknown> {\n const engine = await getConfiguredEngine();\n return await engine.bdp(toStringArray(tickers), toStringArray(fields), options);\n}\n\nexport async function bdp(\n tickers: string | readonly string[],\n fields: string | readonly string[],\n options: BdpOptions = {},\n): Promise<unknown> {\n return await abdp(tickers, fields, options);\n}\n\nexport async function abdh(\n tickers: string | readonly string[],\n fields: string | readonly string[],\n start?: DateLike | BdhOptions,\n end?: DateLike,\n options: BdhOptions = {},\n): Promise<unknown> {\n const engine = await getConfiguredEngine();\n // ``BdhOptions`` is a plain object literal; Dates / Luxon DateTimes are\n // Typed objects so they fall through to the date-typed branch.\n if (isBdhOptionsInput(start)) {\n if (end !== undefined) {\n throw new TypeError('abdh options object cannot be combined with a positional end date');\n }\n return await engine.bdh(toStringArray(tickers), toStringArray(fields), start);\n }\n return await engine.bdh(toStringArray(tickers), toStringArray(fields), {\n ...options,\n end,\n start,\n });\n}\n\nexport async function bdh(\n tickers: string | readonly string[],\n fields: string | readonly string[],\n options: BdhOptions = {},\n): Promise<unknown> {\n return await abdh(tickers, fields, options);\n}\n\nexport async function abds(\n tickers: string | readonly string[],\n fields: string | readonly string[],\n overrides?: OverridesMap,\n options: BdpOptions = {},\n): Promise<unknown> {\n const engine = await getConfiguredEngine();\n const normalizedOptions: BdpOptions = isPlainObject(overrides)\n ? { ...options, overrides: { ...options.overrides, ...overrides } }\n : options;\n return await engine.bds(toStringArray(tickers), toStringArray(fields), normalizedOptions);\n}\n\nexport async function bds(\n tickers: string | readonly string[],\n fields: string | readonly string[],\n options: BdpOptions = {},\n): Promise<unknown> {\n return await abds(tickers, fields, undefined, options);\n}\n\nexport async function abdib(\n ticker: string,\n dt?: DateTimeLike | BdibOptions,\n interval: number | BdibOptions = 1,\n options: BdibOptions = {},\n): Promise<unknown> {\n const engine = await getConfiguredEngine();\n // Distinguish a BdibOptions plain object from a Date / Luxon DateTime, both\n // Of which would also pass an ``isPlainObject`` check on bare typeof checks.\n if (isBdibOptionsInput(dt) && interval === 1 && Object.keys(options).length === 0) {\n return await engine.bdib(toRequestString(ticker), dt);\n }\n const normalizedOptions: BdibOptions = isBdibOptionsInput(interval)\n ? { ...interval }\n : { ...options, interval: typeof interval === 'number' ? interval : 1 };\n if (normalizedOptions.start === undefined && normalizedOptions.end === undefined) {\n if (dt === undefined || isBdibOptionsInput(dt)) {\n throw new TypeError('abdib requires dt or explicit start/end options');\n }\n const range = fullDayRange(dt);\n normalizedOptions.start = range.start;\n normalizedOptions.end = range.end;\n }\n return await engine.bdib(toRequestString(ticker), normalizedOptions);\n}\n\nexport async function bdib(ticker: string, options: BdibOptions = {}): Promise<unknown> {\n return await abdib(ticker, options);\n}\n\nexport async function abdtick(\n ticker: string,\n start: DateTimeLike | null | undefined,\n end: DateTimeLike | null | undefined,\n options: BdtickOptions = {},\n): Promise<unknown> {\n if (start === undefined || start === null || end === undefined || end === null) {\n throw new TypeError('abdtick requires both start and end datetimes');\n }\n const engine = await getConfiguredEngine();\n return await engine.bdtick(toRequestString(ticker), { ...options, end, start });\n}\n\nexport async function bdtick(ticker: string, options: BdtickOptions = {}): Promise<unknown> {\n const engine = await getConfiguredEngine();\n return await engine.bdtick(toRequestString(ticker), options);\n}\n\nexport async function asubscribe(\n tickers: string | readonly string[],\n fields: string | readonly string[],\n options: StreamOptions = {},\n): Promise<Subscription> {\n const engine = await getConfiguredEngine();\n return await engine.subscribe(toStringArray(tickers), toStringArray(fields), options);\n}\n\nexport async function subscribe(\n tickers: string | readonly string[],\n fields: string | readonly string[],\n options: StreamOptions = {},\n): Promise<Subscription> {\n return await asubscribe(tickers, fields, options);\n}\n\nasync function acdxInfo(ticker: string, options: BdpOptions = {}): Promise<unknown> {\n const engine = await getConfiguredEngine();\n return await engine.bdp([toRequestString(ticker)], [...CDX_INFO_FIELDS], options);\n}\n\nasync function acdxPricing(ticker: string, options: CdxOptions = {}): Promise<unknown> {\n const engine = await getConfiguredEngine();\n return await engine.bdp(\n [toRequestString(ticker)],\n [...CDX_PRICING_FIELDS],\n normalizeRecoveryOptions(options),\n );\n}\n\nasync function acdxRisk(ticker: string, options: CdxOptions = {}): Promise<unknown> {\n const engine = await getConfiguredEngine();\n return await engine.bdp(\n [toRequestString(ticker)],\n [...CDX_RISK_FIELDS],\n normalizeRecoveryOptions(options),\n );\n}\n\nexport const blp = Object.freeze({\n abdh,\n abdib,\n abdp,\n abds,\n abdtick,\n asubscribe,\n bdh,\n bdib,\n bdp,\n bds,\n bdtick,\n subscribe,\n});\n\nexport const ext = Object.freeze({\n buildCorporateBondsQuery: native.extBuildCorporateBondsQuery,\n\n buildEarningHeaderRename: native.extBuildEarningHeaderRename,\n buildEtfHoldingsQuery: native.extBuildEtfHoldingsQuery,\n\n buildFuturesTicker: native.extBuildFuturesTicker,\n buildFxPair: native.extBuildFxPair,\n\n buildPreferredsQuery: native.extBuildPreferredsQuery,\n buildYasOverrides: native.extBuildYasOverrides,\n calculateLevelPercentages: native.extCalculateLevelPercentages,\n cdx: Object.freeze({\n acdx_info: acdxInfo,\n acdx_pricing: acdxPricing,\n acdx_risk: acdxRisk,\n }),\n cdxGenToSpecific: native.extCdxGenToSpecific,\n\n clearExchangeOverride: native.extClearExchangeOverride,\n contractIndex: native.extContractIndex,\n currenciesNeedingConversion: native.extCurrenciesNeedingConversion,\n defaultBqrDatetimes: native.extDefaultBqrDatetimes,\n defaultTurnoverDates: native.extDefaultTurnoverDates,\n\n deriveSessions: native.extDeriveSessions,\n filterCandidatesByCycle: native.extFilterCandidatesByCycle,\n filterEquityTickers: native.extFilterEquityTickers,\n\n filterValidContracts: native.extFilterValidContracts,\n fmtDate: native.extFmtDate,\n generateFuturesCandidates: native.extGenerateFuturesCandidates,\n\n getDvdCols: native.extGetDvdCols,\n getDvdType: native.extGetDvdType,\n\n getDvdTypes: native.extGetDvdTypes,\n getEtfCols: native.extGetEtfCols,\n getExchangeOverride: native.extGetExchangeOverride,\n getFuturesMonths: native.extGetFuturesMonths,\n getMarketRule: native.extGetMarketRule,\n getMonthCode: native.extGetMonthCode,\n getMonthName: native.extGetMonthName,\n\n inferTimezone: native.extInferTimezone,\n\n isLongFormat: native.extIsLongFormat,\n isSpecificContract: native.extIsSpecificContract,\n\n listExchangeOverrides: native.extListExchangeOverrides,\n normalizeTickers: native.extNormalizeTickers,\n parseCdxTicker: native.extParseCdxTicker,\n\n parseDate: native.extParseDate,\n parseTicker: native.extParseTicker,\n\n pivotToWide: native.extPivotToWide,\n previousCdxSeries: native.extPreviousCdxSeries,\n renameDividendColumns: native.extRenameDividendColumns,\n renameEtfColumns: native.extRenameEtfColumns,\n sameCurrency: native.extSameCurrency,\n sessionTimesToUtc: native.extSessionTimesToUtc,\n setExchangeOverride: native.extSetExchangeOverride,\n validateGenericTicker: native.extValidateGenericTicker,\n});\n\nexport function version(): string {\n return packageJson.version;\n}\n\nexport const { setLogLevel } = native;\nexport const { getLogLevel } = native;\n\n// Issue #317: native datetime/date acceptance helpers, re-exported.\nexport { formatDate, formatDateTime } from './dates';\n\nexport {\n BlpError,\n BlpSessionError,\n BlpRequestError,\n BlpValidationError,\n BlpTimeoutError,\n BlpInternalError,\n wrapError,\n};\n\nexport type {\n ActiveCdxOptions,\n AuthConfig,\n BackendKind,\n BdhOptions,\n BdibOptions,\n BdpOptions,\n BdtickOptions,\n BeqsOptions,\n BfldsOptions,\n BlkpOptions,\n BqlOptions,\n BqrOptions,\n BsrchOptions,\n BtaOptions,\n CdxOptions,\n CdxTickerInfo,\n CorporateBondsOptions,\n DateLike,\n DateTimeLike,\n DividendOptions,\n DividendYieldOptions,\n EngineConfig,\n EtfHoldingsOptions,\n ExchangeInfoResult,\n ExchangeOverrideInput,\n FieldInfo,\n FormatKind,\n FuturesCandidate,\n FuturesResolveOptions,\n FuturesCurveOptions,\n FxPairInfo,\n MarketRule,\n OverridesMap,\n IndexMembersOptions,\n PreferredsOptions,\n PrimitiveValue,\n RecipeBackendOptions,\n RequestInput,\n RequestOptions,\n ServerAddress,\n SessionWindowsInfo,\n Socks5Config,\n StreamOptions,\n StringPair,\n SubscriptionStats,\n TickerParts,\n TimeRange,\n TlsConfig,\n TurnoverOptions,\n VolFieldSpec,\n VolSurfaceOptions,\n VolSurfacePreset,\n YasOptions,\n};\n"]}