@solibo/solibo-query 1.5.8 → 1.5.9

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.
@@ -152,8 +152,27 @@ function isKtList(v) {
152
152
  if (v == null || typeof v !== "object")
153
153
  return false;
154
154
  const obj = v;
155
- return (typeof obj.asJsReadonlyArrayView === "function" ||
156
- obj[KT_LIST_JS_ARRAY_COMPAT_MARKER] === true);
155
+ if (typeof obj.asJsReadonlyArrayView === "function" ||
156
+ obj[KT_LIST_JS_ARRAY_COMPAT_MARKER] === true) {
157
+ return true;
158
+ }
159
+ /**
160
+ * Structural fallback for ArrayList variants produced by Kotlin's serialization
161
+ * framework that may have a different prototype chain than KtList.fromJsArray().
162
+ * Kotlin/JS ArrayList stores elements in a backing array field (c1_1 / c1_l)
163
+ * alongside a size field (i5_1 / i5_l).
164
+ *
165
+ * When detected this way, opportunistically patch the prototype so future
166
+ * instances of the same class are covered by the cheaper marker check.
167
+ */
168
+ if (Array.isArray(obj.c1_1) || Array.isArray(obj.c1_l)) {
169
+ const proto = Object.getPrototypeOf(obj);
170
+ if (proto && proto !== Object.prototype) {
171
+ patchKtListPrototype(proto);
172
+ }
173
+ return true;
174
+ }
175
+ return false;
157
176
  }
