@milaboratories/pl-model-middle-layer 1.12.7 → 1.12.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (145) hide show
  1. package/dist/_virtual/_rolldown/runtime.cjs +43 -0
  2. package/dist/_virtual/_rolldown/runtime.js +18 -0
  3. package/dist/author_marker.d.ts +2 -5
  4. package/dist/block_meta/block_components.cjs +21 -29
  5. package/dist/block_meta/block_components.cjs.map +1 -1
  6. package/dist/block_meta/block_components.d.ts +537 -533
  7. package/dist/block_meta/block_components.js +20 -27
  8. package/dist/block_meta/block_components.js.map +1 -1
  9. package/dist/block_meta/block_description.cjs +22 -25
  10. package/dist/block_meta/block_description.cjs.map +1 -1
  11. package/dist/block_meta/block_description.d.ts +1815 -1812
  12. package/dist/block_meta/block_description.js +20 -22
  13. package/dist/block_meta/block_description.js.map +1 -1
  14. package/dist/block_meta/block_id.cjs +21 -28
  15. package/dist/block_meta/block_id.cjs.map +1 -1
  16. package/dist/block_meta/block_id.d.ts +30 -26
  17. package/dist/block_meta/block_id.js +20 -26
  18. package/dist/block_meta/block_id.js.map +1 -1
  19. package/dist/block_meta/block_manifest.cjs +24 -29
  20. package/dist/block_meta/block_manifest.cjs.map +1 -1
  21. package/dist/block_meta/block_manifest.d.ts +4778 -4773
  22. package/dist/block_meta/block_manifest.js +20 -24
  23. package/dist/block_meta/block_manifest.js.map +1 -1
  24. package/dist/block_meta/block_meta.cjs +35 -50
  25. package/dist/block_meta/block_meta.cjs.map +1 -1
  26. package/dist/block_meta/block_meta.d.ts +810 -806
  27. package/dist/block_meta/block_meta.js +31 -45
  28. package/dist/block_meta/block_meta.js.map +1 -1
  29. package/dist/block_meta/common.d.ts +5 -2
  30. package/dist/block_meta/content_conversion.cjs +19 -16
  31. package/dist/block_meta/content_conversion.cjs.map +1 -1
  32. package/dist/block_meta/content_conversion.d.ts +7 -3
  33. package/dist/block_meta/content_conversion.js +19 -15
  34. package/dist/block_meta/content_conversion.js.map +1 -1
  35. package/dist/block_meta/content_types.cjs +77 -187
  36. package/dist/block_meta/content_types.cjs.map +1 -1
  37. package/dist/block_meta/content_types.d.ts +382 -378
  38. package/dist/block_meta/content_types.js +76 -185
  39. package/dist/block_meta/content_types.js.map +1 -1
  40. package/dist/block_meta/index.cjs +8 -0
  41. package/dist/block_meta/index.d.ts +9 -10
  42. package/dist/block_meta/index.js +8 -0
  43. package/dist/block_meta/semver.cjs +6 -9
  44. package/dist/block_meta/semver.cjs.map +1 -1
  45. package/dist/block_meta/semver.d.ts +5 -1
  46. package/dist/block_meta/semver.js +5 -7
  47. package/dist/block_meta/semver.js.map +1 -1
  48. package/dist/block_registry/block_pack_spec.cjs +30 -34
  49. package/dist/block_registry/block_pack_spec.cjs.map +1 -1
  50. package/dist/block_registry/block_pack_spec.d.ts +172 -168
  51. package/dist/block_registry/block_pack_spec.js +29 -32
  52. package/dist/block_registry/block_pack_spec.js.map +1 -1
  53. package/dist/block_registry/index.cjs +3 -0
  54. package/dist/block_registry/index.d.ts +3 -4
  55. package/dist/block_registry/index.js +3 -0
  56. package/dist/block_registry/overview.cjs +55 -66
  57. package/dist/block_registry/overview.cjs.map +1 -1
  58. package/dist/block_registry/overview.d.ts +10345 -10340
  59. package/dist/block_registry/overview.js +54 -64
  60. package/dist/block_registry/overview.js.map +1 -1
  61. package/dist/block_registry/registry_spec.cjs +17 -16
  62. package/dist/block_registry/registry_spec.cjs.map +1 -1
  63. package/dist/block_registry/registry_spec.d.ts +147 -143
  64. package/dist/block_registry/registry_spec.js +16 -14
  65. package/dist/block_registry/registry_spec.js.map +1 -1
  66. package/dist/block_settings.cjs +3 -2
  67. package/dist/block_settings.cjs.map +1 -1
  68. package/dist/block_settings.d.ts +12 -10
  69. package/dist/block_settings.js +3 -1
  70. package/dist/block_settings.js.map +1 -1
  71. package/dist/block_state.d.ts +14 -14
  72. package/dist/index.cjs +102 -99
  73. package/dist/index.d.ts +25 -12
  74. package/dist/index.js +18 -16
  75. package/dist/json.cjs +16 -13
  76. package/dist/json.cjs.map +1 -1
  77. package/dist/json.d.ts +11 -7
  78. package/dist/json.js +14 -11
  79. package/dist/json.js.map +1 -1
  80. package/dist/pframe/index.d.ts +1 -2
  81. package/dist/pframe/internal_api/api_factory.cjs +3 -2
  82. package/dist/pframe/internal_api/api_factory.cjs.map +1 -1
  83. package/dist/pframe/internal_api/api_factory.d.ts +40 -36
  84. package/dist/pframe/internal_api/api_factory.js +3 -1
  85. package/dist/pframe/internal_api/api_factory.js.map +1 -1
  86. package/dist/pframe/internal_api/api_read.d.ts +40 -36
  87. package/dist/pframe/internal_api/api_wasm.d.ts +71 -70
  88. package/dist/pframe/internal_api/common.d.ts +18 -14
  89. package/dist/pframe/internal_api/create_table.d.ts +46 -42
  90. package/dist/pframe/internal_api/delete_column.d.ts +11 -7
  91. package/dist/pframe/internal_api/find_columns.d.ts +21 -17
  92. package/dist/pframe/internal_api/http_helpers.cjs +36 -27
  93. package/dist/pframe/internal_api/http_helpers.cjs.map +1 -1
  94. package/dist/pframe/internal_api/http_helpers.d.ts +153 -170
  95. package/dist/pframe/internal_api/http_helpers.js +36 -26
  96. package/dist/pframe/internal_api/http_helpers.js.map +1 -1
  97. package/dist/pframe/internal_api/index.cjs +18 -10
  98. package/dist/pframe/internal_api/index.cjs.map +1 -1
  99. package/dist/pframe/internal_api/index.d.ts +18 -11
  100. package/dist/pframe/internal_api/index.js +15 -3
  101. package/dist/pframe/internal_api/index.js.map +1 -1
  102. package/dist/pframe/internal_api/pframe.d.ts +26 -27
  103. package/dist/pframe/internal_api/table.d.ts +52 -48
  104. package/dist/project.d.ts +6 -3
  105. package/dist/project_list.d.ts +18 -14
  106. package/dist/project_overview.d.ts +135 -143
  107. package/dist/update_info.d.ts +10 -5
  108. package/package.json +5 -5
  109. package/dist/author_marker.d.ts.map +0 -1
  110. package/dist/block_meta/block_components.d.ts.map +0 -1
  111. package/dist/block_meta/block_description.d.ts.map +0 -1
  112. package/dist/block_meta/block_id.d.ts.map +0 -1
  113. package/dist/block_meta/block_manifest.d.ts.map +0 -1
  114. package/dist/block_meta/block_meta.d.ts.map +0 -1
  115. package/dist/block_meta/common.d.ts.map +0 -1
  116. package/dist/block_meta/content_conversion.d.ts.map +0 -1
  117. package/dist/block_meta/content_types.d.ts.map +0 -1
  118. package/dist/block_meta/index.d.ts.map +0 -1
  119. package/dist/block_meta/semver.d.ts.map +0 -1
  120. package/dist/block_registry/block_pack_spec.d.ts.map +0 -1
  121. package/dist/block_registry/index.d.ts.map +0 -1
  122. package/dist/block_registry/overview.d.ts.map +0 -1
  123. package/dist/block_registry/registry_spec.d.ts.map +0 -1
  124. package/dist/block_settings.d.ts.map +0 -1
  125. package/dist/block_state.d.ts.map +0 -1
  126. package/dist/index.cjs.map +0 -1
  127. package/dist/index.d.ts.map +0 -1
  128. package/dist/index.js.map +0 -1
  129. package/dist/json.d.ts.map +0 -1
  130. package/dist/pframe/index.d.ts.map +0 -1
  131. package/dist/pframe/internal_api/api_factory.d.ts.map +0 -1
  132. package/dist/pframe/internal_api/api_read.d.ts.map +0 -1
  133. package/dist/pframe/internal_api/api_wasm.d.ts.map +0 -1
  134. package/dist/pframe/internal_api/common.d.ts.map +0 -1
  135. package/dist/pframe/internal_api/create_table.d.ts.map +0 -1
  136. package/dist/pframe/internal_api/delete_column.d.ts.map +0 -1
  137. package/dist/pframe/internal_api/find_columns.d.ts.map +0 -1
  138. package/dist/pframe/internal_api/http_helpers.d.ts.map +0 -1
  139. package/dist/pframe/internal_api/index.d.ts.map +0 -1
  140. package/dist/pframe/internal_api/pframe.d.ts.map +0 -1
  141. package/dist/pframe/internal_api/table.d.ts.map +0 -1
  142. package/dist/project.d.ts.map +0 -1
  143. package/dist/project_list.d.ts.map +0 -1
  144. package/dist/project_overview.d.ts.map +0 -1
  145. package/dist/update_info.d.ts.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"http_helpers.cjs","sources":["../../../src/pframe/internal_api/http_helpers.ts"],"sourcesContent":["import type { Readable } from \"node:stream\";\nimport type { RequestListener } from \"node:http\";\nimport type { Branded, Base64Encoded } from \"@milaboratories/pl-model-common\";\nimport type { Logger } from \"./common\";\n\n/** Parquet file extension */\nexport const ParquetExtension = \".parquet\" as const;\n\n/** Parquet file name */\nexport type ParquetFileName = Branded<`${string}.parquet`, \"PFrameInternal.ParquetFileName\">;\n\nexport type FileRange = {\n /** Start byte position (inclusive) */\n start: number;\n /** End byte position (inclusive) */\n end: number;\n};\n\n/** HTTP range as of RFC 9110 <https://datatracker.ietf.org/doc/html/rfc9110#name-range> */\nexport type HttpRange =\n | {\n /**\n * Get file content in the specified byte range\n *\n * @example\n * ```\n * GET /file.parquet HTTP/1.1\n * Range: bytes=0-1023\n * ```\n */\n type: \"bounded\";\n /** Start byte position (inclusive) */\n start: number;\n /** End byte position (inclusive) */\n end: number;\n }\n | {\n /**\n * Get byte range starting from the specified offset\n *\n * @example\n * ```\n * GET /file.parquet HTTP/1.1\n * Range: bytes=1024-\n * ```\n */\n type: \"offset\";\n /** Start byte position (inclusive) */\n offset: number;\n }\n | {\n /**\n * Get byte range starting from the specified suffix\n *\n * @example\n * ```\n * GET /file.parquet HTTP/1.1\n * Range: bytes=-1024\n * ```\n */\n type: \"suffix\";\n /** End byte position (inclusive) */\n suffix: number;\n };\n\n/** HTTP method passed to object store */\nexport type HttpMethod = \"GET\" | \"HEAD\";\n\n/** HTTP response from object store */\nexport type ObjectStoreResponse =\n | {\n /**\n * Will be translated to 500 Internal Server Error by the handler\n * or 408 Request Timeout if the request was aborted\n */\n type: \"InternalError\";\n }\n | {\n /** Will be translated to 404 Not Found by the handler */\n type: \"NotFound\";\n }\n | {\n /** Will be translated to 416 Range Not Satisfiable by the handler */\n type: \"RangeNotSatisfiable\";\n /** Total file size in bytes */\n size: number;\n }\n | {\n /** Will be translated to 200 OK or 206 Partial Content by the handler */\n type: \"Ok\";\n /** Total file size in bytes */\n size: number;\n /** File range translated from HTTP range */\n range: FileRange;\n /** Stream of file content, undefined for HEAD requests */\n data?: Readable;\n };\n\n/** Common options for object store creation */\nexport interface ObjectStoreOptions {\n /** Logger instance, no logging is performed when not provided */\n logger?: Logger;\n}\n\n/** Options for file system object store creation */\nexport interface FsStoreOptions extends ObjectStoreOptions {\n /** Local directory to serve files from */\n rootDir: string;\n}\n\nexport interface ObjectStore {\n /**\n * Proxy HTTP(S) request for parquet file to object store.\n * Callback promise resolves when stream is closed by handler @see HttpHelpers.createRequestHandler\n * Callback API is used so that ObjectStore can limit the number of concurrent requests.\n */\n request(\n filename: ParquetFileName,\n params: {\n method: HttpMethod;\n range?: HttpRange;\n signal: AbortSignal;\n callback: (response: ObjectStoreResponse) => Promise<void>;\n },\n ): void;\n}\n\n/** File system abstraction for request handler factory, @see HttpHelpers.createRequestHandler */\nexport abstract class BaseObjectStore implements ObjectStore {\n protected readonly logger: Logger;\n\n constructor(options: ObjectStoreOptions) {\n this.logger = options.logger ?? (() => {});\n }\n\n /** Translate HTTP range to file range, @returns null if the range is not satisfiable */\n protected translate(fileSize: number, range?: HttpRange): FileRange | null {\n if (!range) return { start: 0, end: fileSize - 1 };\n switch (range.type) {\n case \"bounded\":\n if (range.end >= fileSize) return null;\n return { start: range.start, end: range.end };\n case \"offset\":\n if (range.offset >= fileSize) return null;\n return { start: range.offset, end: fileSize - 1 };\n case \"suffix\":\n if (range.suffix > fileSize) return null;\n return { start: fileSize - range.suffix, end: fileSize - 1 };\n }\n }\n\n /**\n * Proxy HTTP(S) request for parquet file to object store.\n * Callback promise resolves when stream is closed by handler @see HttpHelpers.createRequestHandler\n * Callback API is used so that ObjectStore can limit the number of concurrent requests.\n */\n abstract request(\n filename: ParquetFileName,\n params: {\n method: HttpMethod;\n range?: HttpRange;\n signal: AbortSignal;\n callback: (response: ObjectStoreResponse) => Promise<void>;\n },\n ): Promise<void>;\n}\n\n/** Object store base URL in format accepted by Apache DataFusion and DuckDB */\nexport type ObjectStoreUrl = Branded<string, \"PFrameInternal.ObjectStoreUrl\">;\n\n/** HTTP(S) request handler creation options */\nexport type RequestHandlerOptions = {\n /** Object store to serve files from, @see HttpHelpers.createFsStore */\n store: ObjectStore;\n /** Here will go caching options... */\n};\n\n/** Server configuration options */\nexport type HttpServerOptions = {\n /** HTTP(S) request handler function, @see HttpHelpers.createRequestHandler */\n handler: RequestListener;\n /** Port to bind to, @default 0 for auto-assignment */\n port?: number;\n /** Do not apply authorization middleware to @param handler */\n noAuth?: true;\n /** Downgrade default HTTPS server to plain HTTP, @warning use only for testing */\n noHttps?: true;\n};\n\n/**\n * Long unique opaque string for use in Bearer authorization header\n *\n * @example\n * ```ts\n * request.setHeader('Authorization', `Bearer ${authToken}`);\n * ```\n */\nexport type HttpAuthorizationToken = Branded<string, \"PFrameInternal.HttpAuthorizationToken\">;\n\n/**\n * TLS certificate in PEM format\n *\n * @example\n * ```txt\n * -----BEGIN CERTIFICATE-----\n * MIIC2zCCAcOgAwIBAgIJaVW7...\n * ...\n * ...Yf9CRK8fgnukKM7TJ\n * -----END CERTIFICATE-----\n * ```\n */\nexport type PemCertificate = Branded<string, \"PFrameInternal.PemCertificate\">;\n\n/** HTTP(S) server connection settings, {@link HttpHelpers.createHttpServer} */\nexport type HttpServerInfo = {\n /** URL of the HTTP(S) server formatted as `http{s}://<host>:<port>/` */\n url: ObjectStoreUrl;\n /** Authorization token for Bearer scheme, undefined when @see HttpServerOptions.noAuth flag is set */\n authToken?: HttpAuthorizationToken;\n /** Encoded CA certificate of HTTPS server, undefined when @see HttpServerOptions.noHttps flag is set */\n encodedCaCert?: Base64Encoded<PemCertificate>;\n};\n\n/** HTTP(S) server information and controls, @see HttpHelpers.createHttpServer */\nexport interface HttpServer {\n /** Server configuration information for initiating connections from clients */\n get info(): HttpServerInfo;\n /** Promise that resolves when the server is stopped */\n get stopped(): Promise<void>;\n /** Request server stop, returns the same promise as @see HttpServer.stopped */\n stop(): Promise<void>;\n}\n\n/** List of HTTP(S) related helper functions exposed by PFrame module */\nexport interface HttpHelpers {\n /**\n * Create an object store for serving files from a local directory.\n * Rejects if the provided path does not exist or is not a directory.\n */\n createFsStore(options: FsStoreOptions): Promise<ObjectStore>;\n\n /**\n * Create an HTTP request handler for serving files from an object store.\n * Accepts only paths of the form `/<filename>.parquet`, returns 410 otherwise.\n * Assumes that files are immutable (and sets cache headers accordingly).\n */\n createRequestHandler(options: RequestHandlerOptions): RequestListener;\n\n /**\n * Serve HTTP(S) requests using the provided handler on localhost port.\n * @returns promise that resolves when the server has stopped.\n *\n * @example\n * ```ts\n * const rootDir = '/path/to/directory/with/parquet/files';\n *\n * let store = await HttpHelpers.createFsStore({ rootDir }).catch((err: unknown) => {\n * throw new Error(`Failed to create file store for ${rootDir} - ${ensureError(err)}`);\n * });\n *\n * const server = await HttpHelpers.createHttpServer({\n * handler: HttpHelpers.createRequestHandler({ store }),\n * }).catch((err: unknown) => {\n * throw new Error(`Failed to start HTTPS server - ${ensureError(err)}`);\n * });\n *\n * const { url, authToken, encodedCaCert } = server.info;\n *\n * await server.stop();\n * ```\n */\n createHttpServer(options: HttpServerOptions): Promise<HttpServer>;\n}\n"],"names":[],"mappings":";;AAKA;AACO,MAAM,gBAAgB,GAAG;AAyHhC;MACsB,eAAe,CAAA;AAChB,IAAA,MAAM;AAEzB,IAAA,WAAA,CAAY,OAA2B,EAAA;AACrC,QAAA,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,KAAK,MAAK,EAAE,CAAC,CAAC;IAC5C;;IAGU,SAAS,CAAC,QAAgB,EAAE,KAAiB,EAAA;AACrD,QAAA,IAAI,CAAC,KAAK;YAAE,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,EAAE,QAAQ,GAAG,CAAC,EAAE;AAClD,QAAA,QAAQ,KAAK,CAAC,IAAI;AAChB,YAAA,KAAK,SAAS;AACZ,gBAAA,IAAI,KAAK,CAAC,GAAG,IAAI,QAAQ;AAAE,oBAAA,OAAO,IAAI;AACtC,gBAAA,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE;AAC/C,YAAA,KAAK,QAAQ;AACX,gBAAA,IAAI,KAAK,CAAC,MAAM,IAAI,QAAQ;AAAE,oBAAA,OAAO,IAAI;AACzC,gBAAA,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC,MAAM,EAAE,GAAG,EAAE,QAAQ,GAAG,CAAC,EAAE;AACnD,YAAA,KAAK,QAAQ;AACX,gBAAA,IAAI,KAAK,CAAC,MAAM,GAAG,QAAQ;AAAE,oBAAA,OAAO,IAAI;AACxC,gBAAA,OAAO,EAAE,KAAK,EAAE,QAAQ,GAAG,KAAK,CAAC,MAAM,EAAE,GAAG,EAAE,QAAQ,GAAG,CAAC,EAAE;;IAElE;AAgBD;;;;;"}
