@milaboratories/pl-model-common 1.28.0 → 1.30.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (98) hide show
  1. package/dist/bmodel/block_config.d.ts +1 -0
  2. package/dist/bmodel/code.d.ts +1 -0
  3. package/dist/driver_kit.d.ts +1 -1
  4. package/dist/drivers/index.d.ts +6 -6
  5. package/dist/drivers/index.js +1 -1
  6. package/dist/drivers/pframe/driver.cjs.map +1 -1
  7. package/dist/drivers/pframe/driver.d.ts +13 -5
  8. package/dist/drivers/pframe/driver.js.map +1 -1
  9. package/dist/drivers/pframe/index.d.ts +6 -5
  10. package/dist/drivers/pframe/index.js +1 -1
  11. package/dist/drivers/pframe/pframe.d.ts +2 -2
  12. package/dist/drivers/pframe/query/query_common.d.ts +2 -2
  13. package/dist/drivers/pframe/query/query_data.d.ts +1 -1
  14. package/dist/drivers/pframe/query/query_spec.d.ts +2 -2
  15. package/dist/drivers/pframe/spec/ids.d.ts +2 -2
  16. package/dist/drivers/pframe/spec/index.d.ts +1 -1
  17. package/dist/drivers/pframe/spec/index.js +1 -1
  18. package/dist/drivers/pframe/spec/selectors.d.ts +1 -1
  19. package/dist/drivers/pframe/spec/spec.cjs +14 -1
  20. package/dist/drivers/pframe/spec/spec.cjs.map +1 -1
  21. package/dist/drivers/pframe/spec/spec.d.ts +9 -3
  22. package/dist/drivers/pframe/spec/spec.js +14 -2
  23. package/dist/drivers/pframe/spec/spec.js.map +1 -1
  24. package/dist/drivers/{pspec.d.ts → pframe/spec_driver.d.ts} +61 -16
  25. package/dist/drivers/pframe/table_calculate.d.ts +2 -2
  26. package/dist/drivers/pframe/table_common.d.ts +1 -1
  27. package/dist/drivers/pframe/unique_values.d.ts +2 -2
  28. package/dist/errors.cjs +56 -0
  29. package/dist/errors.cjs.map +1 -1
  30. package/dist/errors.d.ts +29 -1
  31. package/dist/errors.js +43 -1
  32. package/dist/errors.js.map +1 -1
  33. package/dist/flags/block_flags.cjs.map +1 -1
  34. package/dist/flags/block_flags.d.ts +4 -1
  35. package/dist/flags/block_flags.js.map +1 -1
  36. package/dist/flags/flag_utils.d.ts +1 -1
  37. package/dist/flags/index.d.ts +3 -0
  38. package/dist/index.cjs +40 -0
  39. package/dist/index.d.ts +30 -21
  40. package/dist/index.js +11 -3
  41. package/dist/pool/query.d.ts +1 -1
  42. package/dist/pool_entry.cjs +30 -0
  43. package/dist/pool_entry.cjs.map +1 -0
  44. package/dist/pool_entry.d.ts +30 -0
  45. package/dist/pool_entry.js +29 -0
  46. package/dist/pool_entry.js.map +1 -0
  47. package/dist/services/index.cjs +6 -0
  48. package/dist/services/index.d.ts +6 -0
  49. package/dist/services/index.js +6 -0
  50. package/dist/services/service_capabilities.cjs +51 -0
  51. package/dist/services/service_capabilities.cjs.map +1 -0
  52. package/dist/services/service_capabilities.d.ts +33 -0
  53. package/dist/services/service_capabilities.js +46 -0
  54. package/dist/services/service_capabilities.js.map +1 -0
  55. package/dist/services/service_declarations.cjs +17 -0
  56. package/dist/services/service_declarations.cjs.map +1 -0
  57. package/dist/services/service_declarations.d.ts +16 -0
  58. package/dist/services/service_declarations.js +17 -0
  59. package/dist/services/service_declarations.js.map +1 -0
  60. package/dist/services/service_injector_factory.cjs +19 -0
  61. package/dist/services/service_injector_factory.cjs.map +1 -0
  62. package/dist/services/service_injector_factory.d.ts +8 -0
  63. package/dist/services/service_injector_factory.js +18 -0
  64. package/dist/services/service_injector_factory.js.map +1 -0
  65. package/dist/services/service_injectors.cjs +48 -0
  66. package/dist/services/service_injectors.cjs.map +1 -0
  67. package/dist/services/service_injectors.d.ts +23 -0
  68. package/dist/services/service_injectors.js +46 -0
  69. package/dist/services/service_injectors.js.map +1 -0
  70. package/dist/services/service_registry.cjs +52 -0
  71. package/dist/services/service_registry.cjs.map +1 -0
  72. package/dist/services/service_registry.d.ts +25 -0
  73. package/dist/services/service_registry.js +51 -0
  74. package/dist/services/service_registry.js.map +1 -0
  75. package/dist/services/service_types.cjs +30 -0
  76. package/dist/services/service_types.cjs.map +1 -0
  77. package/dist/services/service_types.d.ts +45 -0
  78. package/dist/services/service_types.js +28 -0
  79. package/dist/services/service_types.js.map +1 -0
  80. package/package.json +5 -5
  81. package/src/drivers/index.ts +0 -1
  82. package/src/drivers/pframe/driver.ts +11 -1
  83. package/src/drivers/pframe/index.ts +1 -0
  84. package/src/drivers/pframe/spec/spec.ts +18 -4
  85. package/src/drivers/{pspec.ts → pframe/spec_driver.ts} +75 -17
  86. package/src/errors.ts +61 -0
  87. package/src/flags/block_flags.ts +5 -2
  88. package/src/index.ts +2 -0
  89. package/src/pool_entry.ts +42 -0
  90. package/src/services/index.ts +5 -0
  91. package/src/services/service_capabilities.test.ts +119 -0
  92. package/src/services/service_capabilities.ts +64 -0
  93. package/src/services/service_declarations.ts +25 -0
  94. package/src/services/service_injector_factory.ts +27 -0
  95. package/src/services/service_injectors.ts +79 -0
  96. package/src/services/service_registry.test.ts +69 -0
  97. package/src/services/service_registry.ts +94 -0
  98. package/src/services/service_types.ts +114 -0