158
177
  function isKtMap(v) {
159
178
  return (v != null &&
@@ -1 +1 @@
1
- {"version":3,"file":"kt-bridge.js","sourceRoot":"","sources":["../../src/utils/kt-bridge.ts"],"names":[],"mappings":"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","sourcesContent":["import { KtList, KtMap, KtMutableList, KtMutableMap } from \"@solibo/solibo-sdk\";\n\n/**\n * Accepts any value that can be coerced to an ID via BigInt().\n * Use this for hook parameters that represent entity IDs — works\n * seamlessly with useParams(), route params, etc.\n */\nexport type Id = bigint | number | string;\n\n/**\n * Normalizes an ID for use in a TanStack Query key.\n * bigint cannot be JSON.stringify'd (which TanStack Query uses to hash keys),\n * so bigint values are converted to their string representation.\n * number and string pass through unchanged.\n */\nexport function toKeyId(id: bigint): string;\nexport function toKeyId(id: number): number;\nexport function toKeyId(id: string): string;\nexport function toKeyId(id: null): null;\nexport function toKeyId(id: undefined): undefined;\nexport function toKeyId(id?: Id | null): string | number | null | undefined;\nexport function toKeyId(id?: Id | null): string | number | null | undefined {\n if (typeof id === \"bigint\") return String(id);\n return id as string | number | null | undefined;\n}\n\n/**\n * Tracks objects already converted by fromKt.\n *\n * This replaces the old symbol marker so converted objects can be frozen\n * without needing to write marker properties onto them later.\n */\nconst CONVERTED = new WeakSet<object>();\n\nconst READONLY_MAP_CACHE = new WeakMap<\n Map<unknown, unknown>,\n Map<unknown, unknown>\n>();\nconst READONLY_DATE_CACHE = new WeakMap<Date, Date>();\n\nconst READONLY_ERROR = \"Cannot mutate SDK query result\";\n\nconst KT_LIST_JS_ARRAY_COMPAT_MARKER = Symbol.for(\n \"@solibo/solibo-query/kt-list-js-array-compat\",\n);\n\nfunction ktListToJsArrayView(value: unknown): unknown[] {\n if (value == null || typeof value !== \"object\") {\n return [];\n }\n\n const anyValue = value as any;\n\n if (typeof anyValue.asJsReadonlyArrayView === \"function\") {\n return Array.from(anyValue.asJsReadonlyArrayView());\n }\n\n /**\n * Kotlin/JS ArrayList fallback.\n *\n * Current observed shape:\n * ArrayList { i5_1: size, c1_1: backingArray, d1_1: false }\n *\n * Do not rely only on exact names; keep them as fast-paths and then fall\n * back to \"first array field + plausible size field\".\n */\n const backingArray: unknown[] | undefined = Array.isArray(anyValue.c1_1)\n ? anyValue.c1_1\n : Array.isArray(anyValue.c1_l)\n ? anyValue.c1_l\n : Object.values(anyValue).find((entry): entry is unknown[] =>\n Array.isArray(entry),\n );\n\n if (!backingArray) {\n return [];\n }\n\n const explicitSize =\n typeof anyValue.i5_1 === \"number\"\n ? anyValue.i5_1\n : typeof anyValue.i5_l === \"number\"\n ? anyValue.i5_l\n : undefined;\n\n const inferredSize =\n explicitSize ??\n Object.values(anyValue).find((entry): entry is number => {\n return (\n typeof entry === \"number\" &&\n Number.isInteger(entry) &&\n entry >= 0 &&\n entry <= backingArray.length\n );\n });\n\n return backingArray.slice(0, inferredSize ?? backingArray.length);\n}\n\nfunction defineKtListArrayMethod(\n proto: object,\n name: string,\n fn: (this: unknown, ...args: any[]) => unknown,\n) {\n Object.defineProperty(proto, name, {\n value: fn,\n enumerable: false,\n configurable: true,\n writable: true,\n });\n}\n\nfunction patchKtListPrototype(proto: object) {\n if ((proto as any)[KT_LIST_JS_ARRAY_COMPAT_MARKER]) {\n return;\n }\n\n Object.defineProperty(proto, KT_LIST_JS_ARRAY_COMPAT_MARKER, {\n value: true,\n enumerable: false,\n configurable: false,\n });\n\n Object.defineProperty(proto, \"length\", {\n get() {\n return ktListToJsArrayView(this).length;\n },\n enumerable: false,\n configurable: true,\n });\n\n Object.defineProperty(proto, Symbol.iterator, {\n value: function () {\n return ktListToJsArrayView(this)[Symbol.iterator]();\n },\n enumerable: false,\n configurable: true,\n writable: true,\n });\n\n defineKtListArrayMethod(proto, \"at\", function (index: number) {\n return ktListToJsArrayView(this).at(index);\n });\n\n defineKtListArrayMethod(proto, \"slice\", function (...args: any[]) {\n return ktListToJsArrayView(this).slice(...(args as [number?, number?]));\n });\n\n defineKtListArrayMethod(proto, \"map\", function (...args: any[]) {\n return ktListToJsArrayView(this).map(...(args as [any, any?]));\n });\n\n defineKtListArrayMethod(proto, \"filter\", function (...args: any[]) {\n return ktListToJsArrayView(this).filter(...(args as [any, any?]));\n });\n\n defineKtListArrayMethod(proto, \"forEach\", function (...args: any[]) {\n return ktListToJsArrayView(this).forEach(...(args as [any, any?]));\n });\n\n defineKtListArrayMethod(proto, \"some\", function (...args: any[]) {\n return ktListToJsArrayView(this).some(...(args as [any, any?]));\n });\n\n defineKtListArrayMethod(proto, \"every\", function (...args: any[]) {\n return ktListToJsArrayView(this).every(...(args as [any, any?]));\n });\n\n defineKtListArrayMethod(proto, \"find\", function (...args: any[]) {\n return ktListToJsArrayView(this).find(...(args as [any, any?]));\n });\n\n defineKtListArrayMethod(proto, \"findIndex\", function (...args: any[]) {\n return ktListToJsArrayView(this).findIndex(...(args as [any, any?]));\n });\n\n defineKtListArrayMethod(proto, \"includes\", function (...args: any[]) {\n return ktListToJsArrayView(this).includes(...(args as [any, number?]));\n });\n\n defineKtListArrayMethod(proto, \"indexOf\", function (...args: any[]) {\n return ktListToJsArrayView(this).indexOf(...(args as [any, number?]));\n });\n\n defineKtListArrayMethod(proto, \"concat\", function (...args: any[]) {\n return ktListToJsArrayView(this).concat(...args);\n });\n\n defineKtListArrayMethod(proto, \"reduce\", function (...args: any[]) {\n return (ktListToJsArrayView(this) as any[]).reduce(\n ...(args as [any, any?]),\n );\n });\n}\n\nfunction installKtListJsArrayCompat() {\n try {\n const sample = KtList.fromJsArray([]);\n\n for (\n let proto = Object.getPrototypeOf(sample);\n proto && proto !== Object.prototype;\n proto = Object.getPrototypeOf(proto)\n ) {\n const name = proto.constructor?.name ?? \"\";\n\n if (\n name.includes(\"ArrayList\") ||\n name.includes(\"AbstractMutableList\") ||\n name.includes(\"AbstractList\") ||\n typeof (proto as any).asJsReadonlyArrayView === \"function\"\n ) {\n patchKtListPrototype(proto);\n }\n }\n } catch {\n // If SDK import/initialization changes, do not break module loading.\n }\n}\n\n// Kotlin/JS ArrayList instances can leak through opaque SDK models whose\n// public fields are not discoverable by reflection. Patch the Kotlin list\n// prototype once so leaked lists still support JS array-like reads such as\n// .length, .map(), iteration, etc.\ninstallKtListJsArrayCompat();\n\n/**\n * Converts Kotlin collection types to their JS equivalents without making\n * the TypeScript surface readonly:\n *\n * KtList<E> / KtMutableList<E> → FromKt<E>[]\n * KtMap<K,V> / KtMutableMap<K,V> → Map<K, FromKt<V>>\n * readonly E[] → FromKt<E>[]\n * SDK class instances → unchanged public type\n * primitives, Date, bigint, etc. → unchanged\n *\n * Runtime immutability is enforced by fromKt(), not by this type.\n */\nexport type FromKt<T> = T extends KtList<infer E> | KtMutableList<infer E>\n ? FromKt<E>[]\n : T extends KtMap<infer K, infer V> | KtMutableMap<infer K, infer V>\n ? Map<K, FromKt<V>>\n : T extends readonly (infer E)[]\n ? FromKt<E>[]\n : T;\n\n/**\n * @deprecated Use FromKt<T>.\n *\n * Kept as a compatibility alias. This is intentionally no longer deeply\n * readonly at type level; runtime immutability is enforced by fromKt().\n */\nexport type DeepReadonly<T> = FromKt<T>;\n\nfunction isKtList(v: unknown): v is KtList<unknown> {\n if (v == null || typeof v !== \"object\") return false;\n const obj = v as any;\n return (\n typeof obj.asJsReadonlyArrayView === \"function\" ||\n obj[KT_LIST_JS_ARRAY_COMPAT_MARKER] === true\n );\n}\n\nfunction isKtMap(v: unknown): v is KtMap<unknown, unknown> {\n return (\n v != null &&\n typeof v === \"object\" &&\n typeof (v as any).asJsReadonlyMapView === \"function\"\n );\n}\n\nfunction throwReadonlyMutation(): never {\n throw new TypeError(READONLY_ERROR);\n}\n\nfunction readonlyArray<T>(arr: T[]): T[] {\n CONVERTED.add(arr);\n return Object.freeze(arr) as T[];\n}\n\n/**\n * Object.freeze(new Map()) does not prevent map.set/delete/clear because\n * Map entries live in internal slots. Use a Proxy to make mutation fail.\n */\nfunction readonlyMap<K, V>(map: Map<K, V>): Map<K, V> {\n const cached = READONLY_MAP_CACHE.get(map as Map<unknown, unknown>);\n if (cached) return cached as Map<K, V>;\n\n const proxy = new Proxy(map, {\n get(target, prop) {\n if (prop === \"set\" || prop === \"delete\" || prop === \"clear\") {\n return throwReadonlyMutation;\n }\n\n const value = Reflect.get(target, prop, target);\n return typeof value === \"function\" ? value.bind(target) : value;\n },\n\n set: throwReadonlyMutation,\n defineProperty: throwReadonlyMutation,\n deleteProperty: throwReadonlyMutation,\n setPrototypeOf: throwReadonlyMutation,\n });\n\n READONLY_MAP_CACHE.set(\n map as Map<unknown, unknown>,\n proxy as Map<unknown, unknown>,\n );\n\n CONVERTED.add(map);\n CONVERTED.add(proxy);\n\n return proxy;\n}\n\nconst DATE_MUTATORS = new Set<PropertyKey>([\n \"setDate\",\n \"setFullYear\",\n \"setHours\",\n \"setMilliseconds\",\n \"setMinutes\",\n \"setMonth\",\n \"setSeconds\",\n \"setTime\",\n \"setUTCDate\",\n \"setUTCFullYear\",\n \"setUTCHours\",\n \"setUTCMilliseconds\",\n \"setUTCMinutes\",\n \"setUTCMonth\",\n \"setUTCSeconds\",\n \"setYear\",\n]);\n\n/**\n * Object.freeze(date) does not prevent date.setTime(...), because Date also\n * mutates internal slots. Use a Proxy so Date remains Date-shaped while\n * mutation methods throw.\n */\nfunction readonlyDate<T extends Date>(date: T): T {\n const cached = READONLY_DATE_CACHE.get(date);\n if (cached) return cached as T;\n\n const proxy = new Proxy(date, {\n get(target, prop) {\n if (DATE_MUTATORS.has(prop)) {\n return throwReadonlyMutation;\n }\n\n const value = Reflect.get(target, prop, target);\n return typeof value === \"function\" ? value.bind(target) : value;\n },\n\n set: throwReadonlyMutation,\n defineProperty: throwReadonlyMutation,\n deleteProperty: throwReadonlyMutation,\n setPrototypeOf: throwReadonlyMutation,\n }) as T;\n\n READONLY_DATE_CACHE.set(date, proxy);\n\n // Do not add `date`; otherwise later fromKt(date) returns the mutable original.\n CONVERTED.add(proxy);\n\n return proxy;\n}\n\nfunction freezeObject<T extends object>(obj: T): T {\n CONVERTED.add(obj);\n return Object.freeze(obj);\n}\n\n/**\n * Recursively converts an SDK result object so that:\n *\n * KtList / KtMutableList → JS array\n * KtMap / KtMutableMap → JS Map\n * SDK class instances → same instance, converted in-place\n * Date → Date proxy whose mutators throw\n * everything else → unchanged\n *\n * The returned TypeScript type is intentionally mutable-looking. Runtime\n * immutability is enforced by freezing objects/arrays and proxying Map/Date.\n *\n * Examples:\n *\n * fromKt(KtList<Company>) → Company[]\n * fromKt(Company) → Company\n * fromKt(KtMap<K, V>) → Map<K, FromKt<V>>\n *\n * Mutations compile, but throw at runtime:\n *\n * company.name = 'New name'\n * companies.push(company)\n * companyMap.set(id, company)\n */\nexport function fromKt<E>(obj: KtList<E> | KtMutableList<E>): FromKt<E>[];\n\nexport function fromKt<K, V>(\n obj: KtMap<K, V> | KtMutableMap<K, V>,\n): Map<K, FromKt<V>>;\n\nexport function fromKt<T>(obj: T): FromKt<T>;\n\nexport function fromKt(obj: any): any {\n if (obj == null) return obj;\n\n if (typeof obj !== \"object\") {\n return obj;\n }\n\n if (CONVERTED.has(obj)) {\n return obj;\n }\n\n if (obj instanceof Date) {\n return readonlyDate(obj);\n }\n\n if (isKtList(obj)) {\n return readonlyArray(ktListToJsArrayView(obj).map((el: any) => fromKt(el)));\n }\n\n if (isKtMap(obj)) {\n const result = new Map();\n\n for (const [k, v] of (obj as any).asJsReadonlyMapView()) {\n result.set(k, fromKt(v));\n }\n\n return readonlyMap(result);\n }\n\n if (Array.isArray(obj)) {\n return readonlyArray(obj.map((el) => fromKt(el)));\n }\n\n if (obj instanceof Map) {\n const result = new Map();\n\n for (const [k, v] of obj) {\n result.set(k, fromKt(v));\n }\n\n return readonlyMap(result);\n }\n\n /**\n * SDK class instance / plain object.\n *\n * Convert object-valued properties in-place so identity, prototype,\n * methods and instanceof checks are preserved for SDK model instances.\n *\n * Mark before recursion to handle cycles.\n */\n CONVERTED.add(obj);\n\n const record = obj as Record<string, unknown>;\n\n for (const key of Object.keys(obj)) {\n const val = record[key];\n\n if (val == null || typeof val !== \"object\") {\n continue;\n }\n\n record[key] = fromKt(val);\n }\n\n return freezeObject(obj);\n}\n\n/** Converts any numeric value to the bigint Kotlin Long expects. */\nexport const toLong = (n: number | bigint | string): bigint => BigInt(n);\n\n/** Wraps a JS array for Kotlin APIs that accept List<T>. */\nexport const toKtList = <T>(arr: T[]): KtList<T> => KtList.fromJsArray(arr);\n\n/** Converts an array of numeric IDs to KtList<bigint>. */\nexport const toIdList = (arr: Id[]): KtList<bigint> =>\n KtList.fromJsArray(arr.map(toLong));\n\n/**\n * Recursively maps a Props type so that Kotlin collection types become\n * their plain JS equivalents:\n *\n * KtList<E> / KtMutableList<E> → JsProps<E>[]\n * KtMap<K,V> / KtMutableMap<K,V> → Map<K, JsProps<V>>\n * nested object types → recursed into\n * primitives, Date, bigint, etc. → unchanged\n */\nexport type JsProps<T> = T extends KtList<infer E> | KtMutableList<infer E>\n ? JsProps<E>[]\n : T extends KtMap<infer K, infer V> | KtMutableMap<infer K, infer V>\n ? Map<K, JsProps<V>>\n : T extends Date | bigint | number | string | boolean | null | undefined\n ? T\n : T extends readonly (infer E)[]\n ? JsProps<E>[]\n : T extends object\n ? { [P in keyof T]: JsProps<T[P]> }\n : T;\n\n/**\n * Recursively prepares a plain JS props object for an SDK constructor.\n *\n * SDK constructors handle arrays of complex objects natively, converting\n * elements to class instances and wrapping in ArrayList. However, arrays\n * of primitives such as strings and bigints are not auto-converted and must\n * be pre-wrapped in KtList. Maps must be converted to KtMap as well.\n *\n * This function:\n *\n * - Leaves arrays of plain objects as JS arrays\n * - Converts arrays of primitives / empty arrays to KtList\n * - Converts JS Map to KtMap, recursing into values\n * - Recurses into arrays and plain objects to process nested values\n * - Passes through primitives, Date, class instances and enums unchanged\n */\nexport function toKtProps<T>(obj: T): any {\n if (obj == null) return obj;\n\n if (Array.isArray(obj)) {\n const mapped = obj.map(toKtProps);\n\n /**\n * Non-empty arrays whose first element is a plain object should stay\n * as JS arrays. SDK constructors convert elements to class instances\n * and wrap in ArrayList. Everything else — empty arrays and primitive\n * arrays — must become KtList since constructors do not handle those.\n */\n const first = mapped[0];\n\n if (\n mapped.length > 0 &&\n typeof first === \"object\" &&\n first !== null &&\n first.constructor === Object\n ) {\n return mapped;\n }\n\n return KtList.fromJsArray(mapped);\n }\n\n if (obj instanceof Map) {\n const converted = new Map();\n\n for (const [k, v] of obj) {\n converted.set(k, toKtProps(v));\n }\n\n return KtMap.fromJsMap(converted);\n }\n\n if (typeof obj === \"object\" && obj.constructor === Object) {\n const result: Record<string, unknown> = {};\n\n for (const key of Object.keys(obj)) {\n result[key] = toKtProps((obj as Record<string, unknown>)[key]);\n }\n\n return result;\n }\n\n return obj;\n}\n"]}
1
+ {"version":3,"file":"kt-bridge.js","sourceRoot":"","sources":["../../src/utils/kt-bridge.ts"],"names":[],"mappings":"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","sourcesContent":["import { KtList, KtMap, KtMutableList, KtMutableMap } from \"@solibo/solibo-sdk\";\n\n/**\n * Accepts any value that can be coerced to an ID via BigInt().\n * Use this for hook parameters that represent entity IDs — works\n * seamlessly with useParams(), route params, etc.\n */\nexport type Id = bigint | number | string;\n\n/**\n * Normalizes an ID for use in a TanStack Query key.\n * bigint cannot be JSON.stringify'd (which TanStack Query uses to hash keys),\n * so bigint values are converted to their string representation.\n * number and string pass through unchanged.\n */\nexport function toKeyId(id: bigint): string;\nexport function toKeyId(id: number): number;\nexport function toKeyId(id: string): string;\nexport function toKeyId(id: null): null;\nexport function toKeyId(id: undefined): undefined;\nexport function toKeyId(id?: Id | null): string | number | null | undefined;\nexport function toKeyId(id?: Id | null): string | number | null | undefined {\n if (typeof id === \"bigint\") return String(id);\n return id as string | number | null | undefined;\n}\n\n/**\n * Tracks objects already converted by fromKt.\n *\n * This replaces the old symbol marker so converted objects can be frozen\n * without needing to write marker properties onto them later.\n */\nconst CONVERTED = new WeakSet<object>();\n\nconst READONLY_MAP_CACHE = new WeakMap<\n Map<unknown, unknown>,\n Map<unknown, unknown>\n>();\nconst READONLY_DATE_CACHE = new WeakMap<Date, Date>();\n\nconst READONLY_ERROR = \"Cannot mutate SDK query result\";\n\nconst KT_LIST_JS_ARRAY_COMPAT_MARKER = Symbol.for(\n \"@solibo/solibo-query/kt-list-js-array-compat\",\n);\n\nfunction ktListToJsArrayView(value: unknown): unknown[] {\n if (value == null || typeof value !== \"object\") {\n return [];\n }\n\n const anyValue = value as any;\n\n if (typeof anyValue.asJsReadonlyArrayView === \"function\") {\n return Array.from(anyValue.asJsReadonlyArrayView());\n }\n\n /**\n * Kotlin/JS ArrayList fallback.\n *\n * Current observed shape:\n * ArrayList { i5_1: size, c1_1: backingArray, d1_1: false }\n *\n * Do not rely only on exact names; keep them as fast-paths and then fall\n * back to \"first array field + plausible size field\".\n */\n const backingArray: unknown[] | undefined = Array.isArray(anyValue.c1_1)\n ? anyValue.c1_1\n : Array.isArray(anyValue.c1_l)\n ? anyValue.c1_l\n : Object.values(anyValue).find((entry): entry is unknown[] =>\n Array.isArray(entry),\n );\n\n if (!backingArray) {\n return [];\n }\n\n const explicitSize =\n typeof anyValue.i5_1 === \"number\"\n ? anyValue.i5_1\n : typeof anyValue.i5_l === \"number\"\n ? anyValue.i5_l\n : undefined;\n\n const inferredSize =\n explicitSize ??\n Object.values(anyValue).find((entry): entry is number => {\n return (\n typeof entry === \"number\" &&\n Number.isInteger(entry) &&\n entry >= 0 &&\n entry <= backingArray.length\n );\n });\n\n return backingArray.slice(0, inferredSize ?? backingArray.length);\n}\n\nfunction defineKtListArrayMethod(\n proto: object,\n name: string,\n fn: (this: unknown, ...args: any[]) => unknown,\n) {\n Object.defineProperty(proto, name, {\n value: fn,\n enumerable: false,\n configurable: true,\n writable: true,\n });\n}\n\nfunction patchKtListPrototype(proto: object) {\n if ((proto as any)[KT_LIST_JS_ARRAY_COMPAT_MARKER]) {\n return;\n }\n\n Object.defineProperty(proto, KT_LIST_JS_ARRAY_COMPAT_MARKER, {\n value: true,\n enumerable: false,\n configurable: false,\n });\n\n Object.defineProperty(proto, \"length\", {\n get() {\n return ktListToJsArrayView(this).length;\n },\n enumerable: false,\n configurable: true,\n });\n\n Object.defineProperty(proto, Symbol.iterator, {\n value: function () {\n return ktListToJsArrayView(this)[Symbol.iterator]();\n },\n enumerable: false,\n configurable: true,\n writable: true,\n });\n\n defineKtListArrayMethod(proto, \"at\", function (index: number) {\n return ktListToJsArrayView(this).at(index);\n });\n\n defineKtListArrayMethod(proto, \"slice\", function (...args: any[]) {\n return ktListToJsArrayView(this).slice(...(args as [number?, number?]));\n });\n\n defineKtListArrayMethod(proto, \"map\", function (...args: any[]) {\n return ktListToJsArrayView(this).map(...(args as [any, any?]));\n });\n\n defineKtListArrayMethod(proto, \"filter\", function (...args: any[]) {\n return ktListToJsArrayView(this).filter(...(args as [any, any?]));\n });\n\n defineKtListArrayMethod(proto, \"forEach\", function (...args: any[]) {\n return ktListToJsArrayView(this).forEach(...(args as [any, any?]));\n });\n\n defineKtListArrayMethod(proto, \"some\", function (...args: any[]) {\n return ktListToJsArrayView(this).some(...(args as [any, any?]));\n });\n\n defineKtListArrayMethod(proto, \"every\", function (...args: any[]) {\n return ktListToJsArrayView(this).every(...(args as [any, any?]));\n });\n\n defineKtListArrayMethod(proto, \"find\", function (...args: any[]) {\n return ktListToJsArrayView(this).find(...(args as [any, any?]));\n });\n\n defineKtListArrayMethod(proto, \"findIndex\", function (...args: any[]) {\n return ktListToJsArrayView(this).findIndex(...(args as [any, any?]));\n });\n\n defineKtListArrayMethod(proto, \"includes\", function (...args: any[]) {\n return ktListToJsArrayView(this).includes(...(args as [any, number?]));\n });\n\n defineKtListArrayMethod(proto, \"indexOf\", function (...args: any[]) {\n return ktListToJsArrayView(this).indexOf(...(args as [any, number?]));\n });\n\n defineKtListArrayMethod(proto, \"concat\", function (...args: any[]) {\n return ktListToJsArrayView(this).concat(...args);\n });\n\n defineKtListArrayMethod(proto, \"reduce\", function (...args: any[]) {\n return (ktListToJsArrayView(this) as any[]).reduce(\n ...(args as [any, any?]),\n );\n });\n}\n\nfunction installKtListJsArrayCompat() {\n try {\n const sample = KtList.fromJsArray([]);\n\n for (\n let proto = Object.getPrototypeOf(sample);\n proto && proto !== Object.prototype;\n proto = Object.getPrototypeOf(proto)\n ) {\n const name = proto.constructor?.name ?? \"\";\n\n if (\n name.includes(\"ArrayList\") ||\n name.includes(\"AbstractMutableList\") ||\n name.includes(\"AbstractList\") ||\n typeof (proto as any).asJsReadonlyArrayView === \"function\"\n ) {\n patchKtListPrototype(proto);\n }\n }\n } catch {\n // If SDK import/initialization changes, do not break module loading.\n }\n}\n\n// Kotlin/JS ArrayList instances can leak through opaque SDK models whose\n// public fields are not discoverable by reflection. Patch the Kotlin list\n// prototype once so leaked lists still support JS array-like reads such as\n// .length, .map(), iteration, etc.\ninstallKtListJsArrayCompat();\n\n/**\n * Converts Kotlin collection types to their JS equivalents without making\n * the TypeScript surface readonly:\n *\n * KtList<E> / KtMutableList<E> → FromKt<E>[]\n * KtMap<K,V> / KtMutableMap<K,V> → Map<K, FromKt<V>>\n * readonly E[] → FromKt<E>[]\n * SDK class instances → unchanged public type\n * primitives, Date, bigint, etc. → unchanged\n *\n * Runtime immutability is enforced by fromKt(), not by this type.\n */\nexport type FromKt<T> = T extends KtList<infer E> | KtMutableList<infer E>\n ? FromKt<E>[]\n : T extends KtMap<infer K, infer V> | KtMutableMap<infer K, infer V>\n ? Map<K, FromKt<V>>\n : T extends readonly (infer E)[]\n ? FromKt<E>[]\n : T;\n\n/**\n * @deprecated Use FromKt<T>.\n *\n * Kept as a compatibility alias. This is intentionally no longer deeply\n * readonly at type level; runtime immutability is enforced by fromKt().\n */\nexport type DeepReadonly<T> = FromKt<T>;\n\nfunction isKtList(v: unknown): v is KtList<unknown> {\n if (v == null || typeof v !== \"object\") return false;\n const obj = v as any;\n\n if (\n typeof obj.asJsReadonlyArrayView === \"function\" ||\n obj[KT_LIST_JS_ARRAY_COMPAT_MARKER] === true\n ) {\n return true;\n }\n\n /**\n * Structural fallback for ArrayList variants produced by Kotlin's serialization\n * framework that may have a different prototype chain than KtList.fromJsArray().\n * Kotlin/JS ArrayList stores elements in a backing array field (c1_1 / c1_l)\n * alongside a size field (i5_1 / i5_l).\n *\n * When detected this way, opportunistically patch the prototype so future\n * instances of the same class are covered by the cheaper marker check.\n */\n if (Array.isArray(obj.c1_1) || Array.isArray(obj.c1_l)) {\n const proto = Object.getPrototypeOf(obj);\n if (proto && proto !== Object.prototype) {\n patchKtListPrototype(proto);\n }\n return true;\n }\n\n return false;\n}\n\nfunction isKtMap(v: unknown): v is KtMap<unknown, unknown> {\n return (\n v != null &&\n typeof v === \"object\" &&\n typeof (v as any).asJsReadonlyMapView === \"function\"\n );\n}\n\nfunction throwReadonlyMutation(): never {\n throw new TypeError(READONLY_ERROR);\n}\n\nfunction readonlyArray<T>(arr: T[]): T[] {\n CONVERTED.add(arr);\n return Object.freeze(arr) as T[];\n}\n\n/**\n * Object.freeze(new Map()) does not prevent map.set/delete/clear because\n * Map entries live in internal slots. Use a Proxy to make mutation fail.\n */\nfunction readonlyMap<K, V>(map: Map<K, V>): Map<K, V> {\n const cached = READONLY_MAP_CACHE.get(map as Map<unknown, unknown>);\n if (cached) return cached as Map<K, V>;\n\n const proxy = new Proxy(map, {\n get(target, prop) {\n if (prop === \"set\" || prop === \"delete\" || prop === \"clear\") {\n return throwReadonlyMutation;\n }\n\n const value = Reflect.get(target, prop, target);\n return typeof value === \"function\" ? value.bind(target) : value;\n },\n\n set: throwReadonlyMutation,\n defineProperty: throwReadonlyMutation,\n deleteProperty: throwReadonlyMutation,\n setPrototypeOf: throwReadonlyMutation,\n });\n\n READONLY_MAP_CACHE.set(\n map as Map<unknown, unknown>,\n proxy as Map<unknown, unknown>,\n );\n\n CONVERTED.add(map);\n CONVERTED.add(proxy);\n\n return proxy;\n}\n\nconst DATE_MUTATORS = new Set<PropertyKey>([\n \"setDate\",\n \"setFullYear\",\n \"setHours\",\n \"setMilliseconds\",\n \"setMinutes\",\n \"setMonth\",\n \"setSeconds\",\n \"setTime\",\n \"setUTCDate\",\n \"setUTCFullYear\",\n \"setUTCHours\",\n \"setUTCMilliseconds\",\n \"setUTCMinutes\",\n \"setUTCMonth\",\n \"setUTCSeconds\",\n \"setYear\",\n]);\n\n/**\n * Object.freeze(date) does not prevent date.setTime(...), because Date also\n * mutates internal slots. Use a Proxy so Date remains Date-shaped while\n * mutation methods throw.\n */\nfunction readonlyDate<T extends Date>(date: T): T {\n const cached = READONLY_DATE_CACHE.get(date);\n if (cached) return cached as T;\n\n const proxy = new Proxy(date, {\n get(target, prop) {\n if (DATE_MUTATORS.has(prop)) {\n return throwReadonlyMutation;\n }\n\n const value = Reflect.get(target, prop, target);\n return typeof value === \"function\" ? value.bind(target) : value;\n },\n\n set: throwReadonlyMutation,\n defineProperty: throwReadonlyMutation,\n deleteProperty: throwReadonlyMutation,\n setPrototypeOf: throwReadonlyMutation,\n }) as T;\n\n READONLY_DATE_CACHE.set(date, proxy);\n\n // Do not add `date`; otherwise later fromKt(date) returns the mutable original.\n CONVERTED.add(proxy);\n\n return proxy;\n}\n\nfunction freezeObject<T extends object>(obj: T): T {\n CONVERTED.add(obj);\n return Object.freeze(obj);\n}\n\n/**\n * Recursively converts an SDK result object so that:\n *\n * KtList / KtMutableList → JS array\n * KtMap / KtMutableMap → JS Map\n * SDK class instances → same instance, converted in-place\n * Date → Date proxy whose mutators throw\n * everything else → unchanged\n *\n * The returned TypeScript type is intentionally mutable-looking. Runtime\n * immutability is enforced by freezing objects/arrays and proxying Map/Date.\n *\n * Examples:\n *\n * fromKt(KtList<Company>) → Company[]\n * fromKt(Company) → Company\n * fromKt(KtMap<K, V>) → Map<K, FromKt<V>>\n *\n * Mutations compile, but throw at runtime:\n *\n * company.name = 'New name'\n * companies.push(company)\n * companyMap.set(id, company)\n */\nexport function fromKt<E>(obj: KtList<E> | KtMutableList<E>): FromKt<E>[];\n\nexport function fromKt<K, V>(\n obj: KtMap<K, V> | KtMutableMap<K, V>,\n): Map<K, FromKt<V>>;\n\nexport function fromKt<T>(obj: T): FromKt<T>;\n\nexport function fromKt(obj: any): any {\n if (obj == null) return obj;\n\n if (typeof obj !== \"object\") {\n return obj;\n }\n\n if (CONVERTED.has(obj)) {\n return obj;\n }\n\n if (obj instanceof Date) {\n return readonlyDate(obj);\n }\n\n if (isKtList(obj)) {\n return readonlyArray(ktListToJsArrayView(obj).map((el: any) => fromKt(el)));\n }\n\n if (isKtMap(obj)) {\n const result = new Map();\n\n for (const [k, v] of (obj as any).asJsReadonlyMapView()) {\n result.set(k, fromKt(v));\n }\n\n return readonlyMap(result);\n }\n\n if (Array.isArray(obj)) {\n return readonlyArray(obj.map((el) => fromKt(el)));\n }\n\n if (obj instanceof Map) {\n const result = new Map();\n\n for (const [k, v] of obj) {\n result.set(k, fromKt(v));\n }\n\n return readonlyMap(result);\n }\n\n /**\n * SDK class instance / plain object.\n *\n * Convert object-valued properties in-place so identity, prototype,\n * methods and instanceof checks are preserved for SDK model instances.\n *\n * Mark before recursion to handle cycles.\n */\n CONVERTED.add(obj);\n\n const record = obj as Record<string, unknown>;\n\n for (const key of Object.keys(obj)) {\n const val = record[key];\n\n if (val == null || typeof val !== \"object\") {\n continue;\n }\n\n record[key] = fromKt(val);\n }\n\n return freezeObject(obj);\n}\n\n/** Converts any numeric value to the bigint Kotlin Long expects. */\nexport const toLong = (n: number | bigint | string): bigint => BigInt(n);\n\n/** Wraps a JS array for Kotlin APIs that accept List<T>. */\nexport const toKtList = <T>(arr: T[]): KtList<T> => KtList.fromJsArray(arr);\n\n/** Converts an array of numeric IDs to KtList<bigint>. */\nexport const toIdList = (arr: Id[]): KtList<bigint> =>\n KtList.fromJsArray(arr.map(toLong));\n\n/**\n * Recursively maps a Props type so that Kotlin collection types become\n * their plain JS equivalents:\n *\n * KtList<E> / KtMutableList<E> → JsProps<E>[]\n * KtMap<K,V> / KtMutableMap<K,V> → Map<K, JsProps<V>>\n * nested object types → recursed into\n * primitives, Date, bigint, etc. → unchanged\n */\nexport type JsProps<T> = T extends KtList<infer E> | KtMutableList<infer E>\n ? JsProps<E>[]\n : T extends KtMap<infer K, infer V> | KtMutableMap<infer K, infer V>\n ? Map<K, JsProps<V>>\n : T extends Date | bigint | number | string | boolean | null | undefined\n ? T\n : T extends readonly (infer E)[]\n ? JsProps<E>[]\n : T extends object\n ? { [P in keyof T]: JsProps<T[P]> }\n : T;\n\n/**\n * Recursively prepares a plain JS props object for an SDK constructor.\n *\n * SDK constructors handle arrays of complex objects natively, converting\n * elements to class instances and wrapping in ArrayList. However, arrays\n * of primitives such as strings and bigints are not auto-converted and must\n * be pre-wrapped in KtList. Maps must be converted to KtMap as well.\n *\n * This function:\n *\n * - Leaves arrays of plain objects as JS arrays\n * - Converts arrays of primitives / empty arrays to KtList\n * - Converts JS Map to KtMap, recursing into values\n * - Recurses into arrays and plain objects to process nested values\n * - Passes through primitives, Date, class instances and enums unchanged\n */\nexport function toKtProps<T>(obj: T): any {\n if (obj == null) return obj;\n\n if (Array.isArray(obj)) {\n const mapped = obj.map(toKtProps);\n\n /**\n * Non-empty arrays whose first element is a plain object should stay\n * as JS arrays. SDK constructors convert elements to class instances\n * and wrap in ArrayList. Everything else — empty arrays and primitive\n * arrays — must become KtList since constructors do not handle those.\n */\n const first = mapped[0];\n\n if (\n mapped.length > 0 &&\n typeof first === \"object\" &&\n first !== null &&\n first.constructor === Object\n ) {\n return mapped;\n }\n\n return KtList.fromJsArray(mapped);\n }\n\n if (obj instanceof Map) {\n const converted = new Map();\n\n for (const [k, v] of obj) {\n converted.set(k, toKtProps(v));\n }\n\n return KtMap.fromJsMap(converted);\n }\n\n if (typeof obj === \"object\" && obj.constructor === Object) {\n const result: Record<string, unknown> = {};\n\n for (const key of Object.keys(obj)) {\n result[key] = toKtProps((obj as Record<string, unknown>)[key]);\n }\n\n return result;\n }\n\n return obj;\n}\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@solibo/solibo-query",
3
- "version": "1.5.8",
3
+ "version": "1.5.9",
4
4
  "description": "Framework-agnostic TanStack Query options for Solibo SDK",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/index.js",
@@ -20,7 +20,7 @@
20
20
  "buffer": "^6.0.3",
21
21
  "hash-wasm": "^4.12.0",
22
22
  "mime-types": "^3.0.2",
23
- "@solibo/solibo-sdk": "1.5.8"
23
+ "@solibo/solibo-sdk": "1.5.9"
24
24
  },
25
25
  "devDependencies": {
26
26
  "@eslint/js": "^10.0.1",