1
+ {"version":3,"file":"http_helpers.cjs","names":[],"sources":["../../../src/pframe/internal_api/http_helpers.ts"],"sourcesContent":["import type { Readable } from \"node:stream\";\nimport type { RequestListener } from \"node:http\";\nimport type { Branded, Base64Encoded } from \"@milaboratories/pl-model-common\";\nimport type { Logger } from \"./common\";\n\n/** Parquet file extension */\nexport const ParquetExtension = \".parquet\" as const;\n\n/** Parquet file name */\nexport type ParquetFileName = Branded<`${string}.parquet`, \"PFrameInternal.ParquetFileName\">;\n\nexport type FileRange = {\n /** Start byte position (inclusive) */\n start: number;\n /** End byte position (inclusive) */\n end: number;\n};\n\n/** HTTP range as of RFC 9110 <https://datatracker.ietf.org/doc/html/rfc9110#name-range> */\nexport type HttpRange =\n | {\n /**\n * Get file content in the specified byte range\n *\n * @example\n * ```\n * GET /file.parquet HTTP/1.1\n * Range: bytes=0-1023\n * ```\n */\n type: \"bounded\";\n /** Start byte position (inclusive) */\n start: number;\n /** End byte position (inclusive) */\n end: number;\n }\n | {\n /**\n * Get byte range starting from the specified offset\n *\n * @example\n * ```\n * GET /file.parquet HTTP/1.1\n * Range: bytes=1024-\n * ```\n */\n type: \"offset\";\n /** Start byte position (inclusive) */\n offset: number;\n }\n | {\n /**\n * Get byte range starting from the specified suffix\n *\n * @example\n * ```\n * GET /file.parquet HTTP/1.1\n * Range: bytes=-1024\n * ```\n */\n type: \"suffix\";\n /** End byte position (inclusive) */\n suffix: number;\n };\n\n/** HTTP method passed to object store */\nexport type HttpMethod = \"GET\" | \"HEAD\";\n\n/** HTTP response from object store */\nexport type ObjectStoreResponse =\n | {\n /**\n * Will be translated to 500 Internal Server Error by the handler\n * or 408 Request Timeout if the request was aborted\n */\n type: \"InternalError\";\n }\n | {\n /** Will be translated to 404 Not Found by the handler */\n type: \"NotFound\";\n }\n | {\n /** Will be translated to 416 Range Not Satisfiable by the handler */\n type: \"RangeNotSatisfiable\";\n /** Total file size in bytes */\n size: number;\n }\n | {\n /** Will be translated to 200 OK or 206 Partial Content by the handler */\n type: \"Ok\";\n /** Total file size in bytes */\n size: number;\n /** File range translated from HTTP range */\n range: FileRange;\n /** Stream of file content, undefined for HEAD requests */\n data?: Readable;\n };\n\n/** Common options for object store creation */\nexport interface ObjectStoreOptions {\n /** Logger instance, no logging is performed when not provided */\n logger?: Logger;\n}\n\n/** Options for file system object store creation */\nexport interface FsStoreOptions extends ObjectStoreOptions {\n /** Local directory to serve files from */\n rootDir: string;\n}\n\nexport interface ObjectStore {\n /**\n * Proxy HTTP(S) request for parquet file to object store.\n * Callback promise resolves when stream is closed by handler @see HttpHelpers.createRequestHandler\n * Callback API is used so that ObjectStore can limit the number of concurrent requests.\n */\n request(\n filename: ParquetFileName,\n params: {\n method: HttpMethod;\n range?: HttpRange;\n signal: AbortSignal;\n callback: (response: ObjectStoreResponse) => Promise<void>;\n },\n ): void;\n}\n\n/** File system abstraction for request handler factory, @see HttpHelpers.createRequestHandler */\nexport abstract class BaseObjectStore implements ObjectStore {\n protected readonly logger: Logger;\n\n constructor(options: ObjectStoreOptions) {\n this.logger = options.logger ?? (() => {});\n }\n\n /** Translate HTTP range to file range, @returns null if the range is not satisfiable */\n protected translate(fileSize: number, range?: HttpRange): FileRange | null {\n if (!range) return { start: 0, end: fileSize - 1 };\n switch (range.type) {\n case \"bounded\":\n if (range.end >= fileSize) return null;\n return { start: range.start, end: range.end };\n case \"offset\":\n if (range.offset >= fileSize) return null;\n return { start: range.offset, end: fileSize - 1 };\n case \"suffix\":\n if (range.suffix > fileSize) return null;\n return { start: fileSize - range.suffix, end: fileSize - 1 };\n }\n }\n\n /**\n * Proxy HTTP(S) request for parquet file to object store.\n * Callback promise resolves when stream is closed by handler @see HttpHelpers.createRequestHandler\n * Callback API is used so that ObjectStore can limit the number of concurrent requests.\n */\n abstract request(\n filename: ParquetFileName,\n params: {\n method: HttpMethod;\n range?: HttpRange;\n signal: AbortSignal;\n callback: (response: ObjectStoreResponse) => Promise<void>;\n },\n ): Promise<void>;\n}\n\n/** Object store base URL in format accepted by Apache DataFusion and DuckDB */\nexport type ObjectStoreUrl = Branded<string, \"PFrameInternal.ObjectStoreUrl\">;\n\n/** HTTP(S) request handler creation options */\nexport type RequestHandlerOptions = {\n /** Object store to serve files from, @see HttpHelpers.createFsStore */\n store: ObjectStore;\n /** Here will go caching options... */\n};\n\n/** Server configuration options */\nexport type HttpServerOptions = {\n /** HTTP(S) request handler function, @see HttpHelpers.createRequestHandler */\n handler: RequestListener;\n /** Port to bind to, @default 0 for auto-assignment */\n port?: number;\n /** Do not apply authorization middleware to @param handler */\n noAuth?: true;\n /** Downgrade default HTTPS server to plain HTTP, @warning use only for testing */\n noHttps?: true;\n};\n\n/**\n * Long unique opaque string for use in Bearer authorization header\n *\n * @example\n * ```ts\n * request.setHeader('Authorization', `Bearer ${authToken}`);\n * ```\n */\nexport type HttpAuthorizationToken = Branded<string, \"PFrameInternal.HttpAuthorizationToken\">;\n\n/**\n * TLS certificate in PEM format\n *\n * @example\n * ```txt\n * -----BEGIN CERTIFICATE-----\n * MIIC2zCCAcOgAwIBAgIJaVW7...\n * ...\n * ...Yf9CRK8fgnukKM7TJ\n * -----END CERTIFICATE-----\n * ```\n */\nexport type PemCertificate = Branded<string, \"PFrameInternal.PemCertificate\">;\n\n/** HTTP(S) server connection settings, {@link HttpHelpers.createHttpServer} */\nexport type HttpServerInfo = {\n /** URL of the HTTP(S) server formatted as `http{s}://<host>:<port>/` */\n url: ObjectStoreUrl;\n /** Authorization token for Bearer scheme, undefined when @see HttpServerOptions.noAuth flag is set */\n authToken?: HttpAuthorizationToken;\n /** Encoded CA certificate of HTTPS server, undefined when @see HttpServerOptions.noHttps flag is set */\n encodedCaCert?: Base64Encoded<PemCertificate>;\n};\n\n/** HTTP(S) server information and controls, @see HttpHelpers.createHttpServer */\nexport interface HttpServer {\n /** Server configuration information for initiating connections from clients */\n get info(): HttpServerInfo;\n /** Promise that resolves when the server is stopped */\n get stopped(): Promise<void>;\n /** Request server stop, returns the same promise as @see HttpServer.stopped */\n stop(): Promise<void>;\n}\n\n/** List of HTTP(S) related helper functions exposed by PFrame module */\nexport interface HttpHelpers {\n /**\n * Create an object store for serving files from a local directory.\n * Rejects if the provided path does not exist or is not a directory.\n */\n createFsStore(options: FsStoreOptions): Promise<ObjectStore>;\n\n /**\n * Create an HTTP request handler for serving files from an object store.\n * Accepts only paths of the form `/<filename>.parquet`, returns 410 otherwise.\n * Assumes that files are immutable (and sets cache headers accordingly).\n */\n createRequestHandler(options: RequestHandlerOptions): RequestListener;\n\n /**\n * Serve HTTP(S) requests using the provided handler on localhost port.\n * @returns promise that resolves when the server has stopped.\n *\n * @example\n * ```ts\n * const rootDir = '/path/to/directory/with/parquet/files';\n *\n * let store = await HttpHelpers.createFsStore({ rootDir }).catch((err: unknown) => {\n * throw new Error(`Failed to create file store for ${rootDir} - ${ensureError(err)}`);\n * });\n *\n * const server = await HttpHelpers.createHttpServer({\n * handler: HttpHelpers.createRequestHandler({ store }),\n * }).catch((err: unknown) => {\n * throw new Error(`Failed to start HTTPS server - ${ensureError(err)}`);\n * });\n *\n * const { url, authToken, encodedCaCert } = server.info;\n *\n * await server.stop();\n * ```\n */\n createHttpServer(options: HttpServerOptions): Promise<HttpServer>;\n}\n"],"mappings":";;;AAMA,MAAa,mBAAmB;;AA0HhC,IAAsB,kBAAtB,MAA6D;CAC3D,AAAmB;CAEnB,YAAY,SAA6B;AACvC,OAAK,SAAS,QAAQ,iBAAiB;;;CAIzC,AAAU,UAAU,UAAkB,OAAqC;AACzE,MAAI,CAAC,MAAO,QAAO;GAAE,OAAO;GAAG,KAAK,WAAW;GAAG;AAClD,UAAQ,MAAM,MAAd;GACE,KAAK;AACH,QAAI,MAAM,OAAO,SAAU,QAAO;AAClC,WAAO;KAAE,OAAO,MAAM;KAAO,KAAK,MAAM;KAAK;GAC/C,KAAK;AACH,QAAI,MAAM,UAAU,SAAU,QAAO;AACrC,WAAO;KAAE,OAAO,MAAM;KAAQ,KAAK,WAAW;KAAG;GACnD,KAAK;AACH,QAAI,MAAM,SAAS,SAAU,QAAO;AACpC,WAAO;KAAE,OAAO,WAAW,MAAM;KAAQ,KAAK,WAAW;KAAG"}
@@ -1,145 +1,129 @@
1
- import type { Readable } from "node:stream";
2
- import type { RequestListener } from "node:http";
3
- import type { Branded, Base64Encoded } from "@milaboratories/pl-model-common";
4
- import type { Logger } from "./common";
1
+ import { Logger } from "./common.js";
2
+ import { Base64Encoded, Branded } from "@milaboratories/pl-model-common";
3
+ import { Readable } from "node:stream";
4
+ import { RequestListener } from "node:http";
5
+
6
+ //#region src/pframe/internal_api/http_helpers.d.ts
5
7
  /** Parquet file extension */