@@ -1 +1 @@
1
- {"version":3,"file":"errors.js","names":[],"sources":["../src/errors.ts"],"sourcesContent":["/**\n * Just for convenience, usually it is an Error with name 'AbortError'\n */\nexport class AbortError extends Error {\n name = \"AbortError\";\n}\n\n/**\n * Throw this to show a message without stack trace in UI\n */\nexport class UiError extends Error {\n name = \"UiError\";\n}\n\nexport function isAbortError(error: unknown): error is Error & { name: \"AbortError\" } {\n return error instanceof Error && error.name === \"AbortError\";\n}\n\nexport function hasAbortError(error: unknown): boolean {\n if (!(error instanceof Error)) {\n return false;\n }\n\n return error.name === \"AbortError\" || hasAbortError(error.cause);\n}\n\nexport function isAggregateError(error: unknown): error is AggregateError {\n return error instanceof Error && error.name === \"AggregateError\";\n}\n\nexport class PFrameError extends Error {\n name = \"PFrameError\";\n}\n\nexport function isPFrameError(error: unknown): error is PFrameError {\n return error instanceof Error && error.name === \"PFrameError\";\n}\n\nexport class PFrameDriverError extends PFrameError {\n name = \"PFrameError.Driver\";\n}\n\nexport function isPFrameDriverError(error: unknown): error is PFrameDriverError {\n return error instanceof Error && error.name === \"PFrameError.Driver\";\n}\n\nfunction stringifyValue(value: unknown): string {\n if (typeof value === \"string\") {\n return `String value was thrown: ${value}`;\n }\n\n if (value && typeof value === \"object\") {\n try {\n return `Plain object was thrown: ${JSON.stringify(value)}`;\n } catch (jsonError) {\n const errorMessage = jsonError instanceof Error ? jsonError.message : String(jsonError);\n return `Non-serializable object was thrown (JSON.stringify failed: ${errorMessage}): ${String(value)}`;\n }\n }\n\n return String(`Non-Error value (${typeof value}) was thrown: ${value}`);\n}\n\nexport function ensureError(value: unknown): Error {\n if (value instanceof Error) {\n return value;\n }\n\n return new Error(stringifyValue(value));\n}\n\n// Error serialization for IPC/network transmission (Error objects can't be JSON serialized)\n\nexport type SerializedError = {\n name: string;\n message: string;\n stack: string | undefined;\n cause?: SerializedError;\n};\n\nexport function deserializeError(obj: SerializedError): Error {\n const cause = obj.cause ? deserializeError(obj.cause) : undefined;\n\n const error = new Error(obj.message, cause !== undefined ? { cause } : undefined);\n error.name = obj.name || \"Error\";\n error.stack = obj.stack;\n\n return error;\n}\n\nexport function serializeError(e: unknown): SerializedError {\n const error = ensureError(e);\n const cause = error.cause ? serializeError(error.cause) : undefined;\n\n return {\n name: error.name,\n message: error.message,\n stack: error.stack,\n ...(error.cause !== undefined && { cause }),\n };\n}\n\nexport type ResultOrError<S, F = Error> =\n | {\n value: S;\n error?: undefined;\n }\n | {\n error: F;\n };\n\nexport function unwrapResult<T>(result: ResultOrError<T, Error | SerializedError>): T {\n if (result.error) {\n throw result.error instanceof Error ? result.error : deserializeError(result.error);\n }\n return result.value;\n}\n\nexport function serializeResult<T>(result: ResultOrError<T>): ResultOrError<T, SerializedError> {\n if (result.error) {\n return { error: serializeError(result.error) };\n }\n return { value: result.value };\n}\n\nexport function deserializeResult<T>(result: ResultOrError<T, SerializedError>): ResultOrError<T> {\n if (result.error) {\n return { error: deserializeError(result.error) };\n }\n return { value: result.value };\n}\n\nexport function wrapCallback<T>(callback: () => T): ResultOrError<T> {\n try {\n const value = callback();\n return { value };\n } catch (error) {\n return { error: ensureError(error) };\n }\n}\n\nexport async function wrapAsyncCallback<T>(callback: () => Promise<T>): Promise<ResultOrError<T>> {\n try {\n const value = await callback();\n return { value };\n } catch (error) {\n return { error: ensureError(error) };\n }\n}\n\nexport function wrapAndSerialize<T>(callback: () => T): ResultOrError<T, SerializedError> {\n const result = wrapCallback(callback);\n return serializeResult(result);\n}\n\nexport async function wrapAndSerializeAsync<T>(\n callback: () => Promise<T>,\n): Promise<ResultOrError<T, SerializedError>> {\n const result = await wrapAsyncCallback(callback);\n return serializeResult(result);\n}\n"],"mappings":";;;;AAGA,IAAa,aAAb,cAAgC,MAAM;CACpC,OAAO;;;;;AAMT,IAAa,UAAb,cAA6B,MAAM;CACjC,OAAO;;AAGT,SAAgB,aAAa,OAAyD;AACpF,QAAO,iBAAiB,SAAS,MAAM,SAAS;;AAGlD,SAAgB,cAAc,OAAyB;AACrD,KAAI,EAAE,iBAAiB,OACrB,QAAO;AAGT,QAAO,MAAM,SAAS,gBAAgB,cAAc,MAAM,MAAM;;AAGlE,SAAgB,iBAAiB,OAAyC;AACxE,QAAO,iBAAiB,SAAS,MAAM,SAAS;;AAGlD,IAAa,cAAb,cAAiC,MAAM;CACrC,OAAO;;AAGT,SAAgB,cAAc,OAAsC;AAClE,QAAO,iBAAiB,SAAS,MAAM,SAAS;;AAGlD,IAAa,oBAAb,cAAuC,YAAY;CACjD,OAAO;;AAGT,SAAgB,oBAAoB,OAA4C;AAC9E,QAAO,iBAAiB,SAAS,MAAM,SAAS;;AAGlD,SAAS,eAAe,OAAwB;AAC9C,KAAI,OAAO,UAAU,SACnB,QAAO,4BAA4B;AAGrC,KAAI,SAAS,OAAO,UAAU,SAC5B,KAAI;AACF,SAAO,4BAA4B,KAAK,UAAU,MAAM;UACjD,WAAW;AAElB,SAAO,8DADc,qBAAqB,QAAQ,UAAU,UAAU,OAAO,UAAU,CACL,KAAK,OAAO,MAAM;;AAIxG,QAAO,OAAO,oBAAoB,OAAO,MAAM,gBAAgB,QAAQ;;AAGzE,SAAgB,YAAY,OAAuB;AACjD,KAAI,iBAAiB,MACnB,QAAO;AAGT,QAAO,IAAI,MAAM,eAAe,MAAM,CAAC;;AAYzC,SAAgB,iBAAiB,KAA6B;CAC5D,MAAM,QAAQ,IAAI,QAAQ,iBAAiB,IAAI,MAAM,GAAG;CAExD,MAAM,QAAQ,IAAI,MAAM,IAAI,SAAS,UAAU,SAAY,EAAE,OAAO,GAAG,OAAU;AACjF,OAAM,OAAO,IAAI,QAAQ;AACzB,OAAM,QAAQ,IAAI;AAElB,QAAO;;AAGT,SAAgB,eAAe,GAA6B;CAC1D,MAAM,QAAQ,YAAY,EAAE;CAC5B,MAAM,QAAQ,MAAM,QAAQ,eAAe,MAAM,MAAM,GAAG;AAE1D,QAAO;EACL,MAAM,MAAM;EACZ,SAAS,MAAM;EACf,OAAO,MAAM;EACb,GAAI,MAAM,UAAU,UAAa,EAAE,OAAO;EAC3C;;AAYH,SAAgB,aAAgB,QAAsD;AACpF,KAAI,OAAO,MACT,OAAM,OAAO,iBAAiB,QAAQ,OAAO,QAAQ,iBAAiB,OAAO,MAAM;AAErF,QAAO,OAAO;;AAGhB,SAAgB,gBAAmB,QAA6D;AAC9F,KAAI,OAAO,MACT,QAAO,EAAE,OAAO,eAAe,OAAO,MAAM,EAAE;AAEhD,QAAO,EAAE,OAAO,OAAO,OAAO;;AAGhC,SAAgB,kBAAqB,QAA6D;AAChG,KAAI,OAAO,MACT,QAAO,EAAE,OAAO,iBAAiB,OAAO,MAAM,EAAE;AAElD,QAAO,EAAE,OAAO,OAAO,OAAO;;AAGhC,SAAgB,aAAgB,UAAqC;AACnE,KAAI;AAEF,SAAO,EAAE,OADK,UAAU,EACR;UACT,OAAO;AACd,SAAO,EAAE,OAAO,YAAY,MAAM,EAAE;;;AAIxC,eAAsB,kBAAqB,UAAuD;AAChG,KAAI;AAEF,SAAO,EAAE,OADK,MAAM,UAAU,EACd;UACT,OAAO;AACd,SAAO,EAAE,OAAO,YAAY,MAAM,EAAE;;;AAIxC,SAAgB,iBAAoB,UAAsD;AAExF,QAAO,gBADQ,aAAa,SAAS,CACP;;AAGhC,eAAsB,sBACpB,UAC4C;AAE5C,QAAO,gBADQ,MAAM,kBAAkB,SAAS,CAClB"}
1
+ {"version":3,"file":"errors.js","names":[],"sources":["../src/errors.ts"],"sourcesContent":["/**\n * Just for convenience, usually it is an Error with name 'AbortError'\n */\nexport class AbortError extends Error {\n name = \"AbortError\";\n}\n\n/**\n * Throw this to show a message without stack trace in UI\n */\nexport class UiError extends Error {\n name = \"UiError\";\n}\n\nexport function isAbortError(error: unknown): error is Error & { name: \"AbortError\" } {\n return error instanceof Error && error.name === \"AbortError\";\n}\n\nexport function hasAbortError(error: unknown): boolean {\n if (!(error instanceof Error)) {\n return false;\n }\n\n return error.name === \"AbortError\" || hasAbortError(error.cause);\n}\n\nexport function isAggregateError(error: unknown): error is AggregateError {\n return error instanceof Error && error.name === \"AggregateError\";\n}\n\nexport class ServiceError extends Error {\n name = \"ServiceError\";\n}\n\nexport function isServiceError(error: unknown): error is ServiceError {\n return (\n error instanceof Error &&\n (error.name === \"ServiceError\" || error.name.startsWith(\"ServiceError.\"))\n );\n}\n\nexport class ServiceInvalidIdError extends ServiceError {\n name = \"ServiceError.InvalidId\";\n}\n\nexport function isServiceInvalidIdError(error: unknown): error is ServiceInvalidIdError {\n return error instanceof Error && error.name === \"ServiceError.InvalidId\";\n}\n\nexport class ServiceAlreadyRegisteredError extends ServiceError {\n name = \"ServiceError.AlreadyRegistered\";\n}\n\nexport function isServiceAlreadyRegisteredError(\n error: unknown,\n): error is ServiceAlreadyRegisteredError {\n return error instanceof Error && error.name === \"ServiceError.AlreadyRegistered\";\n}\n\nexport class ServiceInjectionError extends ServiceError {\n name = \"ServiceError.Injection\";\n}\n\nexport function isServiceInjectionError(error: unknown): error is ServiceInjectionError {\n return error instanceof Error && error.name === \"ServiceError.Injection\";\n}\n\nexport class ServiceNotRegisteredError extends ServiceError {\n name = \"ServiceError.NotRegistered\";\n}\n\nexport function isServiceNotRegisteredError(error: unknown): error is ServiceNotRegisteredError {\n return error instanceof Error && error.name === \"ServiceError.NotRegistered\";\n}\n\nexport class ServiceMethodNotFoundError extends ServiceError {\n name = \"ServiceError.MethodNotFound\";\n}\n\nexport function isServiceMethodNotFoundError(error: unknown): error is ServiceMethodNotFoundError {\n return error instanceof Error && error.name === \"ServiceError.MethodNotFound\";\n}\n\nexport class PFrameError extends Error {\n name = \"PFrameError\";\n}\n\nexport function isPFrameError(error: unknown): error is PFrameError {\n return error instanceof Error && error.name === \"PFrameError\";\n}\n\nexport class PFrameDriverError extends PFrameError {\n name = \"PFrameError.Driver\";\n}\n\nexport function isPFrameDriverError(error: unknown): error is PFrameDriverError {\n return error instanceof Error && error.name === \"PFrameError.Driver\";\n}\n\nexport class PFrameSpecDriverError extends PFrameError {\n name = \"PFrameError.SpecDriver\";\n}\n\nexport function isPFrameSpecDriverError(error: unknown): error is PFrameSpecDriverError {\n return error instanceof Error && error.name === \"PFrameError.SpecDriver\";\n}\n\nfunction stringifyValue(value: unknown): string {\n if (typeof value === \"string\") {\n return `String value was thrown: ${value}`;\n }\n\n if (value && typeof value === \"object\") {\n try {\n return `Plain object was thrown: ${JSON.stringify(value)}`;\n } catch (jsonError) {\n const errorMessage = jsonError instanceof Error ? jsonError.message : String(jsonError);\n return `Non-serializable object was thrown (JSON.stringify failed: ${errorMessage}): ${String(value)}`;\n }\n }\n\n return String(`Non-Error value (${typeof value}) was thrown: ${value}`);\n}\n\nexport function ensureError(value: unknown): Error {\n if (value instanceof Error) {\n return value;\n }\n\n return new Error(stringifyValue(value));\n}\n\n// Error serialization for IPC/network transmission (Error objects can't be JSON serialized)\n\nexport type SerializedError = {\n name: string;\n message: string;\n stack: string | undefined;\n cause?: SerializedError;\n};\n\nexport function deserializeError(obj: SerializedError): Error {\n const cause = obj.cause ? deserializeError(obj.cause) : undefined;\n\n const error = new Error(obj.message, cause !== undefined ? { cause } : undefined);\n error.name = obj.name || \"Error\";\n error.stack = obj.stack;\n\n return error;\n}\n\nexport function serializeError(e: unknown): SerializedError {\n const error = ensureError(e);\n const cause = error.cause ? serializeError(error.cause) : undefined;\n\n return {\n name: error.name,\n message: error.message,\n stack: error.stack,\n ...(error.cause !== undefined && { cause }),\n };\n}\n\nexport type ResultOrError<S, F = Error> =\n | {\n value: S;\n error?: undefined;\n }\n | {\n error: F;\n };\n\nexport function unwrapResult<T>(result: ResultOrError<T, Error | SerializedError>): T {\n if (result.error) {\n throw result.error instanceof Error ? result.error : deserializeError(result.error);\n }\n return result.value;\n}\n\nexport function serializeResult<T>(result: ResultOrError<T>): ResultOrError<T, SerializedError> {\n if (result.error) {\n return { error: serializeError(result.error) };\n }\n return { value: result.value };\n}\n\nexport function deserializeResult<T>(result: ResultOrError<T, SerializedError>): ResultOrError<T> {\n if (result.error) {\n return { error: deserializeError(result.error) };\n }\n return { value: result.value };\n}\n\nexport function wrapCallback<T>(callback: () => T): ResultOrError<T> {\n try {\n const value = callback();\n return { value };\n } catch (error) {\n return { error: ensureError(error) };\n }\n}\n\nexport async function wrapAsyncCallback<T>(callback: () => Promise<T>): Promise<ResultOrError<T>> {\n try {\n const value = await callback();\n return { value };\n } catch (error) {\n return { error: ensureError(error) };\n }\n}\n\nexport function wrapAndSerialize<T>(callback: () => T): ResultOrError<T, SerializedError> {\n const result = wrapCallback(callback);\n return serializeResult(result);\n}\n\nexport async function wrapAndSerializeAsync<T>(\n callback: () => Promise<T>,\n): Promise<ResultOrError<T, SerializedError>> {\n const result = await wrapAsyncCallback(callback);\n return serializeResult(result);\n}\n"],"mappings":";;;;AAGA,IAAa,aAAb,cAAgC,MAAM;CACpC,OAAO;;;;;AAMT,IAAa,UAAb,cAA6B,MAAM;CACjC,OAAO;;AAGT,SAAgB,aAAa,OAAyD;AACpF,QAAO,iBAAiB,SAAS,MAAM,SAAS;;AAGlD,SAAgB,cAAc,OAAyB;AACrD,KAAI,EAAE,iBAAiB,OACrB,QAAO;AAGT,QAAO,MAAM,SAAS,gBAAgB,cAAc,MAAM,MAAM;;AAGlE,SAAgB,iBAAiB,OAAyC;AACxE,QAAO,iBAAiB,SAAS,MAAM,SAAS;;AAGlD,IAAa,eAAb,cAAkC,MAAM;CACtC,OAAO;;AAGT,SAAgB,eAAe,OAAuC;AACpE,QACE,iBAAiB,UAChB,MAAM,SAAS,kBAAkB,MAAM,KAAK,WAAW,gBAAgB;;AAI5E,IAAa,wBAAb,cAA2C,aAAa;CACtD,OAAO;;AAGT,SAAgB,wBAAwB,OAAgD;AACtF,QAAO,iBAAiB,SAAS,MAAM,SAAS;;AAGlD,IAAa,gCAAb,cAAmD,aAAa;CAC9D,OAAO;;AAGT,SAAgB,gCACd,OACwC;AACxC,QAAO,iBAAiB,SAAS,MAAM,SAAS;;AAGlD,IAAa,wBAAb,cAA2C,aAAa;CACtD,OAAO;;AAGT,SAAgB,wBAAwB,OAAgD;AACtF,QAAO,iBAAiB,SAAS,MAAM,SAAS;;AAGlD,IAAa,4BAAb,cAA+C,aAAa;CAC1D,OAAO;;AAGT,SAAgB,4BAA4B,OAAoD;AAC9F,QAAO,iBAAiB,SAAS,MAAM,SAAS;;AAGlD,IAAa,6BAAb,cAAgD,aAAa;CAC3D,OAAO;;AAGT,SAAgB,6BAA6B,OAAqD;AAChG,QAAO,iBAAiB,SAAS,MAAM,SAAS;;AAGlD,IAAa,cAAb,cAAiC,MAAM;CACrC,OAAO;;AAGT,SAAgB,cAAc,OAAsC;AAClE,QAAO,iBAAiB,SAAS,MAAM,SAAS;;AAGlD,IAAa,oBAAb,cAAuC,YAAY;CACjD,OAAO;;AAGT,SAAgB,oBAAoB,OAA4C;AAC9E,QAAO,iBAAiB,SAAS,MAAM,SAAS;;AAGlD,IAAa,wBAAb,cAA2C,YAAY;CACrD,OAAO;;AAGT,SAAgB,wBAAwB,OAAgD;AACtF,QAAO,iBAAiB,SAAS,MAAM,SAAS;;AAGlD,SAAS,eAAe,OAAwB;AAC9C,KAAI,OAAO,UAAU,SACnB,QAAO,4BAA4B;AAGrC,KAAI,SAAS,OAAO,UAAU,SAC5B,KAAI;AACF,SAAO,4BAA4B,KAAK,UAAU,MAAM;UACjD,WAAW;AAElB,SAAO,8DADc,qBAAqB,QAAQ,UAAU,UAAU,OAAO,UAAU,CACL,KAAK,OAAO,MAAM;;AAIxG,QAAO,OAAO,oBAAoB,OAAO,MAAM,gBAAgB,QAAQ;;AAGzE,SAAgB,YAAY,OAAuB;AACjD,KAAI,iBAAiB,MACnB,QAAO;AAGT,QAAO,IAAI,MAAM,eAAe,MAAM,CAAC;;AAYzC,SAAgB,iBAAiB,KAA6B;CAC5D,MAAM,QAAQ,IAAI,QAAQ,iBAAiB,IAAI,MAAM,GAAG;CAExD,MAAM,QAAQ,IAAI,MAAM,IAAI,SAAS,UAAU,SAAY,EAAE,OAAO,GAAG,OAAU;AACjF,OAAM,OAAO,IAAI,QAAQ;AACzB,OAAM,QAAQ,IAAI;AAElB,QAAO;;AAGT,SAAgB,eAAe,GAA6B;CAC1D,MAAM,QAAQ,YAAY,EAAE;CAC5B,MAAM,QAAQ,MAAM,QAAQ,eAAe,MAAM,MAAM,GAAG;AAE1D,QAAO;EACL,MAAM,MAAM;EACZ,SAAS,MAAM;EACf,OAAO,MAAM;EACb,GAAI,MAAM,UAAU,UAAa,EAAE,OAAO;EAC3C;;AAYH,SAAgB,aAAgB,QAAsD;AACpF,KAAI,OAAO,MACT,OAAM,OAAO,iBAAiB,QAAQ,OAAO,QAAQ,iBAAiB,OAAO,MAAM;AAErF,QAAO,OAAO;;AAGhB,SAAgB,gBAAmB,QAA6D;AAC9F,KAAI,OAAO,MACT,QAAO,EAAE,OAAO,eAAe,OAAO,MAAM,EAAE;AAEhD,QAAO,EAAE,OAAO,OAAO,OAAO;;AAGhC,SAAgB,kBAAqB,QAA6D;AAChG,KAAI,OAAO,MACT,QAAO,EAAE,OAAO,iBAAiB,OAAO,MAAM,EAAE;AAElD,QAAO,EAAE,OAAO,OAAO,OAAO;;AAGhC,SAAgB,aAAgB,UAAqC;AACnE,KAAI;AAEF,SAAO,EAAE,OADK,UAAU,EACR;UACT,OAAO;AACd,SAAO,EAAE,OAAO,YAAY,MAAM,EAAE;;;AAIxC,eAAsB,kBAAqB,UAAuD;AAChG,KAAI;AAEF,SAAO,EAAE,OADK,MAAM,UAAU,EACd;UACT,OAAO;AACd,SAAO,EAAE,OAAO,YAAY,MAAM,EAAE;;;AAIxC,SAAgB,iBAAoB,UAAsD;AAExF,QAAO,gBADQ,aAAa,SAAS,CACP;;AAGhC,eAAsB,sBACpB,UAC4C;AAE5C,QAAO,gBADQ,MAAM,kBAAkB,SAAS,CAClB"}
@@ -1 +1 @@
1
- {"version":3,"file":"block_flags.cjs","names":[],"sources":["../../src/flags/block_flags.ts"],"sourcesContent":["import type { ArrayTypeUnion, Assert, Is, IsSubtypeOf } from \"./type_utils\";\n\n/**\n * Block-specific feature flags. Define flags that are interpreted by the desktop app to select\n * appropriate API to expose into Model and UI runtimes.\n *\n * Flags are split into two categories:\n * - supports... - those flags tells the desktop app that the block supports certain APIs, but can without them as well\n * - requires... - those flags tells the desktop app that the block requires certain APIs, and if desktop app doesn't support it, it can't be used in the block\n */\nexport type BlockCodeFeatureFlags = Record<`supports${string}`, boolean | number | undefined> &\n Record<`requires${string}`, boolean | number | undefined>;\n\n/**\n * Known block flags. Flags are set during model compilation, see `BlockModel.create` for more details and for initial values.\n */\nexport type BlockCodeKnownFeatureFlags = {\n readonly supportsLazyState?: boolean;\n readonly supportsPframeQueryRanking?: boolean;\n readonly requiresModelAPIVersion?: number;\n readonly requiresUIAPIVersion?: number;\n readonly requiresCreatePTable?: number;\n};\n\nexport const AllSupportsFeatureFlags = [\"supportsLazyState\", \"supportsPframeQueryRanking\"] as const;\n\nexport const AllRequiresFeatureFlags = [\n \"requiresUIAPIVersion\",\n \"requiresCreatePTable\",\n \"requiresModelAPIVersion\",\n] as const;\n\n//\n// Assertions\n//\n\n// This assertion ensures that BlockConfigV3KnownFeatureFlags is a subtype of BlockConfigV3FeatureFlags.\n// It will produce a compile-time error if there's a mismatch.\ntype _KnownFlagsAreValidFlags = Assert<\n IsSubtypeOf<BlockCodeKnownFeatureFlags, BlockCodeFeatureFlags>\n>;\n\n// This check ensures that all keys in BlockConfigV3FeatureFlags are covered in the arrays above.\n// It will produce a compile-time error if there's a mismatch.\ntype _AllFlagsAreCovered = Assert<\n Is<\n keyof BlockCodeKnownFeatureFlags,\n ArrayTypeUnion<typeof AllRequiresFeatureFlags, typeof AllSupportsFeatureFlags>\n >\n>;\n"],"mappings":";;AAwBA,MAAa,0BAA0B,CAAC,qBAAqB,6BAA6B;AAE1F,MAAa,0BAA0B;CACrC;CACA;CACA;CACD"}
1
+ {"version":3,"file":"block_flags.cjs","names":[],"sources":["../../src/flags/block_flags.ts"],"sourcesContent":["import type { ServiceRequireFlags } from \"../services\";\nimport type { ArrayTypeUnion, Assert, Is, IsSubtypeOf } from \"./type_utils\";\n\n/**\n * Block-specific feature flags. Define flags that are interpreted by the desktop app to select\n * appropriate API to expose into Model and UI runtimes.\n *\n * Flags are split into two categories:\n * - supports... - those flags tells the desktop app that the block supports certain APIs, but can without them as well\n * - requires... - those flags tells the desktop app that the block requires certain APIs, and if desktop app doesn't support it, it can't be used in the block\n */\nexport type BlockCodeFeatureFlags = Record<`supports${string}`, boolean | number | undefined> &\n Record<`requires${string}`, boolean | number | undefined>;\n\n/**\n * Known block flags. Flags are set during model compilation, see `BlockModel.create` for more details and for initial values.\n */\nexport type BlockCodeKnownFeatureFlags = {\n readonly supportsLazyState?: boolean;\n readonly supportsPframeQueryRanking?: boolean;\n readonly requiresModelAPIVersion?: number;\n readonly requiresUIAPIVersion?: number;\n readonly requiresCreatePTable?: number;\n} & ServiceRequireFlags;\n\nexport const AllSupportsFeatureFlags = [\"supportsLazyState\", \"supportsPframeQueryRanking\"] as const;\n\nexport const AllRequiresFeatureFlags = [\n \"requiresUIAPIVersion\",\n \"requiresCreatePTable\",\n \"requiresModelAPIVersion\",\n] as const;\n\n//\n// Assertions\n//\n\n// This assertion ensures that BlockConfigV3KnownFeatureFlags is a subtype of BlockConfigV3FeatureFlags.\n// It will produce a compile-time error if there's a mismatch.\ntype _KnownFlagsAreValidFlags = Assert<\n IsSubtypeOf<BlockCodeKnownFeatureFlags, BlockCodeFeatureFlags>\n>;\n\n// This check ensures that all keys in BlockConfigV3FeatureFlags are covered in the arrays above.\n// It will produce a compile-time error if there's a mismatch.\n// Adding a service to Services automatically satisfies this assertion via ServiceRequireFlags.\ntype _AllFlagsAreCovered = Assert<\n Is<\n keyof BlockCodeKnownFeatureFlags,\n | ArrayTypeUnion<typeof AllRequiresFeatureFlags, typeof AllSupportsFeatureFlags>\n | keyof ServiceRequireFlags\n >\n>;\n"],"mappings":";;AAyBA,MAAa,0BAA0B,CAAC,qBAAqB,6BAA6B;AAE1F,MAAa,0BAA0B;CACrC;CACA;CACA;CACD"}
@@ -1,3 +1,6 @@
1
+ import { ServiceRequireFlags } from "../services/service_types.js";
2
+ import "../services/index.js";
3
+
1
4
  //#region src/flags/block_flags.d.ts
2
5
  /**
3
6
  * Block-specific feature flags. Define flags that are interpreted by the desktop app to select
@@ -17,7 +20,7 @@ type BlockCodeKnownFeatureFlags = {
17
20
  readonly requiresModelAPIVersion?: number;
18
21
  readonly requiresUIAPIVersion?: number;
19
22
  readonly requiresCreatePTable?: number;
20
- };
23
+ } & ServiceRequireFlags;
21
24
  declare const AllSupportsFeatureFlags: readonly ["supportsLazyState", "supportsPframeQueryRanking"];
22
25
  declare const AllRequiresFeatureFlags: readonly ["requiresUIAPIVersion", "requiresCreatePTable", "requiresModelAPIVersion"];
23
26
  //#endregion
@@ -1 +1 @@
1
- {"version":3,"file":"block_flags.js","names":[],"sources":["../../src/flags/block_flags.ts"],"sourcesContent":["import type { ArrayTypeUnion, Assert, Is, IsSubtypeOf } from \"./type_utils\";\n\n/**\n * Block-specific feature flags. Define flags that are interpreted by the desktop app to select\n * appropriate API to expose into Model and UI runtimes.\n *\n * Flags are split into two categories:\n * - supports... - those flags tells the desktop app that the block supports certain APIs, but can without them as well\n * - requires... - those flags tells the desktop app that the block requires certain APIs, and if desktop app doesn't support it, it can't be used in the block\n */\nexport type BlockCodeFeatureFlags = Record<`supports${string}`, boolean | number | undefined> &\n Record<`requires${string}`, boolean | number | undefined>;\n\n/**\n * Known block flags. Flags are set during model compilation, see `BlockModel.create` for more details and for initial values.\n */\nexport type BlockCodeKnownFeatureFlags = {\n readonly supportsLazyState?: boolean;\n readonly supportsPframeQueryRanking?: boolean;\n readonly requiresModelAPIVersion?: number;\n readonly requiresUIAPIVersion?: number;\n readonly requiresCreatePTable?: number;\n};\n\nexport const AllSupportsFeatureFlags = [\"supportsLazyState\", \"supportsPframeQueryRanking\"] as const;\n\nexport const AllRequiresFeatureFlags = [\n \"requiresUIAPIVersion\",\n \"requiresCreatePTable\",\n \"requiresModelAPIVersion\",\n] as const;\n\n//\n// Assertions\n//\n\n// This assertion ensures that BlockConfigV3KnownFeatureFlags is a subtype of BlockConfigV3FeatureFlags.\n// It will produce a compile-time error if there's a mismatch.\ntype _KnownFlagsAreValidFlags = Assert<\n IsSubtypeOf<BlockCodeKnownFeatureFlags, BlockCodeFeatureFlags>\n>;\n\n// This check ensures that all keys in BlockConfigV3FeatureFlags are covered in the arrays above.\n// It will produce a compile-time error if there's a mismatch.\ntype _AllFlagsAreCovered = Assert<\n Is<\n keyof BlockCodeKnownFeatureFlags,\n ArrayTypeUnion<typeof AllRequiresFeatureFlags, typeof AllSupportsFeatureFlags>\n >\n>;\n"],"mappings":";AAwBA,MAAa,0BAA0B,CAAC,qBAAqB,6BAA6B;AAE1F,MAAa,0BAA0B;CACrC;CACA;CACA;CACD"}
1
+ {"version":3,"file":"block_flags.js","names":[],"sources":["../../src/flags/block_flags.ts"],"sourcesContent":["import type { ServiceRequireFlags } from \"../services\";\nimport type { ArrayTypeUnion, Assert, Is, IsSubtypeOf } from \"./type_utils\";\n\n/**\n * Block-specific feature flags. Define flags that are interpreted by the desktop app to select\n * appropriate API to expose into Model and UI runtimes.\n *\n * Flags are split into two categories:\n * - supports... - those flags tells the desktop app that the block supports certain APIs, but can without them as well\n * - requires... - those flags tells the desktop app that the block requires certain APIs, and if desktop app doesn't support it, it can't be used in the block\n */\nexport type BlockCodeFeatureFlags = Record<`supports${string}`, boolean | number | undefined> &\n Record<`requires${string}`, boolean | number | undefined>;\n\n/**\n * Known block flags. Flags are set during model compilation, see `BlockModel.create` for more details and for initial values.\n */\nexport type BlockCodeKnownFeatureFlags = {\n readonly supportsLazyState?: boolean;\n readonly supportsPframeQueryRanking?: boolean;\n readonly requiresModelAPIVersion?: number;\n readonly requiresUIAPIVersion?: number;\n readonly requiresCreatePTable?: number;\n} & ServiceRequireFlags;\n\nexport const AllSupportsFeatureFlags = [\"supportsLazyState\", \"supportsPframeQueryRanking\"] as const;\n\nexport const AllRequiresFeatureFlags = [\n \"requiresUIAPIVersion\",\n \"requiresCreatePTable\",\n \"requiresModelAPIVersion\",\n] as const;\n\n//\n// Assertions\n//\n\n// This assertion ensures that BlockConfigV3KnownFeatureFlags is a subtype of BlockConfigV3FeatureFlags.\n// It will produce a compile-time error if there's a mismatch.\ntype _KnownFlagsAreValidFlags = Assert<\n IsSubtypeOf<BlockCodeKnownFeatureFlags, BlockCodeFeatureFlags>\n>;\n\n// This check ensures that all keys in BlockConfigV3FeatureFlags are covered in the arrays above.\n// It will produce a compile-time error if there's a mismatch.\n// Adding a service to Services automatically satisfies this assertion via ServiceRequireFlags.\ntype _AllFlagsAreCovered = Assert<\n Is<\n keyof BlockCodeKnownFeatureFlags,\n | ArrayTypeUnion<typeof AllRequiresFeatureFlags, typeof AllSupportsFeatureFlags>\n | keyof ServiceRequireFlags\n >\n>;\n"],"mappings":";AAyBA,MAAa,0BAA0B,CAAC,qBAAqB,6BAA6B;AAE1F,MAAa,0BAA0B;CACrC;CACA;CACA;CACD"}
@@ -1,5 +1,5 @@
1
- import { BlockCodeFeatureFlags, BlockCodeKnownFeatureFlags } from "./block_flags.js";
2
1
  import { FilterKeysByPrefix } from "./type_utils.js";
2
+ import { BlockCodeFeatureFlags, BlockCodeKnownFeatureFlags } from "./block_flags.js";
3
3
 
4
4
  //#region src/flags/flag_utils.d.ts
5
5
  declare function checkBlockFlag(flags: BlockCodeFeatureFlags | undefined, flag: keyof BlockCodeKnownFeatureFlags, flagValue?: boolean | number): boolean;
@@ -0,0 +1,3 @@
1
+ import { ArrayTypeUnion, Assert, AssertKeysEqual, FilterKeysByPrefix, Is, IsSubtypeOf } from "./type_utils.js";
2
+ import { IncompatibleFlagsError, RuntimeCapabilities, SupportedRequirement, checkBlockFlag, extractAllRequirements, extractAllSupports } from "./flag_utils.js";
3
+ import { AllRequiresFeatureFlags, AllSupportsFeatureFlags, BlockCodeFeatureFlags, BlockCodeKnownFeatureFlags } from "./block_flags.js";
package/dist/index.cjs CHANGED
@@ -35,6 +35,14 @@ const require_value_or_error = require('./value_or_error.cjs');
35
35
  const require_base64 = require('./base64.cjs');
36
36
  const require_httpAuth = require('./httpAuth.cjs');
37
37
  const require_resource_types = require('./resource_types.cjs');
38
+ const require_service_types = require('./services/service_types.cjs');
39
+ const require_service_registry = require('./services/service_registry.cjs');
40
+ const require_service_declarations = require('./services/service_declarations.cjs');
41
+ const require_service_capabilities = require('./services/service_capabilities.cjs');
42
+ const require_service_injector_factory = require('./services/service_injector_factory.cjs');
43
+ const require_service_injectors = require('./services/service_injectors.cjs');
44
+ require('./services/index.cjs');
45
+ const require_pool_entry = require('./pool_entry.cjs');
38
46
 
39
47
  exports.AbortError = require_errors.AbortError;
40
48
  exports.AllRequiresFeatureFlags = require_block_flags.AllRequiresFeatureFlags;
@@ -49,32 +57,48 @@ exports.Domain = require_spec.Domain;
49
57
  exports.DomainJson = require_spec.DomainJson;
50
58
  exports.IncompatibleFlagsError = require_flag_utils.IncompatibleFlagsError;
51
59
  exports.LinkerMap = require_linker_columns.LinkerMap;
60
+ exports.ModelServiceRegistry = require_service_registry.ModelServiceRegistry;
52
61
  exports.PAxisName = require_spec.PAxisName;
53
62
  exports.PColumnName = require_spec.PColumnName;
54
63
  exports.PFrameDriverError = require_errors.PFrameDriverError;
55
64
  exports.PFrameError = require_errors.PFrameError;
65
+ exports.PFrameSpecDriverError = require_errors.PFrameSpecDriverError;
56
66
  exports.PTableAbsent = require_data_types.PTableAbsent;
57
67
  exports.PTableNA = require_data_types.PTableNA;
58
68
  exports.PlId = require_plid.PlId;
59
69
  exports.PlIdBytes = require_plid.PlIdBytes;
60
70
  exports.PlIdLength = require_plid.PlIdLength;
61
71
  exports.PlRef = require_ref.PlRef;
72
+ exports.PoolEntryGuard = require_pool_entry.PoolEntryGuard;
62
73
  exports.RangeBytes = require_blob.RangeBytes;
63
74
  exports.ResourceTypeName = require_resource_types.ResourceTypeName;
64
75
  exports.ResourceTypePrefix = require_resource_types.ResourceTypePrefix;
65
76
  exports.RuntimeCapabilities = require_flag_utils.RuntimeCapabilities;
77
+ exports.SERVICE_CAPABILITY_FLAGS = require_service_capabilities.SERVICE_CAPABILITY_FLAGS;
78
+ exports.SERVICE_FEATURE_FLAGS = require_service_capabilities.SERVICE_FEATURE_FLAGS;
79
+ exports.SERVICE_METHOD_MAP = require_service_injectors.SERVICE_METHOD_MAP;
80
+ exports.ServiceAlreadyRegisteredError = require_errors.ServiceAlreadyRegisteredError;
81
+ exports.ServiceError = require_errors.ServiceError;
82
+ exports.ServiceInjectionError = require_errors.ServiceInjectionError;
83
+ exports.ServiceInvalidIdError = require_errors.ServiceInvalidIdError;
84
+ exports.ServiceMethodNotFoundError = require_errors.ServiceMethodNotFoundError;
85
+ exports.ServiceNotRegisteredError = require_errors.ServiceNotRegisteredError;
86
+ exports.Services = require_service_declarations.Services;
66
87
  exports.UiError = require_errors.UiError;
88
+ exports.UiServiceRegistry = require_service_registry.UiServiceRegistry;
67
89
  exports.ValueType = require_spec.ValueType;
68
90
  exports.assertNever = require_util.assertNever;