6
- export declare const ParquetExtension: ".parquet";
8
+ declare const ParquetExtension: ".parquet";
7
9
  /** Parquet file name */
8
- export type ParquetFileName = Branded<`${string}.parquet`, "PFrameInternal.ParquetFileName">;
9
- export type FileRange = {
10
- /** Start byte position (inclusive) */
11
- start: number;
12
- /** End byte position (inclusive) */
13
- end: number;
10
+ type ParquetFileName = Branded<`${string}.parquet`, "PFrameInternal.ParquetFileName">;
11
+ type FileRange = {
12
+ /** Start byte position (inclusive) */start: number; /** End byte position (inclusive) */
13
+ end: number;
14
14
  };
15
15
  /** HTTP range as of RFC 9110 <https://datatracker.ietf.org/doc/html/rfc9110#name-range> */
16
- export type HttpRange = {
17
- /**
18
- * Get file content in the specified byte range
19
- *
20
- * @example
21
- * ```
22
- * GET /file.parquet HTTP/1.1
23
- * Range: bytes=0-1023
24
- * ```
25
- */
26
- type: "bounded";
27
- /** Start byte position (inclusive) */
28
- start: number;
29
- /** End byte position (inclusive) */
30
- end: number;
16
+ type HttpRange = {
17
+ /**
18
+ * Get file content in the specified byte range
19
+ *
20
+ * @example
21
+ * ```
22
+ * GET /file.parquet HTTP/1.1
23
+ * Range: bytes=0-1023
24
+ * ```
25
+ */
26
+ type: "bounded"; /** Start byte position (inclusive) */
27
+ start: number; /** End byte position (inclusive) */
28
+ end: number;
31
29
  } | {
32
- /**
33
- * Get byte range starting from the specified offset
34
- *
35
- * @example
36
- * ```
37
- * GET /file.parquet HTTP/1.1
38
- * Range: bytes=1024-
39
- * ```
40
- */
41
- type: "offset";
42
- /** Start byte position (inclusive) */
43
- offset: number;
30
+ /**
31
+ * Get byte range starting from the specified offset
32
+ *
33
+ * @example
34
+ * ```
35
+ * GET /file.parquet HTTP/1.1
36
+ * Range: bytes=1024-
37
+ * ```
38
+ */
39
+ type: "offset"; /** Start byte position (inclusive) */
40
+ offset: number;
44
41
  } | {
45
- /**
46
- * Get byte range starting from the specified suffix
47
- *
48
- * @example
49
- * ```
50
- * GET /file.parquet HTTP/1.1
51
- * Range: bytes=-1024
52
- * ```
53
- */
54
- type: "suffix";
55
- /** End byte position (inclusive) */
56
- suffix: number;
42
+ /**
43
+ * Get byte range starting from the specified suffix
44
+ *
45
+ * @example
46
+ * ```
47
+ * GET /file.parquet HTTP/1.1
48
+ * Range: bytes=-1024
49
+ * ```
50
+ */
51
+ type: "suffix"; /** End byte position (inclusive) */
52
+ suffix: number;
57
53
  };
58
54
  /** HTTP method passed to object store */
59
- export type HttpMethod = "GET" | "HEAD";
55
+ type HttpMethod = "GET" | "HEAD";
60
56
  /** HTTP response from object store */
61
- export type ObjectStoreResponse = {
62
- /**
63
- * Will be translated to 500 Internal Server Error by the handler
64
- * or 408 Request Timeout if the request was aborted
65
- */
66
- type: "InternalError";
57
+ type ObjectStoreResponse = {
58
+ /**
59
+ * Will be translated to 500 Internal Server Error by the handler
60
+ * or 408 Request Timeout if the request was aborted
61
+ */
62
+ type: "InternalError";
67
63
  } | {
68
- /** Will be translated to 404 Not Found by the handler */
69
- type: "NotFound";
64
+ /** Will be translated to 404 Not Found by the handler */type: "NotFound";
70
65
  } | {
71
- /** Will be translated to 416 Range Not Satisfiable by the handler */
72
- type: "RangeNotSatisfiable";
73
- /** Total file size in bytes */
74
- size: number;
66
+ /** Will be translated to 416 Range Not Satisfiable by the handler */type: "RangeNotSatisfiable"; /** Total file size in bytes */
67
+ size: number;
75
68
  } | {
76
- /** Will be translated to 200 OK or 206 Partial Content by the handler */
77
- type: "Ok";
78
- /** Total file size in bytes */
79
- size: number;
80
- /** File range translated from HTTP range */
81
- range: FileRange;
82
- /** Stream of file content, undefined for HEAD requests */
83
- data?: Readable;
69
+ /** Will be translated to 200 OK or 206 Partial Content by the handler */type: "Ok"; /** Total file size in bytes */
70
+ size: number; /** File range translated from HTTP range */
71
+ range: FileRange; /** Stream of file content, undefined for HEAD requests */
72
+ data?: Readable;
84
73
  };
85
74
  /** Common options for object store creation */
86
- export interface ObjectStoreOptions {
87
- /** Logger instance, no logging is performed when not provided */
88
- logger?: Logger;
75
+ interface ObjectStoreOptions {
76
+ /** Logger instance, no logging is performed when not provided */
77
+ logger?: Logger;
89
78
  }
90
79
  /** Options for file system object store creation */
91
- export interface FsStoreOptions extends ObjectStoreOptions {
92
- /** Local directory to serve files from */
93
- rootDir: string;
80
+ interface FsStoreOptions extends ObjectStoreOptions {
81
+ /** Local directory to serve files from */
82
+ rootDir: string;
94
83
  }
95
- export interface ObjectStore {
96
- /**
97
- * Proxy HTTP(S) request for parquet file to object store.
98
- * Callback promise resolves when stream is closed by handler @see HttpHelpers.createRequestHandler
99
- * Callback API is used so that ObjectStore can limit the number of concurrent requests.
100
- */
101
- request(filename: ParquetFileName, params: {
102
- method: HttpMethod;
103
- range?: HttpRange;
104
- signal: AbortSignal;
105
- callback: (response: ObjectStoreResponse) => Promise<void>;
106
- }): void;
84
+ interface ObjectStore {
85
+ /**
86
+ * Proxy HTTP(S) request for parquet file to object store.
87
+ * Callback promise resolves when stream is closed by handler @see HttpHelpers.createRequestHandler
88
+ * Callback API is used so that ObjectStore can limit the number of concurrent requests.
89
+ */
90
+ request(filename: ParquetFileName, params: {
91
+ method: HttpMethod;
92
+ range?: HttpRange;
93
+ signal: AbortSignal;
94
+ callback: (response: ObjectStoreResponse) => Promise<void>;
95
+ }): void;
107
96
  }
108
97
  /** File system abstraction for request handler factory, @see HttpHelpers.createRequestHandler */
109
- export declare abstract class BaseObjectStore implements ObjectStore {
110
- protected readonly logger: Logger;
111
- constructor(options: ObjectStoreOptions);
112
- /** Translate HTTP range to file range, @returns null if the range is not satisfiable */
113
- protected translate(fileSize: number, range?: HttpRange): FileRange | null;
114
- /**
115
- * Proxy HTTP(S) request for parquet file to object store.
116
- * Callback promise resolves when stream is closed by handler @see HttpHelpers.createRequestHandler
117
- * Callback API is used so that ObjectStore can limit the number of concurrent requests.
118
- */
119
- abstract request(filename: ParquetFileName, params: {
120
- method: HttpMethod;
121
- range?: HttpRange;
122
- signal: AbortSignal;
123
- callback: (response: ObjectStoreResponse) => Promise<void>;
124
- }): Promise<void>;
98
+ declare abstract class BaseObjectStore implements ObjectStore {
99
+ protected readonly logger: Logger;
100
+ constructor(options: ObjectStoreOptions);
101
+ /** Translate HTTP range to file range, @returns null if the range is not satisfiable */
102
+ protected translate(fileSize: number, range?: HttpRange): FileRange | null;
103
+ /**
104
+ * Proxy HTTP(S) request for parquet file to object store.
105
+ * Callback promise resolves when stream is closed by handler @see HttpHelpers.createRequestHandler
106
+ * Callback API is used so that ObjectStore can limit the number of concurrent requests.
107
+ */
108
+ abstract request(filename: ParquetFileName, params: {
109
+ method: HttpMethod;
110
+ range?: HttpRange;
111
+ signal: AbortSignal;
112
+ callback: (response: ObjectStoreResponse) => Promise<void>;
113
+ }): Promise<void>;
125
114
  }
126
115
  /** Object store base URL in format accepted by Apache DataFusion and DuckDB */
127
- export type ObjectStoreUrl = Branded<string, "PFrameInternal.ObjectStoreUrl">;
116
+ type ObjectStoreUrl = Branded<string, "PFrameInternal.ObjectStoreUrl">;
128
117
  /** HTTP(S) request handler creation options */
129
- export type RequestHandlerOptions = {
130
- /** Object store to serve files from, @see HttpHelpers.createFsStore */
131
- store: ObjectStore;
118
+ type RequestHandlerOptions = {
119
+ /** Object store to serve files from, @see HttpHelpers.createFsStore */store: ObjectStore;
132
120
  };
133
121
  /** Server configuration options */
134
- export type HttpServerOptions = {
135
- /** HTTP(S) request handler function, @see HttpHelpers.createRequestHandler */
136
- handler: RequestListener;
137
- /** Port to bind to, @default 0 for auto-assignment */
138
- port?: number;
139
- /** Do not apply authorization middleware to @param handler */
140
- noAuth?: true;
141
- /** Downgrade default HTTPS server to plain HTTP, @warning use only for testing */
142
- noHttps?: true;
122
+ type HttpServerOptions = {
123
+ /** HTTP(S) request handler function, @see HttpHelpers.createRequestHandler */handler: RequestListener; /** Port to bind to, @default 0 for auto-assignment */
124
+ port?: number; /** Do not apply authorization middleware to @param handler */
125
+ noAuth?: true; /** Downgrade default HTTPS server to plain HTTP, @warning use only for testing */
126
+ noHttps?: true;
143
127
  };
144
128
  /**
145
129
  * Long unique opaque string for use in Bearer authorization header
@@ -149,7 +133,7 @@ export type HttpServerOptions = {
149
133
  * request.setHeader('Authorization', `Bearer ${authToken}`);
150
134
  * ```
151
135
  */
152
- export type HttpAuthorizationToken = Branded<string, "PFrameInternal.HttpAuthorizationToken">;
136
+ type HttpAuthorizationToken = Branded<string, "PFrameInternal.HttpAuthorizationToken">;
153
137
  /**
154
138
  * TLS certificate in PEM format
155
139
  *
@@ -162,61 +146,60 @@ export type HttpAuthorizationToken = Branded<string, "PFrameInternal.HttpAuthori
162
146
  * -----END CERTIFICATE-----
163
147
  * ```
164
148
  */
165
- export type PemCertificate = Branded<string, "PFrameInternal.PemCertificate">;
149
+ type PemCertificate = Branded<string, "PFrameInternal.PemCertificate">;
166
150
  /** HTTP(S) server connection settings, {@link HttpHelpers.createHttpServer} */
167
- export type HttpServerInfo = {
168
- /** URL of the HTTP(S) server formatted as `http{s}://<host>:<port>/` */
169
- url: ObjectStoreUrl;
170
- /** Authorization token for Bearer scheme, undefined when @see HttpServerOptions.noAuth flag is set */
171
- authToken?: HttpAuthorizationToken;
172
- /** Encoded CA certificate of HTTPS server, undefined when @see HttpServerOptions.noHttps flag is set */
173
- encodedCaCert?: Base64Encoded<PemCertificate>;
151
+ type HttpServerInfo = {
152
+ /** URL of the HTTP(S) server formatted as `http{s}://<host>:<port>/` */url: ObjectStoreUrl; /** Authorization token for Bearer scheme, undefined when @see HttpServerOptions.noAuth flag is set */
153
+ authToken?: HttpAuthorizationToken; /** Encoded CA certificate of HTTPS server, undefined when @see HttpServerOptions.noHttps flag is set */
154
+ encodedCaCert?: Base64Encoded<PemCertificate>;
174
155
  };
175
156
  /** HTTP(S) server information and controls, @see HttpHelpers.createHttpServer */
176
- export interface HttpServer {
177
- /** Server configuration information for initiating connections from clients */
178
- get info(): HttpServerInfo;
179
- /** Promise that resolves when the server is stopped */
180
- get stopped(): Promise<void>;
181
- /** Request server stop, returns the same promise as @see HttpServer.stopped */
182
- stop(): Promise<void>;
157
+ interface HttpServer {
158
+ /** Server configuration information for initiating connections from clients */
159
+ get info(): HttpServerInfo;
160
+ /** Promise that resolves when the server is stopped */
161
+ get stopped(): Promise<void>;
162
+ /** Request server stop, returns the same promise as @see HttpServer.stopped */
163
+ stop(): Promise<void>;
183
164
  }
184
165
  /** List of HTTP(S) related helper functions exposed by PFrame module */
185
- export interface HttpHelpers {
186
- /**
187
- * Create an object store for serving files from a local directory.
188
- * Rejects if the provided path does not exist or is not a directory.
189
- */
190
- createFsStore(options: FsStoreOptions): Promise<ObjectStore>;
191
- /**
192
- * Create an HTTP request handler for serving files from an object store.
193
- * Accepts only paths of the form `/<filename>.parquet`, returns 410 otherwise.
194
- * Assumes that files are immutable (and sets cache headers accordingly).
195
- */
196
- createRequestHandler(options: RequestHandlerOptions): RequestListener;
197
- /**
198
- * Serve HTTP(S) requests using the provided handler on localhost port.
199
- * @returns promise that resolves when the server has stopped.
200
- *
201
- * @example
202
- * ```ts
203
- * const rootDir = '/path/to/directory/with/parquet/files';
204
- *
205
- * let store = await HttpHelpers.createFsStore({ rootDir }).catch((err: unknown) => {
206
- * throw new Error(`Failed to create file store for ${rootDir} - ${ensureError(err)}`);
207
- * });
208
- *
209
- * const server = await HttpHelpers.createHttpServer({
210
- * handler: HttpHelpers.createRequestHandler({ store }),
211
- * }).catch((err: unknown) => {
212
- * throw new Error(`Failed to start HTTPS server - ${ensureError(err)}`);
213
- * });
214
- *
215
- * const { url, authToken, encodedCaCert } = server.info;
216
- *
217
- * await server.stop();
218
- * ```
219
- */
220
- createHttpServer(options: HttpServerOptions): Promise<HttpServer>;
166
+ interface HttpHelpers {
167
+ /**
168
+ * Create an object store for serving files from a local directory.
169
+ * Rejects if the provided path does not exist or is not a directory.
170
+ */
171
+ createFsStore(options: FsStoreOptions): Promise<ObjectStore>;
172
+ /**
173
+ * Create an HTTP request handler for serving files from an object store.
174
+ * Accepts only paths of the form `/<filename>.parquet`, returns 410 otherwise.
175
+ * Assumes that files are immutable (and sets cache headers accordingly).
176
+ */
177
+ createRequestHandler(options: RequestHandlerOptions): RequestListener;
178
+ /**
179
+ * Serve HTTP(S) requests using the provided handler on localhost port.
180
+ * @returns promise that resolves when the server has stopped.
181
+ *
182
+ * @example
183
+ * ```ts
184
+ * const rootDir = '/path/to/directory/with/parquet/files';
185
+ *
186
+ * let store = await HttpHelpers.createFsStore({ rootDir }).catch((err: unknown) => {
187
+ * throw new Error(`Failed to create file store for ${rootDir} - ${ensureError(err)}`);
188
+ * });
189
+ *
190
+ * const server = await HttpHelpers.createHttpServer({
191
+ * handler: HttpHelpers.createRequestHandler({ store }),
192
+ * }).catch((err: unknown) => {
193
+ * throw new Error(`Failed to start HTTPS server - ${ensureError(err)}`);
194
+ * });
195
+ *
196
+ * const { url, authToken, encodedCaCert } = server.info;
197
+ *
198
+ * await server.stop();
199
+ * ```
200
+ */
201
+ createHttpServer(options: HttpServerOptions): Promise<HttpServer>;
221
202
  }
203
+ //#endregion
204
+ export { BaseObjectStore, FileRange, FsStoreOptions, HttpAuthorizationToken, HttpHelpers, HttpMethod, HttpRange, HttpServer, HttpServerInfo, HttpServerOptions, ObjectStore, ObjectStoreOptions, ObjectStoreResponse, ObjectStoreUrl, ParquetExtension, ParquetFileName, PemCertificate, RequestHandlerOptions };
222
205
  //# sourceMappingURL=http_helpers.d.ts.map
@@ -1,31 +1,41 @@
1
+ //#region src/pframe/internal_api/http_helpers.ts
1
2
  /** Parquet file extension */
2
3
  const ParquetExtension = ".parquet";
3
4
  /** File system abstraction for request handler factory, @see HttpHelpers.createRequestHandler */
4
- class BaseObjectStore {
5
- logger;
6
- constructor(options) {
7
- this.logger = options.logger ?? (() => { });
8
- }
9
- /** Translate HTTP range to file range, @returns null if the range is not satisfiable */
10
- translate(fileSize, range) {
11
- if (!range)
12
- return { start: 0, end: fileSize - 1 };
13
- switch (range.type) {
14
- case "bounded":
15
- if (range.end >= fileSize)
16
- return null;
17
- return { start: range.start, end: range.end };
18
- case "offset":
19
- if (range.offset >= fileSize)
20
- return null;
21
- return { start: range.offset, end: fileSize - 1 };
22
- case "suffix":
23
- if (range.suffix > fileSize)
24
- return null;
25
- return { start: fileSize - range.suffix, end: fileSize - 1 };
26
- }
27
- }
28
- }
5
+ var BaseObjectStore = class {
6
+ logger;
7
+ constructor(options) {
8
+ this.logger = options.logger ?? (() => {});
9
+ }
10
+ /** Translate HTTP range to file range, @returns null if the range is not satisfiable */
11
+ translate(fileSize, range) {
12
+ if (!range) return {
13
+ start: 0,
14
+ end: fileSize - 1
15
+ };
16
+ switch (range.type) {
17
+ case "bounded":
18
+ if (range.end >= fileSize) return null;
19
+ return {
20
+ start: range.start,
21
+ end: range.end
22
+ };
23
+ case "offset":
24
+ if (range.offset >= fileSize) return null;
25
+ return {
26
+ start: range.offset,
27
+ end: fileSize - 1
28
+ };
29
+ case "suffix":
30
+ if (range.suffix > fileSize) return null;
31
+ return {
32
+ start: fileSize - range.suffix,
33
+ end: fileSize - 1
34
+ };
35
+ }
36
+ }
37
+ };
29
38
 
39
+ //#endregion
30
40
  export { BaseObjectStore, ParquetExtension };
31
- //# sourceMappingURL=http_helpers.js.map
41
+ //# sourceMappingURL=http_helpers.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"http_helpers.js","sources":["../../../src/pframe/internal_api/http_helpers.ts"],"sourcesContent":["import type { Readable } from \"node:stream\";\nimport type { RequestListener } from \"node:http\";\nimport type { Branded, Base64Encoded } from \"@milaboratories/pl-model-common\";\nimport type { Logger } from \"./common\";\n\n/** Parquet file extension */\nexport const ParquetExtension = \".parquet\" as const;\n\n/** Parquet file name */\nexport type ParquetFileName = Branded<`${string}.parquet`, \"PFrameInternal.ParquetFileName\">;\n\nexport type FileRange = {\n /** Start byte position (inclusive) */\n start: number;\n /** End byte position (inclusive) */\n end: number;\n};\n\n/** HTTP range as of RFC 9110 <https://datatracker.ietf.org/doc/html/rfc9110#name-range> */\nexport type HttpRange =\n | {\n /**\n * Get file content in the specified byte range\n *\n * @example\n * ```\n * GET /file.parquet HTTP/1.1\n * Range: bytes=0-1023\n * ```\n */\n type: \"bounded\";\n /** Start byte position (inclusive) */\n start: number;\n /** End byte position (inclusive) */\n end: number;\n }\n | {\n /**\n * Get byte range starting from the specified offset\n *\n * @example\n * ```\n * GET /file.parquet HTTP/1.1\n * Range: bytes=1024-\n * ```\n */\n type: \"offset\";\n /** Start byte position (inclusive) */\n offset: number;\n }\n | {\n /**\n * Get byte range starting from the specified suffix\n *\n * @example\n * ```\n * GET /file.parquet HTTP/1.1\n * Range: bytes=-1024\n * ```\n */\n type: \"suffix\";\n /** End byte position (inclusive) */\n suffix: number;\n };\n\n/** HTTP method passed to object store */\nexport type HttpMethod = \"GET\" | \"HEAD\";\n\n/** HTTP response from object store */\nexport type ObjectStoreResponse =\n | {\n /**\n * Will be translated to 500 Internal Server Error by the handler\n * or 408 Request Timeout if the request was aborted\n */\n type: \"InternalError\";\n }\n | {\n /** Will be translated to 404 Not Found by the handler */\n type: \"NotFound\";\n }\n | {\n /** Will be translated to 416 Range Not Satisfiable by the handler */\n type: \"RangeNotSatisfiable\";\n /** Total file size in bytes */\n size: number;\n }\n | {\n /** Will be translated to 200 OK or 206 Partial Content by the handler */\n type: \"Ok\";\n /** Total file size in bytes */\n size: number;\n /** File range translated from HTTP range */\n range: FileRange;\n /** Stream of file content, undefined for HEAD requests */\n data?: Readable;\n };\n\n/** Common options for object store creation */\nexport interface ObjectStoreOptions {\n /** Logger instance, no logging is performed when not provided */\n logger?: Logger;\n}\n\n/** Options for file system object store creation */\nexport interface FsStoreOptions extends ObjectStoreOptions {\n /** Local directory to serve files from */\n rootDir: string;\n}\n\nexport interface ObjectStore {\n /**\n * Proxy HTTP(S) request for parquet file to object store.\n * Callback promise resolves when stream is closed by handler @see HttpHelpers.createRequestHandler\n * Callback API is used so that ObjectStore can limit the number of concurrent requests.\n */\n request(\n filename: ParquetFileName,\n params: {\n method: HttpMethod;\n range?: HttpRange;\n signal: AbortSignal;\n callback: (response: ObjectStoreResponse) => Promise<void>;\n },\n ): void;\n}\n\n/** File system abstraction for request handler factory, @see HttpHelpers.createRequestHandler */\nexport abstract class BaseObjectStore implements ObjectStore {\n protected readonly logger: Logger;\n\n constructor(options: ObjectStoreOptions) {\n this.logger = options.logger ?? (() => {});\n }\n\n /** Translate HTTP range to file range, @returns null if the range is not satisfiable */\n protected translate(fileSize: number, range?: HttpRange): FileRange | null {\n if (!range) return { start: 0, end: fileSize - 1 };\n switch (range.type) {\n case \"bounded\":\n if (range.end >= fileSize) return null;\n return { start: range.start, end: range.end };\n case \"offset\":\n if (range.offset >= fileSize) return null;\n return { start: range.offset, end: fileSize - 1 };\n case \"suffix\":\n if (range.suffix > fileSize) return null;\n return { start: fileSize - range.suffix, end: fileSize - 1 };\n }\n }\n\n /**\n * Proxy HTTP(S) request for parquet file to object store.\n * Callback promise resolves when stream is closed by handler @see HttpHelpers.createRequestHandler\n * Callback API is used so that ObjectStore can limit the number of concurrent requests.\n */\n abstract request(\n filename: ParquetFileName,\n params: {\n method: HttpMethod;\n range?: HttpRange;\n signal: AbortSignal;\n callback: (response: ObjectStoreResponse) => Promise<void>;\n },\n ): Promise<void>;\n}\n\n/** Object store base URL in format accepted by Apache DataFusion and DuckDB */\nexport type ObjectStoreUrl = Branded<string, \"PFrameInternal.ObjectStoreUrl\">;\n\n/** HTTP(S) request handler creation options */\nexport type RequestHandlerOptions = {\n /** Object store to serve files from, @see HttpHelpers.createFsStore */\n store: ObjectStore;\n /** Here will go caching options... */\n};\n\n/** Server configuration options */\nexport type HttpServerOptions = {\n /** HTTP(S) request handler function, @see HttpHelpers.createRequestHandler */\n handler: RequestListener;\n /** Port to bind to, @default 0 for auto-assignment */\n port?: number;\n /** Do not apply authorization middleware to @param handler */\n noAuth?: true;\n /** Downgrade default HTTPS server to plain HTTP, @warning use only for testing */\n noHttps?: true;\n};\n\n/**\n * Long unique opaque string for use in Bearer authorization header\n *\n * @example\n * ```ts\n * request.setHeader('Authorization', `Bearer ${authToken}`);\n * ```\n */\nexport type HttpAuthorizationToken = Branded<string, \"PFrameInternal.HttpAuthorizationToken\">;\n\n/**\n * TLS certificate in PEM format\n *\n * @example\n * ```txt\n * -----BEGIN CERTIFICATE-----\n * MIIC2zCCAcOgAwIBAgIJaVW7...\n * ...\n * ...Yf9CRK8fgnukKM7TJ\n * -----END CERTIFICATE-----\n * ```\n */\nexport type PemCertificate = Branded<string, \"PFrameInternal.PemCertificate\">;\n\n/** HTTP(S) server connection settings, {@link HttpHelpers.createHttpServer} */\nexport type HttpServerInfo = {\n /** URL of the HTTP(S) server formatted as `http{s}://<host>:<port>/` */\n url: ObjectStoreUrl;\n /** Authorization token for Bearer scheme, undefined when @see HttpServerOptions.noAuth flag is set */\n authToken?: HttpAuthorizationToken;\n /** Encoded CA certificate of HTTPS server, undefined when @see HttpServerOptions.noHttps flag is set */\n encodedCaCert?: Base64Encoded<PemCertificate>;\n};\n\n/** HTTP(S) server information and controls, @see HttpHelpers.createHttpServer */\nexport interface HttpServer {\n /** Server configuration information for initiating connections from clients */\n get info(): HttpServerInfo;\n /** Promise that resolves when the server is stopped */\n get stopped(): Promise<void>;\n /** Request server stop, returns the same promise as @see HttpServer.stopped */\n stop(): Promise<void>;\n}\n\n/** List of HTTP(S) related helper functions exposed by PFrame module */\nexport interface HttpHelpers {\n /**\n * Create an object store for serving files from a local directory.\n * Rejects if the provided path does not exist or is not a directory.\n */\n createFsStore(options: FsStoreOptions): Promise<ObjectStore>;\n\n /**\n * Create an HTTP request handler for serving files from an object store.\n * Accepts only paths of the form `/<filename>.parquet`, returns 410 otherwise.\n * Assumes that files are immutable (and sets cache headers accordingly).\n */\n createRequestHandler(options: RequestHandlerOptions): RequestListener;\n\n /**\n * Serve HTTP(S) requests using the provided handler on localhost port.\n * @returns promise that resolves when the server has stopped.\n *\n * @example\n * ```ts\n * const rootDir = '/path/to/directory/with/parquet/files';\n *\n * let store = await HttpHelpers.createFsStore({ rootDir }).catch((err: unknown) => {\n * throw new Error(`Failed to create file store for ${rootDir} - ${ensureError(err)}`);\n * });\n *\n * const server = await HttpHelpers.createHttpServer({\n * handler: HttpHelpers.createRequestHandler({ store }),\n * }).catch((err: unknown) => {\n * throw new Error(`Failed to start HTTPS server - ${ensureError(err)}`);\n * });\n *\n * const { url, authToken, encodedCaCert } = server.info;\n *\n * await server.stop();\n * ```\n */\n createHttpServer(options: HttpServerOptions): Promise<HttpServer>;\n}\n"],"names":[],"mappings":"AAKA;AACO,MAAM,gBAAgB,GAAG;AAyHhC;MACsB,eAAe,CAAA;AAChB,IAAA,MAAM;AAEzB,IAAA,WAAA,CAAY,OAA2B,EAAA;AACrC,QAAA,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,KAAK,MAAK,EAAE,CAAC,CAAC;IAC5C;;IAGU,SAAS,CAAC,QAAgB,EAAE,KAAiB,EAAA;AACrD,QAAA,IAAI,CAAC,KAAK;YAAE,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,EAAE,QAAQ,GAAG,CAAC,EAAE;AAClD,QAAA,QAAQ,KAAK,CAAC,IAAI;AAChB,YAAA,KAAK,SAAS;AACZ,gBAAA,IAAI,KAAK,CAAC,GAAG,IAAI,QAAQ;AAAE,oBAAA,OAAO,IAAI;AACtC,gBAAA,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE;AAC/C,YAAA,KAAK,QAAQ;AACX,gBAAA,IAAI,KAAK,CAAC,MAAM,IAAI,QAAQ;AAAE,oBAAA,OAAO,IAAI;AACzC,gBAAA,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC,MAAM,EAAE,GAAG,EAAE,QAAQ,GAAG,CAAC,EAAE;AACnD,YAAA,KAAK,QAAQ;AACX,gBAAA,IAAI,KAAK,CAAC,MAAM,GAAG,QAAQ;AAAE,oBAAA,OAAO,IAAI;AACxC,gBAAA,OAAO,EAAE,KAAK,EAAE,QAAQ,GAAG,KAAK,CAAC,MAAM,EAAE,GAAG,EAAE,QAAQ,GAAG,CAAC,EAAE;;IAElE;AAgBD;;;;"}
1
+ {"version":3,"file":"http_helpers.js","names":[],"sources":["../../../src/pframe/internal_api/http_helpers.ts"],"sourcesContent":["import type { Readable } from \"node:stream\";\nimport type { RequestListener } from \"node:http\";\nimport type { Branded, Base64Encoded } from \"@milaboratories/pl-model-common\";\nimport type { Logger } from \"./common\";\n\n/** Parquet file extension */\nexport const ParquetExtension = \".parquet\" as const;\n\n/** Parquet file name */\nexport type ParquetFileName = Branded<`${string}.parquet`, \"PFrameInternal.ParquetFileName\">;\n\nexport type FileRange = {\n /** Start byte position (inclusive) */\n start: number;\n /** End byte position (inclusive) */\n end: number;\n};\n\n/** HTTP range as of RFC 9110 <https://datatracker.ietf.org/doc/html/rfc9110#name-range> */\nexport type HttpRange =\n | {\n /**\n * Get file content in the specified byte range\n *\n * @example\n * ```\n * GET /file.parquet HTTP/1.1\n * Range: bytes=0-1023\n * ```\n */\n type: \"bounded\";\n /** Start byte position (inclusive) */\n start: number;\n /** End byte position (inclusive) */\n end: number;\n }\n | {\n /**\n * Get byte range starting from the specified offset\n *\n * @example\n * ```\n * GET /file.parquet HTTP/1.1\n * Range: bytes=1024-\n * ```\n */\n type: \"offset\";\n /** Start byte position (inclusive) */\n offset: number;\n }\n | {\n /**\n * Get byte range starting from the specified suffix\n *\n * @example\n * ```\n * GET /file.parquet HTTP/1.1\n * Range: bytes=-1024\n * ```\n */\n type: \"suffix\";\n /** End byte position (inclusive) */\n suffix: number;\n };\n\n/** HTTP method passed to object store */\nexport type HttpMethod = \"GET\" | \"HEAD\";\n\n/** HTTP response from object store */\nexport type ObjectStoreResponse =\n | {\n /**\n * Will be translated to 500 Internal Server Error by the handler\n * or 408 Request Timeout if the request was aborted\n */\n type: \"InternalError\";\n }\n | {\n /** Will be translated to 404 Not Found by the handler */\n type: \"NotFound\";\n }\n | {\n /** Will be translated to 416 Range Not Satisfiable by the handler */\n type: \"RangeNotSatisfiable\";\n /** Total file size in bytes */\n size: number;\n }\n | {\n /** Will be translated to 200 OK or 206 Partial Content by the handler */\n type: \"Ok\";\n /** Total file size in bytes */\n size: number;\n /** File range translated from HTTP range */\n range: FileRange;\n /** Stream of file content, undefined for HEAD requests */\n data?: Readable;\n };\n\n/** Common options for object store creation */\nexport interface ObjectStoreOptions {\n /** Logger instance, no logging is performed when not provided */\n logger?: Logger;\n}\n\n/** Options for file system object store creation */\nexport interface FsStoreOptions extends ObjectStoreOptions {\n /** Local directory to serve files from */\n rootDir: string;\n}\n\nexport interface ObjectStore {\n /**\n * Proxy HTTP(S) request for parquet file to object store.\n * Callback promise resolves when stream is closed by handler @see HttpHelpers.createRequestHandler\n * Callback API is used so that ObjectStore can limit the number of concurrent requests.\n */\n request(\n filename: ParquetFileName,\n params: {\n method: HttpMethod;\n range?: HttpRange;\n signal: AbortSignal;\n callback: (response: ObjectStoreResponse) => Promise<void>;\n },\n ): void;\n}\n\n/** File system abstraction for request handler factory, @see HttpHelpers.createRequestHandler */\nexport abstract class BaseObjectStore implements ObjectStore {\n protected readonly logger: Logger;\n\n constructor(options: ObjectStoreOptions) {\n this.logger = options.logger ?? (() => {});\n }\n\n /** Translate HTTP range to file range, @returns null if the range is not satisfiable */\n protected translate(fileSize: number, range?: HttpRange): FileRange | null {\n if (!range) return { start: 0, end: fileSize - 1 };\n switch (range.type) {\n case \"bounded\":\n if (range.end >= fileSize) return null;\n return { start: range.start, end: range.end };\n case \"offset\":\n if (range.offset >= fileSize) return null;\n return { start: range.offset, end: fileSize - 1 };\n case \"suffix\":\n if (range.suffix > fileSize) return null;\n return { start: fileSize - range.suffix, end: fileSize - 1 };\n }\n }\n\n /**\n * Proxy HTTP(S) request for parquet file to object store.\n * Callback promise resolves when stream is closed by handler @see HttpHelpers.createRequestHandler\n * Callback API is used so that ObjectStore can limit the number of concurrent requests.\n */\n abstract request(\n filename: ParquetFileName,\n params: {\n method: HttpMethod;\n range?: HttpRange;\n signal: AbortSignal;\n callback: (response: ObjectStoreResponse) => Promise<void>;\n },\n ): Promise<void>;\n}\n\n/** Object store base URL in format accepted by Apache DataFusion and DuckDB */\nexport type ObjectStoreUrl = Branded<string, \"PFrameInternal.ObjectStoreUrl\">;\n\n/** HTTP(S) request handler creation options */\nexport type RequestHandlerOptions = {\n /** Object store to serve files from, @see HttpHelpers.createFsStore */\n store: ObjectStore;\n /** Here will go caching options... */\n};\n\n/** Server configuration options */\nexport type HttpServerOptions = {\n /** HTTP(S) request handler function, @see HttpHelpers.createRequestHandler */\n handler: RequestListener;\n /** Port to bind to, @default 0 for auto-assignment */\n port?: number;\n /** Do not apply authorization middleware to @param handler */\n noAuth?: true;\n /** Downgrade default HTTPS server to plain HTTP, @warning use only for testing */\n noHttps?: true;\n};\n\n/**\n * Long unique opaque string for use in Bearer authorization header\n *\n * @example\n * ```ts\n * request.setHeader('Authorization', `Bearer ${authToken}`);\n * ```\n */\nexport type HttpAuthorizationToken = Branded<string, \"PFrameInternal.HttpAuthorizationToken\">;\n\n/**\n * TLS certificate in PEM format\n *\n * @example\n * ```txt\n * -----BEGIN CERTIFICATE-----\n * MIIC2zCCAcOgAwIBAgIJaVW7...\n * ...\n * ...Yf9CRK8fgnukKM7TJ\n * -----END CERTIFICATE-----\n * ```\n */\nexport type PemCertificate = Branded<string, \"PFrameInternal.PemCertificate\">;\n\n/** HTTP(S) server connection settings, {@link HttpHelpers.createHttpServer} */\nexport type HttpServerInfo = {\n /** URL of the HTTP(S) server formatted as `http{s}://<host>:<port>/` */\n url: ObjectStoreUrl;\n /** Authorization token for Bearer scheme, undefined when @see HttpServerOptions.noAuth flag is set */\n authToken?: HttpAuthorizationToken;\n /** Encoded CA certificate of HTTPS server, undefined when @see HttpServerOptions.noHttps flag is set */\n encodedCaCert?: Base64Encoded<PemCertificate>;\n};\n\n/** HTTP(S) server information and controls, @see HttpHelpers.createHttpServer */\nexport interface HttpServer {\n /** Server configuration information for initiating connections from clients */\n get info(): HttpServerInfo;\n /** Promise that resolves when the server is stopped */\n get stopped(): Promise<void>;\n /** Request server stop, returns the same promise as @see HttpServer.stopped */\n stop(): Promise<void>;\n}\n\n/** List of HTTP(S) related helper functions exposed by PFrame module */\nexport interface HttpHelpers {\n /**\n * Create an object store for serving files from a local directory.\n * Rejects if the provided path does not exist or is not a directory.\n */\n createFsStore(options: FsStoreOptions): Promise<ObjectStore>;\n\n /**\n * Create an HTTP request handler for serving files from an object store.\n * Accepts only paths of the form `/<filename>.parquet`, returns 410 otherwise.\n * Assumes that files are immutable (and sets cache headers accordingly).\n */\n createRequestHandler(options: RequestHandlerOptions): RequestListener;\n\n /**\n * Serve HTTP(S) requests using the provided handler on localhost port.\n * @returns promise that resolves when the server has stopped.\n *\n * @example\n * ```ts\n * const rootDir = '/path/to/directory/with/parquet/files';\n *\n * let store = await HttpHelpers.createFsStore({ rootDir }).catch((err: unknown) => {\n * throw new Error(`Failed to create file store for ${rootDir} - ${ensureError(err)}`);\n * });\n *\n * const server = await HttpHelpers.createHttpServer({\n * handler: HttpHelpers.createRequestHandler({ store }),\n * }).catch((err: unknown) => {\n * throw new Error(`Failed to start HTTPS server - ${ensureError(err)}`);\n * });\n *\n * const { url, authToken, encodedCaCert } = server.info;\n *\n * await server.stop();\n * ```\n */\n createHttpServer(options: HttpServerOptions): Promise<HttpServer>;\n}\n"],"mappings":";;AAMA,MAAa,mBAAmB;;AA0HhC,IAAsB,kBAAtB,MAA6D;CAC3D,AAAmB;CAEnB,YAAY,SAA6B;AACvC,OAAK,SAAS,QAAQ,iBAAiB;;;CAIzC,AAAU,UAAU,UAAkB,OAAqC;AACzE,MAAI,CAAC,MAAO,QAAO;GAAE,OAAO;GAAG,KAAK,WAAW;GAAG;AAClD,UAAQ,MAAM,MAAd;GACE,KAAK;AACH,QAAI,MAAM,OAAO,SAAU,QAAO;AAClC,WAAO;KAAE,OAAO,MAAM;KAAO,KAAK,MAAM;KAAK;GAC/C,KAAK;AACH,QAAI,MAAM,UAAU,SAAU,QAAO;AACrC,WAAO;KAAE,OAAO,MAAM;KAAQ,KAAK,WAAW;KAAG;GACnD,KAAK;AACH,QAAI,MAAM,SAAS,SAAU,QAAO;AACpC,WAAO;KAAE,OAAO,WAAW,MAAM;KAAQ,KAAK,WAAW;KAAG"}
@@ -1,12 +1,20 @@
1
- 'use strict';
1
+ const require_runtime = require('../../_virtual/_rolldown/runtime.cjs');
2
+ const require_api_factory = require('./api_factory.cjs');
3
+ const require_http_helpers = require('./http_helpers.cjs');
2
4
 
3
- var api_factory = require('./api_factory.cjs');
4
- var http_helpers = require('./http_helpers.cjs');
5
+ //#region src/pframe/internal_api/index.ts
6
+ var internal_api_exports = /* @__PURE__ */ require_runtime.__exportAll({
7
+ BaseObjectStore: () => require_http_helpers.BaseObjectStore,
8
+ DataInfoExtension: () => require_api_factory.DataInfoExtension,
9
+ ParquetExtension: () => require_http_helpers.ParquetExtension,
10
+ SpecExtension: () => require_api_factory.SpecExtension
11
+ });
5
12
 
6
-
7
-
8
- exports.DataInfoExtension = api_factory.DataInfoExtension;
9
- exports.SpecExtension = api_factory.SpecExtension;
10
- exports.BaseObjectStore = http_helpers.BaseObjectStore;
11
- exports.ParquetExtension = http_helpers.ParquetExtension;
12
- //# sourceMappingURL=index.cjs.map
13
+ //#endregion
14
+ Object.defineProperty(exports, 'internal_api_exports', {
15
+ enumerable: true,
16
+ get: function () {
17
+ return internal_api_exports;
18
+ }
19
+ });
20
+ //# sourceMappingURL=index.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;"}
1
+ {"version":3,"file":"index.cjs","names":[],"sources":["../../../src/pframe/internal_api/index.ts"],"sourcesContent":["export * from \"./api_read\";\nexport * from \"./api_factory\";\nexport * from \"./api_wasm\";\nexport * from \"./common\";\nexport * from \"./create_table\";\nexport * from \"./delete_column\";\nexport * from \"./find_columns\";\nexport * from \"./table\";\n\nexport * from \"./pframe\";\nexport * from \"./http_helpers\";\n\nexport type { SingleAxisSelector } from \"@milaboratories/pl-model-common\";\n"],"mappings":""}
@@ -1,12 +1,19 @@
1
- export * from "./api_read";
2
- export * from "./api_factory";
3
- export * from "./api_wasm";
4
- export * from "./common";
5
- export * from "./create_table";
6
- export * from "./delete_column";
7
- export * from "./find_columns";
8
- export * from "./table";
9
- export * from "./pframe";
10
- export * from "./http_helpers";
11
- export type { SingleAxisSelector } from "@milaboratories/pl-model-common";
1
+ import { AxisQualification, ColumnAxesWithQualifications, ConstantAxisFilter, Logger, PFrameId, PTableId } from "./common.js";
2
+ import { FindColumnResponseQualifications, FindColumnsMappingVariant, FindColumnsRequest, FindColumnsResponse, FindColumnsResponseHit } from "./find_columns.js";
3
+ import { DeleteColumnFromColumnsRequest, DeleteColumnFromColumnsResponse } from "./delete_column.js";
4
+ import { ArtificialColumnJoinEntry, ColumnJoinEntry, CreateTableRequestV4, FullJoinV4, InlineColumnJoinEntry, InnerJoinV4, JoinEntryV4, OuterJoinV4, SlicedColumnJoinEntry } from "./create_table.js";
5
+ import { PTableV8 } from "./table.js";
6
+ import { PFrameReadAPIV11 } from "./api_read.js";
7
+ import { BaseObjectStore, FileRange, FsStoreOptions, HttpAuthorizationToken, HttpHelpers, HttpMethod, HttpRange, HttpServer, HttpServerInfo, HttpServerOptions, ObjectStore, ObjectStoreOptions, ObjectStoreResponse, ObjectStoreUrl, ParquetExtension, ParquetFileName, PemCertificate, RequestHandlerOptions } from "./http_helpers.js";
8
+ import { DataInfo, DataInfoExtension, FilePath, PFrameBlobId, PFrameDataSourceV2, PFrameFactoryAPIV4, SpecExtension } from "./api_factory.js";
9
+ import { EvaluateQueryResponse, LegacyQuery, PFrameWasm, PFrameWasmAPI } from "./api_wasm.js";
10
+ import { PFrameFactoryV4, PFrameOptionsV2, PFrameV13 } from "./pframe.js";
11
+ import { SingleAxisSelector as SingleAxisSelector$1 } from "@milaboratories/pl-model-common";
12
+
13
+ //#region src/pframe/internal_api/index.d.ts
14
+ declare namespace index_d_exports {
15
+ export { ArtificialColumnJoinEntry, AxisQualification, BaseObjectStore, ColumnAxesWithQualifications, ColumnJoinEntry, ConstantAxisFilter, CreateTableRequestV4, DataInfo, DataInfoExtension, DeleteColumnFromColumnsRequest, DeleteColumnFromColumnsResponse, EvaluateQueryResponse, FilePath, FileRange, FindColumnResponseQualifications, FindColumnsMappingVariant, FindColumnsRequest, FindColumnsResponse, FindColumnsResponseHit, FsStoreOptions, FullJoinV4, HttpAuthorizationToken, HttpHelpers, HttpMethod, HttpRange, HttpServer, HttpServerInfo, HttpServerOptions, InlineColumnJoinEntry, InnerJoinV4, JoinEntryV4, LegacyQuery, Logger, ObjectStore, ObjectStoreOptions, ObjectStoreResponse, ObjectStoreUrl, OuterJoinV4, PFrameBlobId, PFrameDataSourceV2, PFrameFactoryAPIV4, PFrameFactoryV4, PFrameId, PFrameOptionsV2, PFrameReadAPIV11, PFrameV13, PFrameWasm, PFrameWasmAPI, PTableId, PTableV8, ParquetExtension, ParquetFileName, PemCertificate, RequestHandlerOptions, SingleAxisSelector$1 as SingleAxisSelector, SlicedColumnJoinEntry, SpecExtension };
16
+ }
17
+ //#endregion
18
+ export { index_d_exports };
12
19
  //# sourceMappingURL=index.d.ts.map