69
91
  exports.base64Decode = require_base64.base64Decode;
70
92
  exports.base64Encode = require_base64.base64Encode;
71
93
  exports.bigintReplacer = require_json.bigintReplacer;
94
+ exports.buildServiceInfo = require_service_injectors.buildServiceInfo;
72
95
  exports.canonicalizeAxisId = require_spec.canonicalizeAxisId;
73
96
  exports.canonicalizeAxisWithParents = require_spec.canonicalizeAxisWithParents;
74
97
  exports.canonicalizeJson = require_json.canonicalizeJson;
75
98
  exports.checkBlockFlag = require_flag_utils.checkBlockFlag;
76
99
  exports.collectSpecQueryColumns = require_utils.collectSpecQueryColumns;
77
100
  exports.createPlRef = require_ref.createPlRef;
101
+ exports.createUiServiceInjectors = require_service_injector_factory.createUiServiceInjectors;
78
102
  exports.dataInfoToEntries = require_data_info.dataInfoToEntries;
79
103
  exports.deriveNativeId = require_native_id.deriveNativeId;
80
104
  exports.deserializeError = require_errors.deserializeError;
@@ -97,6 +121,7 @@ exports.getColumnIdAndSpec = require_spec.getColumnIdAndSpec;
97
121
  exports.getDenormalizedAxesList = require_spec.getDenormalizedAxesList;
98
122
  exports.getFileNameFromHandle = require_ls.getFileNameFromHandle;
99
123
  exports.getFilePathFromHandle = require_ls.getFilePathFromHandle;
124
+ exports.getMethodNames = require_service_capabilities.getMethodNames;
100
125
  exports.getNormalizedAxesList = require_spec.getNormalizedAxesList;
101
126
  exports.getPColumnSpecId = require_spec.getPColumnSpecId;
102
127
  exports.getPTableColumnId = require_table_common.getPTableColumnId;
@@ -115,20 +140,29 @@ exports.isFilteredPColumn = require_filtered_column.isFilteredPColumn;
115
140
  exports.isFolderURL = require_urls.isFolderURL;
116
141
  exports.isImportFileHandleIndex = require_ls.isImportFileHandleIndex;
117
142
  exports.isImportFileHandleUpload = require_ls.isImportFileHandleUpload;
143
+ exports.isKnownServiceName = require_service_capabilities.isKnownServiceName;
118
144
  exports.isLabelColumn = require_spec.isLabelColumn;
119
145
  exports.isLinkerColumn = require_spec.isLinkerColumn;
120
146
  exports.isLiveLog = require_log.isLiveLog;
147
+ exports.isNodeService = require_service_types.isNodeService;
121
148
  exports.isPColumn = require_spec$1.isPColumn;
122
149
  exports.isPColumnResult = require_spec$1.isPColumnResult;
123
150
  exports.isPColumnSpec = require_spec$1.isPColumnSpec;
124
151
  exports.isPColumnSpecResult = require_spec$1.isPColumnSpecResult;
125
152
  exports.isPFrameDriverError = require_errors.isPFrameDriverError;
126
153
  exports.isPFrameError = require_errors.isPFrameError;
154
+ exports.isPFrameSpecDriverError = require_errors.isPFrameSpecDriverError;
127
155
  exports.isPTableAbsent = require_data_types.isPTableAbsent;
128
156
  exports.isPTableNA = require_data_types.isPTableNA;
129
157
  exports.isPTableValueAxis = require_data_types.isPTableValueAxis;
130
158
  exports.isPartitionedDataInfoEntries = require_data_info.isPartitionedDataInfoEntries;
131
159
  exports.isPlRef = require_ref.isPlRef;
160
+ exports.isServiceAlreadyRegisteredError = require_errors.isServiceAlreadyRegisteredError;
161
+ exports.isServiceError = require_errors.isServiceError;
162
+ exports.isServiceInjectionError = require_errors.isServiceInjectionError;
163
+ exports.isServiceInvalidIdError = require_errors.isServiceInvalidIdError;
164
+ exports.isServiceMethodNotFoundError = require_errors.isServiceMethodNotFoundError;
165
+ exports.isServiceNotRegisteredError = require_errors.isServiceNotRegisteredError;
132
166
  exports.legacyColumnSelectorsToPredicate = require_selectors.legacyColumnSelectorsToPredicate;
133
167
  exports.mapDataInfo = require_data_info.mapDataInfo;
134
168
  exports.mapDataInfoEntries = require_data_info.mapDataInfoEntries;
@@ -158,10 +192,16 @@ exports.readDomainJsonOrThrow = require_spec.readDomainJsonOrThrow;
158
192
  exports.readMetadata = require_spec.readMetadata;
159
193
  exports.readMetadataJson = require_spec.readMetadataJson;
160
194
  exports.readMetadataJsonOrThrow = require_spec.readMetadataJsonOrThrow;
195
+ exports.registerServiceCapabilities = require_service_capabilities.registerServiceCapabilities;
161
196
  exports.resolveAnchors = require_anchored.resolveAnchors;
197
+ exports.resolveAnnotationParents = require_spec.resolveAnnotationParents;
198
+ exports.resolveRequiredServices = require_service_capabilities.resolveRequiredServices;
199
+ exports.resolveUiInjector = require_service_injectors.resolveUiInjector;
162
200
  exports.serializeError = require_errors.serializeError;
163
201
  exports.serializeHttpAuth = require_httpAuth.serializeHttpAuth;
164
202
  exports.serializeResult = require_errors.serializeResult;
203
+ exports.service = require_service_types.service;
204
+ exports.serviceFnKey = require_service_types.serviceFnKey;
165
205
  exports.sortJoinEntry = require_table_calculate.sortJoinEntry;
166
206
  exports.sortPTableDef = require_table_calculate.sortPTableDef;
167
207
  exports.sortSpecQuery = require_utils.sortSpecQuery;
package/dist/index.d.ts CHANGED
@@ -3,27 +3,15 @@ import { AnyFunction, BlockOutputsBase, ListOptionBase, OutputWithStatus } from
3
3
  import { BlockSection, BlockSectionDelimiter, BlockSectionLink, BlockSectionLinkAppearance, DefaultNavigationState, NavigationState } from "./navigation.js";
4
4
  import { CanonicalizedJson, JsonCompatible, JsonSerializable, StringifiedJson, bigintReplacer, canonicalizeJson, parseJson, stringifyJson } from "./json.js";
5
5
  import { BlockState, BlockStateV3 } from "./block_state.js";
6
- import { AllRequiresFeatureFlags, AllSupportsFeatureFlags, BlockCodeFeatureFlags, BlockCodeKnownFeatureFlags } from "./flags/block_flags.js";
7
- import { ArrayTypeUnion, Assert, AssertKeysEqual, FilterKeysByPrefix, Is, IsSubtypeOf } from "./flags/type_utils.js";
8
- import { IncompatibleFlagsError, RuntimeCapabilities, SupportedRequirement, checkBlockFlag, extractAllRequirements, extractAllSupports } from "./flags/flag_utils.js";
9
- import { BlockCodeWithInfo, Code } from "./bmodel/code.js";
10
- import { BlockRenderingMode } from "./bmodel/types.js";
11
- import { BlockConfigGeneric, BlockConfigV3Generic, BlockConfigV4Generic, extractCodeWithInfo } from "./bmodel/block_config.js";
12
- import { BlockConfigContainer } from "./bmodel/container.js";
13
- import { extractConfigGeneric } from "./bmodel/normalization.js";
14
- import "./bmodel/index.js";
15
6
  import { Branded } from "./branding.js";
7
+ import { Option, PlRef, Ref, createPlRef, isPlRef, plRefsEqual, withEnrichments } from "./ref.js";
8
+ import { ResultCollection, ResultPoolEntry } from "./pool/entry.js";
16
9
  import { BlobLike, FileLike } from "./drivers/interfaces.js";
17
10
  import { ArchiveFormat, BlobToURLDriver, BlockUIURL, FolderURL, FrontendDriver, isBlockUIURL, isFolderURL } from "./drivers/urls.js";
18
11
  import { BlobDriver, BlobHandleAndSize, ContentHandler, GetContentOptions, LocalBlobHandle, LocalBlobHandleAndSize, RangeBytes, RemoteBlobHandle, RemoteBlobHandleAndSize, newRangeBytesOpt, validateRangeBytes } from "./drivers/blob.js";
19
12
  import { ImportProgress, ImportStatus } from "./drivers/upload.js";
20
13
  import { AnyLogHandle, LiveLogHandle, LogsDriver, ProgressLogWithInfo, ReadyLogHandle, StreamingApiResponse, StreamingApiResponseHandleOutdated, StreamingApiResponseOk, isLiveLog } from "./drivers/log.js";
21
- import { Option, PlRef, Ref, createPlRef, isPlRef, plRefsEqual, withEnrichments } from "./ref.js";
22
- import { ResultCollection, ResultPoolEntry } from "./pool/entry.js";
23
- import { PObject, PObjectId, PObjectSpec, ensurePColumn, extractAllColumns, isPColumn, isPColumnResult, isPColumnSpec, isPColumnSpecResult, mapPObjectData } from "./pool/spec.js";
24
- import { PSpecPredicate, executePSpecPredicate } from "./pool/query.js";
25
- import "./pool/index.js";
26
- import { Annotation, AnnotationJson, AxesId, AxesSpec, AxisId, AxisSpec, AxisSpecNormalized, AxisTree, AxisValueType, ColumnValueType, Domain, DomainJson, Metadata, MetadataJson, PAxisName, PColumn, PColumnIdAndSpec, PColumnInfo, PColumnLazy, PColumnName, PColumnSpec, PColumnSpecId, PDataColumnSpec, PUniversalColumnSpec, ValueType, canonicalizeAxisId, canonicalizeAxisWithParents, getArrayFromAxisTree, getAxesId, getAxesTree, getAxisId, getColumnIdAndSpec, getDenormalizedAxesList, getNormalizedAxesList, getPColumnSpecId, getSetFromAxisTree, getTypeFromPColumnOrAxisSpec, isAxisId, isLabelColumn, isLinkerColumn, matchAxisId, readAnnotation, readAnnotationJson, readAnnotationJsonOrThrow, readDomain, readDomainJson, readDomainJsonOrThrow, readMetadata, readMetadataJson, readMetadataJsonOrThrow } from "./drivers/pframe/spec/spec.js";
14
+ import { Annotation, AnnotationJson, AxesId, AxesSpec, AxisId, AxisSpec, AxisSpecNormalized, AxisTree, AxisValueType, ColumnValueType, Domain, DomainJson, Metadata, MetadataJson, PAxisName, PColumn, PColumnIdAndSpec, PColumnInfo, PColumnLazy, PColumnName, PColumnSpec, PColumnSpecId, PDataColumnSpec, PUniversalColumnSpec, ValueType, canonicalizeAxisId, canonicalizeAxisWithParents, getArrayFromAxisTree, getAxesId, getAxesTree, getAxisId, getColumnIdAndSpec, getDenormalizedAxesList, getNormalizedAxesList, getPColumnSpecId, getSetFromAxisTree, getTypeFromPColumnOrAxisSpec, isAxisId, isLabelColumn, isLinkerColumn, matchAxisId, readAnnotation, readAnnotationJson, readAnnotationJsonOrThrow, readDomain, readDomainJson, readDomainJsonOrThrow, readMetadata, readMetadataJson, readMetadataJsonOrThrow, resolveAnnotationParents } from "./drivers/pframe/spec/spec.js";
27
15
  import { ColumnFilter } from "./drivers/pframe/column_filter.js";
28
16
  import { BinaryChunk, BinaryPartitionedDataInfo, BinaryPartitionedDataInfoEntries, DataInfo, DataInfoEntries, JsonDataInfo, JsonDataInfoEntries, JsonPartitionedDataInfo, JsonPartitionedDataInfoEntries, PColumnDataEntry, PColumnKey, PColumnValue, PColumnValues, PColumnValuesEntry, ParquetChunk, ParquetChunkMapping, ParquetChunkMappingAxis, ParquetChunkMappingColumn, ParquetChunkMetadata, ParquetChunkStats, ParquetPartitionedDataInfo, ParquetPartitionedDataInfoEntries, PartitionedDataInfoEntries, dataInfoToEntries, entriesToDataInfo, isDataInfo, isDataInfoEntries, isPartitionedDataInfoEntries, mapDataInfo, mapDataInfoEntries, visitDataInfo } from "./drivers/pframe/data_info.js";
29
17
  import { AAxisSelector, ADomain, AnchorAxisIdOrRefBasic, AnchorAxisRef, AnchorAxisRefByIdx, AnchorAxisRefByMatcher, AnchorAxisRefByName, AnchorDomainRef, AnchoredColumnMatchStrategy, AnchoredPColumnId, AnchoredPColumnSelector, LegacyAxisSelector, PColumnSelector, SingleAxisSelector, isAnchoredPColumnId, legacyColumnSelectorsToPredicate, matchAxis, matchPColumn } from "./drivers/pframe/spec/selectors.js";
@@ -33,23 +21,44 @@ import { FilterSpec, FilterSpecLeaf, FilterSpecNode, FilterSpecOfType, FilterSpe
33
21
  import { PTableAbsent, PTableNA, PTableShape, PTableValue, PTableValueAxis, PTableValueBranded, PTableValueData, PTableValueDataBranded, PTableValueDouble, PTableValueFloat, PTableValueInt, PTableValueLong, PTableValueString, PTableVector, PTableVectorTyped, PVectorData, PVectorDataBytes, PVectorDataDouble, PVectorDataFloat, PVectorDataInt, PVectorDataLong, PVectorDataString, PVectorDataTyped, TableRange, ValueTypeSupported, isPTableAbsent, isPTableNA, isPTableValueAxis, pTableValue, pTableValueBranded } from "./drivers/pframe/data_types.js";
34
22
  import { FindColumnsRequest, FindColumnsResponse } from "./drivers/pframe/find_columns.js";
35
23
  import { PTableColumnId, PTableColumnIdAxis, PTableColumnIdColumn, PTableColumnSpec, PTableColumnSpecAxis, PTableColumnSpecColumn, getPTableColumnId } from "./drivers/pframe/table_common.js";
24
+ import { PTable } from "./drivers/pframe/table.js";
36
25
  import { AnchoredIdDeriver, ResolveAnchorsOptions, resolveAnchors } from "./drivers/pframe/spec/anchored.js";
37
26
  import { NativePObjectId, deriveNativeId } from "./drivers/pframe/spec/native_id.js";
38
27
  import { SpecExprAxisRef, SpecExprColumnRef, SpecQuery, SpecQueryBooleanExpression, SpecQueryColumn, SpecQueryExpression, SpecQueryFilter, SpecQueryInlineColumn, SpecQueryJoinEntry, SpecQueryOuterJoin, SpecQuerySliceAxes, SpecQuerySort, SpecQuerySparseToDenseColumn, SpecQuerySymmetricJoin } from "./drivers/pframe/query/query_spec.js";
39
28
  import { ArtificialColumnJoinEntry, CalculateTableDataRequest, CalculateTableDataResponse, ColumnJoinEntry, ConstantAxisFilter, FullJoin, FullPTableColumnData, InlineColumnJoinEntry, InnerJoin, JoinEntry, OuterJoin, PTableDef, PTableDefV2, PTableRecordFilter, PTableRecordSingleValueFilterV2, PTableSorting, SingleValueAndPredicateV2, SingleValueEqualPredicate, SingleValueGreaterOrEqualPredicate, SingleValueGreaterPredicate, SingleValueIEqualPredicate, SingleValueInSetPredicate, SingleValueIsNAPredicate, SingleValueLessOrEqualPredicate, SingleValueLessPredicate, SingleValueMatchesPredicate, SingleValueNotPredicateV2, SingleValueOrPredicateV2, SingleValuePredicateV2, SingleValueStringContainsFuzzyPredicate, SingleValueStringContainsPredicate, SingleValueStringIContainsFuzzyPredicate, SingleValueStringIContainsPredicate, SlicedColumnJoinEntry, mapJoinEntry, mapPTableDef, mapPTableDefV2, sortJoinEntry, sortPTableDef } from "./drivers/pframe/table_calculate.js";
40
29
  import { UniqueValuesRequest, UniqueValuesResponse } from "./drivers/pframe/unique_values.js";
41
- import { PFrame, PFrameDef } from "./drivers/pframe/pframe.js";
42
- import { PTable } from "./drivers/pframe/table.js";
43
30
  import { DataExprAxisRef, DataExprColumnRef, DataQuery, DataQueryBooleanExpression, DataQueryColumn, DataQueryExpression, DataQueryFilter, DataQueryInlineColumn, DataQueryJoinEntry, DataQueryOuterJoin, DataQuerySliceAxes, DataQuerySort, DataQuerySparseToDenseColumn, DataQuerySymmetricJoin } from "./drivers/pframe/query/query_data.js";
44
31
  import { collectSpecQueryColumns, isBooleanExpression, mapSpecQueryColumns, sortSpecQuery, traverseQuerySpec } from "./drivers/pframe/query/utils.js";
45
- import { PFrameDriver, PFrameHandle, PTableHandle } from "./drivers/pframe/driver.js";
46
32
  import { CompositeLinkerMap, LinkerMap } from "./drivers/pframe/linker_columns.js";
33
+ import { PoolEntry, PoolEntryGuard } from "./pool_entry.js";
34
+ import { AxisQualification, ColumnAxesWithQualifications, DeleteColumnRequest, DeleteColumnResponse, DiscoverColumnsConstraints, DiscoverColumnsLinkerStep, DiscoverColumnsMappingVariant, DiscoverColumnsRequest, DiscoverColumnsResponse, DiscoverColumnsResponseHit, DiscoverColumnsResponseQualifications, DiscoverColumnsStepInfo, EvaluateQueryResponse, MatcherMap, MultiAxisSelector, MultiColumnSelector, PFrameSpecDriver, SpecFrameHandle, StringMatcher } from "./drivers/pframe/spec_driver.js";
47
35
  import { FileRange, ImportFileHandle, ImportFileHandleIndex, ImportFileHandleUpload, ListFilesResult, LocalImportFileHandle, LsDriver, LsEntry, OpenDialogFilter, OpenDialogOps, OpenMultipleFilesResponse, OpenSingleFileResponse, StorageEntry, StorageHandle, StorageHandleLocal, StorageHandleRemote, getFileNameFromHandle, getFilePathFromHandle, isImportFileHandleIndex, isImportFileHandleUpload } from "./drivers/ls.js";
48
- import { AxisQualification, ColumnAxesWithQualifications, DiscoverColumnsConstraints, DiscoverColumnsLinkerStep, DiscoverColumnsMappingVariant, DiscoverColumnsRequest, DiscoverColumnsResponse, DiscoverColumnsResponseHit, DiscoverColumnsResponseQualifications, DiscoverColumnsStepInfo, MatcherMap, MultiAxisSelector, MultiColumnSelector, PSpecDriver, SpecFrameHandle, StringMatcher } from "./drivers/pspec.js";
49
36
  import { ChunkedStreamReader, ChunkedStreamReaderOptions, ErrorHandlerStatus } from "./drivers/ChunkedStreamReader.js";
50
37
  import "./drivers/index.js";
38
+ import { PObject, PObjectId, PObjectSpec, ensurePColumn, extractAllColumns, isPColumn, isPColumnResult, isPColumnSpec, isPColumnSpecResult, mapPObjectData } from "./pool/spec.js";
39
+ import { PSpecPredicate, executePSpecPredicate } from "./pool/query.js";
40
+ import "./pool/index.js";
41
+ import { PFrame, PFrameDef } from "./drivers/pframe/pframe.js";
42
+ import { PFrameDriver, PFrameHandle, PFrameModelDriver, PTableHandle } from "./drivers/pframe/driver.js";
43
+ import { Services } from "./services/service_declarations.js";
44
+ import { InferServiceKind, InferServiceModel, InferServiceUi, ModelServiceFactoryMap, ModelServices, RequireServices, ServiceBrand, ServiceDispatch, ServiceName, ServiceNameLiterals, ServiceRequireFlags, ServiceType, ServiceTypesLike, UiServiceFactoryMap, UiServices, isNodeService, service, serviceFnKey } from "./services/service_types.js";
45
+ import { ModelServiceRegistry, UiServiceRegistry } from "./services/service_registry.js";
46
+ import { ArrayTypeUnion, Assert, AssertKeysEqual, FilterKeysByPrefix, Is, IsSubtypeOf } from "./flags/type_utils.js";
47
+ import { IncompatibleFlagsError, RuntimeCapabilities, SupportedRequirement, checkBlockFlag, extractAllRequirements, extractAllSupports } from "./flags/flag_utils.js";
48
+ import { KnownServiceName, SERVICE_CAPABILITY_FLAGS, SERVICE_FEATURE_FLAGS, getMethodNames, isKnownServiceName, registerServiceCapabilities, resolveRequiredServices } from "./services/service_capabilities.js";
51
49
  import { DriverKit } from "./driver_kit.js";
52
- import { AbortError, PFrameDriverError, PFrameError, ResultOrError, SerializedError, UiError, deserializeError, deserializeResult, ensureError, hasAbortError, isAbortError, isAggregateError, isPFrameDriverError, isPFrameError, serializeError, serializeResult, unwrapResult, wrapAndSerialize, wrapAndSerializeAsync, wrapAsyncCallback, wrapCallback } from "./errors.js";
50
+ import { createUiServiceInjectors } from "./services/service_injector_factory.js";
51
+ import { SERVICE_METHOD_MAP, UiServiceInjectorMap, buildServiceInfo, resolveUiInjector } from "./services/service_injectors.js";
52
+ import "./services/index.js";
53
+ import { AllRequiresFeatureFlags, AllSupportsFeatureFlags, BlockCodeFeatureFlags, BlockCodeKnownFeatureFlags } from "./flags/block_flags.js";
54
+ import "./flags/index.js";
55
+ import { BlockCodeWithInfo, Code } from "./bmodel/code.js";
56
+ import { BlockRenderingMode } from "./bmodel/types.js";
57
+ import { BlockConfigGeneric, BlockConfigV3Generic, BlockConfigV4Generic, extractCodeWithInfo } from "./bmodel/block_config.js";
58
+ import { BlockConfigContainer } from "./bmodel/container.js";
59
+ import { extractConfigGeneric } from "./bmodel/normalization.js";
60
+ import "./bmodel/index.js";
61
+ import { AbortError, PFrameDriverError, PFrameError, PFrameSpecDriverError, ResultOrError, SerializedError, ServiceAlreadyRegisteredError, ServiceError, ServiceInjectionError, ServiceInvalidIdError, ServiceMethodNotFoundError, ServiceNotRegisteredError, UiError, deserializeError, deserializeResult, ensureError, hasAbortError, isAbortError, isAggregateError, isPFrameDriverError, isPFrameError, isPFrameSpecDriverError, isServiceAlreadyRegisteredError, isServiceError, isServiceInjectionError, isServiceInvalidIdError, isServiceMethodNotFoundError, isServiceNotRegisteredError, serializeError, serializeResult, unwrapResult, wrapAndSerialize, wrapAndSerializeAsync, wrapAsyncCallback, wrapCallback } from "./errors.js";
53
62
  import { PlId, PlIdBytes, PlIdLength, digestPlId, plId, uniquePlId } from "./plid.js";
54
63
  import { ValueWithUTag, ValueWithUTagAndAuthor } from "./utag.js";
55
64
  import { ValueOrError, mapValueInVOE } from "./value_or_error.js";
@@ -57,4 +66,4 @@ import { Base64Compatible, Base64Encoded, base64Decode, base64Encode } from "./b
57
66
  import { assertNever, uniqueBy } from "./util.js";
58
67
  import { BasicHttpAuth, HttpAuth, parseHttpAuth, serializeHttpAuth } from "./httpAuth.js";
59
68
  import { ResourceTypeName, ResourceTypePrefix } from "./resource_types.js";
60
- export { AAxisSelector, ADomain, AbortError, AllRequiresFeatureFlags, AllSupportsFeatureFlags, AnchorAxisIdOrRefBasic, AnchorAxisRef, AnchorAxisRefByIdx, AnchorAxisRefByMatcher, AnchorAxisRefByName, AnchorDomainRef, AnchoredColumnMatchStrategy, AnchoredIdDeriver, AnchoredPColumnId, AnchoredPColumnSelector, Annotation, AnnotationJson, AnyFunction, AnyLogHandle, ArchiveFormat, ArrayTypeUnion, ArtificialColumnJoinEntry, Assert, AssertKeysEqual, AuthorMarker, AxesId, AxesSpec, AxisFilter, AxisFilterByIdx, AxisFilterByName, AxisFilterValue, AxisId, AxisQualification, AxisSpec, AxisSpecNormalized, AxisTree, AxisValueType, Base64Compatible, Base64Encoded, BasicHttpAuth, BinaryChunk, BinaryPartitionedDataInfo, BinaryPartitionedDataInfoEntries, BlobDriver, BlobHandleAndSize, BlobLike, BlobToURLDriver, BlockCodeFeatureFlags, BlockCodeKnownFeatureFlags, BlockCodeWithInfo, BlockConfigContainer, BlockConfigGeneric, BlockConfigV3Generic, BlockConfigV4Generic, BlockOutputsBase, BlockRenderingMode, BlockSection, BlockSectionDelimiter, BlockSectionLink, BlockSectionLinkAppearance, BlockState, BlockStateV3, BlockUIURL, Branded, CalculateTableDataRequest, CalculateTableDataResponse, CanonicalizedJson, ChunkedStreamReader, ChunkedStreamReaderOptions, Code, ColumnAxesWithQualifications, ColumnFilter, ColumnJoinEntry, ColumnValueType, CompositeLinkerMap, ConstantAxisFilter, ContentHandler, DataExprAxisRef, DataExprColumnRef, DataInfo, DataInfoEntries, DataQuery, DataQueryBooleanExpression, DataQueryColumn, DataQueryExpression, DataQueryFilter, DataQueryInlineColumn, DataQueryJoinEntry, DataQueryOuterJoin, DataQuerySliceAxes, DataQuerySort, DataQuerySparseToDenseColumn, DataQuerySymmetricJoin, DefaultNavigationState, DiscoverColumnsConstraints, DiscoverColumnsLinkerStep, DiscoverColumnsMappingVariant, DiscoverColumnsRequest, DiscoverColumnsResponse, DiscoverColumnsResponseHit, DiscoverColumnsResponseQualifications, DiscoverColumnsStepInfo, Domain, DomainJson, DriverKit, ErrorHandlerStatus, FileLike, FileRange, FilterKeysByPrefix, FilterSpec, FilterSpecLeaf, FilterSpecNode, FilterSpecOfType, FilterSpecType, FilteredPColumn, FilteredPColumnId, FindColumnsRequest, FindColumnsResponse, FolderURL, FrontendDriver, FullJoin, FullPTableColumnData, GetContentOptions, HttpAuth, ImportFileHandle, ImportFileHandleIndex, ImportFileHandleUpload, ImportProgress, ImportStatus, IncompatibleFlagsError, InferFilterSpecCommonLeaf, InferFilterSpecCommonNode, InferFilterSpecLeaf, InferFilterSpecLeafColumn, InlineColumnJoinEntry, InnerJoin, Is, IsSubtypeOf, JoinEntry, JsonCompatible, JsonDataInfo, JsonDataInfoEntries, JsonPartitionedDataInfo, JsonPartitionedDataInfoEntries, JsonSerializable, LegacyAxisSelector, LinkerMap, ListFilesResult, ListOptionBase, LiveLogHandle, LocalBlobHandle, LocalBlobHandleAndSize, LocalImportFileHandle, LogsDriver, LsDriver, LsEntry, MatcherMap, Metadata, MetadataJson, MultiAxisSelector, MultiColumnSelector, NativePObjectId, NavigationState, OpenDialogFilter, OpenDialogOps, OpenMultipleFilesResponse, OpenSingleFileResponse, Option, OuterJoin, OutputWithStatus, PAxisName, PColumn, PColumnDataEntry, PColumnIdAndSpec, PColumnInfo, PColumnKey, PColumnLazy, PColumnName, PColumnSelector, PColumnSpec, PColumnSpecId, PColumnValue, PColumnValues, PColumnValuesEntry, PDataColumnSpec, PFrame, PFrameDef, PFrameDriver, PFrameDriverError, PFrameError, PFrameHandle, PObject, PObjectId, PObjectSpec, PSpecDriver, PSpecPredicate, PTable, PTableAbsent, PTableColumnId, PTableColumnIdAxis, PTableColumnIdColumn, PTableColumnSpec, PTableColumnSpecAxis, PTableColumnSpecColumn, PTableDef, PTableDefV2, PTableHandle, PTableNA, PTableRecordFilter, PTableRecordSingleValueFilterV2, PTableShape, PTableSorting, PTableValue, PTableValueAxis, PTableValueBranded, PTableValueData, PTableValueDataBranded, PTableValueDouble, PTableValueFloat, PTableValueInt, PTableValueLong, PTableValueString, PTableVector, PTableVectorTyped, PUniversalColumnSpec, PVectorData, PVectorDataBytes, PVectorDataDouble, PVectorDataFloat, PVectorDataInt, PVectorDataLong, PVectorDataString, PVectorDataTyped, ParquetChunk, ParquetChunkMapping, ParquetChunkMappingAxis, ParquetChunkMappingColumn, ParquetChunkMetadata, ParquetChunkStats, ParquetPartitionedDataInfo, ParquetPartitionedDataInfoEntries, PartitionedDataInfoEntries, PlId, PlIdBytes, PlIdLength, PlRef, ProgressLogWithInfo, RangeBytes, ReadyLogHandle, Ref, RemoteBlobHandle, RemoteBlobHandleAndSize, ResolveAnchorsOptions, ResourceTypeName, ResourceTypePrefix, ResultCollection, ResultOrError, ResultPoolEntry, RootFilterSpec, RuntimeCapabilities, SUniversalPColumnId, SerializedError, SingleAxisSelector, SingleValueAndPredicateV2, SingleValueEqualPredicate, SingleValueGreaterOrEqualPredicate, SingleValueGreaterPredicate, SingleValueIEqualPredicate, SingleValueInSetPredicate, SingleValueIsNAPredicate, SingleValueLessOrEqualPredicate, SingleValueLessPredicate, SingleValueMatchesPredicate, SingleValueNotPredicateV2, SingleValueOrPredicateV2, SingleValuePredicateV2, SingleValueStringContainsFuzzyPredicate, SingleValueStringContainsPredicate, SingleValueStringIContainsFuzzyPredicate, SingleValueStringIContainsPredicate, SlicedColumnJoinEntry, SpecExprAxisRef, SpecExprColumnRef, SpecFrameHandle, SpecQuery, SpecQueryBooleanExpression, SpecQueryColumn, SpecQueryExpression, SpecQueryFilter, SpecQueryInlineColumn, SpecQueryJoinEntry, SpecQueryOuterJoin, SpecQuerySliceAxes, SpecQuerySort, SpecQuerySparseToDenseColumn, SpecQuerySymmetricJoin, StorageEntry, StorageHandle, StorageHandleLocal, StorageHandleRemote, StreamingApiResponse, StreamingApiResponseHandleOutdated, StreamingApiResponseOk, StringMatcher, StringifiedJson, SupportedRequirement, TableRange, UiError, UniqueValuesRequest, UniqueValuesResponse, UniversalPColumnId, ValueOrError, ValueType, ValueTypeSupported, ValueWithUTag, ValueWithUTagAndAuthor, assertNever, base64Decode, base64Encode, bigintReplacer, canonicalizeAxisId, canonicalizeAxisWithParents, canonicalizeJson, checkBlockFlag, collectSpecQueryColumns, createPlRef, dataInfoToEntries, deriveNativeId, deserializeError, deserializeResult, digestPlId, ensureError, ensurePColumn, entriesToDataInfo, executePSpecPredicate, extractAllColumns, extractAllRequirements, extractAllSupports, extractCodeWithInfo, extractConfigGeneric, getArrayFromAxisTree, getAxesId, getAxesTree, getAxisId, getColumnIdAndSpec, getDenormalizedAxesList, getFileNameFromHandle, getFilePathFromHandle, getNormalizedAxesList, getPColumnSpecId, getPTableColumnId, getSetFromAxisTree, getTypeFromPColumnOrAxisSpec, hasAbortError, isAbortError, isAggregateError, isAnchoredPColumnId, isAxisId, isBlockUIURL, isBooleanExpression, isDataInfo, isDataInfoEntries, isFilteredPColumn, isFolderURL, isImportFileHandleIndex, isImportFileHandleUpload, isLabelColumn, isLinkerColumn, isLiveLog, isPColumn, isPColumnResult, isPColumnSpec, isPColumnSpecResult, isPFrameDriverError, isPFrameError, isPTableAbsent, isPTableNA, isPTableValueAxis, isPartitionedDataInfoEntries, isPlRef, legacyColumnSelectorsToPredicate, mapDataInfo, mapDataInfoEntries, mapJoinEntry, mapPObjectData, mapPTableDef, mapPTableDefV2, mapSpecQueryColumns, mapValueInVOE, matchAxis, matchAxisId, matchPColumn, newRangeBytesOpt, pTableValue, pTableValueBranded, parseColumnId, parseHttpAuth, parseJson, plId, plRefsEqual, readAnnotation, readAnnotationJson, readAnnotationJsonOrThrow, readDomain, readDomainJson, readDomainJsonOrThrow, readMetadata, readMetadataJson, readMetadataJsonOrThrow, resolveAnchors, serializeError, serializeHttpAuth, serializeResult, sortJoinEntry, sortPTableDef, sortSpecQuery, stringifyColumnId, stringifyJson, traverseQuerySpec, uniqueBy, uniquePlId, unwrapResult, validateRangeBytes, visitDataInfo, withEnrichments, wrapAndSerialize, wrapAndSerializeAsync, wrapAsyncCallback, wrapCallback };
69
+ export { AAxisSelector, ADomain, AbortError, AllRequiresFeatureFlags, AllSupportsFeatureFlags, AnchorAxisIdOrRefBasic, AnchorAxisRef, AnchorAxisRefByIdx, AnchorAxisRefByMatcher, AnchorAxisRefByName, AnchorDomainRef, AnchoredColumnMatchStrategy, AnchoredIdDeriver, AnchoredPColumnId, AnchoredPColumnSelector, Annotation, AnnotationJson, AnyFunction, AnyLogHandle, ArchiveFormat, ArrayTypeUnion, ArtificialColumnJoinEntry, Assert, AssertKeysEqual, AuthorMarker, AxesId, AxesSpec, AxisFilter, AxisFilterByIdx, AxisFilterByName, AxisFilterValue, AxisId, AxisQualification, AxisSpec, AxisSpecNormalized, AxisTree, AxisValueType, Base64Compatible, Base64Encoded, BasicHttpAuth, BinaryChunk, BinaryPartitionedDataInfo, BinaryPartitionedDataInfoEntries, BlobDriver, BlobHandleAndSize, BlobLike, BlobToURLDriver, BlockCodeFeatureFlags, BlockCodeKnownFeatureFlags, BlockCodeWithInfo, BlockConfigContainer, BlockConfigGeneric, BlockConfigV3Generic, BlockConfigV4Generic, BlockOutputsBase, BlockRenderingMode, BlockSection, BlockSectionDelimiter, BlockSectionLink, BlockSectionLinkAppearance, BlockState, BlockStateV3, BlockUIURL, Branded, CalculateTableDataRequest, CalculateTableDataResponse, CanonicalizedJson, ChunkedStreamReader, ChunkedStreamReaderOptions, Code, ColumnAxesWithQualifications, ColumnFilter, ColumnJoinEntry, ColumnValueType, CompositeLinkerMap, ConstantAxisFilter, ContentHandler, DataExprAxisRef, DataExprColumnRef, DataInfo, DataInfoEntries, DataQuery, DataQueryBooleanExpression, DataQueryColumn, DataQueryExpression, DataQueryFilter, DataQueryInlineColumn, DataQueryJoinEntry, DataQueryOuterJoin, DataQuerySliceAxes, DataQuerySort, DataQuerySparseToDenseColumn, DataQuerySymmetricJoin, DefaultNavigationState, DeleteColumnRequest, DeleteColumnResponse, DiscoverColumnsConstraints, DiscoverColumnsLinkerStep, DiscoverColumnsMappingVariant, DiscoverColumnsRequest, DiscoverColumnsResponse, DiscoverColumnsResponseHit, DiscoverColumnsResponseQualifications, DiscoverColumnsStepInfo, Domain, DomainJson, DriverKit, ErrorHandlerStatus, EvaluateQueryResponse, FileLike, FileRange, FilterKeysByPrefix, FilterSpec, FilterSpecLeaf, FilterSpecNode, FilterSpecOfType, FilterSpecType, FilteredPColumn, FilteredPColumnId, FindColumnsRequest, FindColumnsResponse, FolderURL, FrontendDriver, FullJoin, FullPTableColumnData, GetContentOptions, HttpAuth, ImportFileHandle, ImportFileHandleIndex, ImportFileHandleUpload, ImportProgress, ImportStatus, IncompatibleFlagsError, InferFilterSpecCommonLeaf, InferFilterSpecCommonNode, InferFilterSpecLeaf, InferFilterSpecLeafColumn, InferServiceKind, InferServiceModel, InferServiceUi, InlineColumnJoinEntry, InnerJoin, Is, IsSubtypeOf, JoinEntry, JsonCompatible, JsonDataInfo, JsonDataInfoEntries, JsonPartitionedDataInfo, JsonPartitionedDataInfoEntries, JsonSerializable, KnownServiceName, LegacyAxisSelector, LinkerMap, ListFilesResult, ListOptionBase, LiveLogHandle, LocalBlobHandle, LocalBlobHandleAndSize, LocalImportFileHandle, LogsDriver, LsDriver, LsEntry, MatcherMap, Metadata, MetadataJson, ModelServiceFactoryMap, ModelServiceRegistry, ModelServices, MultiAxisSelector, MultiColumnSelector, NativePObjectId, NavigationState, OpenDialogFilter, OpenDialogOps, OpenMultipleFilesResponse, OpenSingleFileResponse, Option, OuterJoin, OutputWithStatus, PAxisName, PColumn, PColumnDataEntry, PColumnIdAndSpec, PColumnInfo, PColumnKey, PColumnLazy, PColumnName, PColumnSelector, PColumnSpec, PColumnSpecId, PColumnValue, PColumnValues, PColumnValuesEntry, PDataColumnSpec, PFrame, PFrameDef, PFrameDriver, PFrameDriverError, PFrameError, PFrameHandle, PFrameModelDriver, PFrameSpecDriver, PFrameSpecDriverError, PObject, PObjectId, PObjectSpec, PSpecPredicate, PTable, PTableAbsent, PTableColumnId, PTableColumnIdAxis, PTableColumnIdColumn, PTableColumnSpec, PTableColumnSpecAxis, PTableColumnSpecColumn, PTableDef, PTableDefV2, PTableHandle, PTableNA, PTableRecordFilter, PTableRecordSingleValueFilterV2, PTableShape, PTableSorting, PTableValue, PTableValueAxis, PTableValueBranded, PTableValueData, PTableValueDataBranded, PTableValueDouble, PTableValueFloat, PTableValueInt, PTableValueLong, PTableValueString, PTableVector, PTableVectorTyped, PUniversalColumnSpec, PVectorData, PVectorDataBytes, PVectorDataDouble, PVectorDataFloat, PVectorDataInt, PVectorDataLong, PVectorDataString, PVectorDataTyped, ParquetChunk, ParquetChunkMapping, ParquetChunkMappingAxis, ParquetChunkMappingColumn, ParquetChunkMetadata, ParquetChunkStats, ParquetPartitionedDataInfo, ParquetPartitionedDataInfoEntries, PartitionedDataInfoEntries, PlId, PlIdBytes, PlIdLength, PlRef, PoolEntry, PoolEntryGuard, ProgressLogWithInfo, RangeBytes, ReadyLogHandle, Ref, RemoteBlobHandle, RemoteBlobHandleAndSize, RequireServices, ResolveAnchorsOptions, ResourceTypeName, ResourceTypePrefix, ResultCollection, ResultOrError, ResultPoolEntry, RootFilterSpec, RuntimeCapabilities, SERVICE_CAPABILITY_FLAGS, SERVICE_FEATURE_FLAGS, SERVICE_METHOD_MAP, SUniversalPColumnId, SerializedError, ServiceAlreadyRegisteredError, ServiceBrand, ServiceDispatch, ServiceError, ServiceInjectionError, ServiceInvalidIdError, ServiceMethodNotFoundError, ServiceName, ServiceNameLiterals, ServiceNotRegisteredError, ServiceRequireFlags, ServiceType, ServiceTypesLike, Services, SingleAxisSelector, SingleValueAndPredicateV2, SingleValueEqualPredicate, SingleValueGreaterOrEqualPredicate, SingleValueGreaterPredicate, SingleValueIEqualPredicate, SingleValueInSetPredicate, SingleValueIsNAPredicate, SingleValueLessOrEqualPredicate, SingleValueLessPredicate, SingleValueMatchesPredicate, SingleValueNotPredicateV2, SingleValueOrPredicateV2, SingleValuePredicateV2, SingleValueStringContainsFuzzyPredicate, SingleValueStringContainsPredicate, SingleValueStringIContainsFuzzyPredicate, SingleValueStringIContainsPredicate, SlicedColumnJoinEntry, SpecExprAxisRef, SpecExprColumnRef, SpecFrameHandle, SpecQuery, SpecQueryBooleanExpression, SpecQueryColumn, SpecQueryExpression, SpecQueryFilter, SpecQueryInlineColumn, SpecQueryJoinEntry, SpecQueryOuterJoin, SpecQuerySliceAxes, SpecQuerySort, SpecQuerySparseToDenseColumn, SpecQuerySymmetricJoin, StorageEntry, StorageHandle, StorageHandleLocal, StorageHandleRemote, StreamingApiResponse, StreamingApiResponseHandleOutdated, StreamingApiResponseOk, StringMatcher, StringifiedJson, SupportedRequirement, TableRange, UiError, UiServiceFactoryMap, UiServiceInjectorMap, UiServiceRegistry, UiServices, UniqueValuesRequest, UniqueValuesResponse, UniversalPColumnId, ValueOrError, ValueType, ValueTypeSupported, ValueWithUTag, ValueWithUTagAndAuthor, assertNever, base64Decode, base64Encode, bigintReplacer, buildServiceInfo, canonicalizeAxisId, canonicalizeAxisWithParents, canonicalizeJson, checkBlockFlag, collectSpecQueryColumns, createPlRef, createUiServiceInjectors, dataInfoToEntries, deriveNativeId, deserializeError, deserializeResult, digestPlId, ensureError, ensurePColumn, entriesToDataInfo, executePSpecPredicate, extractAllColumns, extractAllRequirements, extractAllSupports, extractCodeWithInfo, extractConfigGeneric, getArrayFromAxisTree, getAxesId, getAxesTree, getAxisId, getColumnIdAndSpec, getDenormalizedAxesList, getFileNameFromHandle, getFilePathFromHandle, getMethodNames, getNormalizedAxesList, getPColumnSpecId, getPTableColumnId, getSetFromAxisTree, getTypeFromPColumnOrAxisSpec, hasAbortError, isAbortError, isAggregateError, isAnchoredPColumnId, isAxisId, isBlockUIURL, isBooleanExpression, isDataInfo, isDataInfoEntries, isFilteredPColumn, isFolderURL, isImportFileHandleIndex, isImportFileHandleUpload, isKnownServiceName, isLabelColumn, isLinkerColumn, isLiveLog, isNodeService, isPColumn, isPColumnResult, isPColumnSpec, isPColumnSpecResult, isPFrameDriverError, isPFrameError, isPFrameSpecDriverError, isPTableAbsent, isPTableNA, isPTableValueAxis, isPartitionedDataInfoEntries, isPlRef, isServiceAlreadyRegisteredError, isServiceError, isServiceInjectionError, isServiceInvalidIdError, isServiceMethodNotFoundError, isServiceNotRegisteredError, legacyColumnSelectorsToPredicate, mapDataInfo, mapDataInfoEntries, mapJoinEntry, mapPObjectData, mapPTableDef, mapPTableDefV2, mapSpecQueryColumns, mapValueInVOE, matchAxis, matchAxisId, matchPColumn, newRangeBytesOpt, pTableValue, pTableValueBranded, parseColumnId, parseHttpAuth, parseJson, plId, plRefsEqual, readAnnotation, readAnnotationJson, readAnnotationJsonOrThrow, readDomain, readDomainJson, readDomainJsonOrThrow, readMetadata, readMetadataJson, readMetadataJsonOrThrow, registerServiceCapabilities, resolveAnchors, resolveAnnotationParents, resolveRequiredServices, resolveUiInjector, serializeError, serializeHttpAuth, serializeResult, service, serviceFnKey, sortJoinEntry, sortPTableDef, sortSpecQuery, stringifyColumnId, stringifyJson, traverseQuerySpec, uniqueBy, uniquePlId, unwrapResult, validateRangeBytes, visitDataInfo, withEnrichments, wrapAndSerialize, wrapAndSerializeAsync, wrapAsyncCallback, wrapCallback };
package/dist/index.js CHANGED
@@ -8,9 +8,9 @@ import { isLiveLog } from "./drivers/log.js";
8
8
  import { assertNever, uniqueBy } from "./util.js";
9
9
  import { getFileNameFromHandle, getFilePathFromHandle, isImportFileHandleIndex, isImportFileHandleUpload } from "./drivers/ls.js";
10
10
  import { dataInfoToEntries, entriesToDataInfo, isDataInfo, isDataInfoEntries, isPartitionedDataInfoEntries, mapDataInfo, mapDataInfoEntries, visitDataInfo } from "./drivers/pframe/data_info.js";
11
- import { AbortError, PFrameDriverError, PFrameError, UiError, deserializeError, deserializeResult, ensureError, hasAbortError, isAbortError, isAggregateError, isPFrameDriverError, isPFrameError, serializeError, serializeResult, unwrapResult, wrapAndSerialize, wrapAndSerializeAsync, wrapAsyncCallback, wrapCallback } from "./errors.js";
11
+ import { AbortError, PFrameDriverError, PFrameError, PFrameSpecDriverError, ServiceAlreadyRegisteredError, ServiceError, ServiceInjectionError, ServiceInvalidIdError, ServiceMethodNotFoundError, ServiceNotRegisteredError, UiError, deserializeError, deserializeResult, ensureError, hasAbortError, isAbortError, isAggregateError, isPFrameDriverError, isPFrameError, isPFrameSpecDriverError, isServiceAlreadyRegisteredError, isServiceError, isServiceInjectionError, isServiceInvalidIdError, isServiceMethodNotFoundError, isServiceNotRegisteredError, serializeError, serializeResult, unwrapResult, wrapAndSerialize, wrapAndSerializeAsync, wrapAsyncCallback, wrapCallback } from "./errors.js";
12
12
  import { bigintReplacer, canonicalizeJson, parseJson, stringifyJson } from "./json.js";
13
- import { Annotation, AnnotationJson, Domain, DomainJson, PAxisName, PColumnName, ValueType, canonicalizeAxisId, canonicalizeAxisWithParents, getArrayFromAxisTree, getAxesId, getAxesTree, getAxisId, getColumnIdAndSpec, getDenormalizedAxesList, getNormalizedAxesList, getPColumnSpecId, getSetFromAxisTree, getTypeFromPColumnOrAxisSpec, isAxisId, isLabelColumn, isLinkerColumn, matchAxisId, readAnnotation, readAnnotationJson, readAnnotationJsonOrThrow, readDomain, readDomainJson, readDomainJsonOrThrow, readMetadata, readMetadataJson, readMetadataJsonOrThrow } from "./drivers/pframe/spec/spec.js";
13
+ import { Annotation, AnnotationJson, Domain, DomainJson, PAxisName, PColumnName, ValueType, canonicalizeAxisId, canonicalizeAxisWithParents, getArrayFromAxisTree, getAxesId, getAxesTree, getAxisId, getColumnIdAndSpec, getDenormalizedAxesList, getNormalizedAxesList, getPColumnSpecId, getSetFromAxisTree, getTypeFromPColumnOrAxisSpec, isAxisId, isLabelColumn, isLinkerColumn, matchAxisId, readAnnotation, readAnnotationJson, readAnnotationJsonOrThrow, readDomain, readDomainJson, readDomainJsonOrThrow, readMetadata, readMetadataJson, readMetadataJsonOrThrow, resolveAnnotationParents } from "./drivers/pframe/spec/spec.js";
14
14
  import { PTableAbsent, PTableNA, isPTableAbsent, isPTableNA, isPTableValueAxis, pTableValue, pTableValueBranded } from "./drivers/pframe/data_types.js";
15
15
  import { collectSpecQueryColumns, isBooleanExpression, mapSpecQueryColumns, sortSpecQuery, traverseQuerySpec } from "./drivers/pframe/query/utils.js";
16
16
  import { mapJoinEntry, mapPTableDef, mapPTableDefV2, sortJoinEntry, sortPTableDef } from "./drivers/pframe/table_calculate.js";
@@ -34,5 +34,13 @@ import { mapValueInVOE } from "./value_or_error.js";
34
34
  import { base64Decode, base64Encode } from "./base64.js";
35
35
  import { parseHttpAuth, serializeHttpAuth } from "./httpAuth.js";
36
36
  import { ResourceTypeName, ResourceTypePrefix } from "./resource_types.js";
37
+ import { isNodeService, service, serviceFnKey } from "./services/service_types.js";
38
+ import { ModelServiceRegistry, UiServiceRegistry } from "./services/service_registry.js";
39
+ import { Services } from "./services/service_declarations.js";
40
+ import { SERVICE_CAPABILITY_FLAGS, SERVICE_FEATURE_FLAGS, getMethodNames, isKnownServiceName, registerServiceCapabilities, resolveRequiredServices } from "./services/service_capabilities.js";
41
+ import { createUiServiceInjectors } from "./services/service_injector_factory.js";
42
+ import { SERVICE_METHOD_MAP, buildServiceInfo, resolveUiInjector } from "./services/service_injectors.js";
43
+ import "./services/index.js";
44
+ import { PoolEntryGuard } from "./pool_entry.js";
37
45
 
38
- export { AbortError, AllRequiresFeatureFlags, AllSupportsFeatureFlags, AnchoredIdDeriver, Annotation, AnnotationJson, ChunkedStreamReader, Code, DefaultNavigationState, Domain, DomainJson, IncompatibleFlagsError, LinkerMap, PAxisName, PColumnName, PFrameDriverError, PFrameError, PTableAbsent, PTableNA, PlId, PlIdBytes, PlIdLength, PlRef, RangeBytes, ResourceTypeName, ResourceTypePrefix, RuntimeCapabilities, UiError, ValueType, assertNever, base64Decode, base64Encode, bigintReplacer, canonicalizeAxisId, canonicalizeAxisWithParents, canonicalizeJson, checkBlockFlag, collectSpecQueryColumns, createPlRef, dataInfoToEntries, deriveNativeId, deserializeError, deserializeResult, digestPlId, ensureError, ensurePColumn, entriesToDataInfo, executePSpecPredicate, extractAllColumns, extractAllRequirements, extractAllSupports, extractCodeWithInfo, extractConfigGeneric, getArrayFromAxisTree, getAxesId, getAxesTree, getAxisId, getColumnIdAndSpec, getDenormalizedAxesList, getFileNameFromHandle, getFilePathFromHandle, getNormalizedAxesList, getPColumnSpecId, getPTableColumnId, getSetFromAxisTree, getTypeFromPColumnOrAxisSpec, hasAbortError, isAbortError, isAggregateError, isAnchoredPColumnId, isAxisId, isBlockUIURL, isBooleanExpression, isDataInfo, isDataInfoEntries, isFilteredPColumn, isFolderURL, isImportFileHandleIndex, isImportFileHandleUpload, isLabelColumn, isLinkerColumn, isLiveLog, isPColumn, isPColumnResult, isPColumnSpec, isPColumnSpecResult, isPFrameDriverError, isPFrameError, isPTableAbsent, isPTableNA, isPTableValueAxis, isPartitionedDataInfoEntries, isPlRef, legacyColumnSelectorsToPredicate, mapDataInfo, mapDataInfoEntries, mapJoinEntry, mapPObjectData, mapPTableDef, mapPTableDefV2, mapSpecQueryColumns, mapValueInVOE, matchAxis, matchAxisId, matchPColumn, newRangeBytesOpt, pTableValue, pTableValueBranded, parseColumnId, parseHttpAuth, parseJson, plId, plRefsEqual, readAnnotation, readAnnotationJson, readAnnotationJsonOrThrow, readDomain, readDomainJson, readDomainJsonOrThrow, readMetadata, readMetadataJson, readMetadataJsonOrThrow, resolveAnchors, serializeError, serializeHttpAuth, serializeResult, sortJoinEntry, sortPTableDef, sortSpecQuery, stringifyColumnId, stringifyJson, traverseQuerySpec, uniqueBy, uniquePlId, unwrapResult, validateRangeBytes, visitDataInfo, withEnrichments, wrapAndSerialize, wrapAndSerializeAsync, wrapAsyncCallback, wrapCallback };
46
+ export { AbortError, AllRequiresFeatureFlags, AllSupportsFeatureFlags, AnchoredIdDeriver, Annotation, AnnotationJson, ChunkedStreamReader, Code, DefaultNavigationState, Domain, DomainJson, IncompatibleFlagsError, LinkerMap, ModelServiceRegistry, PAxisName, PColumnName, PFrameDriverError, PFrameError, PFrameSpecDriverError, PTableAbsent, PTableNA, PlId, PlIdBytes, PlIdLength, PlRef, PoolEntryGuard, RangeBytes, ResourceTypeName, ResourceTypePrefix, RuntimeCapabilities, SERVICE_CAPABILITY_FLAGS, SERVICE_FEATURE_FLAGS, SERVICE_METHOD_MAP, ServiceAlreadyRegisteredError, ServiceError, ServiceInjectionError, ServiceInvalidIdError, ServiceMethodNotFoundError, ServiceNotRegisteredError, Services, UiError, UiServiceRegistry, ValueType, assertNever, base64Decode, base64Encode, bigintReplacer, buildServiceInfo, canonicalizeAxisId, canonicalizeAxisWithParents, canonicalizeJson, checkBlockFlag, collectSpecQueryColumns, createPlRef, createUiServiceInjectors, dataInfoToEntries, deriveNativeId, deserializeError, deserializeResult, digestPlId, ensureError, ensurePColumn, entriesToDataInfo, executePSpecPredicate, extractAllColumns, extractAllRequirements, extractAllSupports, extractCodeWithInfo, extractConfigGeneric, getArrayFromAxisTree, getAxesId, getAxesTree, getAxisId, getColumnIdAndSpec, getDenormalizedAxesList, getFileNameFromHandle, getFilePathFromHandle, getMethodNames, getNormalizedAxesList, getPColumnSpecId, getPTableColumnId, getSetFromAxisTree, getTypeFromPColumnOrAxisSpec, hasAbortError, isAbortError, isAggregateError, isAnchoredPColumnId, isAxisId, isBlockUIURL, isBooleanExpression, isDataInfo, isDataInfoEntries, isFilteredPColumn, isFolderURL, isImportFileHandleIndex, isImportFileHandleUpload, isKnownServiceName, isLabelColumn, isLinkerColumn, isLiveLog, isNodeService, isPColumn, isPColumnResult, isPColumnSpec, isPColumnSpecResult, isPFrameDriverError, isPFrameError, isPFrameSpecDriverError, isPTableAbsent, isPTableNA, isPTableValueAxis, isPartitionedDataInfoEntries, isPlRef, isServiceAlreadyRegisteredError, isServiceError, isServiceInjectionError, isServiceInvalidIdError, isServiceMethodNotFoundError, isServiceNotRegisteredError, legacyColumnSelectorsToPredicate, mapDataInfo, mapDataInfoEntries, mapJoinEntry, mapPObjectData, mapPTableDef, mapPTableDefV2, mapSpecQueryColumns, mapValueInVOE, matchAxis, matchAxisId, matchPColumn, newRangeBytesOpt, pTableValue, pTableValueBranded, parseColumnId, parseHttpAuth, parseJson, plId, plRefsEqual, readAnnotation, readAnnotationJson, readAnnotationJsonOrThrow, readDomain, readDomainJson, readDomainJsonOrThrow, readMetadata, readMetadataJson, readMetadataJsonOrThrow, registerServiceCapabilities, resolveAnchors, resolveAnnotationParents, resolveRequiredServices, resolveUiInjector, serializeError, serializeHttpAuth, serializeResult, service, serviceFnKey, sortJoinEntry, sortPTableDef, sortSpecQuery, stringifyColumnId, stringifyJson, traverseQuerySpec, uniqueBy, uniquePlId, unwrapResult, validateRangeBytes, visitDataInfo, withEnrichments, wrapAndSerialize, wrapAndSerializeAsync, wrapAsyncCallback, wrapCallback };
@@ -1,6 +1,6 @@
1
- import { PObjectSpec } from "./spec.js";
2
1
  import { AxisId } from "../drivers/pframe/spec/spec.js";
3
2
  import "../drivers/index.js";
3
+ import { PObjectSpec } from "./spec.js";
4
4
 
5
5
  //#region src/pool/query.d.ts
6
6
  type PSpecPredicate = {
@@ -0,0 +1,30 @@
1
+
2
+ //#region src/pool_entry.ts
3
+ /**
4
+ * Wraps a PoolEntry for use with `using`. Auto-calls `unref()` at end of scope
5
+ * unless `keep()` is called to transfer ownership to the caller.
6
+ */
7
+ var PoolEntryGuard = class {
8
+ kept = false;
9
+ constructor(entry) {
10
+ this.entry = entry;
11
+ }
12
+ get key() {
13
+ return this.entry.key;
14
+ }
15
+ get resource() {
16
+ return this.entry.resource;
17
+ }
18
+ /** Disarm the guard — caller takes ownership of the entry. */
19
+ keep() {
20
+ this.kept = true;
21
+ return this.entry;
22
+ }
23
+ [Symbol.dispose]() {
24
+ if (!this.kept) this.entry.unref();
25
+ }
26
+ };
27
+
28
+ //#endregion
29
+ exports.PoolEntryGuard = PoolEntryGuard;
30
+ //# sourceMappingURL=pool_entry.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pool_entry.cjs","names":[],"sources":["../src/pool_entry.ts"],"sourcesContent":["export interface PoolEntry<K extends string = string, R extends {} = {}> extends Disposable {\n /** Resource key, calculated using provided `calculateParamsKey` function */\n readonly key: K;\n\n /** Resource itself created by `createNewResource` function */\n readonly resource: R;\n\n /**\n * Release the reference. Idempotent.\n * Same as `[Symbol.dispose]()` — provided as a named function\n * for use in callbacks (e.g. `addOnDestroy(entry.unref)`).\n */\n readonly unref: () => void;\n}\n\n/**\n * Wraps a PoolEntry for use with `using`. Auto-calls `unref()` at end of scope\n * unless `keep()` is called to transfer ownership to the caller.\n */\nexport class PoolEntryGuard<K extends string = string, R extends {} = {}> implements Disposable {\n private kept = false;\n\n constructor(readonly entry: PoolEntry<K, R>) {}\n\n get key(): K {\n return this.entry.key;\n }\n\n get resource(): R {\n return this.entry.resource;\n }\n\n /** Disarm the guard — caller takes ownership of the entry. */\n keep(): PoolEntry<K, R> {\n this.kept = true;\n return this.entry;\n }\n\n [Symbol.dispose](): void {\n if (!this.kept) this.entry.unref();\n }\n}\n"],"mappings":";;;;;;AAmBA,IAAa,iBAAb,MAAgG;CAC9F,AAAQ,OAAO;CAEf,YAAY,AAAS,OAAwB;EAAxB;;CAErB,IAAI,MAAS;AACX,SAAO,KAAK,MAAM;;CAGpB,IAAI,WAAc;AAChB,SAAO,KAAK,MAAM;;;CAIpB,OAAwB;AACtB,OAAK,OAAO;AACZ,SAAO,KAAK;;CAGd,CAAC,OAAO,WAAiB;AACvB,MAAI,CAAC,KAAK,KAAM,MAAK,MAAM,OAAO"}
@@ -0,0 +1,30 @@
1
+ //#region src/pool_entry.d.ts
2
+ interface PoolEntry<K extends string = string, R extends {} = {}> extends Disposable {
3
+ /** Resource key, calculated using provided `calculateParamsKey` function */
4
+ readonly key: K;
5
+ /** Resource itself created by `createNewResource` function */
6
+ readonly resource: R;
7
+ /**
8
+ * Release the reference. Idempotent.
9
+ * Same as `[Symbol.dispose]()` — provided as a named function
10
+ * for use in callbacks (e.g. `addOnDestroy(entry.unref)`).
11
+ */
12
+ readonly unref: () => void;
13
+ }
14
+ /**
15
+ * Wraps a PoolEntry for use with `using`. Auto-calls `unref()` at end of scope
16
+ * unless `keep()` is called to transfer ownership to the caller.
17
+ */
18
+ declare class PoolEntryGuard<K extends string = string, R extends {} = {}> implements Disposable {
19
+ readonly entry: PoolEntry<K, R>;
20
+ private kept;
21
+ constructor(entry: PoolEntry<K, R>);
22
+ get key(): K;
23
+ get resource(): R;
24
+ /** Disarm the guard — caller takes ownership of the entry. */
25
+ keep(): PoolEntry<K, R>;
26
+ [Symbol.dispose](): void;
27
+ }
28
+ //#endregion
29
+ export { PoolEntry, PoolEntryGuard };
30
+ //# sourceMappingURL=pool_entry.d.ts.map
@@ -0,0 +1,29 @@
1
+ //#region src/pool_entry.ts
2
+ /**
3
+ * Wraps a PoolEntry for use with `using`. Auto-calls `unref()` at end of scope
4
+ * unless `keep()` is called to transfer ownership to the caller.
5
+ */
6
+ var PoolEntryGuard = class {
7
+ kept = false;
8
+ constructor(entry) {
9
+ this.entry = entry;
10
+ }
11
+ get key() {
12
+ return this.entry.key;
13
+ }
14
+ get resource() {
15
+ return this.entry.resource;
16
+ }
17
+ /** Disarm the guard — caller takes ownership of the entry. */
18
+ keep() {
19
+ this.kept = true;
20
+ return this.entry;
21
+ }
22
+ [Symbol.dispose]() {
23
+ if (!this.kept) this.entry.unref();
24
+ }
25
+ };
26
+
27
+ //#endregion
28
+ export { PoolEntryGuard };
29
+ //# sourceMappingURL=pool_entry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pool_entry.js","names":[],"sources":["../src/pool_entry.ts"],"sourcesContent":["export interface PoolEntry<K extends string = string, R extends {} = {}> extends Disposable {\n /** Resource key, calculated using provided `calculateParamsKey` function */\n readonly key: K;\n\n /** Resource itself created by `createNewResource` function */\n readonly resource: R;\n\n /**\n * Release the reference. Idempotent.\n * Same as `[Symbol.dispose]()` — provided as a named function\n * for use in callbacks (e.g. `addOnDestroy(entry.unref)`).\n */\n readonly unref: () => void;\n}\n\n/**\n * Wraps a PoolEntry for use with `using`. Auto-calls `unref()` at end of scope\n * unless `keep()` is called to transfer ownership to the caller.\n */\nexport class PoolEntryGuard<K extends string = string, R extends {} = {}> implements Disposable {\n private kept = false;\n\n constructor(readonly entry: PoolEntry<K, R>) {}\n\n get key(): K {\n return this.entry.key;\n }\n\n get resource(): R {\n return this.entry.resource;\n }\n\n /** Disarm the guard — caller takes ownership of the entry. */\n keep(): PoolEntry<K, R> {\n this.kept = true;\n return this.entry;\n }\n\n [Symbol.dispose](): void {\n if (!this.kept) this.entry.unref();\n }\n}\n"],"mappings":";;;;;AAmBA,IAAa,iBAAb,MAAgG;CAC9F,AAAQ,OAAO;CAEf,YAAY,AAAS,OAAwB;EAAxB;;CAErB,IAAI,MAAS;AACX,SAAO,KAAK,MAAM;;CAGpB,IAAI,WAAc;AAChB,SAAO,KAAK,MAAM;;;CAIpB,OAAwB;AACtB,OAAK,OAAO;AACZ,SAAO,KAAK;;CAGd,CAAC,OAAO,WAAiB;AACvB,MAAI,CAAC,KAAK,KAAM,MAAK,MAAM,OAAO"}
@@ -0,0 +1,6 @@
1
+ const require_service_types = require('./service_types.cjs');
2
+ const require_service_registry = require('./service_registry.cjs');
3
+ const require_service_declarations = require('./service_declarations.cjs');
4
+ const require_service_capabilities = require('./service_capabilities.cjs');
5
+ const require_service_injector_factory = require('./service_injector_factory.cjs');
6
+ const require_service_injectors = require('./service_injectors.cjs');
@@ -0,0 +1,6 @@
1
+ import { Services } from "./service_declarations.js";
2
+ import { InferServiceKind, InferServiceModel, InferServiceUi, ModelServiceFactoryMap, ModelServices, RequireServices, ServiceBrand, ServiceDispatch, ServiceName, ServiceNameLiterals, ServiceRequireFlags, ServiceType, ServiceTypesLike, UiServiceFactoryMap, UiServices, isNodeService, service, serviceFnKey } from "./service_types.js";
3
+ import { ModelServiceRegistry, UiServiceRegistry } from "./service_registry.js";
4
+ import { KnownServiceName, SERVICE_CAPABILITY_FLAGS, SERVICE_FEATURE_FLAGS, getMethodNames, isKnownServiceName, registerServiceCapabilities, resolveRequiredServices } from "./service_capabilities.js";
5
+ import { createUiServiceInjectors } from "./service_injector_factory.js";
6
+ import { SERVICE_METHOD_MAP, UiServiceInjectorMap, buildServiceInfo, resolveUiInjector } from "./service_injectors.js";
@@ -0,0 +1,6 @@
1
+ import { isNodeService, service, serviceFnKey } from "./service_types.js";
2
+ import { ModelServiceRegistry, UiServiceRegistry } from "./service_registry.js";
3
+ import { Services } from "./service_declarations.js";
4
+ import { SERVICE_CAPABILITY_FLAGS, SERVICE_FEATURE_FLAGS, getMethodNames, isKnownServiceName, registerServiceCapabilities, resolveRequiredServices } from "./service_capabilities.js";
5
+ import { createUiServiceInjectors } from "./service_injector_factory.js";
6
+ import { SERVICE_METHOD_MAP, buildServiceInfo, resolveUiInjector } from "./service_injectors.js";
@@ -0,0 +1,51 @@
1
+ const require_service_declarations = require('./service_declarations.cjs');
2
+
3
+ //#region src/services/service_capabilities.ts
4
+ /**
5
+ * All service-related `requires*` capability flag names, auto-derived from Services.
6
+ * Single source of truth — use this everywhere runtime capabilities are registered.
7
+ */
8
+ const SERVICE_CAPABILITY_FLAGS = Object.keys(require_service_declarations.Services).map((key) => `requires${key}`);
9
+ /**
10
+ * Register all service capability flags with the given callback.
11
+ * Works with both `RuntimeCapabilities.addSupportedRequirement`
12
+ * and `MiddleLayer.addRuntimeCapability`.
13
+ */
14
+ function registerServiceCapabilities(register) {
15
+ for (const flag of SERVICE_CAPABILITY_FLAGS) register(flag, true);
16
+ }
17
+ /**
18
+ * Resolve which services are required by the given feature flags.
19
+ * Accepts Record<string, unknown> so it works with both BlockCodeKnownFeatureFlags
20
+ * (from middle layer) and Zod-parsed records (from preload).
21
+ */
22
+ function resolveRequiredServices(flags) {
23
+ if (!flags) return [];
24
+ return Object.keys(require_service_declarations.Services).filter((key) => flags[`requires${key}`] === true).map((key) => require_service_declarations.Services[key]);
25
+ }
26
+ function isKnownServiceName(name) {
27
+ return Object.values(require_service_declarations.Services).some((v) => v === name);
28
+ }
29
+ /** All service require flags set to true, auto-generated from Services.
30
+ * Used to distinguish service-related feature flags from non-service flags. */
31
+ const SERVICE_FEATURE_FLAGS = Object.fromEntries(Object.keys(require_service_declarations.Services).map((key) => [`requires${key}`, true]));
32
+ /** Introspect method names on an instance (including prototype chain).
33
+ * Uses Object.getOwnPropertyDescriptor to avoid triggering getters. */
34
+ function getMethodNames(instance) {
35
+ const methods = /* @__PURE__ */ new Set();
36
+ let proto = instance;
37
+ while (proto && proto !== Object.prototype) {
38
+ for (const key of Object.getOwnPropertyNames(proto)) if (key !== "constructor" && typeof Object.getOwnPropertyDescriptor(proto, key)?.value === "function") methods.add(key);
39
+ proto = Object.getPrototypeOf(proto);
40
+ }
41
+ return [...methods];
42
+ }
43
+
44
+ //#endregion
45
+ exports.SERVICE_CAPABILITY_FLAGS = SERVICE_CAPABILITY_FLAGS;
46
+ exports.SERVICE_FEATURE_FLAGS = SERVICE_FEATURE_FLAGS;
47
+ exports.getMethodNames = getMethodNames;
48
+ exports.isKnownServiceName = isKnownServiceName;
49
+ exports.registerServiceCapabilities = registerServiceCapabilities;
50
+ exports.resolveRequiredServices = resolveRequiredServices;
51
+ //# sourceMappingURL=service_capabilities.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"service_capabilities.cjs","names":["Services"],"sources":["../../src/services/service_capabilities.ts"],"sourcesContent":["import type { ServiceName, ServiceRequireFlags } from \"./service_types\";\nimport { Services } from \"./service_declarations\";\nimport type { SupportedRequirement } from \"../flags/flag_utils\";\n\n/**\n * All service-related `requires*` capability flag names, auto-derived from Services.\n * Single source of truth — use this everywhere runtime capabilities are registered.\n */\nexport const SERVICE_CAPABILITY_FLAGS: readonly SupportedRequirement[] = Object.keys(Services).map(\n (key) => `requires${key}` as SupportedRequirement,\n);\n\n/**\n * Register all service capability flags with the given callback.\n * Works with both `RuntimeCapabilities.addSupportedRequirement`\n * and `MiddleLayer.addRuntimeCapability`.\n */\nexport function registerServiceCapabilities(\n register: (flag: SupportedRequirement, value: true) => void,\n): void {\n for (const flag of SERVICE_CAPABILITY_FLAGS) {\n register(flag, true);\n }\n}\n\n/**\n * Resolve which services are required by the given feature flags.\n * Accepts Record<string, unknown> so it works with both BlockCodeKnownFeatureFlags\n * (from middle layer) and Zod-parsed records (from preload).\n */\nexport function resolveRequiredServices(flags: Record<string, unknown> | undefined): ServiceName[] {\n if (!flags) return [];\n return (Object.keys(Services) as (keyof typeof Services)[])\n .filter((key) => flags[`requires${key}`] === true)\n .map((key) => Services[key]);\n}\n\nexport type KnownServiceName = (typeof Services)[keyof typeof Services] & string;\n\nexport function isKnownServiceName(name: string): name is KnownServiceName {\n return Object.values(Services).some((v) => v === name);\n}\n\n/** All service require flags set to true, auto-generated from Services.\n * Used to distinguish service-related feature flags from non-service flags. */\nexport const SERVICE_FEATURE_FLAGS: { readonly [K in keyof ServiceRequireFlags]-?: true } =\n Object.fromEntries(Object.keys(Services).map((key) => [`requires${key}`, true])) as any;\n\n/** Introspect method names on an instance (including prototype chain).\n * Uses Object.getOwnPropertyDescriptor to avoid triggering getters. */\nexport function getMethodNames<T extends object>(instance: T): string[] {\n const methods = new Set<string>();\n let proto: object | null = instance;\n while (proto && proto !== Object.prototype) {\n for (const key of Object.getOwnPropertyNames(proto)) {\n const descriptor = Object.getOwnPropertyDescriptor(proto, key);\n if (key !== \"constructor\" && typeof descriptor?.value === \"function\") {\n methods.add(key);\n }\n }\n proto = Object.getPrototypeOf(proto);\n }\n return [...methods];\n}\n"],"mappings":";;;;;;;AAQA,MAAa,2BAA4D,OAAO,KAAKA,sCAAS,CAAC,KAC5F,QAAQ,WAAW,MACrB;;;;;;AAOD,SAAgB,4BACd,UACM;AACN,MAAK,MAAM,QAAQ,yBACjB,UAAS,MAAM,KAAK;;;;;;;AASxB,SAAgB,wBAAwB,OAA2D;AACjG,KAAI,CAAC,MAAO,QAAO,EAAE;AACrB,QAAQ,OAAO,KAAKA,sCAAS,CAC1B,QAAQ,QAAQ,MAAM,WAAW,WAAW,KAAK,CACjD,KAAK,QAAQA,sCAAS,KAAK;;AAKhC,SAAgB,mBAAmB,MAAwC;AACzE,QAAO,OAAO,OAAOA,sCAAS,CAAC,MAAM,MAAM,MAAM,KAAK;;;;AAKxD,MAAa,wBACX,OAAO,YAAY,OAAO,KAAKA,sCAAS,CAAC,KAAK,QAAQ,CAAC,WAAW,OAAO,KAAK,CAAC,CAAC;;;AAIlF,SAAgB,eAAiC,UAAuB;CACtE,MAAM,0BAAU,IAAI,KAAa;CACjC,IAAI,QAAuB;AAC3B,QAAO,SAAS,UAAU,OAAO,WAAW;AAC1C,OAAK,MAAM,OAAO,OAAO,oBAAoB,MAAM,CAEjD,KAAI,QAAQ,iBAAiB,OADV,OAAO,yBAAyB,OAAO,IAAI,EACd,UAAU,WACxD,SAAQ,IAAI,IAAI;AAGpB,UAAQ,OAAO,eAAe,MAAM;;AAEtC,QAAO,CAAC,GAAG,QAAQ"}