@usherlabs/cex-broker 0.2.49 → 0.2.51

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 (55) hide show
  1. package/dist/commands/cex-canonical-orderbook-export.js +7747 -883
  2. package/dist/commands/cex-canonical-orderbook-export.js.map +41 -10
  3. package/dist/commands/cli.js +127 -34
  4. package/dist/commands/market-data-vendor-backfill.js +8284 -6391
  5. package/dist/commands/market-data-vendor-backfill.js.map +16 -15
  6. package/dist/helpers/canonical-orderbook-export/parquet-projection.d.ts +19 -0
  7. package/dist/helpers/market-data-archive/canonical-orderbook.d.ts +1 -1
  8. package/dist/helpers/market-data-preparation/conformance-fixtures.d.ts +114 -2
  9. package/dist/helpers/market-data-preparation/contracts.d.ts +1298 -18
  10. package/dist/helpers/market-data-preparation/required-clock-qualification.d.ts +43 -0
  11. package/dist/helpers/market-data-preparation/source-tape-dependencies.d.ts +19 -0
  12. package/dist/helpers/market-data-preparation/source-tape-operation.d.ts +109 -0
  13. package/dist/helpers/market-data-source-forensics.d.ts +400 -0
  14. package/dist/helpers/market-data-vendor-backfill/conformance-fixtures.d.ts +3 -5
  15. package/dist/helpers/market-data-vendor-backfill/contracts.d.ts +21 -56
  16. package/dist/helpers/market-data-vendor-backfill/core.d.ts +1 -0
  17. package/dist/helpers/market-data-vendor-backfill/cryptohftdata.d.ts +45 -5
  18. package/dist/helpers/market-data-vendor-backfill/manifests.d.ts +31 -1083
  19. package/dist/helpers/market-data-vendor-backfill/promotion.d.ts +1 -0
  20. package/dist/helpers/source-tape-sandbox.d.ts +82 -0
  21. package/dist/helpers/source-tape.d.ts +165 -0
  22. package/dist/helpers/trace-context.d.ts +8 -0
  23. package/dist/index.js +128 -35
  24. package/dist/index.js.map +7 -6
  25. package/dist/market-data-preparation/fixtures/{conformance-v2.json → conformance-v3.json} +257 -60
  26. package/dist/market-data-preparation/policies/capability-policy.json +15 -4
  27. package/dist/market-data-preparation/policies/resource-policy.json +3 -3
  28. package/dist/market-data-preparation/policies/source-tape-capability-v1.json +35 -0
  29. package/dist/market-data-preparation/schema-manifest.json +30 -10
  30. package/dist/market-data-preparation/schemas/canonical-orderbook-export-request-v1.schema.json +5 -1
  31. package/dist/market-data-preparation/schemas/{canonical-orderbook-export-result-v1.schema.json → canonical-orderbook-export-result-v2.schema.json} +20 -6
  32. package/dist/market-data-preparation/schemas/order-book-depth-summary-parquet-projection-v1.schema.json +256 -0
  33. package/dist/market-data-preparation/schemas/order-book-levels-parquet-projection-v1.schema.json +220 -0
  34. package/dist/market-data-preparation/schemas/{preparation-product-pin-v1.schema.json → preparation-product-pin-v2.schema.json} +59 -9
  35. package/dist/market-data-preparation/schemas/promotion-receipt-v1.schema.json +5 -1
  36. package/dist/market-data-preparation/schemas/source-forensics-ledger-v1.schema.json +463 -0
  37. package/dist/market-data-preparation/schemas/source-qualification-record-v1.schema.json +394 -0
  38. package/dist/market-data-preparation.d.ts +7 -0
  39. package/dist/market-data-preparation.js +35443 -25203
  40. package/dist/market-data-preparation.js.map +118 -78
  41. package/dist/market-data-vendor-backfill.d.ts +8 -5
  42. package/dist/market-data-vendor-backfill.js +19444 -15553
  43. package/dist/market-data-vendor-backfill.js.map +65 -60
  44. package/package.json +1 -5
  45. package/dist/market-data-preparation/policies/capability-policy-v1.json +0 -28
  46. package/dist/market-data-vendor-backfill/fixtures/conformance-v1.json +0 -448
  47. package/dist/market-data-vendor-backfill/policies/capability-policy-v2.json +0 -28
  48. package/dist/market-data-vendor-backfill/policies/capability-policy.json +0 -28
  49. package/dist/market-data-vendor-backfill/policies/resource-policy.json +0 -16
  50. package/dist/market-data-vendor-backfill/schema-manifest.json +0 -31
  51. package/dist/market-data-vendor-backfill/schemas/archive-selection.schema.json +0 -224
  52. package/dist/market-data-vendor-backfill/schemas/promotion-receipt.schema.json +0 -171
  53. package/dist/market-data-vendor-backfill/schemas/request.schema.json +0 -166
  54. package/dist/market-data-vendor-backfill/schemas/required-clock.schema.json +0 -47
  55. package/dist/market-data-vendor-backfill/schemas/result.schema.json +0 -198
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../../node_modules/ajv/dist/compile/codegen/code.js", "../../node_modules/ajv/dist/compile/codegen/scope.js", "../../node_modules/ajv/dist/compile/codegen/index.js", "../../node_modules/ajv/dist/compile/util.js", "../../node_modules/ajv/dist/compile/names.js", "../../node_modules/ajv/dist/compile/errors.js", "../../node_modules/ajv/dist/compile/validate/boolSchema.js", "../../node_modules/ajv/dist/compile/rules.js", "../../node_modules/ajv/dist/compile/validate/applicability.js", "../../node_modules/ajv/dist/compile/validate/dataType.js", "../../node_modules/ajv/dist/compile/validate/defaults.js", "../../node_modules/ajv/dist/vocabularies/code.js", "../../node_modules/ajv/dist/compile/validate/keyword.js", "../../node_modules/ajv/dist/compile/validate/subschema.js", "../../node_modules/fast-deep-equal/index.js", "../../node_modules/json-schema-traverse/index.js", "../../node_modules/ajv/dist/compile/resolve.js", "../../node_modules/ajv/dist/compile/validate/index.js", "../../node_modules/ajv/dist/runtime/validation_error.js", "../../node_modules/ajv/dist/compile/ref_error.js", "../../node_modules/ajv/dist/compile/index.js", "../../node_modules/fast-uri/lib/utils.js", "../../node_modules/fast-uri/lib/schemes.js", "../../node_modules/fast-uri/index.js", "../../node_modules/ajv/dist/runtime/uri.js", "../../node_modules/ajv/dist/core.js", "../../node_modules/ajv/dist/vocabularies/core/id.js", "../../node_modules/ajv/dist/vocabularies/core/ref.js", "../../node_modules/ajv/dist/vocabularies/core/index.js", "../../node_modules/ajv/dist/vocabularies/validation/limitNumber.js", "../../node_modules/ajv/dist/vocabularies/validation/multipleOf.js", "../../node_modules/ajv/dist/runtime/ucs2length.js", "../../node_modules/ajv/dist/vocabularies/validation/limitLength.js", "../../node_modules/ajv/dist/vocabularies/validation/pattern.js", "../../node_modules/ajv/dist/vocabularies/validation/limitProperties.js", "../../node_modules/ajv/dist/vocabularies/validation/required.js", "../../node_modules/ajv/dist/vocabularies/validation/limitItems.js", "../../node_modules/ajv/dist/runtime/equal.js", "../../node_modules/ajv/dist/vocabularies/validation/uniqueItems.js", "../../node_modules/ajv/dist/vocabularies/validation/const.js", "../../node_modules/ajv/dist/vocabularies/validation/enum.js", "../../node_modules/ajv/dist/vocabularies/validation/index.js", "../../node_modules/ajv/dist/vocabularies/applicator/additionalItems.js", "../../node_modules/ajv/dist/vocabularies/applicator/items.js", "../../node_modules/ajv/dist/vocabularies/applicator/prefixItems.js", "../../node_modules/ajv/dist/vocabularies/applicator/items2020.js", "../../node_modules/ajv/dist/vocabularies/applicator/contains.js", "../../node_modules/ajv/dist/vocabularies/applicator/dependencies.js", "../../node_modules/ajv/dist/vocabularies/applicator/propertyNames.js", "../../node_modules/ajv/dist/vocabularies/applicator/additionalProperties.js", "../../node_modules/ajv/dist/vocabularies/applicator/properties.js", "../../node_modules/ajv/dist/vocabularies/applicator/patternProperties.js", "../../node_modules/ajv/dist/vocabularies/applicator/not.js", "../../node_modules/ajv/dist/vocabularies/applicator/anyOf.js", "../../node_modules/ajv/dist/vocabularies/applicator/oneOf.js", "../../node_modules/ajv/dist/vocabularies/applicator/allOf.js", "../../node_modules/ajv/dist/vocabularies/applicator/if.js", "../../node_modules/ajv/dist/vocabularies/applicator/thenElse.js", "../../node_modules/ajv/dist/vocabularies/applicator/index.js", "../../node_modules/ajv/dist/vocabularies/dynamic/dynamicAnchor.js", "../../node_modules/ajv/dist/vocabularies/dynamic/dynamicRef.js", "../../node_modules/ajv/dist/vocabularies/dynamic/recursiveAnchor.js", "../../node_modules/ajv/dist/vocabularies/dynamic/recursiveRef.js", "../../node_modules/ajv/dist/vocabularies/dynamic/index.js", "../../node_modules/ajv/dist/vocabularies/validation/dependentRequired.js", "../../node_modules/ajv/dist/vocabularies/applicator/dependentSchemas.js", "../../node_modules/ajv/dist/vocabularies/validation/limitContains.js", "../../node_modules/ajv/dist/vocabularies/next.js", "../../node_modules/ajv/dist/vocabularies/unevaluated/unevaluatedProperties.js", "../../node_modules/ajv/dist/vocabularies/unevaluated/unevaluatedItems.js", "../../node_modules/ajv/dist/vocabularies/unevaluated/index.js", "../../node_modules/ajv/dist/vocabularies/format/format.js", "../../node_modules/ajv/dist/vocabularies/format/index.js", "../../node_modules/ajv/dist/vocabularies/metadata.js", "../../node_modules/ajv/dist/vocabularies/draft2020.js", "../../node_modules/ajv/dist/vocabularies/discriminator/types.js", "../../node_modules/ajv/dist/vocabularies/discriminator/index.js", "../../node_modules/ajv/dist/refs/json-schema-2020-12/index.js", "../../node_modules/ajv/dist/2020.js", "../../node_modules/@opentelemetry/api/build/src/platform/node/globalThis.js", "../../node_modules/@opentelemetry/api/build/src/platform/node/index.js", "../../node_modules/@opentelemetry/api/build/src/platform/index.js", "../../node_modules/@opentelemetry/api/build/src/version.js", "../../node_modules/@opentelemetry/api/build/src/internal/semver.js", "../../node_modules/@opentelemetry/api/build/src/internal/global-utils.js", "../../node_modules/@opentelemetry/api/build/src/diag/ComponentLogger.js", "../../node_modules/@opentelemetry/api/build/src/diag/types.js", "../../node_modules/@opentelemetry/api/build/src/diag/internal/logLevelLogger.js", "../../node_modules/@opentelemetry/api/build/src/api/diag.js", "../../node_modules/@opentelemetry/api/build/src/baggage/internal/baggage-impl.js", "../../node_modules/@opentelemetry/api/build/src/baggage/internal/symbol.js", "../../node_modules/@opentelemetry/api/build/src/baggage/utils.js", "../../node_modules/@opentelemetry/api/build/src/context/context.js", "../../node_modules/@opentelemetry/api/build/src/diag/consoleLogger.js", "../../node_modules/@opentelemetry/api/build/src/metrics/NoopMeter.js", "../../node_modules/@opentelemetry/api/build/src/metrics/Metric.js", "../../node_modules/@opentelemetry/api/build/src/propagation/TextMapPropagator.js", "../../node_modules/@opentelemetry/api/build/src/context/NoopContextManager.js", "../../node_modules/@opentelemetry/api/build/src/api/context.js", "../../node_modules/@opentelemetry/api/build/src/trace/trace_flags.js", "../../node_modules/@opentelemetry/api/build/src/trace/invalid-span-constants.js", "../../node_modules/@opentelemetry/api/build/src/trace/NonRecordingSpan.js", "../../node_modules/@opentelemetry/api/build/src/trace/context-utils.js", "../../node_modules/@opentelemetry/api/build/src/trace/spancontext-utils.js", "../../node_modules/@opentelemetry/api/build/src/trace/NoopTracer.js", "../../node_modules/@opentelemetry/api/build/src/trace/ProxyTracer.js", "../../node_modules/@opentelemetry/api/build/src/trace/NoopTracerProvider.js", "../../node_modules/@opentelemetry/api/build/src/trace/ProxyTracerProvider.js", "../../node_modules/@opentelemetry/api/build/src/trace/SamplingResult.js", "../../node_modules/@opentelemetry/api/build/src/trace/span_kind.js", "../../node_modules/@opentelemetry/api/build/src/trace/status.js", "../../node_modules/@opentelemetry/api/build/src/trace/internal/tracestate-validators.js", "../../node_modules/@opentelemetry/api/build/src/trace/internal/tracestate-impl.js", "../../node_modules/@opentelemetry/api/build/src/trace/internal/utils.js", "../../node_modules/@opentelemetry/api/build/src/context-api.js", "../../node_modules/@opentelemetry/api/build/src/diag-api.js", "../../node_modules/@opentelemetry/api/build/src/metrics/NoopMeterProvider.js", "../../node_modules/@opentelemetry/api/build/src/api/metrics.js", "../../node_modules/@opentelemetry/api/build/src/metrics-api.js", "../../node_modules/@opentelemetry/api/build/src/propagation/NoopTextMapPropagator.js", "../../node_modules/@opentelemetry/api/build/src/baggage/context-helpers.js", "../../node_modules/@opentelemetry/api/build/src/api/propagation.js", "../../node_modules/@opentelemetry/api/build/src/propagation-api.js", "../../node_modules/@opentelemetry/api/build/src/api/trace.js", "../../node_modules/@opentelemetry/api/build/src/trace-api.js", "../../node_modules/@opentelemetry/api/build/src/index.js", "../../src/commands/cex-canonical-orderbook-export.ts", "../../src/helpers/market-data-preparation/contracts.ts", "../../src/helpers/market-data-vendor-backfill/contracts.ts", "../../node_modules/zod/v4/core/core.js", "../../node_modules/zod/v4/core/util.js", "../../node_modules/zod/v4/core/errors.js", "../../node_modules/zod/v4/core/parse.js", "../../node_modules/zod/v4/core/regexes.js", "../../node_modules/zod/v4/core/checks.js", "../../node_modules/zod/v4/core/doc.js", "../../node_modules/zod/v4/core/versions.js", "../../node_modules/zod/v4/core/schemas.js", "../../node_modules/zod/v4/locales/ar.js", "../../node_modules/zod/v4/locales/az.js", "../../node_modules/zod/v4/locales/be.js", "../../node_modules/zod/v4/locales/bg.js", "../../node_modules/zod/v4/locales/ca.js", "../../node_modules/zod/v4/locales/cs.js", "../../node_modules/zod/v4/locales/da.js", "../../node_modules/zod/v4/locales/de.js", "../../node_modules/zod/v4/locales/en.js", "../../node_modules/zod/v4/locales/eo.js", "../../node_modules/zod/v4/locales/es.js", "../../node_modules/zod/v4/locales/fa.js", "../../node_modules/zod/v4/locales/fi.js", "../../node_modules/zod/v4/locales/fr.js", "../../node_modules/zod/v4/locales/fr-CA.js", "../../node_modules/zod/v4/locales/he.js", "../../node_modules/zod/v4/locales/hu.js", "../../node_modules/zod/v4/locales/hy.js", "../../node_modules/zod/v4/locales/id.js", "../../node_modules/zod/v4/locales/is.js", "../../node_modules/zod/v4/locales/it.js", "../../node_modules/zod/v4/locales/ja.js", "../../node_modules/zod/v4/locales/ka.js", "../../node_modules/zod/v4/locales/km.js", "../../node_modules/zod/v4/locales/kh.js", "../../node_modules/zod/v4/locales/ko.js", "../../node_modules/zod/v4/locales/lt.js", "../../node_modules/zod/v4/locales/mk.js", "../../node_modules/zod/v4/locales/ms.js", "../../node_modules/zod/v4/locales/nl.js", "../../node_modules/zod/v4/locales/no.js", "../../node_modules/zod/v4/locales/ota.js", "../../node_modules/zod/v4/locales/ps.js", "../../node_modules/zod/v4/locales/pl.js", "../../node_modules/zod/v4/locales/pt.js", "../../node_modules/zod/v4/locales/ru.js", "../../node_modules/zod/v4/locales/sl.js", "../../node_modules/zod/v4/locales/sv.js", "../../node_modules/zod/v4/locales/ta.js", "../../node_modules/zod/v4/locales/th.js", "../../node_modules/zod/v4/locales/tr.js", "../../node_modules/zod/v4/locales/uk.js", "../../node_modules/zod/v4/locales/ua.js", "../../node_modules/zod/v4/locales/ur.js", "../../node_modules/zod/v4/locales/uz.js", "../../node_modules/zod/v4/locales/vi.js", "../../node_modules/zod/v4/locales/zh-CN.js", "../../node_modules/zod/v4/locales/zh-TW.js", "../../node_modules/zod/v4/locales/yo.js", "../../node_modules/zod/v4/core/registries.js", "../../node_modules/zod/v4/core/api.js", "../../node_modules/zod/v4/core/to-json-schema.js", "../../node_modules/zod/v4/core/json-schema-processors.js", "../../node_modules/zod/v4/core/json-schema-generator.js", "../../node_modules/zod/v4/classic/iso.js", "../../node_modules/zod/v4/classic/errors.js", "../../node_modules/zod/v4/classic/parse.js", "../../node_modules/zod/v4/classic/schemas.js", "../../node_modules/zod/v4/classic/compat.js", "../../node_modules/zod/v4/classic/from-json-schema.js", "../../node_modules/zod/v4/classic/coerce.js", "../../node_modules/zod/v4/classic/external.js", "../../src/helpers/market-data-archive/capture-contract.ts", "../../node_modules/@loglayer/plugin-opentelemetry/dist/index.mjs", "../../node_modules/@loglayer/shared/dist/index.js", "../../node_modules/@loglayer/transport/dist/index.js", "../../node_modules/@loglayer/transport-tslog/dist/index.js", "../../node_modules/@loglayer/plugin/dist/index.js", "../../node_modules/@loglayer/context-manager/dist/index.js", "../../node_modules/@loglayer/log-level-manager/dist/index.js", "../../node_modules/loglayer/dist/index.js", "../../node_modules/non-error/index.js", "../../node_modules/serialize-error/error-constructors.js", "../../node_modules/serialize-error/index.js", "../../node_modules/tslog/dist/esm/prettyLogStyles.js", "../../node_modules/tslog/dist/esm/formatTemplate.js", "../../node_modules/tslog/dist/esm/formatNumberAddZeros.js", "../../node_modules/tslog/dist/esm/urlToObj.js", "../../node_modules/tslog/dist/esm/runtime/nodejs/index.js", "../../node_modules/tslog/dist/esm/BaseLogger.js", "../../node_modules/tslog/dist/esm/index.js", "../../src/helpers/logger.ts", "../../src/helpers/market-data-vendor-backfill/identity.ts", "../../node_modules/canonicalize/lib/canonicalize.js", "../../src/helpers/market-data-vendor-backfill/manifests.ts", "../../src/helpers/canonical-orderbook-export/exact-selection.ts", "../../src/helpers/canonical-orderbook-export/exporter.ts", "../../src/helpers/market-data-preparation/file-job.ts"],
3
+ "sources": ["../../node_modules/ajv/dist/compile/codegen/code.js", "../../node_modules/ajv/dist/compile/codegen/scope.js", "../../node_modules/ajv/dist/compile/codegen/index.js", "../../node_modules/ajv/dist/compile/util.js", "../../node_modules/ajv/dist/compile/names.js", "../../node_modules/ajv/dist/compile/errors.js", "../../node_modules/ajv/dist/compile/validate/boolSchema.js", "../../node_modules/ajv/dist/compile/rules.js", "../../node_modules/ajv/dist/compile/validate/applicability.js", "../../node_modules/ajv/dist/compile/validate/dataType.js", "../../node_modules/ajv/dist/compile/validate/defaults.js", "../../node_modules/ajv/dist/vocabularies/code.js", "../../node_modules/ajv/dist/compile/validate/keyword.js", "../../node_modules/ajv/dist/compile/validate/subschema.js", "../../node_modules/fast-deep-equal/index.js", "../../node_modules/json-schema-traverse/index.js", "../../node_modules/ajv/dist/compile/resolve.js", "../../node_modules/ajv/dist/compile/validate/index.js", "../../node_modules/ajv/dist/runtime/validation_error.js", "../../node_modules/ajv/dist/compile/ref_error.js", "../../node_modules/ajv/dist/compile/index.js", "../../node_modules/fast-uri/lib/utils.js", "../../node_modules/fast-uri/lib/schemes.js", "../../node_modules/fast-uri/index.js", "../../node_modules/ajv/dist/runtime/uri.js", "../../node_modules/ajv/dist/core.js", "../../node_modules/ajv/dist/vocabularies/core/id.js", "../../node_modules/ajv/dist/vocabularies/core/ref.js", "../../node_modules/ajv/dist/vocabularies/core/index.js", "../../node_modules/ajv/dist/vocabularies/validation/limitNumber.js", "../../node_modules/ajv/dist/vocabularies/validation/multipleOf.js", "../../node_modules/ajv/dist/runtime/ucs2length.js", "../../node_modules/ajv/dist/vocabularies/validation/limitLength.js", "../../node_modules/ajv/dist/vocabularies/validation/pattern.js", "../../node_modules/ajv/dist/vocabularies/validation/limitProperties.js", "../../node_modules/ajv/dist/vocabularies/validation/required.js", "../../node_modules/ajv/dist/vocabularies/validation/limitItems.js", "../../node_modules/ajv/dist/runtime/equal.js", "../../node_modules/ajv/dist/vocabularies/validation/uniqueItems.js", "../../node_modules/ajv/dist/vocabularies/validation/const.js", "../../node_modules/ajv/dist/vocabularies/validation/enum.js", "../../node_modules/ajv/dist/vocabularies/validation/index.js", "../../node_modules/ajv/dist/vocabularies/applicator/additionalItems.js", "../../node_modules/ajv/dist/vocabularies/applicator/items.js", "../../node_modules/ajv/dist/vocabularies/applicator/prefixItems.js", "../../node_modules/ajv/dist/vocabularies/applicator/items2020.js", "../../node_modules/ajv/dist/vocabularies/applicator/contains.js", "../../node_modules/ajv/dist/vocabularies/applicator/dependencies.js", "../../node_modules/ajv/dist/vocabularies/applicator/propertyNames.js", "../../node_modules/ajv/dist/vocabularies/applicator/additionalProperties.js", "../../node_modules/ajv/dist/vocabularies/applicator/properties.js", "../../node_modules/ajv/dist/vocabularies/applicator/patternProperties.js", "../../node_modules/ajv/dist/vocabularies/applicator/not.js", "../../node_modules/ajv/dist/vocabularies/applicator/anyOf.js", "../../node_modules/ajv/dist/vocabularies/applicator/oneOf.js", "../../node_modules/ajv/dist/vocabularies/applicator/allOf.js", "../../node_modules/ajv/dist/vocabularies/applicator/if.js", "../../node_modules/ajv/dist/vocabularies/applicator/thenElse.js", "../../node_modules/ajv/dist/vocabularies/applicator/index.js", "../../node_modules/ajv/dist/vocabularies/dynamic/dynamicAnchor.js", "../../node_modules/ajv/dist/vocabularies/dynamic/dynamicRef.js", "../../node_modules/ajv/dist/vocabularies/dynamic/recursiveAnchor.js", "../../node_modules/ajv/dist/vocabularies/dynamic/recursiveRef.js", "../../node_modules/ajv/dist/vocabularies/dynamic/index.js", "../../node_modules/ajv/dist/vocabularies/validation/dependentRequired.js", "../../node_modules/ajv/dist/vocabularies/applicator/dependentSchemas.js", "../../node_modules/ajv/dist/vocabularies/validation/limitContains.js", "../../node_modules/ajv/dist/vocabularies/next.js", "../../node_modules/ajv/dist/vocabularies/unevaluated/unevaluatedProperties.js", "../../node_modules/ajv/dist/vocabularies/unevaluated/unevaluatedItems.js", "../../node_modules/ajv/dist/vocabularies/unevaluated/index.js", "../../node_modules/ajv/dist/vocabularies/format/format.js", "../../node_modules/ajv/dist/vocabularies/format/index.js", "../../node_modules/ajv/dist/vocabularies/metadata.js", "../../node_modules/ajv/dist/vocabularies/draft2020.js", "../../node_modules/ajv/dist/vocabularies/discriminator/types.js", "../../node_modules/ajv/dist/vocabularies/discriminator/index.js", "../../node_modules/ajv/dist/refs/json-schema-2020-12/index.js", "../../node_modules/ajv/dist/2020.js", "../../node_modules/@opentelemetry/api/build/src/platform/node/globalThis.js", "../../node_modules/@opentelemetry/api/build/src/platform/node/index.js", "../../node_modules/@opentelemetry/api/build/src/platform/index.js", "../../node_modules/@opentelemetry/api/build/src/version.js", "../../node_modules/@opentelemetry/api/build/src/internal/semver.js", "../../node_modules/@opentelemetry/api/build/src/internal/global-utils.js", "../../node_modules/@opentelemetry/api/build/src/diag/ComponentLogger.js", "../../node_modules/@opentelemetry/api/build/src/diag/types.js", "../../node_modules/@opentelemetry/api/build/src/diag/internal/logLevelLogger.js", "../../node_modules/@opentelemetry/api/build/src/api/diag.js", "../../node_modules/@opentelemetry/api/build/src/baggage/internal/baggage-impl.js", "../../node_modules/@opentelemetry/api/build/src/baggage/internal/symbol.js", "../../node_modules/@opentelemetry/api/build/src/baggage/utils.js", "../../node_modules/@opentelemetry/api/build/src/context/context.js", "../../node_modules/@opentelemetry/api/build/src/diag/consoleLogger.js", "../../node_modules/@opentelemetry/api/build/src/metrics/NoopMeter.js", "../../node_modules/@opentelemetry/api/build/src/metrics/Metric.js", "../../node_modules/@opentelemetry/api/build/src/propagation/TextMapPropagator.js", "../../node_modules/@opentelemetry/api/build/src/context/NoopContextManager.js", "../../node_modules/@opentelemetry/api/build/src/api/context.js", "../../node_modules/@opentelemetry/api/build/src/trace/trace_flags.js", "../../node_modules/@opentelemetry/api/build/src/trace/invalid-span-constants.js", "../../node_modules/@opentelemetry/api/build/src/trace/NonRecordingSpan.js", "../../node_modules/@opentelemetry/api/build/src/trace/context-utils.js", "../../node_modules/@opentelemetry/api/build/src/trace/spancontext-utils.js", "../../node_modules/@opentelemetry/api/build/src/trace/NoopTracer.js", "../../node_modules/@opentelemetry/api/build/src/trace/ProxyTracer.js", "../../node_modules/@opentelemetry/api/build/src/trace/NoopTracerProvider.js", "../../node_modules/@opentelemetry/api/build/src/trace/ProxyTracerProvider.js", "../../node_modules/@opentelemetry/api/build/src/trace/SamplingResult.js", "../../node_modules/@opentelemetry/api/build/src/trace/span_kind.js", "../../node_modules/@opentelemetry/api/build/src/trace/status.js", "../../node_modules/@opentelemetry/api/build/src/trace/internal/tracestate-validators.js", "../../node_modules/@opentelemetry/api/build/src/trace/internal/tracestate-impl.js", "../../node_modules/@opentelemetry/api/build/src/trace/internal/utils.js", "../../node_modules/@opentelemetry/api/build/src/context-api.js", "../../node_modules/@opentelemetry/api/build/src/diag-api.js", "../../node_modules/@opentelemetry/api/build/src/metrics/NoopMeterProvider.js", "../../node_modules/@opentelemetry/api/build/src/api/metrics.js", "../../node_modules/@opentelemetry/api/build/src/metrics-api.js", "../../node_modules/@opentelemetry/api/build/src/propagation/NoopTextMapPropagator.js", "../../node_modules/@opentelemetry/api/build/src/baggage/context-helpers.js", "../../node_modules/@opentelemetry/api/build/src/api/propagation.js", "../../node_modules/@opentelemetry/api/build/src/propagation-api.js", "../../node_modules/@opentelemetry/api/build/src/api/trace.js", "../../node_modules/@opentelemetry/api/build/src/trace-api.js", "../../node_modules/@opentelemetry/api/build/src/index.js", "../../src/commands/cex-canonical-orderbook-export.ts", "../../src/helpers/market-data-preparation/contracts.ts", "../../src/helpers/market-data-vendor-backfill/contracts.ts", "../../node_modules/zod/v4/core/core.js", "../../node_modules/zod/v4/core/util.js", "../../node_modules/zod/v4/core/errors.js", "../../node_modules/zod/v4/core/parse.js", "../../node_modules/zod/v4/core/regexes.js", "../../node_modules/zod/v4/core/checks.js", "../../node_modules/zod/v4/core/doc.js", "../../node_modules/zod/v4/core/versions.js", "../../node_modules/zod/v4/core/schemas.js", "../../node_modules/zod/v4/locales/ar.js", "../../node_modules/zod/v4/locales/az.js", "../../node_modules/zod/v4/locales/be.js", "../../node_modules/zod/v4/locales/bg.js", "../../node_modules/zod/v4/locales/ca.js", "../../node_modules/zod/v4/locales/cs.js", "../../node_modules/zod/v4/locales/da.js", "../../node_modules/zod/v4/locales/de.js", "../../node_modules/zod/v4/locales/en.js", "../../node_modules/zod/v4/locales/eo.js", "../../node_modules/zod/v4/locales/es.js", "../../node_modules/zod/v4/locales/fa.js", "../../node_modules/zod/v4/locales/fi.js", "../../node_modules/zod/v4/locales/fr.js", "../../node_modules/zod/v4/locales/fr-CA.js", "../../node_modules/zod/v4/locales/he.js", "../../node_modules/zod/v4/locales/hu.js", "../../node_modules/zod/v4/locales/hy.js", "../../node_modules/zod/v4/locales/id.js", "../../node_modules/zod/v4/locales/is.js", "../../node_modules/zod/v4/locales/it.js", "../../node_modules/zod/v4/locales/ja.js", "../../node_modules/zod/v4/locales/ka.js", "../../node_modules/zod/v4/locales/km.js", "../../node_modules/zod/v4/locales/kh.js", "../../node_modules/zod/v4/locales/ko.js", "../../node_modules/zod/v4/locales/lt.js", "../../node_modules/zod/v4/locales/mk.js", "../../node_modules/zod/v4/locales/ms.js", "../../node_modules/zod/v4/locales/nl.js", "../../node_modules/zod/v4/locales/no.js", "../../node_modules/zod/v4/locales/ota.js", "../../node_modules/zod/v4/locales/ps.js", "../../node_modules/zod/v4/locales/pl.js", "../../node_modules/zod/v4/locales/pt.js", "../../node_modules/zod/v4/locales/ru.js", "../../node_modules/zod/v4/locales/sl.js", "../../node_modules/zod/v4/locales/sv.js", "../../node_modules/zod/v4/locales/ta.js", "../../node_modules/zod/v4/locales/th.js", "../../node_modules/zod/v4/locales/tr.js", "../../node_modules/zod/v4/locales/uk.js", "../../node_modules/zod/v4/locales/ua.js", "../../node_modules/zod/v4/locales/ur.js", "../../node_modules/zod/v4/locales/uz.js", "../../node_modules/zod/v4/locales/vi.js", "../../node_modules/zod/v4/locales/zh-CN.js", "../../node_modules/zod/v4/locales/zh-TW.js", "../../node_modules/zod/v4/locales/yo.js", "../../node_modules/zod/v4/core/registries.js", "../../node_modules/zod/v4/core/api.js", "../../node_modules/zod/v4/core/to-json-schema.js", "../../node_modules/zod/v4/core/json-schema-processors.js", "../../node_modules/zod/v4/core/json-schema-generator.js", "../../node_modules/zod/v4/classic/iso.js", "../../node_modules/zod/v4/classic/errors.js", "../../node_modules/zod/v4/classic/parse.js", "../../node_modules/zod/v4/classic/schemas.js", "../../node_modules/zod/v4/classic/compat.js", "../../node_modules/zod/v4/classic/from-json-schema.js", "../../node_modules/zod/v4/classic/coerce.js", "../../node_modules/zod/v4/classic/external.js", "../../src/helpers/market-data-archive/capture-contract.ts", "../../node_modules/@loglayer/plugin-opentelemetry/dist/index.mjs", "../../node_modules/@loglayer/shared/dist/index.js", "../../node_modules/@loglayer/transport/dist/index.js", "../../node_modules/@loglayer/transport-tslog/dist/index.js", "../../node_modules/@loglayer/plugin/dist/index.js", "../../node_modules/@loglayer/context-manager/dist/index.js", "../../node_modules/@loglayer/log-level-manager/dist/index.js", "../../node_modules/loglayer/dist/index.js", "../../node_modules/non-error/index.js", "../../node_modules/serialize-error/error-constructors.js", "../../node_modules/serialize-error/index.js", "../../node_modules/tslog/dist/esm/prettyLogStyles.js", "../../node_modules/tslog/dist/esm/formatTemplate.js", "../../node_modules/tslog/dist/esm/formatNumberAddZeros.js", "../../node_modules/tslog/dist/esm/urlToObj.js", "../../node_modules/tslog/dist/esm/runtime/nodejs/index.js", "../../node_modules/tslog/dist/esm/BaseLogger.js", "../../node_modules/tslog/dist/esm/index.js", "../../src/helpers/logger.ts", "../../src/helpers/market-data-vendor-backfill/identity.ts", "../../node_modules/canonicalize/lib/canonicalize.js", "../../src/helpers/market-data-vendor-backfill/manifests.ts", "../../src/helpers/market-data-archive/canonical-orderbook.ts", "../../src/helpers/market-data-vendor-backfill/batching.ts", "../../src/helpers/market-data-vendor-backfill/cryptohftdata.ts", "../../node_modules/fzstd/esm/index.mjs", "../../node_modules/hyparquet/src/constants.js", "../../node_modules/hyparquet/src/wkb.js", "../../node_modules/hyparquet/src/convert.js", "../../node_modules/hyparquet/src/schema.js", "../../node_modules/hyparquet/src/thrift.js", "../../node_modules/hyparquet/src/geoparquet.js", "../../node_modules/hyparquet/src/metadata.js", "../../node_modules/hyparquet/src/indexes.js", "../../node_modules/hyparquet/src/xxhash.js", "../../node_modules/hyparquet/src/bloom.js", "../../node_modules/hyparquet/src/utils.js", "../../node_modules/hyparquet/src/filter.js", "../../node_modules/hyparquet/src/plan.js", "../../node_modules/hyparquet/src/variant.js", "../../node_modules/hyparquet/src/assemble.js", "../../node_modules/hyparquet/src/delta.js", "../../node_modules/hyparquet/src/encoding.js", "../../node_modules/hyparquet/src/plain.js", "../../node_modules/hyparquet/src/snappy.js", "../../node_modules/hyparquet/src/datapage.js", "../../node_modules/hyparquet/src/column.js", "../../node_modules/hyparquet/src/rowgroup.js", "../../node_modules/hyparquet/src/read.js", "../../src/helpers/market-data-vendor-backfill/semantic-verification.ts", "../../src/helpers/source-tape.ts", "../../src/helpers/market-data-vendor-backfill/promotion.ts", "../../src/helpers/canonical-orderbook-export/exact-selection.ts", "../../src/helpers/canonical-orderbook-export/exporter.ts", "../../src/helpers/market-data-preparation/file-job.ts", "../../src/helpers/canonical-orderbook-export/parquet-projection.ts"],
4
4
  "sourcesContent": [
5
5
  "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.regexpCode = exports.getEsmExportName = exports.getProperty = exports.safeStringify = exports.stringify = exports.strConcat = exports.addCodeArg = exports.str = exports._ = exports.nil = exports._Code = exports.Name = exports.IDENTIFIER = exports._CodeOrName = void 0;\n// eslint-disable-next-line @typescript-eslint/no-extraneous-class\nclass _CodeOrName {\n}\nexports._CodeOrName = _CodeOrName;\nexports.IDENTIFIER = /^[a-z$_][a-z$_0-9]*$/i;\nclass Name extends _CodeOrName {\n constructor(s) {\n super();\n if (!exports.IDENTIFIER.test(s))\n throw new Error(\"CodeGen: name must be a valid identifier\");\n this.str = s;\n }\n toString() {\n return this.str;\n }\n emptyStr() {\n return false;\n }\n get names() {\n return { [this.str]: 1 };\n }\n}\nexports.Name = Name;\nclass _Code extends _CodeOrName {\n constructor(code) {\n super();\n this._items = typeof code === \"string\" ? [code] : code;\n }\n toString() {\n return this.str;\n }\n emptyStr() {\n if (this._items.length > 1)\n return false;\n const item = this._items[0];\n return item === \"\" || item === '\"\"';\n }\n get str() {\n var _a;\n return ((_a = this._str) !== null && _a !== void 0 ? _a : (this._str = this._items.reduce((s, c) => `${s}${c}`, \"\")));\n }\n get names() {\n var _a;\n return ((_a = this._names) !== null && _a !== void 0 ? _a : (this._names = this._items.reduce((names, c) => {\n if (c instanceof Name)\n names[c.str] = (names[c.str] || 0) + 1;\n return names;\n }, {})));\n }\n}\nexports._Code = _Code;\nexports.nil = new _Code(\"\");\nfunction _(strs, ...args) {\n const code = [strs[0]];\n let i = 0;\n while (i < args.length) {\n addCodeArg(code, args[i]);\n code.push(strs[++i]);\n }\n return new _Code(code);\n}\nexports._ = _;\nconst plus = new _Code(\"+\");\nfunction str(strs, ...args) {\n const expr = [safeStringify(strs[0])];\n let i = 0;\n while (i < args.length) {\n expr.push(plus);\n addCodeArg(expr, args[i]);\n expr.push(plus, safeStringify(strs[++i]));\n }\n optimize(expr);\n return new _Code(expr);\n}\nexports.str = str;\nfunction addCodeArg(code, arg) {\n if (arg instanceof _Code)\n code.push(...arg._items);\n else if (arg instanceof Name)\n code.push(arg);\n else\n code.push(interpolate(arg));\n}\nexports.addCodeArg = addCodeArg;\nfunction optimize(expr) {\n let i = 1;\n while (i < expr.length - 1) {\n if (expr[i] === plus) {\n const res = mergeExprItems(expr[i - 1], expr[i + 1]);\n if (res !== undefined) {\n expr.splice(i - 1, 3, res);\n continue;\n }\n expr[i++] = \"+\";\n }\n i++;\n }\n}\nfunction mergeExprItems(a, b) {\n if (b === '\"\"')\n return a;\n if (a === '\"\"')\n return b;\n if (typeof a == \"string\") {\n if (b instanceof Name || a[a.length - 1] !== '\"')\n return;\n if (typeof b != \"string\")\n return `${a.slice(0, -1)}${b}\"`;\n if (b[0] === '\"')\n return a.slice(0, -1) + b.slice(1);\n return;\n }\n if (typeof b == \"string\" && b[0] === '\"' && !(a instanceof Name))\n return `\"${a}${b.slice(1)}`;\n return;\n}\nfunction strConcat(c1, c2) {\n return c2.emptyStr() ? c1 : c1.emptyStr() ? c2 : str `${c1}${c2}`;\n}\nexports.strConcat = strConcat;\n// TODO do not allow arrays here\nfunction interpolate(x) {\n return typeof x == \"number\" || typeof x == \"boolean\" || x === null\n ? x\n : safeStringify(Array.isArray(x) ? x.join(\",\") : x);\n}\nfunction stringify(x) {\n return new _Code(safeStringify(x));\n}\nexports.stringify = stringify;\nfunction safeStringify(x) {\n return JSON.stringify(x)\n .replace(/\\u2028/g, \"\\\\u2028\")\n .replace(/\\u2029/g, \"\\\\u2029\");\n}\nexports.safeStringify = safeStringify;\nfunction getProperty(key) {\n return typeof key == \"string\" && exports.IDENTIFIER.test(key) ? new _Code(`.${key}`) : _ `[${key}]`;\n}\nexports.getProperty = getProperty;\n//Does best effort to format the name properly\nfunction getEsmExportName(key) {\n if (typeof key == \"string\" && exports.IDENTIFIER.test(key)) {\n return new _Code(`${key}`);\n }\n throw new Error(`CodeGen: invalid export name: ${key}, use explicit $id name mapping`);\n}\nexports.getEsmExportName = getEsmExportName;\nfunction regexpCode(rx) {\n return new _Code(rx.toString());\n}\nexports.regexpCode = regexpCode;\n//# sourceMappingURL=code.js.map",
6
6
  "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ValueScope = exports.ValueScopeName = exports.Scope = exports.varKinds = exports.UsedValueState = void 0;\nconst code_1 = require(\"./code\");\nclass ValueError extends Error {\n constructor(name) {\n super(`CodeGen: \"code\" for ${name} not defined`);\n this.value = name.value;\n }\n}\nvar UsedValueState;\n(function (UsedValueState) {\n UsedValueState[UsedValueState[\"Started\"] = 0] = \"Started\";\n UsedValueState[UsedValueState[\"Completed\"] = 1] = \"Completed\";\n})(UsedValueState || (exports.UsedValueState = UsedValueState = {}));\nexports.varKinds = {\n const: new code_1.Name(\"const\"),\n let: new code_1.Name(\"let\"),\n var: new code_1.Name(\"var\"),\n};\nclass Scope {\n constructor({ prefixes, parent } = {}) {\n this._names = {};\n this._prefixes = prefixes;\n this._parent = parent;\n }\n toName(nameOrPrefix) {\n return nameOrPrefix instanceof code_1.Name ? nameOrPrefix : this.name(nameOrPrefix);\n }\n name(prefix) {\n return new code_1.Name(this._newName(prefix));\n }\n _newName(prefix) {\n const ng = this._names[prefix] || this._nameGroup(prefix);\n return `${prefix}${ng.index++}`;\n }\n _nameGroup(prefix) {\n var _a, _b;\n if (((_b = (_a = this._parent) === null || _a === void 0 ? void 0 : _a._prefixes) === null || _b === void 0 ? void 0 : _b.has(prefix)) || (this._prefixes && !this._prefixes.has(prefix))) {\n throw new Error(`CodeGen: prefix \"${prefix}\" is not allowed in this scope`);\n }\n return (this._names[prefix] = { prefix, index: 0 });\n }\n}\nexports.Scope = Scope;\nclass ValueScopeName extends code_1.Name {\n constructor(prefix, nameStr) {\n super(nameStr);\n this.prefix = prefix;\n }\n setValue(value, { property, itemIndex }) {\n this.value = value;\n this.scopePath = (0, code_1._) `.${new code_1.Name(property)}[${itemIndex}]`;\n }\n}\nexports.ValueScopeName = ValueScopeName;\nconst line = (0, code_1._) `\\n`;\nclass ValueScope extends Scope {\n constructor(opts) {\n super(opts);\n this._values = {};\n this._scope = opts.scope;\n this.opts = { ...opts, _n: opts.lines ? line : code_1.nil };\n }\n get() {\n return this._scope;\n }\n name(prefix) {\n return new ValueScopeName(prefix, this._newName(prefix));\n }\n value(nameOrPrefix, value) {\n var _a;\n if (value.ref === undefined)\n throw new Error(\"CodeGen: ref must be passed in value\");\n const name = this.toName(nameOrPrefix);\n const { prefix } = name;\n const valueKey = (_a = value.key) !== null && _a !== void 0 ? _a : value.ref;\n let vs = this._values[prefix];\n if (vs) {\n const _name = vs.get(valueKey);\n if (_name)\n return _name;\n }\n else {\n vs = this._values[prefix] = new Map();\n }\n vs.set(valueKey, name);\n const s = this._scope[prefix] || (this._scope[prefix] = []);\n const itemIndex = s.length;\n s[itemIndex] = value.ref;\n name.setValue(value, { property: prefix, itemIndex });\n return name;\n }\n getValue(prefix, keyOrRef) {\n const vs = this._values[prefix];\n if (!vs)\n return;\n return vs.get(keyOrRef);\n }\n scopeRefs(scopeName, values = this._values) {\n return this._reduceValues(values, (name) => {\n if (name.scopePath === undefined)\n throw new Error(`CodeGen: name \"${name}\" has no value`);\n return (0, code_1._) `${scopeName}${name.scopePath}`;\n });\n }\n scopeCode(values = this._values, usedValues, getCode) {\n return this._reduceValues(values, (name) => {\n if (name.value === undefined)\n throw new Error(`CodeGen: name \"${name}\" has no value`);\n return name.value.code;\n }, usedValues, getCode);\n }\n _reduceValues(values, valueCode, usedValues = {}, getCode) {\n let code = code_1.nil;\n for (const prefix in values) {\n const vs = values[prefix];\n if (!vs)\n continue;\n const nameSet = (usedValues[prefix] = usedValues[prefix] || new Map());\n vs.forEach((name) => {\n if (nameSet.has(name))\n return;\n nameSet.set(name, UsedValueState.Started);\n let c = valueCode(name);\n if (c) {\n const def = this.opts.es5 ? exports.varKinds.var : exports.varKinds.const;\n code = (0, code_1._) `${code}${def} ${name} = ${c};${this.opts._n}`;\n }\n else if ((c = getCode === null || getCode === void 0 ? void 0 : getCode(name))) {\n code = (0, code_1._) `${code}${c}${this.opts._n}`;\n }\n else {\n throw new ValueError(name);\n }\n nameSet.set(name, UsedValueState.Completed);\n });\n }\n return code;\n }\n}\nexports.ValueScope = ValueScope;\n//# sourceMappingURL=scope.js.map",
@@ -128,9 +128,9 @@
128
128
  "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.TraceAPI = void 0;\nconst global_utils_1 = require(\"../internal/global-utils\");\nconst ProxyTracerProvider_1 = require(\"../trace/ProxyTracerProvider\");\nconst spancontext_utils_1 = require(\"../trace/spancontext-utils\");\nconst context_utils_1 = require(\"../trace/context-utils\");\nconst diag_1 = require(\"./diag\");\nconst API_NAME = 'trace';\n/**\n * Singleton object which represents the entry point to the OpenTelemetry Tracing API\n */\nclass TraceAPI {\n /** Empty private constructor prevents end users from constructing a new instance of the API */\n constructor() {\n this._proxyTracerProvider = new ProxyTracerProvider_1.ProxyTracerProvider();\n this.wrapSpanContext = spancontext_utils_1.wrapSpanContext;\n this.isSpanContextValid = spancontext_utils_1.isSpanContextValid;\n this.deleteSpan = context_utils_1.deleteSpan;\n this.getSpan = context_utils_1.getSpan;\n this.getActiveSpan = context_utils_1.getActiveSpan;\n this.getSpanContext = context_utils_1.getSpanContext;\n this.setSpan = context_utils_1.setSpan;\n this.setSpanContext = context_utils_1.setSpanContext;\n }\n /** Get the singleton instance of the Trace API */\n static getInstance() {\n if (!this._instance) {\n this._instance = new TraceAPI();\n }\n return this._instance;\n }\n /**\n * Set the current global tracer.\n *\n * @returns true if the tracer provider was successfully registered, else false\n */\n setGlobalTracerProvider(provider) {\n const success = (0, global_utils_1.registerGlobal)(API_NAME, this._proxyTracerProvider, diag_1.DiagAPI.instance());\n if (success) {\n this._proxyTracerProvider.setDelegate(provider);\n }\n return success;\n }\n /**\n * Returns the global tracer provider.\n */\n getTracerProvider() {\n return (0, global_utils_1.getGlobal)(API_NAME) || this._proxyTracerProvider;\n }\n /**\n * Returns a tracer from the global tracer provider.\n */\n getTracer(name, version) {\n return this.getTracerProvider().getTracer(name, version);\n }\n /** Remove the global tracer provider */\n disable() {\n (0, global_utils_1.unregisterGlobal)(API_NAME, diag_1.DiagAPI.instance());\n this._proxyTracerProvider = new ProxyTracerProvider_1.ProxyTracerProvider();\n }\n}\nexports.TraceAPI = TraceAPI;\n//# sourceMappingURL=trace.js.map",
129
129
  "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.trace = void 0;\n// Split module-level variable definition into separate files to allow\n// tree-shaking on each api instance.\nconst trace_1 = require(\"./api/trace\");\n/** Entrypoint for trace API */\nexports.trace = trace_1.TraceAPI.getInstance();\n//# sourceMappingURL=trace-api.js.map",
130
130
  "\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.trace = exports.propagation = exports.metrics = exports.diag = exports.context = exports.INVALID_SPAN_CONTEXT = exports.INVALID_TRACEID = exports.INVALID_SPANID = exports.isValidSpanId = exports.isValidTraceId = exports.isSpanContextValid = exports.createTraceState = exports.TraceFlags = exports.SpanStatusCode = exports.SpanKind = exports.SamplingDecision = exports.ProxyTracerProvider = exports.ProxyTracer = exports.defaultTextMapSetter = exports.defaultTextMapGetter = exports.ValueType = exports.createNoopMeter = exports.DiagLogLevel = exports.DiagConsoleLogger = exports.ROOT_CONTEXT = exports.createContextKey = exports.baggageEntryMetadataFromString = void 0;\nvar utils_1 = require(\"./baggage/utils\");\nObject.defineProperty(exports, \"baggageEntryMetadataFromString\", { enumerable: true, get: function () { return utils_1.baggageEntryMetadataFromString; } });\n// Context APIs\nvar context_1 = require(\"./context/context\");\nObject.defineProperty(exports, \"createContextKey\", { enumerable: true, get: function () { return context_1.createContextKey; } });\nObject.defineProperty(exports, \"ROOT_CONTEXT\", { enumerable: true, get: function () { return context_1.ROOT_CONTEXT; } });\n// Diag APIs\nvar consoleLogger_1 = require(\"./diag/consoleLogger\");\nObject.defineProperty(exports, \"DiagConsoleLogger\", { enumerable: true, get: function () { return consoleLogger_1.DiagConsoleLogger; } });\nvar types_1 = require(\"./diag/types\");\nObject.defineProperty(exports, \"DiagLogLevel\", { enumerable: true, get: function () { return types_1.DiagLogLevel; } });\n// Metrics APIs\nvar NoopMeter_1 = require(\"./metrics/NoopMeter\");\nObject.defineProperty(exports, \"createNoopMeter\", { enumerable: true, get: function () { return NoopMeter_1.createNoopMeter; } });\nvar Metric_1 = require(\"./metrics/Metric\");\nObject.defineProperty(exports, \"ValueType\", { enumerable: true, get: function () { return Metric_1.ValueType; } });\n// Propagation APIs\nvar TextMapPropagator_1 = require(\"./propagation/TextMapPropagator\");\nObject.defineProperty(exports, \"defaultTextMapGetter\", { enumerable: true, get: function () { return TextMapPropagator_1.defaultTextMapGetter; } });\nObject.defineProperty(exports, \"defaultTextMapSetter\", { enumerable: true, get: function () { return TextMapPropagator_1.defaultTextMapSetter; } });\nvar ProxyTracer_1 = require(\"./trace/ProxyTracer\");\nObject.defineProperty(exports, \"ProxyTracer\", { enumerable: true, get: function () { return ProxyTracer_1.ProxyTracer; } });\nvar ProxyTracerProvider_1 = require(\"./trace/ProxyTracerProvider\");\nObject.defineProperty(exports, \"ProxyTracerProvider\", { enumerable: true, get: function () { return ProxyTracerProvider_1.ProxyTracerProvider; } });\nvar SamplingResult_1 = require(\"./trace/SamplingResult\");\nObject.defineProperty(exports, \"SamplingDecision\", { enumerable: true, get: function () { return SamplingResult_1.SamplingDecision; } });\nvar span_kind_1 = require(\"./trace/span_kind\");\nObject.defineProperty(exports, \"SpanKind\", { enumerable: true, get: function () { return span_kind_1.SpanKind; } });\nvar status_1 = require(\"./trace/status\");\nObject.defineProperty(exports, \"SpanStatusCode\", { enumerable: true, get: function () { return status_1.SpanStatusCode; } });\nvar trace_flags_1 = require(\"./trace/trace_flags\");\nObject.defineProperty(exports, \"TraceFlags\", { enumerable: true, get: function () { return trace_flags_1.TraceFlags; } });\nvar utils_2 = require(\"./trace/internal/utils\");\nObject.defineProperty(exports, \"createTraceState\", { enumerable: true, get: function () { return utils_2.createTraceState; } });\nvar spancontext_utils_1 = require(\"./trace/spancontext-utils\");\nObject.defineProperty(exports, \"isSpanContextValid\", { enumerable: true, get: function () { return spancontext_utils_1.isSpanContextValid; } });\nObject.defineProperty(exports, \"isValidTraceId\", { enumerable: true, get: function () { return spancontext_utils_1.isValidTraceId; } });\nObject.defineProperty(exports, \"isValidSpanId\", { enumerable: true, get: function () { return spancontext_utils_1.isValidSpanId; } });\nvar invalid_span_constants_1 = require(\"./trace/invalid-span-constants\");\nObject.defineProperty(exports, \"INVALID_SPANID\", { enumerable: true, get: function () { return invalid_span_constants_1.INVALID_SPANID; } });\nObject.defineProperty(exports, \"INVALID_TRACEID\", { enumerable: true, get: function () { return invalid_span_constants_1.INVALID_TRACEID; } });\nObject.defineProperty(exports, \"INVALID_SPAN_CONTEXT\", { enumerable: true, get: function () { return invalid_span_constants_1.INVALID_SPAN_CONTEXT; } });\n// Split module-level variable definition into separate files to allow\n// tree-shaking on each api instance.\nconst context_api_1 = require(\"./context-api\");\nObject.defineProperty(exports, \"context\", { enumerable: true, get: function () { return context_api_1.context; } });\nconst diag_api_1 = require(\"./diag-api\");\nObject.defineProperty(exports, \"diag\", { enumerable: true, get: function () { return diag_api_1.diag; } });\nconst metrics_api_1 = require(\"./metrics-api\");\nObject.defineProperty(exports, \"metrics\", { enumerable: true, get: function () { return metrics_api_1.metrics; } });\nconst propagation_api_1 = require(\"./propagation-api\");\nObject.defineProperty(exports, \"propagation\", { enumerable: true, get: function () { return propagation_api_1.propagation; } });\nconst trace_api_1 = require(\"./trace-api\");\nObject.defineProperty(exports, \"trace\", { enumerable: true, get: function () { return trace_api_1.trace; } });\n// Default export.\nexports.default = {\n context: context_api_1.context,\n diag: diag_api_1.diag,\n metrics: metrics_api_1.metrics,\n propagation: propagation_api_1.propagation,\n trace: trace_api_1.trace,\n};\n//# sourceMappingURL=index.js.map",
131
- "import { createHash, randomUUID } from \"node:crypto\";\nimport path from \"node:path\";\nimport { pathToFileURL } from \"node:url\";\nimport { ExactOrderBookExportError } from \"../helpers/canonical-orderbook-export/exact-selection\";\nimport {\n\tcreateClickHouseExactOrderBookExportClient,\n\ttype ExactOrderBookExportQueryClient,\n\texportExactCanonicalOrderBook,\n} from \"../helpers/canonical-orderbook-export/exporter\";\nimport {\n\tCANONICAL_ORDERBOOK_EXPORT_RESULT_SCHEMA_ID,\n\ttype CanonicalOrderBookExportQuerySegment,\n\ttype CanonicalOrderBookExportRequestWire,\n\ttype CanonicalOrderBookExportResultWire,\n\ttype CanonicalOrderBookExportStatus,\n\tcanonicalOrderBookExportRequestCodec,\n\tcanonicalOrderBookExportResultCodec,\n\tfinalizeCanonicalOrderBookExportResult,\n} from \"../helpers/market-data-preparation/contracts\";\nimport {\n\ttype AtomicWriteHooks,\n\tassertSafeFileJobPaths,\n\tassertSupportedNode22,\n\tatomicWriteJsonResult,\n\tcontainsParentTraversal,\n\tFILE_JOB_REQUEST_MAX_BYTES,\n\tFileJobUnreadableError,\n\tparseFileJobArgv,\n\treadBoundedRegularFile,\n\tsha256RegularFile,\n} from \"../helpers/market-data-preparation/file-job\";\n\ndeclare const __CEX_BROKER_PACKAGE_VERSION__: string;\ndeclare const __CEX_BROKER_GIT_HEAD__: string;\n\ntype Environment = Readonly<Record<string, string | undefined>>;\n\nexport type CanonicalOrderBookExportReleaseIdentity = {\n\tpackageVersion: string;\n\tgitHead: string;\n};\n\nexport type CanonicalOrderBookExportFileJobOptions = {\n\trequestPath: string;\n\tresultPath: string;\n\texecutablePath?: string;\n\trelease?: CanonicalOrderBookExportReleaseIdentity;\n\tclient?: ExactOrderBookExportQueryClient;\n\tenvironment?: Environment;\n\tnowMs?: () => number;\n\trandomUuid?: () => string;\n\tatomicWriteHooks?: AtomicWriteHooks;\n};\n\nconst SAFE_GIT_HEAD = /^[0-9a-f]{40}$/;\nconst SAFE_PACKAGE_VERSION = /^[0-9]+\\.[0-9]+\\.[0-9]+(?:-[0-9A-Za-z.-]+)?$/;\n\nfunction validateReleaseIdentity(\n\trelease: CanonicalOrderBookExportReleaseIdentity,\n): CanonicalOrderBookExportReleaseIdentity {\n\tif (!SAFE_PACKAGE_VERSION.test(release.packageVersion)) {\n\t\tthrow new Error(\"pin-eligible build is missing a valid package version\");\n\t}\n\tif (!SAFE_GIT_HEAD.test(release.gitHead)) {\n\t\tthrow new Error(\n\t\t\t\"pin-eligible build is missing a valid cex-broker git head\",\n\t\t);\n\t}\n\treturn release;\n}\n\nfunction bakedReleaseIdentity(): CanonicalOrderBookExportReleaseIdentity {\n\treturn validateReleaseIdentity({\n\t\tpackageVersion:\n\t\t\ttypeof __CEX_BROKER_PACKAGE_VERSION__ === \"string\"\n\t\t\t\t? __CEX_BROKER_PACKAGE_VERSION__\n\t\t\t\t: \"\",\n\t\tgitHead:\n\t\t\ttypeof __CEX_BROKER_GIT_HEAD__ === \"string\"\n\t\t\t\t? __CEX_BROKER_GIT_HEAD__\n\t\t\t\t: \"\",\n\t});\n}\n\nfunction optionalEnvironment(\n\tenvironment: Environment,\n\tname: string,\n): string | undefined {\n\tconst value = environment[name];\n\treturn value && value.trim().length > 0 ? value : undefined;\n}\n\nexport function createCanonicalOrderBookExportClientFromEnv(\n\tenvironment: Environment,\n): ExactOrderBookExportQueryClient {\n\treturn createClickHouseExactOrderBookExportClient({\n\t\turl: optionalEnvironment(environment, \"CLICKHOUSE_URL\") ?? \"\",\n\t\tusername: optionalEnvironment(environment, \"CLICKHOUSE_USER\"),\n\t\tpassword: optionalEnvironment(environment, \"CLICKHOUSE_PASSWORD\"),\n\t});\n}\n\nfunction classifyExportFailure(reason: string): CanonicalOrderBookExportStatus {\n\tif (\n\t\treason === \"archive_url_invalid\" ||\n\t\treason === \"archive_query_failed\" ||\n\t\treason === \"archive_query_unreachable\" ||\n\t\treason.startsWith(\"archive_query_http_\")\n\t) {\n\t\treturn \"archive_query_failed\";\n\t}\n\treturn reason === \"artifact_write_failed\"\n\t\t? \"artifact_write_failed\"\n\t\t: \"archive_data_invalid\";\n}\n\nasync function writeResult(input: {\n\tresultPath: string;\n\trequestFileSha256: string | null;\n\trequest: CanonicalOrderBookExportRequestWire | null;\n\tstatus: CanonicalOrderBookExportStatus;\n\treasonCode: string;\n\treasonSubcode: string | null;\n\tquerySha256?: string;\n\tquerySegments?: CanonicalOrderBookExportQuerySegment[];\n\tpromotionReceiptIds?: string[];\n\tartifacts?: CanonicalOrderBookExportResultWire[\"outcome\"][\"artifacts\"];\n\tproducer: CanonicalOrderBookExportResultWire[\"producer\"];\n\tjobId: string;\n\tstartedAt: string;\n\tcompletedAt: string;\n\thooks?: AtomicWriteHooks;\n}): Promise<CanonicalOrderBookExportResultWire> {\n\tconst result = finalizeCanonicalOrderBookExportResult({\n\t\tschema_id: CANONICAL_ORDERBOOK_EXPORT_RESULT_SCHEMA_ID,\n\t\tjob_id: input.jobId,\n\t\trequest_file_sha256: input.requestFileSha256,\n\t\tproducer: input.producer,\n\t\tstarted_at: input.startedAt,\n\t\tcompleted_at: input.completedAt,\n\t\toutcome: {\n\t\t\tstatus: input.status,\n\t\t\treason_code: input.reasonCode,\n\t\t\treason_subcode: input.reasonSubcode,\n\t\t\trequest_id: input.request?.request_id ?? null,\n\t\t\ttarget: input.request?.target ?? null,\n\t\t\tselection_sha256: input.request?.selection.selection_sha256 ?? null,\n\t\t\tquery_sha256: input.querySha256 ?? null,\n\t\t\tquery_segments: input.querySegments ?? [],\n\t\t\tpromotion_receipt_ids: input.promotionReceiptIds ?? [],\n\t\t\tartifacts: input.artifacts ?? null,\n\t\t\tdiagnostics: {},\n\t\t},\n\t});\n\tawait atomicWriteJsonResult(input.resultPath, result, {\n\t\tvalidate: (value) => {\n\t\t\tcanonicalOrderBookExportResultCodec.decode(value);\n\t\t},\n\t\thooks: input.hooks,\n\t});\n\treturn result;\n}\n\nexport async function runCanonicalOrderBookExportFileJob(\n\toptions: CanonicalOrderBookExportFileJobOptions,\n): Promise<CanonicalOrderBookExportResultWire> {\n\tassertSupportedNode22(\n\t\tprocess.versions.node,\n\t\t\"cex-canonical-orderbook-export\",\n\t);\n\tconst release = validateReleaseIdentity(\n\t\toptions.release ?? bakedReleaseIdentity(),\n\t);\n\tconst nowMs = options.nowMs ?? Date.now;\n\tconst startedAt = new Date(nowMs()).toISOString();\n\tconst jobId = (options.randomUuid ?? randomUUID)();\n\tconst executablePath = options.executablePath\n\t\t? path.resolve(options.executablePath)\n\t\t: process.argv[1]\n\t\t\t? path.resolve(process.argv[1])\n\t\t\t: \"\";\n\tif (!executablePath)\n\t\tthrow new Error(\"running executable path is unavailable\");\n\tconst executableSha256 = await sha256RegularFile(executablePath);\n\tconst producer: CanonicalOrderBookExportResultWire[\"producer\"] = {\n\t\tproduct_id: \"cex-canonical-orderbook-export\",\n\t\tproduct_version: \"cex-canonical-orderbook-export/v1\",\n\t\tpackage: {\n\t\t\tname: \"@usherlabs/cex-broker\",\n\t\t\tversion: release.packageVersion,\n\t\t\tgit_head: release.gitHead,\n\t\t},\n\t\texecutable_sha256: executableSha256,\n\t\truntime: { name: \"node\", version: process.versions.node },\n\t};\n\n\tconst paths = await assertSafeFileJobPaths(\n\t\tpath.resolve(options.requestPath),\n\t\tpath.resolve(options.resultPath),\n\t);\n\tconst common = {\n\t\tresultPath: paths.resultPath,\n\t\tproducer,\n\t\tjobId,\n\t\tstartedAt,\n\t\thooks: options.atomicWriteHooks,\n\t};\n\tif (\n\t\tcontainsParentTraversal(options.requestPath) ||\n\t\tcontainsParentTraversal(options.resultPath)\n\t) {\n\t\treturn writeResult({\n\t\t\t...common,\n\t\t\trequestFileSha256: null,\n\t\t\trequest: null,\n\t\t\tstatus: \"request_invalid\",\n\t\t\treasonCode: \"request_invalid\",\n\t\t\treasonSubcode: \"request_file_unreadable\",\n\t\t\tcompletedAt: new Date(nowMs()).toISOString(),\n\t\t});\n\t}\n\n\tlet requestBytes: Buffer;\n\ttry {\n\t\trequestBytes = await readBoundedRegularFile(\n\t\t\tpaths.requestPath,\n\t\t\tFILE_JOB_REQUEST_MAX_BYTES,\n\t\t);\n\t} catch (error) {\n\t\tif (!(error instanceof FileJobUnreadableError)) throw error;\n\t\treturn writeResult({\n\t\t\t...common,\n\t\t\trequestFileSha256: null,\n\t\t\trequest: null,\n\t\t\tstatus: \"request_invalid\",\n\t\t\treasonCode: \"request_invalid\",\n\t\t\treasonSubcode: \"request_file_unreadable\",\n\t\t\tcompletedAt: new Date(nowMs()).toISOString(),\n\t\t});\n\t}\n\tconst requestFileSha256 = createHash(\"sha256\")\n\t\t.update(requestBytes)\n\t\t.digest(\"hex\");\n\tlet request: CanonicalOrderBookExportRequestWire;\n\ttry {\n\t\trequest = canonicalOrderBookExportRequestCodec.decode(\n\t\t\tJSON.parse(requestBytes.toString(\"utf8\")),\n\t\t);\n\t} catch {\n\t\treturn writeResult({\n\t\t\t...common,\n\t\t\trequestFileSha256,\n\t\t\trequest: null,\n\t\t\tstatus: \"request_invalid\",\n\t\t\treasonCode: \"request_invalid\",\n\t\t\treasonSubcode: null,\n\t\t\tcompletedAt: new Date(nowMs()).toISOString(),\n\t\t});\n\t}\n\n\ttry {\n\t\tconst exported = await exportExactCanonicalOrderBook({\n\t\t\trequest,\n\t\t\tclient:\n\t\t\t\toptions.client ??\n\t\t\t\tcreateCanonicalOrderBookExportClientFromEnv(\n\t\t\t\t\toptions.environment ?? process.env,\n\t\t\t\t),\n\t\t\toutputDirectory: paths.attemptRoot,\n\t\t});\n\t\treturn writeResult({\n\t\t\t...common,\n\t\t\trequestFileSha256,\n\t\t\trequest,\n\t\t\tstatus: \"exported\",\n\t\t\treasonCode: \"qualified_selection_exported\",\n\t\t\treasonSubcode: null,\n\t\t\tquerySha256: exported.compiled.querySha256,\n\t\t\tquerySegments: exported.compiled.segments,\n\t\t\tpromotionReceiptIds: exported.promotionReceiptIds,\n\t\t\tartifacts: { levels: exported.levels, summary: exported.summary },\n\t\t\tcompletedAt: new Date(nowMs()).toISOString(),\n\t\t});\n\t} catch (error) {\n\t\tconst reason =\n\t\t\terror instanceof ExactOrderBookExportError\n\t\t\t\t? error.reason\n\t\t\t\t: \"archive_query_failed\";\n\t\tconst status = classifyExportFailure(reason);\n\t\treturn writeResult({\n\t\t\t...common,\n\t\t\trequestFileSha256,\n\t\t\trequest,\n\t\t\tstatus,\n\t\t\treasonCode: status,\n\t\t\treasonSubcode: reason,\n\t\t\tcompletedAt: new Date(nowMs()).toISOString(),\n\t\t});\n\t}\n}\n\nexport async function runCanonicalOrderBookExportCli(\n\targv: readonly string[],\n\toptions: Omit<\n\t\tCanonicalOrderBookExportFileJobOptions,\n\t\t\"requestPath\" | \"resultPath\"\n\t> = {},\n): Promise<number> {\n\tassertSupportedNode22(\n\t\tprocess.versions.node,\n\t\t\"cex-canonical-orderbook-export\",\n\t);\n\tconst paths = parseFileJobArgv(argv);\n\tawait runCanonicalOrderBookExportFileJob({ ...options, ...paths });\n\treturn 0;\n}\n\nconst invokedUrl = process.argv[1]\n\t? pathToFileURL(path.resolve(process.argv[1])).href\n\t: null;\nif (invokedUrl === import.meta.url) {\n\trunCanonicalOrderBookExportCli(process.argv.slice(2)).then(\n\t\t(exitCode) => {\n\t\t\tprocess.exitCode = exitCode;\n\t\t},\n\t\t() => {\n\t\t\tconsole.error(\"cex-canonical-orderbook-export failed\");\n\t\t\tprocess.exitCode = 1;\n\t\t},\n\t);\n}\n",
132
- "import Ajv2020, {\n\ttype ErrorObject,\n\ttype ValidateFunction,\n} from \"ajv/dist/2020.js\";\nimport type {\n\tArchiveSelectionWire,\n\tBackfillJobResultWire,\n\tFixedUtcTimestamp,\n\tLowercaseUuid,\n\tSha256Hex,\n} from \"../market-data-vendor-backfill/contracts\";\nimport {\n\tarchiveSelectionCodec,\n\tpromotionReceiptCodec,\n} from \"../market-data-vendor-backfill/contracts\";\nimport {\n\tassertDocumentSha256,\n\tdocumentSha256,\n\tjcsSha256,\n} from \"../market-data-vendor-backfill/identity\";\nimport {\n\tCAPABILITY_POLICY,\n\tRESOURCE_POLICY,\n} from \"../market-data-vendor-backfill/manifests\";\nimport archiveSelectionSchema from \"../market-data-vendor-backfill/schemas/archive-selection.schema.json\" with {\n\ttype: \"json\",\n};\nimport promotionReceiptSchema from \"../market-data-vendor-backfill/schemas/promotion-receipt.schema.json\" with {\n\ttype: \"json\",\n};\nimport requestSchema from \"../market-data-vendor-backfill/schemas/request.schema.json\" with {\n\ttype: \"json\",\n};\nimport requiredClockSchema from \"../market-data-vendor-backfill/schemas/required-clock.schema.json\" with {\n\ttype: \"json\",\n};\nimport backfillResultV2Schema from \"./schemas/backfill-result-v2.schema.json\" with {\n\ttype: \"json\",\n};\nimport exportRequestSchema from \"./schemas/canonical-orderbook-export-request.schema.json\" with {\n\ttype: \"json\",\n};\nimport exportResultSchema from \"./schemas/canonical-orderbook-export-result.schema.json\" with {\n\ttype: \"json\",\n};\nimport productPinSchema from \"./schemas/preparation-product-pin.schema.json\" with {\n\ttype: \"json\",\n};\n\nexport const BACKFILL_RESULT_V2_SCHEMA_ID = backfillResultV2Schema.$id;\nexport const CANONICAL_ORDERBOOK_EXPORT_REQUEST_SCHEMA_ID =\n\texportRequestSchema.$id;\nexport const CANONICAL_ORDERBOOK_EXPORT_RESULT_SCHEMA_ID =\n\texportResultSchema.$id;\nexport const PREPARATION_PRODUCT_PIN_SCHEMA_ID = productPinSchema.$id;\nexport const PREPARATION_SCHEMA_MANIFEST_V2_ID =\n\t\"https://schemas.usher.so/market-data-vendor-backfill-schema-manifest/v2\" as const;\n\nexport type PreparationTarget = { environment: string; cluster: string };\n\nexport type PreparationProducerIdentity = {\n\tproduct_id: \"market-data-vendor-backfill\" | \"cex-canonical-orderbook-export\";\n\tproduct_version:\n\t\t| \"market-data-vendor-backfill/v1\"\n\t\t| \"cex-canonical-orderbook-export/v1\";\n\tpackage: {\n\t\tname: \"@usherlabs/cex-broker\";\n\t\tversion: string;\n\t\tgit_head: string;\n\t};\n\texecutable_sha256: Sha256Hex;\n\truntime: { name: \"node\"; version: string };\n};\n\nexport type BackfillJobResultV2Wire = {\n\tschema_id: typeof BACKFILL_RESULT_V2_SCHEMA_ID;\n\tresult_sha256: Sha256Hex;\n\tjob_id: LowercaseUuid;\n\trequest_file_sha256: Sha256Hex | null;\n\tschema_manifest_sha256: Sha256Hex;\n\tproducer: PreparationProducerIdentity & {\n\t\tproduct_id: \"market-data-vendor-backfill\";\n\t\tproduct_version: \"market-data-vendor-backfill/v1\";\n\t};\n\tcapability_policy: { policy_id: string; policy_sha256: Sha256Hex };\n\tresource_policy: { policy_id: string; policy_sha256: Sha256Hex };\n\tstarted_at: FixedUtcTimestamp;\n\tcompleted_at: FixedUtcTimestamp;\n\toutcome: BackfillJobResultWire[\"outcome\"];\n};\n\nexport type CanonicalOrderBookExportRequestWire = {\n\tschema_id: typeof CANONICAL_ORDERBOOK_EXPORT_REQUEST_SCHEMA_ID;\n\trequest_id: LowercaseUuid;\n\ttarget: PreparationTarget;\n\tselection: ArchiveSelectionWire;\n\tdepth: number;\n\tconstruction_mode: \"sampled_top_n_snapshot\" | \"exact_l2_reconstruction\";\n\tcanonical_schema_version: string;\n\tchecksum_algorithm: \"sha256-canonical-json-v1\";\n};\n\nexport type CanonicalOrderBookExportQuerySegment =\n\tArchiveSelectionWire[\"selected_intervals\"][number];\n\nexport const CANONICAL_ORDERBOOK_EXPORT_STATUSES = [\n\t\"exported\",\n\t\"request_invalid\",\n\t\"archive_query_failed\",\n\t\"archive_data_invalid\",\n\t\"artifact_write_failed\",\n] as const;\n\nexport type CanonicalOrderBookExportStatus =\n\t(typeof CANONICAL_ORDERBOOK_EXPORT_STATUSES)[number];\n\nexport type CanonicalOrderBookExportArtifact = {\n\tfile_name: string;\n\trows: number;\n\tbytes: number;\n\tsha256: Sha256Hex;\n};\n\nexport type CanonicalOrderBookExportResultWire = {\n\tschema_id: typeof CANONICAL_ORDERBOOK_EXPORT_RESULT_SCHEMA_ID;\n\tresult_sha256: Sha256Hex;\n\tjob_id: LowercaseUuid;\n\trequest_file_sha256: Sha256Hex | null;\n\tproducer: PreparationProducerIdentity & {\n\t\tproduct_id: \"cex-canonical-orderbook-export\";\n\t\tproduct_version: \"cex-canonical-orderbook-export/v1\";\n\t};\n\tstarted_at: FixedUtcTimestamp;\n\tcompleted_at: FixedUtcTimestamp;\n\toutcome: {\n\t\tstatus: CanonicalOrderBookExportStatus;\n\t\treason_code: string;\n\t\treason_subcode: string | null;\n\t\trequest_id: LowercaseUuid | null;\n\t\ttarget: PreparationTarget | null;\n\t\tselection_sha256: Sha256Hex | null;\n\t\tquery_sha256: Sha256Hex | null;\n\t\tquery_segments: CanonicalOrderBookExportQuerySegment[];\n\t\tpromotion_receipt_ids: Sha256Hex[];\n\t\tartifacts: null | {\n\t\t\tlevels: CanonicalOrderBookExportArtifact;\n\t\t\tsummary: CanonicalOrderBookExportArtifact;\n\t\t};\n\t\tdiagnostics: Record<string, string | number | boolean>;\n\t};\n};\n\nexport type PreparationProductPinWire = {\n\tschema_id: typeof PREPARATION_PRODUCT_PIN_SCHEMA_ID;\n\tpackage: {\n\t\tname: \"@usherlabs/cex-broker\";\n\t\tversion: string;\n\t\tregistry_tarball_url: string;\n\t\tintegrity: string;\n\t\ttarball_sha256: Sha256Hex;\n\t\tnpm_git_head: string;\n\t};\n\texecutables: Array<{\n\t\tproduct_id: PreparationProducerIdentity[\"product_id\"];\n\t\tproduct_version: PreparationProducerIdentity[\"product_version\"];\n\t\trelative_path: string;\n\t\texecutable_sha256: Sha256Hex;\n\t}>;\n\tschema_manifest: {\n\t\tschema_id: typeof PREPARATION_SCHEMA_MANIFEST_V2_ID;\n\t\tmanifest_sha256: Sha256Hex;\n\t\trelative_path: \"dist/market-data-preparation/schema-manifest.json\";\n\t};\n\tschema_pins: Array<{ schema_id: string; schema_sha256: Sha256Hex }>;\n\tcapability_policy: { policy_id: string; policy_sha256: Sha256Hex };\n\tresource_policy: { policy_id: string; policy_sha256: Sha256Hex };\n};\n\ntype Codec<T> = {\n\tdecode(value: unknown): T;\n\tis(value: unknown): value is T;\n};\n\nfunction describeAjvErrors(errors: ErrorObject[] | null | undefined): string {\n\treturn (errors ?? [])\n\t\t.map(\n\t\t\t(error) =>\n\t\t\t\t`${error.instancePath || \"/\"} ${error.message ?? \"is invalid\"}`,\n\t\t)\n\t\t.join(\"; \");\n}\n\nfunction codec<T>(\n\tvalidate: ValidateFunction,\n\tsemantic?: (document: T) => void,\n): Codec<T> {\n\treturn {\n\t\tdecode(value: unknown): T {\n\t\t\tif (!validate(value)) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t`JSON Schema validation failed: ${describeAjvErrors(validate.errors)}`,\n\t\t\t\t);\n\t\t\t}\n\t\t\tsemantic?.(value as T);\n\t\t\treturn value as T;\n\t\t},\n\t\tis(value: unknown): value is T {\n\t\t\tif (!validate(value)) return false;\n\t\t\ttry {\n\t\t\t\tsemantic?.(value as T);\n\t\t\t\treturn true;\n\t\t\t} catch {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t},\n\t};\n}\n\nfunction fixedTimestampMs(value: string, field: string): number {\n\tconst parsed = Date.parse(value);\n\tif (\n\t\t!Number.isSafeInteger(parsed) ||\n\t\tnew Date(parsed).toISOString() !== value\n\t) {\n\t\tthrow new Error(`${field} is not a fixed UTC RFC3339 timestamp`);\n\t}\n\treturn parsed;\n}\n\nfunction assertResultTiming(input: {\n\tstarted_at: string;\n\tcompleted_at: string;\n}): void {\n\tif (\n\t\tfixedTimestampMs(input.completed_at, \"completed_at\") <\n\t\tfixedTimestampMs(input.started_at, \"started_at\")\n\t) {\n\t\tthrow new Error(\"completed_at precedes started_at\");\n\t}\n}\n\nconst ajv = new Ajv2020({ allErrors: true, strict: true });\najv.addSchema(archiveSelectionSchema);\najv.addSchema(promotionReceiptSchema);\n\nconst validateBackfillResultV2 = ajv.compile(backfillResultV2Schema);\nconst validateExportRequest = ajv.compile(exportRequestSchema);\nconst validateExportResult = ajv.compile(exportResultSchema);\nconst validateProductPin = ajv.compile(productPinSchema);\n\nexport const backfillResultV2Codec = codec<BackfillJobResultV2Wire>(\n\tvalidateBackfillResultV2,\n\t(result) => {\n\t\tassertDocumentSha256(result, \"result_sha256\");\n\t\tassertResultTiming(result);\n\t\tif (result.outcome.selection) {\n\t\t\tarchiveSelectionCodec.decode(result.outcome.selection);\n\t\t}\n\t\tif (result.outcome.receipt) {\n\t\t\tpromotionReceiptCodec.decode(result.outcome.receipt);\n\t\t}\n\t\tif (\n\t\t\tresult.outcome.status === \"promoted\" &&\n\t\t\t(!result.outcome.selection || !result.outcome.receipt)\n\t\t) {\n\t\t\tthrow new Error(\"promoted outcome requires selection and receipt\");\n\t\t}\n\t\tif (\n\t\t\tresult.outcome.status === \"already_covered\" &&\n\t\t\t!result.outcome.selection\n\t\t) {\n\t\t\tthrow new Error(\"already_covered outcome requires selection\");\n\t\t}\n\t},\n);\n\nexport const canonicalOrderBookExportRequestCodec =\n\tcodec<CanonicalOrderBookExportRequestWire>(\n\t\tvalidateExportRequest,\n\t\t(request) => {\n\t\t\tconst selection = archiveSelectionCodec.decode(request.selection);\n\t\t\tif (\n\t\t\t\tselection.coverage_class !== \"complete\" ||\n\t\t\t\tselection.selected_intervals.length === 0\n\t\t\t) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t\"export requires a complete non-empty archive selection\",\n\t\t\t\t);\n\t\t\t}\n\t\t},\n\t);\n\nexport const canonicalOrderBookExportResultCodec =\n\tcodec<CanonicalOrderBookExportResultWire>(validateExportResult, (result) => {\n\t\tassertDocumentSha256(result, \"result_sha256\");\n\t\tassertResultTiming(result);\n\t});\n\nexport const preparationProductPinCodec = codec<PreparationProductPinWire>(\n\tvalidateProductPin,\n\t(pin) => {\n\t\tconst expectedExecutables = new Map([\n\t\t\t[\n\t\t\t\t\"market-data-vendor-backfill\",\n\t\t\t\t{\n\t\t\t\t\tproductVersion: \"market-data-vendor-backfill/v1\",\n\t\t\t\t\trelativePath: \"dist/commands/market-data-vendor-backfill.js\",\n\t\t\t\t},\n\t\t\t],\n\t\t\t[\n\t\t\t\t\"cex-canonical-orderbook-export\",\n\t\t\t\t{\n\t\t\t\t\tproductVersion: \"cex-canonical-orderbook-export/v1\",\n\t\t\t\t\trelativePath: \"dist/commands/cex-canonical-orderbook-export.js\",\n\t\t\t\t},\n\t\t\t],\n\t\t] as const);\n\t\tif (pin.executables.length !== expectedExecutables.size) {\n\t\t\tthrow new Error(\"product pin must identify both preparation executables\");\n\t\t}\n\t\tfor (const executable of pin.executables) {\n\t\t\tconst expected = expectedExecutables.get(executable.product_id);\n\t\t\tif (\n\t\t\t\t!expected ||\n\t\t\t\texecutable.product_version !== expected.productVersion ||\n\t\t\t\texecutable.relative_path !== expected.relativePath\n\t\t\t) {\n\t\t\t\tthrow new Error(\"product pin executable identity is inconsistent\");\n\t\t\t}\n\t\t\tif (\n\t\t\t\texecutable.relative_path.split(/[\\\\/]+/u).includes(\"..\") ||\n\t\t\t\texecutable.relative_path.startsWith(\"/\")\n\t\t\t) {\n\t\t\t\tthrow new Error(\"product pin executable path is unsafe\");\n\t\t\t}\n\t\t}\n\t\tif (\n\t\t\tpin.schema_manifest.schema_id !==\n\t\t\t\tPREPARATION_SCHEMA_MANIFEST_V2.schema_id ||\n\t\t\tpin.schema_manifest.manifest_sha256 !==\n\t\t\t\tPREPARATION_SCHEMA_MANIFEST_V2.manifest_sha256\n\t\t) {\n\t\t\tthrow new Error(\n\t\t\t\t\"product pin schema manifest identity does not match the preparation manifest\",\n\t\t\t);\n\t\t}\n\t\tconst actualSchemas = pin.schema_pins\n\t\t\t.map(({ schema_id, schema_sha256 }) => `${schema_id}:${schema_sha256}`)\n\t\t\t.sort();\n\t\tconst expectedSchemas = PREPARATION_SCHEMA_ARTIFACTS.map(\n\t\t\t({ schema_id, schema_sha256 }) => `${schema_id}:${schema_sha256}`,\n\t\t).sort();\n\t\tif (JSON.stringify(actualSchemas) !== JSON.stringify(expectedSchemas)) {\n\t\t\tthrow new Error(\n\t\t\t\t\"product pin schema identities do not match the preparation manifest\",\n\t\t\t);\n\t\t}\n\t\tif (\n\t\t\tpin.capability_policy.policy_id !== CAPABILITY_POLICY.policy_id ||\n\t\t\tpin.capability_policy.policy_sha256 !== CAPABILITY_POLICY.policy_sha256 ||\n\t\t\tpin.resource_policy.policy_id !== RESOURCE_POLICY.policy_id ||\n\t\t\tpin.resource_policy.policy_sha256 !== RESOURCE_POLICY.policy_sha256\n\t\t) {\n\t\t\tthrow new Error(\"product pin policy identities are inconsistent\");\n\t\t}\n\t},\n);\n\nexport function finalizeBackfillResultV2(\n\tcontent: Omit<BackfillJobResultV2Wire, \"result_sha256\">,\n): BackfillJobResultV2Wire {\n\treturn backfillResultV2Codec.decode({\n\t\t...content,\n\t\tresult_sha256: documentSha256(content, \"result_sha256\"),\n\t});\n}\n\nexport function finalizeCanonicalOrderBookExportResult(\n\tcontent: Omit<CanonicalOrderBookExportResultWire, \"result_sha256\">,\n): CanonicalOrderBookExportResultWire {\n\treturn canonicalOrderBookExportResultCodec.decode({\n\t\t...content,\n\t\tresult_sha256: documentSha256(content, \"result_sha256\"),\n\t});\n}\n\nconst preparationSchemaArtifacts = [\n\t[\"schemas/backfill-request-v1.schema.json\", requestSchema],\n\t[\"schemas/backfill-result-v2.schema.json\", backfillResultV2Schema],\n\t[\"schemas/required-clock-v1.schema.json\", requiredClockSchema],\n\t[\"schemas/archive-selection-v1.schema.json\", archiveSelectionSchema],\n\t[\"schemas/promotion-receipt-v1.schema.json\", promotionReceiptSchema],\n\t[\n\t\t\"schemas/canonical-orderbook-export-request-v1.schema.json\",\n\t\texportRequestSchema,\n\t],\n\t[\n\t\t\"schemas/canonical-orderbook-export-result-v1.schema.json\",\n\t\texportResultSchema,\n\t],\n\t[\"schemas/preparation-product-pin-v1.schema.json\", productPinSchema],\n] as const;\n\nexport const PREPARATION_SCHEMA_ARTIFACTS = Object.freeze(\n\tpreparationSchemaArtifacts.map(([path, schema]) =>\n\t\tObject.freeze({\n\t\t\tschema_id: schema.$id,\n\t\t\tpath,\n\t\t\tschema_sha256: jcsSha256(schema),\n\t\t\tschema,\n\t\t}),\n\t),\n);\n\nconst preparationSchemaManifestContent = {\n\tschema_id: PREPARATION_SCHEMA_MANIFEST_V2_ID,\n\tartifacts: PREPARATION_SCHEMA_ARTIFACTS.map(\n\t\t({ schema_id, path, schema_sha256 }) => ({\n\t\t\tschema_id,\n\t\t\tpath,\n\t\t\tschema_sha256,\n\t\t}),\n\t),\n};\n\nexport const PREPARATION_SCHEMA_MANIFEST_V2 = Object.freeze({\n\t...preparationSchemaManifestContent,\n\tmanifest_sha256: jcsSha256(preparationSchemaManifestContent),\n});\n",
133
- "import Ajv2020, {\n\ttype ErrorObject,\n\ttype ValidateFunction,\n} from \"ajv/dist/2020.js\";\nimport { z } from \"zod\";\nimport { sha256Canonical } from \"../market-data-archive/capture-contract\";\nimport { assertDocumentSha256, documentSha256, jcsSha256 } from \"./identity\";\nimport {\n\tCAPABILITY_POLICY,\n\tLEGACY_CAPABILITY_POLICY,\n\tRESOURCE_POLICY,\n} from \"./manifests\";\nimport archiveSelectionSchemaJson from \"./schemas/archive-selection.schema.json\" with {\n\ttype: \"json\",\n};\nimport promotionReceiptSchemaJson from \"./schemas/promotion-receipt.schema.json\" with {\n\ttype: \"json\",\n};\nimport requestSchemaJson from \"./schemas/request.schema.json\" with {\n\ttype: \"json\",\n};\nimport requiredClockSchemaJson from \"./schemas/required-clock.schema.json\" with {\n\ttype: \"json\",\n};\nimport resultSchemaJson from \"./schemas/result.schema.json\" with {\n\ttype: \"json\",\n};\n\nexport const BACKFILL_REQUEST_SCHEMA_ID = requestSchemaJson.$id;\nexport const REQUIRED_CLOCK_SCHEMA_ID = requiredClockSchemaJson.$id;\nexport const ARCHIVE_SELECTION_SCHEMA_ID = archiveSelectionSchemaJson.$id;\nexport const PROMOTION_RECEIPT_SCHEMA_ID = promotionReceiptSchemaJson.$id;\nexport const BACKFILL_RESULT_SCHEMA_ID = resultSchemaJson.$id;\n\nexport type FixedUtcTimestamp = string;\nexport type Sha256Hex = string;\nexport type LowercaseUuid = string;\n\nexport type CanonicalScopeWire = {\n\texchange: string;\n\ttrading_pair: string;\n\tmarket_type: \"spot\" | \"swap\" | \"future\";\n\tfeed: \"ORDERBOOK\";\n};\n\nexport type CoveragePolicyWire = {\n\tpolicy_id: \"prior-asof-strict/v1\";\n\tmax_asof_lag_ms: number;\n\tfuture_rows: \"reject\";\n\tmissing_required_event: \"fail\";\n};\n\nexport type RequiredClockWire = {\n\tschema_id: typeof REQUIRED_CLOCK_SCHEMA_ID;\n\tclock_id: LowercaseUuid;\n\tclock_sha256: Sha256Hex;\n\tcreated_at: FixedUtcTimestamp;\n\ttargets: Array<{ target_id: LowercaseUuid; target_at: FixedUtcTimestamp }>;\n};\n\nexport type ArchiveSelectionWire = {\n\tschema_id: typeof ARCHIVE_SELECTION_SCHEMA_ID;\n\tselection_sha256: Sha256Hex;\n\tscope: CanonicalScopeWire;\n\trequired_clock: {\n\t\tclock_id: LowercaseUuid;\n\t\tclock_sha256: Sha256Hex;\n\t\tevent_count: number;\n\t};\n\tcoverage_policy: CoveragePolicyWire;\n\tsource_policy: \"authoritative_window\" | \"fill_gaps\";\n\tcoverage_class: \"complete\" | \"partial\" | \"missing\";\n\trequested_intervals: Array<{\n\t\tstart_at: FixedUtcTimestamp;\n\t\tend_at: FixedUtcTimestamp;\n\t}>;\n\tselected_intervals: Array<{\n\t\tstart_at: FixedUtcTimestamp;\n\t\tend_at: FixedUtcTimestamp;\n\t\tcapture_bundle_id: Sha256Hex;\n\t\tcapture_origin: \"production_capture\" | \"vendor_historical_backfill\";\n\t}>;\n\tprecedence: Array<\"archive\" | \"vendor\">;\n\tbundles: Array<{\n\t\tcapture_bundle_id: Sha256Hex;\n\t\tcapture_origin: \"production_capture\" | \"vendor_historical_backfill\";\n\t\tinterval: { start_at: FixedUtcTimestamp; end_at: FixedUtcTimestamp };\n\t\tqualification: null | {\n\t\t\tqualification_event_id: LowercaseUuid;\n\t\t\tstate: \"qualified\";\n\t\t\treceipt_id: Sha256Hex;\n\t\t\tpromotion_identity_sha256: Sha256Hex;\n\t\t};\n\t}>;\n\tsupport_anchors: Array<{\n\t\tcapture_bundle_id: Sha256Hex;\n\t\traw_capture_id: Sha256Hex;\n\t\tsnapshot_id: Sha256Hex;\n\t\tsource_time: FixedUtcTimestamp;\n\t\tnormalized_summary_checksum: Sha256Hex;\n\t\tmetadata_ref: {\n\t\t\tcapture_origin: \"production_capture\" | \"vendor_historical_backfill\";\n\t\t\tqualification_event_id: LowercaseUuid | null;\n\t\t\treceipt_id: Sha256Hex | null;\n\t\t};\n\t}>;\n\treceipt_ids: Sha256Hex[];\n\tqualification_event_ids: LowercaseUuid[];\n\tresolved_at: FixedUtcTimestamp;\n};\n\nexport type BackfillRequestWire = {\n\tschema_id: typeof BACKFILL_REQUEST_SCHEMA_ID;\n\trequest_id: LowercaseUuid;\n\tattempt_id: LowercaseUuid;\n\tidempotency_key: Sha256Hex;\n\tscope: CanonicalScopeWire;\n\twindow: { start_at: FixedUtcTimestamp; end_at: FixedUtcTimestamp };\n\tdepth: number;\n\tconstruction_mode: \"sampled_top_n_snapshot\" | \"exact_l2_reconstruction\";\n\tsource_policy: \"authoritative_window\" | \"fill_gaps\";\n\ttarget: { environment: string; cluster: string };\n\tcoverage_policy: CoveragePolicyWire;\n\trequired_clock: {\n\t\tschema_id: typeof REQUIRED_CLOCK_SCHEMA_ID;\n\t\tclock_id: LowercaseUuid;\n\t\tfile_name: string;\n\t\tclock_sha256: Sha256Hex;\n\t\tevent_count: number;\n\t};\n\tinitial_selection: ArchiveSelectionWire;\n\texpected_canonical_schema: {\n\t\tschema_id: string;\n\t\tschema_sha256: Sha256Hex;\n\t};\n\tproduct_pins: {\n\t\tcapability_policy: { policy_id: string; policy_sha256: Sha256Hex };\n\t\tresource_policy: { policy_id: string; policy_sha256: Sha256Hex };\n\t};\n\tproduction_authorization_id: LowercaseUuid;\n};\n\nexport type PromotionReceiptWire = {\n\tschema_id: typeof PROMOTION_RECEIPT_SCHEMA_ID;\n\treceipt_id: Sha256Hex;\n\tpromotion_identity_sha256: Sha256Hex;\n\tverified_at: FixedUtcTimestamp;\n\trequest_id: LowercaseUuid;\n\tidempotency_key: Sha256Hex;\n\tsource: \"external_backfill\";\n\tcapture_origin: \"vendor_historical_backfill\";\n\tsource_mode: \"vendor_historical_backfill_v1\";\n\tprovider: string;\n\tadapter_version: string;\n\teffective_policies: {\n\t\tcapability_policy: { policy_id: string; policy_sha256: Sha256Hex };\n\t\tresource_policy: { policy_id: string; policy_sha256: Sha256Hex };\n\t\tadapter_policy: { policy_id: string; policy_sha256: Sha256Hex };\n\t\tacquisition_policy: { policy_id: string; policy_sha256: Sha256Hex };\n\t};\n\tcapture_bundle_id: Sha256Hex;\n\tscope: CanonicalScopeWire;\n\twindow: { start_at: FixedUtcTimestamp; end_at: FixedUtcTimestamp };\n\tdepth: number;\n\tconstruction_mode: \"sampled_top_n_snapshot\" | \"exact_l2_reconstruction\";\n\tcanonical_schema: { schema_id: string; schema_sha256: Sha256Hex };\n\tcoverage_policy: CoveragePolicyWire;\n\tselection_sha256: Sha256Hex;\n\tvendor_semantic_digest: Sha256Hex;\n\tcanonical_semantic_digest: Sha256Hex;\n\tprefix_digest: Sha256Hex;\n\tsuffix_digest: Sha256Hex;\n\tseam_verified: true;\n\tcoverage_verified: true;\n\tdataset_objects: Array<{\n\t\tidentity: string;\n\t\tchecksum: Sha256Hex;\n\t\tbytes: number;\n\t\trows: number;\n\t}>;\n};\n\nexport const FINAL_BACKFILL_STATUSES = [\n\t\"request_invalid\",\n\t\"archive_preflight_failed\",\n\t\"already_covered\",\n\t\"promoted\",\n\t\"capability_unsupported\",\n\t\"credentials_missing\",\n\t\"vendor_fetch_failed\",\n\t\"archive_ingest_failed\",\n\t\"promotion_verification_failed\",\n] as const;\n\nexport type FinalBackfillStatus = (typeof FINAL_BACKFILL_STATUSES)[number];\n\nexport type BackfillJobResultWire = {\n\tschema_id: typeof BACKFILL_RESULT_SCHEMA_ID;\n\tresult_sha256: Sha256Hex;\n\tjob_id: LowercaseUuid;\n\trequest_file_sha256: Sha256Hex | null;\n\texecutable_sha256: Sha256Hex;\n\tschema_manifest_sha256: Sha256Hex;\n\tcex_package: {\n\t\tname: \"@usherlabs/cex-broker\";\n\t\tversion: string;\n\t\tpackage_sha256: Sha256Hex;\n\t};\n\tcapability_policy: { policy_id: string; policy_sha256: Sha256Hex };\n\tresource_policy: { policy_id: string; policy_sha256: Sha256Hex };\n\tbuild: { fiet_tee_commit: string; created_at: FixedUtcTimestamp };\n\tstarted_at: FixedUtcTimestamp;\n\tcompleted_at: FixedUtcTimestamp;\n\toutcome: {\n\t\tstatus: FinalBackfillStatus;\n\t\treason_code: string;\n\t\treason_subcode: string | null;\n\t\trequest_id: LowercaseUuid | null;\n\t\tidempotency_key: Sha256Hex | null;\n\t\ttarget: { environment: string; cluster: string } | null;\n\t\tselection: ArchiveSelectionWire | null;\n\t\treceipt: PromotionReceiptWire | null;\n\t\tdiagnostics: Record<string, string | number | boolean>;\n\t};\n};\n\ntype Codec<T> = {\n\tdecode(value: unknown): T;\n\tis(value: unknown): value is T;\n};\n\nfunction describeAjvErrors(errors: ErrorObject[] | null | undefined): string {\n\treturn (errors ?? [])\n\t\t.map(\n\t\t\t(error) =>\n\t\t\t\t`${error.instancePath || \"/\"} ${error.message ?? \"is invalid\"}`,\n\t\t)\n\t\t.join(\"; \");\n}\n\nfunction codec<T>(\n\tvalidate: ValidateFunction,\n\tsemantic?: (document: T) => void,\n): Codec<T> {\n\treturn {\n\t\tdecode(value: unknown): T {\n\t\t\tif (!validate(value)) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t`JSON Schema validation failed: ${describeAjvErrors(validate.errors)}`,\n\t\t\t\t);\n\t\t\t}\n\t\t\tsemantic?.(value as T);\n\t\t\treturn value as T;\n\t\t},\n\t\tis(value: unknown): value is T {\n\t\t\tif (!validate(value)) return false;\n\t\t\ttry {\n\t\t\t\tsemantic?.(value as T);\n\t\t\t\treturn true;\n\t\t\t} catch {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t},\n\t};\n}\n\nfunction fixedTimestampMs(value: string, field: string): number {\n\tconst parsed = Date.parse(value);\n\tif (\n\t\t!Number.isSafeInteger(parsed) ||\n\t\tnew Date(parsed).toISOString() !== value\n\t) {\n\t\tthrow new Error(`${field} is not a fixed UTC RFC3339 timestamp`);\n\t}\n\treturn parsed;\n}\n\nfunction assertIncreasingInterval(\n\tinterval: { start_at: string; end_at: string },\n\tfield: string,\n): void {\n\tif (\n\t\tfixedTimestampMs(interval.end_at, `${field}.end_at`) <=\n\t\tfixedTimestampMs(interval.start_at, `${field}.start_at`)\n\t) {\n\t\tthrow new Error(`${field} must be an increasing half-open interval`);\n\t}\n}\n\nconst ajv = new Ajv2020({ allErrors: true, strict: true });\najv.addSchema(archiveSelectionSchemaJson);\najv.addSchema(promotionReceiptSchemaJson);\nconst validateRequiredClock = ajv.compile(requiredClockSchemaJson);\nconst validateArchiveSelection = ajv.getSchema(ARCHIVE_SELECTION_SCHEMA_ID);\nconst validatePromotionReceipt = ajv.getSchema(PROMOTION_RECEIPT_SCHEMA_ID);\nconst validateBackfillRequest = ajv.compile(requestSchemaJson);\nconst validateBackfillResult = ajv.compile(resultSchemaJson);\nif (!validateArchiveSelection || !validatePromotionReceipt) {\n\tthrow new Error(\"Backfill referenced schemas were not registered\");\n}\n\nexport const requiredClockCodec = codec<RequiredClockWire>(\n\tvalidateRequiredClock,\n\t(clock) => {\n\t\tassertDocumentSha256(clock, \"clock_sha256\");\n\t\tlet previous = -1;\n\t\tconst targetIds = new Set<string>();\n\t\tfor (const [index, target] of clock.targets.entries()) {\n\t\t\tconst at = fixedTimestampMs(\n\t\t\t\ttarget.target_at,\n\t\t\t\t`targets[${index}].target_at`,\n\t\t\t);\n\t\t\tif (at <= previous)\n\t\t\t\tthrow new Error(\"required clock targets must be strictly increasing\");\n\t\t\tif (targetIds.has(target.target_id))\n\t\t\t\tthrow new Error(\"required clock target IDs must be unique\");\n\t\t\ttargetIds.add(target.target_id);\n\t\t\tprevious = at;\n\t\t}\n\t},\n);\n\nexport const archiveSelectionCodec = codec<ArchiveSelectionWire>(\n\tvalidateArchiveSelection,\n\t(selection) => {\n\t\tassertDocumentSha256(selection, \"selection_sha256\");\n\t\tselection.requested_intervals.forEach((interval, index) => {\n\t\t\tassertIncreasingInterval(interval, `requested_intervals[${index}]`);\n\t\t});\n\t\tselection.selected_intervals.forEach((interval, index) => {\n\t\t\tassertIncreasingInterval(interval, `selected_intervals[${index}]`);\n\t\t});\n\t\tselection.bundles.forEach((bundle, index) => {\n\t\t\tassertIncreasingInterval(bundle.interval, `bundles[${index}].interval`);\n\t\t});\n\t\tif (\n\t\t\tselection.coverage_class === \"missing\" &&\n\t\t\tselection.selected_intervals.length !== 0\n\t\t) {\n\t\t\tthrow new Error(\"missing selection cannot contain selected intervals\");\n\t\t}\n\t},\n);\n\nfunction promotionSemanticFields(\n\treceipt: PromotionReceiptWire,\n): Record<string, unknown> {\n\treturn Object.fromEntries(\n\t\tObject.entries(receipt).filter(\n\t\t\t([key]) =>\n\t\t\t\tkey !== \"receipt_id\" &&\n\t\t\t\tkey !== \"promotion_identity_sha256\" &&\n\t\t\t\tkey !== \"verified_at\",\n\t\t),\n\t);\n}\n\nexport function promotionIdentitySha256(\n\treceipt: Omit<\n\t\tPromotionReceiptWire,\n\t\t\"receipt_id\" | \"promotion_identity_sha256\"\n\t> &\n\t\tPartial<\n\t\t\tPick<PromotionReceiptWire, \"receipt_id\" | \"promotion_identity_sha256\">\n\t\t>,\n): string {\n\treturn jcsSha256(promotionSemanticFields(receipt as PromotionReceiptWire));\n}\n\nexport const promotionReceiptCodec = codec<PromotionReceiptWire>(\n\tvalidatePromotionReceipt,\n\t(receipt) => {\n\t\tassertIncreasingInterval(receipt.window, \"window\");\n\t\tif (\n\t\t\tpromotionIdentitySha256(receipt) !== receipt.promotion_identity_sha256\n\t\t) {\n\t\t\tthrow new Error(\n\t\t\t\t\"promotion_identity_sha256 does not match semantic receipt content\",\n\t\t\t);\n\t\t}\n\t\tassertDocumentSha256(receipt, \"receipt_id\");\n\t},\n);\n\nexport const backfillResultCodec = codec<BackfillJobResultWire>(\n\tvalidateBackfillResult,\n\t(result) => {\n\t\tassertDocumentSha256(result, \"result_sha256\");\n\t\tconst startedAt = fixedTimestampMs(result.started_at, \"started_at\");\n\t\tconst completedAt = fixedTimestampMs(result.completed_at, \"completed_at\");\n\t\tif (completedAt < startedAt)\n\t\t\tthrow new Error(\"completed_at precedes started_at\");\n\t\tif (result.outcome.selection)\n\t\t\tarchiveSelectionCodec.decode(result.outcome.selection);\n\t\tif (result.outcome.receipt)\n\t\t\tpromotionReceiptCodec.decode(result.outcome.receipt);\n\t\tif (\n\t\t\tresult.outcome.status === \"promoted\" &&\n\t\t\t(!result.outcome.selection || !result.outcome.receipt)\n\t\t) {\n\t\t\tthrow new Error(\"promoted outcome requires selection and receipt\");\n\t\t}\n\t\tif (\n\t\t\tresult.outcome.status === \"already_covered\" &&\n\t\t\t!result.outcome.selection\n\t\t) {\n\t\t\tthrow new Error(\"already_covered outcome requires selection\");\n\t\t}\n\t},\n);\n\nfunction wireIdempotencyBusinessFields(\n\trequest: Omit<BackfillRequestWire, \"idempotency_key\"> & {\n\t\tidempotency_key?: string;\n\t},\n) {\n\treturn {\n\t\tscope: request.scope,\n\t\twindow: request.window,\n\t\tdepth: request.depth,\n\t\tconstruction_mode: request.construction_mode,\n\t\trequired_clock_sha256: request.required_clock.clock_sha256,\n\t\tcoverage_policy: request.coverage_policy,\n\t\tsource_policy: request.source_policy,\n\t\texpected_canonical_schema: request.expected_canonical_schema,\n\t\ttarget: request.target,\n\t};\n}\n\nexport const backfillRequestCodec = {\n\tdecode(value: unknown): { wire: BackfillRequestWire } {\n\t\tif (!validateBackfillRequest(value)) {\n\t\t\tthrow new Error(\n\t\t\t\t`JSON Schema validation failed: ${describeAjvErrors(validateBackfillRequest.errors)}`,\n\t\t\t);\n\t\t}\n\t\tconst request = value as BackfillRequestWire;\n\t\tarchiveSelectionCodec.decode(request.initial_selection);\n\t\tassertIncreasingInterval(request.window, \"window\");\n\t\tif (request.idempotency_key !== createBackfillIdempotencyKey(request)) {\n\t\t\tthrow new Error(\n\t\t\t\t\"idempotency_key does not match canonical business fields\",\n\t\t\t);\n\t\t}\n\t\tconst capabilityPolicyMatches = [\n\t\t\tCAPABILITY_POLICY,\n\t\t\tLEGACY_CAPABILITY_POLICY,\n\t\t].some(\n\t\t\t(policy) =>\n\t\t\t\trequest.product_pins.capability_policy.policy_id === policy.policy_id &&\n\t\t\t\trequest.product_pins.capability_policy.policy_sha256 ===\n\t\t\t\t\tpolicy.policy_sha256,\n\t\t);\n\t\tif (\n\t\t\t!capabilityPolicyMatches ||\n\t\t\trequest.product_pins.resource_policy.policy_id !==\n\t\t\t\tRESOURCE_POLICY.policy_id ||\n\t\t\trequest.product_pins.resource_policy.policy_sha256 !==\n\t\t\t\tRESOURCE_POLICY.policy_sha256\n\t\t) {\n\t\t\tthrow new Error(\n\t\t\t\t\"request policy pins do not match the effective package policies\",\n\t\t\t);\n\t\t}\n\t\tif (\n\t\t\trequest.required_clock.clock_id !==\n\t\t\t\trequest.initial_selection.required_clock.clock_id ||\n\t\t\trequest.required_clock.clock_sha256 !==\n\t\t\t\trequest.initial_selection.required_clock.clock_sha256 ||\n\t\t\trequest.required_clock.event_count !==\n\t\t\t\trequest.initial_selection.required_clock.event_count\n\t\t) {\n\t\t\tthrow new Error(\n\t\t\t\t\"initial selection required clock reference does not match request\",\n\t\t\t);\n\t\t}\n\t\tif (\n\t\t\tjcsSha256(request.scope) !== jcsSha256(request.initial_selection.scope)\n\t\t) {\n\t\t\tthrow new Error(\"initial selection scope does not match request\");\n\t\t}\n\t\tif (\n\t\t\tjcsSha256(request.coverage_policy) !==\n\t\t\tjcsSha256(request.initial_selection.coverage_policy)\n\t\t) {\n\t\t\tthrow new Error(\n\t\t\t\t\"initial selection coverage policy does not match request\",\n\t\t\t);\n\t\t}\n\t\tif (request.source_policy !== request.initial_selection.source_policy) {\n\t\t\tthrow new Error(\"initial selection source policy does not match request\");\n\t\t}\n\t\treturn { wire: request };\n\t},\n\tis(value: unknown): value is BackfillRequestWire {\n\t\ttry {\n\t\t\tthis.decode(value);\n\t\t\treturn true;\n\t\t} catch {\n\t\t\treturn false;\n\t\t}\n\t},\n};\n\nexport function finalizeRequiredClock(\n\tclock: Omit<RequiredClockWire, \"clock_sha256\">,\n): RequiredClockWire {\n\treturn requiredClockCodec.decode({\n\t\t...clock,\n\t\tclock_sha256: documentSha256(clock, \"clock_sha256\"),\n\t});\n}\n\nexport function finalizeArchiveSelection(\n\tselection: Omit<ArchiveSelectionWire, \"selection_sha256\">,\n): ArchiveSelectionWire {\n\treturn archiveSelectionCodec.decode({\n\t\t...selection,\n\t\tselection_sha256: documentSha256(selection, \"selection_sha256\"),\n\t});\n}\n\nexport function finalizeBackfillResult(\n\tresult: Omit<BackfillJobResultWire, \"result_sha256\"> &\n\t\tPartial<Pick<BackfillJobResultWire, \"result_sha256\">>,\n): BackfillJobResultWire {\n\tconst { result_sha256: _resultSha256, ...content } = result;\n\treturn backfillResultCodec.decode({\n\t\t...content,\n\t\tresult_sha256: documentSha256(content, \"result_sha256\"),\n\t});\n}\n\nexport const BACKFILL_REQUEST_SCHEMA_VERSION =\n\t\"market-data-vendor-backfill-request/v1\" as const;\nexport const BACKFILL_RESULT_SCHEMA_VERSION =\n\t\"market-data-vendor-backfill-result/v1\" as const;\nexport const BACKFILL_PROMOTION_SCHEMA_VERSION =\n\t\"market-data-vendor-backfill-promotion-receipt/v1\" as const;\nexport const EXTERNAL_BACKFILL_SOURCE = \"external_backfill\" as const;\nexport const HISTORICAL_VENDOR_SOURCE_MODE =\n\t\"vendor_historical_backfill_v1\" as const;\nexport const VENDOR_DATASET_RAW_CAPTURE_SCOPE =\n\t\"vendor_normalized_dataset_file\" as const;\n\nconst nonEmpty = z.string().trim().min(1);\nconst sha256 = z.string().regex(/^[a-f0-9]{64}$/);\nconst timestampMs = z.number().int().nonnegative().max(Number.MAX_SAFE_INTEGER);\n\nexport const backfillRequestSchema = z\n\t.object({\n\t\tschemaVersion: z.literal(BACKFILL_REQUEST_SCHEMA_VERSION),\n\t\trequestId: nonEmpty,\n\t\tidempotencyKey: sha256,\n\t\tproviderPolicy: z\n\t\t\t.object({\n\t\t\t\tprovider: z.literal(\"cryptohftdata\"),\n\t\t\t\tallowedAdapterVersions: z.array(nonEmpty).min(1).max(16),\n\t\t\t})\n\t\t\t.strict(),\n\t\tscope: z\n\t\t\t.object({\n\t\t\t\texchange: nonEmpty,\n\t\t\t\ttradingPair: nonEmpty,\n\t\t\t\tsourceSymbol: nonEmpty,\n\t\t\t\tmarketType: z.enum([\"spot\", \"swap\", \"future\"]),\n\t\t\t\tfeed: z.literal(\"ORDERBOOK\"),\n\t\t\t})\n\t\t\t.strict(),\n\t\twindow: z\n\t\t\t.object({ startTimeMs: timestampMs, endTimeMs: timestampMs })\n\t\t\t.strict()\n\t\t\t.refine(({ startTimeMs, endTimeMs }) => endTimeMs > startTimeMs, {\n\t\t\t\tmessage: \"endTimeMs must be greater than startTimeMs\",\n\t\t\t}),\n\t\tdepth: z.number().int().min(1).max(500),\n\t\tconstructionMode: z.enum([\n\t\t\t\"sampled_top_n_snapshot\",\n\t\t\t\"exact_l2_reconstruction\",\n\t\t]),\n\t\trequiredClockTargetsMs: z.array(timestampMs).min(1).max(100_000),\n\t\tmaxPriorAsOfLagMs: z.number().int().nonnegative().max(86_400_000),\n\t\tsourcePolicy: z.enum([\"authoritative_window\", \"fill_gaps\"]),\n\t\tbudgets: z\n\t\t\t.object({\n\t\t\t\tmaxFiles: z.number().int().min(1).max(10_000),\n\t\t\t\tmaxBytes: z\n\t\t\t\t\t.number()\n\t\t\t\t\t.int()\n\t\t\t\t\t.min(1)\n\t\t\t\t\t.max(100 * 1024 * 1024 * 1024),\n\t\t\t\tmaxRows: z.number().int().min(1).max(1_000_000_000),\n\t\t\t\tmaxDurationMs: z\n\t\t\t\t\t.number()\n\t\t\t\t\t.int()\n\t\t\t\t\t.min(1)\n\t\t\t\t\t.max(24 * 60 * 60 * 1_000),\n\t\t\t\tmaxBoundaryLookbackMs: z\n\t\t\t\t\t.number()\n\t\t\t\t\t.int()\n\t\t\t\t\t.nonnegative()\n\t\t\t\t\t.max(7 * 24 * 60 * 60 * 1_000),\n\t\t\t})\n\t\t\t.strict(),\n\t\texpectedProduct: z\n\t\t\t.object({\n\t\t\t\tpackageName: z.literal(\"@usherlabs/cex-broker\"),\n\t\t\t\tpackageVersion: nonEmpty.optional(),\n\t\t\t\tcanonicalSchemaVersion: nonEmpty,\n\t\t\t\tchecksumAlgorithm: z.literal(\"sha256-canonical-json-v1\"),\n\t\t\t})\n\t\t\t.strict(),\n\t})\n\t.strict()\n\t.superRefine((request, context) => {\n\t\tconst targets = request.requiredClockTargetsMs;\n\t\tfor (let index = 0; index < targets.length; index += 1) {\n\t\t\tconst target = targets[index] as number;\n\t\t\tif (\n\t\t\t\ttarget < request.window.startTimeMs ||\n\t\t\t\ttarget >= request.window.endTimeMs\n\t\t\t) {\n\t\t\t\tcontext.addIssue({\n\t\t\t\t\tcode: \"custom\",\n\t\t\t\t\tpath: [\"requiredClockTargetsMs\", index],\n\t\t\t\t\tmessage: \"clock target must be inside the half-open request window\",\n\t\t\t\t});\n\t\t\t}\n\t\t\tif (index > 0 && target <= (targets[index - 1] as number)) {\n\t\t\t\tcontext.addIssue({\n\t\t\t\t\tcode: \"custom\",\n\t\t\t\t\tpath: [\"requiredClockTargetsMs\", index],\n\t\t\t\t\tmessage: \"clock targets must be strictly increasing\",\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t});\n\ntype ProvisionalBackfillDomainRequest = z.infer<typeof backfillRequestSchema>;\n\nexport type MarketDataVendorBackfillRequest =\n\tProvisionalBackfillDomainRequest & {\n\t\tattemptId?: string;\n\t\ttarget?: { environment: string; cluster: string };\n\t\tcoveragePolicy?: CoveragePolicyWire;\n\t\trequiredClock?: RequiredClockWire;\n\t\tinitialSelection?: ArchiveSelectionWire;\n\t\texpectedCanonicalSchema?: BackfillRequestWire[\"expected_canonical_schema\"];\n\t\tproductPins?: BackfillRequestWire[\"product_pins\"];\n\t\tproductionAuthorizationId?: string;\n\t\twire?: BackfillRequestWire;\n\t};\n\nexport function decodeBackfillRunDocuments(input: {\n\trequest: unknown;\n\trequiredClock: unknown;\n}): MarketDataVendorBackfillRequest {\n\tconst { wire } = backfillRequestCodec.decode(input.request);\n\tconst requiredClock = requiredClockCodec.decode(input.requiredClock);\n\tif (\n\t\trequiredClock.clock_id !== wire.required_clock.clock_id ||\n\t\trequiredClock.clock_sha256 !== wire.required_clock.clock_sha256 ||\n\t\trequiredClock.targets.length !== wire.required_clock.event_count\n\t) {\n\t\tthrow new Error(\"required clock sidecar does not match request reference\");\n\t}\n\tconst startTimeMs = fixedTimestampMs(wire.window.start_at, \"window.start_at\");\n\tconst endTimeMs = fixedTimestampMs(wire.window.end_at, \"window.end_at\");\n\tconst requiredClockTargetsMs = requiredClock.targets.map((target, index) => {\n\t\tconst targetTimeMs = fixedTimestampMs(\n\t\t\ttarget.target_at,\n\t\t\t`required_clock.targets[${index}].target_at`,\n\t\t);\n\t\tif (targetTimeMs < startTimeMs || targetTimeMs >= endTimeMs) {\n\t\t\tthrow new Error(\"required clock target is outside request window\");\n\t\t}\n\t\treturn targetTimeMs;\n\t});\n\tconst capabilityProfile = CAPABILITY_POLICY.profiles.find(\n\t\t(profile) =>\n\t\t\tprofile.exchange === wire.scope.exchange &&\n\t\t\tprofile.market_type === wire.scope.market_type &&\n\t\t\tprofile.feed === wire.scope.feed &&\n\t\t\tprofile.canonical_trading_pair === wire.scope.trading_pair,\n\t);\n\treturn {\n\t\tschemaVersion: BACKFILL_REQUEST_SCHEMA_VERSION,\n\t\trequestId: wire.request_id,\n\t\tidempotencyKey: wire.idempotency_key,\n\t\tproviderPolicy: {\n\t\t\tprovider: \"cryptohftdata\",\n\t\t\tallowedAdapterVersions: [\n\t\t\t\tCAPABILITY_POLICY.adapter_policy.adapter_version,\n\t\t\t],\n\t\t},\n\t\tscope: {\n\t\t\texchange: wire.scope.exchange,\n\t\t\ttradingPair: wire.scope.trading_pair,\n\t\t\tsourceSymbol:\n\t\t\t\tcapabilityProfile?.resolved_symbol ?? wire.scope.trading_pair,\n\t\t\tmarketType: wire.scope.market_type,\n\t\t\tfeed: wire.scope.feed,\n\t\t},\n\t\twindow: { startTimeMs, endTimeMs },\n\t\tdepth: wire.depth,\n\t\tconstructionMode: wire.construction_mode,\n\t\trequiredClockTargetsMs,\n\t\tmaxPriorAsOfLagMs: wire.coverage_policy.max_asof_lag_ms,\n\t\tsourcePolicy: wire.source_policy,\n\t\tbudgets: {\n\t\t\tmaxFiles: RESOURCE_POLICY.limits.max_files,\n\t\t\tmaxBytes: RESOURCE_POLICY.limits.max_bytes,\n\t\t\tmaxRows: RESOURCE_POLICY.limits.max_rows,\n\t\t\tmaxDurationMs: RESOURCE_POLICY.limits.max_duration_ms,\n\t\t\tmaxBoundaryLookbackMs: Math.min(\n\t\t\t\tRESOURCE_POLICY.limits.max_boundary_lookback_ms,\n\t\t\t\tCAPABILITY_POLICY.acquisition_policy.initialization_lookback_ms,\n\t\t\t),\n\t\t},\n\t\texpectedProduct: {\n\t\t\tpackageName: \"@usherlabs/cex-broker\",\n\t\t\tcanonicalSchemaVersion: \"1.0.0\",\n\t\t\tchecksumAlgorithm: \"sha256-canonical-json-v1\",\n\t\t},\n\t\tattemptId: wire.attempt_id,\n\t\ttarget: wire.target,\n\t\tcoveragePolicy: wire.coverage_policy,\n\t\trequiredClock,\n\t\tinitialSelection: wire.initial_selection,\n\t\texpectedCanonicalSchema: wire.expected_canonical_schema,\n\t\tproductPins: wire.product_pins,\n\t\tproductionAuthorizationId: wire.production_authorization_id,\n\t\twire,\n\t};\n}\n\ntype IdempotencyBusinessFields = Omit<\n\tMarketDataVendorBackfillRequest,\n\t\"requestId\" | \"idempotencyKey\"\n>;\n\nexport function backfillBusinessFields(\n\trequest: Omit<MarketDataVendorBackfillRequest, \"idempotencyKey\"> & {\n\t\tidempotencyKey?: string;\n\t},\n): IdempotencyBusinessFields {\n\tconst {\n\t\trequestId: _requestId,\n\t\tidempotencyKey: _idempotencyKey,\n\t\t...business\n\t} = request;\n\treturn business;\n}\n\nexport function createBackfillIdempotencyKey(\n\trequest: Omit<MarketDataVendorBackfillRequest, \"idempotencyKey\"> & {\n\t\tidempotencyKey?: string;\n\t},\n): string;\nexport function createBackfillIdempotencyKey(\n\trequest: Omit<BackfillRequestWire, \"idempotency_key\"> & {\n\t\tidempotency_key?: string;\n\t},\n): string;\nexport function createBackfillIdempotencyKey(\n\trequest: Record<string, unknown>,\n): string;\nexport function createBackfillIdempotencyKey(request: unknown): string {\n\tif (!request || typeof request !== \"object\") {\n\t\tthrow new TypeError(\"backfill request must be an object\");\n\t}\n\tif (\"schema_id\" in request) {\n\t\treturn jcsSha256(\n\t\t\twireIdempotencyBusinessFields(\n\t\t\t\trequest as Omit<BackfillRequestWire, \"idempotency_key\"> & {\n\t\t\t\t\tidempotency_key?: string;\n\t\t\t\t},\n\t\t\t),\n\t\t);\n\t}\n\treturn sha256Canonical(\n\t\tbackfillBusinessFields(\n\t\t\trequest as Omit<MarketDataVendorBackfillRequest, \"idempotencyKey\"> & {\n\t\t\t\tidempotencyKey?: string;\n\t\t\t},\n\t\t),\n\t);\n}\n\nexport function parseBackfillRequest(\n\tvalue: unknown,\n): MarketDataVendorBackfillRequest {\n\tconst request = backfillRequestSchema.parse(value);\n\tif (createBackfillIdempotencyKey(request) !== request.idempotencyKey) {\n\t\tthrow new Error(\"idempotencyKey does not match canonical business fields\");\n\t}\n\treturn request;\n}\n\nexport const BACKFILL_STATUSES = [\n\t\"already_covered\",\n\t\"promoted\",\n\t\"capability_unsupported\",\n\t\"credentials_missing\",\n\t\"vendor_fetch_failed\",\n\t\"archive_ingest_failed\",\n\t\"promotion_verification_failed\",\n\t\"post_backfill_coverage_insufficient\",\n] as const;\n\nexport type BackfillStatus = (typeof BACKFILL_STATUSES)[number];\n\nexport type ProviderCapability = {\n\tprovider: \"cryptohftdata\";\n\tadapterVersion: string;\n\tproviderExchangeId: string;\n\tresolvedSymbol: string;\n};\n\nexport type ProviderObjectEvidence = {\n\tidentity: string;\n\tchecksum: string;\n\tbytes: number;\n\trows: number;\n};\n\nconst providerObjectEvidenceSchema = z\n\t.object({\n\t\tidentity: nonEmpty,\n\t\tchecksum: sha256,\n\t\tbytes: z.number().int().nonnegative(),\n\t\trows: z.number().int().nonnegative(),\n\t})\n\t.strict();\n\nexport type BackfillArchiveRow = {\n\ttable:\n\t\t| \"market_data.cex_order_book_levels\"\n\t\t| \"market_data.cex_order_book_depth_summary\"\n\t\t| \"market_data.cex_order_book_capture_promotions\"\n\t\t| \"market_data.cex_order_book_capture_qualifications\"\n\t\t| \"market_data.cex_order_book_archive_selections\";\n\trow: Record<string, unknown>;\n};\n\nexport type ForwarderBatch = {\n\tsource: typeof EXTERNAL_BACKFILL_SOURCE;\n\tdeployment_id: string;\n\tbatch_id: string;\n\trows: BackfillArchiveRow[];\n};\n\nexport type PromotionReceipt = {\n\tschemaVersion: typeof BACKFILL_PROMOTION_SCHEMA_VERSION;\n\treceiptId: string;\n\trequestId: string;\n\tidempotencyKey: string;\n\tstatus: \"passing\";\n\tsource: typeof EXTERNAL_BACKFILL_SOURCE;\n\tprovider: \"cryptohftdata\";\n\tadapterVersion: string;\n\tcaptureBundleId: string;\n\texchange: string;\n\ttradingPair: string;\n\tmarketType: \"spot\" | \"swap\" | \"future\";\n\tfeed: \"ORDERBOOK\";\n\tstartTimeMs: number;\n\tendTimeMs: number;\n\tdepth: number;\n\tconstructionMode: \"sampled_top_n_snapshot\" | \"exact_l2_reconstruction\";\n\tcanonicalSchemaVersion: string;\n\tchecksumAlgorithm: \"sha256-canonical-json-v1\";\n\tvendorSemanticDigest: string;\n\tcanonicalSemanticDigest: string;\n\tprefixDigest: string;\n\tsuffixDigest: string;\n\tseamVerified: true;\n\tcoverageVerified: true;\n\tdatasetObjects: ProviderObjectEvidence[];\n\tverificationTimeMs: number;\n};\n\nexport const promotionReceiptSchema: z.ZodType<PromotionReceipt> = z\n\t.object({\n\t\tschemaVersion: z.literal(BACKFILL_PROMOTION_SCHEMA_VERSION),\n\t\treceiptId: sha256,\n\t\trequestId: nonEmpty,\n\t\tidempotencyKey: sha256,\n\t\tstatus: z.literal(\"passing\"),\n\t\tsource: z.literal(EXTERNAL_BACKFILL_SOURCE),\n\t\tprovider: z.literal(\"cryptohftdata\"),\n\t\tadapterVersion: nonEmpty,\n\t\tcaptureBundleId: sha256,\n\t\texchange: nonEmpty,\n\t\ttradingPair: nonEmpty,\n\t\tmarketType: z.enum([\"spot\", \"swap\", \"future\"]),\n\t\tfeed: z.literal(\"ORDERBOOK\"),\n\t\tstartTimeMs: timestampMs,\n\t\tendTimeMs: timestampMs,\n\t\tdepth: z.number().int().min(1).max(500),\n\t\tconstructionMode: z.enum([\n\t\t\t\"sampled_top_n_snapshot\",\n\t\t\t\"exact_l2_reconstruction\",\n\t\t]),\n\t\tcanonicalSchemaVersion: nonEmpty,\n\t\tchecksumAlgorithm: z.literal(\"sha256-canonical-json-v1\"),\n\t\tvendorSemanticDigest: sha256,\n\t\tcanonicalSemanticDigest: sha256,\n\t\tprefixDigest: sha256,\n\t\tsuffixDigest: sha256,\n\t\tseamVerified: z.literal(true),\n\t\tcoverageVerified: z.literal(true),\n\t\tdatasetObjects: z.array(providerObjectEvidenceSchema).min(1).max(10_000),\n\t\tverificationTimeMs: timestampMs,\n\t})\n\t.strict()\n\t.refine(({ endTimeMs, startTimeMs }) => endTimeMs > startTimeMs, {\n\t\tmessage: \"promotion window must be increasing\",\n\t});\n\nexport type BackfillResult = {\n\tschemaVersion: typeof BACKFILL_RESULT_SCHEMA_VERSION;\n\trequestId: string;\n\tidempotencyKey?: string;\n\tstatus: BackfillStatus;\n\treasonCode: string;\n\treceipt?: PromotionReceipt;\n\tdiagnostics?: Record<string, string | number | boolean>;\n};\n",
131
+ "import { createHash, randomUUID } from \"node:crypto\";\nimport path from \"node:path\";\nimport { pathToFileURL } from \"node:url\";\nimport { ExactOrderBookExportError } from \"../helpers/canonical-orderbook-export/exact-selection\";\nimport {\n\tcreateClickHouseExactOrderBookExportClient,\n\ttype ExactOrderBookExportQueryClient,\n\texportExactCanonicalOrderBook,\n} from \"../helpers/canonical-orderbook-export/exporter\";\nimport {\n\tCANONICAL_ORDERBOOK_EXPORT_RESULT_SCHEMA_ID,\n\ttype CanonicalOrderBookExportQuerySegment,\n\ttype CanonicalOrderBookExportRequestWire,\n\ttype CanonicalOrderBookExportResultWire,\n\ttype CanonicalOrderBookExportStatus,\n\tcanonicalOrderBookExportRequestCodec,\n\tcanonicalOrderBookExportResultCodec,\n\tfinalizeCanonicalOrderBookExportResult,\n} from \"../helpers/market-data-preparation/contracts\";\nimport {\n\ttype AtomicWriteHooks,\n\tassertSafeFileJobPaths,\n\tassertSupportedNode22,\n\tatomicWriteJsonResult,\n\tcontainsParentTraversal,\n\tFILE_JOB_REQUEST_MAX_BYTES,\n\tFileJobUnreadableError,\n\tparseFileJobArgv,\n\treadBoundedRegularFile,\n\tsha256RegularFile,\n} from \"../helpers/market-data-preparation/file-job\";\n\ndeclare const __CEX_BROKER_PACKAGE_VERSION__: string;\ndeclare const __CEX_BROKER_GIT_HEAD__: string;\n\ntype Environment = Readonly<Record<string, string | undefined>>;\n\nexport type CanonicalOrderBookExportReleaseIdentity = {\n\tpackageVersion: string;\n\tgitHead: string;\n};\n\nexport type CanonicalOrderBookExportFileJobOptions = {\n\trequestPath: string;\n\tresultPath: string;\n\texecutablePath?: string;\n\trelease?: CanonicalOrderBookExportReleaseIdentity;\n\tclient?: ExactOrderBookExportQueryClient;\n\tenvironment?: Environment;\n\tnowMs?: () => number;\n\trandomUuid?: () => string;\n\tatomicWriteHooks?: AtomicWriteHooks;\n};\n\nconst SAFE_GIT_HEAD = /^[0-9a-f]{40}$/;\nconst SAFE_PACKAGE_VERSION = /^[0-9]+\\.[0-9]+\\.[0-9]+(?:-[0-9A-Za-z.-]+)?$/;\n\nfunction validateReleaseIdentity(\n\trelease: CanonicalOrderBookExportReleaseIdentity,\n): CanonicalOrderBookExportReleaseIdentity {\n\tif (!SAFE_PACKAGE_VERSION.test(release.packageVersion)) {\n\t\tthrow new Error(\"pin-eligible build is missing a valid package version\");\n\t}\n\tif (!SAFE_GIT_HEAD.test(release.gitHead)) {\n\t\tthrow new Error(\n\t\t\t\"pin-eligible build is missing a valid cex-broker git head\",\n\t\t);\n\t}\n\treturn release;\n}\n\nfunction bakedReleaseIdentity(): CanonicalOrderBookExportReleaseIdentity {\n\treturn validateReleaseIdentity({\n\t\tpackageVersion:\n\t\t\ttypeof __CEX_BROKER_PACKAGE_VERSION__ === \"string\"\n\t\t\t\t? __CEX_BROKER_PACKAGE_VERSION__\n\t\t\t\t: \"\",\n\t\tgitHead:\n\t\t\ttypeof __CEX_BROKER_GIT_HEAD__ === \"string\"\n\t\t\t\t? __CEX_BROKER_GIT_HEAD__\n\t\t\t\t: \"\",\n\t});\n}\n\nfunction optionalEnvironment(\n\tenvironment: Environment,\n\tname: string,\n): string | undefined {\n\tconst value = environment[name];\n\treturn value && value.trim().length > 0 ? value : undefined;\n}\n\nexport function createCanonicalOrderBookExportClientFromEnv(\n\tenvironment: Environment,\n): ExactOrderBookExportQueryClient {\n\treturn createClickHouseExactOrderBookExportClient({\n\t\turl: optionalEnvironment(environment, \"CLICKHOUSE_URL\") ?? \"\",\n\t\tusername: optionalEnvironment(environment, \"CLICKHOUSE_USER\"),\n\t\tpassword: optionalEnvironment(environment, \"CLICKHOUSE_PASSWORD\"),\n\t});\n}\n\nfunction classifyExportFailure(reason: string): CanonicalOrderBookExportStatus {\n\tif (\n\t\treason === \"archive_url_invalid\" ||\n\t\treason === \"archive_query_failed\" ||\n\t\treason === \"archive_query_unreachable\" ||\n\t\treason.startsWith(\"archive_query_http_\")\n\t) {\n\t\treturn \"archive_query_failed\";\n\t}\n\treturn reason === \"artifact_write_failed\"\n\t\t? \"artifact_write_failed\"\n\t\t: \"archive_data_invalid\";\n}\n\nasync function writeResult(input: {\n\tresultPath: string;\n\trequestFileSha256: string | null;\n\trequest: CanonicalOrderBookExportRequestWire | null;\n\tstatus: CanonicalOrderBookExportStatus;\n\treasonCode: string;\n\treasonSubcode: string | null;\n\tquerySha256?: string;\n\tquerySegments?: CanonicalOrderBookExportQuerySegment[];\n\tpromotionReceiptIds?: string[];\n\tartifacts?: CanonicalOrderBookExportResultWire[\"outcome\"][\"artifacts\"];\n\tproducer: CanonicalOrderBookExportResultWire[\"producer\"];\n\tjobId: string;\n\tstartedAt: string;\n\tcompletedAt: string;\n\thooks?: AtomicWriteHooks;\n}): Promise<CanonicalOrderBookExportResultWire> {\n\tconst result = finalizeCanonicalOrderBookExportResult({\n\t\tschema_id: CANONICAL_ORDERBOOK_EXPORT_RESULT_SCHEMA_ID,\n\t\tjob_id: input.jobId,\n\t\trequest_file_sha256: input.requestFileSha256,\n\t\tproducer: input.producer,\n\t\tstarted_at: input.startedAt,\n\t\tcompleted_at: input.completedAt,\n\t\toutcome: {\n\t\t\tstatus: input.status,\n\t\t\treason_code: input.reasonCode,\n\t\t\treason_subcode: input.reasonSubcode,\n\t\t\trequest_id: input.request?.request_id ?? null,\n\t\t\ttarget: input.request?.target ?? null,\n\t\t\tselection_sha256: input.request?.selection.selection_sha256 ?? null,\n\t\t\tquery_sha256: input.querySha256 ?? null,\n\t\t\tquery_segments: input.querySegments ?? [],\n\t\t\tpromotion_receipt_ids: input.promotionReceiptIds ?? [],\n\t\t\tartifacts: input.artifacts ?? null,\n\t\t\tdiagnostics: {},\n\t\t},\n\t});\n\tawait atomicWriteJsonResult(input.resultPath, result, {\n\t\tvalidate: (value) => {\n\t\t\tcanonicalOrderBookExportResultCodec.decode(value);\n\t\t},\n\t\thooks: input.hooks,\n\t});\n\treturn result;\n}\n\nexport async function runCanonicalOrderBookExportFileJob(\n\toptions: CanonicalOrderBookExportFileJobOptions,\n): Promise<CanonicalOrderBookExportResultWire> {\n\tassertSupportedNode22(\n\t\tprocess.versions.node,\n\t\t\"cex-canonical-orderbook-export\",\n\t);\n\tconst release = validateReleaseIdentity(\n\t\toptions.release ?? bakedReleaseIdentity(),\n\t);\n\tconst nowMs = options.nowMs ?? Date.now;\n\tconst startedAt = new Date(nowMs()).toISOString();\n\tconst jobId = (options.randomUuid ?? randomUUID)();\n\tconst executablePath = options.executablePath\n\t\t? path.resolve(options.executablePath)\n\t\t: process.argv[1]\n\t\t\t? path.resolve(process.argv[1])\n\t\t\t: \"\";\n\tif (!executablePath)\n\t\tthrow new Error(\"running executable path is unavailable\");\n\tconst executableSha256 = await sha256RegularFile(executablePath);\n\tconst producer: CanonicalOrderBookExportResultWire[\"producer\"] = {\n\t\tproduct_id: \"cex-canonical-orderbook-export\",\n\t\tproduct_version: \"cex-canonical-orderbook-export/v2\",\n\t\tpackage: {\n\t\t\tname: \"@usherlabs/cex-broker\",\n\t\t\tversion: release.packageVersion,\n\t\t\tgit_head: release.gitHead,\n\t\t},\n\t\texecutable_sha256: executableSha256,\n\t\truntime: { name: \"node\", version: process.versions.node },\n\t};\n\n\tconst paths = await assertSafeFileJobPaths(\n\t\tpath.resolve(options.requestPath),\n\t\tpath.resolve(options.resultPath),\n\t);\n\tconst common = {\n\t\tresultPath: paths.resultPath,\n\t\tproducer,\n\t\tjobId,\n\t\tstartedAt,\n\t\thooks: options.atomicWriteHooks,\n\t};\n\tif (\n\t\tcontainsParentTraversal(options.requestPath) ||\n\t\tcontainsParentTraversal(options.resultPath)\n\t) {\n\t\treturn writeResult({\n\t\t\t...common,\n\t\t\trequestFileSha256: null,\n\t\t\trequest: null,\n\t\t\tstatus: \"request_invalid\",\n\t\t\treasonCode: \"request_invalid\",\n\t\t\treasonSubcode: \"request_file_unreadable\",\n\t\t\tcompletedAt: new Date(nowMs()).toISOString(),\n\t\t});\n\t}\n\n\tlet requestBytes: Buffer;\n\ttry {\n\t\trequestBytes = await readBoundedRegularFile(\n\t\t\tpaths.requestPath,\n\t\t\tFILE_JOB_REQUEST_MAX_BYTES,\n\t\t);\n\t} catch (error) {\n\t\tif (!(error instanceof FileJobUnreadableError)) throw error;\n\t\treturn writeResult({\n\t\t\t...common,\n\t\t\trequestFileSha256: null,\n\t\t\trequest: null,\n\t\t\tstatus: \"request_invalid\",\n\t\t\treasonCode: \"request_invalid\",\n\t\t\treasonSubcode: \"request_file_unreadable\",\n\t\t\tcompletedAt: new Date(nowMs()).toISOString(),\n\t\t});\n\t}\n\tconst requestFileSha256 = createHash(\"sha256\")\n\t\t.update(requestBytes)\n\t\t.digest(\"hex\");\n\tlet request: CanonicalOrderBookExportRequestWire;\n\ttry {\n\t\trequest = canonicalOrderBookExportRequestCodec.decode(\n\t\t\tJSON.parse(requestBytes.toString(\"utf8\")),\n\t\t);\n\t} catch {\n\t\treturn writeResult({\n\t\t\t...common,\n\t\t\trequestFileSha256,\n\t\t\trequest: null,\n\t\t\tstatus: \"request_invalid\",\n\t\t\treasonCode: \"request_invalid\",\n\t\t\treasonSubcode: null,\n\t\t\tcompletedAt: new Date(nowMs()).toISOString(),\n\t\t});\n\t}\n\n\ttry {\n\t\tconst exported = await exportExactCanonicalOrderBook({\n\t\t\trequest,\n\t\t\tclient:\n\t\t\t\toptions.client ??\n\t\t\t\tcreateCanonicalOrderBookExportClientFromEnv(\n\t\t\t\t\toptions.environment ?? process.env,\n\t\t\t\t),\n\t\t\toutputDirectory: paths.attemptRoot,\n\t\t});\n\t\treturn writeResult({\n\t\t\t...common,\n\t\t\trequestFileSha256,\n\t\t\trequest,\n\t\t\tstatus: \"exported\",\n\t\t\treasonCode: \"qualified_selection_exported\",\n\t\t\treasonSubcode: null,\n\t\t\tquerySha256: exported.compiled.querySha256,\n\t\t\tquerySegments: exported.compiled.segments,\n\t\t\tpromotionReceiptIds: exported.promotionReceiptIds,\n\t\t\tartifacts: { levels: exported.levels, summary: exported.summary },\n\t\t\tcompletedAt: new Date(nowMs()).toISOString(),\n\t\t});\n\t} catch (error) {\n\t\tconst reason =\n\t\t\terror instanceof ExactOrderBookExportError\n\t\t\t\t? error.reason\n\t\t\t\t: \"archive_query_failed\";\n\t\tconst status = classifyExportFailure(reason);\n\t\treturn writeResult({\n\t\t\t...common,\n\t\t\trequestFileSha256,\n\t\t\trequest,\n\t\t\tstatus,\n\t\t\treasonCode: status,\n\t\t\treasonSubcode: reason,\n\t\t\tcompletedAt: new Date(nowMs()).toISOString(),\n\t\t});\n\t}\n}\n\nexport async function runCanonicalOrderBookExportCli(\n\targv: readonly string[],\n\toptions: Omit<\n\t\tCanonicalOrderBookExportFileJobOptions,\n\t\t\"requestPath\" | \"resultPath\"\n\t> = {},\n): Promise<number> {\n\tassertSupportedNode22(\n\t\tprocess.versions.node,\n\t\t\"cex-canonical-orderbook-export\",\n\t);\n\tconst paths = parseFileJobArgv(argv);\n\tawait runCanonicalOrderBookExportFileJob({ ...options, ...paths });\n\treturn 0;\n}\n\nconst invokedUrl = process.argv[1]\n\t? pathToFileURL(path.resolve(process.argv[1])).href\n\t: null;\nif (invokedUrl === import.meta.url) {\n\trunCanonicalOrderBookExportCli(process.argv.slice(2)).then(\n\t\t(exitCode) => {\n\t\t\tprocess.exitCode = exitCode;\n\t\t},\n\t\t() => {\n\t\t\tconsole.error(\"cex-canonical-orderbook-export failed\");\n\t\t\tprocess.exitCode = 1;\n\t\t},\n\t);\n}\n",
132
+ "import Ajv2020, {\n\ttype ErrorObject,\n\ttype ValidateFunction,\n} from \"ajv/dist/2020.js\";\nimport type {\n\tArchiveSelectionWire,\n\tBackfillOutcomeWire,\n\tFixedUtcTimestamp,\n\tLowercaseUuid,\n\tSha256Hex,\n} from \"../market-data-vendor-backfill/contracts\";\nimport {\n\tarchiveSelectionCodec,\n\tpromotionReceiptCodec,\n} from \"../market-data-vendor-backfill/contracts\";\nimport {\n\tassertDocumentSha256,\n\tdocumentSha256,\n\tjcsSha256,\n} from \"../market-data-vendor-backfill/identity\";\nimport {\n\tCAPABILITY_POLICY,\n\tRESOURCE_POLICY,\n} from \"../market-data-vendor-backfill/manifests\";\nimport { promotionReceiptMatchesCurrentPolicies } from \"../market-data-vendor-backfill/promotion\";\nimport archiveSelectionSchema from \"../market-data-vendor-backfill/schemas/archive-selection.schema.json\" with {\n\ttype: \"json\",\n};\nimport promotionReceiptSchema from \"../market-data-vendor-backfill/schemas/promotion-receipt.schema.json\" with {\n\ttype: \"json\",\n};\nimport requestSchema from \"../market-data-vendor-backfill/schemas/request.schema.json\" with {\n\ttype: \"json\",\n};\nimport requiredClockSchema from \"../market-data-vendor-backfill/schemas/required-clock.schema.json\" with {\n\ttype: \"json\",\n};\nimport { SOURCE_TAPE_CAPABILITY } from \"../source-tape\";\nimport backfillResultV2Schema from \"./schemas/backfill-result-v2.schema.json\" with {\n\ttype: \"json\",\n};\nimport exportRequestSchema from \"./schemas/canonical-orderbook-export-request.schema.json\" with {\n\ttype: \"json\",\n};\nimport exportResultSchema from \"./schemas/canonical-orderbook-export-result.schema.json\" with {\n\ttype: \"json\",\n};\nimport depthSummaryProjectionSchema from \"./schemas/order-book-depth-summary-parquet-projection.schema.json\" with {\n\ttype: \"json\",\n};\nimport levelsProjectionSchema from \"./schemas/order-book-levels-parquet-projection.schema.json\" with {\n\ttype: \"json\",\n};\nimport productPinSchema from \"./schemas/preparation-product-pin.schema.json\" with {\n\ttype: \"json\",\n};\nimport sourceForensicsLedgerSchema from \"./schemas/source-forensics-ledger.schema.json\" with {\n\ttype: \"json\",\n};\nimport sourceQualificationRecordSchema from \"./schemas/source-qualification-record.schema.json\" with {\n\ttype: \"json\",\n};\n\nexport const BACKFILL_RESULT_V2_SCHEMA_ID = backfillResultV2Schema.$id;\nexport const CANONICAL_ORDERBOOK_EXPORT_REQUEST_SCHEMA_ID =\n\texportRequestSchema.$id;\nexport const CANONICAL_ORDERBOOK_EXPORT_RESULT_SCHEMA_ID =\n\texportResultSchema.$id;\nexport const PREPARATION_PRODUCT_PIN_SCHEMA_ID = productPinSchema.$id;\nexport const ORDER_BOOK_LEVELS_PARQUET_PROJECTION_SCHEMA_ID =\n\tlevelsProjectionSchema.$id;\nexport const ORDER_BOOK_DEPTH_SUMMARY_PARQUET_PROJECTION_SCHEMA_ID =\n\tdepthSummaryProjectionSchema.$id;\nexport const SOURCE_FORENSICS_LEDGER_SCHEMA_ID =\n\tsourceForensicsLedgerSchema.$id;\nexport const SOURCE_QUALIFICATION_RECORD_SCHEMA_ID =\n\tsourceQualificationRecordSchema.$id;\nexport const PREPARATION_SCHEMA_MANIFEST_V3_ID =\n\t\"https://schemas.usher.so/market-data-vendor-backfill-schema-manifest/v3\" as const;\n\nexport type PreparationTarget = { environment: string; cluster: string };\n\nexport type PreparationProducerIdentity = {\n\tproduct_id: \"market-data-vendor-backfill\" | \"cex-canonical-orderbook-export\";\n\tproduct_version:\n\t\t| \"market-data-vendor-backfill/v1\"\n\t\t| \"cex-canonical-orderbook-export/v2\";\n\tpackage: {\n\t\tname: \"@usherlabs/cex-broker\";\n\t\tversion: string;\n\t\tgit_head: string;\n\t};\n\texecutable_sha256: Sha256Hex;\n\truntime: { name: \"node\"; version: string };\n};\n\nexport type BackfillJobResultV2Wire = {\n\tschema_id: typeof BACKFILL_RESULT_V2_SCHEMA_ID;\n\tresult_sha256: Sha256Hex;\n\tjob_id: LowercaseUuid;\n\trequest_file_sha256: Sha256Hex | null;\n\tschema_manifest_sha256: Sha256Hex;\n\tproducer: PreparationProducerIdentity & {\n\t\tproduct_id: \"market-data-vendor-backfill\";\n\t\tproduct_version: \"market-data-vendor-backfill/v1\";\n\t};\n\tcapability_policy: { policy_id: string; policy_sha256: Sha256Hex };\n\tresource_policy: { policy_id: string; policy_sha256: Sha256Hex };\n\tstarted_at: FixedUtcTimestamp;\n\tcompleted_at: FixedUtcTimestamp;\n\toutcome: BackfillOutcomeWire;\n};\n\nexport type CanonicalOrderBookExportRequestWire = {\n\tschema_id: typeof CANONICAL_ORDERBOOK_EXPORT_REQUEST_SCHEMA_ID;\n\trequest_id: LowercaseUuid;\n\ttarget: PreparationTarget;\n\tselection: ArchiveSelectionWire;\n\tdepth: number;\n\tconstruction_mode:\n\t\t| \"sampled_top_n_snapshot\"\n\t\t| \"exact_l2_reconstruction\"\n\t\t| \"policy_neutral_top_n_state_change_tape/v1\";\n\tcanonical_schema_version: string;\n\tchecksum_algorithm: \"sha256-canonical-json-v1\";\n};\n\nexport type CanonicalOrderBookExportQuerySegment =\n\tArchiveSelectionWire[\"selected_intervals\"][number];\n\nexport const CANONICAL_ORDERBOOK_EXPORT_STATUSES = [\n\t\"exported\",\n\t\"request_invalid\",\n\t\"archive_query_failed\",\n\t\"archive_data_invalid\",\n\t\"artifact_write_failed\",\n] as const;\n\nexport type CanonicalOrderBookExportStatus =\n\t(typeof CANONICAL_ORDERBOOK_EXPORT_STATUSES)[number];\n\nexport type CanonicalOrderBookExportArtifact = {\n\tfile_name: string;\n\trows: number;\n\tbytes: number;\n\tsha256: Sha256Hex;\n\tprojection_schema_id:\n\t\t| typeof ORDER_BOOK_LEVELS_PARQUET_PROJECTION_SCHEMA_ID\n\t\t| typeof ORDER_BOOK_DEPTH_SUMMARY_PARQUET_PROJECTION_SCHEMA_ID;\n\tprojection_schema_sha256: Sha256Hex;\n};\n\nexport type CanonicalOrderBookExportResultWire = {\n\tschema_id: typeof CANONICAL_ORDERBOOK_EXPORT_RESULT_SCHEMA_ID;\n\tresult_sha256: Sha256Hex;\n\tjob_id: LowercaseUuid;\n\trequest_file_sha256: Sha256Hex | null;\n\tproducer: PreparationProducerIdentity & {\n\t\tproduct_id: \"cex-canonical-orderbook-export\";\n\t\tproduct_version: \"cex-canonical-orderbook-export/v2\";\n\t};\n\tstarted_at: FixedUtcTimestamp;\n\tcompleted_at: FixedUtcTimestamp;\n\toutcome: {\n\t\tstatus: CanonicalOrderBookExportStatus;\n\t\treason_code: string;\n\t\treason_subcode: string | null;\n\t\trequest_id: LowercaseUuid | null;\n\t\ttarget: PreparationTarget | null;\n\t\tselection_sha256: Sha256Hex | null;\n\t\tquery_sha256: Sha256Hex | null;\n\t\tquery_segments: CanonicalOrderBookExportQuerySegment[];\n\t\tpromotion_receipt_ids: Sha256Hex[];\n\t\tartifacts: null | {\n\t\t\tlevels: CanonicalOrderBookExportArtifact;\n\t\t\tsummary: CanonicalOrderBookExportArtifact;\n\t\t};\n\t\tdiagnostics: Record<string, string | number | boolean>;\n\t};\n};\n\nexport type PreparationProductPinWire = {\n\tschema_id: typeof PREPARATION_PRODUCT_PIN_SCHEMA_ID;\n\tpackage: {\n\t\tname: \"@usherlabs/cex-broker\";\n\t\tversion: string;\n\t\tregistry_tarball_url: string;\n\t\tintegrity: string;\n\t\ttarball_sha256: Sha256Hex;\n\t\tnpm_git_head: string;\n\t};\n\texecutables: Array<{\n\t\tproduct_id: PreparationProducerIdentity[\"product_id\"];\n\t\tproduct_version: PreparationProducerIdentity[\"product_version\"];\n\t\trelative_path: string;\n\t\texecutable_sha256: Sha256Hex;\n\t}>;\n\tschema_manifest: {\n\t\tschema_id: typeof PREPARATION_SCHEMA_MANIFEST_V3_ID;\n\t\tmanifest_sha256: Sha256Hex;\n\t\trelative_path: \"dist/market-data-preparation/schema-manifest.json\";\n\t};\n\tschema_pins: Array<{ schema_id: string; schema_sha256: Sha256Hex }>;\n\tcapability_policy: { policy_id: string; policy_sha256: Sha256Hex };\n\tsource_tape_capability: {\n\t\tpolicy_id: string;\n\t\tpolicy_sha256: Sha256Hex;\n\t};\n\tresource_policy: { policy_id: string; policy_sha256: Sha256Hex };\n\tpreparation_library: {\n\t\texported_subpath: \"@usherlabs/cex-broker/market-data-preparation\";\n\t\truntime_entry_sha256: Sha256Hex;\n\t\tdeclaration_sha256: Sha256Hex;\n\t\toperations: [\n\t\t\t{\n\t\t\t\tsymbol: \"runMarketDataSourceTape\";\n\t\t\t\toperation_id: \"market-data-source-tape/v1\";\n\t\t\t},\n\t\t\t{\n\t\t\t\tsymbol: \"runMarketDataRequiredClockQualification\";\n\t\t\t\toperation_id: \"market-data-required-clock-qualification/v1\";\n\t\t\t},\n\t\t];\n\t};\n};\n\ntype Codec<T> = {\n\tdecode(value: unknown): T;\n\tis(value: unknown): value is T;\n};\n\nfunction describeAjvErrors(errors: ErrorObject[] | null | undefined): string {\n\treturn (errors ?? [])\n\t\t.map(\n\t\t\t(error) =>\n\t\t\t\t`${error.instancePath || \"/\"} ${error.message ?? \"is invalid\"}`,\n\t\t)\n\t\t.join(\"; \");\n}\n\nfunction codec<T>(\n\tvalidate: ValidateFunction,\n\tsemantic?: (document: T) => void,\n): Codec<T> {\n\treturn {\n\t\tdecode(value: unknown): T {\n\t\t\tif (!validate(value)) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t`JSON Schema validation failed: ${describeAjvErrors(validate.errors)}`,\n\t\t\t\t);\n\t\t\t}\n\t\t\tsemantic?.(value as T);\n\t\t\treturn value as T;\n\t\t},\n\t\tis(value: unknown): value is T {\n\t\t\tif (!validate(value)) return false;\n\t\t\ttry {\n\t\t\t\tsemantic?.(value as T);\n\t\t\t\treturn true;\n\t\t\t} catch {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t},\n\t};\n}\n\nfunction fixedTimestampMs(value: string, field: string): number {\n\tconst parsed = Date.parse(value);\n\tif (\n\t\t!Number.isSafeInteger(parsed) ||\n\t\tnew Date(parsed).toISOString() !== value\n\t) {\n\t\tthrow new Error(`${field} is not a fixed UTC RFC3339 timestamp`);\n\t}\n\treturn parsed;\n}\n\nfunction assertResultTiming(input: {\n\tstarted_at: string;\n\tcompleted_at: string;\n}): void {\n\tif (\n\t\tfixedTimestampMs(input.completed_at, \"completed_at\") <\n\t\tfixedTimestampMs(input.started_at, \"started_at\")\n\t) {\n\t\tthrow new Error(\"completed_at precedes started_at\");\n\t}\n}\n\nconst ajv = new Ajv2020({ allErrors: true, strict: true });\najv.addSchema(archiveSelectionSchema);\najv.addSchema(promotionReceiptSchema);\n\nconst validateBackfillResultV2 = ajv.compile(backfillResultV2Schema);\nconst validateExportRequest = ajv.compile(exportRequestSchema);\nconst validateExportResult = ajv.compile(exportResultSchema);\nconst validateProductPin = ajv.compile(productPinSchema);\n\nexport const backfillResultV2Codec = codec<BackfillJobResultV2Wire>(\n\tvalidateBackfillResultV2,\n\t(result) => {\n\t\tassertDocumentSha256(result, \"result_sha256\");\n\t\tassertResultTiming(result);\n\t\tif (\n\t\t\tresult.capability_policy.policy_id !== CAPABILITY_POLICY.policy_id ||\n\t\t\tresult.capability_policy.policy_sha256 !==\n\t\t\t\tCAPABILITY_POLICY.policy_sha256 ||\n\t\t\tresult.resource_policy.policy_id !== RESOURCE_POLICY.policy_id ||\n\t\t\tresult.resource_policy.policy_sha256 !== RESOURCE_POLICY.policy_sha256\n\t\t) {\n\t\t\tthrow new Error(\"backfill result requires the current policy tuple\");\n\t\t}\n\t\tif (\n\t\t\tresult.schema_manifest_sha256 !==\n\t\t\tPREPARATION_SCHEMA_MANIFEST_V3.manifest_sha256\n\t\t) {\n\t\t\tthrow new Error(\n\t\t\t\t\"backfill result schema manifest identity is not current\",\n\t\t\t);\n\t\t}\n\t\tif (result.outcome.selection) {\n\t\t\tarchiveSelectionCodec.decode(result.outcome.selection);\n\t\t}\n\t\tif (result.outcome.receipt) {\n\t\t\tconst receipt = promotionReceiptCodec.decode(result.outcome.receipt);\n\t\t\tif (!promotionReceiptMatchesCurrentPolicies(receipt)) {\n\t\t\t\tthrow new Error(\"backfill result receipt is not current-qualified\");\n\t\t\t}\n\t\t\tif (\n\t\t\t\treceipt.effective_policies.capability_policy.policy_id !==\n\t\t\t\t\tresult.capability_policy.policy_id ||\n\t\t\t\treceipt.effective_policies.capability_policy.policy_sha256 !==\n\t\t\t\t\tresult.capability_policy.policy_sha256 ||\n\t\t\t\treceipt.effective_policies.resource_policy.policy_id !==\n\t\t\t\t\tresult.resource_policy.policy_id ||\n\t\t\t\treceipt.effective_policies.resource_policy.policy_sha256 !==\n\t\t\t\t\tresult.resource_policy.policy_sha256\n\t\t\t) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t\"backfill result and receipt policy identities disagree\",\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t\tif (\n\t\t\tresult.outcome.status === \"promoted\" &&\n\t\t\t(!result.outcome.selection || !result.outcome.receipt)\n\t\t) {\n\t\t\tthrow new Error(\"promoted outcome requires selection and receipt\");\n\t\t}\n\t\tif (\n\t\t\tresult.outcome.status === \"already_covered\" &&\n\t\t\t!result.outcome.selection\n\t\t) {\n\t\t\tthrow new Error(\"already_covered outcome requires selection\");\n\t\t}\n\t\tif (\n\t\t\t(result.outcome.status === \"already_covered\" ||\n\t\t\t\tresult.outcome.status === \"promoted\") &&\n\t\t\tresult.outcome.selection?.bundles.some(\n\t\t\t\t(bundle) => bundle.capture_origin === \"vendor_historical_backfill\",\n\t\t\t) &&\n\t\t\t!result.outcome.receipt\n\t\t) {\n\t\t\tthrow new Error(\"successful vendor evidence requires a current receipt\");\n\t\t}\n\t\tif (\n\t\t\t(result.outcome.status === \"already_covered\" ||\n\t\t\t\tresult.outcome.status === \"promoted\") &&\n\t\t\tresult.outcome.selection &&\n\t\t\tresult.outcome.receipt\n\t\t) {\n\t\t\tconst selectedVendorReceiptIds = new Set(\n\t\t\t\tresult.outcome.selection.bundles\n\t\t\t\t\t.filter(\n\t\t\t\t\t\t(bundle) => bundle.capture_origin === \"vendor_historical_backfill\",\n\t\t\t\t\t)\n\t\t\t\t\t.map((bundle) => bundle.qualification?.receipt_id),\n\t\t\t);\n\t\t\tif (\n\t\t\t\tselectedVendorReceiptIds.size !== 1 ||\n\t\t\t\t!selectedVendorReceiptIds.has(result.outcome.receipt.receipt_id) ||\n\t\t\t\tresult.outcome.selection.receipt_ids.length !== 1 ||\n\t\t\t\tresult.outcome.selection.receipt_ids[0] !==\n\t\t\t\t\tresult.outcome.receipt.receipt_id\n\t\t\t) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t\"successful vendor selection and current receipt lineage disagree\",\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t},\n);\n\nexport const canonicalOrderBookExportRequestCodec =\n\tcodec<CanonicalOrderBookExportRequestWire>(\n\t\tvalidateExportRequest,\n\t\t(request) => {\n\t\t\tconst selection = archiveSelectionCodec.decode(request.selection);\n\t\t\tif (\n\t\t\t\tselection.coverage_class !== \"complete\" ||\n\t\t\t\tselection.selected_intervals.length === 0\n\t\t\t) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t\"export requires a complete non-empty archive selection\",\n\t\t\t\t);\n\t\t\t}\n\t\t},\n\t);\n\nexport const canonicalOrderBookExportResultCodec =\n\tcodec<CanonicalOrderBookExportResultWire>(validateExportResult, (result) => {\n\t\tassertDocumentSha256(result, \"result_sha256\");\n\t\tassertResultTiming(result);\n\t\tconst artifacts = result.outcome.artifacts;\n\t\tif (\n\t\t\tartifacts &&\n\t\t\t(artifacts.levels.projection_schema_id !==\n\t\t\t\tORDER_BOOK_LEVELS_PARQUET_PROJECTION_SCHEMA_ID ||\n\t\t\t\tartifacts.levels.projection_schema_sha256 !==\n\t\t\t\t\tORDER_BOOK_LEVELS_PARQUET_PROJECTION_SCHEMA_SHA256 ||\n\t\t\t\tartifacts.summary.projection_schema_id !==\n\t\t\t\t\tORDER_BOOK_DEPTH_SUMMARY_PARQUET_PROJECTION_SCHEMA_ID ||\n\t\t\t\tartifacts.summary.projection_schema_sha256 !==\n\t\t\t\t\tORDER_BOOK_DEPTH_SUMMARY_PARQUET_PROJECTION_SCHEMA_SHA256)\n\t\t) {\n\t\t\tthrow new Error(\"export artifact projection identity is inconsistent\");\n\t\t}\n\t});\n\nexport const preparationProductPinCodec = codec<PreparationProductPinWire>(\n\tvalidateProductPin,\n\t(pin) => {\n\t\tconst expectedExecutables = new Map([\n\t\t\t[\n\t\t\t\t\"market-data-vendor-backfill\",\n\t\t\t\t{\n\t\t\t\t\tproductVersion: \"market-data-vendor-backfill/v1\",\n\t\t\t\t\trelativePath: \"dist/commands/market-data-vendor-backfill.js\",\n\t\t\t\t},\n\t\t\t],\n\t\t\t[\n\t\t\t\t\"cex-canonical-orderbook-export\",\n\t\t\t\t{\n\t\t\t\t\tproductVersion: \"cex-canonical-orderbook-export/v2\",\n\t\t\t\t\trelativePath: \"dist/commands/cex-canonical-orderbook-export.js\",\n\t\t\t\t},\n\t\t\t],\n\t\t] as const);\n\t\tif (pin.executables.length !== expectedExecutables.size) {\n\t\t\tthrow new Error(\"product pin must identify both preparation executables\");\n\t\t}\n\t\tfor (const executable of pin.executables) {\n\t\t\tconst expected = expectedExecutables.get(executable.product_id);\n\t\t\tif (\n\t\t\t\t!expected ||\n\t\t\t\texecutable.product_version !== expected.productVersion ||\n\t\t\t\texecutable.relative_path !== expected.relativePath\n\t\t\t) {\n\t\t\t\tthrow new Error(\"product pin executable identity is inconsistent\");\n\t\t\t}\n\t\t\tif (\n\t\t\t\texecutable.relative_path.split(/[\\\\/]+/u).includes(\"..\") ||\n\t\t\t\texecutable.relative_path.startsWith(\"/\")\n\t\t\t) {\n\t\t\t\tthrow new Error(\"product pin executable path is unsafe\");\n\t\t\t}\n\t\t}\n\t\tif (\n\t\t\tpin.schema_manifest.schema_id !==\n\t\t\t\tPREPARATION_SCHEMA_MANIFEST_V3.schema_id ||\n\t\t\tpin.schema_manifest.manifest_sha256 !==\n\t\t\t\tPREPARATION_SCHEMA_MANIFEST_V3.manifest_sha256\n\t\t) {\n\t\t\tthrow new Error(\n\t\t\t\t\"product pin schema manifest identity does not match the preparation manifest\",\n\t\t\t);\n\t\t}\n\t\tconst actualSchemas = pin.schema_pins\n\t\t\t.map(({ schema_id, schema_sha256 }) => `${schema_id}:${schema_sha256}`)\n\t\t\t.sort();\n\t\tconst expectedSchemas = PREPARATION_SCHEMA_ARTIFACTS.map(\n\t\t\t({ schema_id, schema_sha256 }) => `${schema_id}:${schema_sha256}`,\n\t\t).sort();\n\t\tif (JSON.stringify(actualSchemas) !== JSON.stringify(expectedSchemas)) {\n\t\t\tthrow new Error(\n\t\t\t\t\"product pin schema identities do not match the preparation manifest\",\n\t\t\t);\n\t\t}\n\t\tif (\n\t\t\tpin.capability_policy.policy_id !== CAPABILITY_POLICY.policy_id ||\n\t\t\tpin.capability_policy.policy_sha256 !== CAPABILITY_POLICY.policy_sha256 ||\n\t\t\tpin.source_tape_capability.policy_id !==\n\t\t\t\tSOURCE_TAPE_CAPABILITY.policy_id ||\n\t\t\tpin.source_tape_capability.policy_sha256 !==\n\t\t\t\tSOURCE_TAPE_CAPABILITY.policy_sha256 ||\n\t\t\tpin.resource_policy.policy_id !== RESOURCE_POLICY.policy_id ||\n\t\t\tpin.resource_policy.policy_sha256 !== RESOURCE_POLICY.policy_sha256\n\t\t) {\n\t\t\tthrow new Error(\"product pin policy identities are inconsistent\");\n\t\t}\n\t\tconst expectedOperations = [\n\t\t\t{\n\t\t\t\tsymbol: \"runMarketDataSourceTape\",\n\t\t\t\toperation_id: \"market-data-source-tape/v1\",\n\t\t\t},\n\t\t\t{\n\t\t\t\tsymbol: \"runMarketDataRequiredClockQualification\",\n\t\t\t\toperation_id: \"market-data-required-clock-qualification/v1\",\n\t\t\t},\n\t\t];\n\t\tif (\n\t\t\tpin.preparation_library.exported_subpath !==\n\t\t\t\t\"@usherlabs/cex-broker/market-data-preparation\" ||\n\t\t\tJSON.stringify(pin.preparation_library.operations) !==\n\t\t\t\tJSON.stringify(expectedOperations)\n\t\t) {\n\t\t\tthrow new Error(\"product pin preparation-library ABI is inconsistent\");\n\t\t}\n\t},\n);\n\nexport function finalizeBackfillResultV2(\n\tcontent: Omit<BackfillJobResultV2Wire, \"result_sha256\">,\n): BackfillJobResultV2Wire {\n\treturn backfillResultV2Codec.decode({\n\t\t...content,\n\t\tresult_sha256: documentSha256(content, \"result_sha256\"),\n\t});\n}\n\nexport function finalizeCanonicalOrderBookExportResult(\n\tcontent: Omit<CanonicalOrderBookExportResultWire, \"result_sha256\">,\n): CanonicalOrderBookExportResultWire {\n\treturn canonicalOrderBookExportResultCodec.decode({\n\t\t...content,\n\t\tresult_sha256: documentSha256(content, \"result_sha256\"),\n\t});\n}\n\nconst preparationSchemaArtifacts = [\n\t[\"schemas/backfill-request-v1.schema.json\", requestSchema],\n\t[\"schemas/backfill-result-v2.schema.json\", backfillResultV2Schema],\n\t[\"schemas/required-clock-v1.schema.json\", requiredClockSchema],\n\t[\"schemas/archive-selection-v1.schema.json\", archiveSelectionSchema],\n\t[\"schemas/promotion-receipt-v1.schema.json\", promotionReceiptSchema],\n\t[\n\t\t\"schemas/canonical-orderbook-export-request-v1.schema.json\",\n\t\texportRequestSchema,\n\t],\n\t[\n\t\t\"schemas/canonical-orderbook-export-result-v2.schema.json\",\n\t\texportResultSchema,\n\t],\n\t[\"schemas/preparation-product-pin-v2.schema.json\", productPinSchema],\n\t[\n\t\t\"schemas/order-book-levels-parquet-projection-v1.schema.json\",\n\t\tlevelsProjectionSchema,\n\t],\n\t[\n\t\t\"schemas/order-book-depth-summary-parquet-projection-v1.schema.json\",\n\t\tdepthSummaryProjectionSchema,\n\t],\n\t[\n\t\t\"schemas/source-forensics-ledger-v1.schema.json\",\n\t\tsourceForensicsLedgerSchema,\n\t],\n\t[\n\t\t\"schemas/source-qualification-record-v1.schema.json\",\n\t\tsourceQualificationRecordSchema,\n\t],\n] as const;\n\nexport const PREPARATION_SCHEMA_ARTIFACTS = Object.freeze(\n\tpreparationSchemaArtifacts.map(([path, schema]) =>\n\t\tObject.freeze({\n\t\t\tschema_id: schema.$id,\n\t\t\tpath,\n\t\t\tschema_sha256: jcsSha256(schema),\n\t\t\tschema,\n\t\t}),\n\t),\n);\n\nconst preparationSchemaManifestContent = {\n\tschema_id: PREPARATION_SCHEMA_MANIFEST_V3_ID,\n\tartifacts: PREPARATION_SCHEMA_ARTIFACTS.map(\n\t\t({ schema_id, path, schema_sha256 }) => ({\n\t\t\tschema_id,\n\t\t\tpath,\n\t\t\tschema_sha256,\n\t\t}),\n\t),\n};\n\nexport const PREPARATION_SCHEMA_MANIFEST_V3 = Object.freeze({\n\t...preparationSchemaManifestContent,\n\tmanifest_sha256: jcsSha256(preparationSchemaManifestContent),\n});\n\nexport const ORDER_BOOK_LEVELS_PARQUET_PROJECTION = Object.freeze(\n\tlevelsProjectionSchema,\n);\nexport const ORDER_BOOK_DEPTH_SUMMARY_PARQUET_PROJECTION = Object.freeze(\n\tdepthSummaryProjectionSchema,\n);\nexport const ORDER_BOOK_LEVELS_PARQUET_PROJECTION_SCHEMA_SHA256 = jcsSha256(\n\tlevelsProjectionSchema,\n);\nexport const ORDER_BOOK_DEPTH_SUMMARY_PARQUET_PROJECTION_SCHEMA_SHA256 =\n\tjcsSha256(depthSummaryProjectionSchema);\n",
133
+ "import Ajv2020, {\n\ttype ErrorObject,\n\ttype ValidateFunction,\n} from \"ajv/dist/2020.js\";\nimport { z } from \"zod\";\nimport { sha256Canonical } from \"../market-data-archive/capture-contract\";\nimport { assertDocumentSha256, documentSha256, jcsSha256 } from \"./identity\";\nimport { CAPABILITY_POLICY, RESOURCE_POLICY } from \"./manifests\";\nimport archiveSelectionSchemaJson from \"./schemas/archive-selection.schema.json\" with {\n\ttype: \"json\",\n};\nimport promotionReceiptSchemaJson from \"./schemas/promotion-receipt.schema.json\" with {\n\ttype: \"json\",\n};\nimport requestSchemaJson from \"./schemas/request.schema.json\" with {\n\ttype: \"json\",\n};\nimport requiredClockSchemaJson from \"./schemas/required-clock.schema.json\" with {\n\ttype: \"json\",\n};\n\nexport const BACKFILL_REQUEST_SCHEMA_ID = requestSchemaJson.$id;\nexport const REQUIRED_CLOCK_SCHEMA_ID = requiredClockSchemaJson.$id;\nexport const ARCHIVE_SELECTION_SCHEMA_ID = archiveSelectionSchemaJson.$id;\nexport const PROMOTION_RECEIPT_SCHEMA_ID = promotionReceiptSchemaJson.$id;\n\nexport type FixedUtcTimestamp = string;\nexport type Sha256Hex = string;\nexport type LowercaseUuid = string;\n\nexport type CanonicalScopeWire = {\n\texchange: string;\n\ttrading_pair: string;\n\tmarket_type: \"spot\" | \"swap\" | \"future\";\n\tfeed: \"ORDERBOOK\";\n};\n\nexport type CoveragePolicyWire = {\n\tpolicy_id: \"prior-asof-strict/v1\";\n\tmax_asof_lag_ms: number;\n\tfuture_rows: \"reject\";\n\tmissing_required_event: \"fail\";\n};\n\nexport type RequiredClockWire = {\n\tschema_id: typeof REQUIRED_CLOCK_SCHEMA_ID;\n\tclock_id: LowercaseUuid;\n\tclock_sha256: Sha256Hex;\n\tcreated_at: FixedUtcTimestamp;\n\ttargets: Array<{ target_id: LowercaseUuid; target_at: FixedUtcTimestamp }>;\n};\n\nexport type ArchiveSelectionWire = {\n\tschema_id: typeof ARCHIVE_SELECTION_SCHEMA_ID;\n\tselection_sha256: Sha256Hex;\n\tscope: CanonicalScopeWire;\n\trequired_clock: {\n\t\tclock_id: LowercaseUuid;\n\t\tclock_sha256: Sha256Hex;\n\t\tevent_count: number;\n\t};\n\tcoverage_policy: CoveragePolicyWire;\n\tsource_policy: \"authoritative_window\" | \"fill_gaps\";\n\tcoverage_class: \"complete\" | \"partial\" | \"missing\";\n\trequested_intervals: Array<{\n\t\tstart_at: FixedUtcTimestamp;\n\t\tend_at: FixedUtcTimestamp;\n\t}>;\n\tselected_intervals: Array<{\n\t\tstart_at: FixedUtcTimestamp;\n\t\tend_at: FixedUtcTimestamp;\n\t\tcapture_bundle_id: Sha256Hex;\n\t\tcapture_origin: \"production_capture\" | \"vendor_historical_backfill\";\n\t}>;\n\tprecedence: Array<\"archive\" | \"vendor\">;\n\tbundles: Array<{\n\t\tcapture_bundle_id: Sha256Hex;\n\t\tcapture_origin: \"production_capture\" | \"vendor_historical_backfill\";\n\t\tinterval: { start_at: FixedUtcTimestamp; end_at: FixedUtcTimestamp };\n\t\tqualification: null | {\n\t\t\tqualification_event_id: LowercaseUuid;\n\t\t\tstate: \"qualified\";\n\t\t\treceipt_id: Sha256Hex;\n\t\t\tpromotion_identity_sha256: Sha256Hex;\n\t\t};\n\t}>;\n\tsupport_anchors: Array<{\n\t\tcapture_bundle_id: Sha256Hex;\n\t\traw_capture_id: Sha256Hex;\n\t\tsnapshot_id: Sha256Hex;\n\t\tsource_time: FixedUtcTimestamp;\n\t\tnormalized_summary_checksum: Sha256Hex;\n\t\tmetadata_ref: {\n\t\t\tcapture_origin: \"production_capture\" | \"vendor_historical_backfill\";\n\t\t\tqualification_event_id: LowercaseUuid | null;\n\t\t\treceipt_id: Sha256Hex | null;\n\t\t};\n\t}>;\n\treceipt_ids: Sha256Hex[];\n\tqualification_event_ids: LowercaseUuid[];\n\tresolved_at: FixedUtcTimestamp;\n};\n\nexport type BackfillRequestWire = {\n\tschema_id: typeof BACKFILL_REQUEST_SCHEMA_ID;\n\trequest_id: LowercaseUuid;\n\tattempt_id: LowercaseUuid;\n\tidempotency_key: Sha256Hex;\n\tscope: CanonicalScopeWire;\n\twindow: { start_at: FixedUtcTimestamp; end_at: FixedUtcTimestamp };\n\tdepth: number;\n\tconstruction_mode: \"sampled_top_n_snapshot\" | \"exact_l2_reconstruction\";\n\tsource_policy: \"authoritative_window\" | \"fill_gaps\";\n\ttarget: { environment: string; cluster: string };\n\tcoverage_policy: CoveragePolicyWire;\n\trequired_clock: {\n\t\tschema_id: typeof REQUIRED_CLOCK_SCHEMA_ID;\n\t\tclock_id: LowercaseUuid;\n\t\tfile_name: string;\n\t\tclock_sha256: Sha256Hex;\n\t\tevent_count: number;\n\t};\n\tinitial_selection: ArchiveSelectionWire;\n\texpected_canonical_schema: {\n\t\tschema_id: string;\n\t\tschema_sha256: Sha256Hex;\n\t};\n\tproduct_pins: {\n\t\tcapability_policy: { policy_id: string; policy_sha256: Sha256Hex };\n\t\tresource_policy: { policy_id: string; policy_sha256: Sha256Hex };\n\t};\n\tproduction_authorization_id: LowercaseUuid;\n};\n\nexport type PromotionReceiptWire = {\n\tschema_id: typeof PROMOTION_RECEIPT_SCHEMA_ID;\n\treceipt_id: Sha256Hex;\n\tpromotion_identity_sha256: Sha256Hex;\n\tverified_at: FixedUtcTimestamp;\n\trequest_id: LowercaseUuid;\n\tidempotency_key: Sha256Hex;\n\tsource: \"external_backfill\";\n\tcapture_origin: \"vendor_historical_backfill\";\n\tsource_mode: \"vendor_historical_backfill_v1\";\n\tprovider: string;\n\tadapter_version: string;\n\teffective_policies: {\n\t\tcapability_policy: { policy_id: string; policy_sha256: Sha256Hex };\n\t\tresource_policy: { policy_id: string; policy_sha256: Sha256Hex };\n\t\tadapter_policy: { policy_id: string; policy_sha256: Sha256Hex };\n\t\tacquisition_policy: { policy_id: string; policy_sha256: Sha256Hex };\n\t};\n\tcapture_bundle_id: Sha256Hex;\n\tscope: CanonicalScopeWire;\n\twindow: { start_at: FixedUtcTimestamp; end_at: FixedUtcTimestamp };\n\tdepth: number;\n\tconstruction_mode:\n\t\t| \"sampled_top_n_snapshot\"\n\t\t| \"exact_l2_reconstruction\"\n\t\t| \"policy_neutral_top_n_state_change_tape/v1\";\n\tcanonical_schema: { schema_id: string; schema_sha256: Sha256Hex };\n\tcoverage_policy: CoveragePolicyWire;\n\tselection_sha256: Sha256Hex;\n\tvendor_semantic_digest: Sha256Hex;\n\tcanonical_semantic_digest: Sha256Hex;\n\tprefix_digest: Sha256Hex;\n\tsuffix_digest: Sha256Hex;\n\tseam_verified: true;\n\tcoverage_verified: true;\n\tdataset_objects: Array<{\n\t\tidentity: string;\n\t\tchecksum: Sha256Hex;\n\t\tbytes: number;\n\t\trows: number;\n\t}>;\n};\n\nexport const FINAL_BACKFILL_STATUSES = [\n\t\"request_invalid\",\n\t\"archive_preflight_failed\",\n\t\"already_covered\",\n\t\"promoted\",\n\t\"capability_unsupported\",\n\t\"credentials_missing\",\n\t\"vendor_fetch_failed\",\n\t\"archive_ingest_failed\",\n\t\"promotion_verification_failed\",\n] as const;\n\nexport type FinalBackfillStatus = (typeof FINAL_BACKFILL_STATUSES)[number];\n\nexport type BackfillOutcomeWire = {\n\tstatus: FinalBackfillStatus;\n\treason_code: string;\n\treason_subcode: string | null;\n\trequest_id: LowercaseUuid | null;\n\tidempotency_key: Sha256Hex | null;\n\ttarget: { environment: string; cluster: string } | null;\n\tselection: ArchiveSelectionWire | null;\n\treceipt: PromotionReceiptWire | null;\n\tdiagnostics: Record<string, string | number | boolean>;\n};\n\ntype Codec<T> = {\n\tdecode(value: unknown): T;\n\tis(value: unknown): value is T;\n};\n\nexport class BackfillRequestValidationError extends Error {\n\tconstructor(\n\t\treadonly reasonSubcode: string,\n\t\tmessage: string,\n\t) {\n\t\tsuper(message);\n\t\tthis.name = \"BackfillRequestValidationError\";\n\t}\n}\n\nfunction describeAjvErrors(errors: ErrorObject[] | null | undefined): string {\n\treturn (errors ?? [])\n\t\t.map(\n\t\t\t(error) =>\n\t\t\t\t`${error.instancePath || \"/\"} ${error.message ?? \"is invalid\"}`,\n\t\t)\n\t\t.join(\"; \");\n}\n\nfunction codec<T>(\n\tvalidate: ValidateFunction,\n\tsemantic?: (document: T) => void,\n): Codec<T> {\n\treturn {\n\t\tdecode(value: unknown): T {\n\t\t\tif (!validate(value)) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t`JSON Schema validation failed: ${describeAjvErrors(validate.errors)}`,\n\t\t\t\t);\n\t\t\t}\n\t\t\tsemantic?.(value as T);\n\t\t\treturn value as T;\n\t\t},\n\t\tis(value: unknown): value is T {\n\t\t\tif (!validate(value)) return false;\n\t\t\ttry {\n\t\t\t\tsemantic?.(value as T);\n\t\t\t\treturn true;\n\t\t\t} catch {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t},\n\t};\n}\n\nfunction fixedTimestampMs(value: string, field: string): number {\n\tconst parsed = Date.parse(value);\n\tif (\n\t\t!Number.isSafeInteger(parsed) ||\n\t\tnew Date(parsed).toISOString() !== value\n\t) {\n\t\tthrow new Error(`${field} is not a fixed UTC RFC3339 timestamp`);\n\t}\n\treturn parsed;\n}\n\nfunction assertIncreasingInterval(\n\tinterval: { start_at: string; end_at: string },\n\tfield: string,\n): void {\n\tif (\n\t\tfixedTimestampMs(interval.end_at, `${field}.end_at`) <=\n\t\tfixedTimestampMs(interval.start_at, `${field}.start_at`)\n\t) {\n\t\tthrow new Error(`${field} must be an increasing half-open interval`);\n\t}\n}\n\nconst ajv = new Ajv2020({ allErrors: true, strict: true });\najv.addSchema(archiveSelectionSchemaJson);\najv.addSchema(promotionReceiptSchemaJson);\nconst validateRequiredClock = ajv.compile(requiredClockSchemaJson);\nconst validateArchiveSelection = ajv.getSchema(ARCHIVE_SELECTION_SCHEMA_ID);\nconst validatePromotionReceipt = ajv.getSchema(PROMOTION_RECEIPT_SCHEMA_ID);\nconst validateBackfillRequest = ajv.compile(requestSchemaJson);\nif (!validateArchiveSelection || !validatePromotionReceipt) {\n\tthrow new Error(\"Backfill referenced schemas were not registered\");\n}\n\nexport const requiredClockCodec = codec<RequiredClockWire>(\n\tvalidateRequiredClock,\n\t(clock) => {\n\t\tassertDocumentSha256(clock, \"clock_sha256\");\n\t\tlet previous = -1;\n\t\tconst targetIds = new Set<string>();\n\t\tfor (const [index, target] of clock.targets.entries()) {\n\t\t\tconst at = fixedTimestampMs(\n\t\t\t\ttarget.target_at,\n\t\t\t\t`targets[${index}].target_at`,\n\t\t\t);\n\t\t\tif (at <= previous)\n\t\t\t\tthrow new Error(\"required clock targets must be strictly increasing\");\n\t\t\tif (targetIds.has(target.target_id))\n\t\t\t\tthrow new Error(\"required clock target IDs must be unique\");\n\t\t\ttargetIds.add(target.target_id);\n\t\t\tprevious = at;\n\t\t}\n\t},\n);\n\nexport const archiveSelectionCodec = codec<ArchiveSelectionWire>(\n\tvalidateArchiveSelection,\n\t(selection) => {\n\t\tassertDocumentSha256(selection, \"selection_sha256\");\n\t\tselection.requested_intervals.forEach((interval, index) => {\n\t\t\tassertIncreasingInterval(interval, `requested_intervals[${index}]`);\n\t\t});\n\t\tselection.selected_intervals.forEach((interval, index) => {\n\t\t\tassertIncreasingInterval(interval, `selected_intervals[${index}]`);\n\t\t});\n\t\tselection.bundles.forEach((bundle, index) => {\n\t\t\tassertIncreasingInterval(bundle.interval, `bundles[${index}].interval`);\n\t\t});\n\t\tif (\n\t\t\tselection.coverage_class === \"missing\" &&\n\t\t\tselection.selected_intervals.length !== 0\n\t\t) {\n\t\t\tthrow new Error(\"missing selection cannot contain selected intervals\");\n\t\t}\n\t},\n);\n\nfunction promotionSemanticFields(\n\treceipt: PromotionReceiptWire,\n): Record<string, unknown> {\n\treturn Object.fromEntries(\n\t\tObject.entries(receipt).filter(\n\t\t\t([key]) =>\n\t\t\t\tkey !== \"receipt_id\" &&\n\t\t\t\tkey !== \"promotion_identity_sha256\" &&\n\t\t\t\tkey !== \"verified_at\",\n\t\t),\n\t);\n}\n\nexport function promotionIdentitySha256(\n\treceipt: Omit<\n\t\tPromotionReceiptWire,\n\t\t\"receipt_id\" | \"promotion_identity_sha256\"\n\t> &\n\t\tPartial<\n\t\t\tPick<PromotionReceiptWire, \"receipt_id\" | \"promotion_identity_sha256\">\n\t\t>,\n): string {\n\treturn jcsSha256(promotionSemanticFields(receipt as PromotionReceiptWire));\n}\n\nexport const promotionReceiptCodec = codec<PromotionReceiptWire>(\n\tvalidatePromotionReceipt,\n\t(receipt) => {\n\t\tassertIncreasingInterval(receipt.window, \"window\");\n\t\tif (\n\t\t\tpromotionIdentitySha256(receipt) !== receipt.promotion_identity_sha256\n\t\t) {\n\t\t\tthrow new Error(\n\t\t\t\t\"promotion_identity_sha256 does not match semantic receipt content\",\n\t\t\t);\n\t\t}\n\t\tassertDocumentSha256(receipt, \"receipt_id\");\n\t},\n);\n\nfunction wireIdempotencyBusinessFields(\n\trequest: Omit<BackfillRequestWire, \"idempotency_key\"> & {\n\t\tidempotency_key?: string;\n\t},\n) {\n\treturn {\n\t\tscope: request.scope,\n\t\twindow: request.window,\n\t\tdepth: request.depth,\n\t\tconstruction_mode: request.construction_mode,\n\t\trequired_clock_sha256: request.required_clock.clock_sha256,\n\t\tcoverage_policy: request.coverage_policy,\n\t\tsource_policy: request.source_policy,\n\t\texpected_canonical_schema: request.expected_canonical_schema,\n\t\ttarget: request.target,\n\t};\n}\n\nexport const backfillRequestCodec = {\n\tdecode(value: unknown): { wire: BackfillRequestWire } {\n\t\tif (!validateBackfillRequest(value)) {\n\t\t\tthrow new Error(\n\t\t\t\t`JSON Schema validation failed: ${describeAjvErrors(validateBackfillRequest.errors)}`,\n\t\t\t);\n\t\t}\n\t\tconst request = value as BackfillRequestWire;\n\t\tarchiveSelectionCodec.decode(request.initial_selection);\n\t\tassertIncreasingInterval(request.window, \"window\");\n\t\tif (request.idempotency_key !== createBackfillIdempotencyKey(request)) {\n\t\t\tthrow new Error(\n\t\t\t\t\"idempotency_key does not match canonical business fields\",\n\t\t\t);\n\t\t}\n\t\tif (\n\t\t\trequest.product_pins.capability_policy.policy_id !==\n\t\t\t\tCAPABILITY_POLICY.policy_id ||\n\t\t\trequest.product_pins.capability_policy.policy_sha256 !==\n\t\t\t\tCAPABILITY_POLICY.policy_sha256 ||\n\t\t\trequest.product_pins.resource_policy.policy_id !==\n\t\t\t\tRESOURCE_POLICY.policy_id ||\n\t\t\trequest.product_pins.resource_policy.policy_sha256 !==\n\t\t\t\tRESOURCE_POLICY.policy_sha256\n\t\t) {\n\t\t\tthrow new BackfillRequestValidationError(\n\t\t\t\t\"current_policy_tuple_required\",\n\t\t\t\t\"request policy pins must match the exact capability-v3/resource-v2 tuple\",\n\t\t\t);\n\t\t}\n\t\tif (\n\t\t\trequest.required_clock.clock_id !==\n\t\t\t\trequest.initial_selection.required_clock.clock_id ||\n\t\t\trequest.required_clock.clock_sha256 !==\n\t\t\t\trequest.initial_selection.required_clock.clock_sha256 ||\n\t\t\trequest.required_clock.event_count !==\n\t\t\t\trequest.initial_selection.required_clock.event_count\n\t\t) {\n\t\t\tthrow new Error(\n\t\t\t\t\"initial selection required clock reference does not match request\",\n\t\t\t);\n\t\t}\n\t\tif (\n\t\t\tjcsSha256(request.scope) !== jcsSha256(request.initial_selection.scope)\n\t\t) {\n\t\t\tthrow new Error(\"initial selection scope does not match request\");\n\t\t}\n\t\tif (\n\t\t\tjcsSha256(request.coverage_policy) !==\n\t\t\tjcsSha256(request.initial_selection.coverage_policy)\n\t\t) {\n\t\t\tthrow new Error(\n\t\t\t\t\"initial selection coverage policy does not match request\",\n\t\t\t);\n\t\t}\n\t\tif (request.source_policy !== request.initial_selection.source_policy) {\n\t\t\tthrow new Error(\"initial selection source policy does not match request\");\n\t\t}\n\t\treturn { wire: request };\n\t},\n\tis(value: unknown): value is BackfillRequestWire {\n\t\ttry {\n\t\t\tthis.decode(value);\n\t\t\treturn true;\n\t\t} catch {\n\t\t\treturn false;\n\t\t}\n\t},\n};\n\nexport function finalizeRequiredClock(\n\tclock: Omit<RequiredClockWire, \"clock_sha256\">,\n): RequiredClockWire {\n\treturn requiredClockCodec.decode({\n\t\t...clock,\n\t\tclock_sha256: documentSha256(clock, \"clock_sha256\"),\n\t});\n}\n\nexport function finalizeArchiveSelection(\n\tselection: Omit<ArchiveSelectionWire, \"selection_sha256\">,\n): ArchiveSelectionWire {\n\treturn archiveSelectionCodec.decode({\n\t\t...selection,\n\t\tselection_sha256: documentSha256(selection, \"selection_sha256\"),\n\t});\n}\n\nexport const BACKFILL_REQUEST_SCHEMA_VERSION =\n\t\"market-data-vendor-backfill-request/v1\" as const;\nexport const BACKFILL_PROMOTION_SCHEMA_VERSION =\n\t\"market-data-vendor-backfill-promotion-receipt/v1\" as const;\nexport const EXTERNAL_BACKFILL_SOURCE = \"external_backfill\" as const;\nexport const HISTORICAL_VENDOR_SOURCE_MODE =\n\t\"vendor_historical_backfill_v1\" as const;\nexport const VENDOR_DATASET_RAW_CAPTURE_SCOPE =\n\t\"vendor_normalized_dataset_file\" as const;\n\nconst nonEmpty = z.string().trim().min(1);\nconst sha256 = z.string().regex(/^[a-f0-9]{64}$/);\nconst timestampMs = z.number().int().nonnegative().max(Number.MAX_SAFE_INTEGER);\n\nexport const backfillRequestSchema = z\n\t.object({\n\t\tschemaVersion: z.literal(BACKFILL_REQUEST_SCHEMA_VERSION),\n\t\trequestId: nonEmpty,\n\t\tidempotencyKey: sha256,\n\t\tproviderPolicy: z\n\t\t\t.object({\n\t\t\t\tprovider: z.literal(\"cryptohftdata\"),\n\t\t\t\tallowedAdapterVersions: z.array(nonEmpty).min(1).max(16),\n\t\t\t})\n\t\t\t.strict(),\n\t\tscope: z\n\t\t\t.object({\n\t\t\t\texchange: nonEmpty,\n\t\t\t\ttradingPair: nonEmpty,\n\t\t\t\tsourceSymbol: nonEmpty,\n\t\t\t\tmarketType: z.enum([\"spot\", \"swap\", \"future\"]),\n\t\t\t\tfeed: z.literal(\"ORDERBOOK\"),\n\t\t\t})\n\t\t\t.strict(),\n\t\twindow: z\n\t\t\t.object({ startTimeMs: timestampMs, endTimeMs: timestampMs })\n\t\t\t.strict()\n\t\t\t.refine(({ startTimeMs, endTimeMs }) => endTimeMs > startTimeMs, {\n\t\t\t\tmessage: \"endTimeMs must be greater than startTimeMs\",\n\t\t\t}),\n\t\tdepth: z.number().int().min(1).max(500),\n\t\tconstructionMode: z.enum([\n\t\t\t\"sampled_top_n_snapshot\",\n\t\t\t\"exact_l2_reconstruction\",\n\t\t]),\n\t\trequiredClockTargetsMs: z.array(timestampMs).min(1).max(100_000),\n\t\tmaxPriorAsOfLagMs: z.number().int().nonnegative().max(86_400_000),\n\t\tsourcePolicy: z.enum([\"authoritative_window\", \"fill_gaps\"]),\n\t\tbudgets: z\n\t\t\t.object({\n\t\t\t\tmaxFiles: z.number().int().min(1).max(10_000),\n\t\t\t\tmaxBytes: z\n\t\t\t\t\t.number()\n\t\t\t\t\t.int()\n\t\t\t\t\t.min(1)\n\t\t\t\t\t.max(100 * 1024 * 1024 * 1024),\n\t\t\t\tmaxRows: z.number().int().min(1).max(1_000_000_000),\n\t\t\t\tmaxDurationMs: z\n\t\t\t\t\t.number()\n\t\t\t\t\t.int()\n\t\t\t\t\t.min(1)\n\t\t\t\t\t.max(24 * 60 * 60 * 1_000),\n\t\t\t\tmaxBoundaryLookbackMs: z\n\t\t\t\t\t.number()\n\t\t\t\t\t.int()\n\t\t\t\t\t.nonnegative()\n\t\t\t\t\t.max(7 * 24 * 60 * 60 * 1_000),\n\t\t\t})\n\t\t\t.strict(),\n\t\texpectedProduct: z\n\t\t\t.object({\n\t\t\t\tpackageName: z.literal(\"@usherlabs/cex-broker\"),\n\t\t\t\tpackageVersion: nonEmpty.optional(),\n\t\t\t\tcanonicalSchemaVersion: nonEmpty,\n\t\t\t\tchecksumAlgorithm: z.literal(\"sha256-canonical-json-v1\"),\n\t\t\t})\n\t\t\t.strict(),\n\t})\n\t.strict()\n\t.superRefine((request, context) => {\n\t\tconst targets = request.requiredClockTargetsMs;\n\t\tfor (let index = 0; index < targets.length; index += 1) {\n\t\t\tconst target = targets[index] as number;\n\t\t\tif (\n\t\t\t\ttarget < request.window.startTimeMs ||\n\t\t\t\ttarget >= request.window.endTimeMs\n\t\t\t) {\n\t\t\t\tcontext.addIssue({\n\t\t\t\t\tcode: \"custom\",\n\t\t\t\t\tpath: [\"requiredClockTargetsMs\", index],\n\t\t\t\t\tmessage: \"clock target must be inside the half-open request window\",\n\t\t\t\t});\n\t\t\t}\n\t\t\tif (index > 0 && target <= (targets[index - 1] as number)) {\n\t\t\t\tcontext.addIssue({\n\t\t\t\t\tcode: \"custom\",\n\t\t\t\t\tpath: [\"requiredClockTargetsMs\", index],\n\t\t\t\t\tmessage: \"clock targets must be strictly increasing\",\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t});\n\ntype ProvisionalBackfillDomainRequest = z.infer<typeof backfillRequestSchema>;\n\nexport type MarketDataVendorBackfillRequest = Omit<\n\tProvisionalBackfillDomainRequest,\n\t\"constructionMode\"\n> & {\n\tconstructionMode:\n\t\t| ProvisionalBackfillDomainRequest[\"constructionMode\"]\n\t\t| \"policy_neutral_top_n_state_change_tape/v1\";\n\tattemptId?: string;\n\ttarget?: { environment: string; cluster: string };\n\tcoveragePolicy?: CoveragePolicyWire;\n\trequiredClock?: RequiredClockWire;\n\tinitialSelection?: ArchiveSelectionWire;\n\texpectedCanonicalSchema?: BackfillRequestWire[\"expected_canonical_schema\"];\n\tproductPins?: BackfillRequestWire[\"product_pins\"];\n\tproductionAuthorizationId?: string;\n\twire?: BackfillRequestWire;\n};\n\nexport function decodeBackfillRunDocuments(input: {\n\trequest: unknown;\n\trequiredClock: unknown;\n}): MarketDataVendorBackfillRequest {\n\tconst { wire } = backfillRequestCodec.decode(input.request);\n\tconst requiredClock = requiredClockCodec.decode(input.requiredClock);\n\tif (\n\t\trequiredClock.clock_id !== wire.required_clock.clock_id ||\n\t\trequiredClock.clock_sha256 !== wire.required_clock.clock_sha256 ||\n\t\trequiredClock.targets.length !== wire.required_clock.event_count\n\t) {\n\t\tthrow new Error(\"required clock sidecar does not match request reference\");\n\t}\n\tconst startTimeMs = fixedTimestampMs(wire.window.start_at, \"window.start_at\");\n\tconst endTimeMs = fixedTimestampMs(wire.window.end_at, \"window.end_at\");\n\tconst requiredClockTargetsMs = requiredClock.targets.map((target, index) => {\n\t\tconst targetTimeMs = fixedTimestampMs(\n\t\t\ttarget.target_at,\n\t\t\t`required_clock.targets[${index}].target_at`,\n\t\t);\n\t\tif (targetTimeMs < startTimeMs || targetTimeMs >= endTimeMs) {\n\t\t\tthrow new Error(\"required clock target is outside request window\");\n\t\t}\n\t\treturn targetTimeMs;\n\t});\n\tconst capabilityProfile = CAPABILITY_POLICY.profiles.find(\n\t\t(profile) =>\n\t\t\tprofile.exchange === wire.scope.exchange &&\n\t\t\tprofile.market_type === wire.scope.market_type &&\n\t\t\tprofile.feed === wire.scope.feed &&\n\t\t\tprofile.canonical_trading_pair === wire.scope.trading_pair,\n\t);\n\treturn {\n\t\tschemaVersion: BACKFILL_REQUEST_SCHEMA_VERSION,\n\t\trequestId: wire.request_id,\n\t\tidempotencyKey: wire.idempotency_key,\n\t\tproviderPolicy: {\n\t\t\tprovider: \"cryptohftdata\",\n\t\t\tallowedAdapterVersions: [\n\t\t\t\tCAPABILITY_POLICY.adapter_policy.adapter_version,\n\t\t\t],\n\t\t},\n\t\tscope: {\n\t\t\texchange: wire.scope.exchange,\n\t\t\ttradingPair: wire.scope.trading_pair,\n\t\t\tsourceSymbol:\n\t\t\t\tcapabilityProfile?.resolved_symbol ?? wire.scope.trading_pair,\n\t\t\tmarketType: wire.scope.market_type,\n\t\t\tfeed: wire.scope.feed,\n\t\t},\n\t\twindow: { startTimeMs, endTimeMs },\n\t\tdepth: wire.depth,\n\t\tconstructionMode: wire.construction_mode,\n\t\trequiredClockTargetsMs,\n\t\tmaxPriorAsOfLagMs: wire.coverage_policy.max_asof_lag_ms,\n\t\tsourcePolicy: wire.source_policy,\n\t\tbudgets: {\n\t\t\tmaxFiles: RESOURCE_POLICY.limits.max_files,\n\t\t\tmaxBytes: RESOURCE_POLICY.limits.max_bytes,\n\t\t\tmaxRows: RESOURCE_POLICY.limits.max_rows,\n\t\t\tmaxDurationMs: RESOURCE_POLICY.limits.max_duration_ms,\n\t\t\tmaxBoundaryLookbackMs: Math.min(\n\t\t\t\tRESOURCE_POLICY.limits.max_boundary_lookback_ms,\n\t\t\t\tCAPABILITY_POLICY.acquisition_policy.initialization_lookback_ms,\n\t\t\t),\n\t\t},\n\t\texpectedProduct: {\n\t\t\tpackageName: \"@usherlabs/cex-broker\",\n\t\t\tcanonicalSchemaVersion: \"1.0.0\",\n\t\t\tchecksumAlgorithm: \"sha256-canonical-json-v1\",\n\t\t},\n\t\tattemptId: wire.attempt_id,\n\t\ttarget: wire.target,\n\t\tcoveragePolicy: wire.coverage_policy,\n\t\trequiredClock,\n\t\tinitialSelection: wire.initial_selection,\n\t\texpectedCanonicalSchema: wire.expected_canonical_schema,\n\t\tproductPins: wire.product_pins,\n\t\tproductionAuthorizationId: wire.production_authorization_id,\n\t\twire,\n\t};\n}\n\ntype IdempotencyBusinessFields = Omit<\n\tMarketDataVendorBackfillRequest,\n\t\"requestId\" | \"idempotencyKey\"\n>;\n\nexport function backfillBusinessFields(\n\trequest: Omit<MarketDataVendorBackfillRequest, \"idempotencyKey\"> & {\n\t\tidempotencyKey?: string;\n\t},\n): IdempotencyBusinessFields {\n\tconst {\n\t\trequestId: _requestId,\n\t\tidempotencyKey: _idempotencyKey,\n\t\t...business\n\t} = request;\n\treturn business;\n}\n\nexport function createBackfillIdempotencyKey(\n\trequest: Omit<MarketDataVendorBackfillRequest, \"idempotencyKey\"> & {\n\t\tidempotencyKey?: string;\n\t},\n): string;\nexport function createBackfillIdempotencyKey(\n\trequest: Omit<BackfillRequestWire, \"idempotency_key\"> & {\n\t\tidempotency_key?: string;\n\t},\n): string;\nexport function createBackfillIdempotencyKey(\n\trequest: Record<string, unknown>,\n): string;\nexport function createBackfillIdempotencyKey(request: unknown): string {\n\tif (!request || typeof request !== \"object\") {\n\t\tthrow new TypeError(\"backfill request must be an object\");\n\t}\n\tif (\"schema_id\" in request) {\n\t\treturn jcsSha256(\n\t\t\twireIdempotencyBusinessFields(\n\t\t\t\trequest as Omit<BackfillRequestWire, \"idempotency_key\"> & {\n\t\t\t\t\tidempotency_key?: string;\n\t\t\t\t},\n\t\t\t),\n\t\t);\n\t}\n\treturn sha256Canonical(\n\t\tbackfillBusinessFields(\n\t\t\trequest as Omit<MarketDataVendorBackfillRequest, \"idempotencyKey\"> & {\n\t\t\t\tidempotencyKey?: string;\n\t\t\t},\n\t\t),\n\t);\n}\n\nexport function parseBackfillRequest(\n\tvalue: unknown,\n): MarketDataVendorBackfillRequest {\n\tconst request = backfillRequestSchema.parse(value);\n\tif (createBackfillIdempotencyKey(request) !== request.idempotencyKey) {\n\t\tthrow new Error(\"idempotencyKey does not match canonical business fields\");\n\t}\n\treturn request;\n}\n\nexport const BACKFILL_STATUSES = [\n\t\"already_covered\",\n\t\"promoted\",\n\t\"capability_unsupported\",\n\t\"credentials_missing\",\n\t\"vendor_fetch_failed\",\n\t\"archive_ingest_failed\",\n\t\"promotion_verification_failed\",\n\t\"post_backfill_coverage_insufficient\",\n] as const;\n\nexport type BackfillStatus = (typeof BACKFILL_STATUSES)[number];\n\nexport type ProviderCapability = {\n\tprovider: \"cryptohftdata\";\n\tadapterVersion: string;\n\tproviderExchangeId: string;\n\tresolvedSymbol: string;\n};\n\nexport type ProviderObjectEvidence = {\n\tidentity: string;\n\tchecksum: string;\n\tbytes: number;\n\trows: number;\n};\n\nconst providerObjectEvidenceSchema = z\n\t.object({\n\t\tidentity: nonEmpty,\n\t\tchecksum: sha256,\n\t\tbytes: z.number().int().nonnegative(),\n\t\trows: z.number().int().nonnegative(),\n\t})\n\t.strict();\n\nexport type BackfillArchiveRow = {\n\ttable:\n\t\t| \"market_data.cex_order_book_levels\"\n\t\t| \"market_data.cex_order_book_depth_summary\"\n\t\t| \"market_data.cex_order_book_capture_promotions\"\n\t\t| \"market_data.cex_order_book_capture_qualifications\"\n\t\t| \"market_data.cex_order_book_archive_selections\";\n\trow: Record<string, unknown>;\n};\n\nexport type ForwarderBatch = {\n\tsource: typeof EXTERNAL_BACKFILL_SOURCE;\n\tdeployment_id: string;\n\tbatch_id: string;\n\trows: BackfillArchiveRow[];\n};\n\nexport type PromotionReceipt = {\n\tschemaVersion: typeof BACKFILL_PROMOTION_SCHEMA_VERSION;\n\treceiptId: string;\n\trequestId: string;\n\tidempotencyKey: string;\n\tstatus: \"passing\";\n\tsource: typeof EXTERNAL_BACKFILL_SOURCE;\n\tprovider: \"cryptohftdata\";\n\tadapterVersion: string;\n\tcaptureBundleId: string;\n\texchange: string;\n\ttradingPair: string;\n\tmarketType: \"spot\" | \"swap\" | \"future\";\n\tfeed: \"ORDERBOOK\";\n\tstartTimeMs: number;\n\tendTimeMs: number;\n\tdepth: number;\n\tconstructionMode:\n\t\t| \"sampled_top_n_snapshot\"\n\t\t| \"exact_l2_reconstruction\"\n\t\t| \"policy_neutral_top_n_state_change_tape/v1\";\n\tcanonicalSchemaVersion: string;\n\tchecksumAlgorithm: \"sha256-canonical-json-v1\";\n\tvendorSemanticDigest: string;\n\tcanonicalSemanticDigest: string;\n\tprefixDigest: string;\n\tsuffixDigest: string;\n\tseamVerified: true;\n\tcoverageVerified: true;\n\tdatasetObjects: ProviderObjectEvidence[];\n\tverificationTimeMs: number;\n};\n\nexport const promotionReceiptSchema: z.ZodType<PromotionReceipt> = z\n\t.object({\n\t\tschemaVersion: z.literal(BACKFILL_PROMOTION_SCHEMA_VERSION),\n\t\treceiptId: sha256,\n\t\trequestId: nonEmpty,\n\t\tidempotencyKey: sha256,\n\t\tstatus: z.literal(\"passing\"),\n\t\tsource: z.literal(EXTERNAL_BACKFILL_SOURCE),\n\t\tprovider: z.literal(\"cryptohftdata\"),\n\t\tadapterVersion: nonEmpty,\n\t\tcaptureBundleId: sha256,\n\t\texchange: nonEmpty,\n\t\ttradingPair: nonEmpty,\n\t\tmarketType: z.enum([\"spot\", \"swap\", \"future\"]),\n\t\tfeed: z.literal(\"ORDERBOOK\"),\n\t\tstartTimeMs: timestampMs,\n\t\tendTimeMs: timestampMs,\n\t\tdepth: z.number().int().min(1).max(500),\n\t\tconstructionMode: z.enum([\n\t\t\t\"sampled_top_n_snapshot\",\n\t\t\t\"exact_l2_reconstruction\",\n\t\t\t\"policy_neutral_top_n_state_change_tape/v1\",\n\t\t]),\n\t\tcanonicalSchemaVersion: nonEmpty,\n\t\tchecksumAlgorithm: z.literal(\"sha256-canonical-json-v1\"),\n\t\tvendorSemanticDigest: sha256,\n\t\tcanonicalSemanticDigest: sha256,\n\t\tprefixDigest: sha256,\n\t\tsuffixDigest: sha256,\n\t\tseamVerified: z.literal(true),\n\t\tcoverageVerified: z.literal(true),\n\t\tdatasetObjects: z.array(providerObjectEvidenceSchema).min(1).max(10_000),\n\t\tverificationTimeMs: timestampMs,\n\t})\n\t.strict()\n\t.refine(({ endTimeMs, startTimeMs }) => endTimeMs > startTimeMs, {\n\t\tmessage: \"promotion window must be increasing\",\n\t});\n",
134
134
  "/** A special constant with type `never` */\nexport const NEVER = Object.freeze({\n status: \"aborted\",\n});\nexport /*@__NO_SIDE_EFFECTS__*/ function $constructor(name, initializer, params) {\n function init(inst, def) {\n if (!inst._zod) {\n Object.defineProperty(inst, \"_zod\", {\n value: {\n def,\n constr: _,\n traits: new Set(),\n },\n enumerable: false,\n });\n }\n if (inst._zod.traits.has(name)) {\n return;\n }\n inst._zod.traits.add(name);\n initializer(inst, def);\n // support prototype modifications\n const proto = _.prototype;\n const keys = Object.keys(proto);\n for (let i = 0; i < keys.length; i++) {\n const k = keys[i];\n if (!(k in inst)) {\n inst[k] = proto[k].bind(inst);\n }\n }\n }\n // doesn't work if Parent has a constructor with arguments\n const Parent = params?.Parent ?? Object;\n class Definition extends Parent {\n }\n Object.defineProperty(Definition, \"name\", { value: name });\n function _(def) {\n var _a;\n const inst = params?.Parent ? new Definition() : this;\n init(inst, def);\n (_a = inst._zod).deferred ?? (_a.deferred = []);\n for (const fn of inst._zod.deferred) {\n fn();\n }\n return inst;\n }\n Object.defineProperty(_, \"init\", { value: init });\n Object.defineProperty(_, Symbol.hasInstance, {\n value: (inst) => {\n if (params?.Parent && inst instanceof params.Parent)\n return true;\n return inst?._zod?.traits?.has(name);\n },\n });\n Object.defineProperty(_, \"name\", { value: name });\n return _;\n}\n////////////////////////////// UTILITIES ///////////////////////////////////////\nexport const $brand = Symbol(\"zod_brand\");\nexport class $ZodAsyncError extends Error {\n constructor() {\n super(`Encountered Promise during synchronous parse. Use .parseAsync() instead.`);\n }\n}\nexport class $ZodEncodeError extends Error {\n constructor(name) {\n super(`Encountered unidirectional transform during encode: ${name}`);\n this.name = \"ZodEncodeError\";\n }\n}\nexport const globalConfig = {};\nexport function config(newConfig) {\n if (newConfig)\n Object.assign(globalConfig, newConfig);\n return globalConfig;\n}\n",
135
135
  "// functions\nexport function assertEqual(val) {\n return val;\n}\nexport function assertNotEqual(val) {\n return val;\n}\nexport function assertIs(_arg) { }\nexport function assertNever(_x) {\n throw new Error(\"Unexpected value in exhaustive check\");\n}\nexport function assert(_) { }\nexport function getEnumValues(entries) {\n const numericValues = Object.values(entries).filter((v) => typeof v === \"number\");\n const values = Object.entries(entries)\n .filter(([k, _]) => numericValues.indexOf(+k) === -1)\n .map(([_, v]) => v);\n return values;\n}\nexport function joinValues(array, separator = \"|\") {\n return array.map((val) => stringifyPrimitive(val)).join(separator);\n}\nexport function jsonStringifyReplacer(_, value) {\n if (typeof value === \"bigint\")\n return value.toString();\n return value;\n}\nexport function cached(getter) {\n const set = false;\n return {\n get value() {\n if (!set) {\n const value = getter();\n Object.defineProperty(this, \"value\", { value });\n return value;\n }\n throw new Error(\"cached value already set\");\n },\n };\n}\nexport function nullish(input) {\n return input === null || input === undefined;\n}\nexport function cleanRegex(source) {\n const start = source.startsWith(\"^\") ? 1 : 0;\n const end = source.endsWith(\"$\") ? source.length - 1 : source.length;\n return source.slice(start, end);\n}\nexport function floatSafeRemainder(val, step) {\n const valDecCount = (val.toString().split(\".\")[1] || \"\").length;\n const stepString = step.toString();\n let stepDecCount = (stepString.split(\".\")[1] || \"\").length;\n if (stepDecCount === 0 && /\\d?e-\\d?/.test(stepString)) {\n const match = stepString.match(/\\d?e-(\\d?)/);\n if (match?.[1]) {\n stepDecCount = Number.parseInt(match[1]);\n }\n }\n const decCount = valDecCount > stepDecCount ? valDecCount : stepDecCount;\n const valInt = Number.parseInt(val.toFixed(decCount).replace(\".\", \"\"));\n const stepInt = Number.parseInt(step.toFixed(decCount).replace(\".\", \"\"));\n return (valInt % stepInt) / 10 ** decCount;\n}\nconst EVALUATING = Symbol(\"evaluating\");\nexport function defineLazy(object, key, getter) {\n let value = undefined;\n Object.defineProperty(object, key, {\n get() {\n if (value === EVALUATING) {\n // Circular reference detected, return undefined to break the cycle\n return undefined;\n }\n if (value === undefined) {\n value = EVALUATING;\n value = getter();\n }\n return value;\n },\n set(v) {\n Object.defineProperty(object, key, {\n value: v,\n // configurable: true,\n });\n // object[key] = v;\n },\n configurable: true,\n });\n}\nexport function objectClone(obj) {\n return Object.create(Object.getPrototypeOf(obj), Object.getOwnPropertyDescriptors(obj));\n}\nexport function assignProp(target, prop, value) {\n Object.defineProperty(target, prop, {\n value,\n writable: true,\n enumerable: true,\n configurable: true,\n });\n}\nexport function mergeDefs(...defs) {\n const mergedDescriptors = {};\n for (const def of defs) {\n const descriptors = Object.getOwnPropertyDescriptors(def);\n Object.assign(mergedDescriptors, descriptors);\n }\n return Object.defineProperties({}, mergedDescriptors);\n}\nexport function cloneDef(schema) {\n return mergeDefs(schema._zod.def);\n}\nexport function getElementAtPath(obj, path) {\n if (!path)\n return obj;\n return path.reduce((acc, key) => acc?.[key], obj);\n}\nexport function promiseAllObject(promisesObj) {\n const keys = Object.keys(promisesObj);\n const promises = keys.map((key) => promisesObj[key]);\n return Promise.all(promises).then((results) => {\n const resolvedObj = {};\n for (let i = 0; i < keys.length; i++) {\n resolvedObj[keys[i]] = results[i];\n }\n return resolvedObj;\n });\n}\nexport function randomString(length = 10) {\n const chars = \"abcdefghijklmnopqrstuvwxyz\";\n let str = \"\";\n for (let i = 0; i < length; i++) {\n str += chars[Math.floor(Math.random() * chars.length)];\n }\n return str;\n}\nexport function esc(str) {\n return JSON.stringify(str);\n}\nexport function slugify(input) {\n return input\n .toLowerCase()\n .trim()\n .replace(/[^\\w\\s-]/g, \"\")\n .replace(/[\\s_-]+/g, \"-\")\n .replace(/^-+|-+$/g, \"\");\n}\nexport const captureStackTrace = (\"captureStackTrace\" in Error ? Error.captureStackTrace : (..._args) => { });\nexport function isObject(data) {\n return typeof data === \"object\" && data !== null && !Array.isArray(data);\n}\nexport const allowsEval = cached(() => {\n // @ts-ignore\n if (typeof navigator !== \"undefined\" && navigator?.userAgent?.includes(\"Cloudflare\")) {\n return false;\n }\n try {\n const F = Function;\n new F(\"\");\n return true;\n }\n catch (_) {\n return false;\n }\n});\nexport function isPlainObject(o) {\n if (isObject(o) === false)\n return false;\n // modified constructor\n const ctor = o.constructor;\n if (ctor === undefined)\n return true;\n if (typeof ctor !== \"function\")\n return true;\n // modified prototype\n const prot = ctor.prototype;\n if (isObject(prot) === false)\n return false;\n // ctor doesn't have static `isPrototypeOf`\n if (Object.prototype.hasOwnProperty.call(prot, \"isPrototypeOf\") === false) {\n return false;\n }\n return true;\n}\nexport function shallowClone(o) {\n if (isPlainObject(o))\n return { ...o };\n if (Array.isArray(o))\n return [...o];\n return o;\n}\nexport function numKeys(data) {\n let keyCount = 0;\n for (const key in data) {\n if (Object.prototype.hasOwnProperty.call(data, key)) {\n keyCount++;\n }\n }\n return keyCount;\n}\nexport const getParsedType = (data) => {\n const t = typeof data;\n switch (t) {\n case \"undefined\":\n return \"undefined\";\n case \"string\":\n return \"string\";\n case \"number\":\n return Number.isNaN(data) ? \"nan\" : \"number\";\n case \"boolean\":\n return \"boolean\";\n case \"function\":\n return \"function\";\n case \"bigint\":\n return \"bigint\";\n case \"symbol\":\n return \"symbol\";\n case \"object\":\n if (Array.isArray(data)) {\n return \"array\";\n }\n if (data === null) {\n return \"null\";\n }\n if (data.then && typeof data.then === \"function\" && data.catch && typeof data.catch === \"function\") {\n return \"promise\";\n }\n if (typeof Map !== \"undefined\" && data instanceof Map) {\n return \"map\";\n }\n if (typeof Set !== \"undefined\" && data instanceof Set) {\n return \"set\";\n }\n if (typeof Date !== \"undefined\" && data instanceof Date) {\n return \"date\";\n }\n // @ts-ignore\n if (typeof File !== \"undefined\" && data instanceof File) {\n return \"file\";\n }\n return \"object\";\n default:\n throw new Error(`Unknown data type: ${t}`);\n }\n};\nexport const propertyKeyTypes = new Set([\"string\", \"number\", \"symbol\"]);\nexport const primitiveTypes = new Set([\"string\", \"number\", \"bigint\", \"boolean\", \"symbol\", \"undefined\"]);\nexport function escapeRegex(str) {\n return str.replace(/[.*+?^${}()|[\\]\\\\]/g, \"\\\\$&\");\n}\n// zod-specific utils\nexport function clone(inst, def, params) {\n const cl = new inst._zod.constr(def ?? inst._zod.def);\n if (!def || params?.parent)\n cl._zod.parent = inst;\n return cl;\n}\nexport function normalizeParams(_params) {\n const params = _params;\n if (!params)\n return {};\n if (typeof params === \"string\")\n return { error: () => params };\n if (params?.message !== undefined) {\n if (params?.error !== undefined)\n throw new Error(\"Cannot specify both `message` and `error` params\");\n params.error = params.message;\n }\n delete params.message;\n if (typeof params.error === \"string\")\n return { ...params, error: () => params.error };\n return params;\n}\nexport function createTransparentProxy(getter) {\n let target;\n return new Proxy({}, {\n get(_, prop, receiver) {\n target ?? (target = getter());\n return Reflect.get(target, prop, receiver);\n },\n set(_, prop, value, receiver) {\n target ?? (target = getter());\n return Reflect.set(target, prop, value, receiver);\n },\n has(_, prop) {\n target ?? (target = getter());\n return Reflect.has(target, prop);\n },\n deleteProperty(_, prop) {\n target ?? (target = getter());\n return Reflect.deleteProperty(target, prop);\n },\n ownKeys(_) {\n target ?? (target = getter());\n return Reflect.ownKeys(target);\n },\n getOwnPropertyDescriptor(_, prop) {\n target ?? (target = getter());\n return Reflect.getOwnPropertyDescriptor(target, prop);\n },\n defineProperty(_, prop, descriptor) {\n target ?? (target = getter());\n return Reflect.defineProperty(target, prop, descriptor);\n },\n });\n}\nexport function stringifyPrimitive(value) {\n if (typeof value === \"bigint\")\n return value.toString() + \"n\";\n if (typeof value === \"string\")\n return `\"${value}\"`;\n return `${value}`;\n}\nexport function optionalKeys(shape) {\n return Object.keys(shape).filter((k) => {\n return shape[k]._zod.optin === \"optional\" && shape[k]._zod.optout === \"optional\";\n });\n}\nexport const NUMBER_FORMAT_RANGES = {\n safeint: [Number.MIN_SAFE_INTEGER, Number.MAX_SAFE_INTEGER],\n int32: [-2147483648, 2147483647],\n uint32: [0, 4294967295],\n float32: [-3.4028234663852886e38, 3.4028234663852886e38],\n float64: [-Number.MAX_VALUE, Number.MAX_VALUE],\n};\nexport const BIGINT_FORMAT_RANGES = {\n int64: [/* @__PURE__*/ BigInt(\"-9223372036854775808\"), /* @__PURE__*/ BigInt(\"9223372036854775807\")],\n uint64: [/* @__PURE__*/ BigInt(0), /* @__PURE__*/ BigInt(\"18446744073709551615\")],\n};\nexport function pick(schema, mask) {\n const currDef = schema._zod.def;\n const checks = currDef.checks;\n const hasChecks = checks && checks.length > 0;\n if (hasChecks) {\n throw new Error(\".pick() cannot be used on object schemas containing refinements\");\n }\n const def = mergeDefs(schema._zod.def, {\n get shape() {\n const newShape = {};\n for (const key in mask) {\n if (!(key in currDef.shape)) {\n throw new Error(`Unrecognized key: \"${key}\"`);\n }\n if (!mask[key])\n continue;\n newShape[key] = currDef.shape[key];\n }\n assignProp(this, \"shape\", newShape); // self-caching\n return newShape;\n },\n checks: [],\n });\n return clone(schema, def);\n}\nexport function omit(schema, mask) {\n const currDef = schema._zod.def;\n const checks = currDef.checks;\n const hasChecks = checks && checks.length > 0;\n if (hasChecks) {\n throw new Error(\".omit() cannot be used on object schemas containing refinements\");\n }\n const def = mergeDefs(schema._zod.def, {\n get shape() {\n const newShape = { ...schema._zod.def.shape };\n for (const key in mask) {\n if (!(key in currDef.shape)) {\n throw new Error(`Unrecognized key: \"${key}\"`);\n }\n if (!mask[key])\n continue;\n delete newShape[key];\n }\n assignProp(this, \"shape\", newShape); // self-caching\n return newShape;\n },\n checks: [],\n });\n return clone(schema, def);\n}\nexport function extend(schema, shape) {\n if (!isPlainObject(shape)) {\n throw new Error(\"Invalid input to extend: expected a plain object\");\n }\n const checks = schema._zod.def.checks;\n const hasChecks = checks && checks.length > 0;\n if (hasChecks) {\n // Only throw if new shape overlaps with existing shape\n // Use getOwnPropertyDescriptor to check key existence without accessing values\n const existingShape = schema._zod.def.shape;\n for (const key in shape) {\n if (Object.getOwnPropertyDescriptor(existingShape, key) !== undefined) {\n throw new Error(\"Cannot overwrite keys on object schemas containing refinements. Use `.safeExtend()` instead.\");\n }\n }\n }\n const def = mergeDefs(schema._zod.def, {\n get shape() {\n const _shape = { ...schema._zod.def.shape, ...shape };\n assignProp(this, \"shape\", _shape); // self-caching\n return _shape;\n },\n });\n return clone(schema, def);\n}\nexport function safeExtend(schema, shape) {\n if (!isPlainObject(shape)) {\n throw new Error(\"Invalid input to safeExtend: expected a plain object\");\n }\n const def = mergeDefs(schema._zod.def, {\n get shape() {\n const _shape = { ...schema._zod.def.shape, ...shape };\n assignProp(this, \"shape\", _shape); // self-caching\n return _shape;\n },\n });\n return clone(schema, def);\n}\nexport function merge(a, b) {\n const def = mergeDefs(a._zod.def, {\n get shape() {\n const _shape = { ...a._zod.def.shape, ...b._zod.def.shape };\n assignProp(this, \"shape\", _shape); // self-caching\n return _shape;\n },\n get catchall() {\n return b._zod.def.catchall;\n },\n checks: [], // delete existing checks\n });\n return clone(a, def);\n}\nexport function partial(Class, schema, mask) {\n const currDef = schema._zod.def;\n const checks = currDef.checks;\n const hasChecks = checks && checks.length > 0;\n if (hasChecks) {\n throw new Error(\".partial() cannot be used on object schemas containing refinements\");\n }\n const def = mergeDefs(schema._zod.def, {\n get shape() {\n const oldShape = schema._zod.def.shape;\n const shape = { ...oldShape };\n if (mask) {\n for (const key in mask) {\n if (!(key in oldShape)) {\n throw new Error(`Unrecognized key: \"${key}\"`);\n }\n if (!mask[key])\n continue;\n // if (oldShape[key]!._zod.optin === \"optional\") continue;\n shape[key] = Class\n ? new Class({\n type: \"optional\",\n innerType: oldShape[key],\n })\n : oldShape[key];\n }\n }\n else {\n for (const key in oldShape) {\n // if (oldShape[key]!._zod.optin === \"optional\") continue;\n shape[key] = Class\n ? new Class({\n type: \"optional\",\n innerType: oldShape[key],\n })\n : oldShape[key];\n }\n }\n assignProp(this, \"shape\", shape); // self-caching\n return shape;\n },\n checks: [],\n });\n return clone(schema, def);\n}\nexport function required(Class, schema, mask) {\n const def = mergeDefs(schema._zod.def, {\n get shape() {\n const oldShape = schema._zod.def.shape;\n const shape = { ...oldShape };\n if (mask) {\n for (const key in mask) {\n if (!(key in shape)) {\n throw new Error(`Unrecognized key: \"${key}\"`);\n }\n if (!mask[key])\n continue;\n // overwrite with non-optional\n shape[key] = new Class({\n type: \"nonoptional\",\n innerType: oldShape[key],\n });\n }\n }\n else {\n for (const key in oldShape) {\n // overwrite with non-optional\n shape[key] = new Class({\n type: \"nonoptional\",\n innerType: oldShape[key],\n });\n }\n }\n assignProp(this, \"shape\", shape); // self-caching\n return shape;\n },\n });\n return clone(schema, def);\n}\n// invalid_type | too_big | too_small | invalid_format | not_multiple_of | unrecognized_keys | invalid_union | invalid_key | invalid_element | invalid_value | custom\nexport function aborted(x, startIndex = 0) {\n if (x.aborted === true)\n return true;\n for (let i = startIndex; i < x.issues.length; i++) {\n if (x.issues[i]?.continue !== true) {\n return true;\n }\n }\n return false;\n}\nexport function prefixIssues(path, issues) {\n return issues.map((iss) => {\n var _a;\n (_a = iss).path ?? (_a.path = []);\n iss.path.unshift(path);\n return iss;\n });\n}\nexport function unwrapMessage(message) {\n return typeof message === \"string\" ? message : message?.message;\n}\nexport function finalizeIssue(iss, ctx, config) {\n const full = { ...iss, path: iss.path ?? [] };\n // for backwards compatibility\n if (!iss.message) {\n const message = unwrapMessage(iss.inst?._zod.def?.error?.(iss)) ??\n unwrapMessage(ctx?.error?.(iss)) ??\n unwrapMessage(config.customError?.(iss)) ??\n unwrapMessage(config.localeError?.(iss)) ??\n \"Invalid input\";\n full.message = message;\n }\n // delete (full as any).def;\n delete full.inst;\n delete full.continue;\n if (!ctx?.reportInput) {\n delete full.input;\n }\n return full;\n}\nexport function getSizableOrigin(input) {\n if (input instanceof Set)\n return \"set\";\n if (input instanceof Map)\n return \"map\";\n // @ts-ignore\n if (input instanceof File)\n return \"file\";\n return \"unknown\";\n}\nexport function getLengthableOrigin(input) {\n if (Array.isArray(input))\n return \"array\";\n if (typeof input === \"string\")\n return \"string\";\n return \"unknown\";\n}\nexport function parsedType(data) {\n const t = typeof data;\n switch (t) {\n case \"number\": {\n return Number.isNaN(data) ? \"nan\" : \"number\";\n }\n case \"object\": {\n if (data === null) {\n return \"null\";\n }\n if (Array.isArray(data)) {\n return \"array\";\n }\n const obj = data;\n if (obj && Object.getPrototypeOf(obj) !== Object.prototype && \"constructor\" in obj && obj.constructor) {\n return obj.constructor.name;\n }\n }\n }\n return t;\n}\nexport function issue(...args) {\n const [iss, input, inst] = args;\n if (typeof iss === \"string\") {\n return {\n message: iss,\n code: \"custom\",\n input,\n inst,\n };\n }\n return { ...iss };\n}\nexport function cleanEnum(obj) {\n return Object.entries(obj)\n .filter(([k, _]) => {\n // return true if NaN, meaning it's not a number, thus a string key\n return Number.isNaN(Number.parseInt(k, 10));\n })\n .map((el) => el[1]);\n}\n// Codec utility functions\nexport function base64ToUint8Array(base64) {\n const binaryString = atob(base64);\n const bytes = new Uint8Array(binaryString.length);\n for (let i = 0; i < binaryString.length; i++) {\n bytes[i] = binaryString.charCodeAt(i);\n }\n return bytes;\n}\nexport function uint8ArrayToBase64(bytes) {\n let binaryString = \"\";\n for (let i = 0; i < bytes.length; i++) {\n binaryString += String.fromCharCode(bytes[i]);\n }\n return btoa(binaryString);\n}\nexport function base64urlToUint8Array(base64url) {\n const base64 = base64url.replace(/-/g, \"+\").replace(/_/g, \"/\");\n const padding = \"=\".repeat((4 - (base64.length % 4)) % 4);\n return base64ToUint8Array(base64 + padding);\n}\nexport function uint8ArrayToBase64url(bytes) {\n return uint8ArrayToBase64(bytes).replace(/\\+/g, \"-\").replace(/\\//g, \"_\").replace(/=/g, \"\");\n}\nexport function hexToUint8Array(hex) {\n const cleanHex = hex.replace(/^0x/, \"\");\n if (cleanHex.length % 2 !== 0) {\n throw new Error(\"Invalid hex string length\");\n }\n const bytes = new Uint8Array(cleanHex.length / 2);\n for (let i = 0; i < cleanHex.length; i += 2) {\n bytes[i / 2] = Number.parseInt(cleanHex.slice(i, i + 2), 16);\n }\n return bytes;\n}\nexport function uint8ArrayToHex(bytes) {\n return Array.from(bytes)\n .map((b) => b.toString(16).padStart(2, \"0\"))\n .join(\"\");\n}\n// instanceof\nexport class Class {\n constructor(..._args) { }\n}\n",
136
136
  "import { $constructor } from \"./core.js\";\nimport * as util from \"./util.js\";\nconst initializer = (inst, def) => {\n inst.name = \"$ZodError\";\n Object.defineProperty(inst, \"_zod\", {\n value: inst._zod,\n enumerable: false,\n });\n Object.defineProperty(inst, \"issues\", {\n value: def,\n enumerable: false,\n });\n inst.message = JSON.stringify(def, util.jsonStringifyReplacer, 2);\n Object.defineProperty(inst, \"toString\", {\n value: () => inst.message,\n enumerable: false,\n });\n};\nexport const $ZodError = $constructor(\"$ZodError\", initializer);\nexport const $ZodRealError = $constructor(\"$ZodError\", initializer, { Parent: Error });\nexport function flattenError(error, mapper = (issue) => issue.message) {\n const fieldErrors = {};\n const formErrors = [];\n for (const sub of error.issues) {\n if (sub.path.length > 0) {\n fieldErrors[sub.path[0]] = fieldErrors[sub.path[0]] || [];\n fieldErrors[sub.path[0]].push(mapper(sub));\n }\n else {\n formErrors.push(mapper(sub));\n }\n }\n return { formErrors, fieldErrors };\n}\nexport function formatError(error, mapper = (issue) => issue.message) {\n const fieldErrors = { _errors: [] };\n const processError = (error) => {\n for (const issue of error.issues) {\n if (issue.code === \"invalid_union\" && issue.errors.length) {\n issue.errors.map((issues) => processError({ issues }));\n }\n else if (issue.code === \"invalid_key\") {\n processError({ issues: issue.issues });\n }\n else if (issue.code === \"invalid_element\") {\n processError({ issues: issue.issues });\n }\n else if (issue.path.length === 0) {\n fieldErrors._errors.push(mapper(issue));\n }\n else {\n let curr = fieldErrors;\n let i = 0;\n while (i < issue.path.length) {\n const el = issue.path[i];\n const terminal = i === issue.path.length - 1;\n if (!terminal) {\n curr[el] = curr[el] || { _errors: [] };\n }\n else {\n curr[el] = curr[el] || { _errors: [] };\n curr[el]._errors.push(mapper(issue));\n }\n curr = curr[el];\n i++;\n }\n }\n }\n };\n processError(error);\n return fieldErrors;\n}\nexport function treeifyError(error, mapper = (issue) => issue.message) {\n const result = { errors: [] };\n const processError = (error, path = []) => {\n var _a, _b;\n for (const issue of error.issues) {\n if (issue.code === \"invalid_union\" && issue.errors.length) {\n // regular union error\n issue.errors.map((issues) => processError({ issues }, issue.path));\n }\n else if (issue.code === \"invalid_key\") {\n processError({ issues: issue.issues }, issue.path);\n }\n else if (issue.code === \"invalid_element\") {\n processError({ issues: issue.issues }, issue.path);\n }\n else {\n const fullpath = [...path, ...issue.path];\n if (fullpath.length === 0) {\n result.errors.push(mapper(issue));\n continue;\n }\n let curr = result;\n let i = 0;\n while (i < fullpath.length) {\n const el = fullpath[i];\n const terminal = i === fullpath.length - 1;\n if (typeof el === \"string\") {\n curr.properties ?? (curr.properties = {});\n (_a = curr.properties)[el] ?? (_a[el] = { errors: [] });\n curr = curr.properties[el];\n }\n else {\n curr.items ?? (curr.items = []);\n (_b = curr.items)[el] ?? (_b[el] = { errors: [] });\n curr = curr.items[el];\n }\n if (terminal) {\n curr.errors.push(mapper(issue));\n }\n i++;\n }\n }\n }\n };\n processError(error);\n return result;\n}\n/** Format a ZodError as a human-readable string in the following form.\n *\n * From\n *\n * ```ts\n * ZodError {\n * issues: [\n * {\n * expected: 'string',\n * code: 'invalid_type',\n * path: [ 'username' ],\n * message: 'Invalid input: expected string'\n * },\n * {\n * expected: 'number',\n * code: 'invalid_type',\n * path: [ 'favoriteNumbers', 1 ],\n * message: 'Invalid input: expected number'\n * }\n * ];\n * }\n * ```\n *\n * to\n *\n * ```\n * username\n * ✖ Expected number, received string at \"username\n * favoriteNumbers[0]\n * ✖ Invalid input: expected number\n * ```\n */\nexport function toDotPath(_path) {\n const segs = [];\n const path = _path.map((seg) => (typeof seg === \"object\" ? seg.key : seg));\n for (const seg of path) {\n if (typeof seg === \"number\")\n segs.push(`[${seg}]`);\n else if (typeof seg === \"symbol\")\n segs.push(`[${JSON.stringify(String(seg))}]`);\n else if (/[^\\w$]/.test(seg))\n segs.push(`[${JSON.stringify(seg)}]`);\n else {\n if (segs.length)\n segs.push(\".\");\n segs.push(seg);\n }\n }\n return segs.join(\"\");\n}\nexport function prettifyError(error) {\n const lines = [];\n // sort by path length\n const issues = [...error.issues].sort((a, b) => (a.path ?? []).length - (b.path ?? []).length);\n // Process each issue\n for (const issue of issues) {\n lines.push(`✖ ${issue.message}`);\n if (issue.path?.length)\n lines.push(` → at ${toDotPath(issue.path)}`);\n }\n // Convert Map to formatted string\n return lines.join(\"\\n\");\n}\n",
@@ -224,12 +224,43 @@
224
224
  "import { openTelemetryPlugin } from \"@loglayer/plugin-opentelemetry\";\nimport { OpenTelemetryTransport } from \"@loglayer/transport-opentelemetry\";\nimport { TsLogTransport } from \"@loglayer/transport-tslog\";\nimport { LogLayer } from \"loglayer\";\nimport { serializeError } from \"serialize-error\";\nimport { Logger } from \"tslog\";\n\nconst tslogLogger = new Logger({\n\ttype: process.env.NODE_ENV === \"production\" ? \"json\" : \"pretty\",\n\tstylePrettyLogs: process.env.NODE_ENV !== \"production\",\n\tminLevel: process.env.LOG_LEVEL === \"debug\" ? 0 : 3,\n});\n\nconst baseLogger = new LogLayer({\n\ttransport: [new TsLogTransport({ id: \"tslog\", logger: tslogLogger })],\n\tplugins: [openTelemetryPlugin()],\n\terrorSerializer: serializeError,\n});\n\nconst OTEL_TRANSPORT_ID = \"otel\";\n\nexport function attachOtelLogTransport(): void {\n\tbaseLogger.addTransport(\n\t\tnew OpenTelemetryTransport({\n\t\t\tid: OTEL_TRANSPORT_ID,\n\t\t\tenabled: process.env.NODE_ENV !== \"test\",\n\t\t}),\n\t);\n}\n\nexport function detachOtelLogTransport(): void {\n\tbaseLogger.removeTransport(OTEL_TRANSPORT_ID);\n}\n\nif (process.env.LOG_LEVEL !== \"debug\") {\n\tbaseLogger.setLevel(\"info\");\n}\n\n// Preserve broad call-site compatibility during migration from tslog to LogLayer.\nconst log = baseLogger as unknown as {\n\ttrace: (...args: unknown[]) => void;\n\tdebug: (...args: unknown[]) => void;\n\tinfo: (...args: unknown[]) => void;\n\twarn: (...args: unknown[]) => void;\n\terror: (...args: unknown[]) => void;\n\tfatal: (...args: unknown[]) => void;\n\twithMetadata: LogLayer[\"withMetadata\"];\n};\n\nexport { log };\n",
225
225
  "import { createHash } from \"node:crypto\";\nimport canonicalize from \"canonicalize\";\n\nexport type JsonPrimitive = string | number | boolean | null;\nexport type JsonValue =\n\t| JsonPrimitive\n\t| JsonValue[]\n\t| { [key: string]: JsonValue };\n\nexport function jcsCanonicalize(value: unknown): string {\n\tconst rendered = canonicalize(value);\n\tif (rendered === undefined) {\n\t\tthrow new TypeError(\"Value is not representable as RFC 8785 JSON\");\n\t}\n\treturn rendered;\n}\n\nexport function jcsSha256(value: unknown): string {\n\treturn createHash(\"sha256\")\n\t\t.update(jcsCanonicalize(value), \"utf8\")\n\t\t.digest(\"hex\");\n}\n\nexport function withoutOwnDigest<T extends Record<string, unknown>>(\n\tdocument: T,\n\tdigestField: keyof T | string,\n): Omit<T, keyof T> & Record<string, unknown> {\n\treturn Object.fromEntries(\n\t\tObject.entries(document).filter(([key]) => key !== digestField),\n\t) as Omit<T, keyof T> & Record<string, unknown>;\n}\n\n/** Hashes a wire document while excluding only its own top-level digest field. */\nexport function documentSha256<T extends Record<string, unknown>>(\n\tdocument: T,\n\tdigestField: keyof T | string,\n): string {\n\treturn jcsSha256(withoutOwnDigest(document, digestField));\n}\n\nexport function assertDocumentSha256<T extends Record<string, unknown>>(\n\tdocument: T,\n\tdigestField: keyof T | string,\n): void {\n\tconst supplied = document[String(digestField)];\n\tif (\n\t\ttypeof supplied !== \"string\" ||\n\t\tsupplied !== documentSha256(document, digestField)\n\t) {\n\t\tthrow new Error(\n\t\t\t`${String(digestField)} does not match RFC 8785 document content`,\n\t\t);\n\t}\n}\n",
226
226
  "function hasLoneSurrogate (value) {\n for (let i = 0; i < value.length; i++) {\n const code = value.charCodeAt(i);\n\n if (code >= 0xD800 && code <= 0xDBFF) {\n if (i === value.length - 1) {\n return true;\n }\n const next = value.charCodeAt(i + 1);\n if (!(next >= 0xDC00 && next <= 0xDFFF)) {\n return true;\n }\n i++;\n } else if (code >= 0xDC00 && code <= 0xDFFF) {\n return true;\n }\n }\n\n return false;\n}\n\nexport default function canonicalize (object, seen = new Set()) {\n if (typeof object === 'number' && isNaN(object)) {\n throw new Error('NaN is not allowed');\n }\n\n if (typeof object === 'number' && !isFinite(object)) {\n throw new Error('Infinity is not allowed');\n }\n\n if (typeof object === 'string' && hasLoneSurrogate(object)) {\n throw new Error('Lone surrogate is not allowed');\n }\n\n if (object === null || typeof object !== 'object') {\n return JSON.stringify(object);\n }\n\n if (typeof object.toJSON === 'function') {\n if (seen.has(object)) {\n throw new Error('Circular reference detected');\n }\n seen.add(object);\n const result = canonicalize(object.toJSON(), seen);\n seen.delete(object);\n return result;\n }\n\n if (seen.has(object)) {\n throw new Error('Circular reference detected');\n }\n seen.add(object);\n\n let result;\n if (Array.isArray(object)) {\n const values = object.map((cv) => {\n const value = cv === undefined || typeof cv === 'symbol' ? null : cv;\n return canonicalize(value, seen);\n });\n result = `[${values.join(',')}]`;\n } else {\n const parts = [];\n for (const key of Object.keys(object).sort()) {\n if (object[key] === undefined || typeof object[key] === 'symbol') {\n continue;\n }\n parts.push(`${canonicalize(key)}:${canonicalize(object[key], seen)}`);\n }\n result = `{${parts.join(',')}}`;\n }\n\n seen.delete(object);\n return result;\n}\n",
227
- "import { documentSha256, jcsSha256 } from \"./identity\";\nimport archiveSelectionSchema from \"./schemas/archive-selection.schema.json\" with {\n\ttype: \"json\",\n};\nimport promotionReceiptSchema from \"./schemas/promotion-receipt.schema.json\" with {\n\ttype: \"json\",\n};\nimport requestSchema from \"./schemas/request.schema.json\" with { type: \"json\" };\nimport requiredClockSchema from \"./schemas/required-clock.schema.json\" with {\n\ttype: \"json\",\n};\nimport resultSchema from \"./schemas/result.schema.json\" with { type: \"json\" };\n\nexport const LEGACY_CAPABILITY_POLICY_ID =\n\t\"market-data-vendor-backfill-capabilities/v1\" as const;\nexport const CAPABILITY_POLICY_ID =\n\t\"market-data-vendor-backfill-capabilities/v2\" as const;\nexport const RESOURCE_POLICY_ID =\n\t\"market-data-vendor-backfill-resources/v1\" as const;\nexport const ADAPTER_POLICY_ID = \"cryptohftdata-orderbook-adapter/v1\" as const;\nexport const ACQUISITION_POLICY_ID =\n\t\"cryptohftdata-hourly-acquisition/v1\" as const;\n\nconst legacyCapabilityPolicyContent = {\n\tpolicy_id: LEGACY_CAPABILITY_POLICY_ID,\n\tprovider: \"cryptohftdata\",\n\tadapter_policy: {\n\t\tpolicy_id: ADAPTER_POLICY_ID,\n\t\tadapter_version: \"cryptohftdata-orderbook/v2\",\n\t},\n\tacquisition_policy: {\n\t\tpolicy_id: ACQUISITION_POLICY_ID,\n\t\tobject_granularity: \"utc_hour\",\n\t\tauthentication: \"bearer\",\n\t\tinitialization_lookback_ms: 0,\n\t},\n\tprofiles: [\n\t\t{\n\t\t\texchange: \"okx\",\n\t\t\tmarket_type: \"spot\",\n\t\t\tfeed: \"ORDERBOOK\",\n\t\t\tcanonical_trading_pair: \"ARB-USDT\",\n\t\t\tprovider_exchange_id: \"okx_spot\",\n\t\t\tresolved_symbol: \"ARB-USDT\",\n\t\t\tconstruction_modes: [\"sampled_top_n_snapshot\"],\n\t\t\tsource_policies: [\"authoritative_window\"],\n\t\t\tmax_depth: 400,\n\t\t},\n\t],\n} as const;\n\nexport const LEGACY_CAPABILITY_POLICY = Object.freeze({\n\t...legacyCapabilityPolicyContent,\n\tpolicy_sha256: jcsSha256(legacyCapabilityPolicyContent),\n});\n\nconst capabilityPolicyContent = {\n\t...legacyCapabilityPolicyContent,\n\tpolicy_id: CAPABILITY_POLICY_ID,\n\tprofiles: legacyCapabilityPolicyContent.profiles.map((profile) => ({\n\t\t...profile,\n\t\tsource_policies: [\"authoritative_window\", \"fill_gaps\"] as const,\n\t})),\n} as const;\n\nexport const CAPABILITY_POLICY = Object.freeze({\n\t...capabilityPolicyContent,\n\tpolicy_sha256: jcsSha256(capabilityPolicyContent),\n});\n\nconst resourcePolicyContent = {\n\tpolicy_id: RESOURCE_POLICY_ID,\n\tlimits: {\n\t\tmax_files: 10_000,\n\t\tmax_bytes: 100 * 1024 * 1024 * 1024,\n\t\tmax_rows: 1_000_000_000,\n\t\tmax_duration_ms: 24 * 60 * 60 * 1_000,\n\t\tmax_boundary_lookback_ms: 7 * 24 * 60 * 60 * 1_000,\n\t},\n\trequest_bounds: {\n\t\tmax_depth: 500,\n\t\tmax_window_ms: 7 * 24 * 60 * 60 * 1_000,\n\t\tmax_required_events: 100_000,\n\t},\n} as const;\n\nexport const RESOURCE_POLICY = Object.freeze({\n\t...resourcePolicyContent,\n\tpolicy_sha256: jcsSha256(resourcePolicyContent),\n});\n\nexport const EFFECTIVE_ADAPTER_POLICY_PIN = Object.freeze({\n\tpolicy_id: ADAPTER_POLICY_ID,\n\tpolicy_sha256: jcsSha256(legacyCapabilityPolicyContent.adapter_policy),\n});\n\nexport const EFFECTIVE_ACQUISITION_POLICY_PIN = Object.freeze({\n\tpolicy_id: ACQUISITION_POLICY_ID,\n\tpolicy_sha256: jcsSha256(legacyCapabilityPolicyContent.acquisition_policy),\n});\n\nconst schemaArtifacts = [\n\t[\"schemas/request.schema.json\", requestSchema],\n\t[\"schemas/result.schema.json\", resultSchema],\n\t[\"schemas/required-clock.schema.json\", requiredClockSchema],\n\t[\"schemas/archive-selection.schema.json\", archiveSelectionSchema],\n\t[\"schemas/promotion-receipt.schema.json\", promotionReceiptSchema],\n] as const;\n\nexport const SCHEMA_ARTIFACTS = Object.freeze(\n\tschemaArtifacts.map(([path, schema]) =>\n\t\tObject.freeze({\n\t\t\tschema_id: schema.$id,\n\t\t\tpath,\n\t\t\tschema_sha256: jcsSha256(schema),\n\t\t\tschema,\n\t\t}),\n\t),\n);\n\nconst schemaManifestContent = {\n\tschema_id:\n\t\t\"https://schemas.usher.so/market-data-vendor-backfill-schema-manifest/v1\",\n\tartifacts: SCHEMA_ARTIFACTS.map(({ schema_id, path, schema_sha256 }) => ({\n\t\tschema_id,\n\t\tpath,\n\t\tschema_sha256,\n\t})),\n};\n\nexport const SCHEMA_MANIFEST = Object.freeze({\n\t...schemaManifestContent,\n\tmanifest_sha256: jcsSha256(schemaManifestContent),\n});\n\nexport type PolicyPin = {\n\tpolicy_id: string;\n\tpolicy_sha256: string;\n};\n\nexport function assertPolicyDocumentIdentity(\n\tpolicy: Record<string, unknown> & { policy_sha256: string },\n): void {\n\tif (documentSha256(policy, \"policy_sha256\") !== policy.policy_sha256) {\n\t\tthrow new Error(\"policy_sha256 does not match RFC 8785 policy content\");\n\t}\n}\n",
228
- "import {\n\ttype CanonicalOrderBookExportQuerySegment,\n\ttype CanonicalOrderBookExportRequestWire,\n\tcanonicalOrderBookExportRequestCodec,\n} from \"../market-data-preparation/contracts\";\nimport {\n\ttype ArchiveSelectionWire,\n\tarchiveSelectionCodec,\n\ttype Sha256Hex,\n} from \"../market-data-vendor-backfill/contracts\";\nimport { jcsSha256 } from \"../market-data-vendor-backfill/identity\";\n\nexport type ExactOrderBookQueryValue = string | number | readonly string[];\n\nexport type CompiledExactOrderBookExport = {\n\trequest: CanonicalOrderBookExportRequestWire;\n\tsegments: CanonicalOrderBookExportQuerySegment[];\n\tquerySha256: Sha256Hex;\n\tparameters: Readonly<Record<string, ExactOrderBookQueryValue>>;\n\tpredicateSql: string;\n\tphysicalPredicateSql: string;\n\tlevelsSql: string;\n\tsummarySql: string;\n\tconflictsSql: string;\n\trowCountsSql: string;\n\tpromotionReceiptsSql: string;\n};\n\nexport class ExactOrderBookExportError extends Error {\n\tconstructor(readonly reason: string) {\n\t\tsuper(reason);\n\t\tthis.name = \"ExactOrderBookExportError\";\n\t}\n}\n\ntype Interval = { startAtMs: number; endAtMs: number };\ntype Candidate = CanonicalOrderBookExportQuerySegment & Interval;\n\nfunction intervalMs(\n\tinterval: { start_at: string; end_at: string },\n\tfield: string,\n): Interval {\n\tconst startAtMs = Date.parse(interval.start_at);\n\tconst endAtMs = Date.parse(interval.end_at);\n\tif (\n\t\t!Number.isSafeInteger(startAtMs) ||\n\t\t!Number.isSafeInteger(endAtMs) ||\n\t\tstartAtMs < 0 ||\n\t\tendAtMs <= startAtMs\n\t) {\n\t\tthrow new ExactOrderBookExportError(`${field}_invalid`);\n\t}\n\treturn { startAtMs, endAtMs };\n}\n\nfunction contains(outer: Interval, inner: Interval): boolean {\n\treturn outer.startAtMs <= inner.startAtMs && outer.endAtMs >= inner.endAtMs;\n}\n\nfunction expectedPrecedence(\n\tselection: ArchiveSelectionWire,\n): ArchiveSelectionWire[\"precedence\"] {\n\treturn selection.source_policy === \"fill_gaps\"\n\t\t? [\"archive\", \"vendor\"]\n\t\t: [\"vendor\"];\n}\n\nfunction originPriority(\n\tselection: ArchiveSelectionWire,\n\torigin: CanonicalOrderBookExportQuerySegment[\"capture_origin\"],\n): number {\n\tif (selection.source_policy === \"fill_gaps\") {\n\t\treturn origin === \"production_capture\" ? 0 : 1;\n\t}\n\treturn origin === \"vendor_historical_backfill\" ? 0 : Number.MAX_SAFE_INTEGER;\n}\n\nfunction assertSelectionLinks(selection: ArchiveSelectionWire): Candidate[] {\n\tif (\n\t\tJSON.stringify(selection.precedence) !==\n\t\tJSON.stringify(expectedPrecedence(selection))\n\t) {\n\t\tthrow new ExactOrderBookExportError(\"selection_precedence_invalid\");\n\t}\n\tconst bundleById = new Map(\n\t\tselection.bundles.map((bundle) => [bundle.capture_bundle_id, bundle]),\n\t);\n\tif (bundleById.size !== selection.bundles.length) {\n\t\tthrow new ExactOrderBookExportError(\"selection_bundle_identity_duplicate\");\n\t}\n\tconst requested = selection.requested_intervals.map((interval, index) =>\n\t\tintervalMs(interval, `requested_interval_${index}`),\n\t);\n\tif (\n\t\tselection.source_policy === \"authoritative_window\" &&\n\t\tnew Set(\n\t\t\tselection.selected_intervals.map((selected) => selected.capture_origin),\n\t\t).size > 1\n\t) {\n\t\tthrow new ExactOrderBookExportError(\n\t\t\t\"authoritative_selection_mixes_capture_origins\",\n\t\t);\n\t}\n\n\treturn selection.selected_intervals.map((selected, index) => {\n\t\tconst selectedMs = intervalMs(selected, `selected_interval_${index}`);\n\t\tconst bundle = bundleById.get(selected.capture_bundle_id);\n\t\tif (!bundle || bundle.capture_origin !== selected.capture_origin) {\n\t\t\tthrow new ExactOrderBookExportError(\"selected_bundle_link_invalid\");\n\t\t}\n\t\tif (\n\t\t\t!contains(\n\t\t\t\tintervalMs(bundle.interval, `bundle_interval_${index}`),\n\t\t\t\tselectedMs,\n\t\t\t)\n\t\t) {\n\t\t\tthrow new ExactOrderBookExportError(\"selected_interval_outside_bundle\");\n\t\t}\n\t\tif (!requested.some((interval) => contains(interval, selectedMs))) {\n\t\t\tthrow new ExactOrderBookExportError(\"selected_interval_outside_request\");\n\t\t}\n\t\tif (selected.capture_origin === \"vendor_historical_backfill\") {\n\t\t\tconst qualification = bundle.qualification;\n\t\t\tif (\n\t\t\t\tqualification?.state !== \"qualified\" ||\n\t\t\t\t!selection.receipt_ids.includes(qualification.receipt_id) ||\n\t\t\t\t!selection.qualification_event_ids.includes(\n\t\t\t\t\tqualification.qualification_event_id,\n\t\t\t\t)\n\t\t\t) {\n\t\t\t\tthrow new ExactOrderBookExportError(\n\t\t\t\t\t\"vendor_selection_qualification_link_invalid\",\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t\treturn { ...selected, ...selectedMs };\n\t});\n}\n\nfunction effectiveSegments(\n\tselection: ArchiveSelectionWire,\n): CanonicalOrderBookExportQuerySegment[] {\n\tconst candidates = assertSelectionLinks(selection);\n\tconst segments: Candidate[] = [];\n\tfor (const [\n\t\trequestIndex,\n\t\trequestedWire,\n\t] of selection.requested_intervals.entries()) {\n\t\tconst requested = intervalMs(\n\t\t\trequestedWire,\n\t\t\t`requested_interval_${requestIndex}`,\n\t\t);\n\t\tconst relevant = candidates.filter(\n\t\t\t(candidate) =>\n\t\t\t\tcandidate.startAtMs < requested.endAtMs &&\n\t\t\t\tcandidate.endAtMs > requested.startAtMs,\n\t\t);\n\t\tconst boundaries = [\n\t\t\t...new Set([\n\t\t\t\trequested.startAtMs,\n\t\t\t\trequested.endAtMs,\n\t\t\t\t...relevant.flatMap((candidate) => [\n\t\t\t\t\tMath.max(candidate.startAtMs, requested.startAtMs),\n\t\t\t\t\tMath.min(candidate.endAtMs, requested.endAtMs),\n\t\t\t\t]),\n\t\t\t]),\n\t\t].sort((left, right) => left - right);\n\t\tfor (let index = 0; index < boundaries.length - 1; index += 1) {\n\t\t\tconst startAtMs = boundaries[index];\n\t\t\tconst endAtMs = boundaries[index + 1];\n\t\t\tif (\n\t\t\t\tstartAtMs === undefined ||\n\t\t\t\tendAtMs === undefined ||\n\t\t\t\tendAtMs <= startAtMs\n\t\t\t) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tconst covering = relevant.filter(\n\t\t\t\t(candidate) =>\n\t\t\t\t\tcandidate.startAtMs <= startAtMs && candidate.endAtMs >= endAtMs,\n\t\t\t);\n\t\t\tif (covering.length === 0) {\n\t\t\t\tthrow new ExactOrderBookExportError(\"complete_selection_has_gap\");\n\t\t\t}\n\t\t\tconst priority = Math.min(\n\t\t\t\t...covering.map((candidate) =>\n\t\t\t\t\toriginPriority(selection, candidate.capture_origin),\n\t\t\t\t),\n\t\t\t);\n\t\t\tconst preferred = covering.filter(\n\t\t\t\t(candidate) =>\n\t\t\t\t\toriginPriority(selection, candidate.capture_origin) === priority,\n\t\t\t);\n\t\t\tconst identities = new Set(\n\t\t\t\tpreferred.map(\n\t\t\t\t\t(candidate) =>\n\t\t\t\t\t\t`${candidate.capture_bundle_id}:${candidate.capture_origin}`,\n\t\t\t\t),\n\t\t\t);\n\t\t\tif (identities.size !== 1 || !preferred[0]) {\n\t\t\t\tthrow new ExactOrderBookExportError(\"ambiguous_selection_overlap\");\n\t\t\t}\n\t\t\tsegments.push({ ...preferred[0], startAtMs, endAtMs });\n\t\t}\n\t}\n\n\tconst merged: Candidate[] = [];\n\tfor (const segment of segments.sort(\n\t\t(left, right) =>\n\t\t\tleft.startAtMs - right.startAtMs ||\n\t\t\tleft.endAtMs - right.endAtMs ||\n\t\t\tleft.capture_bundle_id.localeCompare(right.capture_bundle_id),\n\t)) {\n\t\tconst previous = merged.at(-1);\n\t\tif (\n\t\t\tprevious &&\n\t\t\tprevious.endAtMs === segment.startAtMs &&\n\t\t\tprevious.capture_bundle_id === segment.capture_bundle_id &&\n\t\t\tprevious.capture_origin === segment.capture_origin\n\t\t) {\n\t\t\tprevious.endAtMs = segment.endAtMs;\n\t\t\tprevious.end_at = new Date(segment.endAtMs).toISOString();\n\t\t} else {\n\t\t\tmerged.push({\n\t\t\t\t...segment,\n\t\t\t\tstart_at: new Date(segment.startAtMs).toISOString(),\n\t\t\t\tend_at: new Date(segment.endAtMs).toISOString(),\n\t\t\t});\n\t\t}\n\t}\n\treturn merged.map(\n\t\t({ startAtMs: _startAtMs, endAtMs: _endAtMs, ...segment }) => segment,\n\t);\n}\n\nfunction queryIdentity(\n\trequest: CanonicalOrderBookExportRequestWire,\n\tsegments: CanonicalOrderBookExportQuerySegment[],\n): Sha256Hex {\n\treturn jcsSha256({\n\t\tselection_sha256: request.selection.selection_sha256,\n\t\ttarget: request.target,\n\t\tscope: request.selection.scope,\n\t\tdepth: request.depth,\n\t\tconstruction_mode: request.construction_mode,\n\t\tcanonical_schema_version: request.canonical_schema_version,\n\t\tchecksum_algorithm: request.checksum_algorithm,\n\t\tsource_policy: request.selection.source_policy,\n\t\tprecedence: request.selection.precedence,\n\t\tsegments,\n\t});\n}\n\nfunction buildPredicate(\n\trequest: CanonicalOrderBookExportRequestWire,\n\tsegments: CanonicalOrderBookExportQuerySegment[],\n): {\n\tparameters: Record<string, ExactOrderBookQueryValue>;\n\tpredicateSql: string;\n\tsegmentPredicateSql: string[];\n} {\n\tconst parameters: Record<string, ExactOrderBookQueryValue> = {\n\t\texchange: request.selection.scope.exchange,\n\t\ttrading_pair: request.selection.scope.trading_pair,\n\t\tdepth_limit: request.depth,\n\t\tconstruction_mode: request.construction_mode,\n\t\tschema_version: request.canonical_schema_version,\n\t\tchecksum_algorithm: request.checksum_algorithm,\n\t};\n\tconst segmentPredicates = segments.map((segment, index) => {\n\t\tconst prefix = `segment_${index}`;\n\t\tconst sources =\n\t\t\tsegment.capture_origin === \"production_capture\"\n\t\t\t\t? [\"broker_read\", \"broker_write\"]\n\t\t\t\t: [\"external_backfill\"];\n\t\tparameters[`${prefix}_bundle`] = segment.capture_bundle_id;\n\t\tparameters[`${prefix}_start_ms`] = Date.parse(segment.start_at);\n\t\tparameters[`${prefix}_end_ms`] = Date.parse(segment.end_at);\n\t\tparameters[`${prefix}_origin`] =\n\t\t\tsegment.capture_origin === \"production_capture\"\n\t\t\t\t? \"production_capture\"\n\t\t\t\t: \"vendor_historical_backfill\";\n\t\tparameters[`${prefix}_sources`] = sources;\n\t\treturn `(capture_bundle_id = {${prefix}_bundle:String}\n\tAND capture_origin = {${prefix}_origin:String}\n\tAND source IN {${prefix}_sources:Array(String)}\n\tAND source_time_ms >= {${prefix}_start_ms:UInt64}\n\tAND source_time_ms < {${prefix}_end_ms:UInt64})`;\n\t});\n\tconst scopePredicateSql = `exchange = {exchange:String}\n\tAND trading_pair = {trading_pair:String}\n\tAND feed = 'ORDERBOOK'\n\tAND depth_limit = {depth_limit:UInt16}\n\tAND construction_mode = {construction_mode:String}\n\tAND schema_version = {schema_version:String}\n\tAND checksum_algorithm = {checksum_algorithm:String}`;\n\treturn {\n\t\tparameters,\n\t\tpredicateSql: `${scopePredicateSql}\n\tAND (${segmentPredicates.join(\"\\n\\tOR \")})`,\n\t\tsegmentPredicateSql: segmentPredicates.map(\n\t\t\t(segmentPredicate) => `${scopePredicateSql}\\n\\tAND ${segmentPredicate}`,\n\t\t),\n\t};\n}\n\nexport function compileExactOrderBookExport(\n\trequestInput: CanonicalOrderBookExportRequestWire,\n): CompiledExactOrderBookExport {\n\tconst request = canonicalOrderBookExportRequestCodec.decode(requestInput);\n\tarchiveSelectionCodec.decode(request.selection);\n\tconst segments = effectiveSegments(request.selection);\n\tif (segments.length === 0) {\n\t\tthrow new ExactOrderBookExportError(\"selection_has_no_effective_segments\");\n\t}\n\tconst { parameters, predicateSql, segmentPredicateSql } = buildPredicate(\n\t\trequest,\n\t\tsegments,\n\t);\n\tconst physicalPredicateSql = predicateSql;\n\tconst levelsSql = `SELECT *\n\tFROM market_data.cex_order_book_levels_replay_qualified\n\tWHERE ${predicateSql}\n\tORDER BY source_time_ms, snapshot_id, side, level_index`;\n\tconst summarySql = `SELECT *\n\tFROM market_data.cex_order_book_depth_summary_replay_qualified\n\tWHERE ${predicateSql}\n\tORDER BY source_time_ms, snapshot_id`;\n\tconst conflictsSql = `SELECT count() AS conflicts\n\tFROM\n\t(\n\t\tSELECT conflict.capture_bundle_id, conflict.snapshot_id\n\t\tFROM market_data.cex_order_book_levels_conflicts AS conflict\n\t\tINNER JOIN\n\t\t(\n\t\t\tSELECT DISTINCT capture_bundle_id, snapshot_id\n\t\t\tFROM market_data.cex_order_book_depth_summary\n\t\t\tWHERE ${physicalPredicateSql}\n\t\t) AS selected USING (capture_bundle_id, snapshot_id)\n\t\tUNION ALL\n\t\tSELECT conflict.capture_bundle_id, conflict.snapshot_id\n\t\tFROM market_data.cex_order_book_depth_summary_conflicts AS conflict\n\t\tINNER JOIN\n\t\t(\n\t\t\tSELECT DISTINCT capture_bundle_id, snapshot_id\n\t\t\tFROM market_data.cex_order_book_depth_summary\n\t\t\tWHERE ${physicalPredicateSql}\n\t\t) AS selected USING (capture_bundle_id, snapshot_id)\n\t)`;\n\tconst segmentRowCountsSql = segmentPredicateSql.flatMap(\n\t\t(segmentPredicate, index) => [\n\t\t\t`(SELECT count() FROM market_data.cex_order_book_levels_replay_qualified WHERE ${segmentPredicate}) AS segment_${index}_level_rows`,\n\t\t\t`(SELECT count() FROM market_data.cex_order_book_depth_summary_replay_qualified WHERE ${segmentPredicate}) AS segment_${index}_summary_rows`,\n\t\t],\n\t);\n\tconst rowCountsSql = `SELECT\n\t\t(SELECT count() FROM market_data.cex_order_book_levels_replay_qualified WHERE ${predicateSql}) AS level_rows,\n\t\t(SELECT count() FROM market_data.cex_order_book_depth_summary_replay_qualified WHERE ${predicateSql}) AS summary_rows,\n\t\t${segmentRowCountsSql.join(\",\\n\\t\\t\")}`;\n\tconst promotionReceiptsSql = `SELECT DISTINCT promotion.receipt_id AS receipt_id\n\tFROM market_data.cex_order_book_capture_promotions AS promotion\n\tINNER JOIN\n\t(\n\t\tSELECT DISTINCT capture_bundle_id\n\t\tFROM market_data.cex_order_book_depth_summary_replay_qualified\n\t\tWHERE ${predicateSql}\n\t) AS selected USING (capture_bundle_id)\n\tINNER JOIN\n\t(\n\t\tSELECT capture_bundle_id, receipt_id, promotion_identity_sha256, state\n\t\tFROM market_data.cex_order_book_capture_qualifications\n\t\tORDER BY event_at_ms DESC\n\t\tLIMIT 1 BY capture_bundle_id\n\t) AS latest\n\tON promotion.capture_bundle_id = latest.capture_bundle_id\n\tAND promotion.receipt_id = latest.receipt_id\n\tAND promotion.promotion_identity_sha256 = latest.promotion_identity_sha256\n\tWHERE latest.state = 'qualified'\n\tAND promotion.status = 'passing'\n\tAND promotion.seam_verified = 1\n\tAND promotion.coverage_verified = 1\n\tORDER BY promotion.receipt_id`;\n\treturn {\n\t\trequest,\n\t\tsegments,\n\t\tquerySha256: queryIdentity(request, segments),\n\t\tparameters,\n\t\tpredicateSql,\n\t\tphysicalPredicateSql,\n\t\tlevelsSql,\n\t\tsummarySql,\n\t\tconflictsSql,\n\t\trowCountsSql,\n\t\tpromotionReceiptsSql,\n\t};\n}\n",
229
- "import { createHash } from \"node:crypto\";\nimport path from \"node:path\";\nimport type {\n\tCanonicalOrderBookExportArtifact,\n\tCanonicalOrderBookExportRequestWire,\n} from \"../market-data-preparation/contracts\";\nimport { writeExclusiveDurableFile } from \"../market-data-preparation/file-job\";\nimport {\n\ttype CompiledExactOrderBookExport,\n\tcompileExactOrderBookExport,\n\tExactOrderBookExportError,\n\ttype ExactOrderBookQueryValue,\n} from \"./exact-selection\";\n\nexport type ExactOrderBookExportFormat = \"JSONEachRow\" | \"Parquet\";\n\nexport type ExactOrderBookExportQueryClient = {\n\texecute(\n\t\tsql: string,\n\t\tparameters: Readonly<Record<string, ExactOrderBookQueryValue>>,\n\t\tformat: ExactOrderBookExportFormat,\n\t): Promise<Uint8Array>;\n};\n\nexport type ExactCanonicalOrderBookExport = {\n\tcompiled: CompiledExactOrderBookExport;\n\tpromotionReceiptIds: string[];\n\tlevelsPath: string;\n\tsummaryPath: string;\n\tlevels: CanonicalOrderBookExportArtifact;\n\tsummary: CanonicalOrderBookExportArtifact;\n};\n\nexport type ClickHouseExactExportClientOptions = {\n\turl: string;\n\tusername?: string;\n\tpassword?: string;\n\tfetch?: typeof globalThis.fetch;\n};\n\nfunction encodeClickHouseParameter(value: ExactOrderBookQueryValue): string {\n\tif (!Array.isArray(value)) return String(value);\n\treturn `[${value\n\t\t.map((entry) => {\n\t\t\tconst serialized = JSON.stringify(entry);\n\t\t\treturn `'${serialized.slice(1, -1).replaceAll(\"'\", \"\\\\'\")}'`;\n\t\t})\n\t\t.join(\",\")}]`;\n}\n\nexport function createClickHouseExactOrderBookExportClient(\n\toptions: ClickHouseExactExportClientOptions,\n): ExactOrderBookExportQueryClient {\n\tconst request = options.fetch ?? globalThis.fetch;\n\treturn {\n\t\tasync execute(sql, parameters, format) {\n\t\t\tlet endpoint: URL;\n\t\t\ttry {\n\t\t\t\tendpoint = new URL(options.url);\n\t\t\t} catch {\n\t\t\t\tthrow new ExactOrderBookExportError(\"archive_url_invalid\");\n\t\t\t}\n\t\t\tconst embeddedUsername = decodeURIComponent(endpoint.username);\n\t\t\tconst embeddedPassword = decodeURIComponent(endpoint.password);\n\t\t\tendpoint.username = \"\";\n\t\t\tendpoint.password = \"\";\n\t\t\tendpoint.searchParams.set(\"database\", \"market_data\");\n\t\t\tfor (const [name, value] of Object.entries(parameters)) {\n\t\t\t\tendpoint.searchParams.set(\n\t\t\t\t\t`param_${name}`,\n\t\t\t\t\tencodeClickHouseParameter(value),\n\t\t\t\t);\n\t\t\t}\n\t\t\tlet response: Response;\n\t\t\ttry {\n\t\t\t\tresponse = await request(endpoint, {\n\t\t\t\t\tmethod: \"POST\",\n\t\t\t\t\theaders: {\n\t\t\t\t\t\t\"X-ClickHouse-User\":\n\t\t\t\t\t\t\toptions.username || embeddedUsername || \"default\",\n\t\t\t\t\t\t\"X-ClickHouse-Key\": options.password ?? embeddedPassword,\n\t\t\t\t\t},\n\t\t\t\t\tbody: `${sql.trim()}\\nFORMAT ${format}`,\n\t\t\t\t});\n\t\t\t} catch {\n\t\t\t\tthrow new ExactOrderBookExportError(\"archive_query_unreachable\");\n\t\t\t}\n\t\t\tif (!response.ok) {\n\t\t\t\tthrow new ExactOrderBookExportError(\n\t\t\t\t\t`archive_query_http_${response.status}`,\n\t\t\t\t);\n\t\t\t}\n\t\t\treturn new Uint8Array(await response.arrayBuffer());\n\t\t},\n\t};\n}\n\nfunction parseJsonEachRow(bytes: Uint8Array): Record<string, unknown>[] {\n\tconst text = new TextDecoder().decode(bytes).trim();\n\ttry {\n\t\treturn text\n\t\t\t? text\n\t\t\t\t\t.split(\"\\n\")\n\t\t\t\t\t.map((line) => JSON.parse(line) as Record<string, unknown>)\n\t\t\t: [];\n\t} catch {\n\t\tthrow new ExactOrderBookExportError(\"archive_response_invalid\");\n\t}\n}\n\nasync function jsonQuery(\n\tclient: ExactOrderBookExportQueryClient,\n\tcompiled: CompiledExactOrderBookExport,\n\tsql: string,\n): Promise<Record<string, unknown>[]> {\n\ttry {\n\t\treturn parseJsonEachRow(\n\t\t\tawait client.execute(sql, compiled.parameters, \"JSONEachRow\"),\n\t\t);\n\t} catch (error) {\n\t\tif (error instanceof ExactOrderBookExportError) throw error;\n\t\tthrow new ExactOrderBookExportError(\"archive_query_failed\");\n\t}\n}\n\nfunction unsignedCount(value: unknown, reason: string): number {\n\tconst count = typeof value === \"number\" ? value : Number(value);\n\tif (!Number.isSafeInteger(count) || count < 0) {\n\t\tthrow new ExactOrderBookExportError(reason);\n\t}\n\treturn count;\n}\n\nfunction assertParquet(bytes: Uint8Array, reason: string): void {\n\tconst decoder = new TextDecoder();\n\tif (\n\t\tbytes.length < 8 ||\n\t\tdecoder.decode(bytes.subarray(0, 4)) !== \"PAR1\" ||\n\t\tdecoder.decode(bytes.subarray(-4)) !== \"PAR1\"\n\t) {\n\t\tthrow new ExactOrderBookExportError(reason);\n\t}\n}\n\nfunction artifact(\n\tfileName: string,\n\trows: number,\n\tbytes: Uint8Array,\n): CanonicalOrderBookExportArtifact {\n\treturn {\n\t\tfile_name: fileName,\n\t\trows,\n\t\tbytes: bytes.byteLength,\n\t\tsha256: createHash(\"sha256\").update(bytes).digest(\"hex\"),\n\t};\n}\n\nexport async function exportExactCanonicalOrderBook(input: {\n\trequest: CanonicalOrderBookExportRequestWire;\n\tclient: ExactOrderBookExportQueryClient;\n\toutputDirectory: string;\n}): Promise<ExactCanonicalOrderBookExport> {\n\tconst compiled = compileExactOrderBookExport(input.request);\n\tconst identityRows = await jsonQuery(\n\t\tinput.client,\n\t\tcompiled,\n\t\t`SELECT environment, cluster\n\t\t FROM market_data.cex_archive_cluster_identity FINAL\n\t\t WHERE singleton_key = 'archive'\n\t\t LIMIT 2`,\n\t);\n\tif (\n\t\tidentityRows.length !== 1 ||\n\t\tidentityRows[0]?.environment !== compiled.request.target.environment ||\n\t\tidentityRows[0]?.cluster !== compiled.request.target.cluster\n\t) {\n\t\tthrow new ExactOrderBookExportError(\"archive_target_mismatch\");\n\t}\n\n\tconst conflictRows = await jsonQuery(\n\t\tinput.client,\n\t\tcompiled,\n\t\tcompiled.conflictsSql,\n\t);\n\tif (\n\t\tconflictRows.length !== 1 ||\n\t\tunsignedCount(conflictRows[0]?.conflicts, \"conflict_count_invalid\") !== 0\n\t) {\n\t\tthrow new ExactOrderBookExportError(\"selected_checksum_conflict\");\n\t}\n\n\tconst countRows = await jsonQuery(\n\t\tinput.client,\n\t\tcompiled,\n\t\tcompiled.rowCountsSql,\n\t);\n\tif (countRows.length !== 1) {\n\t\tthrow new ExactOrderBookExportError(\"qualified_row_counts_invalid\");\n\t}\n\tconst levelRows = unsignedCount(\n\t\tcountRows[0]?.level_rows,\n\t\t\"qualified_row_counts_invalid\",\n\t);\n\tconst summaryRows = unsignedCount(\n\t\tcountRows[0]?.summary_rows,\n\t\t\"qualified_row_counts_invalid\",\n\t);\n\tif (levelRows === 0 || summaryRows === 0) {\n\t\tthrow new ExactOrderBookExportError(\"qualified_selection_empty\");\n\t}\n\tfor (const [index] of compiled.segments.entries()) {\n\t\tconst segmentLevelRows = unsignedCount(\n\t\t\tcountRows[0]?.[`segment_${index}_level_rows`],\n\t\t\t\"qualified_row_counts_invalid\",\n\t\t);\n\t\tconst segmentSummaryRows = unsignedCount(\n\t\t\tcountRows[0]?.[`segment_${index}_summary_rows`],\n\t\t\t\"qualified_row_counts_invalid\",\n\t\t);\n\t\tif (segmentLevelRows === 0 || segmentSummaryRows === 0) {\n\t\t\tthrow new ExactOrderBookExportError(\"qualified_segment_empty\");\n\t\t}\n\t}\n\n\tconst receiptRows = await jsonQuery(\n\t\tinput.client,\n\t\tcompiled,\n\t\tcompiled.promotionReceiptsSql,\n\t);\n\tconst promotionReceiptIds = [\n\t\t...new Set(\n\t\t\treceiptRows.map((row) => {\n\t\t\t\tif (typeof row.receipt_id !== \"string\") {\n\t\t\t\t\tthrow new ExactOrderBookExportError(\"promotion_receipts_invalid\");\n\t\t\t\t}\n\t\t\t\treturn row.receipt_id;\n\t\t\t}),\n\t\t),\n\t].sort();\n\tconst expectedReceiptIds = [...compiled.request.selection.receipt_ids].sort();\n\tif (\n\t\tJSON.stringify(promotionReceiptIds) !== JSON.stringify(expectedReceiptIds)\n\t) {\n\t\tthrow new ExactOrderBookExportError(\"promotion_receipt_mismatch\");\n\t}\n\n\tlet levelsBytes: Uint8Array;\n\tlet summaryBytes: Uint8Array;\n\ttry {\n\t\t[levelsBytes, summaryBytes] = await Promise.all([\n\t\t\tinput.client.execute(compiled.levelsSql, compiled.parameters, \"Parquet\"),\n\t\t\tinput.client.execute(compiled.summarySql, compiled.parameters, \"Parquet\"),\n\t\t]);\n\t} catch (error) {\n\t\tif (error instanceof ExactOrderBookExportError) throw error;\n\t\tthrow new ExactOrderBookExportError(\"archive_query_failed\");\n\t}\n\tassertParquet(levelsBytes, \"levels_parquet_invalid\");\n\tassertParquet(summaryBytes, \"summary_parquet_invalid\");\n\n\tconst levelsFileName = \"order_book_levels.parquet\";\n\tconst summaryFileName = \"order_book_depth_summary.parquet\";\n\tconst levelsPath = path.join(input.outputDirectory, levelsFileName);\n\tconst summaryPath = path.join(input.outputDirectory, summaryFileName);\n\ttry {\n\t\tawait writeExclusiveDurableFile(levelsPath, levelsBytes);\n\t\tawait writeExclusiveDurableFile(summaryPath, summaryBytes);\n\t} catch {\n\t\tthrow new ExactOrderBookExportError(\"artifact_write_failed\");\n\t}\n\n\treturn {\n\t\tcompiled,\n\t\tpromotionReceiptIds,\n\t\tlevelsPath,\n\t\tsummaryPath,\n\t\tlevels: artifact(levelsFileName, levelRows, levelsBytes),\n\t\tsummary: artifact(summaryFileName, summaryRows, summaryBytes),\n\t};\n}\n",
230
- "import { createHash, randomUUID } from \"node:crypto\";\nimport { constants as fsConstants, type Stats } from \"node:fs\";\nimport { type FileHandle, lstat, open, rename, unlink } from \"node:fs/promises\";\nimport path from \"node:path\";\n\nexport const FILE_JOB_REQUEST_MAX_BYTES = 1_048_576;\nexport const FILE_JOB_CLOCK_MAX_BYTES = 16_777_216;\nexport const FILE_JOB_EXECUTABLE_MAX_BYTES = 536_870_912;\n\nexport type FileJobPaths = {\n\tattemptRoot: string;\n\trequestPath: string;\n\tresultPath: string;\n};\n\nexport type AtomicWriteHooks = {\n\tbeforeTempOpen?(tempPath: string): void | Promise<void>;\n\tbeforeFileFsync?(): void | Promise<void>;\n\tbeforeRename?(): void | Promise<void>;\n\tbeforeDirectoryFsync?(): void | Promise<void>;\n};\n\nexport type AtomicWriteJsonOptions<T> = {\n\tvalidate?: (value: T) => void;\n\thooks?: AtomicWriteHooks;\n};\n\nexport type DurableArtifactHooks = {\n\tbeforeOpen?(filePath: string): void | Promise<void>;\n\tbeforeFileFsync?(): void | Promise<void>;\n};\n\nexport class FileJobUnreadableError extends Error {\n\tconstructor(message: string) {\n\t\tsuper(message);\n\t\tthis.name = \"FileJobUnreadableError\";\n\t}\n}\n\nfunction errorCode(error: unknown): string | undefined {\n\treturn error && typeof error === \"object\" && \"code\" in error\n\t\t? String((error as { code?: unknown }).code)\n\t\t: undefined;\n}\n\nexport function containsParentTraversal(input: string): boolean {\n\treturn input.split(/[\\\\/]+/u).includes(\"..\");\n}\n\nexport function assertSupportedNode22(\n\tversion = process.versions.node,\n\tproductName = \"market-data preparation executable\",\n): void {\n\tconst major = Number.parseInt(version.split(\".\", 1)[0] ?? \"\", 10);\n\tif (!Number.isInteger(major) || major < 22) {\n\t\tthrow new Error(`${productName} requires Node 22 or newer; got ${version}`);\n\t}\n}\n\nexport function parseFileJobArgv(argv: readonly string[]): {\n\trequestPath: string;\n\tresultPath: string;\n} {\n\tif (\n\t\targv.length !== 5 ||\n\t\targv[0] !== \"run\" ||\n\t\targv[1] !== \"--request\" ||\n\t\targv[3] !== \"--result\" ||\n\t\t!argv[2] ||\n\t\t!argv[4]\n\t) {\n\t\tthrow new Error(\"expected exactly: run --request <path> --result <path>\");\n\t}\n\treturn { requestPath: argv[2], resultPath: argv[4] };\n}\n\nasync function assertAttemptRoot(attemptRoot: string): Promise<void> {\n\tconst stats = await lstat(attemptRoot);\n\tif (stats.isSymbolicLink() || !stats.isDirectory()) {\n\t\tthrow new Error(\"attempt root must be a non-symlink directory\");\n\t}\n}\n\nasync function assertSafeResultTarget(resultPath: string): Promise<void> {\n\tlet stats: Stats;\n\ttry {\n\t\tstats = await lstat(resultPath);\n\t} catch (error) {\n\t\tif (errorCode(error) === \"ENOENT\") return;\n\t\tthrow error;\n\t}\n\tif (stats.isSymbolicLink() || !stats.isFile()) {\n\t\tthrow new Error(\n\t\t\t\"result target must be absent or a non-symlink regular file\",\n\t\t);\n\t}\n\n\tconst handle = await open(\n\t\tresultPath,\n\t\tfsConstants.O_RDONLY | fsConstants.O_NOFOLLOW,\n\t);\n\ttry {\n\t\tif (!(await handle.stat()).isFile()) {\n\t\t\tthrow new Error(\"opened result target is not a regular file\");\n\t\t}\n\t} finally {\n\t\tawait handle.close();\n\t}\n}\n\nexport async function assertSafeFileJobPaths(\n\trequestInput: string,\n\tresultInput: string,\n): Promise<FileJobPaths> {\n\tif (\n\t\tcontainsParentTraversal(requestInput) ||\n\t\tcontainsParentTraversal(resultInput)\n\t) {\n\t\tthrow new FileJobUnreadableError(\"parent traversal is not allowed\");\n\t}\n\tconst requestPath = path.resolve(requestInput);\n\tconst resultPath = path.resolve(resultInput);\n\tconst attemptRoot = path.dirname(requestPath);\n\tif (path.dirname(resultPath) !== attemptRoot) {\n\t\tthrow new Error(\"result parent must be identical to the request parent\");\n\t}\n\tawait assertAttemptRoot(attemptRoot);\n\tawait assertSafeResultTarget(resultPath);\n\treturn { attemptRoot, requestPath, resultPath };\n}\n\nexport function assertSidecarBasename(fileName: string): void {\n\tif (\n\t\tpath.basename(fileName) !== fileName ||\n\t\tcontainsParentTraversal(fileName) ||\n\t\tfileName.includes(\"/\") ||\n\t\tfileName.includes(\"\\\\\")\n\t) {\n\t\tthrow new Error(\"sidecar file name must be a basename\");\n\t}\n}\n\nexport async function readBoundedRegularFile(\n\tfilePath: string,\n\tmaximumBytes: number,\n): Promise<Buffer> {\n\tif (!Number.isSafeInteger(maximumBytes) || maximumBytes < 0) {\n\t\tthrow new Error(\"maximumBytes must be a non-negative safe integer\");\n\t}\n\tlet pathStats: Stats;\n\ttry {\n\t\tpathStats = await lstat(filePath);\n\t} catch (error) {\n\t\tthrow new FileJobUnreadableError(\n\t\t\t`cannot lstat input: ${errorCode(error) ?? \"unknown\"}`,\n\t\t);\n\t}\n\tif (\n\t\tpathStats.isSymbolicLink() ||\n\t\t!pathStats.isFile() ||\n\t\tpathStats.size > maximumBytes\n\t) {\n\t\tthrow new FileJobUnreadableError(\n\t\t\t\"input must be a bounded non-symlink regular file\",\n\t\t);\n\t}\n\n\tlet handle: FileHandle;\n\ttry {\n\t\thandle = await open(\n\t\t\tfilePath,\n\t\t\tfsConstants.O_RDONLY | fsConstants.O_NOFOLLOW,\n\t\t);\n\t} catch (error) {\n\t\tthrow new FileJobUnreadableError(\n\t\t\t`cannot open input: ${errorCode(error) ?? \"unknown\"}`,\n\t\t);\n\t}\n\n\tlet result: Buffer | undefined;\n\tlet readError: FileJobUnreadableError | undefined;\n\ttry {\n\t\tconst openedStats = await handle.stat();\n\t\tif (!openedStats.isFile() || openedStats.size > maximumBytes) {\n\t\t\tthrow new FileJobUnreadableError(\n\t\t\t\t\"opened input must be a bounded regular file\",\n\t\t\t);\n\t\t}\n\t\tconst bytes = Buffer.alloc(openedStats.size);\n\t\tlet offset = 0;\n\t\twhile (offset < bytes.length) {\n\t\t\tconst { bytesRead } = await handle.read(\n\t\t\t\tbytes,\n\t\t\t\toffset,\n\t\t\t\tbytes.length - offset,\n\t\t\t\toffset,\n\t\t\t);\n\t\t\tif (bytesRead === 0) break;\n\t\t\toffset += bytesRead;\n\t\t}\n\t\tconst finalStats = await handle.stat();\n\t\tif (\n\t\t\toffset !== bytes.length ||\n\t\t\tfinalStats.size !== openedStats.size ||\n\t\t\tfinalStats.size > maximumBytes\n\t\t) {\n\t\t\tthrow new FileJobUnreadableError(\"input changed while it was being read\");\n\t\t}\n\t\tresult = bytes;\n\t} catch (error) {\n\t\treadError =\n\t\t\terror instanceof FileJobUnreadableError\n\t\t\t\t? error\n\t\t\t\t: new FileJobUnreadableError(\n\t\t\t\t\t\t`cannot read input: ${errorCode(error) ?? \"unknown\"}`,\n\t\t\t\t\t);\n\t}\n\ttry {\n\t\tawait handle.close();\n\t} catch (error) {\n\t\tif (!readError) {\n\t\t\treadError = new FileJobUnreadableError(\n\t\t\t\t`cannot close input: ${errorCode(error) ?? \"unknown\"}`,\n\t\t\t);\n\t\t}\n\t}\n\tif (readError) throw readError;\n\tif (!result) {\n\t\tthrow new FileJobUnreadableError(\"input read produced no result\");\n\t}\n\treturn result;\n}\n\nexport async function sha256RegularFile(filePath: string): Promise<string> {\n\tconst bytes = await readBoundedRegularFile(\n\t\tfilePath,\n\t\tFILE_JOB_EXECUTABLE_MAX_BYTES,\n\t);\n\treturn createHash(\"sha256\").update(bytes).digest(\"hex\");\n}\n\nexport async function writeExclusiveDurableFile(\n\tfilePath: string,\n\tbytes: Uint8Array,\n\thooks: DurableArtifactHooks = {},\n): Promise<void> {\n\tawait hooks.beforeOpen?.(filePath);\n\tconst handle = await open(\n\t\tfilePath,\n\t\tfsConstants.O_WRONLY |\n\t\t\tfsConstants.O_CREAT |\n\t\t\tfsConstants.O_EXCL |\n\t\t\tfsConstants.O_NOFOLLOW,\n\t\t0o600,\n\t);\n\ttry {\n\t\tif (!(await handle.stat()).isFile()) {\n\t\t\tthrow new Error(\"artifact target is not a regular file\");\n\t\t}\n\t\tawait handle.writeFile(bytes);\n\t\tawait hooks.beforeFileFsync?.();\n\t\tawait handle.sync();\n\t} finally {\n\t\tawait handle.close();\n\t}\n}\n\nfunction redactString(\n\tvalue: string,\n\tsensitiveValues: ReadonlySet<string>,\n): string {\n\tlet redacted = value;\n\tfor (const secret of sensitiveValues) {\n\t\tif (secret) redacted = redacted.replaceAll(secret, \"[REDACTED]\");\n\t}\n\treturn redacted;\n}\n\nexport function redactDiagnostics(\n\tdiagnostics: Readonly<Record<string, string | number | boolean>>,\n\tsensitiveValues: ReadonlySet<string>,\n): Record<string, string | number | boolean> {\n\treturn Object.fromEntries(\n\t\tObject.entries(diagnostics).map(([key, value]) => [\n\t\t\tredactString(key, sensitiveValues),\n\t\t\ttypeof value === \"string\" ? redactString(value, sensitiveValues) : value,\n\t\t]),\n\t);\n}\n\nasync function closeIgnoringErrors(handle: FileHandle | null): Promise<void> {\n\tif (!handle) return;\n\ttry {\n\t\tawait handle.close();\n\t} catch {\n\t\t// Preserve the original durable-write failure.\n\t}\n}\n\nexport async function atomicWriteJsonResult<T>(\n\tresultPath: string,\n\tresult: T,\n\toptions: AtomicWriteJsonOptions<T> = {},\n): Promise<void> {\n\toptions.validate?.(result);\n\tconst serialized = `${JSON.stringify(result)}\\n`;\n\tconst attemptRoot = path.dirname(resultPath);\n\tconst tempPath = path.join(\n\t\tattemptRoot,\n\t\t`.${path.basename(resultPath)}.${randomUUID()}.tmp`,\n\t);\n\tlet tempHandle: FileHandle | null = null;\n\tlet renamed = false;\n\n\ttry {\n\t\ttry {\n\t\t\tawait lstat(tempPath);\n\t\t\tthrow new Error(\"exclusive temporary result path already exists\");\n\t\t} catch (error) {\n\t\t\tif (errorCode(error) !== \"ENOENT\") throw error;\n\t\t}\n\n\t\tawait options.hooks?.beforeTempOpen?.(tempPath);\n\t\ttempHandle = await open(\n\t\t\ttempPath,\n\t\t\tfsConstants.O_WRONLY |\n\t\t\t\tfsConstants.O_CREAT |\n\t\t\t\tfsConstants.O_EXCL |\n\t\t\t\tfsConstants.O_NOFOLLOW,\n\t\t\t0o600,\n\t\t);\n\t\tif (!(await tempHandle.stat()).isFile()) {\n\t\t\tthrow new Error(\"temporary result is not a regular file\");\n\t\t}\n\t\tawait tempHandle.writeFile(serialized, \"utf8\");\n\t\tawait options.hooks?.beforeFileFsync?.();\n\t\tawait tempHandle.sync();\n\t\tawait tempHandle.close();\n\t\ttempHandle = null;\n\n\t\tawait options.hooks?.beforeRename?.();\n\t\tawait rename(tempPath, resultPath);\n\t\trenamed = true;\n\n\t\tconst directoryHandle = await open(\n\t\t\tattemptRoot,\n\t\t\tfsConstants.O_RDONLY | fsConstants.O_DIRECTORY | fsConstants.O_NOFOLLOW,\n\t\t);\n\t\ttry {\n\t\t\tif (!(await directoryHandle.stat()).isDirectory()) {\n\t\t\t\tthrow new Error(\"opened attempt root is not a directory\");\n\t\t\t}\n\t\t\ttry {\n\t\t\t\tawait options.hooks?.beforeDirectoryFsync?.();\n\t\t\t\tawait directoryHandle.sync();\n\t\t\t} catch (error) {\n\t\t\t\tif (![\"ENOTSUP\", \"EINVAL\"].includes(errorCode(error) ?? \"\")) {\n\t\t\t\t\tthrow error;\n\t\t\t\t}\n\t\t\t}\n\t\t} finally {\n\t\t\tawait directoryHandle.close();\n\t\t}\n\t} catch (error) {\n\t\tawait closeIgnoringErrors(tempHandle);\n\t\tif (!renamed) {\n\t\t\ttry {\n\t\t\t\tawait unlink(tempPath);\n\t\t\t} catch (cleanupError) {\n\t\t\t\tif (errorCode(cleanupError) !== \"ENOENT\") {\n\t\t\t\t\t// The original failure remains authoritative.\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tthrow error;\n\t}\n}\n"
227
+ "import { documentSha256, jcsSha256 } from \"./identity\";\nimport capabilityPolicyDocument from \"./policies/capability-policy-v3.json\" with {\n\ttype: \"json\",\n};\nimport resourcePolicyDocument from \"./policies/resource-policy-v2.json\" with {\n\ttype: \"json\",\n};\n\nexport const CAPABILITY_POLICY_ID =\n\t\"market-data-vendor-backfill-capabilities/v3\" as const;\nexport const RESOURCE_POLICY_ID =\n\t\"market-data-vendor-backfill-resources/v2\" as const;\nexport const ADAPTER_POLICY_ID = \"cryptohftdata-orderbook-adapter/v1\" as const;\nexport const ACQUISITION_POLICY_ID =\n\t\"cryptohftdata-hourly-acquisition/v2\" as const;\n\nconst {\n\tpolicy_sha256: declaredCapabilityPolicySha256,\n\t...capabilityPolicyContent\n} = capabilityPolicyDocument;\nif (\n\tcapabilityPolicyContent.policy_id !== CAPABILITY_POLICY_ID ||\n\tjcsSha256(capabilityPolicyContent) !== declaredCapabilityPolicySha256\n) {\n\tthrow new Error(\"current capability policy asset identity is invalid\");\n}\n\nexport const CAPABILITY_POLICY = Object.freeze({\n\t...capabilityPolicyContent,\n\tpolicy_id: CAPABILITY_POLICY_ID,\n\tpolicy_sha256: declaredCapabilityPolicySha256,\n});\n\nconst {\n\tpolicy_sha256: declaredResourcePolicySha256,\n\t...resourcePolicyContent\n} = resourcePolicyDocument;\nif (\n\tresourcePolicyContent.policy_id !== RESOURCE_POLICY_ID ||\n\tjcsSha256(resourcePolicyContent) !== declaredResourcePolicySha256\n) {\n\tthrow new Error(\"current resource policy asset identity is invalid\");\n}\n\nexport const RESOURCE_POLICY = Object.freeze({\n\t...resourcePolicyContent,\n\tpolicy_id: RESOURCE_POLICY_ID,\n\tpolicy_sha256: declaredResourcePolicySha256,\n});\n\nexport const EFFECTIVE_ADAPTER_POLICY_PIN = Object.freeze({\n\tpolicy_id: ADAPTER_POLICY_ID,\n\tpolicy_sha256: jcsSha256(capabilityPolicyContent.adapter_policy),\n});\n\nexport const EFFECTIVE_ACQUISITION_POLICY_PIN = Object.freeze({\n\tpolicy_id: ACQUISITION_POLICY_ID,\n\tpolicy_sha256: jcsSha256(capabilityPolicyContent.acquisition_policy),\n});\n\nexport type PolicyPin = {\n\tpolicy_id: string;\n\tpolicy_sha256: string;\n};\n\nexport function assertPolicyDocumentIdentity(\n\tpolicy: Record<string, unknown> & { policy_sha256: string },\n): void {\n\tif (documentSha256(policy, \"policy_sha256\") !== policy.policy_sha256) {\n\t\tthrow new Error(\"policy_sha256 does not match RFC 8785 policy content\");\n\t}\n}\n",
228
+ "import type { BrokerArchiveRow } from \"../broker-execution-archive/types\";\nimport type {\n\tNormalizedOrderBookSnapshot,\n\tOrderBookConstructionMode,\n} from \"../order-book\";\nimport {\n\tcaptureCoreFields,\n\tnormalizeTimestampMs,\n\tsha256Canonical,\n} from \"./capture-contract\";\nimport type { MarketCaptureContext, RawCapture } from \"./types\";\n\nexport class OrderBookValidationError extends Error {\n\treadonly reason: string;\n\n\tconstructor(reason: string) {\n\t\tsuper(`Invalid order-book evidence: ${reason}`);\n\t\tthis.name = \"OrderBookValidationError\";\n\t\tthis.reason = reason;\n\t}\n}\n\ntype ValidLevel = { price: number; amount: number };\n\nexport type CanonicalOrderBookRows = {\n\tsnapshotId: string;\n\tlevels: BrokerArchiveRow[];\n\tsummary: BrokerArchiveRow;\n};\n\nfunction parseSequence(\n\tvalue: NormalizedOrderBookSnapshot[\"sequence\"],\n): number | string | undefined {\n\tif (value === undefined) return undefined;\n\tif (typeof value === \"number\") {\n\t\tif (Number.isSafeInteger(value) && value >= 0) return value;\n\t\tthrow new OrderBookValidationError(\n\t\t\t\"sequence must be a non-negative integer\",\n\t\t);\n\t}\n\tif (typeof value !== \"string\" || !/^\\d+$/.test(value)) {\n\t\tthrow new OrderBookValidationError(\n\t\t\t\"sequence must be a non-negative integer\",\n\t\t);\n\t}\n\tconst parsed = BigInt(value);\n\tif (parsed > 18_446_744_073_709_551_615n) {\n\t\tthrow new OrderBookValidationError(\"sequence exceeds UInt64\");\n\t}\n\treturn parsed.toString(10);\n}\n\nfunction validateSide(\n\tside: \"bid\" | \"ask\",\n\tlevels: number[][],\n\tdepthLimit: number,\n): ValidLevel[] {\n\tif (levels.length === 0) {\n\t\tthrow new OrderBookValidationError(`${side} side is missing`);\n\t}\n\tconst retained = levels.slice(0, depthLimit);\n\tfor (let index = 0; index < retained.length; index += 1) {\n\t\tconst entry = retained[index];\n\t\tconst price = entry?.[0];\n\t\tconst amount = entry?.[1];\n\t\tif (\n\t\t\t!Array.isArray(entry) ||\n\t\t\tentry.length < 2 ||\n\t\t\tprice === undefined ||\n\t\t\tamount === undefined ||\n\t\t\t!Number.isFinite(price) ||\n\t\t\t!Number.isFinite(amount) ||\n\t\t\tprice <= 0 ||\n\t\t\tamount <= 0\n\t\t) {\n\t\t\tthrow new OrderBookValidationError(\n\t\t\t\t`${side} level ${index} has a non-positive or non-finite price/amount`,\n\t\t\t);\n\t\t}\n\t\tif (index > 0) {\n\t\t\tconst previous = retained[index - 1]?.[0];\n\t\t\tif (\n\t\t\t\tprevious === undefined ||\n\t\t\t\t(side === \"bid\" ? price >= previous : price <= previous)\n\t\t\t) {\n\t\t\t\tthrow new OrderBookValidationError(\n\t\t\t\t\t`${side} levels are not strictly ${side === \"bid\" ? \"descending\" : \"ascending\"}`,\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t}\n\treturn retained.map(([price, amount]) => ({\n\t\tprice: price as number,\n\t\tamount: amount as number,\n\t}));\n}\n\nfunction normalizedBands(input: readonly number[] | undefined): number[] {\n\tconst bands = input ?? [10, 25, 50, 100];\n\tfor (const band of bands) {\n\t\tif (!Number.isFinite(band) || band <= 0 || !Number.isInteger(band)) {\n\t\t\tthrow new OrderBookValidationError(\n\t\t\t\t\"measurement bands must be positive integer basis points\",\n\t\t\t);\n\t\t}\n\t}\n\treturn [...new Set(bands)].sort((left, right) => left - right);\n}\n\nfunction checksumRow(row: Record<string, unknown>): Record<string, unknown> {\n\treturn { ...row, normalized_row_checksum: sha256Canonical(row) };\n}\n\nfunction commonEvidenceFields(\n\tcontext: MarketCaptureContext,\n\trawCapture: RawCapture,\n\tinput: {\n\t\tsnapshotId: string;\n\t\tsequence?: number | string;\n\t\tdepthLimit: number;\n\t\teventTimeMs: number;\n\t\treceivedTimeMs: number;\n\t\tconstructionMode:\n\t\t\t| OrderBookConstructionMode\n\t\t\t| \"policy_neutral_top_n_state_change_tape/v1\";\n\t},\n): Record<string, unknown> {\n\treturn {\n\t\t...captureCoreFields(context, rawCapture),\n\t\tsource_time_ms: input.eventTimeMs,\n\t\treceived_time_ms: input.receivedTimeMs,\n\t\tsnapshot_id: input.snapshotId,\n\t\tconstruction_mode: input.constructionMode,\n\t\tgap_policy: \"record_gap\",\n\t\tdepth_limit: input.depthLimit,\n\t\tsequence: input.sequence,\n\t\texact_l2_reconstruction_complete: 0,\n\t};\n}\n\nexport function buildCanonicalOrderBookRows(input: {\n\tcontext: MarketCaptureContext;\n\tsnapshot: NormalizedOrderBookSnapshot;\n\trawCapture: RawCapture;\n\tdepthLimit: number;\n\tmeasurementBandsBps?: readonly number[];\n\tconstructionMode?:\n\t\t| OrderBookConstructionMode\n\t\t| \"policy_neutral_top_n_state_change_tape/v1\";\n}): CanonicalOrderBookRows {\n\tif (\n\t\t!Number.isSafeInteger(input.depthLimit) ||\n\t\tinput.depthLimit <= 0 ||\n\t\tinput.depthLimit > 500\n\t) {\n\t\tthrow new OrderBookValidationError(\n\t\t\t\"depth limit must be an integer between 1 and 500\",\n\t\t);\n\t}\n\tif (input.context.feed !== \"ORDERBOOK\") {\n\t\tthrow new OrderBookValidationError(\"capture context feed is not ORDERBOOK\");\n\t}\n\tif (input.constructionMode === \"exact_l2_reconstruction\") {\n\t\tthrow new OrderBookValidationError(\n\t\t\t\"exact L2 requires a complete continuity proof and is unsupported\",\n\t\t);\n\t}\n\n\tlet eventTimeMs: number;\n\tlet receivedTimeMs: number;\n\ttry {\n\t\teventTimeMs = normalizeTimestampMs(\n\t\t\tinput.snapshot.timestamp,\n\t\t\t\"source_time_ms\",\n\t\t);\n\t\treceivedTimeMs = normalizeTimestampMs(\n\t\t\tinput.snapshot.receivedTimestamp,\n\t\t\t\"received_time_ms\",\n\t\t);\n\t} catch (error) {\n\t\tthrow new OrderBookValidationError(\n\t\t\terror instanceof Error ? error.message : \"invalid timestamp\",\n\t\t);\n\t}\n\tif (receivedTimeMs < eventTimeMs) {\n\t\tthrow new OrderBookValidationError(\n\t\t\t\"received timestamp precedes source timestamp\",\n\t\t);\n\t}\n\n\tconst bids = validateSide(\"bid\", input.snapshot.bids, input.depthLimit);\n\tconst asks = validateSide(\"ask\", input.snapshot.asks, input.depthLimit);\n\tconst bestBid = bids[0] as ValidLevel;\n\tconst bestAsk = asks[0] as ValidLevel;\n\tif (bestBid.price >= bestAsk.price) {\n\t\tthrow new OrderBookValidationError(\"book is crossed or locked\");\n\t}\n\tconst sequence = parseSequence(input.snapshot.sequence);\n\tconst midPrice = (bestBid.price + bestAsk.price) / 2;\n\tconst spread = bestAsk.price - bestBid.price;\n\tconst spreadBps = (spread / midPrice) * 10_000;\n\tconst snapshotId = sha256Canonical({\n\t\texchange: input.context.exchange.trim().toLowerCase(),\n\t\ttrading_pair: input.context.symbol.trim().replace(\"/\", \"-\"),\n\t\tsource_time_ms: eventTimeMs,\n\t\tsequence,\n\t\tdepth_limit: input.depthLimit,\n\t\tbids,\n\t\tasks,\n\t\tschema_version: input.context.schemaVersion,\n\t});\n\tconst common = commonEvidenceFields(input.context, input.rawCapture, {\n\t\tsnapshotId,\n\t\tsequence,\n\t\tdepthLimit: input.depthLimit,\n\t\teventTimeMs,\n\t\treceivedTimeMs,\n\t\tconstructionMode: input.constructionMode ?? \"sampled_top_n_snapshot\",\n\t});\n\n\tconst levels: BrokerArchiveRow[] = (\n\t\t[\n\t\t\t[\"bid\", bids],\n\t\t\t[\"ask\", asks],\n\t\t] as const\n\t).flatMap(([side, sideLevels]) =>\n\t\tsideLevels.map(({ price, amount }, levelIndex) => {\n\t\t\tconst row = checksumRow({\n\t\t\t\t...common,\n\t\t\t\tside,\n\t\t\t\tlevel_index: levelIndex,\n\t\t\t\tprice,\n\t\t\t\tamount,\n\t\t\t\tnotional: price * amount,\n\t\t\t\tmid_price: midPrice,\n\t\t\t\tspread_from_mid_bps: Math.abs((price - midPrice) / midPrice) * 10_000,\n\t\t\t});\n\t\t\treturn { table: \"market_data.cex_order_book_levels\", row };\n\t\t}),\n\t);\n\n\tconst bands = normalizedBands(input.measurementBandsBps);\n\tconst bidDepth = bands.map((band) => {\n\t\tconst minimumPrice = bestBid.price * (1 - band / 10_000);\n\t\treturn bids\n\t\t\t.filter(({ price }) => price >= minimumPrice)\n\t\t\t.reduce((sum, { amount }) => sum + amount, 0);\n\t});\n\tconst askDepth = bands.map((band) => {\n\t\tconst maximumPrice = bestAsk.price * (1 + band / 10_000);\n\t\treturn asks\n\t\t\t.filter(({ price }) => price <= maximumPrice)\n\t\t\t.reduce((sum, { amount }) => sum + amount, 0);\n\t});\n\tconst summaryRow = checksumRow({\n\t\t...common,\n\t\tbest_bid: bestBid.price,\n\t\tbest_ask: bestAsk.price,\n\t\tbest_bid_amount: bestBid.amount,\n\t\tbest_ask_amount: bestAsk.amount,\n\t\tmid_price: midPrice,\n\t\tspread,\n\t\tspread_bps: spreadBps,\n\t\tstaleness_ms: receivedTimeMs - eventTimeMs,\n\t\tbid_level_count: bids.length,\n\t\task_level_count: asks.length,\n\t\tmeasurement_bands_bps: bands,\n\t\tbid_depth_by_band: bidDepth,\n\t\task_depth_by_band: askDepth,\n\t});\n\n\treturn {\n\t\tsnapshotId,\n\t\tlevels,\n\t\tsummary: {\n\t\t\ttable: \"market_data.cex_order_book_depth_summary\",\n\t\t\trow: summaryRow,\n\t\t},\n\t};\n}\n",
229
+ "import { sha256Canonical } from \"../market-data-archive/capture-contract\";\nimport {\n\ttype BackfillArchiveRow,\n\tEXTERNAL_BACKFILL_SOURCE,\n\ttype ForwarderBatch,\n} from \"./contracts\";\n\nexport const BACKFILL_MAX_BATCH_ROWS = 1_000;\nexport const BACKFILL_MAX_BATCH_BYTES = 5 * 1024 * 1024;\n\nfunction serializedBytes(value: unknown): number {\n\treturn new TextEncoder().encode(JSON.stringify(value)).byteLength;\n}\n\nexport function buildForwarderBatches(input: {\n\tcaptureBundleId: string;\n\tdeploymentId: string;\n\trows: readonly BackfillArchiveRow[];\n\tmaxRows?: number;\n\tmaxBytes?: number;\n}): ForwarderBatch[] {\n\tconst maxRows = input.maxRows ?? BACKFILL_MAX_BATCH_ROWS;\n\tconst maxBytes = input.maxBytes ?? BACKFILL_MAX_BATCH_BYTES;\n\tconst tables = new Map<string, BackfillArchiveRow[]>();\n\tfor (const row of input.rows) {\n\t\tconst group = tables.get(row.table) ?? [];\n\t\tgroup.push(row);\n\t\ttables.set(row.table, group);\n\t}\n\tconst batches: ForwarderBatch[] = [];\n\tfor (const table of [...tables.keys()].sort()) {\n\t\tconst rows = tables.get(table) as BackfillArchiveRow[];\n\t\tlet chunk: BackfillArchiveRow[] = [];\n\t\tlet chunkBytes = 0;\n\t\tlet ordinal = 0;\n\t\tconst flush = () => {\n\t\t\tif (chunk.length === 0) return;\n\t\t\tconst batchId = sha256Canonical({\n\t\t\t\tcapture_bundle_id: input.captureBundleId,\n\t\t\t\ttable,\n\t\t\t\tchunk_ordinal: ordinal,\n\t\t\t\trows: chunk,\n\t\t\t});\n\t\t\tbatches.push({\n\t\t\t\tsource: EXTERNAL_BACKFILL_SOURCE,\n\t\t\t\tdeployment_id: input.deploymentId,\n\t\t\t\tbatch_id: batchId,\n\t\t\t\trows: chunk,\n\t\t\t});\n\t\t\tordinal += 1;\n\t\t\tchunk = [];\n\t\t\tchunkBytes = 0;\n\t\t};\n\t\tfor (const row of rows) {\n\t\t\tconst bytes = serializedBytes(row);\n\t\t\tif (bytes > maxBytes) {\n\t\t\t\tthrow new Error(`archive_row_exceeds_byte_budget:${table}`);\n\t\t\t}\n\t\t\tif (chunk.length >= maxRows || chunkBytes + bytes > maxBytes) flush();\n\t\t\tchunk.push(row);\n\t\t\tchunkBytes += bytes;\n\t\t}\n\t\tflush();\n\t}\n\treturn batches;\n}\n",
230
+ "import { createHash } from \"node:crypto\";\nimport { decompress } from \"fzstd\";\nimport { parquetReadObjects } from \"hyparquet\";\nimport {\n\tbuildCanonicalOrderBookRows,\n\tOrderBookValidationError,\n} from \"../market-data-archive/canonical-orderbook\";\nimport {\n\tCHECKSUM_ALGORITHM,\n\tcanonicalSerialize,\n\tMARKET_CAPTURE_SCHEMA_VERSION,\n\tsha256Canonical,\n} from \"../market-data-archive/capture-contract\";\nimport type {\n\tMarketCaptureContext,\n\tRawCapture,\n} from \"../market-data-archive/types\";\nimport type {\n\tReconstructionObservation,\n\tReconstructionObservationSink,\n\tSourceObjectEvidence,\n} from \"../market-data-source-forensics\";\nimport {\n\ttype BackfillArchiveRow,\n\tEXTERNAL_BACKFILL_SOURCE,\n\tHISTORICAL_VENDOR_SOURCE_MODE,\n\ttype MarketDataVendorBackfillRequest,\n\ttype ProviderCapability,\n\ttype ProviderObjectEvidence,\n\tVENDOR_DATASET_RAW_CAPTURE_SCOPE,\n} from \"./contracts\";\nimport type { NormalizedBackfill, ProviderDataset } from \"./core\";\nimport { semanticDigest } from \"./semantic-verification\";\n\nexport const CRYPTOHFTDATA_ADAPTER_VERSION =\n\t\"cryptohftdata-orderbook/v2\" as const;\nexport const CRYPTOHFTDATA_API_URL = \"https://api.cryptohftdata.com\" as const;\nexport const DIAGNOSTIC_LAG_THRESHOLDS_MS = [\n\t1_000, 2_000, 5_000, 10_000, 30_000, 60_000,\n] as const;\nexport const SOURCE_TAPE_MAX_STATES_PER_YIELD = 4 as const;\nexport const SOURCE_TAPE_MAX_BATCH_BYTES = 5_242_880 as const;\nexport const SOURCE_TAPE_MAX_IN_FLIGHT = 1 as const;\nexport const BACKFILL_CLOCK_DIAGNOSTIC_KEYS = [\n\t\"target_time_ms\",\n\t\"source_time_ms\",\n\t\"asof_lag_ms\",\n\t\"max_prior_asof_lag_ms\",\n\t\"missing_target_count\",\n\t\"covered_target_count\",\n\t\"first_missing_target_time_ms\",\n\t\"last_missing_target_time_ms\",\n\t\"max_observed_asof_lag_ms\",\n\t\"missing_target_dates_utc\",\n\t\"total_target_count\",\n\t\"unanchored_target_count\",\n\t\"future_state_target_count\",\n\t...DIAGNOSTIC_LAG_THRESHOLDS_MS.map(\n\t\t(threshold) => `covered_target_count_lag_${threshold}_ms` as const,\n\t),\n] as const;\nexport const BACKFILL_SEQUENCE_DIAGNOSTIC_KEYS = [\n\t\"event_time_ms\",\n\t\"expected_previous_sequence\",\n\t\"observed_previous_sequence\",\n\t\"observed_final_sequence\",\n\t\"sequence_gap_count\",\n\t\"first_sequence_gap_event_time_ms\",\n\t\"last_sequence_gap_event_time_ms\",\n] as const;\nconst CRYPTOHFTDATA_HISTORY_START_MS = Date.UTC(2025, 5, 28);\nconst HOUR_MS = 60 * 60 * 1_000;\n\nexport type CryptoHftDataCapabilityProfile = Readonly<{\n\tprofileId: string;\n\texchange: string;\n\ttradingPair: string;\n\tsourceSymbol: string;\n\tmarketType: \"spot\" | \"swap\" | \"future\";\n\tproviderExchangeId: string;\n\thistoryStartMs: number;\n\tmaxDepth: number;\n\teventTimeUnit: \"milliseconds\";\n\treceivedTimeUnit: \"nanoseconds\";\n\tsnapshotGrouping:\n\t\t| \"event_time_last_update_id_object\"\n\t\t| \"event_time_final_update_id_object\";\n\tsequenceSemantics: \"binance_u_U_pu\" | \"okx_seq_id_prev_seq_id\";\n\tconstructionModes: readonly [\"sampled_top_n_snapshot\"];\n\tsourcePolicies: readonly (\"authoritative_window\" | \"fill_gaps\")[];\n}>;\n\n// This profile is exported for explicit enablement by a conformance-tested\n// consumer. The adapter's default registry is deliberately empty: possession\n// of a provider credential must never advertise an unverified data profile.\nexport const CRYPTOHFTDATA_BINANCE_SPOT_BTCUSDT_PROFILE: CryptoHftDataCapabilityProfile =\n\tObject.freeze({\n\t\tprofileId: \"cryptohftdata/binance_spot/BTCUSDT/v1\",\n\t\texchange: \"binance\",\n\t\ttradingPair: \"BTC-USDT\",\n\t\tsourceSymbol: \"BTCUSDT\",\n\t\tmarketType: \"spot\",\n\t\tproviderExchangeId: \"binance_spot\",\n\t\thistoryStartMs: CRYPTOHFTDATA_HISTORY_START_MS,\n\t\tmaxDepth: 500,\n\t\teventTimeUnit: \"milliseconds\",\n\t\treceivedTimeUnit: \"nanoseconds\",\n\t\tsnapshotGrouping: \"event_time_last_update_id_object\",\n\t\tsequenceSemantics: \"binance_u_U_pu\",\n\t\tconstructionModes: [\"sampled_top_n_snapshot\"] as const,\n\t\tsourcePolicies: [\"authoritative_window\"] as const,\n\t});\n\n// This profile is pinned to a live-proven object containing a complete OKX\n// snapshot followed by a contiguous seqId/prevSeqId update chain.\nexport const CRYPTOHFTDATA_OKX_SPOT_ARBUSDT_PROFILE: CryptoHftDataCapabilityProfile =\n\tObject.freeze({\n\t\tprofileId: \"cryptohftdata/okx_spot/ARB-USDT/v1\",\n\t\texchange: \"okx\",\n\t\ttradingPair: \"ARB-USDT\",\n\t\tsourceSymbol: \"ARB-USDT\",\n\t\tmarketType: \"spot\",\n\t\tproviderExchangeId: \"okx_spot\",\n\t\thistoryStartMs: CRYPTOHFTDATA_HISTORY_START_MS,\n\t\tmaxDepth: 400,\n\t\teventTimeUnit: \"milliseconds\",\n\t\treceivedTimeUnit: \"nanoseconds\",\n\t\tsnapshotGrouping: \"event_time_final_update_id_object\",\n\t\tsequenceSemantics: \"okx_seq_id_prev_seq_id\",\n\t\tconstructionModes: [\"sampled_top_n_snapshot\"] as const,\n\t\tsourcePolicies: [\"authoritative_window\", \"fill_gaps\"] as const,\n\t});\n\n// This profile uses the same live-proven OKX sequence and timestamp semantics\n// as ARB-USDT. Provider discovery and conformance evidence pin ARB-USDC as a\n// distinct source symbol; venue identity must never imply quote substitution.\nexport const CRYPTOHFTDATA_OKX_SPOT_ARBUSDC_PROFILE: CryptoHftDataCapabilityProfile =\n\tObject.freeze({\n\t\tprofileId: \"cryptohftdata/okx_spot/ARB-USDC/v1\",\n\t\texchange: \"okx\",\n\t\ttradingPair: \"ARB-USDC\",\n\t\tsourceSymbol: \"ARB-USDC\",\n\t\tmarketType: \"spot\",\n\t\tproviderExchangeId: \"okx_spot\",\n\t\thistoryStartMs: CRYPTOHFTDATA_HISTORY_START_MS,\n\t\tmaxDepth: 400,\n\t\teventTimeUnit: \"milliseconds\",\n\t\treceivedTimeUnit: \"nanoseconds\",\n\t\tsnapshotGrouping: \"event_time_final_update_id_object\",\n\t\tsequenceSemantics: \"okx_seq_id_prev_seq_id\",\n\t\tconstructionModes: [\"sampled_top_n_snapshot\"] as const,\n\t\tsourcePolicies: [\"authoritative_window\", \"fill_gaps\"] as const,\n\t});\n\nexport class CryptoHftDataError extends Error {\n\tconstructor(\n\t\treadonly reason: string,\n\t\treadonly diagnostics: Readonly<\n\t\t\tRecord<string, string | number | boolean>\n\t\t> = {},\n\t) {\n\t\tsuper(`CryptoHFTData backfill failed: ${reason}`);\n\t\tthis.name = \"CryptoHftDataError\";\n\t}\n}\n\nfunction providerObjectFailure(\n\terror: unknown,\n\treason: string,\n\tdatasetObjectIdentity: string,\n\tfailurePhase: string,\n): CryptoHftDataError {\n\treturn new CryptoHftDataError(\n\t\terror instanceof CryptoHftDataError ? error.reason : reason,\n\t\t{\n\t\t\t...(error instanceof CryptoHftDataError ? error.diagnostics : {}),\n\t\t\tdataset_object_identity: datasetObjectIdentity,\n\t\t\tfailure_phase: failurePhase,\n\t\t},\n\t);\n}\n\nconst PROVIDER_OBJECT_MAX_ATTEMPTS = 3;\nconst RETRYABLE_PROVIDER_OBJECT_FAILURES = new Set([\n\t\"provider_object_request_failed\",\n\t\"object_download_failed\",\n\t\"provider_object_read_failed\",\n\t\"provider_object_decode_failed\",\n\t\"provider_object_validation_failed\",\n]);\n\nfunction quarantinedProviderObjectFailure(\n\terror: CryptoHftDataError,\n\tattemptCount: number,\n\tchecksum?: string,\n): CryptoHftDataError {\n\treturn new CryptoHftDataError(error.reason, {\n\t\t...error.diagnostics,\n\t\t...(checksum ? { dataset_object_checksum: checksum } : {}),\n\t\tattempt_count: attemptCount,\n\t\tquarantined: true,\n\t});\n}\n\nexport type CryptoHftDataOrderBookRow = {\n\treceived_time: string | number | bigint;\n\tevent_time: string | number | bigint;\n\ttransaction_time?: string | number | bigint | null;\n\tsymbol: string;\n\tevent_type: \"snapshot\" | \"update\";\n\tfirst_update_id?: string | number | bigint | null;\n\tfinal_update_id?: string | number | bigint | null;\n\tprev_final_update_id?: string | number | bigint | null;\n\tlast_update_id?: string | number | bigint | null;\n\tside: \"bid\" | \"ask\";\n\tprice: string;\n\tquantity: string;\n\torder_count?: string | number | bigint | null;\n\tdataset_object_identity: string;\n\tdataset_object_checksum: string;\n};\n\nexport type ReconstructedCryptoHftBook = {\n\ttargetTimeMs: number;\n\tsourceTimeMs: number;\n\treceivedTimeMs: number;\n\tsequence: string;\n\tbids: number[][];\n\tasks: number[][];\n\tdatasetObjectIdentity: string;\n\tdatasetObjectChecksum: string;\n};\n\nexport type PolicyNeutralCryptoHftBookState = ReconstructedCryptoHftBook & {\n\ttapeState: \"initialization\" | \"change\";\n};\n\nexport type PolicyNeutralTapeSink = {\n\twriteBatch(states: readonly PolicyNeutralCryptoHftBookState[]): Promise<void>;\n\tcomplete(input: {\n\t\texpectedObjectIdentities: readonly string[];\n\t\tobservedObjects: readonly ProviderObjectEvidence[];\n\t\tstateCount: number;\n\t}): Promise<void>;\n\tabort(input: { reason: string; retainedStateCount: number }): Promise<void>;\n};\n\nfunction tapeStateBytes(state: PolicyNeutralCryptoHftBookState): number {\n\treturn new TextEncoder().encode(JSON.stringify(state)).byteLength;\n}\n\nasync function writePolicyNeutralTapeStates(\n\tsink: PolicyNeutralTapeSink,\n\tstates: readonly PolicyNeutralCryptoHftBookState[],\n): Promise<number> {\n\tlet written = 0;\n\tlet batch: PolicyNeutralCryptoHftBookState[] = [];\n\tlet batchBytes = 0;\n\tconst flush = async () => {\n\t\tif (batch.length === 0) return;\n\t\tawait sink.writeBatch(batch);\n\t\twritten += batch.length;\n\t\tbatch = [];\n\t\tbatchBytes = 0;\n\t};\n\tfor (const state of states) {\n\t\tconst bytes = tapeStateBytes(state);\n\t\tif (bytes > SOURCE_TAPE_MAX_BATCH_BYTES) {\n\t\t\tthrow new CryptoHftDataError(\"source_tape_state_too_large\");\n\t\t}\n\t\tif (\n\t\t\tbatch.length >= SOURCE_TAPE_MAX_STATES_PER_YIELD ||\n\t\t\tbatchBytes + bytes > SOURCE_TAPE_MAX_BATCH_BYTES\n\t\t) {\n\t\t\tawait flush();\n\t\t}\n\t\tbatch.push(state);\n\t\tbatchBytes += bytes;\n\t}\n\tawait flush();\n\treturn written;\n}\n\nexport function cryptoHftDataCapabilityFor(\n\trequest: MarketDataVendorBackfillRequest,\n\tprofiles: readonly CryptoHftDataCapabilityProfile[] = [],\n): ProviderCapability | undefined {\n\tif (\n\t\trequest.providerPolicy.provider !== \"cryptohftdata\" ||\n\t\trequest.scope.feed !== \"ORDERBOOK\" ||\n\t\trequest.scope.exchange.trim().toLowerCase() === \"mexc\"\n\t) {\n\t\treturn undefined;\n\t}\n\tconst profile = profiles.find(\n\t\t(candidate) =>\n\t\t\tcandidate.exchange === request.scope.exchange.trim().toLowerCase() &&\n\t\t\tcandidate.tradingPair === request.scope.tradingPair &&\n\t\t\tcandidate.sourceSymbol === request.scope.sourceSymbol &&\n\t\t\tcandidate.marketType === request.scope.marketType &&\n\t\t\tcandidate.constructionModes.includes(request.constructionMode as never) &&\n\t\t\tcandidate.sourcePolicies.includes(request.sourcePolicy as never) &&\n\t\t\trequest.window.startTimeMs >= candidate.historyStartMs &&\n\t\t\trequest.depth <= candidate.maxDepth,\n\t);\n\tif (!profile) return undefined;\n\treturn {\n\t\tprovider: \"cryptohftdata\",\n\t\tadapterVersion: CRYPTOHFTDATA_ADAPTER_VERSION,\n\t\tproviderExchangeId: profile.providerExchangeId,\n\t\tresolvedSymbol: profile.sourceSymbol,\n\t};\n}\n\nfunction utcHourPath(hourMs: number): { date: string; hour: string } {\n\tconst date = new Date(hourMs);\n\treturn {\n\t\tdate: `${date.getUTCFullYear()}-${String(date.getUTCMonth() + 1).padStart(2, \"0\")}-${String(date.getUTCDate()).padStart(2, \"0\")}`,\n\t\thour: String(date.getUTCHours()).padStart(2, \"0\"),\n\t};\n}\n\nexport function enumerateCryptoHftDataObjects(\n\trequest: MarketDataVendorBackfillRequest,\n\tproviderExchangeId: string,\n\tresolvedSymbol: string,\n): string[] {\n\tif (request.sourcePolicy === \"fill_gaps\") {\n\t\tconst hours = new Set<number>();\n\t\tfor (const targetTimeMs of request.requiredClockTargetsMs) {\n\t\t\tconst firstHour =\n\t\t\t\tMath.floor(\n\t\t\t\t\tMath.max(0, targetTimeMs - request.budgets.maxBoundaryLookbackMs) /\n\t\t\t\t\t\tHOUR_MS,\n\t\t\t\t) * HOUR_MS;\n\t\t\tconst lastHour = Math.floor(targetTimeMs / HOUR_MS) * HOUR_MS;\n\t\t\tfor (let hourMs = firstHour; hourMs <= lastHour; hourMs += HOUR_MS) {\n\t\t\t\thours.add(hourMs);\n\t\t\t}\n\t\t}\n\t\treturn [...hours]\n\t\t\t.sort((left, right) => left - right)\n\t\t\t.map((hourMs) => {\n\t\t\t\tconst utc = utcHourPath(hourMs);\n\t\t\t\treturn `${providerExchangeId}/${utc.date}/${utc.hour}/${resolvedSymbol}_orderbook.parquet.zst`;\n\t\t\t});\n\t}\n\treturn enumerateCryptoHftDataWindowObjects(\n\t\trequest,\n\t\tproviderExchangeId,\n\t\tresolvedSymbol,\n\t);\n}\n\nexport function enumerateCryptoHftDataWindowObjects(\n\trequest: MarketDataVendorBackfillRequest,\n\tproviderExchangeId: string,\n\tresolvedSymbol: string,\n): string[] {\n\tconst firstHour =\n\t\tMath.floor(\n\t\t\t(request.window.startTimeMs - request.budgets.maxBoundaryLookbackMs) /\n\t\t\t\tHOUR_MS,\n\t\t) * HOUR_MS;\n\tconst objects: string[] = [];\n\tfor (\n\t\tlet hourMs = Math.max(0, firstHour);\n\t\thourMs < request.window.endTimeMs;\n\t\thourMs += HOUR_MS\n\t) {\n\t\tconst utc = utcHourPath(hourMs);\n\t\tobjects.push(\n\t\t\t`${providerExchangeId}/${utc.date}/${utc.hour}/${resolvedSymbol}_orderbook.parquet.zst`,\n\t\t);\n\t}\n\treturn objects;\n}\n\nfunction initialArchiveCoversTarget(\n\trequest: MarketDataVendorBackfillRequest,\n\ttargetTimeMs: number,\n): boolean {\n\treturn (request.initialSelection?.support_anchors ?? []).some((anchor) => {\n\t\tconst sourceTimeMs = Date.parse(anchor.source_time);\n\t\treturn (\n\t\t\tNumber.isSafeInteger(sourceTimeMs) &&\n\t\t\tsourceTimeMs <= targetTimeMs &&\n\t\t\ttargetTimeMs - sourceTimeMs <= request.maxPriorAsOfLagMs\n\t\t);\n\t});\n}\n\nexport function providerAcquisitionRequest(\n\trequest: MarketDataVendorBackfillRequest,\n): MarketDataVendorBackfillRequest {\n\tif (request.sourcePolicy !== \"fill_gaps\") return request;\n\tconst requiredClockTargetsMs = request.requiredClockTargetsMs.filter(\n\t\t(targetTimeMs) => !initialArchiveCoversTarget(request, targetTimeMs),\n\t);\n\tif (requiredClockTargetsMs.length === 0) {\n\t\tthrow new CryptoHftDataError(\"fill_gaps_has_no_uncovered_clock_targets\");\n\t}\n\treturn { ...request, requiredClockTargetsMs };\n}\n\nfunction unsignedString(\n\tvalue: string | number | bigint | null | undefined,\n\tfield: string,\n\trequired = false,\n): string | undefined {\n\tif (value === null || value === undefined) {\n\t\tif (required) throw new CryptoHftDataError(`schema_${field}_missing`);\n\t\treturn undefined;\n\t}\n\tconst rendered = String(value);\n\tif (!/^\\d+$/.test(rendered)) {\n\t\tthrow new CryptoHftDataError(`schema_${field}_invalid`);\n\t}\n\tconst parsed = BigInt(rendered);\n\tif (parsed > 18_446_744_073_709_551_615n) {\n\t\tthrow new CryptoHftDataError(`schema_${field}_exceeds_uint64`);\n\t}\n\treturn parsed.toString(10);\n}\n\nfunction timestampMs(\n\tvalue: string | number | bigint,\n\tfield: \"received_time\" | \"event_time\",\n): number {\n\tconst rendered = String(value);\n\tif (!/^\\d+$/.test(rendered)) {\n\t\tthrow new CryptoHftDataError(`schema_${field}_invalid`);\n\t}\n\tconst raw = BigInt(rendered);\n\tconst milliseconds = field === \"received_time\" ? raw / 1_000_000n : raw;\n\tif (milliseconds > BigInt(Number.MAX_SAFE_INTEGER)) {\n\t\tthrow new CryptoHftDataError(`schema_${field}_unsafe`);\n\t}\n\treturn Number(milliseconds);\n}\n\nfunction decimal(value: string, field: string, allowZero: boolean): number {\n\tif (!/^(?:0|[1-9]\\d*)(?:\\.\\d+)?$/.test(value)) {\n\t\tthrow new CryptoHftDataError(`schema_${field}_invalid`);\n\t}\n\tconst parsed = Number(value);\n\tif (!Number.isFinite(parsed) || (allowZero ? parsed < 0 : parsed <= 0)) {\n\t\tthrow new CryptoHftDataError(`schema_${field}_invalid`);\n\t}\n\treturn parsed;\n}\n\nfunction validatedRow(\n\trequest: MarketDataVendorBackfillRequest,\n\trow: CryptoHftDataOrderBookRow,\n): CryptoHftDataOrderBookRow & {\n\teventTimeMs: number;\n\treceivedTimeMs: number;\n} {\n\tif (row.symbol !== request.scope.sourceSymbol) {\n\t\tthrow new CryptoHftDataError(\"schema_symbol_mismatch\");\n\t}\n\tif (row.event_type !== \"snapshot\" && row.event_type !== \"update\") {\n\t\tthrow new CryptoHftDataError(\"schema_event_type_invalid\");\n\t}\n\tif (row.side !== \"bid\" && row.side !== \"ask\") {\n\t\tthrow new CryptoHftDataError(\"schema_side_invalid\");\n\t}\n\tdecimal(row.price, \"price\", false);\n\tdecimal(row.quantity, \"quantity\", true);\n\tif (!/^[a-f0-9]{64}$/.test(row.dataset_object_checksum)) {\n\t\tthrow new CryptoHftDataError(\"schema_object_checksum_invalid\");\n\t}\n\tconst eventTimeMs = timestampMs(row.event_time, \"event_time\");\n\tconst receivedTimeMs = timestampMs(row.received_time, \"received_time\");\n\tif (receivedTimeMs < eventTimeMs) {\n\t\tthrow new CryptoHftDataError(\"received_time_precedes_event_time\");\n\t}\n\treturn { ...row, eventTimeMs, receivedTimeMs };\n}\n\nfunction groupKey(\n\trow: ReturnType<typeof validatedRow>,\n\tprofile: CryptoHftDataCapabilityProfile,\n): string {\n\tconst sequence =\n\t\trow.event_type === \"snapshot\"\n\t\t\t? profile.snapshotGrouping === \"event_time_final_update_id_object\"\n\t\t\t\t? unsignedString(row.final_update_id, \"final_update_id\", true)\n\t\t\t\t: unsignedString(row.last_update_id, \"last_update_id\", true)\n\t\t\t: unsignedString(row.final_update_id, \"final_update_id\", true);\n\treturn [\n\t\trow.event_type,\n\t\trow.eventTimeMs,\n\t\tsequence,\n\t\trow.dataset_object_identity,\n\t].join(\"\\u0000\");\n}\n\nfunction absent(value: string | number | bigint | null | undefined): boolean {\n\treturn value === null || value === undefined;\n}\n\nfunction snapshotSequence(\n\trow: ReturnType<typeof validatedRow>,\n\tprofile: CryptoHftDataCapabilityProfile,\n): string {\n\tif (profile.sequenceSemantics === \"okx_seq_id_prev_seq_id\") {\n\t\tif (String(row.last_update_id) !== \"-1\") {\n\t\t\tthrow new CryptoHftDataError(\"schema_last_update_id_snapshot_sentinel\");\n\t\t}\n\t\tif (!absent(row.first_update_id) || !absent(row.prev_final_update_id)) {\n\t\t\tthrow new CryptoHftDataError(\"ambiguous_snapshot_group\");\n\t\t}\n\t\treturn unsignedString(\n\t\t\trow.final_update_id,\n\t\t\t\"final_update_id\",\n\t\t\ttrue,\n\t\t) as string;\n\t}\n\treturn unsignedString(row.last_update_id, \"last_update_id\", true) as string;\n}\n\ntype BookState = {\n\tbids: Map<string, number>;\n\tasks: Map<string, number>;\n\tsequence: string;\n\tsourceTimeMs: number;\n\treceivedTimeMs: number;\n\tdatasetObjectIdentity: string;\n\tdatasetObjectChecksum: string;\n};\n\nfunction sortedSide(\n\tlevels: ReadonlyMap<string, number>,\n\tside: \"bid\" | \"ask\",\n): number[][] {\n\treturn [...levels.entries()]\n\t\t.map(([price, quantity]) => [Number(price), quantity])\n\t\t.sort((left, right) =>\n\t\t\tside === \"bid\"\n\t\t\t\t? (right[0] as number) - (left[0] as number)\n\t\t\t\t: (left[0] as number) - (right[0] as number),\n\t\t);\n}\n\nfunction applyRows(\n\tstate: BookState,\n\trows: ReturnType<typeof validatedRow>[],\n): void {\n\tfor (const row of rows) {\n\t\tconst levels = row.side === \"bid\" ? state.bids : state.asks;\n\t\tconst quantity = decimal(row.quantity, \"quantity\", true);\n\t\tif (quantity === 0) levels.delete(row.price);\n\t\telse levels.set(row.price, quantity);\n\t}\n}\n\nclass StreamingBookReconstructor {\n\tprivate readonly targets: readonly number[];\n\tprivate readonly samples: ReconstructedCryptoHftBook[] = [];\n\tprivate readonly clockObservations: Array<{\n\t\ttargetTimeMs: number;\n\t\tsourceTimeMs?: number;\n\t\tasofLagMs?: number;\n\t}> = [];\n\tprivate readonly missingSamples: Array<{\n\t\ttargetTimeMs: number;\n\t\tsourceTimeMs?: number;\n\t\tasofLagMs?: number;\n\t}> = [];\n\tprivate readonly sequenceGaps: Array<{\n\t\teventTimeMs: number;\n\t\texpectedPreviousSequence: string;\n\t\tobservedPreviousSequence: string;\n\t\tobservedFinalSequence: string;\n\t}> = [];\n\tprivate readonly policyNeutralTape: PolicyNeutralCryptoHftBookState[] = [];\n\tprivate tapeInitializationEmitted = false;\n\tprivate targetIndex = 0;\n\tprivate state: BookState | undefined;\n\tprivate previousFinalUpdateId: bigint | undefined;\n\n\tconstructor(\n\t\tprivate readonly request: MarketDataVendorBackfillRequest,\n\t\tprivate readonly profile: CryptoHftDataCapabilityProfile,\n\t\tprivate readonly observer?: ReconstructionObservationSink,\n\t\tprivate readonly options: { collectPolicyNeutralTape?: boolean } = {},\n\t) {\n\t\tthis.targets = [...request.requiredClockTargetsMs];\n\t}\n\n\tpush(inputRows: readonly CryptoHftDataOrderBookRow[]): void {\n\t\tfor (const group of this.inputGroups(inputRows)) {\n\t\t\tif (!this.processGroup(group)) return;\n\t\t}\n\t}\n\n\tasync pushPolicyNeutralTape(\n\t\tinputRows: readonly CryptoHftDataOrderBookRow[],\n\t\tsink: PolicyNeutralTapeSink,\n\t\tonStatesWritten: (count: number) => void,\n\t): Promise<void> {\n\t\tfor (const group of this.inputGroups(inputRows)) {\n\t\t\tif (!this.processGroup(group)) break;\n\t\t\tif (this.policyNeutralTape.length >= SOURCE_TAPE_MAX_STATES_PER_YIELD) {\n\t\t\t\tconst states = this.drainPolicyNeutralTape();\n\t\t\t\tconst written = await writePolicyNeutralTapeStates(sink, states);\n\t\t\t\tonStatesWritten(written);\n\t\t\t}\n\t\t}\n\t\tconst states = this.drainPolicyNeutralTape();\n\t\tif (states.length > 0) {\n\t\t\tconst written = await writePolicyNeutralTapeStates(sink, states);\n\t\t\tonStatesWritten(written);\n\t\t}\n\t}\n\n\tprivate inputGroups(\n\t\tinputRows: readonly CryptoHftDataOrderBookRow[],\n\t): Array<ReturnType<typeof validatedRow>[]> {\n\t\tconst observedObjects = new Map<string, SourceObjectEvidence>();\n\t\tfor (const row of inputRows) {\n\t\t\tconst existing = observedObjects.get(row.dataset_object_identity);\n\t\t\tobservedObjects.set(row.dataset_object_identity, {\n\t\t\t\tidentity: row.dataset_object_identity,\n\t\t\t\tchecksums: [\n\t\t\t\t\t...new Set([\n\t\t\t\t\t\t...(existing?.checksums ?? []),\n\t\t\t\t\t\trow.dataset_object_checksum,\n\t\t\t\t\t]),\n\t\t\t\t].sort(),\n\t\t\t\tattempt_count: 1,\n\t\t\t\tquarantined: false,\n\t\t\t});\n\t\t}\n\t\tfor (const object of observedObjects.values()) {\n\t\t\tthis.observe({ type: \"provider_object_boundary\", object });\n\t\t\tif (object.checksums.length > 1) {\n\t\t\t\tthis.observe({\n\t\t\t\t\ttype: \"provider_object_checksum_conflict\",\n\t\t\t\t\tobject: { ...object, quarantined: true },\n\t\t\t\t\taffected_target_times_ms: this.targets.slice(this.targetIndex),\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t\tconst rows = inputRows\n\t\t\t.map((row, index) => ({\n\t\t\t\t...validatedRow(this.request, row),\n\t\t\t\toriginalIndex: index,\n\t\t\t}))\n\t\t\t.sort(\n\t\t\t\t(left, right) =>\n\t\t\t\t\tleft.eventTimeMs - right.eventTimeMs ||\n\t\t\t\t\tleft.originalIndex - right.originalIndex,\n\t\t\t);\n\t\tconst groups: Array<ReturnType<typeof validatedRow>[]> = [];\n\t\tfor (const row of rows) {\n\t\t\tconst current = groups.at(-1);\n\t\t\tif (\n\t\t\t\t!current ||\n\t\t\t\tgroupKey(\n\t\t\t\t\tcurrent[0] as ReturnType<typeof validatedRow>,\n\t\t\t\t\tthis.profile,\n\t\t\t\t) !== groupKey(row, this.profile)\n\t\t\t) {\n\t\t\t\tgroups.push([row]);\n\t\t\t} else {\n\t\t\t\tcurrent.push(row);\n\t\t\t}\n\t\t}\n\t\treturn groups;\n\t}\n\n\tprivate processGroup(group: ReturnType<typeof validatedRow>[]): boolean {\n\t\tconst first = group[0] as ReturnType<typeof validatedRow>;\n\t\tthis.sampleBefore(first.eventTimeMs);\n\t\tif (\n\t\t\tthis.options.collectPolicyNeutralTape &&\n\t\t\tfirst.eventTimeMs >= this.request.window.endTimeMs\n\t\t) {\n\t\t\treturn false;\n\t\t}\n\t\tif (\n\t\t\tthis.options.collectPolicyNeutralTape &&\n\t\t\t!this.tapeInitializationEmitted &&\n\t\t\tfirst.eventTimeMs >= this.request.window.startTimeMs &&\n\t\t\tthis.state\n\t\t) {\n\t\t\tthis.capturePolicyNeutralState(\"initialization\");\n\t\t}\n\t\tif (\n\t\t\tthis.targetIndex >= this.targets.length &&\n\t\t\t!this.options.collectPolicyNeutralTape\n\t\t) {\n\t\t\treturn false;\n\t\t}\n\t\tif (first.event_type === \"snapshot\") this.applySnapshot(group);\n\t\telse if (this.state) this.applyUpdate(group);\n\t\tif (\n\t\t\tthis.options.collectPolicyNeutralTape &&\n\t\t\tthis.state &&\n\t\t\tfirst.eventTimeMs >= this.request.window.startTimeMs &&\n\t\t\tfirst.eventTimeMs < this.request.window.endTimeMs\n\t\t) {\n\t\t\tthis.capturePolicyNeutralState(\n\t\t\t\tthis.tapeInitializationEmitted ? \"change\" : \"initialization\",\n\t\t\t);\n\t\t}\n\t\treturn true;\n\t}\n\n\tdrainPolicyNeutralTape(): PolicyNeutralCryptoHftBookState[] {\n\t\treturn this.policyNeutralTape.splice(0, this.policyNeutralTape.length);\n\t}\n\n\tprivate capturePolicyNeutralState(\n\t\ttapeState: PolicyNeutralCryptoHftBookState[\"tapeState\"],\n\t): void {\n\t\tconst state = this.state;\n\t\tif (!state) return;\n\t\tconst bids = sortedSide(state.bids, \"bid\").slice(0, this.request.depth);\n\t\tconst asks = sortedSide(state.asks, \"ask\").slice(0, this.request.depth);\n\t\tif (bids.length === 0 || asks.length === 0) {\n\t\t\tthrow new CryptoHftDataError(\"book_side_missing\");\n\t\t}\n\t\tif ((bids[0]?.[0] as number) >= (asks[0]?.[0] as number)) {\n\t\t\tthrow new CryptoHftDataError(\"book_crossed_or_locked\");\n\t\t}\n\t\tthis.policyNeutralTape.push({\n\t\t\ttapeState,\n\t\t\ttargetTimeMs: state.sourceTimeMs,\n\t\t\tsourceTimeMs: state.sourceTimeMs,\n\t\t\treceivedTimeMs: state.receivedTimeMs,\n\t\t\tsequence: state.sequence,\n\t\t\tbids,\n\t\t\tasks,\n\t\t\tdatasetObjectIdentity: state.datasetObjectIdentity,\n\t\t\tdatasetObjectChecksum: state.datasetObjectChecksum,\n\t\t});\n\t\tthis.tapeInitializationEmitted = true;\n\t}\n\n\tprivate observe(observation: ReconstructionObservation): void {\n\t\ttry {\n\t\t\tthis.observer?.observe(observation);\n\t\t} catch {\n\t\t\t// Qualification evidence must never affect production reconstruction.\n\t\t}\n\t}\n\n\tprivate objectEvidence(state: BookState): SourceObjectEvidence {\n\t\treturn {\n\t\t\tidentity: state.datasetObjectIdentity,\n\t\t\tchecksums: [state.datasetObjectChecksum],\n\t\t\tattempt_count: 1,\n\t\t\tquarantined: false,\n\t\t};\n\t}\n\n\tfinish(): ReconstructedCryptoHftBook[] {\n\t\tthis.sampleBefore(Number.POSITIVE_INFINITY);\n\t\tif (this.missingSamples.length > 0) {\n\t\t\tthrow new CryptoHftDataError(\n\t\t\t\tthis.sequenceGaps.length > 0\n\t\t\t\t\t? \"update_chain_gap\"\n\t\t\t\t\t: this.missingSamples.some((sample) => sample.asofLagMs !== undefined)\n\t\t\t\t\t\t? \"required_clock_coverage_insufficient\"\n\t\t\t\t\t\t: \"update_before_snapshot\",\n\t\t\t\t{\n\t\t\t\t\t...this.sequenceGapDiagnostics(),\n\t\t\t\t\t...this.missingClockDiagnostics(),\n\t\t\t\t},\n\t\t\t);\n\t\t}\n\t\treturn this.samples;\n\t}\n\n\tfinishPolicyNeutralTape(): PolicyNeutralCryptoHftBookState[] {\n\t\tthis.finish();\n\t\tif (this.sequenceGaps.length > 0) {\n\t\t\tthrow new CryptoHftDataError(\"update_chain_gap\", {\n\t\t\t\t...this.sequenceGapDiagnostics(),\n\t\t\t});\n\t\t}\n\t\tif (!this.tapeInitializationEmitted && this.state) {\n\t\t\tthis.capturePolicyNeutralState(\"initialization\");\n\t\t}\n\t\tif (!this.tapeInitializationEmitted) {\n\t\t\tthrow new CryptoHftDataError(\"update_before_snapshot\");\n\t\t}\n\t\treturn this.policyNeutralTape;\n\t}\n\n\tasync finishPolicyNeutralTapeToSink(\n\t\tsink: PolicyNeutralTapeSink,\n\t\tonStatesWritten: (count: number) => void,\n\t): Promise<void> {\n\t\tthis.finishPolicyNeutralTape();\n\t\tconst states = this.drainPolicyNeutralTape();\n\t\tif (states.length > 0) {\n\t\t\tconst written = await writePolicyNeutralTapeStates(sink, states);\n\t\t\tonStatesWritten(written);\n\t\t}\n\t}\n\n\tprivate missingClockDiagnostics(): Record<string, string | number | boolean> {\n\t\tif (this.missingSamples.length === 0) return {};\n\t\tconst first = this\n\t\t\t.missingSamples[0] as (typeof this.missingSamples)[number];\n\t\tconst last = this.missingSamples.at(\n\t\t\t-1,\n\t\t) as (typeof this.missingSamples)[number];\n\t\tconst observedLags = this.missingSamples.flatMap((sample) =>\n\t\t\tsample.asofLagMs === undefined ? [] : [sample.asofLagMs],\n\t\t);\n\t\tconst missingDates = [\n\t\t\t...new Set(\n\t\t\t\tthis.missingSamples.map((sample) =>\n\t\t\t\t\tnew Date(sample.targetTimeMs).toISOString().slice(0, 10),\n\t\t\t\t),\n\t\t\t),\n\t\t].join(\",\");\n\t\tconst coverageByLag = Object.fromEntries(\n\t\t\tDIAGNOSTIC_LAG_THRESHOLDS_MS.map((threshold) => [\n\t\t\t\t`covered_target_count_lag_${threshold}_ms`,\n\t\t\t\tthis.clockObservations.filter(\n\t\t\t\t\t(observation) =>\n\t\t\t\t\t\tobservation.sourceTimeMs !== undefined &&\n\t\t\t\t\t\tobservation.sourceTimeMs <= observation.targetTimeMs &&\n\t\t\t\t\t\t(observation.asofLagMs as number) <= threshold,\n\t\t\t\t).length,\n\t\t\t]),\n\t\t);\n\t\treturn {\n\t\t\ttarget_time_ms: first.targetTimeMs,\n\t\t\t...(first.sourceTimeMs === undefined\n\t\t\t\t? {}\n\t\t\t\t: { source_time_ms: first.sourceTimeMs }),\n\t\t\t...(first.asofLagMs === undefined\n\t\t\t\t? {}\n\t\t\t\t: { asof_lag_ms: first.asofLagMs }),\n\t\t\tmax_prior_asof_lag_ms: this.request.maxPriorAsOfLagMs,\n\t\t\tmissing_target_count: this.missingSamples.length,\n\t\t\tcovered_target_count: this.samples.length,\n\t\t\tfirst_missing_target_time_ms: first.targetTimeMs,\n\t\t\tlast_missing_target_time_ms: last.targetTimeMs,\n\t\t\t...(observedLags.length === 0\n\t\t\t\t? {}\n\t\t\t\t: { max_observed_asof_lag_ms: Math.max(...observedLags) }),\n\t\t\tmissing_target_dates_utc: missingDates,\n\t\t\ttotal_target_count: this.clockObservations.length,\n\t\t\tunanchored_target_count: this.clockObservations.filter(\n\t\t\t\t(observation) => observation.sourceTimeMs === undefined,\n\t\t\t).length,\n\t\t\tfuture_state_target_count: this.clockObservations.filter(\n\t\t\t\t(observation) =>\n\t\t\t\t\tobservation.sourceTimeMs !== undefined &&\n\t\t\t\t\tobservation.sourceTimeMs > observation.targetTimeMs,\n\t\t\t).length,\n\t\t\t...coverageByLag,\n\t\t};\n\t}\n\n\tprivate sequenceGapDiagnostics(): Record<string, string | number | boolean> {\n\t\tif (this.sequenceGaps.length === 0) return {};\n\t\tconst first = this.sequenceGaps[0] as (typeof this.sequenceGaps)[number];\n\t\tconst last = this.sequenceGaps.at(-1) as (typeof this.sequenceGaps)[number];\n\t\treturn {\n\t\t\tevent_time_ms: first.eventTimeMs,\n\t\t\texpected_previous_sequence: first.expectedPreviousSequence,\n\t\t\tobserved_previous_sequence: first.observedPreviousSequence,\n\t\t\tobserved_final_sequence: first.observedFinalSequence,\n\t\t\tsequence_gap_count: this.sequenceGaps.length,\n\t\t\tfirst_sequence_gap_event_time_ms: first.eventTimeMs,\n\t\t\tlast_sequence_gap_event_time_ms: last.eventTimeMs,\n\t\t};\n\t}\n\n\tprivate sampleBefore(nextEventTimeMs: number): void {\n\t\twhile (\n\t\t\tthis.targetIndex < this.targets.length &&\n\t\t\t(this.targets[this.targetIndex] as number) < nextEventTimeMs\n\t\t) {\n\t\t\tthis.sample(this.targets[this.targetIndex] as number);\n\t\t\tthis.targetIndex += 1;\n\t\t}\n\t}\n\n\tprivate sample(targetTimeMs: number): void {\n\t\tconst state = this.state;\n\t\tthis.clockObservations.push({\n\t\t\ttargetTimeMs,\n\t\t\t...(state\n\t\t\t\t? {\n\t\t\t\t\t\tsourceTimeMs: state.sourceTimeMs,\n\t\t\t\t\t\tasofLagMs: Math.abs(targetTimeMs - state.sourceTimeMs),\n\t\t\t\t\t}\n\t\t\t\t: {}),\n\t\t});\n\t\tif (\n\t\t\t!state ||\n\t\t\tstate.sourceTimeMs > targetTimeMs ||\n\t\t\ttargetTimeMs - state.sourceTimeMs > this.request.maxPriorAsOfLagMs\n\t\t) {\n\t\t\tthis.observe({\n\t\t\t\ttype: \"required_clock_sample\",\n\t\t\t\ttarget_time_ms: targetTimeMs,\n\t\t\t\tsource_time_ms: state?.sourceTimeMs ?? null,\n\t\t\t\tlag_ms: state ? Math.abs(targetTimeMs - state.sourceTimeMs) : null,\n\t\t\t\tstatus: !state\n\t\t\t\t\t? \"unanchored\"\n\t\t\t\t\t: state.sourceTimeMs > targetTimeMs\n\t\t\t\t\t\t? \"future\"\n\t\t\t\t\t\t: \"stale\",\n\t\t\t\tobject: state ? this.objectEvidence(state) : null,\n\t\t\t});\n\t\t\tthis.missingSamples.push({\n\t\t\t\ttargetTimeMs,\n\t\t\t\t...(state\n\t\t\t\t\t? {\n\t\t\t\t\t\t\tsourceTimeMs: state.sourceTimeMs,\n\t\t\t\t\t\t\tasofLagMs: Math.abs(targetTimeMs - state.sourceTimeMs),\n\t\t\t\t\t\t}\n\t\t\t\t\t: {}),\n\t\t\t});\n\t\t\treturn;\n\t\t}\n\t\tthis.observe({\n\t\t\ttype: \"required_clock_sample\",\n\t\t\ttarget_time_ms: targetTimeMs,\n\t\t\tsource_time_ms: state.sourceTimeMs,\n\t\t\tlag_ms: targetTimeMs - state.sourceTimeMs,\n\t\t\tstatus: \"covered\",\n\t\t\tobject: this.objectEvidence(state),\n\t\t});\n\t\tconst bids = sortedSide(state.bids, \"bid\").slice(0, this.request.depth);\n\t\tconst asks = sortedSide(state.asks, \"ask\").slice(0, this.request.depth);\n\t\tif (bids.length === 0 || asks.length === 0) {\n\t\t\tthrow new CryptoHftDataError(\"book_side_missing\");\n\t\t}\n\t\tif ((bids[0]?.[0] as number) >= (asks[0]?.[0] as number)) {\n\t\t\tthrow new CryptoHftDataError(\"book_crossed_or_locked\");\n\t\t}\n\t\tthis.samples.push({\n\t\t\ttargetTimeMs,\n\t\t\tsourceTimeMs: state.sourceTimeMs,\n\t\t\treceivedTimeMs: state.receivedTimeMs,\n\t\t\tsequence: state.sequence,\n\t\t\tbids,\n\t\t\tasks,\n\t\t\tdatasetObjectIdentity: state.datasetObjectIdentity,\n\t\t\tdatasetObjectChecksum: state.datasetObjectChecksum,\n\t\t});\n\t}\n\n\tprivate applySnapshot(group: ReturnType<typeof validatedRow>[]): void {\n\t\tconst first = group[0] as ReturnType<typeof validatedRow>;\n\t\tconst reanchored = this.state === undefined && this.sequenceGaps.length > 0;\n\t\tconst sequence = snapshotSequence(first, this.profile);\n\t\tif (group.some((row) => snapshotSequence(row, this.profile) !== sequence)) {\n\t\t\tthrow new CryptoHftDataError(\"ambiguous_snapshot_group\");\n\t\t}\n\t\tif (\n\t\t\tthis.profile.sequenceSemantics === \"binance_u_U_pu\" &&\n\t\t\tthis.previousFinalUpdateId !== undefined &&\n\t\t\tBigInt(sequence) < this.previousFinalUpdateId\n\t\t) {\n\t\t\tthrow new CryptoHftDataError(\"snapshot_sequence_regression\");\n\t\t}\n\t\tthis.state = {\n\t\t\tbids: new Map(),\n\t\t\tasks: new Map(),\n\t\t\tsequence,\n\t\t\tsourceTimeMs: first.eventTimeMs,\n\t\t\treceivedTimeMs: Math.max(...group.map((row) => row.receivedTimeMs)),\n\t\t\tdatasetObjectIdentity: first.dataset_object_identity,\n\t\t\tdatasetObjectChecksum: first.dataset_object_checksum,\n\t\t};\n\t\tapplyRows(this.state, group);\n\t\tthis.previousFinalUpdateId = BigInt(sequence);\n\t\tthis.observe({\n\t\t\ttype: reanchored ? \"reanchor\" : \"snapshot_anchor\",\n\t\t\tanchor: {\n\t\t\t\tevent_time_ms: first.eventTimeMs,\n\t\t\t\tsequence,\n\t\t\t\tobject_identity: first.dataset_object_identity,\n\t\t\t\tobject_checksum: first.dataset_object_checksum,\n\t\t\t},\n\t\t});\n\t}\n\n\tprivate applyUpdate(group: ReturnType<typeof validatedRow>[]): void {\n\t\tconst first = group[0] as ReturnType<typeof validatedRow>;\n\t\tconst state = this.state as BookState;\n\t\tconst previousFinalUpdateId = this.previousFinalUpdateId as bigint;\n\t\tconst finalUpdate = BigInt(\n\t\t\tunsignedString(first.final_update_id, \"final_update_id\", true) as string,\n\t\t);\n\t\tif (this.profile.sequenceSemantics === \"okx_seq_id_prev_seq_id\") {\n\t\t\tif (\n\t\t\t\t!absent(first.first_update_id) ||\n\t\t\t\t!absent(first.prev_final_update_id)\n\t\t\t) {\n\t\t\t\tthrow new CryptoHftDataError(\"ambiguous_update_group\");\n\t\t\t}\n\t\t\tconst previous = unsignedString(\n\t\t\t\tfirst.last_update_id,\n\t\t\t\t\"last_update_id\",\n\t\t\t\ttrue,\n\t\t\t) as string;\n\t\t\tif (\n\t\t\t\tgroup.some(\n\t\t\t\t\t(row) =>\n\t\t\t\t\t\t!absent(row.first_update_id) ||\n\t\t\t\t\t\t!absent(row.prev_final_update_id) ||\n\t\t\t\t\t\tunsignedString(row.final_update_id, \"final_update_id\", true) !==\n\t\t\t\t\t\t\tfinalUpdate.toString() ||\n\t\t\t\t\t\tunsignedString(row.last_update_id, \"last_update_id\", true) !==\n\t\t\t\t\t\t\tprevious,\n\t\t\t\t)\n\t\t\t) {\n\t\t\t\tthrow new CryptoHftDataError(\"ambiguous_update_group\");\n\t\t\t}\n\t\t\tif (BigInt(previous) !== previousFinalUpdateId) {\n\t\t\t\tthis.observe({\n\t\t\t\t\ttype: \"sequence_discontinuity\",\n\t\t\t\t\tsequence: {\n\t\t\t\t\t\texpected_previous: previousFinalUpdateId.toString(),\n\t\t\t\t\t\tobserved_previous: previous,\n\t\t\t\t\t\tobserved_final: finalUpdate.toString(),\n\t\t\t\t\t\tevent_time_ms: first.eventTimeMs,\n\t\t\t\t\t},\n\t\t\t\t\tobject: {\n\t\t\t\t\t\tidentity: first.dataset_object_identity,\n\t\t\t\t\t\tchecksums: [first.dataset_object_checksum],\n\t\t\t\t\t\tattempt_count: 1,\n\t\t\t\t\t\tquarantined: false,\n\t\t\t\t\t},\n\t\t\t\t});\n\t\t\t\tthis.observe({\n\t\t\t\t\ttype: \"invalidation\",\n\t\t\t\t\tevent_time_ms: first.eventTimeMs,\n\t\t\t\t\treason: \"update_chain_gap\",\n\t\t\t\t});\n\t\t\t\tthis.sequenceGaps.push({\n\t\t\t\t\teventTimeMs: first.eventTimeMs,\n\t\t\t\t\texpectedPreviousSequence: previousFinalUpdateId.toString(),\n\t\t\t\t\tobservedPreviousSequence: previous,\n\t\t\t\t\tobservedFinalSequence: finalUpdate.toString(),\n\t\t\t\t});\n\t\t\t\tthis.state = undefined;\n\t\t\t\tthis.previousFinalUpdateId = undefined;\n\t\t\t\treturn;\n\t\t\t}\n\t\t} else {\n\t\t\tconst firstUpdate = BigInt(\n\t\t\t\tunsignedString(\n\t\t\t\t\tfirst.first_update_id,\n\t\t\t\t\t\"first_update_id\",\n\t\t\t\t\ttrue,\n\t\t\t\t) as string,\n\t\t\t);\n\t\t\tconst previous = unsignedString(\n\t\t\t\tfirst.prev_final_update_id,\n\t\t\t\t\"prev_final_update_id\",\n\t\t\t);\n\t\t\tif (\n\t\t\t\tgroup.some(\n\t\t\t\t\t(row) =>\n\t\t\t\t\t\tunsignedString(row.first_update_id, \"first_update_id\", true) !==\n\t\t\t\t\t\t\tfirstUpdate.toString() ||\n\t\t\t\t\t\tunsignedString(row.final_update_id, \"final_update_id\", true) !==\n\t\t\t\t\t\t\tfinalUpdate.toString() ||\n\t\t\t\t\t\tunsignedString(row.prev_final_update_id, \"prev_final_update_id\") !==\n\t\t\t\t\t\t\tprevious,\n\t\t\t\t)\n\t\t\t) {\n\t\t\t\tthrow new CryptoHftDataError(\"ambiguous_update_group\");\n\t\t\t}\n\t\t\tconst expected = previousFinalUpdateId + 1n;\n\t\t\tif (\n\t\t\t\tfirstUpdate > expected ||\n\t\t\t\tfinalUpdate < expected ||\n\t\t\t\t(previous !== undefined && BigInt(previous) !== previousFinalUpdateId)\n\t\t\t) {\n\t\t\t\tthrow new CryptoHftDataError(\"update_chain_gap\");\n\t\t\t}\n\t\t}\n\t\tapplyRows(state, group);\n\t\tstate.sequence = finalUpdate.toString();\n\t\tstate.sourceTimeMs = first.eventTimeMs;\n\t\tstate.receivedTimeMs = Math.max(...group.map((row) => row.receivedTimeMs));\n\t\tstate.datasetObjectIdentity = first.dataset_object_identity;\n\t\tstate.datasetObjectChecksum = first.dataset_object_checksum;\n\t\tthis.previousFinalUpdateId = finalUpdate;\n\t}\n}\n\nexport function reconstructCryptoHftDataOrderBooks(\n\trequest: MarketDataVendorBackfillRequest,\n\tinputRows: readonly CryptoHftDataOrderBookRow[],\n\tprofile: CryptoHftDataCapabilityProfile = CRYPTOHFTDATA_BINANCE_SPOT_BTCUSDT_PROFILE,\n\tobserver?: ReconstructionObservationSink,\n): ReconstructedCryptoHftBook[] {\n\tconst reconstructor = new StreamingBookReconstructor(\n\t\trequest,\n\t\tprofile,\n\t\tobserver,\n\t);\n\treconstructor.push(inputRows);\n\treturn reconstructor.finish();\n}\n\n/**\n * Qualification-only full-window policy-neutral source projection.\n * It uses the production OKX grouping, validation, sequence and mutation path,\n * but continues after the submitted clock is exhausted and emits no Maker\n * policy decisions.\n */\nexport function reconstructCryptoHftDataPolicyNeutralTape(\n\trequest: MarketDataVendorBackfillRequest,\n\tinputRows: readonly CryptoHftDataOrderBookRow[],\n\tprofile: CryptoHftDataCapabilityProfile,\n\tobserver?: ReconstructionObservationSink,\n): PolicyNeutralCryptoHftBookState[] {\n\tif (\n\t\tprofile.sequenceSemantics !== \"okx_seq_id_prev_seq_id\" ||\n\t\trequest.depth !== 100\n\t) {\n\t\tthrow new CryptoHftDataError(\"source_tape_scope_unsupported\");\n\t}\n\tconst reconstructor = new StreamingBookReconstructor(\n\t\trequest,\n\t\tprofile,\n\t\tobserver,\n\t\t{ collectPolicyNeutralTape: true },\n\t);\n\treconstructor.push(inputRows);\n\treturn reconstructor.finishPolicyNeutralTape();\n}\n\nfunction sha256Bytes(bytes: Uint8Array): string {\n\treturn createHash(\"sha256\").update(bytes).digest(\"hex\");\n}\n\nexport async function decodeCryptoHftParquetZstd(\n\tbytes: Uint8Array,\n): Promise<Record<string, unknown>[]> {\n\tconst parquet = decompress(bytes);\n\tconst buffer = parquet.buffer.slice(\n\t\tparquet.byteOffset,\n\t\tparquet.byteOffset + parquet.byteLength,\n\t) as ArrayBuffer;\n\treturn parquetReadObjects({ file: buffer });\n}\n\nexport type CryptoHftDataAdapterOptions = {\n\tbaseUrl?: string;\n\tfetch?: typeof fetch;\n\tnowMs?: () => number;\n\tdecode?: (bytes: Uint8Array) => Promise<Record<string, unknown>[]>;\n\tprofiles?: readonly CryptoHftDataCapabilityProfile[];\n\tobserver?: ReconstructionObservationSink;\n\tpolicyNeutralTapeSink?: PolicyNeutralTapeSink;\n};\n\nfunction parsedDatasetRow(\n\tvalue: Record<string, unknown>,\n\tobject: ProviderObjectEvidence,\n): CryptoHftDataOrderBookRow {\n\treturn {\n\t\treceived_time: value.received_time as string | number | bigint,\n\t\tevent_time: value.event_time as string | number | bigint,\n\t\ttransaction_time: value.transaction_time as\n\t\t\t| string\n\t\t\t| number\n\t\t\t| bigint\n\t\t\t| null\n\t\t\t| undefined,\n\t\tsymbol: value.symbol as string,\n\t\tevent_type: value.event_type as \"snapshot\" | \"update\",\n\t\tfirst_update_id: value.first_update_id as\n\t\t\t| string\n\t\t\t| number\n\t\t\t| bigint\n\t\t\t| null\n\t\t\t| undefined,\n\t\tfinal_update_id: value.final_update_id as\n\t\t\t| string\n\t\t\t| number\n\t\t\t| bigint\n\t\t\t| null\n\t\t\t| undefined,\n\t\tprev_final_update_id: value.prev_final_update_id as\n\t\t\t| string\n\t\t\t| number\n\t\t\t| bigint\n\t\t\t| null\n\t\t\t| undefined,\n\t\tlast_update_id: value.last_update_id as\n\t\t\t| string\n\t\t\t| number\n\t\t\t| bigint\n\t\t\t| null\n\t\t\t| undefined,\n\t\tside: value.side as \"bid\" | \"ask\",\n\t\tprice: value.price as string,\n\t\tquantity: value.quantity as string,\n\t\torder_count: value.order_count as\n\t\t\t| string\n\t\t\t| number\n\t\t\t| bigint\n\t\t\t| null\n\t\t\t| undefined,\n\t\tdataset_object_identity: object.identity,\n\t\tdataset_object_checksum: object.checksum,\n\t};\n}\n\nasync function readBoundedObject(\n\tresponse: Response,\n\tremainingBytes: number,\n): Promise<Uint8Array> {\n\tif (!response.body) return new Uint8Array();\n\tconst reader = response.body.getReader();\n\tconst chunks: Uint8Array[] = [];\n\tlet total = 0;\n\twhile (true) {\n\t\tconst { done, value } = await reader.read();\n\t\tif (done) break;\n\t\ttotal += value.byteLength;\n\t\tif (total > remainingBytes) {\n\t\t\tawait reader.cancel();\n\t\t\tthrow new CryptoHftDataError(\"budget_max_bytes_exceeded\");\n\t\t}\n\t\tchunks.push(value);\n\t}\n\tconst bytes = new Uint8Array(total);\n\tlet offset = 0;\n\tfor (const chunk of chunks) {\n\t\tbytes.set(chunk, offset);\n\t\toffset += chunk.byteLength;\n\t}\n\treturn bytes;\n}\n\nexport class CryptoHftDataAdapter {\n\tprivate readonly baseUrl: string;\n\tprivate readonly request: typeof fetch;\n\tprivate readonly nowMs: () => number;\n\tprivate readonly decode: (\n\t\tbytes: Uint8Array,\n\t) => Promise<Record<string, unknown>[]>;\n\tprivate readonly profiles: readonly CryptoHftDataCapabilityProfile[];\n\tprivate readonly observer?: ReconstructionObservationSink;\n\tprivate readonly collectPolicyNeutralTape: boolean;\n\tprivate readonly policyNeutralTapeSink?: PolicyNeutralTapeSink;\n\n\tconstructor(options: CryptoHftDataAdapterOptions = {}) {\n\t\tthis.baseUrl = options.baseUrl ?? CRYPTOHFTDATA_API_URL;\n\t\tthis.request = options.fetch ?? fetch;\n\t\tthis.nowMs = options.nowMs ?? Date.now;\n\t\tthis.decode = options.decode ?? decodeCryptoHftParquetZstd;\n\t\tthis.profiles = options.profiles ?? [];\n\t\tthis.observer = options.observer;\n\t\tthis.policyNeutralTapeSink = options.policyNeutralTapeSink;\n\t\tthis.collectPolicyNeutralTape = options.policyNeutralTapeSink !== undefined;\n\t}\n\n\tprivate observe(observation: ReconstructionObservation): void {\n\t\ttry {\n\t\t\tthis.observer?.observe(observation);\n\t\t} catch {\n\t\t\t// Evidence collection cannot alter acquisition or reconstruction.\n\t\t}\n\t}\n\n\tcapabilityFor(\n\t\trequest: MarketDataVendorBackfillRequest,\n\t): ProviderCapability | undefined {\n\t\treturn cryptoHftDataCapabilityFor(request, this.profiles);\n\t}\n\n\tprivate findProfile(\n\t\trequest: MarketDataVendorBackfillRequest,\n\t\tcapability: ProviderCapability,\n\t): CryptoHftDataCapabilityProfile | undefined {\n\t\treturn this.profiles.find(\n\t\t\t(candidate) =>\n\t\t\t\tcandidate.exchange === request.scope.exchange.trim().toLowerCase() &&\n\t\t\t\tcandidate.tradingPair === request.scope.tradingPair &&\n\t\t\t\tcandidate.sourceSymbol === request.scope.sourceSymbol &&\n\t\t\t\tcandidate.marketType === request.scope.marketType &&\n\t\t\t\tcandidate.providerExchangeId === capability.providerExchangeId,\n\t\t);\n\t}\n\n\tprivate profileFor(\n\t\trequest: MarketDataVendorBackfillRequest,\n\t\tcapability: ProviderCapability,\n\t): CryptoHftDataCapabilityProfile {\n\t\tconst profile = this.findProfile(request, capability);\n\t\tif (!profile) {\n\t\t\tthrow new CryptoHftDataError(\"profile_semantics_unavailable\");\n\t\t}\n\t\treturn profile;\n\t}\n\n\tasync discoverSymbols(providerExchangeId: string): Promise<string[]> {\n\t\tif (!/^[a-z0-9_]+$/.test(providerExchangeId)) {\n\t\t\tthrow new CryptoHftDataError(\"symbol_discovery_exchange_invalid\");\n\t\t}\n\t\tconst endpoint = new URL(\"/symbols\", this.baseUrl);\n\t\tendpoint.searchParams.set(\"exchange\", providerExchangeId);\n\t\tendpoint.searchParams.set(\"data_type\", \"orderbook\");\n\t\tlet response: Response;\n\t\ttry {\n\t\t\tresponse = await this.request(endpoint);\n\t\t} catch {\n\t\t\tthrow new CryptoHftDataError(\"symbol_discovery_failed\");\n\t\t}\n\t\tif (!response.ok) {\n\t\t\tthrow new CryptoHftDataError(\"symbol_discovery_failed\");\n\t\t}\n\t\tlet body: unknown;\n\t\ttry {\n\t\t\tbody = await response.json();\n\t\t} catch {\n\t\t\tthrow new CryptoHftDataError(\"symbol_discovery_response_invalid\");\n\t\t}\n\t\tconst record = body as Record<string, unknown>;\n\t\tif (\n\t\t\t!body ||\n\t\t\ttypeof body !== \"object\" ||\n\t\t\tArray.isArray(body) ||\n\t\t\tString(record.exchange).toLowerCase() !== providerExchangeId ||\n\t\t\tString(record.data_type).toLowerCase() !== \"orderbook\" ||\n\t\t\t!Array.isArray(record.symbols) ||\n\t\t\t!record.symbols.every(\n\t\t\t\t(symbol) => typeof symbol === \"string\" && /^[A-Z0-9_-]+$/.test(symbol),\n\t\t\t)\n\t\t) {\n\t\t\tthrow new CryptoHftDataError(\"symbol_discovery_response_invalid\");\n\t\t}\n\t\treturn [...new Set(record.symbols as string[])].sort();\n\t}\n\n\tasync acquire(\n\t\trequest: MarketDataVendorBackfillRequest,\n\t\tcapability: ProviderCapability,\n\t\tcredential: unknown,\n\t): Promise<ProviderDataset<CryptoHftDataOrderBookRow>> {\n\t\tlet retainedStateCount = 0;\n\t\ttry {\n\t\t\tconst result = await this.acquireInternal(\n\t\t\t\trequest,\n\t\t\t\tcapability,\n\t\t\t\tcredential,\n\t\t\t\t(count) => {\n\t\t\t\t\tretainedStateCount += count;\n\t\t\t\t},\n\t\t\t);\n\t\t\treturn result;\n\t\t} catch (error) {\n\t\t\tif (this.policyNeutralTapeSink) {\n\t\t\t\tconst reason =\n\t\t\t\t\terror instanceof CryptoHftDataError\n\t\t\t\t\t\t? error.reason\n\t\t\t\t\t\t: \"source_tape_acquisition_failed\";\n\t\t\t\tawait this.policyNeutralTapeSink\n\t\t\t\t\t.abort({ reason, retainedStateCount })\n\t\t\t\t\t.catch(() => {});\n\t\t\t}\n\t\t\tthrow error;\n\t\t}\n\t}\n\n\tprivate async acquireInternal(\n\t\trequest: MarketDataVendorBackfillRequest,\n\t\tcapability: ProviderCapability,\n\t\tcredential: unknown,\n\t\tonTapeStatesWritten: (count: number) => void,\n\t): Promise<ProviderDataset<CryptoHftDataOrderBookRow>> {\n\t\tconst profile = this.findProfile(request, capability);\n\t\tconst apiKey =\n\t\t\tcredential && typeof credential === \"object\"\n\t\t\t\t? (credential as { apiKey?: unknown }).apiKey\n\t\t\t\t: undefined;\n\t\tif (typeof apiKey !== \"string\" || apiKey.length === 0) {\n\t\t\tthrow new CryptoHftDataError(\"credentials_invalid\");\n\t\t}\n\t\tif (\n\t\t\tthis.collectPolicyNeutralTape &&\n\t\t\t(profile?.sequenceSemantics !== \"okx_seq_id_prev_seq_id\" ||\n\t\t\t\trequest.depth !== 100)\n\t\t) {\n\t\t\tthrow new CryptoHftDataError(\"source_tape_scope_unsupported\");\n\t\t}\n\t\tconst paths = this.policyNeutralTapeSink\n\t\t\t? enumerateCryptoHftDataWindowObjects(\n\t\t\t\t\trequest,\n\t\t\t\t\tcapability.providerExchangeId,\n\t\t\t\t\tcapability.resolvedSymbol,\n\t\t\t\t)\n\t\t\t: enumerateCryptoHftDataObjects(\n\t\t\t\t\trequest,\n\t\t\t\t\tcapability.providerExchangeId,\n\t\t\t\t\tcapability.resolvedSymbol,\n\t\t\t\t);\n\t\tif (paths.length > request.budgets.maxFiles) {\n\t\t\tthrow new CryptoHftDataError(\"budget_max_files_exceeded\");\n\t\t}\n\t\tconst started = this.nowMs();\n\t\tconst tokenResponse = await this.request(`${this.baseUrl}/jwt-token`, {\n\t\t\tmethod: \"POST\",\n\t\t\theaders: { \"content-type\": \"application/json\", \"X-API-Key\": apiKey },\n\t\t});\n\t\tif (!tokenResponse.ok) throw new CryptoHftDataError(\"jwt_issuance_failed\");\n\t\tconst tokenBody = (await tokenResponse.json()) as { jwt_token?: unknown };\n\t\tif (typeof tokenBody.jwt_token !== \"string\" || !tokenBody.jwt_token) {\n\t\t\tthrow new CryptoHftDataError(\"jwt_response_invalid\");\n\t\t}\n\n\t\tlet totalBytes = 0;\n\t\tlet totalRows = 0;\n\t\tlet emittedTapeStateCount = 0;\n\t\tconst objects: ProviderObjectEvidence[] = [];\n\t\tconst rows: CryptoHftDataOrderBookRow[] = [];\n\t\tconst reconstructor =\n\t\t\tprofile?.sequenceSemantics === \"okx_seq_id_prev_seq_id\"\n\t\t\t\t? new StreamingBookReconstructor(request, profile, this.observer, {\n\t\t\t\t\t\tcollectPolicyNeutralTape: this.collectPolicyNeutralTape,\n\t\t\t\t\t})\n\t\t\t\t: undefined;\n\t\tconst semanticHash = createHash(\"sha256\");\n\t\tlet firstSemanticRow = true;\n\t\tsemanticHash.update(\"[\");\n\t\tfor (const path of paths) {\n\t\t\tconst endpoint = new URL(\"/download\", this.baseUrl);\n\t\t\tendpoint.searchParams.set(\"file\", path);\n\t\t\tlet accepted:\n\t\t\t\t| {\n\t\t\t\t\t\tobject: ProviderObjectEvidence;\n\t\t\t\t\t\tparsedRows: CryptoHftDataOrderBookRow[];\n\t\t\t\t }\n\t\t\t\t| undefined;\n\t\t\tlet observedChecksum: string | undefined;\n\t\t\tfor (\n\t\t\t\tlet attempt = 1;\n\t\t\t\tattempt <= PROVIDER_OBJECT_MAX_ATTEMPTS;\n\t\t\t\tattempt += 1\n\t\t\t) {\n\t\t\t\tif (this.nowMs() - started > request.budgets.maxDurationMs) {\n\t\t\t\t\tthrow new CryptoHftDataError(\"budget_max_duration_exceeded\");\n\t\t\t\t}\n\t\t\t\ttry {\n\t\t\t\t\tlet response: Response;\n\t\t\t\t\ttry {\n\t\t\t\t\t\tresponse = await this.request(endpoint, {\n\t\t\t\t\t\t\theaders: { Authorization: `Bearer ${tokenBody.jwt_token}` },\n\t\t\t\t\t\t});\n\t\t\t\t\t} catch (error) {\n\t\t\t\t\t\tthrow providerObjectFailure(\n\t\t\t\t\t\t\terror,\n\t\t\t\t\t\t\t\"provider_object_request_failed\",\n\t\t\t\t\t\t\tpath,\n\t\t\t\t\t\t\t\"request\",\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t\tif (!response.ok) {\n\t\t\t\t\t\tthrow providerObjectFailure(\n\t\t\t\t\t\t\tnew CryptoHftDataError(\"object_download_failed\"),\n\t\t\t\t\t\t\t\"object_download_failed\",\n\t\t\t\t\t\t\tpath,\n\t\t\t\t\t\t\t\"request\",\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t\tconst declaredBytes = Number(response.headers.get(\"content-length\"));\n\t\t\t\t\tif (\n\t\t\t\t\t\tNumber.isFinite(declaredBytes) &&\n\t\t\t\t\t\ttotalBytes + declaredBytes > request.budgets.maxBytes\n\t\t\t\t\t) {\n\t\t\t\t\t\tthrow new CryptoHftDataError(\"budget_max_bytes_exceeded\");\n\t\t\t\t\t}\n\t\t\t\t\tlet bytes: Uint8Array;\n\t\t\t\t\ttry {\n\t\t\t\t\t\tbytes = await readBoundedObject(\n\t\t\t\t\t\t\tresponse,\n\t\t\t\t\t\t\trequest.budgets.maxBytes - totalBytes,\n\t\t\t\t\t\t);\n\t\t\t\t\t} catch (error) {\n\t\t\t\t\t\tthrow providerObjectFailure(\n\t\t\t\t\t\t\terror,\n\t\t\t\t\t\t\t\"provider_object_read_failed\",\n\t\t\t\t\t\t\tpath,\n\t\t\t\t\t\t\t\"read\",\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t\ttotalBytes += bytes.byteLength;\n\t\t\t\t\tif (totalBytes > request.budgets.maxBytes) {\n\t\t\t\t\t\tthrow new CryptoHftDataError(\"budget_max_bytes_exceeded\");\n\t\t\t\t\t}\n\t\t\t\t\tconst checksum = sha256Bytes(bytes);\n\t\t\t\t\tif (observedChecksum && observedChecksum !== checksum) {\n\t\t\t\t\t\tthis.observe({\n\t\t\t\t\t\t\ttype: \"provider_object_checksum_conflict\",\n\t\t\t\t\t\t\tobject: {\n\t\t\t\t\t\t\t\tidentity: path,\n\t\t\t\t\t\t\t\tchecksums: [observedChecksum, checksum].sort(),\n\t\t\t\t\t\t\t\tattempt_count: attempt,\n\t\t\t\t\t\t\t\tquarantined: true,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\taffected_target_times_ms: request.requiredClockTargetsMs,\n\t\t\t\t\t\t});\n\t\t\t\t\t\tthrow new CryptoHftDataError(\"provider_object_checksum_conflict\", {\n\t\t\t\t\t\t\tdataset_object_identity: path,\n\t\t\t\t\t\t\tfailure_phase: \"checksum\",\n\t\t\t\t\t\t\tattempt_count: attempt,\n\t\t\t\t\t\t\tquarantined: true,\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t\tobservedChecksum = checksum;\n\t\t\t\t\tlet decoded: Record<string, unknown>[];\n\t\t\t\t\ttry {\n\t\t\t\t\t\tdecoded = await this.decode(bytes);\n\t\t\t\t\t} catch (error) {\n\t\t\t\t\t\tthrow providerObjectFailure(\n\t\t\t\t\t\t\terror,\n\t\t\t\t\t\t\t\"provider_object_decode_failed\",\n\t\t\t\t\t\t\tpath,\n\t\t\t\t\t\t\t\"decode\",\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t\tif (totalRows + decoded.length > request.budgets.maxRows) {\n\t\t\t\t\t\tthrow new CryptoHftDataError(\"budget_max_rows_exceeded\");\n\t\t\t\t\t}\n\t\t\t\t\tconst object = {\n\t\t\t\t\t\tidentity: path,\n\t\t\t\t\t\tchecksum,\n\t\t\t\t\t\tbytes: bytes.byteLength,\n\t\t\t\t\t\trows: decoded.length,\n\t\t\t\t\t};\n\t\t\t\t\tconst parsedRows: CryptoHftDataOrderBookRow[] = [];\n\t\t\t\t\ttry {\n\t\t\t\t\t\tfor (const decodedRow of decoded) {\n\t\t\t\t\t\t\tconst parsed = parsedDatasetRow(decodedRow, object);\n\t\t\t\t\t\t\tvalidatedRow(request, parsed);\n\t\t\t\t\t\t\tparsedRows.push(parsed);\n\t\t\t\t\t\t}\n\t\t\t\t\t} catch (error) {\n\t\t\t\t\t\tthrow providerObjectFailure(\n\t\t\t\t\t\t\terror,\n\t\t\t\t\t\t\t\"provider_object_validation_failed\",\n\t\t\t\t\t\t\tpath,\n\t\t\t\t\t\t\t\"validate\",\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t\taccepted = { object, parsedRows };\n\t\t\t\t\tbreak;\n\t\t\t\t} catch (error) {\n\t\t\t\t\tconst failure =\n\t\t\t\t\t\terror instanceof CryptoHftDataError\n\t\t\t\t\t\t\t? error\n\t\t\t\t\t\t\t: providerObjectFailure(\n\t\t\t\t\t\t\t\t\terror,\n\t\t\t\t\t\t\t\t\t\"provider_object_request_failed\",\n\t\t\t\t\t\t\t\t\tpath,\n\t\t\t\t\t\t\t\t\t\"request\",\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\tif (\n\t\t\t\t\t\t!RETRYABLE_PROVIDER_OBJECT_FAILURES.has(failure.reason) ||\n\t\t\t\t\t\tattempt === PROVIDER_OBJECT_MAX_ATTEMPTS\n\t\t\t\t\t) {\n\t\t\t\t\t\tthrow attempt === PROVIDER_OBJECT_MAX_ATTEMPTS &&\n\t\t\t\t\t\t\tRETRYABLE_PROVIDER_OBJECT_FAILURES.has(failure.reason)\n\t\t\t\t\t\t\t? quarantinedProviderObjectFailure(\n\t\t\t\t\t\t\t\t\tfailure,\n\t\t\t\t\t\t\t\t\tattempt,\n\t\t\t\t\t\t\t\t\tobservedChecksum,\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t: failure;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (!accepted) {\n\t\t\t\tthrow new CryptoHftDataError(\"provider_object_acquisition_incomplete\");\n\t\t\t}\n\t\t\ttotalRows += accepted.object.rows;\n\t\t\tobjects.push(accepted.object);\n\t\t\tfor (const parsed of accepted.parsedRows) {\n\t\t\t\tsemanticHash.update(firstSemanticRow ? \"\" : \",\");\n\t\t\t\tsemanticHash.update(canonicalSerialize(parsed));\n\t\t\t\tfirstSemanticRow = false;\n\t\t\t}\n\t\t\tif (reconstructor && this.policyNeutralTapeSink) {\n\t\t\t\tawait reconstructor.pushPolicyNeutralTape(\n\t\t\t\t\taccepted.parsedRows,\n\t\t\t\t\tthis.policyNeutralTapeSink,\n\t\t\t\t\t(written) => {\n\t\t\t\t\t\temittedTapeStateCount += written;\n\t\t\t\t\t\tonTapeStatesWritten(written);\n\t\t\t\t\t},\n\t\t\t\t);\n\t\t\t} else if (reconstructor) {\n\t\t\t\treconstructor.push(accepted.parsedRows);\n\t\t\t} else {\n\t\t\t\trows.push(...accepted.parsedRows);\n\t\t\t}\n\t\t}\n\t\tif (this.nowMs() - started > request.budgets.maxDurationMs) {\n\t\t\tthrow new CryptoHftDataError(\"budget_max_duration_exceeded\");\n\t\t}\n\t\tsemanticHash.update(\"]\");\n\t\tconst reconstructedBooks = reconstructor?.finish();\n\t\tlet policyNeutralTape: PolicyNeutralCryptoHftBookState[] | undefined;\n\t\tif (this.policyNeutralTapeSink && reconstructor) {\n\t\t\tawait reconstructor.finishPolicyNeutralTapeToSink(\n\t\t\t\tthis.policyNeutralTapeSink,\n\t\t\t\t(written) => {\n\t\t\t\t\temittedTapeStateCount += written;\n\t\t\t\t\tonTapeStatesWritten(written);\n\t\t\t\t},\n\t\t\t);\n\t\t} else if (this.collectPolicyNeutralTape) {\n\t\t\tpolicyNeutralTape = reconstructor?.finishPolicyNeutralTape();\n\t\t}\n\t\tif (this.policyNeutralTapeSink) {\n\t\t\tawait this.policyNeutralTapeSink.complete({\n\t\t\t\texpectedObjectIdentities: paths,\n\t\t\t\tobservedObjects: objects,\n\t\t\t\tstateCount: emittedTapeStateCount,\n\t\t\t});\n\t\t}\n\t\treturn {\n\t\t\tobjects,\n\t\t\trows,\n\t\t\treconstructedBooks,\n\t\t\t...(policyNeutralTape && !this.policyNeutralTapeSink\n\t\t\t\t? { policyNeutralTape }\n\t\t\t\t: {}),\n\t\t\tvendorSemanticDigest: semanticHash.digest(\"hex\"),\n\t\t};\n\t}\n\n\tasync normalize(\n\t\trequest: MarketDataVendorBackfillRequest,\n\t\tcapability: ProviderCapability,\n\t\tdataset: ProviderDataset,\n\t\tcaptureBundleId: string,\n\t): Promise<NormalizedBackfill> {\n\t\tconst profile = this.profileFor(request, capability);\n\t\tconst samples = dataset.reconstructedBooks\n\t\t\t? (dataset.reconstructedBooks as ReconstructedCryptoHftBook[])\n\t\t\t: reconstructCryptoHftDataOrderBooks(\n\t\t\t\t\trequest,\n\t\t\t\t\tdataset.rows as CryptoHftDataOrderBookRow[],\n\t\t\t\t\tprofile,\n\t\t\t\t);\n\t\tconst context: MarketCaptureContext = {\n\t\t\tsource: EXTERNAL_BACKFILL_SOURCE,\n\t\t\tdeploymentId: \"market-data-vendor-backfill\",\n\t\t\tcaptureBundleId,\n\t\t\texchange: request.scope.exchange,\n\t\t\tsymbol: request.scope.tradingPair,\n\t\t\ttradingPair: request.scope.tradingPair,\n\t\t\tsourceSymbol: request.scope.sourceSymbol,\n\t\t\tassetType: request.scope.marketType,\n\t\t\tfeed: \"ORDERBOOK\",\n\t\t\tprovider: \"cryptohftdata\",\n\t\t\tsourceMode: HISTORICAL_VENDOR_SOURCE_MODE,\n\t\t\tschemaVersion: MARKET_CAPTURE_SCHEMA_VERSION,\n\t\t\tchecksumAlgorithm: CHECKSUM_ALGORITHM,\n\t\t\tprovenanceComplete: true,\n\t\t};\n\t\tconst rows = samples.flatMap((sample) => {\n\t\t\tconst rawCapture: RawCapture = {\n\t\t\t\trawCaptureId: sha256Canonical({\n\t\t\t\t\tcapture_bundle_id: captureBundleId,\n\t\t\t\t\tdataset_object_identity: sample.datasetObjectIdentity,\n\t\t\t\t\tdataset_object_checksum: sample.datasetObjectChecksum,\n\t\t\t\t\tsource_time_ms: sample.sourceTimeMs,\n\t\t\t\t\ttarget_time_ms: sample.targetTimeMs,\n\t\t\t\t}),\n\t\t\t\trawCaptureScope: VENDOR_DATASET_RAW_CAPTURE_SCOPE,\n\t\t\t\trawChecksum: sample.datasetObjectChecksum,\n\t\t\t\tredactedPayload: {\n\t\t\t\t\tdataset_object_identity: sample.datasetObjectIdentity,\n\t\t\t\t\tdataset_object_checksum: sample.datasetObjectChecksum,\n\t\t\t\t},\n\t\t\t\teventTimeMs: sample.sourceTimeMs,\n\t\t\t\treceivedTimeMs: sample.receivedTimeMs,\n\t\t\t\tchecksumAlgorithm: CHECKSUM_ALGORITHM,\n\t\t\t};\n\t\t\tlet canonical: ReturnType<typeof buildCanonicalOrderBookRows>;\n\t\t\ttry {\n\t\t\t\tcanonical = buildCanonicalOrderBookRows({\n\t\t\t\t\tcontext,\n\t\t\t\t\trawCapture,\n\t\t\t\t\tdepthLimit: request.depth,\n\t\t\t\t\tconstructionMode: request.constructionMode,\n\t\t\t\t\tsnapshot: {\n\t\t\t\t\t\tbids: sample.bids,\n\t\t\t\t\t\tasks: sample.asks,\n\t\t\t\t\t\ttimestamp: sample.sourceTimeMs,\n\t\t\t\t\t\treceivedTimestamp: sample.receivedTimeMs,\n\t\t\t\t\t\texchange: request.scope.exchange,\n\t\t\t\t\t\tsymbol: request.scope.tradingPair,\n\t\t\t\t\t\tdepthLimit: request.depth,\n\t\t\t\t\t\tsequence: sample.sequence,\n\t\t\t\t\t},\n\t\t\t\t});\n\t\t\t} catch (error) {\n\t\t\t\tconst diagnostics = {\n\t\t\t\t\ttarget_time_ms: sample.targetTimeMs,\n\t\t\t\t\tsource_time_ms: sample.sourceTimeMs,\n\t\t\t\t\tdataset_object_identity: sample.datasetObjectIdentity,\n\t\t\t\t\tfailure_phase: \"normalize\",\n\t\t\t\t};\n\t\t\t\tif (error instanceof OrderBookValidationError) {\n\t\t\t\t\tthrow new CryptoHftDataError(\"canonical_orderbook_invalid\", {\n\t\t\t\t\t\t...diagnostics,\n\t\t\t\t\t\tvalidation_reason: error.reason,\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\tthrow new CryptoHftDataError(\n\t\t\t\t\t\"canonical_normalization_failed\",\n\t\t\t\t\tdiagnostics,\n\t\t\t\t);\n\t\t\t}\n\t\t\treturn [...canonical.levels, canonical.summary];\n\t\t}) as BackfillArchiveRow[];\n\t\treturn {\n\t\t\tcaptureBundleId,\n\t\t\tobjects: dataset.objects,\n\t\t\trows,\n\t\t\tvendorSemanticDigest: dataset.vendorSemanticDigest,\n\t\t\tcanonicalSemanticDigest: semanticDigest(rows),\n\t\t};\n\t}\n}\n",
231
+ "// Some numerical data is initialized as -1 even when it doesn't need initialization to help the JIT infer types\n// aliases for shorter compressed code (most minifers don't do this)\nvar ab = ArrayBuffer, u8 = Uint8Array, u16 = Uint16Array, i16 = Int16Array, u32 = Uint32Array, i32 = Int32Array;\nvar slc = function (v, s, e) {\n if (u8.prototype.slice)\n return u8.prototype.slice.call(v, s, e);\n if (s == null || s < 0)\n s = 0;\n if (e == null || e > v.length)\n e = v.length;\n var n = new u8(e - s);\n n.set(v.subarray(s, e));\n return n;\n};\nvar fill = function (v, n, s, e) {\n if (u8.prototype.fill)\n return u8.prototype.fill.call(v, n, s, e);\n if (s == null || s < 0)\n s = 0;\n if (e == null || e > v.length)\n e = v.length;\n for (; s < e; ++s)\n v[s] = n;\n return v;\n};\nvar cpw = function (v, t, s, e) {\n if (u8.prototype.copyWithin)\n return u8.prototype.copyWithin.call(v, t, s, e);\n if (s == null || s < 0)\n s = 0;\n if (e == null || e > v.length)\n e = v.length;\n while (s < e) {\n v[t++] = v[s++];\n }\n};\n/**\n * Codes for errors generated within this library\n */\nexport var ZstdErrorCode = {\n InvalidData: 0,\n WindowSizeTooLarge: 1,\n InvalidBlockType: 2,\n FSEAccuracyTooHigh: 3,\n DistanceTooFarBack: 4,\n UnexpectedEOF: 5\n};\n// error codes\nvar ec = [\n 'invalid zstd data',\n 'window size too large (>2046MB)',\n 'invalid block type',\n 'FSE accuracy too high',\n 'match distance too far back',\n 'unexpected EOF'\n];\nvar err = function (ind, msg, nt) {\n var e = new Error(msg || ec[ind]);\n e.code = ind;\n if (Error.captureStackTrace)\n Error.captureStackTrace(e, err);\n if (!nt)\n throw e;\n return e;\n};\nvar rb = function (d, b, n) {\n var i = 0, o = 0;\n for (; i < n; ++i)\n o |= d[b++] << (i << 3);\n return o;\n};\nvar b4 = function (d, b) { return (d[b] | (d[b + 1] << 8) | (d[b + 2] << 16) | (d[b + 3] << 24)) >>> 0; };\n// read Zstandard frame header\nvar rzfh = function (dat, w) {\n var n3 = dat[0] | (dat[1] << 8) | (dat[2] << 16);\n if (n3 == 0x2FB528 && dat[3] == 253) {\n // Zstandard\n var flg = dat[4];\n // single segment checksum dict flag frame content flag\n var ss = (flg >> 5) & 1, cc = (flg >> 2) & 1, df = flg & 3, fcf = flg >> 6;\n if (flg & 8)\n err(0);\n // byte\n var bt = 6 - ss;\n // dict bytes\n var db = df == 3 ? 4 : df;\n // dictionary id\n var di = rb(dat, bt, db);\n bt += db;\n // frame size bytes\n var fsb = fcf ? (1 << fcf) : ss;\n // frame source size\n var fss = rb(dat, bt, fsb) + ((fcf == 1) && 256);\n // window size\n var ws = fss;\n if (!ss) {\n // window descriptor\n var wb = 1 << (10 + (dat[5] >> 3));\n ws = wb + (wb >> 3) * (dat[5] & 7);\n }\n if (ws > 2145386496)\n err(1);\n var buf = new u8((w == 1 ? (fss || ws) : w ? 0 : ws) + 12);\n buf[0] = 1, buf[4] = 4, buf[8] = 8;\n return {\n b: bt + fsb,\n y: 0,\n l: 0,\n d: di,\n w: (w && w != 1) ? w : buf.subarray(12),\n e: ws,\n o: new i32(buf.buffer, 0, 3),\n u: fss,\n c: cc,\n m: Math.min(131072, ws)\n };\n }\n else if (((n3 >> 4) | (dat[3] << 20)) == 0x184D2A5) {\n // skippable\n return b4(dat, 4) + 8;\n }\n err(0);\n};\n// most significant bit for nonzero\nvar msb = function (val) {\n var bits = 0;\n for (; (1 << bits) <= val; ++bits)\n ;\n return bits - 1;\n};\n// read finite state entropy\nvar rfse = function (dat, bt, mal) {\n // table pos\n var tpos = (bt << 3) + 4;\n // accuracy log\n var al = (dat[bt] & 15) + 5;\n if (al > mal)\n err(3);\n // size\n var sz = 1 << al;\n // probabilities symbols repeat index high threshold\n var probs = sz, sym = -1, re = -1, i = -1, ht = sz;\n // optimization: single allocation is much faster\n var buf = new ab(512 + (sz << 2));\n var freq = new i16(buf, 0, 256);\n // same view as freq\n var dstate = new u16(buf, 0, 256);\n var nstate = new u16(buf, 512, sz);\n var bb1 = 512 + (sz << 1);\n var syms = new u8(buf, bb1, sz);\n var nbits = new u8(buf, bb1 + sz);\n while (sym < 255 && probs > 0) {\n var bits = msb(probs + 1);\n var cbt = tpos >> 3;\n // mask\n var msk = (1 << (bits + 1)) - 1;\n var val = ((dat[cbt] | (dat[cbt + 1] << 8) | (dat[cbt + 2] << 16)) >> (tpos & 7)) & msk;\n // mask (1 fewer bit)\n var msk1fb = (1 << bits) - 1;\n // max small value\n var msv = msk - probs - 1;\n // small value\n var sval = val & msk1fb;\n if (sval < msv)\n tpos += bits, val = sval;\n else {\n tpos += bits + 1;\n if (val > msk1fb)\n val -= msv;\n }\n freq[++sym] = --val;\n if (val == -1) {\n probs += val;\n syms[--ht] = sym;\n }\n else\n probs -= val;\n if (!val) {\n do {\n // repeat byte\n var rbt = tpos >> 3;\n re = ((dat[rbt] | (dat[rbt + 1] << 8)) >> (tpos & 7)) & 3;\n tpos += 2;\n sym += re;\n } while (re == 3);\n }\n }\n if (sym > 255 || probs)\n err(0);\n var sympos = 0;\n // sym step (coprime with sz - formula from zstd source)\n var sstep = (sz >> 1) + (sz >> 3) + 3;\n // sym mask\n var smask = sz - 1;\n for (var s = 0; s <= sym; ++s) {\n var sf = freq[s];\n if (sf < 1) {\n dstate[s] = -sf;\n continue;\n }\n // This is split into two loops in zstd to avoid branching, but as JS is higher-level that is unnecessary\n for (i = 0; i < sf; ++i) {\n syms[sympos] = s;\n do {\n sympos = (sympos + sstep) & smask;\n } while (sympos >= ht);\n }\n }\n // After spreading symbols, should be zero again\n if (sympos)\n err(0);\n for (i = 0; i < sz; ++i) {\n // next state\n var ns = dstate[syms[i]]++;\n // num bits\n var nb = nbits[i] = al - msb(ns);\n nstate[i] = (ns << nb) - sz;\n }\n return [(tpos + 7) >> 3, {\n b: al,\n s: syms,\n n: nbits,\n t: nstate\n }];\n};\n// read huffman\nvar rhu = function (dat, bt) {\n // index weight count\n var i = 0, wc = -1;\n // buffer header byte\n var buf = new u8(292), hb = dat[bt];\n // huffman weights\n var hw = buf.subarray(0, 256);\n // rank count\n var rc = buf.subarray(256, 268);\n // rank index\n var ri = new u16(buf.buffer, 268);\n // NOTE: at this point bt is 1 less than expected\n if (hb < 128) {\n // end byte, fse decode table\n var _a = rfse(dat, bt + 1, 6), ebt = _a[0], fdt = _a[1];\n bt += hb;\n var epos = ebt << 3;\n // last byte\n var lb = dat[bt];\n if (!lb)\n err(0);\n // state1 state2 state1 bits state2 bits\n var st1 = 0, st2 = 0, btr1 = fdt.b, btr2 = btr1;\n // fse pos\n // pre-increment to account for original deficit of 1\n var fpos = (++bt << 3) - 8 + msb(lb);\n for (;;) {\n fpos -= btr1;\n if (fpos < epos)\n break;\n var cbt = fpos >> 3;\n st1 += ((dat[cbt] | (dat[cbt + 1] << 8)) >> (fpos & 7)) & ((1 << btr1) - 1);\n hw[++wc] = fdt.s[st1];\n fpos -= btr2;\n if (fpos < epos)\n break;\n cbt = fpos >> 3;\n st2 += ((dat[cbt] | (dat[cbt + 1] << 8)) >> (fpos & 7)) & ((1 << btr2) - 1);\n hw[++wc] = fdt.s[st2];\n btr1 = fdt.n[st1];\n st1 = fdt.t[st1];\n btr2 = fdt.n[st2];\n st2 = fdt.t[st2];\n }\n if (++wc > 255)\n err(0);\n }\n else {\n wc = hb - 127;\n for (; i < wc; i += 2) {\n var byte = dat[++bt];\n hw[i] = byte >> 4;\n hw[i + 1] = byte & 15;\n }\n ++bt;\n }\n // weight exponential sum\n var wes = 0;\n for (i = 0; i < wc; ++i) {\n var wt = hw[i];\n // bits must be at most 11, same as weight\n if (wt > 11)\n err(0);\n wes += wt && (1 << (wt - 1));\n }\n // max bits\n var mb = msb(wes) + 1;\n // table size\n var ts = 1 << mb;\n // remaining sum\n var rem = ts - wes;\n // must be power of 2\n if (rem & (rem - 1))\n err(0);\n hw[wc++] = msb(rem) + 1;\n for (i = 0; i < wc; ++i) {\n var wt = hw[i];\n ++rc[hw[i] = wt && (mb + 1 - wt)];\n }\n // huf buf\n var hbuf = new u8(ts << 1);\n // symbols num bits\n var syms = hbuf.subarray(0, ts), nb = hbuf.subarray(ts);\n ri[mb] = 0;\n for (i = mb; i > 0; --i) {\n var pv = ri[i];\n fill(nb, i, pv, ri[i - 1] = pv + rc[i] * (1 << (mb - i)));\n }\n if (ri[0] != ts)\n err(0);\n for (i = 0; i < wc; ++i) {\n var bits = hw[i];\n if (bits) {\n var code = ri[bits];\n fill(syms, i, code, ri[bits] = code + (1 << (mb - bits)));\n }\n }\n return [bt, {\n n: nb,\n b: mb,\n s: syms\n }];\n};\n// Tables generated using this:\n// https://gist.github.com/101arrowz/a979452d4355992cbf8f257cbffc9edd\n// default literal length table\nvar dllt = /*#__PURE__*/ rfse(/*#__PURE__*/ new u8([\n 81, 16, 99, 140, 49, 198, 24, 99, 12, 33, 196, 24, 99, 102, 102, 134, 70, 146, 4\n]), 0, 6)[1];\n// default match length table\nvar dmlt = /*#__PURE__*/ rfse(/*#__PURE__*/ new u8([\n 33, 20, 196, 24, 99, 140, 33, 132, 16, 66, 8, 33, 132, 16, 66, 8, 33, 68, 68, 68, 68, 68, 68, 68, 68, 36, 9\n]), 0, 6)[1];\n// default offset code table\nvar doct = /*#__PURE__ */ rfse(/*#__PURE__*/ new u8([\n 32, 132, 16, 66, 102, 70, 68, 68, 68, 68, 36, 73, 2\n]), 0, 5)[1];\n// bits to baseline\nvar b2bl = function (b, s) {\n var len = b.length, bl = new i32(len);\n for (var i = 0; i < len; ++i) {\n bl[i] = s;\n s += 1 << b[i];\n }\n return bl;\n};\n// literal length bits\nvar llb = /*#__PURE__ */ new u8(( /*#__PURE__ */new i32([\n 0, 0, 0, 0, 16843009, 50528770, 134678020, 202050057, 269422093\n])).buffer, 0, 36);\n// literal length baseline\nvar llbl = /*#__PURE__ */ b2bl(llb, 0);\n// match length bits\nvar mlb = /*#__PURE__ */ new u8(( /*#__PURE__ */new i32([\n 0, 0, 0, 0, 0, 0, 0, 0, 16843009, 50528770, 117769220, 185207048, 252579084, 16\n])).buffer, 0, 53);\n// match length baseline\nvar mlbl = /*#__PURE__ */ b2bl(mlb, 3);\n// decode huffman stream\nvar dhu = function (dat, out, hu) {\n var len = dat.length, ss = out.length, lb = dat[len - 1], msk = (1 << hu.b) - 1, eb = -hu.b;\n if (!lb)\n err(0);\n var st = 0, btr = hu.b, pos = (len << 3) - 8 + msb(lb) - btr, i = -1;\n for (; pos > eb && i < ss;) {\n var cbt = pos >> 3;\n var val = (dat[cbt] | (dat[cbt + 1] << 8) | (dat[cbt + 2] << 16)) >> (pos & 7);\n st = ((st << btr) | val) & msk;\n out[++i] = hu.s[st];\n pos -= (btr = hu.n[st]);\n }\n if (pos != eb || i + 1 != ss)\n err(0);\n};\n// decode huffman stream 4x\n// TODO: use workers to parallelize\nvar dhu4 = function (dat, out, hu) {\n var bt = 6;\n var ss = out.length, sz1 = (ss + 3) >> 2, sz2 = sz1 << 1, sz3 = sz1 + sz2;\n dhu(dat.subarray(bt, bt += dat[0] | (dat[1] << 8)), out.subarray(0, sz1), hu);\n dhu(dat.subarray(bt, bt += dat[2] | (dat[3] << 8)), out.subarray(sz1, sz2), hu);\n dhu(dat.subarray(bt, bt += dat[4] | (dat[5] << 8)), out.subarray(sz2, sz3), hu);\n dhu(dat.subarray(bt), out.subarray(sz3), hu);\n};\n// read Zstandard block\nvar rzb = function (dat, st, out) {\n var _a;\n var bt = st.b;\n // byte 0 block type\n var b0 = dat[bt], btype = (b0 >> 1) & 3;\n st.l = b0 & 1;\n var sz = (b0 >> 3) | (dat[bt + 1] << 5) | (dat[bt + 2] << 13);\n // end byte for block\n var ebt = (bt += 3) + sz;\n if (btype == 1) {\n if (bt >= dat.length)\n return;\n st.b = bt + 1;\n if (out) {\n fill(out, dat[bt], st.y, st.y += sz);\n return out;\n }\n return fill(new u8(sz), dat[bt]);\n }\n if (ebt > dat.length)\n return;\n if (btype == 0) {\n st.b = ebt;\n if (out) {\n out.set(dat.subarray(bt, ebt), st.y);\n st.y += sz;\n return out;\n }\n return slc(dat, bt, ebt);\n }\n if (btype == 2) {\n // byte 3 lit btype size format\n var b3 = dat[bt], lbt = b3 & 3, sf = (b3 >> 2) & 3;\n // lit src size lit cmp sz 4 streams\n var lss = b3 >> 4, lcs = 0, s4 = 0;\n if (lbt < 2) {\n if (sf & 1)\n lss |= (dat[++bt] << 4) | ((sf & 2) && (dat[++bt] << 12));\n else\n lss = b3 >> 3;\n }\n else {\n s4 = sf;\n if (sf < 2)\n lss |= ((dat[++bt] & 63) << 4), lcs = (dat[bt] >> 6) | (dat[++bt] << 2);\n else if (sf == 2)\n lss |= (dat[++bt] << 4) | ((dat[++bt] & 3) << 12), lcs = (dat[bt] >> 2) | (dat[++bt] << 6);\n else\n lss |= (dat[++bt] << 4) | ((dat[++bt] & 63) << 12), lcs = (dat[bt] >> 6) | (dat[++bt] << 2) | (dat[++bt] << 10);\n }\n ++bt;\n // add literals to end - can never overlap with backreferences because unused literals always appended\n var buf = out ? out.subarray(st.y, st.y + st.m) : new u8(st.m);\n // starting point for literals\n var spl = buf.length - lss;\n if (lbt == 0)\n buf.set(dat.subarray(bt, bt += lss), spl);\n else if (lbt == 1)\n fill(buf, dat[bt++], spl);\n else {\n // huffman table\n var hu = st.h;\n if (lbt == 2) {\n var hud = rhu(dat, bt);\n // subtract description length\n lcs += bt - (bt = hud[0]);\n st.h = hu = hud[1];\n }\n else if (!hu)\n err(0);\n (s4 ? dhu4 : dhu)(dat.subarray(bt, bt += lcs), buf.subarray(spl), hu);\n }\n // num sequences\n var ns = dat[bt++];\n if (ns) {\n if (ns == 255)\n ns = (dat[bt++] | (dat[bt++] << 8)) + 0x7F00;\n else if (ns > 127)\n ns = ((ns - 128) << 8) | dat[bt++];\n // symbol compression modes\n var scm = dat[bt++];\n if (scm & 3)\n err(0);\n var dts = [dmlt, doct, dllt];\n for (var i = 2; i > -1; --i) {\n var md = (scm >> ((i << 1) + 2)) & 3;\n if (md == 1) {\n // rle buf\n var rbuf = new u8([0, 0, dat[bt++]]);\n dts[i] = {\n s: rbuf.subarray(2, 3),\n n: rbuf.subarray(0, 1),\n t: new u16(rbuf.buffer, 0, 1),\n b: 0\n };\n }\n else if (md == 2) {\n // accuracy log 8 for offsets, 9 for others\n _a = rfse(dat, bt, 9 - (i & 1)), bt = _a[0], dts[i] = _a[1];\n }\n else if (md == 3) {\n if (!st.t)\n err(0);\n dts[i] = st.t[i];\n }\n }\n var _b = st.t = dts, mlt = _b[0], oct = _b[1], llt = _b[2];\n var lb = dat[ebt - 1];\n if (!lb)\n err(0);\n var spos = (ebt << 3) - 8 + msb(lb) - llt.b, cbt = spos >> 3, oubt = 0;\n var lst = ((dat[cbt] | (dat[cbt + 1] << 8)) >> (spos & 7)) & ((1 << llt.b) - 1);\n cbt = (spos -= oct.b) >> 3;\n var ost = ((dat[cbt] | (dat[cbt + 1] << 8)) >> (spos & 7)) & ((1 << oct.b) - 1);\n cbt = (spos -= mlt.b) >> 3;\n var mst = ((dat[cbt] | (dat[cbt + 1] << 8)) >> (spos & 7)) & ((1 << mlt.b) - 1);\n for (++ns; --ns;) {\n var llc = llt.s[lst];\n var lbtr = llt.n[lst];\n var mlc = mlt.s[mst];\n var mbtr = mlt.n[mst];\n var ofc = oct.s[ost];\n var obtr = oct.n[ost];\n cbt = (spos -= ofc) >> 3;\n var ofp = 1 << ofc;\n var off = ofp + (((dat[cbt] | (dat[cbt + 1] << 8) | (dat[cbt + 2] << 16) | (dat[cbt + 3] << 24)) >>> (spos & 7)) & (ofp - 1));\n cbt = (spos -= mlb[mlc]) >> 3;\n var ml = mlbl[mlc] + (((dat[cbt] | (dat[cbt + 1] << 8) | (dat[cbt + 2] << 16)) >> (spos & 7)) & ((1 << mlb[mlc]) - 1));\n cbt = (spos -= llb[llc]) >> 3;\n var ll = llbl[llc] + (((dat[cbt] | (dat[cbt + 1] << 8) | (dat[cbt + 2] << 16)) >> (spos & 7)) & ((1 << llb[llc]) - 1));\n cbt = (spos -= lbtr) >> 3;\n lst = llt.t[lst] + (((dat[cbt] | (dat[cbt + 1] << 8)) >> (spos & 7)) & ((1 << lbtr) - 1));\n cbt = (spos -= mbtr) >> 3;\n mst = mlt.t[mst] + (((dat[cbt] | (dat[cbt + 1] << 8)) >> (spos & 7)) & ((1 << mbtr) - 1));\n cbt = (spos -= obtr) >> 3;\n ost = oct.t[ost] + (((dat[cbt] | (dat[cbt + 1] << 8)) >> (spos & 7)) & ((1 << obtr) - 1));\n if (off > 3) {\n st.o[2] = st.o[1];\n st.o[1] = st.o[0];\n st.o[0] = off -= 3;\n }\n else {\n var idx = off - (ll != 0);\n if (idx) {\n off = idx == 3 ? st.o[0] - 1 : st.o[idx];\n if (idx > 1)\n st.o[2] = st.o[1];\n st.o[1] = st.o[0];\n st.o[0] = off;\n }\n else\n off = st.o[0];\n }\n for (var i = 0; i < ll; ++i) {\n buf[oubt + i] = buf[spl + i];\n }\n oubt += ll, spl += ll;\n var stin = oubt - off;\n if (stin < 0) {\n var len = -stin;\n var bs = st.e + stin;\n if (len > ml)\n len = ml;\n for (var i = 0; i < len; ++i) {\n buf[oubt + i] = st.w[bs + i];\n }\n oubt += len, ml -= len, stin = 0;\n }\n for (var i = 0; i < ml; ++i) {\n buf[oubt + i] = buf[stin + i];\n }\n oubt += ml;\n }\n if (oubt != spl) {\n while (spl < buf.length) {\n buf[oubt++] = buf[spl++];\n }\n }\n else\n oubt = buf.length;\n if (out)\n st.y += oubt;\n else\n buf = slc(buf, 0, oubt);\n }\n else if (out) {\n st.y += lss;\n if (spl) {\n for (var i = 0; i < lss; ++i) {\n buf[i] = buf[spl + i];\n }\n }\n }\n else if (spl)\n buf = slc(buf, spl);\n st.b = ebt;\n return buf;\n }\n err(2);\n};\n// concat\nvar cct = function (bufs, ol) {\n if (bufs.length == 1)\n return bufs[0];\n var buf = new u8(ol);\n for (var i = 0, b = 0; i < bufs.length; ++i) {\n var chk = bufs[i];\n buf.set(chk, b);\n b += chk.length;\n }\n return buf;\n};\n/**\n * Decompresses Zstandard data\n * @param dat The input data\n * @param buf The output buffer. If unspecified, the function will allocate\n * exactly enough memory to fit the decompressed data. If your\n * data has multiple frames and you know the output size, specifying\n * it will yield better performance.\n * @returns The decompressed data\n */\nexport function decompress(dat, buf) {\n var bufs = [], nb = +!buf;\n var bt = 0, ol = 0;\n for (; dat.length;) {\n var st = rzfh(dat, nb || buf);\n if (typeof st == 'object') {\n if (nb) {\n buf = null;\n if (st.w.length == st.u) {\n bufs.push(buf = st.w);\n ol += st.u;\n }\n }\n else {\n bufs.push(buf);\n st.e = 0;\n }\n for (; !st.l;) {\n var blk = rzb(dat, st, buf);\n if (!blk)\n err(5);\n if (buf)\n st.e = st.y;\n else {\n bufs.push(blk);\n ol += blk.length;\n cpw(st.w, 0, blk.length);\n st.w.set(blk, st.w.length - blk.length);\n }\n }\n bt = st.b + (st.c * 4);\n }\n else\n bt = st;\n dat = dat.subarray(bt);\n }\n return cct(bufs, ol);\n}\n/**\n * Decompressor for Zstandard streamed data\n */\nvar Decompress = /*#__PURE__*/ (function () {\n /**\n * Creates a Zstandard decompressor\n * @param ondata The handler for stream data\n */\n function Decompress(ondata) {\n this.ondata = ondata;\n this.c = [];\n this.l = 0;\n this.z = 0;\n }\n /**\n * Pushes data to be decompressed\n * @param chunk The chunk of data to push\n * @param final Whether or not this is the last chunk in the stream\n */\n Decompress.prototype.push = function (chunk, final) {\n if (typeof this.s == 'number') {\n var sub = Math.min(chunk.length, this.s);\n chunk = chunk.subarray(sub);\n this.s -= sub;\n }\n var sl = chunk.length;\n var ncs = sl + this.l;\n if (!this.s) {\n if (final) {\n if (!ncs) {\n this.ondata(new u8(0), true);\n return;\n }\n // min for frame + one block\n if (ncs < 5)\n err(5);\n }\n else if (ncs < 18) {\n this.c.push(chunk);\n this.l = ncs;\n return;\n }\n if (this.l) {\n this.c.push(chunk);\n chunk = cct(this.c, ncs);\n this.c = [];\n this.l = 0;\n }\n if (typeof (this.s = rzfh(chunk)) == 'number')\n return this.push(chunk, final);\n }\n if (typeof this.s != 'number') {\n if (ncs < (this.z || 3)) {\n if (final)\n err(5);\n this.c.push(chunk);\n this.l = ncs;\n return;\n }\n if (this.l) {\n this.c.push(chunk);\n chunk = cct(this.c, ncs);\n this.c = [];\n this.l = 0;\n }\n if (!this.z && ncs < (this.z = (chunk[this.s.b] & 2) ? 4 : 3 + ((chunk[this.s.b] >> 3) | (chunk[this.s.b + 1] << 5) | (chunk[this.s.b + 2] << 13)))) {\n if (final)\n err(5);\n this.c.push(chunk);\n this.l = ncs;\n return;\n }\n else\n this.z = 0;\n for (;;) {\n var blk = rzb(chunk, this.s);\n if (!blk) {\n if (final)\n err(5);\n var adc = chunk.subarray(this.s.b);\n this.s.b = 0;\n this.c.push(adc), this.l += adc.length;\n return;\n }\n else {\n this.ondata(blk, false);\n cpw(this.s.w, 0, blk.length);\n this.s.w.set(blk, this.s.w.length - blk.length);\n }\n if (this.s.l) {\n var rest = chunk.subarray(this.s.b);\n this.s = this.s.c * 4;\n this.push(rest, final);\n return;\n }\n }\n }\n else if (final)\n err(5);\n };\n return Decompress;\n}());\nexport { Decompress };\n",
232
+ "\n/** @type {import('../src/types.d.ts').ParquetType[]} */\nexport const ParquetTypes = [\n 'BOOLEAN',\n 'INT32',\n 'INT64',\n 'INT96', // deprecated\n 'FLOAT',\n 'DOUBLE',\n 'BYTE_ARRAY',\n 'FIXED_LEN_BYTE_ARRAY',\n]\n\n/** @type {import('../src/types.d.ts').Encoding[]} */\nexport const Encodings = [\n 'PLAIN',\n 'GROUP_VAR_INT', // deprecated\n 'PLAIN_DICTIONARY',\n 'RLE',\n 'BIT_PACKED', // deprecated\n 'DELTA_BINARY_PACKED',\n 'DELTA_LENGTH_BYTE_ARRAY',\n 'DELTA_BYTE_ARRAY',\n 'RLE_DICTIONARY',\n 'BYTE_STREAM_SPLIT',\n]\n\n/** @type {import('../src/types.d.ts').FieldRepetitionType[]} */\nexport const FieldRepetitionTypes = [\n 'REQUIRED',\n 'OPTIONAL',\n 'REPEATED',\n]\n\n/** @type {import('../src/types.d.ts').ConvertedType[]} */\nexport const ConvertedTypes = [\n 'UTF8',\n 'MAP',\n 'MAP_KEY_VALUE',\n 'LIST',\n 'ENUM',\n 'DECIMAL',\n 'DATE',\n 'TIME_MILLIS',\n 'TIME_MICROS',\n 'TIMESTAMP_MILLIS',\n 'TIMESTAMP_MICROS',\n 'UINT_8',\n 'UINT_16',\n 'UINT_32',\n 'UINT_64',\n 'INT_8',\n 'INT_16',\n 'INT_32',\n 'INT_64',\n 'JSON',\n 'BSON',\n 'INTERVAL',\n]\n\n/** @type {import('../src/types.d.ts').CompressionCodec[]} */\nexport const CompressionCodecs = [\n 'UNCOMPRESSED',\n 'SNAPPY',\n 'GZIP',\n 'LZO',\n 'BROTLI',\n 'LZ4',\n 'ZSTD',\n 'LZ4_RAW',\n]\n\n/** @type {import('../src/types.d.ts').PageType[]} */\nexport const PageTypes = [\n 'DATA_PAGE',\n 'INDEX_PAGE',\n 'DICTIONARY_PAGE',\n 'DATA_PAGE_V2',\n]\n\n/** @type {import('../src/types.d.ts').BoundaryOrder[]} */\nexport const BoundaryOrders = [\n 'UNORDERED',\n 'ASCENDING',\n 'DESCENDING',\n]\n\n/** @type {import('../src/types.d.ts').EdgeInterpolationAlgorithm[]} */\nexport const EdgeInterpolationAlgorithms = [\n 'SPHERICAL',\n 'VINCENTY',\n 'THOMAS',\n 'ANDOYER',\n 'KARNEY',\n]\n",
233
+ "/**\n * WKB (Well-Known Binary) decoder for geometry objects.\n *\n * @param {DataReader} reader\n * @returns {Geometry} geometry object\n */\nexport function wkbToGeojson(reader) {\n const flags = getFlags(reader)\n\n if (flags.type === 1) { // Point\n return { type: 'Point', coordinates: readPosition(reader, flags) }\n } else if (flags.type === 2) { // LineString\n return { type: 'LineString', coordinates: readLine(reader, flags) }\n } else if (flags.type === 3) { // Polygon\n return { type: 'Polygon', coordinates: readPolygon(reader, flags) }\n } else if (flags.type === 4) { // MultiPoint\n const points = []\n for (let i = 0; i < flags.count; i++) {\n points.push(readPosition(reader, getFlags(reader)))\n }\n return { type: 'MultiPoint', coordinates: points }\n } else if (flags.type === 5) { // MultiLineString\n const lines = []\n for (let i = 0; i < flags.count; i++) {\n lines.push(readLine(reader, getFlags(reader)))\n }\n return { type: 'MultiLineString', coordinates: lines }\n } else if (flags.type === 6) { // MultiPolygon\n const polygons = []\n for (let i = 0; i < flags.count; i++) {\n polygons.push(readPolygon(reader, getFlags(reader)))\n }\n return { type: 'MultiPolygon', coordinates: polygons }\n } else if (flags.type === 7) { // GeometryCollection\n const geometries = []\n for (let i = 0; i < flags.count; i++) {\n geometries.push(wkbToGeojson(reader))\n }\n return { type: 'GeometryCollection', geometries }\n } else {\n throw new Error(`Unsupported geometry type: ${flags.type}`)\n }\n}\n\n/**\n * Extract ISO WKB flags and base geometry type.\n *\n * @param {DataReader} reader\n * @returns {WkbFlags}\n */\nfunction getFlags(reader) {\n const { view } = reader\n const littleEndian = view.getUint8(reader.offset++) === 1\n const rawType = view.getUint32(reader.offset, littleEndian)\n reader.offset += 4\n\n const type = rawType % 1000\n const flags = Math.floor(rawType / 1000)\n\n let count = 0\n if (type > 1 && type <= 7) {\n count = view.getUint32(reader.offset, littleEndian)\n reader.offset += 4\n }\n\n // XY, XYZ, XYM, XYZM\n let dim = 2\n if (flags) dim++\n if (flags === 3) dim++\n\n return { littleEndian, type, dim, count }\n}\n\n/**\n * @param {DataReader} reader\n * @param {WkbFlags} flags\n * @returns {number[]}\n */\nfunction readPosition(reader, flags) {\n const points = []\n for (let i = 0; i < flags.dim; i++) {\n const coord = reader.view.getFloat64(reader.offset, flags.littleEndian)\n reader.offset += 8\n points.push(coord)\n }\n return points\n}\n\n/**\n * @param {DataReader} reader\n * @param {WkbFlags} flags\n * @returns {number[][]}\n */\nfunction readLine(reader, flags) {\n const points = []\n for (let i = 0; i < flags.count; i++) {\n points.push(readPosition(reader, flags))\n }\n return points\n}\n\n/**\n * @param {DataReader} reader\n * @param {WkbFlags} flags\n * @returns {number[][][]}\n */\nfunction readPolygon(reader, flags) {\n const { view } = reader\n const rings = []\n for (let r = 0; r < flags.count; r++) {\n const count = view.getUint32(reader.offset, flags.littleEndian)\n reader.offset += 4\n rings.push(readLine(reader, { ...flags, count }))\n }\n return rings\n}\n\n/**\n * @typedef {object} WkbFlags\n * @property {boolean} littleEndian\n * @property {number} type\n * @property {number} dim\n * @property {number} count\n */\n\n/**\n * @import {DataReader, Geometry} from '../src/types.js'\n */\n",
234
+ "import { wkbToGeojson } from './wkb.js'\n\n/**\n * @import {ColumnDecoder, DecodedArray, Encoding, ParquetParsers} from '../src/types.js'\n */\n\nconst decoder = new TextDecoder()\n\n/**\n * Default type parsers when no custom ones are given\n * @type ParquetParsers\n */\nexport const DEFAULT_PARSERS = {\n timestampFromMilliseconds(millis) {\n return new Date(Number(millis))\n },\n timestampFromMicroseconds(micros) {\n return new Date(Number(micros / 1000n))\n },\n timestampFromNanoseconds(nanos) {\n return new Date(Number(nanos / 1000000n))\n },\n dateFromDays(days) {\n return new Date(days * 86400000)\n },\n stringFromBytes(bytes) {\n return bytes && decoder.decode(bytes)\n },\n jsonFromBytes(bytes) {\n return bytes && JSON.parse(decoder.decode(bytes))\n },\n geometryFromBytes(bytes) {\n return bytes && wkbToGeojson({ view: new DataView(bytes.buffer, bytes.byteOffset, bytes.byteLength), offset: 0 })\n },\n geographyFromBytes(bytes) {\n return bytes && wkbToGeojson({ view: new DataView(bytes.buffer, bytes.byteOffset, bytes.byteLength), offset: 0 })\n },\n uuidFromBytes(bytes) {\n if (!bytes) return undefined\n const hex = Array.from(bytes, b => b.toString(16).padStart(2, '0')).join('')\n return hex.slice(0, 8) + '-' + hex.slice(8, 12) + '-' + hex.slice(12, 16) + '-' + hex.slice(16, 20) + '-' + hex.slice(20, 32)\n },\n}\n\n/**\n * Convert known types from primitive to rich, and dereference dictionary.\n *\n * @param {DecodedArray} data series of primitive types\n * @param {DecodedArray | undefined} dictionary\n * @param {Encoding} encoding\n * @param {ColumnDecoder} columnDecoder\n * @returns {DecodedArray} series of rich types\n */\nexport function convertWithDictionary(data, dictionary, encoding, columnDecoder) {\n if (dictionary && encoding.endsWith('_DICTIONARY')) {\n let output = data\n if (data instanceof Uint8Array && !(dictionary instanceof Uint8Array)) {\n // @ts-expect-error upgrade data to match dictionary type with fancy constructor\n output = new dictionary.constructor(data.length)\n }\n for (let i = 0; i < data.length; i++) {\n output[i] = dictionary[data[i]]\n }\n return output\n } else {\n return convert(data, columnDecoder)\n }\n}\n\n/**\n * Convert known types from primitive to rich.\n *\n * @param {DecodedArray} data series of primitive types\n * @param {ColumnDecoder} columnDecoder\n * @returns {DecodedArray} series of rich types\n */\nexport function convert(data, columnDecoder) {\n const { element, parsers, utf8 = true, schemaPath } = columnDecoder\n const { type, converted_type: ctype, logical_type: ltype } = element\n const nullable = element.repetition_type !== 'REQUIRED'\n\n // Skip utf8 conversion for plain BYTE_ARRAY inside VARIANT\n const isVariant = schemaPath?.some(s => s.element.logical_type?.type === 'VARIANT')\n if (isVariant && type === 'BYTE_ARRAY' && ctype !== 'UTF8' && ltype?.type !== 'STRING') {\n return data\n }\n if (ctype === 'DECIMAL') {\n const scale = element.scale || 0\n const factor = 10 ** -scale\n const arr = new Array(data.length)\n for (let i = 0; i < arr.length; i++) {\n if (data[i] instanceof Uint8Array) {\n arr[i] = parseDecimal(data[i]) * factor\n } else {\n arr[i] = Number(data[i]) * factor\n }\n }\n return arr\n }\n if (!ctype && type === 'INT96') {\n return Array.from(data).map(v => parsers.timestampFromNanoseconds(parseInt96Nanos(v)))\n }\n if (ctype === 'DATE') {\n return Array.from(data).map(v => parsers.dateFromDays(v))\n }\n if (ctype === 'TIMESTAMP_MILLIS') {\n return Array.from(data).map(v => parsers.timestampFromMilliseconds(v))\n }\n if (ctype === 'TIMESTAMP_MICROS') {\n return Array.from(data).map(v => parsers.timestampFromMicroseconds(v))\n }\n if (ctype === 'JSON') {\n return data.map(v => parsers.jsonFromBytes(v))\n }\n if (ctype === 'BSON') {\n throw new Error('parquet bson not supported')\n }\n if (ctype === 'INTERVAL') {\n throw new Error('parquet interval not supported')\n }\n if (ltype?.type === 'GEOMETRY') {\n return data.map(v => parsers.geometryFromBytes(v))\n }\n if (ltype?.type === 'GEOGRAPHY') {\n return data.map(v => parsers.geographyFromBytes(v))\n }\n if (ltype?.type === 'UUID') {\n return data.map(v => parsers.uuidFromBytes(v))\n }\n if (ctype === 'UTF8' || ltype?.type === 'STRING' || utf8 && type === 'BYTE_ARRAY') {\n return data.map(v => parsers.stringFromBytes(v))\n }\n if (ctype === 'UINT_64' || ltype?.type === 'INTEGER' && ltype.bitWidth === 64 && !ltype.isSigned) {\n if (data instanceof BigInt64Array) return new BigUint64Array(data.buffer, data.byteOffset, data.length)\n const arr = nullable ? new Array(data.length) : new BigUint64Array(data.length)\n for (let i = 0; i < arr.length; i++) arr[i] = data[i]\n return arr\n }\n if (ctype === 'UINT_32' || ltype?.type === 'INTEGER' && ltype.bitWidth === 32 && !ltype.isSigned) {\n if (data instanceof Int32Array) return new Uint32Array(data.buffer, data.byteOffset, data.length)\n const arr = nullable ? new Array(data.length) : new Uint32Array(data.length)\n for (let i = 0; i < arr.length; i++) {\n arr[i] = data[i] < 0 ? 4294967296 + data[i] : data[i]\n }\n return arr\n }\n if (ltype?.type === 'FLOAT16') {\n return Array.from(data).map(parseFloat16)\n }\n if (ltype?.type === 'TIMESTAMP') {\n const { unit } = ltype\n /** @type {ParquetParsers[keyof ParquetParsers]} */\n let parser = parsers.timestampFromMilliseconds\n if (unit === 'MICROS') parser = parsers.timestampFromMicroseconds\n if (unit === 'NANOS') parser = parsers.timestampFromNanoseconds\n const arr = new Array(data.length)\n for (let i = 0; i < arr.length; i++) {\n arr[i] = parser(data[i])\n }\n return arr\n }\n return data\n}\n\n/**\n * @param {Uint8Array} bytes\n * @returns {number}\n */\nexport function parseDecimal(bytes) {\n if (!bytes.length) return 0\n\n let value = 0n\n for (const byte of bytes) {\n value = value * 256n + BigInt(byte)\n }\n\n // handle signed\n const bits = bytes.length * 8\n if (value >= 2n ** BigInt(bits - 1)) {\n value -= 2n ** BigInt(bits)\n }\n\n return Number(value)\n}\n\n/**\n * Converts INT96 date format (hi 32bit days, lo 64bit nanos) to nanos since epoch\n * @param {bigint} value\n * @returns {bigint}\n */\nfunction parseInt96Nanos(value) {\n const days = (value >> 64n) - 2440588n\n const nano = value & 0xffffffffffffffffn\n return days * 86400000000000n + nano\n}\n\n/**\n * @param {Uint8Array | undefined} bytes\n * @returns {number | undefined}\n */\nexport function parseFloat16(bytes) {\n if (!bytes) return undefined\n const int16 = bytes[1] << 8 | bytes[0]\n const sign = int16 >> 15 ? -1 : 1\n const exp = int16 >> 10 & 0x1f\n const frac = int16 & 0x3ff\n if (exp === 0) return sign * 2 ** -14 * (frac / 1024) // subnormals\n if (exp === 0x1f) return frac ? NaN : sign * Infinity\n return sign * 2 ** (exp - 15) * (1 + frac / 1024)\n}\n",
235
+ "/**\n * Build a tree from the schema elements.\n *\n * @param {SchemaElement[]} schema\n * @param {number} rootIndex index of the root element\n * @param {string[]} path path to the element\n * @returns {SchemaTree} tree of schema elements\n */\nfunction schemaTree(schema, rootIndex, path) {\n const element = schema[rootIndex]\n const children = []\n let count = 1\n\n // Read the specified number of children\n if (element.num_children) {\n while (children.length < element.num_children) {\n const childElement = schema[rootIndex + count]\n const child = schemaTree(schema, rootIndex + count, [...path, childElement.name])\n count += child.count\n children.push(child)\n }\n }\n\n return { count, element, children, path }\n}\n\n/**\n * Get schema elements from the root to the given element name.\n *\n * @param {SchemaElement[]} schema\n * @param {string[]} name path to the element\n * @returns {SchemaTree[]} list of schema elements\n */\nexport function getSchemaPath(schema, name) {\n let tree = schemaTree(schema, 0, [])\n const path = [tree]\n for (const part of name) {\n const child = tree.children.find(child => child.element.name === part)\n if (!child) throw new Error(`parquet schema element not found: ${name}`)\n path.push(child)\n tree = child\n }\n return path\n}\n\n/**\n * Get all physical (leaf) column names.\n *\n * @param {SchemaTree} schemaTree\n * @returns {string[]} list of physical column names\n */\nexport function getPhysicalColumns(schemaTree) {\n /** @type {string[]} */\n const columns = []\n /** @param {SchemaTree} node */\n function traverse(node) {\n if (node.children.length) {\n for (const child of node.children) {\n traverse(child)\n }\n } else {\n columns.push(node.path.join('.'))\n }\n }\n traverse(schemaTree)\n return columns\n}\n\n/**\n * Get the max repetition level for a given schema path.\n *\n * @param {SchemaTree[]} schemaPath\n * @returns {number} max repetition level\n */\nexport function getMaxRepetitionLevel(schemaPath) {\n let maxLevel = 0\n for (const { element } of schemaPath) {\n if (element.repetition_type === 'REPEATED') {\n maxLevel++\n }\n }\n return maxLevel\n}\n\n/**\n * Get the max definition level for a given schema path.\n *\n * @param {SchemaTree[]} schemaPath\n * @returns {number} max definition level\n */\nexport function getMaxDefinitionLevel(schemaPath) {\n let maxLevel = 0\n for (const { element } of schemaPath.slice(1)) {\n if (element.repetition_type !== 'REQUIRED') {\n maxLevel++\n }\n }\n return maxLevel\n}\n\n/**\n * Check if a column is list-like.\n *\n * @param {SchemaTree} schema\n * @returns {boolean} true if list-like\n */\nexport function isListLike(schema) {\n if (!schema) return false\n if (schema.element.converted_type !== 'LIST') return false\n if (schema.children.length > 1) return false\n\n const firstChild = schema.children[0]\n if (firstChild.children.length > 1) return false\n if (firstChild.element.repetition_type !== 'REPEATED') return false\n\n return true\n}\n\n/**\n * Check if a column is map-like.\n *\n * @param {SchemaTree} schema\n * @returns {boolean} true if map-like\n */\nexport function isMapLike(schema) {\n if (!schema) return false\n if (schema.element.converted_type !== 'MAP') return false\n if (schema.children.length > 1) return false\n\n const firstChild = schema.children[0]\n if (firstChild.children.length !== 2) return false\n if (firstChild.element.repetition_type !== 'REPEATED') return false\n\n const keyChild = firstChild.children.find(child => child.element.name === 'key')\n if (keyChild?.element.repetition_type === 'REPEATED') return false\n\n const valueChild = firstChild.children.find(child => child.element.name === 'value')\n if (valueChild?.element.repetition_type === 'REPEATED') return false\n\n return true\n}\n\n/**\n * Returns true if a column is non-nested.\n *\n * @param {SchemaTree[]} schemaPath\n * @returns {boolean}\n */\nexport function isFlatColumn(schemaPath) {\n if (schemaPath.length !== 2) return false\n const [, column] = schemaPath\n if (column.element.repetition_type === 'REPEATED') return false\n if (column.children.length) return false\n return true\n}\n\n/**\n * @import {SchemaElement, SchemaTree} from '../src/types.js'\n */\n",
236
+ "/**\n * @import {DataReader, ThriftObject, ThriftType} from '../src/types.js'\n */\n\n// TCompactProtocol types\nconst STOP = 0\nconst TRUE = 1\nconst FALSE = 2\nconst BYTE = 3\nconst I16 = 4\nconst I32 = 5\nconst I64 = 6\nconst DOUBLE = 7\nconst BINARY = 8\nconst LIST = 9\nconst STRUCT = 12\n\n/**\n * Parse TCompactProtocol\n *\n * @param {DataReader} reader\n * @returns {{ [key: `field_${number}`]: any }}\n */\nexport function deserializeTCompactProtocol(reader) {\n /** @type {ThriftObject} */\n const value = {}\n let fid = 0\n\n while (reader.offset < reader.view.byteLength) {\n // Parse each field based on its type and add to the result object\n const byte = reader.view.getUint8(reader.offset++)\n const type = byte & 0x0f\n if (type === STOP) break\n const delta = byte >> 4\n fid = delta ? fid + delta : readZigZag(reader)\n value[`field_${fid}`] = readElement(reader, type)\n }\n\n return value\n}\n\n/**\n * Read a single element based on its type\n *\n * @param {DataReader} reader\n * @param {number} type\n * @returns {ThriftType}\n */\nfunction readElement(reader, type) {\n switch (type) {\n case TRUE:\n return true\n case FALSE:\n return false\n case BYTE:\n return reader.view.getInt8(reader.offset++)\n case I16:\n case I32:\n return readZigZag(reader)\n case I64:\n return readZigZagBigInt(reader)\n case DOUBLE: {\n const value = reader.view.getFloat64(reader.offset, true)\n reader.offset += 8\n return value\n }\n case BINARY: {\n const stringLength = readVarInt(reader)\n const strBytes = new Uint8Array(reader.view.buffer, reader.view.byteOffset + reader.offset, stringLength)\n reader.offset += stringLength\n return strBytes\n }\n case LIST: {\n const byte = reader.view.getUint8(reader.offset++)\n const elemType = byte & 0x0f\n let listSize = byte >> 4\n if (listSize === 15) {\n listSize = readVarInt(reader)\n }\n const boolType = elemType === TRUE || elemType === FALSE\n const values = new Array(listSize)\n for (let i = 0; i < listSize; i++) {\n values[i] = boolType ? readElement(reader, BYTE) === 1 : readElement(reader, elemType)\n }\n return values\n }\n case STRUCT:\n // main function handles struct parsing\n return deserializeTCompactProtocol(reader)\n default:\n // MAP, SET, UUID not used by parquet\n throw new Error(`thrift unhandled type: ${type}`)\n }\n}\n\n/**\n * Read varint aka Unsigned LEB128.\n *\n * @param {DataReader} reader\n * @returns {number}\n */\nexport function readVarInt(reader) {\n let result = 0\n let shift = 0\n while (true) {\n // Read groups of 7 low bits until high bit is 0\n const byte = reader.view.getUint8(reader.offset++)\n result |= (byte & 0x7f) << shift\n if (!(byte & 0x80)) {\n return result\n }\n shift += 7\n }\n}\n\n/**\n * Read a varint as a bigint.\n *\n * @param {DataReader} reader\n * @returns {bigint}\n */\nfunction readVarBigInt(reader) {\n let result = 0n\n let shift = 0n\n while (true) {\n const byte = reader.view.getUint8(reader.offset++)\n result |= BigInt(byte & 0x7f) << shift\n if (!(byte & 0x80)) {\n return result\n }\n shift += 7n\n }\n}\n\n/**\n * Read a zigzag number.\n * Zigzag folds positive and negative numbers into the positive number space.\n *\n * @param {DataReader} reader\n * @returns {number}\n */\nexport function readZigZag(reader) {\n const zigzag = readVarInt(reader)\n return zigzag >>> 1 ^ -(zigzag & 1)\n}\n\n/**\n * Read a zigzag bigint.\n *\n * @param {DataReader} reader\n * @returns {bigint}\n */\nexport function readZigZagBigInt(reader) {\n const zigzag = readVarBigInt(reader)\n return zigzag >> 1n ^ -(zigzag & 1n)\n}\n",
237
+ "/**\n * @param {SchemaElement[]} schema\n * @param {KeyValue[] | undefined} key_value_metadata\n * @returns {void}\n */\nexport function markGeoColumns(schema, key_value_metadata) {\n // Prepare the list of GeoParquet columns\n /** @type {Map<string, LogicalType>} */\n const columns = new Map()\n const geo = key_value_metadata?.find(({ key }) => key === 'geo')?.value\n const decodedColumns = (geo && JSON.parse(geo)?.columns) ?? {}\n for (const [name, column] of Object.entries(decodedColumns)) {\n if (column.encoding !== 'WKB') continue\n\n const type = column.edges === 'spherical' ? 'GEOGRAPHY' : 'GEOMETRY'\n const id = column.crs?.id ?? column.crs?.ids?.[0]\n const crs = id ? `${id.authority}:${id.code.toString()}` : undefined\n // Note: we can't infer GEOGRAPHY's algorithm from GeoParquet\n columns.set(name, { type, crs })\n }\n\n // Mark schema elements with logical type\n // Only look at root-level columns of type BYTE_ARRAY without existing logical_type\n for (let i = 1; i < schema.length; i++) { // skip root\n const { logical_type, name, num_children, type } = schema[i]\n if (num_children) {\n i += num_children\n continue // skip the element and its children\n }\n if (type === 'BYTE_ARRAY' && !logical_type) {\n schema[i].logical_type = columns.get(name)\n }\n }\n}\n\n/**\n * @import {KeyValue, LogicalType, SchemaElement} from '../src/types.js'\n */\n",
238
+ "import { CompressionCodecs, ConvertedTypes, EdgeInterpolationAlgorithms, Encodings, FieldRepetitionTypes, PageTypes, ParquetTypes } from './constants.js'\nimport { DEFAULT_PARSERS, parseDecimal, parseFloat16 } from './convert.js'\nimport { getSchemaPath } from './schema.js'\nimport { deserializeTCompactProtocol } from './thrift.js'\nimport { markGeoColumns } from './geoparquet.js'\n\n/**\n * @import {AsyncBuffer, FileMetaData, KeyValue, LogicalType, MetadataOptions, MinMaxType, ParquetParsers, SchemaElement, SchemaTree, Statistics, TimeUnit} from '../src/types.js'\n */\n\nexport const defaultInitialFetchSize = 1 << 19 // 512kb\n\nconst decoder = new TextDecoder()\nfunction decode(/** @type {Uint8Array} */ value) {\n return value && decoder.decode(value)\n}\n\n/**\n * Read parquet metadata from an async buffer.\n *\n * An AsyncBuffer is like an ArrayBuffer, but the slices are loaded\n * asynchronously, possibly over the network.\n *\n * You must provide the byteLength of the buffer, typically from a HEAD request.\n *\n * In theory, you could use suffix-range requests to fetch the end of the file,\n * and save a round trip. But in practice, this doesn't work because chrome\n * deems suffix-range requests as a not-safe-listed header, and will require\n * a pre-flight. So the byteLength is required.\n *\n * To make this efficient, we initially request the last 512kb of the file,\n * which is likely to contain the metadata. If the metadata length exceeds the\n * initial fetch, 512kb, we request the rest of the metadata from the AsyncBuffer.\n *\n * This ensures that we either make one 512kb initial request for the metadata,\n * or a second request for up to the metadata size.\n *\n * @param {AsyncBuffer} asyncBuffer parquet file contents\n * @param {MetadataOptions & { initialFetchSize?: number }} options initial fetch size in bytes (default 512kb)\n * @returns {Promise<FileMetaData>} parquet metadata object\n */\nexport async function parquetMetadataAsync(asyncBuffer, { parsers, initialFetchSize = defaultInitialFetchSize, geoparquet = true } = {}) {\n if (!asyncBuffer || !(asyncBuffer.byteLength >= 0)) throw new Error('parquet expected AsyncBuffer')\n\n // fetch last bytes (footer) of the file\n const footerOffset = Math.max(0, asyncBuffer.byteLength - initialFetchSize)\n const footerBuffer = await asyncBuffer.slice(footerOffset, asyncBuffer.byteLength)\n\n // Check for parquet magic number \"PAR1\"\n const footerView = new DataView(footerBuffer)\n if (footerView.getUint32(footerBuffer.byteLength - 4, true) !== 0x31524150) {\n throw new Error('parquet file invalid (footer != PAR1)')\n }\n\n // Parquet files store metadata at the end of the file\n // Metadata length is 4 bytes before the last PAR1\n const metadataLength = footerView.getUint32(footerBuffer.byteLength - 8, true)\n if (metadataLength > asyncBuffer.byteLength - 8) {\n throw new Error(`parquet metadata length ${metadataLength} exceeds available buffer ${asyncBuffer.byteLength - 8}`)\n }\n\n // check if metadata size fits inside the initial fetch\n if (metadataLength + 8 > initialFetchSize) {\n // fetch the rest of the metadata\n const metadataOffset = asyncBuffer.byteLength - metadataLength - 8\n const metadataBuffer = await asyncBuffer.slice(metadataOffset, footerOffset)\n // combine initial fetch with the new slice\n const combinedBuffer = new ArrayBuffer(metadataLength + 8)\n const combinedView = new Uint8Array(combinedBuffer)\n combinedView.set(new Uint8Array(metadataBuffer))\n combinedView.set(new Uint8Array(footerBuffer), footerOffset - metadataOffset)\n return parquetMetadata(combinedBuffer, { parsers, geoparquet })\n } else {\n // parse metadata from the footer\n return parquetMetadata(footerBuffer, { parsers, geoparquet })\n }\n}\n\n/**\n * Read parquet metadata from a buffer synchronously.\n *\n * @param {ArrayBuffer} arrayBuffer parquet file footer\n * @param {MetadataOptions} options metadata parsing options\n * @returns {FileMetaData} parquet metadata object\n */\nexport function parquetMetadata(arrayBuffer, { parsers, geoparquet = true } = {}) {\n if (!(arrayBuffer instanceof ArrayBuffer)) throw new Error('parquet expected ArrayBuffer')\n const view = new DataView(arrayBuffer)\n\n // Use default parsers if not given\n parsers = { ...DEFAULT_PARSERS, ...parsers }\n\n // Validate footer magic number \"PAR1\"\n if (view.byteLength < 8) {\n throw new Error('parquet file is too short')\n }\n if (view.getUint32(view.byteLength - 4, true) !== 0x31524150) {\n throw new Error('parquet file invalid (footer != PAR1)')\n }\n\n // Parquet files store metadata at the end of the file\n // Metadata length is 4 bytes before the last PAR1\n const metadataLengthOffset = view.byteLength - 8\n const metadataLength = view.getUint32(metadataLengthOffset, true)\n if (metadataLength > view.byteLength - 8) {\n // {metadata}, metadata_length, PAR1\n throw new Error(`parquet metadata length ${metadataLength} exceeds available buffer ${view.byteLength - 8}`)\n }\n\n const metadataOffset = metadataLengthOffset - metadataLength\n const reader = { view, offset: metadataOffset }\n const metadata = deserializeTCompactProtocol(reader)\n\n // Parse metadata from thrift data\n const version = metadata.field_1\n /** @type {SchemaElement[]} */\n const schema = metadata.field_2.map((/** @type {any} */ field) => ({\n type: ParquetTypes[field.field_1],\n type_length: field.field_2,\n repetition_type: FieldRepetitionTypes[field.field_3],\n name: decode(field.field_4),\n num_children: field.field_5,\n converted_type: ConvertedTypes[field.field_6],\n scale: field.field_7,\n precision: field.field_8,\n field_id: field.field_9,\n logical_type: logicalType(field.field_10),\n }))\n // schema element per column index\n const columnSchema = schema.filter(e => e.type)\n const num_rows = metadata.field_3\n const row_groups = metadata.field_4.map((/** @type {any} */ rowGroup) => ({\n columns: rowGroup.field_1.map((/** @type {any} */ column, /** @type {number} */ columnIndex) => ({\n file_path: decode(column.field_1),\n file_offset: column.field_2,\n meta_data: column.field_3 && {\n type: ParquetTypes[column.field_3.field_1],\n encodings: column.field_3.field_2?.map((/** @type {number} */ e) => Encodings[e]),\n path_in_schema: column.field_3.field_3.map(decode),\n codec: CompressionCodecs[column.field_3.field_4],\n num_values: column.field_3.field_5,\n total_uncompressed_size: column.field_3.field_6,\n total_compressed_size: column.field_3.field_7,\n key_value_metadata: column.field_3.field_8?.map((/** @type {any} */ kv) => ({\n key: decode(kv.field_1),\n value: decode(kv.field_2),\n })),\n data_page_offset: column.field_3.field_9,\n index_page_offset: column.field_3.field_10,\n dictionary_page_offset: column.field_3.field_11,\n statistics: convertStats(column.field_3.field_12, columnSchema[columnIndex], parsers),\n encoding_stats: column.field_3.field_13?.map((/** @type {any} */ encodingStat) => ({\n page_type: PageTypes[encodingStat.field_1],\n encoding: Encodings[encodingStat.field_2],\n count: encodingStat.field_3,\n })),\n bloom_filter_offset: column.field_3.field_14,\n bloom_filter_length: column.field_3.field_15,\n size_statistics: column.field_3.field_16 && {\n unencoded_byte_array_data_bytes: column.field_3.field_16.field_1,\n repetition_level_histogram: column.field_3.field_16.field_2,\n definition_level_histogram: column.field_3.field_16.field_3,\n },\n geospatial_statistics: column.field_3.field_17 && {\n bbox: column.field_3.field_17.field_1 && {\n xmin: column.field_3.field_17.field_1.field_1,\n xmax: column.field_3.field_17.field_1.field_2,\n ymin: column.field_3.field_17.field_1.field_3,\n ymax: column.field_3.field_17.field_1.field_4,\n zmin: column.field_3.field_17.field_1.field_5,\n zmax: column.field_3.field_17.field_1.field_6,\n mmin: column.field_3.field_17.field_1.field_7,\n mmax: column.field_3.field_17.field_1.field_8,\n },\n geospatial_types: column.field_3.field_17.field_2,\n },\n },\n offset_index_offset: column.field_4,\n offset_index_length: column.field_5,\n column_index_offset: column.field_6,\n column_index_length: column.field_7,\n crypto_metadata: column.field_8,\n encrypted_column_metadata: column.field_9,\n })),\n total_byte_size: rowGroup.field_2,\n num_rows: rowGroup.field_3,\n sorting_columns: rowGroup.field_4?.map((/** @type {any} */ sortingColumn) => ({\n column_idx: sortingColumn.field_1,\n descending: sortingColumn.field_2,\n nulls_first: sortingColumn.field_3,\n })),\n file_offset: rowGroup.field_5,\n total_compressed_size: rowGroup.field_6,\n ordinal: rowGroup.field_7,\n }))\n /** @type {KeyValue[] | undefined} */\n const key_value_metadata = metadata.field_5?.map((/** @type {any} */ kv) => ({\n key: decode(kv.field_1),\n value: decode(kv.field_2),\n }))\n const created_by = decode(metadata.field_6)\n\n if (geoparquet) {\n markGeoColumns(schema, key_value_metadata)\n }\n\n return {\n version,\n schema,\n num_rows,\n row_groups,\n key_value_metadata,\n created_by,\n metadata_length: metadataLength,\n }\n}\n\n/**\n * Return a tree of schema elements from parquet metadata.\n *\n * @param {{schema: SchemaElement[]}} metadata parquet metadata object\n * @returns {SchemaTree} tree of schema elements\n */\nexport function parquetSchema({ schema }) {\n return getSchemaPath(schema, [])[0]\n}\n\n/**\n * @param {any} logicalType\n * @returns {LogicalType | undefined}\n */\nfunction logicalType(logicalType) {\n if (logicalType?.field_1) return { type: 'STRING' }\n if (logicalType?.field_2) return { type: 'MAP' }\n if (logicalType?.field_3) return { type: 'LIST' }\n if (logicalType?.field_4) return { type: 'ENUM' }\n if (logicalType?.field_5) return {\n type: 'DECIMAL',\n scale: logicalType.field_5.field_1,\n precision: logicalType.field_5.field_2,\n }\n if (logicalType?.field_6) return { type: 'DATE' }\n if (logicalType?.field_7) return {\n type: 'TIME',\n isAdjustedToUTC: logicalType.field_7.field_1,\n unit: timeUnit(logicalType.field_7.field_2),\n }\n if (logicalType?.field_8) return {\n type: 'TIMESTAMP',\n isAdjustedToUTC: logicalType.field_8.field_1,\n unit: timeUnit(logicalType.field_8.field_2),\n }\n if (logicalType?.field_10) return {\n type: 'INTEGER',\n bitWidth: logicalType.field_10.field_1,\n isSigned: logicalType.field_10.field_2,\n }\n if (logicalType?.field_11) return { type: 'NULL' }\n if (logicalType?.field_12) return { type: 'JSON' }\n if (logicalType?.field_13) return { type: 'BSON' }\n if (logicalType?.field_14) return { type: 'UUID' }\n if (logicalType?.field_15) return { type: 'FLOAT16' }\n if (logicalType?.field_16) return {\n type: 'VARIANT',\n specification_version: logicalType.field_16.field_1,\n }\n if (logicalType?.field_17) return {\n type: 'GEOMETRY',\n crs: decode(logicalType.field_17.field_1),\n }\n if (logicalType?.field_18) return {\n type: 'GEOGRAPHY',\n crs: decode(logicalType.field_18.field_1),\n algorithm: EdgeInterpolationAlgorithms[logicalType.field_18.field_2],\n }\n return logicalType\n}\n\n/**\n * @param {any} unit\n * @returns {TimeUnit}\n */\nfunction timeUnit(unit) {\n if (unit.field_1) return 'MILLIS'\n if (unit.field_2) return 'MICROS'\n if (unit.field_3) return 'NANOS'\n throw new Error('parquet time unit required')\n}\n\n/**\n * Convert column statistics based on column type.\n *\n * @param {any} stats\n * @param {SchemaElement} schema\n * @param {ParquetParsers} parsers\n * @returns {Statistics}\n */\nfunction convertStats(stats, schema, parsers) {\n return stats && {\n max: convertMetadata(stats.field_1, schema, parsers),\n min: convertMetadata(stats.field_2, schema, parsers),\n null_count: stats.field_3,\n distinct_count: stats.field_4,\n max_value: convertMetadata(stats.field_5, schema, parsers),\n min_value: convertMetadata(stats.field_6, schema, parsers),\n is_max_value_exact: stats.field_7,\n is_min_value_exact: stats.field_8,\n }\n}\n\n/**\n * @param {Uint8Array | undefined} value\n * @param {SchemaElement} schema\n * @param {ParquetParsers} parsers\n * @returns {MinMaxType | undefined}\n */\nexport function convertMetadata(value, schema, parsers) {\n const { type, converted_type, logical_type } = schema\n if (value === undefined) return value\n if (type === 'BOOLEAN') return value[0] === 1\n if (type === 'BYTE_ARRAY') return parsers.stringFromBytes(value)\n const view = new DataView(value.buffer, value.byteOffset, value.byteLength)\n if (type === 'FLOAT' && view.byteLength === 4) return view.getFloat32(0, true)\n if (type === 'DOUBLE' && view.byteLength === 8) return view.getFloat64(0, true)\n if (type === 'INT32' && converted_type === 'DECIMAL' && view.byteLength === 4) {\n return view.getInt32(0, true) * 10 ** -(schema.scale || 0)\n }\n if (type === 'INT64' && converted_type === 'DECIMAL' && view.byteLength === 8) {\n return Number(view.getBigInt64(0, true)) * 10 ** -(schema.scale || 0)\n }\n if (type === 'INT32' && converted_type === 'DATE') return parsers.dateFromDays(view.getInt32(0, true))\n if (type === 'INT64' && converted_type === 'TIMESTAMP_MILLIS') return parsers.timestampFromMilliseconds(view.getBigInt64(0, true))\n if (type === 'INT64' && converted_type === 'TIMESTAMP_MICROS') return parsers.timestampFromMicroseconds(view.getBigInt64(0, true))\n if (type === 'INT64' && logical_type?.type === 'TIMESTAMP' && logical_type?.unit === 'NANOS') return parsers.timestampFromNanoseconds(view.getBigInt64(0, true))\n if (type === 'INT64' && logical_type?.type === 'TIMESTAMP' && logical_type?.unit === 'MICROS') return parsers.timestampFromMicroseconds(view.getBigInt64(0, true))\n if (type === 'INT64' && logical_type?.type === 'TIMESTAMP') return parsers.timestampFromMilliseconds(view.getBigInt64(0, true))\n const unsigned = converted_type?.startsWith('UINT_') ||\n logical_type?.type === 'INTEGER' && !logical_type.isSigned\n if (type === 'INT32' && unsigned && view.byteLength === 4) return view.getUint32(0, true)\n if (type === 'INT64' && unsigned && view.byteLength === 8) return view.getBigUint64(0, true)\n if (type === 'INT32' && view.byteLength === 4) return view.getInt32(0, true)\n if (type === 'INT64' && view.byteLength === 8) return view.getBigInt64(0, true)\n if (converted_type === 'DECIMAL') return parseDecimal(value) * 10 ** -(schema.scale || 0)\n if (logical_type?.type === 'FLOAT16') return parseFloat16(value)\n if (logical_type?.type === 'UUID') return parsers.uuidFromBytes(value)\n if (type === 'FIXED_LEN_BYTE_ARRAY') return value\n // assert(false)\n return value\n}\n",
239
+ "/**\n * @import {ColumnIndex, DataReader, OffsetIndex, PageLocation, ParquetParsers, SchemaElement} from '../src/types.js'\n */\n\nimport { BoundaryOrders } from './constants.js'\nimport { DEFAULT_PARSERS } from './convert.js'\nimport { convertMetadata } from './metadata.js'\nimport { deserializeTCompactProtocol } from './thrift.js'\n\n/**\n * @param {DataReader} reader\n * @param {SchemaElement} schema\n * @param {ParquetParsers | undefined} parsers\n * @returns {ColumnIndex}\n */\nexport function readColumnIndex(reader, schema, parsers = undefined) {\n parsers = { ...DEFAULT_PARSERS, ...parsers }\n\n const thrift = deserializeTCompactProtocol(reader)\n return {\n null_pages: thrift.field_1,\n min_values: thrift.field_2.map((/** @type {any} */ m) => convertMetadata(m, schema, parsers)),\n max_values: thrift.field_3.map((/** @type {any} */ m) => convertMetadata(m, schema, parsers)),\n boundary_order: BoundaryOrders[thrift.field_4],\n null_counts: thrift.field_5,\n repetition_level_histograms: thrift.field_6,\n definition_level_histograms: thrift.field_7,\n }\n}\n\n/**\n * @param {DataReader} reader\n * @returns {OffsetIndex}\n */\nexport function readOffsetIndex(reader) {\n const thrift = deserializeTCompactProtocol(reader)\n return {\n // @ts-ignore\n page_locations: thrift.field_1.map(loc => ({\n offset: loc.field_1,\n compressed_page_size: loc.field_2,\n first_row_index: loc.field_3,\n })),\n unencoded_byte_array_data_bytes: thrift.field_2,\n }\n}\n",
240
+ "// XxHash64 (https://github.com/Cyan4973/xxHash/blob/dev/doc/xxhash_spec.md)\n// Used by parquet bloom filters: hashes the PLAIN encoding of column values with seed 0.\n\nconst MASK = 0xffffffffffffffffn\nconst PRIME1 = 0x9e3779b185ebca87n\nconst PRIME2 = 0xc2b2ae3d27d4eb4fn\nconst PRIME3 = 0x165667b19e3779f9n\nconst PRIME4 = 0x85ebca77c2b2ae63n\nconst PRIME5 = 0x27d4eb2f165667c5n\n\n/**\n * @param {bigint} x\n * @param {bigint} r rotation amount in bits (1..63)\n * @returns {bigint}\n */\nfunction rotl64(x, r) {\n return (x << r | x >> 64n - r) & MASK\n}\n\n/**\n * @param {bigint} acc\n * @param {bigint} val\n * @returns {bigint}\n */\nfunction round(acc, val) {\n acc = acc + val * PRIME2 & MASK\n acc = rotl64(acc, 31n)\n return acc * PRIME1 & MASK\n}\n\n/**\n * @param {bigint} acc\n * @param {bigint} val\n * @returns {bigint}\n */\nfunction mergeRound(acc, val) {\n acc ^= round(0n, val)\n return acc * PRIME1 + PRIME4 & MASK\n}\n\n/**\n * Compute the 64-bit xxHash of a byte buffer.\n *\n * @param {Uint8Array} input\n * @param {bigint} [seed]\n * @returns {bigint} 64-bit hash\n */\nexport function xxhash64(input, seed = 0n) {\n const view = new DataView(input.buffer, input.byteOffset, input.byteLength)\n const len = input.byteLength\n let offset = 0\n let h64\n\n if (len >= 32) {\n let v1 = seed + PRIME1 + PRIME2 & MASK\n let v2 = seed + PRIME2 & MASK\n let v3 = seed\n let v4 = seed - PRIME1 & MASK\n\n while (offset + 32 <= len) {\n v1 = round(v1, view.getBigUint64(offset, true)); offset += 8\n v2 = round(v2, view.getBigUint64(offset, true)); offset += 8\n v3 = round(v3, view.getBigUint64(offset, true)); offset += 8\n v4 = round(v4, view.getBigUint64(offset, true)); offset += 8\n }\n\n h64 = rotl64(v1, 1n) + rotl64(v2, 7n) + rotl64(v3, 12n) + rotl64(v4, 18n) & MASK\n h64 = mergeRound(h64, v1)\n h64 = mergeRound(h64, v2)\n h64 = mergeRound(h64, v3)\n h64 = mergeRound(h64, v4)\n } else {\n h64 = seed + PRIME5 & MASK\n }\n\n h64 = h64 + BigInt(len) & MASK\n\n while (offset + 8 <= len) {\n h64 ^= round(0n, view.getBigUint64(offset, true))\n h64 = rotl64(h64, 27n) * PRIME1 + PRIME4 & MASK\n offset += 8\n }\n\n if (offset + 4 <= len) {\n h64 ^= BigInt(view.getUint32(offset, true)) * PRIME1 & MASK\n h64 = rotl64(h64, 23n) * PRIME2 + PRIME3 & MASK\n offset += 4\n }\n\n while (offset < len) {\n h64 ^= BigInt(view.getUint8(offset)) * PRIME5 & MASK\n h64 = rotl64(h64, 11n) * PRIME1 & MASK\n offset += 1\n }\n\n h64 ^= h64 >> 33n\n h64 = h64 * PRIME2 & MASK\n h64 ^= h64 >> 29n\n h64 = h64 * PRIME3 & MASK\n h64 ^= h64 >> 32n\n return h64\n}\n",
241
+ "// Split Block Bloom Filter (https://github.com/apache/parquet-format/blob/master/BloomFilter.md)\n// A bloom filter is a sequence of 32-byte blocks. Each block holds 8 little-endian uint32 words.\n// Insertion sets one bit per word, chosen by salting the low 32 bits of an xxhash64.\n// Membership requires all 8 bits to be set; misses are exact, hits are probabilistic.\n\nimport { deserializeTCompactProtocol } from './thrift.js'\nimport { xxhash64 } from './xxhash.js'\n\n/**\n * @import {BloomFilter, DataReader, ParquetQueryFilter, SchemaElement} from '../src/types.js'\n */\n\nconst textEncoder = new TextEncoder()\n\nconst SALT = new Uint32Array([\n 0x47b6137b, 0x44974d91, 0x8824ad5b, 0xa2b7289d,\n 0x705495c7, 0x2df1424b, 0x9efc4947, 0x5c6bfb31,\n])\n\n/**\n * Map the high 32 bits of a hash to a block index in [0, numBlocks).\n *\n * @param {bigint} hash\n * @param {number} numBlocks\n * @returns {number}\n */\nfunction blockIndex(hash, numBlocks) {\n return Number((hash >> 32n) * BigInt(numBlocks) >> 32n)\n}\n\n/**\n * Per-block mask: 8 uint32 words, each with a single bit set at position `(low32 * SALT[i]) >> 27`.\n *\n * @param {bigint} hash\n * @returns {Uint32Array}\n */\nfunction blockMask(hash) {\n const m = new Uint32Array(8)\n const low = Number(hash & 0xffffffffn) | 0\n for (let i = 0; i < 8; i++) {\n m[i] = 1 << (Math.imul(low, SALT[i]) >>> 27)\n }\n return m\n}\n\n/**\n * Insert a hash into a Split Block Bloom Filter.\n *\n * @param {Uint32Array} blocks bloom filter words (8 * numBlocks long)\n * @param {bigint} hash 64-bit xxhash of the parquet-plain-encoded value\n */\nexport function sbbfInsert(blocks, hash) {\n const offset = blockIndex(hash, blocks.length >> 3) << 3\n const m = blockMask(hash)\n for (let i = 0; i < 8; i++) {\n blocks[offset + i] |= m[i]\n }\n}\n\n/**\n * Test whether a hash might be present in a Split Block Bloom Filter.\n * False positives are possible; false negatives are not.\n *\n * @param {Uint32Array} blocks bloom filter words (8 * numBlocks long)\n * @param {bigint} hash 64-bit xxhash of the parquet-plain-encoded value\n * @returns {boolean}\n */\nexport function sbbfContains(blocks, hash) {\n const offset = blockIndex(hash, blocks.length >> 3) << 3\n const m = blockMask(hash)\n for (let i = 0; i < 8; i++) {\n if ((blocks[offset + i] & m[i]) === 0) return false\n }\n return true\n}\n\n/**\n * Parse a Split Block Bloom Filter from a reader positioned at the BloomFilterHeader.\n * Returns undefined when the header advertises an unsupported algorithm, hash, or\n * compression — callers should treat that as \"cannot use this bloom filter.\"\n *\n * @param {DataReader} reader\n * @returns {BloomFilter | undefined}\n */\nexport function readBloomFilter(reader) {\n const header = deserializeTCompactProtocol(reader)\n const numBytes = header.field_1\n if (typeof numBytes !== 'number' || numBytes <= 0 || numBytes % 32 !== 0) return undefined\n // BloomFilterAlgorithm / Hash / Compression are unions with a single supported variant each.\n if (!header.field_2?.field_1) return undefined // algorithm must be BLOCK\n if (!header.field_3?.field_1) return undefined // hash must be XXHASH\n if (!header.field_4?.field_1) return undefined // compression must be UNCOMPRESSED\n\n const { view, offset } = reader\n if (offset + numBytes > view.byteLength) {\n throw new Error(`parquet bloom filter truncated: need ${numBytes} bytes, have ${view.byteLength - offset}`)\n }\n // Reader offset is not 4-aligned in general, and we want endian-portable reads.\n const blocks = new Uint32Array(numBytes >> 2)\n for (let i = 0; i < blocks.length; i++) {\n blocks[i] = view.getUint32(offset + i * 4, true)\n }\n reader.offset = offset + numBytes\n return { numBytes, blocks }\n}\n\n/**\n * Hash a JS filter value as its parquet PLAIN-encoded bytes, suitable for a\n * bloom filter lookup. Returns undefined when the column's parser is lossy or\n * ambiguous (DATE, TIMESTAMP_*, DECIMAL, JSON, BSON, INT96, FLOAT16, UUID,\n * GEOMETRY, GEOGRAPHY, INTERVAL) or when the JS value type doesn't match the\n * column. Callers must treat undefined as \"bloom filter cannot help.\"\n *\n * @param {any} value\n * @param {SchemaElement} element\n * @returns {bigint | undefined}\n */\nexport function hashParquetValue(value, element) {\n if (value === null || value === undefined) return undefined\n const { type, converted_type, logical_type } = element\n\n if (type === 'BOOLEAN') {\n if (typeof value !== 'boolean') return undefined\n return xxhash64(new Uint8Array([value ? 1 : 0]))\n }\n\n if (type === 'FLOAT') {\n if (typeof value !== 'number') return undefined\n const buf = new ArrayBuffer(4)\n new DataView(buf).setFloat32(0, value, true)\n return xxhash64(new Uint8Array(buf))\n }\n\n if (type === 'DOUBLE') {\n if (typeof value !== 'number') return undefined\n const buf = new ArrayBuffer(8)\n new DataView(buf).setFloat64(0, value, true)\n return xxhash64(new Uint8Array(buf))\n }\n\n if (type === 'INT32') {\n if (converted_type === 'DATE' || converted_type === 'DECIMAL' || converted_type === 'TIME_MILLIS') return undefined\n if (logical_type?.type === 'DATE' || logical_type?.type === 'TIME' || logical_type?.type === 'DECIMAL') return undefined\n if (typeof value !== 'number' || !Number.isInteger(value)) return undefined\n const buf = new ArrayBuffer(4)\n new DataView(buf).setInt32(0, value | 0, true)\n return xxhash64(new Uint8Array(buf))\n }\n\n if (type === 'INT64') {\n if (converted_type === 'TIMESTAMP_MILLIS' || converted_type === 'TIMESTAMP_MICROS') return undefined\n if (converted_type === 'TIME_MICROS' || converted_type === 'DECIMAL') return undefined\n if (logical_type?.type === 'TIMESTAMP' || logical_type?.type === 'TIME' || logical_type?.type === 'DECIMAL') return undefined\n let bigValue\n if (typeof value === 'bigint') bigValue = value\n else if (typeof value === 'number' && Number.isSafeInteger(value)) bigValue = BigInt(value)\n else return undefined\n const buf = new ArrayBuffer(8)\n new DataView(buf).setBigUint64(0, BigInt.asUintN(64, bigValue), true)\n return xxhash64(new Uint8Array(buf))\n }\n\n if (type === 'BYTE_ARRAY') {\n if (converted_type === 'JSON' || converted_type === 'BSON' || converted_type === 'DECIMAL') return undefined\n if (logical_type?.type === 'JSON' || logical_type?.type === 'BSON' || logical_type?.type === 'VARIANT') return undefined\n if (logical_type?.type === 'GEOMETRY' || logical_type?.type === 'GEOGRAPHY') return undefined\n if (typeof value === 'string') return xxhash64(textEncoder.encode(value))\n if (value instanceof Uint8Array) return xxhash64(value)\n return undefined\n }\n\n if (type === 'FIXED_LEN_BYTE_ARRAY') {\n if (converted_type === 'DECIMAL' || converted_type === 'INTERVAL') return undefined\n if (logical_type?.type === 'DECIMAL' || logical_type?.type === 'UUID' || logical_type?.type === 'FLOAT16') return undefined\n if (logical_type?.type === 'GEOMETRY' || logical_type?.type === 'GEOGRAPHY') return undefined\n if (value instanceof Uint8Array) return xxhash64(value)\n return undefined\n }\n\n // INT96 deprecated, or type missing on group columns\n return undefined\n}\n\n/**\n * Top-level column names that appear in $eq or $in predicates within a filter.\n * These are the only columns where a bloom filter can prove a value's absence\n * and let us skip a row group; any other operator can't be helped by a bloom.\n *\n * @param {ParquetQueryFilter | undefined} filter\n * @returns {Set<string>}\n */\nexport function bloomEligibleColumns(filter) {\n /** @type {Set<string>} */\n const out = new Set()\n walkBloomEligible(filter, out)\n return out\n}\n\n/**\n * @param {ParquetQueryFilter | undefined} filter\n * @param {Set<string>} out\n */\nfunction walkBloomEligible(filter, out) {\n if (!filter) return\n if ('$and' in filter && Array.isArray(filter.$and)) {\n for (const sub of filter.$and) walkBloomEligible(sub, out)\n return\n }\n if ('$or' in filter && Array.isArray(filter.$or)) {\n for (const sub of filter.$or) walkBloomEligible(sub, out)\n return\n }\n // $nor would need to prove presence, not absence — bloom can't help.\n if ('$nor' in filter) return\n for (const [field, condition] of Object.entries(filter)) {\n if (field.startsWith('$')) continue\n if (typeof condition === 'object' && condition !== null && !Array.isArray(condition)) {\n if ('$eq' in condition || '$in' in condition) out.add(field)\n } else {\n // primitive / null / array condition is an implicit $eq\n out.add(field)\n }\n }\n}\n",
242
+ "/**\n * @import {AsyncBuffer, Awaitable, DecodedArray} from '../src/types.js'\n */\n\nimport { defaultInitialFetchSize } from './metadata.js'\n\n/**\n * Replace bigint, date, etc with legal JSON types.\n *\n * @param {any} obj object to convert\n * @returns {unknown} converted object\n */\nexport function toJson(obj) {\n if (obj === undefined) return null\n if (typeof obj === 'bigint') return Number(obj)\n if (Object.is(obj, -0)) return 0\n if (Array.isArray(obj)) return obj.map(toJson)\n if (obj instanceof Uint8Array) return Array.from(obj)\n if (obj instanceof Date) return obj.toISOString()\n if (obj instanceof Object) {\n /** @type {Record<string, unknown>} */\n const newObj = {}\n for (const key of Object.keys(obj)) {\n if (obj[key] === undefined) continue\n newObj[key] = toJson(obj[key])\n }\n return newObj\n }\n return obj\n}\n\n/**\n * Concatenate two arrays fast.\n *\n * @param {any[]} aaa\n * @param {DecodedArray} bbb\n */\nexport function concat(aaa, bbb) {\n const chunk = 10000\n for (let i = 0; i < bbb.length; i += chunk) {\n aaa.push(...bbb.slice(i, i + chunk))\n }\n}\n\n/**\n * Deep equality.\n *\n * @param {any} a\n * @param {any} b\n * @param {boolean} [strict]\n * @returns {boolean}\n */\nexport function equals(a, b, strict = true) {\n // eslint-disable-next-line eqeqeq\n if (strict ? a === b : a == b) return true\n if (!a || !b || typeof a !== 'object' || typeof b !== 'object') return false\n\n if (a instanceof Uint8Array && b instanceof Uint8Array) {\n if (a.length !== b.length) return false\n for (let i = 0; i < a.length; i++) {\n if (a[i] !== b[i]) return false\n }\n return true\n }\n if (a instanceof Date || b instanceof Date) {\n return a instanceof Date && b instanceof Date && a.getTime() === b.getTime()\n }\n if (Array.isArray(a) && Array.isArray(b)) {\n if (a.length !== b.length) return false\n for (let i = 0; i < a.length; i++) {\n if (!equals(a[i], b[i], strict)) return false\n }\n return true\n }\n\n const aKeys = Object.keys(a)\n if (aKeys.length !== Object.keys(b).length) return false\n for (const k of aKeys) {\n if (!equals(a[k], b[k], strict)) return false\n }\n return true\n}\n\n/**\n * Get the byte length using fetch with a ranged GET request.\n * Aborts the request if server returns 200 instead of 206.\n *\n * @param {string} url\n * @param {RequestInit} [requestInit] fetch options\n * @param {typeof globalThis.fetch} [fetchFn] fetch function to use\n * @returns {Promise<number>}\n */\nasync function byteLengthFromUrlUsingGet(url, requestInit = {}, fetchFn = globalThis.fetch) {\n const controller = new AbortController()\n const headers = new Headers(requestInit.headers)\n headers.set('Range', 'bytes=0-0')\n\n const res = await fetchFn(url, {\n ...requestInit,\n headers,\n signal: controller.signal,\n })\n\n if (!res.ok) throw new Error(`fetch with range failed ${res.status}`)\n\n // Server supports Range requests (206 Partial Content)\n if (res.status === 206) {\n const contentRange = res.headers.get('Content-Range')\n if (!contentRange) throw new Error('missing content-range header')\n\n // Parse \"bytes 0-0/9446073\" to get total length\n const match = contentRange.match(/bytes \\d+-\\d+\\/(\\d+)/)\n if (!match) throw new Error(`invalid content-range header: ${contentRange}`)\n\n return parseInt(match[1])\n }\n\n // Server ignored Range and returned 200 - get Content-Length and abort request\n if (res.status === 200) {\n const contentLength = res.headers.get('Content-Length')\n\n // Abort the request to stop any ongoing download\n controller.abort()\n\n if (contentLength) return parseInt(contentLength)\n }\n\n throw new Error('server does not support range requests and missing content-length')\n}\n\n/**\n * Get the byte length of a URL using a HEAD request.\n * If HEAD fails with 403 (e.g., with signed S3 URLs), falls back to a ranged GET request.\n * If HEAD succeeds but Content-Length is missing, falls back to GET with range.\n * If requestInit is provided, it will be passed to fetch.\n *\n * @param {string} url\n * @param {RequestInit} [requestInit] fetch options\n * @param {typeof globalThis.fetch} [customFetch] fetch function to use\n * @returns {Promise<number>}\n */\nexport async function byteLengthFromUrl(url, requestInit, customFetch) {\n const fetch = customFetch ?? globalThis.fetch\n const res = await fetch(url, { ...requestInit, method: 'HEAD' })\n\n // If HEAD request is forbidden (common with signed S3 URLs), try GET with range\n if (res.status === 403) {\n return byteLengthFromUrlUsingGet(url, requestInit, fetch)\n }\n\n if (!res.ok) throw new Error(`fetch head failed ${res.status}`)\n const length = res.headers.get('Content-Length')\n // If Content-Length is missing from HEAD, fallback to GET with range\n if (!length) {\n return byteLengthFromUrlUsingGet(url, requestInit, fetch)\n }\n return parseInt(length)\n}\n\n/**\n * Construct an AsyncBuffer for a URL.\n * If byteLength is not provided, will make a HEAD request to get the file size.\n * If fetch is provided, it will be used instead of the global fetch.\n * If requestInit is provided, it will be passed to fetch.\n *\n * @param {object} options\n * @param {string} options.url\n * @param {number} [options.byteLength]\n * @param {typeof globalThis.fetch} [options.fetch] fetch function to use\n * @param {RequestInit} [options.requestInit]\n * @returns {Promise<AsyncBuffer>}\n */\nexport async function asyncBufferFromUrl({ url, byteLength, requestInit, fetch: customFetch }) {\n if (!url) throw new Error('missing url')\n const fetch = customFetch ?? globalThis.fetch\n // byte length from HEAD request\n byteLength ??= await byteLengthFromUrl(url, requestInit, fetch)\n\n /**\n * A promise for the whole buffer, if range requests are not supported.\n * @type {Promise<ArrayBuffer>|undefined}\n */\n let buffer = undefined\n const init = requestInit || {}\n\n return {\n byteLength,\n async slice(start, end) {\n if (buffer) {\n return buffer.then(buffer => buffer.slice(start, end))\n }\n\n const headers = new Headers(init.headers)\n const endStr = end === undefined ? '' : end - 1\n headers.set('Range', `bytes=${start}-${endStr}`)\n\n const res = await fetch(url, { ...init, headers })\n if (!res.ok || !res.body) throw new Error(`fetch failed ${res.status}`)\n\n if (res.status === 200) {\n // Endpoint does not support range requests and returned the whole object\n buffer = res.arrayBuffer()\n return buffer.then(buffer => buffer.slice(start, end))\n } else if (res.status === 206) {\n // The endpoint supports range requests and sent us the requested range\n return res.arrayBuffer()\n } else {\n throw new Error(`fetch received unexpected status code ${res.status}`)\n }\n },\n }\n}\n\n/**\n * Returns a cached layer on top of an AsyncBuffer. For caching slices of a file\n * that are read multiple times, possibly over a network.\n *\n * @param {AsyncBuffer} file file-like object to cache\n * @param {{ minSize?: number }} [options]\n * @returns {AsyncBuffer} cached file-like object\n */\nexport function cachedAsyncBuffer({ byteLength, slice }, { minSize = defaultInitialFetchSize } = {}) {\n if (byteLength < minSize) {\n // Cache whole file if it's small\n const buffer = slice(0, byteLength)\n return {\n byteLength,\n async slice(start, end) {\n return (await buffer).slice(start, end)\n },\n }\n }\n const cache = new Map()\n return {\n byteLength,\n /**\n * @param {number} start\n * @param {number} [end]\n * @returns {Awaitable<ArrayBuffer>}\n */\n slice(start, end) {\n const key = cacheKey(start, end, byteLength)\n const cached = cache.get(key)\n if (cached) return cached\n // cache miss, read from file\n const promise = slice(start, end)\n cache.set(key, promise)\n return promise\n },\n }\n}\n\n\n/**\n * Returns canonical cache key for a byte range 'start,end'.\n * Normalize int-range and suffix-range requests to the same key.\n *\n * @param {number} start start byte of range\n * @param {number} [end] end byte of range, or undefined for suffix range\n * @param {number} [size] size of file, or undefined for suffix range\n * @returns {string}\n */\nfunction cacheKey(start, end, size) {\n if (start < 0) {\n if (end !== undefined) throw new Error(`invalid suffix range [${start}, ${end}]`)\n if (size === undefined) return `${start},`\n return `${size + start},${size}`\n } else if (end !== undefined) {\n if (start > end) throw new Error(`invalid empty range [${start}, ${end}]`)\n return `${start},${end}`\n } else if (size === undefined) {\n return `${start},`\n } else {\n return `${start},${size}`\n }\n}\n\n/**\n * Flatten a list of lists into a single list.\n *\n * @param {DecodedArray[]} [chunks]\n * @returns {DecodedArray}\n */\nexport function flatten(chunks) {\n if (!chunks) return []\n if (chunks.length === 1) return chunks[0]\n /** @type {any[]} */\n const output = []\n for (const chunk of chunks) {\n concat(output, chunk)\n }\n return output\n}\n",
243
+ "/**\n * @import {BloomFilter, ColumnPageStats, PageRanges, ParquetQueryFilter, RowGroup, SchemaElement} from '../src/types.js'\n */\n\nimport { hashParquetValue, sbbfContains } from './bloom.js'\nimport { equals } from './utils.js'\n\nconst encoder = new TextEncoder()\n\n/**\n * Returns the physical leaf paths referenced by a filter.\n *\n * @param {ParquetQueryFilter} [filter]\n * @returns {string[]}\n */\nexport function pathsNeededForFilter(filter) {\n if (!filter) return []\n /** @type {string[]} */\n const paths = []\n if ('$and' in filter && Array.isArray(filter.$and)) {\n paths.push(...filter.$and.flatMap(pathsNeededForFilter))\n } else if ('$or' in filter && Array.isArray(filter.$or)) {\n paths.push(...filter.$or.flatMap(pathsNeededForFilter))\n } else if ('$nor' in filter && Array.isArray(filter.$nor)) {\n paths.push(...filter.$nor.flatMap(pathsNeededForFilter))\n } else {\n paths.push(...Object.keys(filter))\n }\n return [...new Set(paths)]\n}\n\n/**\n * Returns an array of top-level column names needed to evaluate the filter.\n *\n * @param {ParquetQueryFilter} [filter]\n * @returns {string[]}\n */\nexport function columnsNeededForFilter(filter) {\n return [...new Set(pathsNeededForFilter(filter).map(path => path.split('.')[0]))]\n}\n\n/**\n * Match a record against a query filter\n *\n * @param {Record<string, any>} record\n * @param {ParquetQueryFilter} filter\n * @param {boolean} [strict]\n * @returns {boolean}\n */\nexport function matchFilter(record, filter, strict = true) {\n if ('$and' in filter && Array.isArray(filter.$and)) {\n return filter.$and.every(subQuery => matchFilter(record, subQuery, strict))\n }\n if ('$or' in filter && Array.isArray(filter.$or)) {\n return filter.$or.some(subQuery => matchFilter(record, subQuery, strict))\n }\n if ('$nor' in filter && Array.isArray(filter.$nor)) {\n return !filter.$nor.some(subQuery => matchFilter(record, subQuery, strict))\n }\n\n return Object.entries(filter).every(([field, condition]) => {\n const value = resolve(record, field)\n\n // implicit $eq for non-object conditions\n if (typeof condition !== 'object' || condition === null || Array.isArray(condition)) {\n return equals(value, condition, strict)\n }\n\n return Object.entries(condition || {}).every(([operator, target]) => {\n if (operator === '$gt') return value !== null && value !== undefined && value > target\n if (operator === '$gte') return value !== null && value !== undefined && value >= target\n if (operator === '$lt') return value !== null && value !== undefined && value < target\n if (operator === '$lte') return value !== null && value !== undefined && value <= target\n if (operator === '$eq') return equals(value, target, strict)\n if (operator === '$ne') return !equals(value, target, strict)\n if (operator === '$in') return Array.isArray(target) && matchesIn(value, target, strict)\n if (operator === '$nin') return Array.isArray(target) && !matchesIn(value, target, strict)\n if (operator === '$not') return !matchFilter({ [field]: value }, { [field]: target }, strict)\n return true\n })\n })\n}\n\n/**\n * Match a value or one of its immediate array elements against a list.\n *\n * @param {any} value\n * @param {any[]} targets\n * @param {boolean} strict\n * @returns {boolean}\n */\nfunction matchesIn(value, targets, strict) {\n return targets.some(target =>\n equals(value, target, strict) ||\n Array.isArray(value) && value.some(element => equals(element, target, strict)))\n}\n\n/**\n * Check if a row group can be skipped based on filter and column statistics,\n * optionally consulting per-column bloom filters for equality predicates that\n * statistics can't decide.\n *\n * @param {object} options\n * @param {RowGroup} options.rowGroup\n * @param {string[]} options.physicalColumns\n * @param {ParquetQueryFilter | undefined} options.filter\n * @param {boolean} [options.strict]\n * @param {Record<string, BloomFilter>} [options.bloomFilters] keyed by filter path\n * @param {Record<string, SchemaElement>} [options.schemaElements] keyed by physical leaf path\n * @returns {boolean} true if the row group can be skipped\n */\nexport function canSkipRowGroup({ rowGroup, physicalColumns, filter, strict = true, bloomFilters, schemaElements }) {\n if (!filter) return false\n\n // Handle logical operators\n if ('$and' in filter && Array.isArray(filter.$and)) {\n // For AND, we can skip if ANY condition allows skipping\n return filter.$and.some(subFilter => canSkipRowGroup({ rowGroup, physicalColumns, filter: subFilter, strict, bloomFilters, schemaElements }))\n }\n if ('$or' in filter && Array.isArray(filter.$or)) {\n // For OR, we can skip only if ALL conditions allow skipping\n return filter.$or.every(subFilter => canSkipRowGroup({ rowGroup, physicalColumns, filter: subFilter, strict, bloomFilters, schemaElements }))\n }\n if ('$nor' in filter && Array.isArray(filter.$nor)) {\n // For NOR, we can skip if none of the conditions allow skipping\n // This is complex, so we'll be conservative and not skip\n return false\n }\n\n // Check column filters\n for (const [field, condition] of Object.entries(filter)) {\n // Find the column chunk for this field\n const columnIndex = physicalColumns.indexOf(field)\n if (columnIndex === -1) continue\n\n const stats = rowGroup.columns[columnIndex].meta_data?.statistics\n const { min, max, min_value, max_value, null_count: nullCount } = stats || {}\n const minVal = min_value !== undefined ? min_value : min\n const maxVal = max_value !== undefined ? max_value : max\n const haveStats = minVal !== undefined && maxVal !== undefined\n\n const bloom = bloomFilters?.[field]\n const element = schemaElements?.[field]\n const matchingNulls = matchFilter({ value: null }, { value: condition }, strict) &&\n (nullCount === undefined || nullCount > 0)\n\n if (haveStats && !matchingNulls && canSkipStats(condition, minVal, maxVal, strict, element)) {\n return true\n }\n\n // Handle operators\n for (const [operator, target] of Object.entries(condition || {})) {\n // Bloom-filter skipping for equality predicates (proves absence, never presence)\n if (bloom && element) {\n if (operator === '$eq') {\n const hash = hashParquetValue(target, element)\n if (hash !== undefined && !sbbfContains(bloom.blocks, hash)) return true\n }\n if (operator === '$in' && Array.isArray(target) && target.length > 0) {\n let allAbsent = true\n for (const v of target) {\n const h = hashParquetValue(v, element)\n if (h === undefined || sbbfContains(bloom.blocks, h)) {\n allAbsent = false\n break\n }\n }\n if (allAbsent) return true\n }\n }\n }\n }\n\n return false\n}\n\n/**\n * Check if a page value range [minVal, maxVal] provably contains no value\n * matching the operator conditions.\n *\n * @param {any} condition operator object like { $gt: 5 }\n * @param {any} minVal lower bound (may be truncated, still a valid bound)\n * @param {any} maxVal upper bound (may be truncated, still a valid bound)\n * @param {boolean} strict\n * @param {SchemaElement} [element] physical schema element for the bounds\n * @returns {boolean} true if no value in the range can match\n */\nfunction canSkipStats(condition, minVal, maxVal, strict, element) {\n if (minVal === undefined || maxVal === undefined) return false\n const mayContainNaN = element?.type === 'FLOAT' || element?.type === 'DOUBLE' || element?.logical_type?.type === 'FLOAT16'\n for (const [operator, target] of Object.entries(condition || {})) {\n const minComparison = compareParquetValues(minVal, target, strict, element)\n const maxComparison = compareParquetValues(maxVal, target, strict, element)\n // Row filtering uses JavaScript relational operators. For non-ASCII\n // strings their UTF-16 order can differ from Parquet's UTF-8 index order,\n // and binary values are string-coerced rather than byte-compared, so those\n // min/max bounds cannot safely prove a relational predicate impossible.\n const binaryBounds = minVal instanceof Uint8Array || maxVal instanceof Uint8Array\n const relationalBoundsAreSafe = !binaryBounds && (element?.type !== 'BYTE_ARRAY' ||\n typeof target === 'string' && [...target].every(character => character.charCodeAt(0) <= 0x7f))\n if (operator === '$gt' && relationalBoundsAreSafe && maxComparison !== undefined && maxComparison <= 0) return true\n if (operator === '$gte' && relationalBoundsAreSafe && maxComparison !== undefined && maxComparison < 0) return true\n if (operator === '$lt' && relationalBoundsAreSafe && minComparison !== undefined && minComparison >= 0) return true\n if (operator === '$lte' && relationalBoundsAreSafe && minComparison !== undefined && minComparison > 0) return true\n if (operator === '$eq') {\n const targetMinComparison = compareParquetValues(target, minVal, strict, element)\n const targetMaxComparison = compareParquetValues(target, maxVal, strict, element)\n if (targetMinComparison !== undefined && targetMinComparison < 0 ||\n targetMaxComparison !== undefined && targetMaxComparison > 0) return true\n }\n if (operator === '$ne' && !mayContainNaN && equals(minVal, maxVal, strict) && equals(minVal, target, strict)) return true\n if (operator === '$in' && Array.isArray(target) && target.every(value => {\n const valueMinComparison = compareParquetValues(value, minVal, strict, element)\n const valueMaxComparison = compareParquetValues(value, maxVal, strict, element)\n return valueMinComparison !== undefined && valueMinComparison < 0 ||\n valueMaxComparison !== undefined && valueMaxComparison > 0\n })) return true\n if (operator === '$nin' && !mayContainNaN && Array.isArray(target) && equals(minVal, maxVal, strict) && target.some(value => equals(minVal, value, strict))) return true\n }\n return false\n}\n\n/**\n * Compare values using Parquet's unsigned lexicographic ordering for binary\n * values. Returns undefined when values do not have a safely comparable order.\n *\n * @param {any} a\n * @param {any} b\n * @param {boolean} strict\n * @param {SchemaElement} [element]\n * @returns {-1 | 0 | 1 | undefined}\n */\nfunction compareParquetValues(a, b, strict, element) {\n // BYTE_ARRAY values are decoded as UTF-8 strings by the default parser even\n // without an explicit UTF8/STRING annotation.\n if (element?.type === 'BYTE_ARRAY') {\n if (typeof a !== 'string' || typeof b !== 'string') return undefined\n return compareBytes(encoder.encode(a), encoder.encode(b))\n }\n if (a instanceof Uint8Array || b instanceof Uint8Array) {\n if (!(a instanceof Uint8Array) || !(b instanceof Uint8Array)) return undefined\n return compareBytes(a, b)\n }\n if (a < b) return -1\n if (a > b) return 1\n if (equals(a, b, strict)) return 0\n return undefined\n}\n\n/**\n * @param {Uint8Array} a\n * @param {Uint8Array} b\n * @returns {-1 | 0 | 1}\n */\nfunction compareBytes(a, b) {\n const length = Math.min(a.length, b.length)\n for (let i = 0; i < length; i++) {\n if (a[i] < b[i]) return -1\n if (a[i] > b[i]) return 1\n }\n if (a.length < b.length) return -1\n if (a.length > b.length) return 1\n return 0\n}\n\n/**\n * Check whether the filter condition accepts a null value.\n *\n * @param {any} condition\n * @param {boolean} strict\n * @returns {boolean}\n */\nfunction matchesNull(condition, strict) {\n return matchFilter({ value: null }, { value: condition }, strict)\n}\n\n/**\n * Compute candidate row ranges within a row group that could match the filter,\n * based on per-page column index statistics.\n *\n * Returns sorted disjoint [start, end) row ranges relative to the group.\n * An empty array means the filter provably matches no rows in the group.\n * Returns undefined when the page statistics give no pruning information\n * (the caller must read the whole selection).\n *\n * @param {ParquetQueryFilter | undefined} filter\n * @param {Record<string, ColumnPageStats>} columnPages keyed by physical leaf path\n * @param {number} groupRows number of rows in the row group\n * @param {boolean} [strict]\n * @returns {PageRanges | undefined}\n */\nexport function filterPageRanges(filter, columnPages, groupRows, strict = true) {\n if (!filter) return undefined\n if ('$and' in filter && Array.isArray(filter.$and)) {\n /** @type {PageRanges | undefined} */\n let ranges\n for (const subFilter of filter.$and) {\n ranges = intersectRanges(ranges, filterPageRanges(subFilter, columnPages, groupRows, strict))\n }\n return ranges\n }\n if ('$or' in filter && Array.isArray(filter.$or)) {\n /** @type {PageRanges} */\n let ranges = []\n for (const subFilter of filter.$or) {\n const subRanges = filterPageRanges(subFilter, columnPages, groupRows, strict)\n // any un-prunable branch could match anywhere\n if (!subRanges) return undefined\n ranges = unionRanges(ranges, subRanges)\n }\n return ranges\n }\n if ('$nor' in filter && Array.isArray(filter.$nor)) {\n // Conservative: negations cannot be pruned by min/max bounds\n return undefined\n }\n\n // Column conditions: all fields must match, so intersect their ranges\n /** @type {PageRanges | undefined} */\n let result\n for (const [field, condition] of Object.entries(filter)) {\n const pages = columnPages[field]\n if (!pages) continue\n const nullCanMatch = matchesNull(condition, strict)\n /** @type {PageRanges} */\n const keep = []\n for (let i = 0; i < pages.pageStarts.length; i++) {\n const start = pages.pageStarts[i]\n const end = i + 1 < pages.pageStarts.length ? pages.pageStarts[i + 1] : groupRows\n const nullCount = pages.nullCounts?.[i]\n // Keep pages with matching nulls, including pages whose null presence is\n // unknown because the optional null_counts index field was omitted.\n const matchingNulls = nullCanMatch && (nullCount === undefined || nullCount > 0)\n const skip = !pages.nullPages[i] && !matchingNulls &&\n canSkipStats(condition, pages.minValues[i], pages.maxValues[i], strict, pages.element)\n if (!skip) {\n const last = keep[keep.length - 1]\n if (last && last[1] === start) last[1] = end\n else keep.push([start, end])\n }\n }\n result = intersectRanges(result, keep)\n }\n return result\n}\n\n/**\n * Intersect two sets of sorted disjoint ranges. Undefined means \"everything\".\n *\n * @param {PageRanges | undefined} a\n * @param {PageRanges | undefined} b\n * @returns {PageRanges | undefined}\n */\nexport function intersectRanges(a, b) {\n if (!a) return b\n if (!b) return a\n /** @type {PageRanges} */\n const out = []\n let i = 0\n let j = 0\n while (i < a.length && j < b.length) {\n const start = Math.max(a[i][0], b[j][0])\n const end = Math.min(a[i][1], b[j][1])\n if (start < end) out.push([start, end])\n if (a[i][1] < b[j][1]) i++\n else j++\n }\n return out\n}\n\n/**\n * Union two sets of sorted disjoint ranges.\n *\n * @param {PageRanges} a\n * @param {PageRanges} b\n * @returns {PageRanges}\n */\nexport function unionRanges(a, b) {\n /** @type {PageRanges} */\n const out = []\n let i = 0\n let j = 0\n while (i < a.length || j < b.length) {\n const next = j >= b.length || i < a.length && a[i][0] <= b[j][0] ? a[i++] : b[j++]\n const last = out[out.length - 1]\n if (last && next[0] <= last[1]) last[1] = Math.max(last[1], next[1])\n else out.push([next[0], next[1]])\n }\n return out\n}\n\n/**\n * Resolve a dot-notation path to a value in a nested object.\n *\n * @param {Record<string, any>} record\n * @param {string} path\n * @returns {any}\n */\nfunction resolve(record, path) {\n let value = record\n for (const part of path.split('.')) {\n value = value?.[part]\n }\n return value\n}\n",
244
+ "import { bloomEligibleColumns, readBloomFilter } from './bloom.js'\nimport { canSkipRowGroup, filterPageRanges, pathsNeededForFilter } from './filter.js'\nimport { readColumnIndex, readOffsetIndex } from './indexes.js'\nimport { parquetSchema } from './metadata.js'\nimport { getPhysicalColumns } from './schema.js'\n\n/**\n * @import {AsyncBuffer, BloomFilter, ByteRange, ChunkPlan, ColumnPageStats, FileMetaData, GroupPlan, PageLocation, PageRanges, ParquetParsers, ParquetQueryFilter, ParquetReadOptions, QueryPlan, RowGroup, SchemaElement, SchemaTree} from '../src/types.js'\n */\n\n// Combine column chunks if less than 2mb\nconst runLimit = 1 << 21 // 2mb\n\n/**\n * Plan which byte ranges to read to satisfy a read request.\n * Metadata must be non-null.\n *\n * @param {ParquetReadOptions & { bloomFiltersByGroup?: Record<string, BloomFilter>[], schemaElements?: Record<string, SchemaElement>, pageRangesByGroup?: (PageRanges | undefined)[], pageLocationsByGroup?: Record<string, PageLocation[]>[] }} options\n * @returns {QueryPlan}\n */\nexport function parquetPlan({ metadata, rowStart = 0, rowEnd = Infinity, columns, filter, filterStrict = true, useOffsetIndex = false, bloomFiltersByGroup, schemaElements, pageRangesByGroup, pageLocationsByGroup }) {\n if (!metadata) throw new Error('parquetPlan requires metadata')\n /** @type {GroupPlan[]} */\n const groups = []\n /** @type {ByteRange[]} */\n const fetches = []\n /** @type {ByteRange[]} */\n const indexes = []\n const schemaTree = parquetSchema(metadata)\n const physicalColumns = getPhysicalColumns(schemaTree)\n const elementsByPath = filter ? {\n ...physicalSchemaElements(schemaTree),\n ...schemaElements,\n } : schemaElements\n\n // find which row groups to read\n let groupStart = 0 // first row index of the current group\n let rgIdx = 0\n for (const rowGroup of metadata.row_groups) {\n const groupRows = Number(rowGroup.num_rows)\n const groupEnd = groupStart + groupRows\n const bloomFilters = bloomFiltersByGroup?.[rgIdx]\n // if row group overlaps with row range, add it to the plan\n if (groupRows > 0 && groupEnd > rowStart && groupStart < rowEnd && !canSkipRowGroup({ rowGroup, physicalColumns, filter, strict: filterStrict, bloomFilters, schemaElements: elementsByPath })) {\n const selectStart = Math.max(rowStart - groupStart, 0)\n const selectEnd = Math.min(rowEnd - groupStart, groupRows)\n\n // page-level pruning: split the group selection into candidate sub-ranges.\n // an empty list of sub-ranges skips the group entirely.\n const pageRanges = pageRangesByGroup?.[rgIdx]\n const pageLocations = pageLocationsByGroup?.[rgIdx]\n /** @type {PageRanges} */\n let subranges = pageRanges\n ? pageRanges\n .map(([start, end]) => {\n /** @type {[number, number]} */\n const range = [Math.max(start, selectStart), Math.min(end, selectEnd)]\n return range\n })\n .filter(([start, end]) => start < end)\n : [[selectStart, selectEnd]]\n\n // splitting requires page reads for every included chunk, or full chunks\n // would be fetched once per sub-range; collapse to one covering range otherwise\n if (subranges.length > 1) {\n const canSplit = rowGroup.columns.every(chunk => {\n const columnName = chunk.meta_data?.path_in_schema[0]\n const columnPath = chunk.meta_data?.path_in_schema.join('.')\n if (columns && columnName && !columns.includes(columnName)) return true\n return !!(chunk.offset_index_offset && chunk.offset_index_length) || !!(columnPath && pageLocations?.[columnPath])\n })\n if (!canSplit) {\n subranges = [[subranges[0][0], subranges[subranges.length - 1][1]]]\n } else {\n subranges = coalesceOverlappingPageRanges(subranges, rowGroup, columns, pageLocations)\n }\n }\n\n if (subranges.length) {\n /** @type {ChunkPlan[]} */\n const chunks = []\n // Multiple sub-ranges are necessarily narrower than the whole group.\n const narrowed = subranges.length > 1 ||\n subranges[0][0] > 0 || subranges[0][1] < groupRows\n // loop through each column chunk\n for (const chunk of rowGroup.columns) {\n const meta = chunk.meta_data\n if (chunk.file_path) throw new Error('parquet file_path not supported')\n if (!meta) throw new Error('parquet column metadata is undefined')\n // add included column chunks to the plan\n if (!columns || columns.includes(meta.path_in_schema[0])) {\n // full column chunk\n const columnOffset = meta.dictionary_page_offset || meta.data_page_offset\n const startByte = Number(columnOffset)\n const endByte = Number(columnOffset + meta.total_compressed_size)\n const chunkPageLocations = pageLocations?.[meta.path_in_schema.join('.')]\n\n if (chunkPageLocations && narrowed) {\n // page locations already parsed during page index prefetch\n chunks.push({\n columnMetadata: meta,\n pageLocations: chunkPageLocations,\n range: { startByte, endByte },\n })\n } else if ((useOffsetIndex || pageRanges) && chunk.offset_index_offset && chunk.offset_index_length && narrowed) {\n const offsetIndexStart = Number(chunk.offset_index_offset)\n chunks.push({\n columnMetadata: meta,\n offsetIndex: {\n startByte: offsetIndexStart,\n endByte: offsetIndexStart + chunk.offset_index_length,\n },\n range: { startByte, endByte },\n })\n } else {\n chunks.push({\n columnMetadata: meta,\n range: { startByte, endByte },\n })\n }\n\n }\n }\n\n for (const [subStart, subEnd] of subranges) {\n groups.push({ chunks, rowGroup, groupStart, groupRows, selectStart: subStart, selectEnd: subEnd })\n }\n\n // combine runs of column chunks\n /** @type {ByteRange | undefined} */\n let run\n for (const chunk of chunks) {\n if ('pageLocations' in chunk) {\n // pages are fetched on demand in readRowGroup\n } else if ('offsetIndex' in chunk) {\n indexes.push(chunk.offsetIndex)\n } else {\n const { range } = chunk\n if (columns) {\n fetches.push(range)\n } else if (run && range.endByte - run.startByte <= runLimit) {\n // extend range\n run.endByte = range.endByte\n } else {\n // new range\n if (run) fetches.push(run)\n run = { ...range }\n }\n }\n }\n if (run) fetches.push(run)\n }\n }\n\n groupStart = groupEnd\n rgIdx++\n }\n if (!isFinite(rowEnd)) rowEnd = groupStart\n fetches.push(...indexes)\n\n return { metadata, rowStart, rowEnd, columns, fetches, groups }\n}\n\n/**\n * Merge candidate ranges when any selected column would read an overlapping\n * data page for both ranges. Unknown page layouts are merged conservatively.\n *\n * @param {PageRanges} ranges\n * @param {RowGroup} rowGroup\n * @param {string[] | undefined} columns\n * @param {Record<string, PageLocation[]> | undefined} pageLocations\n * @returns {PageRanges}\n */\nfunction coalesceOverlappingPageRanges(ranges, rowGroup, columns, pageLocations) {\n const selectedPageLayouts = rowGroup.columns\n .filter(chunk => !columns || columns.includes(chunk.meta_data?.path_in_schema[0] || ''))\n .map(chunk => pageLocations?.[chunk.meta_data?.path_in_schema.join('.') || ''])\n\n /** @type {PageRanges} */\n const merged = []\n for (const range of ranges) {\n const last = merged[merged.length - 1]\n const overlapsPage = last && selectedPageLayouts.some(pages => {\n if (!pages) return true\n const lastPages = pagesForRange(last, pages, Number(rowGroup.num_rows))\n const rangePages = pagesForRange(range, pages, Number(rowGroup.num_rows))\n return lastPages[0] <= rangePages[1] && rangePages[0] <= lastPages[1]\n })\n if (last && overlapsPage) last[1] = range[1]\n else merged.push([...range])\n }\n return merged\n}\n\n/**\n * Return the inclusive indexes of the first and last pages overlapping a row\n * range. Offset indexes cover every row, so a valid range always finds a page.\n *\n * @param {[number, number]} range\n * @param {PageLocation[]} pages\n * @param {number} groupRows\n * @returns {[number, number]}\n */\nfunction pagesForRange([rangeStart, rangeEnd], pages, groupRows) {\n let first = Infinity\n let last = -Infinity\n for (let i = 0; i < pages.length; i++) {\n const pageStart = Number(pages[i].first_row_index)\n const pageEnd = i + 1 < pages.length ? Number(pages[i + 1].first_row_index) : groupRows\n if (pageEnd > rangeStart && pageStart < rangeEnd) {\n first = Math.min(first, i)\n last = i\n }\n }\n return [first, last]\n}\n\n/**\n * Fetch bloom filters for $eq / $in columns of row groups not already provably\n * skippable by statistics alone. Returns an array indexed by row-group ordinal;\n * each entry maps top-level column name → BloomFilter for any chunk whose\n * bloom filter we were able to parse. Adds one round-trip when at least one\n * bloom filter is fetched; otherwise returns synchronously.\n *\n * @param {object} options\n * @param {AsyncBuffer} options.file\n * @param {FileMetaData} options.metadata\n * @param {ParquetQueryFilter} options.filter\n * @param {boolean} [options.filterStrict]\n * @returns {Promise<Record<string, BloomFilter>[]>}\n */\nexport async function prefetchBloomFilters({ file, metadata, filter, filterStrict = true }) {\n const result = metadata.row_groups.map(() => /** @type {Record<string, BloomFilter>} */ ({}))\n const eligibleCols = bloomEligibleColumns(filter)\n if (eligibleCols.size === 0) return result\n const physicalColumns = getPhysicalColumns(parquetSchema(metadata))\n\n /** @type {Promise<void>[]} */\n const tasks = []\n metadata.row_groups.forEach((rowGroup, rgIdx) => {\n if (canSkipRowGroup({ rowGroup, physicalColumns, filter, strict: filterStrict })) return\n for (const colName of eligibleCols) {\n const columnIdx = physicalColumns.indexOf(colName)\n if (columnIdx === -1) continue\n const meta = rowGroup.columns[columnIdx]?.meta_data\n if (!meta?.bloom_filter_offset || !meta.bloom_filter_length) continue\n const start = Number(meta.bloom_filter_offset)\n const end = start + meta.bloom_filter_length\n tasks.push((async () => {\n const buffer = await file.slice(start, end)\n const bloom = readBloomFilter({ view: new DataView(buffer), offset: 0 })\n if (bloom) result[rgIdx][colName] = bloom\n })())\n }\n })\n\n if (tasks.length) await Promise.all(tasks)\n return result\n}\n\n/**\n * Fetch page indexes (column index + offset index) for filter columns of row\n * groups that survive row-group-level pruning, and compute candidate row\n * ranges per group from the per-page min/max statistics.\n *\n * Returns pageRangesByGroup indexed by row-group ordinal: sorted disjoint\n * [start, end) row ranges (relative to the group) that could match the filter.\n * An empty array means the group provably contains no matching rows; undefined\n * means no page-level information was available for that group.\n * Also returns pageLocationsByGroup, mapping row-group ordinals and physical\n * leaf paths to page locations, so the read path can reuse the parsed offset\n * indexes without refetching them.\n *\n * @param {object} options\n * @param {AsyncBuffer} options.file\n * @param {FileMetaData} options.metadata\n * @param {ParquetQueryFilter} [options.filter]\n * @param {boolean} [options.filterStrict]\n * @param {number} [options.rowStart]\n * @param {number} [options.rowEnd]\n * @param {string[]} [options.columns]\n * @param {Record<string, BloomFilter>[]} [options.bloomFiltersByGroup]\n * @param {Record<string, SchemaElement>} [options.schemaElements]\n * @param {ParquetParsers} [options.parsers]\n * @returns {Promise<{pageRangesByGroup: (PageRanges | undefined)[], pageLocationsByGroup: Record<string, PageLocation[]>[]}>}\n */\nexport async function prefetchPageIndexes({ file, metadata, filter, filterStrict = true, rowStart = 0, rowEnd = Infinity, columns, bloomFiltersByGroup, schemaElements, parsers }) {\n /** @type {(PageRanges | undefined)[]} */\n const pageRangesByGroup = metadata.row_groups.map(() => undefined)\n const pageLocationsByGroup = metadata.row_groups.map(() => /** @type {Record<string, PageLocation[]>} */ ({}))\n if (filter && '$nor' in filter && Array.isArray(filter.$nor)) {\n return { pageRangesByGroup, pageLocationsByGroup }\n }\n const filterColumns = pathsNeededForFilter(filter)\n if (!filterColumns.length) return { pageRangesByGroup, pageLocationsByGroup }\n const schemaTree = parquetSchema(metadata)\n const physicalColumns = getPhysicalColumns(schemaTree)\n const elementsByPath = {\n ...physicalSchemaElements(schemaTree),\n ...schemaElements,\n }\n\n /** @type {ByteRange[]} */\n const indexRanges = []\n /** @type {((file: AsyncBuffer) => Promise<void>)[]} */\n const indexTasks = []\n /** @type {{rgIdx: number, groupRows: number, columnPages: Record<string, ColumnPageStats>}[]} */\n const candidateGroups = []\n let groupStart = 0\n metadata.row_groups.forEach((rowGroup, rgIdx) => {\n const groupRows = Number(rowGroup.num_rows)\n const groupEnd = groupStart + groupRows\n const overlaps = groupRows > 0 && groupEnd > rowStart && groupStart < rowEnd\n groupStart = groupEnd\n if (!overlaps) return\n if (canSkipRowGroup({ rowGroup, physicalColumns, filter, strict: filterStrict, bloomFilters: bloomFiltersByGroup?.[rgIdx], schemaElements: elementsByPath })) return\n\n /** @type {Record<string, ColumnPageStats>} */\n const columnPages = {}\n let columnTaskCount = 0\n const scheduledOffsetPaths = new Set()\n let hasFilterIndex = false\n for (const columnName of filterColumns) {\n const columnIdx = physicalColumns.indexOf(columnName)\n if (columnIdx === -1) continue\n const chunk = rowGroup.columns[columnIdx]\n const meta = chunk?.meta_data\n if (!meta) continue\n if (!chunk.column_index_offset || !chunk.column_index_length) continue\n if (!chunk.offset_index_offset || !chunk.offset_index_length) continue\n const element = elementsByPath[columnName]\n if (!element) continue\n hasFilterIndex = true\n scheduledOffsetPaths.add(columnName)\n const columnIndexStart = Number(chunk.column_index_offset)\n const offsetIndexStart = Number(chunk.offset_index_offset)\n const columnIndexEnd = columnIndexStart + chunk.column_index_length\n const offsetIndexEnd = offsetIndexStart + chunk.offset_index_length\n indexRanges.push(\n { startByte: columnIndexStart, endByte: columnIndexEnd },\n { startByte: offsetIndexStart, endByte: offsetIndexEnd }\n )\n columnTaskCount++\n indexTasks.push(async prefetchedFile => {\n const [columnIndexBuffer, offsetIndexBuffer] = await Promise.all([\n prefetchedFile.slice(columnIndexStart, columnIndexEnd),\n prefetchedFile.slice(offsetIndexStart, offsetIndexEnd),\n ])\n const columnIndex = readColumnIndex({ view: new DataView(columnIndexBuffer), offset: 0 }, element, parsers)\n const offsetIndex = readOffsetIndex({ view: new DataView(offsetIndexBuffer), offset: 0 })\n pageLocationsByGroup[rgIdx][columnName] = offsetIndex.page_locations\n columnPages[columnName] = {\n minValues: columnIndex.min_values,\n maxValues: columnIndex.max_values,\n nullPages: columnIndex.null_pages,\n nullCounts: columnIndex.null_counts,\n pageStarts: offsetIndex.page_locations.map(page => Number(page.first_row_index)),\n element,\n }\n })\n }\n // Candidate ranges are shared by every selected column. Load their offset\n // indexes too so the planner can merge ranges that map to the same coarse\n // page instead of fetching and decoding that page more than once.\n if (hasFilterIndex) {\n for (const chunk of rowGroup.columns) {\n const meta = chunk.meta_data\n if (!meta) continue\n const columnName = meta.path_in_schema[0]\n const columnPath = meta.path_in_schema.join('.')\n if (columns && !columns.includes(columnName)) continue\n if (scheduledOffsetPaths.has(columnPath)) continue\n if (!chunk.offset_index_offset || !chunk.offset_index_length) continue\n scheduledOffsetPaths.add(columnPath)\n const offsetIndexStart = Number(chunk.offset_index_offset)\n const offsetIndexEnd = offsetIndexStart + chunk.offset_index_length\n indexRanges.push({ startByte: offsetIndexStart, endByte: offsetIndexEnd })\n columnTaskCount++\n indexTasks.push(async prefetchedFile => {\n const offsetIndexBuffer = await prefetchedFile.slice(offsetIndexStart, offsetIndexEnd)\n const offsetIndex = readOffsetIndex({ view: new DataView(offsetIndexBuffer), offset: 0 })\n pageLocationsByGroup[rgIdx][columnPath] = offsetIndex.page_locations\n })\n }\n }\n if (columnTaskCount) {\n candidateGroups.push({ rgIdx, groupRows, columnPages })\n }\n })\n\n if (indexTasks.length) {\n const prefetchedFile = prefetchAsyncBuffer(file, { fetches: coalesceByteRanges(indexRanges) })\n await Promise.all(indexTasks.map(task => task(prefetchedFile)))\n for (const { rgIdx, groupRows, columnPages } of candidateGroups) {\n pageRangesByGroup[rgIdx] = filterPageRanges(filter, columnPages, groupRows, filterStrict)\n }\n }\n return { pageRangesByGroup, pageLocationsByGroup }\n}\n\n/**\n * Merge overlapping or exactly touching byte ranges without adding bytes.\n *\n * @param {ByteRange[]} ranges\n * @returns {ByteRange[]}\n */\nfunction coalesceByteRanges(ranges) {\n const sorted = ranges\n .map(range => ({ ...range }))\n .sort((a, b) => a.startByte - b.startByte || a.endByte - b.endByte)\n /** @type {ByteRange[]} */\n const merged = []\n for (const range of sorted) {\n const last = merged[merged.length - 1]\n if (last && range.startByte <= last.endByte) {\n last.endByte = Math.max(last.endByte, range.endByte)\n } else {\n merged.push(range)\n }\n }\n return merged\n}\n\n/**\n * Build a lookup from physical paths to leaf schema elements.\n *\n * @param {SchemaTree} schemaTree\n * @returns {Record<string, SchemaElement>}\n */\nfunction physicalSchemaElements(schemaTree) {\n /** @type {Record<string, SchemaElement>} */\n const elements = {}\n /** @param {SchemaTree} node */\n function traverse(node) {\n if (node.children.length) {\n for (const child of node.children) traverse(child)\n } else {\n elements[node.path.join('.')] = node.element\n }\n }\n traverse(schemaTree)\n return elements\n}\n\n/**\n * Prefetch byte ranges from an AsyncBuffer.\n *\n * @param {AsyncBuffer} file\n * @param {{fetches: ByteRange[]}} options\n * @returns {AsyncBuffer}\n */\nexport function prefetchAsyncBuffer(file, { fetches }) {\n // fetch byte ranges from the file\n const promises = fetches.map(({ startByte, endByte }) => file.slice(startByte, endByte))\n return {\n byteLength: file.byteLength,\n slice(start, end = file.byteLength) {\n // find matching slice\n const index = fetches.findIndex(({ startByte, endByte }) => startByte <= start && end <= endByte)\n if (index < 0) {\n // fallback to direct read\n return file.slice(start, end)\n }\n if (fetches[index].startByte !== start || fetches[index].endByte !== end) {\n // slice a subrange of the prefetch\n const startOffset = start - fetches[index].startByte\n const endOffset = end - fetches[index].startByte\n if (promises[index] instanceof Promise) {\n return promises[index].then(buffer => buffer.slice(startOffset, endOffset))\n } else {\n return promises[index].slice(startOffset, endOffset)\n }\n } else {\n return promises[index]\n }\n },\n }\n}\n",
245
+ "import { DEFAULT_PARSERS } from './convert.js'\n\n/**\n * @import {DataReader, ParquetParsers, VariantMetadata} from '../src/types.js'\n */\n\nconst decoder = new TextDecoder()\n/** @type {WeakMap<object, Map<string, VariantMetadata>>} */\nconst metadataCache = new WeakMap()\n\n/**\n * Recursively decode variant structs into native values.\n *\n * @param {any} value\n * @param {ParquetParsers} [parsers]\n * @returns {any}\n */\nexport function decodeVariantColumn(value, parsers = DEFAULT_PARSERS) {\n if (Array.isArray(value)) {\n return value.map(entry => decodeVariantColumn(entry, parsers))\n }\n if (typeof value !== 'object') return value\n\n if ('metadata' in value) {\n const metadata = parseVariantMetadata(value.metadata)\n\n // Decode shredded fields from typed_value\n const shreddedFields = value.typed_value && decodeTypedValue(value.typed_value, metadata, parsers)\n\n // Decode binary value (may contain additional fields for partially shredded objects)\n const binaryValue = value.value && readVariant(makeReader(value.value), metadata, parsers)\n\n // Merge shredded and binary values for partially shredded objects\n if (shreddedFields && binaryValue) {\n return { ...binaryValue, ...shreddedFields }\n }\n return shreddedFields ?? binaryValue\n }\n\n return value\n}\n\n/**\n * Decode a shredded variant typed_value field.\n *\n * @param {any} typedValue\n * @param {VariantMetadata} metadata\n * @param {ParquetParsers} parsers\n * @returns {any}\n */\nfunction decodeTypedValue(typedValue, metadata, parsers) {\n if (typedValue instanceof Date) return typedValue\n\n // Handle {typed_value, value} wrapper - unwrap and recurse\n if (typedValue && typeof typedValue === 'object' && !Array.isArray(typedValue) && !(typedValue instanceof Uint8Array)) {\n if ('typed_value' in typedValue && typedValue.typed_value !== null && typedValue.typed_value !== undefined) {\n return decodeTypedValue(typedValue.typed_value, metadata, parsers)\n }\n if ('value' in typedValue && typedValue.value instanceof Uint8Array) {\n return readVariant(makeReader(typedValue.value), metadata, parsers)\n }\n if ('typed_value' in typedValue || 'value' in typedValue) {\n // both null/missing → field is null\n return null\n }\n // Shredded object: each field value gets decoded\n /** @type {Record<string, any>} */\n const result = {}\n for (const [key, field] of Object.entries(typedValue)) {\n if (!metadata.dictionary.includes(key)) continue\n result[key] = decodeTypedValue(field, metadata, parsers)\n }\n return result\n }\n\n // Uint8Array: decode as binary variant\n if (typedValue instanceof Uint8Array) {\n return readVariant(makeReader(typedValue), metadata, parsers)\n }\n\n // Arrays\n if (Array.isArray(typedValue)) {\n return typedValue.map(element => decodeTypedValue(element, metadata, parsers))\n }\n\n return typedValue\n}\n\n/**\n * @param {Uint8Array} bytes\n * @returns {DataReader}\n */\nfunction makeReader(bytes) {\n return { view: new DataView(bytes.buffer, bytes.byteOffset, bytes.byteLength), offset: 0 }\n}\n\n/**\n * Parse and cache variant metadata dictionary.\n *\n * @param {Uint8Array} bytes\n * @returns {VariantMetadata}\n */\nfunction parseVariantMetadata(bytes) {\n let bufferCache = metadataCache.get(bytes.buffer)\n if (!bufferCache) {\n bufferCache = new Map()\n metadataCache.set(bytes.buffer, bufferCache)\n }\n const key = `${bytes.byteOffset}:${bytes.byteLength}`\n const cached = bufferCache.get(key)\n if (cached) return cached\n\n const reader = makeReader(bytes)\n const header = reader.view.getUint8(reader.offset++)\n const version = header & 0x0f\n if (version !== 1) throw new Error(`parquet unsupported variant metadata version: ${version}`)\n const sorted = (header >> 4 & 0x1) === 1\n const offsetSize = (header >> 6 & 0x3) + 1\n\n const dictionarySize = readUnsigned(reader, offsetSize)\n\n const offsets = new Array(dictionarySize + 1)\n for (let i = 0; i < offsets.length; i++) {\n offsets[i] = readUnsigned(reader, offsetSize)\n }\n\n const base = reader.offset\n const dictionary = new Array(dictionarySize)\n for (let i = 0; i < dictionarySize; i++) {\n const start = offsets[i]\n const end = offsets[i + 1]\n const strBytes = new Uint8Array(bytes.buffer, bytes.byteOffset + base + start, end - start)\n dictionary[i] = decoder.decode(strBytes)\n }\n\n const metadata = { dictionary, sorted }\n bufferCache.set(key, metadata)\n return metadata\n}\n\n/**\n * @param {DataReader} reader\n * @param {number} byteWidth\n * @returns {number}\n */\nfunction readUnsigned(reader, byteWidth) {\n let value = 0\n for (let i = 0; i < byteWidth; i++) {\n value |= reader.view.getUint8(reader.offset + i) << i * 8\n }\n reader.offset += byteWidth\n return value\n}\n\n/**\n * @param {DataReader} reader\n * @param {VariantMetadata} metadata\n * @param {ParquetParsers} parsers\n * @returns {any}\n */\nfunction readVariant(reader, metadata, parsers) {\n const typeByte = reader.view.getUint8(reader.offset++)\n const basicType = typeByte & 0x3\n const header = typeByte >> 2\n if (basicType === 0) return readVariantPrimitive(reader, header, parsers)\n if (basicType === 2) return readVariantObject(reader, header, metadata, parsers)\n if (basicType === 3) return readVariantArray(reader, header, metadata, parsers)\n // else short string\n const bytes = new Uint8Array(reader.view.buffer, reader.view.byteOffset + reader.offset, header)\n reader.offset += header\n return decoder.decode(bytes)\n}\n\n/**\n * @param {DataReader} reader\n * @param {number} typeId\n * @param {ParquetParsers} parsers\n * @returns {any}\n */\nfunction readVariantPrimitive(reader, typeId, parsers) {\n switch (typeId) {\n case 0: return null\n case 1: return true\n case 2: return false\n case 3: {\n const value = reader.view.getInt8(reader.offset)\n reader.offset += 1\n return value\n }\n case 4: {\n const value = reader.view.getInt16(reader.offset, true)\n reader.offset += 2\n return value\n }\n case 5: {\n const value = reader.view.getInt32(reader.offset, true)\n reader.offset += 4\n return value\n }\n case 6: {\n const value = reader.view.getBigInt64(reader.offset, true)\n reader.offset += 8\n return value\n }\n case 7: {\n const value = reader.view.getFloat64(reader.offset, true)\n reader.offset += 8\n return value\n }\n case 8:\n return readVariantDecimal(reader, 4)\n case 9:\n return readVariantDecimal(reader, 8)\n case 10:\n return readVariantDecimal(reader, 16)\n case 11: {\n const value = reader.view.getInt32(reader.offset, true)\n reader.offset += 4\n return parsers.dateFromDays(value)\n }\n case 12: // timestamp_micros (utc)\n case 13: { // timestamp_micros_ntz (no timezone)\n const value = reader.view.getBigInt64(reader.offset, true)\n reader.offset += 8\n return parsers.timestampFromMicroseconds(value)\n }\n case 14: {\n const value = reader.view.getFloat32(reader.offset, true)\n reader.offset += 4\n return value\n }\n case 15:\n return readVariantBinary(reader)\n case 16: {\n const bytes = readVariantBinary(reader)\n return decoder.decode(bytes)\n }\n case 17: {\n // time: microseconds since midnight\n const value = reader.view.getBigInt64(reader.offset, true)\n reader.offset += 8\n return value\n }\n case 18: // timestamp_nanos (utc)\n case 19: { // timestamp_nanos_ntz (no timezone)\n const value = reader.view.getBigInt64(reader.offset, true)\n reader.offset += 8\n return parsers.timestampFromNanoseconds(value)\n }\n case 20: {\n const bytes = new Uint8Array(reader.view.buffer, reader.view.byteOffset + reader.offset, 16)\n reader.offset += 16\n const hex = Array.from(bytes, b => b.toString(16).padStart(2, '0')).join('')\n return `${hex.slice(0, 8)}-${hex.slice(8, 12)}-${hex.slice(12, 16)}-${hex.slice(16, 20)}-${hex.slice(20)}`\n }\n default:\n throw new Error(`parquet unsupported variant primitive type: ${typeId}`)\n }\n}\n\n/**\n * @param {DataReader} reader\n * @param {number} header\n * @param {VariantMetadata} metadata\n * @param {ParquetParsers} parsers\n * @returns {Record<string, any>}\n */\nfunction readVariantObject(reader, header, metadata, parsers) {\n const offsetWidth = (header & 0x3) + 1\n const idWidth = (header >> 2 & 0x3) + 1\n const isLarge = header >> 4 & 0x1\n const numElements = isLarge ? readUnsigned(reader, 4) : reader.view.getUint8(reader.offset++)\n\n /** @type {number[]} */\n const fieldIds = new Array(numElements)\n for (let i = 0; i < numElements; i++) {\n fieldIds[i] = readUnsigned(reader, idWidth)\n }\n\n const offsets = new Array(numElements + 1)\n for (let i = 0; i < offsets.length; i++) {\n offsets[i] = readUnsigned(reader, offsetWidth)\n }\n\n /** @type {Record<string, any>} */\n const out = {}\n for (let i = 0; i < numElements; i++) {\n const key = metadata.dictionary[fieldIds[i]]\n // Read value at the given offset\n const valueReader = {\n view: reader.view,\n offset: reader.offset + offsets[i],\n }\n out[key] = readVariant(valueReader, metadata, parsers)\n }\n reader.offset += offsets[offsets.length - 1]\n return out\n}\n\n/**\n * @param {DataReader} reader\n * @param {number} header\n * @param {VariantMetadata} metadata\n * @param {ParquetParsers} parsers\n * @returns {any[]}\n */\nfunction readVariantArray(reader, header, metadata, parsers) {\n const fieldOffsetSize = header & 0x3\n const isLarge = header >> 2 & 0x1\n const offsetWidth = fieldOffsetSize + 1\n const numElements = readUnsigned(reader, isLarge ? 4 : 1)\n\n const offsets = new Array(numElements + 1)\n for (let i = 0; i < offsets.length; i++) {\n offsets[i] = readUnsigned(reader, offsetWidth)\n }\n\n const valuesStart = reader.offset\n const result = new Array(numElements)\n for (let i = 0; i < numElements; i++) {\n const valueReader = {\n view: reader.view,\n offset: valuesStart + offsets[i],\n }\n result[i] = readVariant(valueReader, metadata, parsers)\n }\n reader.offset = valuesStart + offsets[offsets.length - 1]\n return result\n}\n\n/**\n * @param {DataReader} reader\n * @param {number} width\n * @returns {number}\n */\nfunction readVariantDecimal(reader, width) {\n const scale = reader.view.getUint8(reader.offset)\n reader.offset += 1\n let unscaled\n if (width === 4) {\n unscaled = BigInt(reader.view.getInt32(reader.offset, true))\n reader.offset += 4\n } else if (width === 8) {\n unscaled = reader.view.getBigInt64(reader.offset, true)\n reader.offset += 8\n } else {\n const low = reader.view.getBigUint64(reader.offset, true)\n const high = reader.view.getBigInt64(reader.offset + 8, true)\n unscaled = high << 64n | low\n reader.offset += 16\n }\n\n return Number(unscaled) * 10 ** -scale\n}\n\n/**\n * @param {DataReader} reader\n * @returns {Uint8Array}\n */\nfunction readVariantBinary(reader) {\n const length = reader.view.getUint32(reader.offset, true)\n reader.offset += 4\n const bytes = new Uint8Array(reader.view.buffer, reader.view.byteOffset + reader.offset, length)\n reader.offset += length\n return bytes\n}\n",
246
+ "import { getMaxDefinitionLevel, isListLike, isMapLike } from './schema.js'\nimport { decodeVariantColumn } from './variant.js'\n\n/**\n * Reconstructs a complex nested structure from flat arrays of values and\n * definition and repetition levels, according to Dremel encoding.\n *\n * @param {any[]} output\n * @param {number[] | undefined} definitionLevels\n * @param {number[]} repetitionLevels\n * @param {DecodedArray} values\n * @param {SchemaTree[]} schemaPath\n * @returns {DecodedArray}\n */\nexport function assembleLists(output, definitionLevels, repetitionLevels, values, schemaPath) {\n const maxDefinitionLevel = getMaxDefinitionLevel(schemaPath)\n // If no def/rep levels, synthesize def levels at max\n if (!definitionLevels?.length && !repetitionLevels.length) {\n if (!maxDefinitionLevel || !values.length) return values\n definitionLevels = new Array(values.length).fill(maxDefinitionLevel)\n }\n const n = definitionLevels?.length || repetitionLevels.length\n const repetitionPath = schemaPath.map(({ element }) => element.repetition_type)\n let valueIndex = 0\n\n // Track state of nested structures\n const containerStack = [output]\n let currentContainer = output\n let currentDepth = 0 // schema depth\n let currentDefLevel = 0 // list depth\n let currentRepLevel = 0\n\n if (repetitionLevels[0]) {\n // continue previous row\n while (currentDepth < repetitionPath.length - 2 && currentRepLevel < repetitionLevels[0]) {\n currentDepth++\n if (repetitionPath[currentDepth] !== 'REQUIRED') {\n // go into last list\n currentContainer = currentContainer.at(-1)\n containerStack.push(currentContainer)\n currentDefLevel++\n }\n if (repetitionPath[currentDepth] === 'REPEATED') currentRepLevel++\n }\n }\n\n for (let i = 0; i < n; i++) {\n // assert(currentDefLevel === containerStack.length - 1)\n const def = definitionLevels?.length ? definitionLevels[i] : maxDefinitionLevel\n const rep = repetitionLevels[i]\n\n // Pop up to start of rep level\n while (currentDepth && (rep < currentRepLevel || repetitionPath[currentDepth] !== 'REPEATED')) {\n if (repetitionPath[currentDepth] !== 'REQUIRED') {\n containerStack.pop()\n currentDefLevel--\n }\n if (repetitionPath[currentDepth] === 'REPEATED') currentRepLevel--\n currentDepth--\n }\n // @ts-expect-error won't be empty\n currentContainer = containerStack.at(-1)\n\n // Go deeper to end of definition level\n while (\n (currentDepth < repetitionPath.length - 2 || repetitionPath[currentDepth + 1] === 'REPEATED') &&\n (currentDefLevel < def || repetitionPath[currentDepth + 1] === 'REQUIRED')\n ) {\n currentDepth++\n if (repetitionPath[currentDepth] !== 'REQUIRED') {\n /** @type {any[]} */\n const newList = []\n currentContainer.push(newList)\n currentContainer = newList\n containerStack.push(newList)\n currentDefLevel++\n }\n if (repetitionPath[currentDepth] === 'REPEATED') currentRepLevel++\n }\n\n // Add value or null based on definition level\n if (def === maxDefinitionLevel) {\n // assert(currentDepth === maxDefinitionLevel || currentDepth === repetitionPath.length - 2)\n currentContainer.push(values[valueIndex++])\n } else if (currentDepth === repetitionPath.length - 2) {\n currentContainer.push(null)\n } else {\n currentContainer.push([])\n }\n }\n\n // Handle edge cases for empty inputs or single-level data\n if (!output.length) {\n // return max definition level of nested lists\n for (let i = 0; i < maxDefinitionLevel; i++) {\n /** @type {any[]} */\n const newList = []\n currentContainer.push(newList)\n currentContainer = newList\n }\n }\n\n return output\n}\n\n/**\n * Assemble a nested structure from subcolumn data.\n *\n * @param {Map<string, DecodedArray>} subcolumnData\n * @param {SchemaTree} schema top-level schema element\n * @param {ParquetParsers} parsers\n * @param {number} [depth] depth of nested structure\n */\nexport function assembleNested(subcolumnData, schema, parsers, depth = 0) {\n const path = schema.path.join('.')\n const optional = schema.element.repetition_type === 'OPTIONAL'\n const nextDepth = optional ? depth + 1 : depth\n\n if (isListLike(schema)) {\n let sublist = schema.children[0]\n let subDepth = nextDepth\n if (sublist.children.length === 1) {\n sublist = sublist.children[0]\n subDepth++\n }\n assembleNested(subcolumnData, sublist, parsers, subDepth)\n\n const subcolumn = sublist.path.join('.')\n const values = subcolumnData.get(subcolumn)\n if (!values) throw new Error('parquet list column missing values')\n if (optional) flattenAtDepth(values, depth)\n subcolumnData.set(path, values)\n subcolumnData.delete(subcolumn)\n return\n }\n\n if (isMapLike(schema)) {\n const mapName = schema.children[0].element.name\n\n // Assemble keys and values\n assembleNested(subcolumnData, schema.children[0].children[0], parsers, nextDepth + 1)\n assembleNested(subcolumnData, schema.children[0].children[1], parsers, nextDepth + 1)\n\n const keys = subcolumnData.get(`${path}.${mapName}.key`)\n const values = subcolumnData.get(`${path}.${mapName}.value`)\n\n if (!keys) throw new Error('parquet map column missing keys')\n if (!values) throw new Error('parquet map column missing values')\n if (keys.length !== values.length) {\n throw new Error('parquet map column key/value length mismatch')\n }\n\n const out = assembleMaps(keys, values, nextDepth)\n if (optional) flattenAtDepth(out, depth)\n\n subcolumnData.delete(`${path}.${mapName}.key`)\n subcolumnData.delete(`${path}.${mapName}.value`)\n subcolumnData.set(path, out)\n return\n }\n\n // Struct-like column\n if (schema.children.length) {\n // construct a meta struct and then invert\n const invertDepth = schema.element.repetition_type === 'REQUIRED' ? depth : depth + 1\n /** @type {Record<string, any>} */\n const struct = {}\n for (const child of schema.children) {\n assembleNested(subcolumnData, child, parsers, invertDepth)\n const childData = subcolumnData.get(child.path.join('.'))\n if (!childData) throw new Error('parquet struct missing child data')\n struct[child.element.name] = childData\n }\n // remove children\n for (const child of schema.children) {\n subcolumnData.delete(child.path.join('.'))\n }\n\n // invert struct by depth\n let inverted = invertStruct(struct, invertDepth)\n if (schema.element.logical_type?.type === 'VARIANT') {\n inverted = decodeVariantColumn(inverted, parsers)\n }\n if (optional) flattenAtDepth(inverted, depth)\n subcolumnData.set(path, inverted)\n }\n}\n\n/**\n * @import {DecodedArray, ParquetParsers, SchemaTree} from '../src/types.js'\n * @param {DecodedArray} arr\n * @param {number} depth\n */\nfunction flattenAtDepth(arr, depth) {\n for (let i = 0; i < arr.length; i++) {\n if (depth) {\n flattenAtDepth(arr[i], depth - 1)\n } else {\n arr[i] = arr[i][0]\n }\n }\n}\n\n/**\n * @param {DecodedArray} keys\n * @param {DecodedArray} values\n * @param {number} depth\n * @returns {any[]}\n */\nfunction assembleMaps(keys, values, depth) {\n const out = []\n for (let i = 0; i < keys.length; i++) {\n if (depth) {\n out.push(assembleMaps(keys[i], values[i], depth - 1)) // go deeper\n } else {\n if (keys[i]) {\n /** @type {Record<string, any>} */\n const obj = {}\n for (let j = 0; j < keys[i].length; j++) {\n const value = values[i][j]\n obj[keys[i][j]] = value === undefined ? null : value\n }\n out.push(obj)\n } else {\n out.push(undefined)\n }\n }\n }\n return out\n}\n\n/**\n * Invert a struct-like object by depth.\n *\n * @param {Record<string, any[]>} struct\n * @param {number} depth\n * @returns {any[]}\n */\nfunction invertStruct(struct, depth) {\n const keys = Object.keys(struct)\n const length = struct[keys[0]]?.length\n const out = []\n for (let i = 0; i < length; i++) {\n /** @type {Record<string, any>} */\n const obj = {}\n for (const key of keys) {\n if (struct[key].length !== length) throw new Error('parquet struct parsing error')\n obj[key] = struct[key][i]\n }\n if (depth) {\n out.push(invertStruct(obj, depth - 1)) // deeper\n } else {\n out.push(obj)\n }\n }\n return out\n}\n",
247
+ "/**\n * @import {DataReader} from '../src/types.js'\n */\n\nimport { readVarInt, readZigZagBigInt } from './thrift.js'\n\n/**\n * @param {DataReader} reader\n * @param {number} count number of values to read\n * @param {Int32Array | BigInt64Array} output\n */\nexport function deltaBinaryUnpack(reader, count, output) {\n const int32 = output instanceof Int32Array\n const blockSize = readVarInt(reader)\n const miniblockPerBlock = readVarInt(reader)\n readVarInt(reader) // assert(=== count)\n let value = readZigZagBigInt(reader) // first value\n let outputIndex = 0\n output[outputIndex++] = int32 ? Number(value) : value\n\n const valuesPerMiniblock = blockSize / miniblockPerBlock\n\n while (outputIndex < count) {\n // new block\n const minDelta = readZigZagBigInt(reader)\n const bitWidths = new Uint8Array(miniblockPerBlock)\n for (let i = 0; i < miniblockPerBlock; i++) {\n bitWidths[i] = reader.view.getUint8(reader.offset++)\n }\n\n for (let i = 0; i < miniblockPerBlock && outputIndex < count; i++) {\n // new miniblock\n const bitWidth = BigInt(bitWidths[i])\n if (bitWidth) {\n let bitpackPos = 0n\n let miniblockCount = valuesPerMiniblock\n const mask = (1n << bitWidth) - 1n\n while (miniblockCount && outputIndex < count) {\n let bits = BigInt(reader.view.getUint8(reader.offset)) >> bitpackPos & mask // TODO: don't re-read value every time\n bitpackPos += bitWidth\n while (bitpackPos >= 8) {\n bitpackPos -= 8n\n reader.offset++\n if (bitpackPos) {\n bits |= BigInt(reader.view.getUint8(reader.offset)) << bitWidth - bitpackPos & mask\n }\n }\n const delta = minDelta + bits\n value += delta\n output[outputIndex++] = int32 ? Number(value) : value\n miniblockCount--\n }\n if (miniblockCount) {\n // consume leftover miniblock\n reader.offset += Math.ceil((miniblockCount * Number(bitWidth) + Number(bitpackPos)) / 8)\n }\n } else {\n for (let j = 0; j < valuesPerMiniblock && outputIndex < count; j++) {\n value += minDelta\n output[outputIndex++] = int32 ? Number(value) : value\n }\n }\n }\n }\n}\n\n/**\n * @param {DataReader} reader\n * @param {number} count\n * @param {Uint8Array[]} output\n */\nexport function deltaLengthByteArray(reader, count, output) {\n const lengths = new Int32Array(count)\n deltaBinaryUnpack(reader, count, lengths)\n for (let i = 0; i < count; i++) {\n output[i] = new Uint8Array(reader.view.buffer, reader.view.byteOffset + reader.offset, lengths[i])\n reader.offset += lengths[i]\n }\n}\n\n/**\n * @param {DataReader} reader\n * @param {number} count\n * @param {Uint8Array[]} output\n */\nexport function deltaByteArray(reader, count, output) {\n const prefixData = new Int32Array(count)\n deltaBinaryUnpack(reader, count, prefixData)\n const suffixData = new Int32Array(count)\n deltaBinaryUnpack(reader, count, suffixData)\n\n for (let i = 0; i < count; i++) {\n const suffix = new Uint8Array(reader.view.buffer, reader.view.byteOffset + reader.offset, suffixData[i])\n if (prefixData[i]) {\n // copy from previous value\n output[i] = new Uint8Array(prefixData[i] + suffixData[i])\n output[i].set(output[i - 1].subarray(0, prefixData[i]))\n output[i].set(suffix, prefixData[i])\n } else {\n output[i] = suffix\n }\n reader.offset += suffixData[i]\n }\n}\n",
248
+ "/**\n * @import {DataReader, DecodedArray, ParquetType} from '../src/types.js'\n */\n\nimport { readVarInt } from './thrift.js'\n\n/**\n * Read values from a run-length encoded/bit-packed hybrid encoding.\n *\n * If length is zero, then read int32 length at the start.\n *\n * @param {DataReader} reader\n * @param {number} width - bitwidth\n * @param {DecodedArray} output\n * @param {number} [length] - length of the encoded data\n */\nexport function readRleBitPackedHybrid(reader, width, output, length) {\n if (length === undefined) {\n length = reader.view.getUint32(reader.offset, true)\n reader.offset += 4\n }\n const startOffset = reader.offset\n let seen = 0\n while (seen < output.length) {\n const header = readVarInt(reader)\n if (header & 1) {\n // bit-packed\n seen = readBitPacked(reader, header, width, output, seen)\n } else {\n // rle\n const count = header >>> 1\n readRle(reader, count, width, output, seen)\n seen += count\n }\n }\n reader.offset = startOffset + length // duckdb writes an empty block\n}\n\n/**\n * Run-length encoding: read value with bitWidth and repeat it count times.\n *\n * @param {DataReader} reader\n * @param {number} count\n * @param {number} bitWidth\n * @param {DecodedArray} output\n * @param {number} seen\n */\nfunction readRle(reader, count, bitWidth, output, seen) {\n const width = bitWidth + 7 >> 3\n let value = 0\n for (let i = 0; i < width; i++) {\n value |= reader.view.getUint8(reader.offset++) << (i << 3)\n }\n // assert(value < 1 << bitWidth)\n\n // repeat value count times\n for (let i = 0; i < count; i++) {\n output[seen + i] = value\n }\n}\n\n/**\n * Read a bit-packed run of the rle/bitpack hybrid.\n * Supports width > 8 (crossing bytes).\n *\n * @param {DataReader} reader\n * @param {number} header - bit-pack header\n * @param {number} bitWidth\n * @param {DecodedArray} output\n * @param {number} seen\n * @returns {number} total output values so far\n */\nfunction readBitPacked(reader, header, bitWidth, output, seen) {\n let count = header >> 1 << 3 // values to read\n const mask = (1 << bitWidth) - 1\n\n let data = 0\n if (reader.offset < reader.view.byteLength) {\n data = reader.view.getUint8(reader.offset++)\n } else if (mask) {\n // sometimes out-of-bounds reads are masked out\n throw new Error(`parquet bitpack offset ${reader.offset} out of range`)\n }\n let left = 8\n let right = 0\n\n // read values\n while (count) {\n // if we have crossed a byte boundary, shift the data\n if (right > 8) {\n right -= 8\n left -= 8\n data >>>= 8\n } else if (left - right < bitWidth) {\n // if we don't have bitWidth number of bits to read, read next byte\n data |= reader.view.getUint8(reader.offset) << left\n reader.offset++\n left += 8\n } else {\n if (seen < output.length) {\n // emit value\n output[seen++] = data >> right & mask\n }\n count--\n right += bitWidth\n }\n }\n\n return seen\n}\n\n/**\n * @param {DataReader} reader\n * @param {number} count\n * @param {ParquetType} type\n * @param {number | undefined} typeLength\n * @returns {DecodedArray}\n */\nexport function byteStreamSplit(reader, count, type, typeLength) {\n const width = byteWidth(type, typeLength)\n const bytes = new Uint8Array(count * width)\n for (let b = 0; b < width; b++) {\n for (let i = 0; i < count; i++) {\n bytes[i * width + b] = reader.view.getUint8(reader.offset++)\n }\n }\n // interpret bytes as typed array\n if (type === 'FLOAT') return new Float32Array(bytes.buffer)\n else if (type === 'DOUBLE') return new Float64Array(bytes.buffer)\n else if (type === 'INT32') return new Int32Array(bytes.buffer)\n else if (type === 'INT64') return new BigInt64Array(bytes.buffer)\n else if (type === 'FIXED_LEN_BYTE_ARRAY') {\n // split into arrays of typeLength\n const split = new Array(count)\n for (let i = 0; i < count; i++) {\n split[i] = bytes.subarray(i * width, (i + 1) * width)\n }\n return split\n }\n throw new Error(`parquet byte_stream_split unsupported type: ${type}`)\n}\n\n/**\n * @param {ParquetType} type\n * @param {number | undefined} typeLength\n * @returns {number}\n */\nfunction byteWidth(type, typeLength) {\n switch (type) {\n case 'INT32':\n case 'FLOAT':\n return 4\n case 'INT64':\n case 'DOUBLE':\n return 8\n case 'FIXED_LEN_BYTE_ARRAY':\n if (!typeLength) throw new Error('parquet byteWidth missing type_length')\n return typeLength\n default:\n throw new Error(`parquet unsupported type: ${type}`)\n }\n}\n",
249
+ "/**\n * Read `count` values of the given type from the reader.view.\n *\n * @param {DataReader} reader - buffer to read data from\n * @param {ParquetType} type - parquet type of the data\n * @param {number} count - number of values to read\n * @param {number | undefined} fixedLength - length of each fixed length byte array\n * @returns {DecodedArray} array of values\n */\nexport function readPlain(reader, type, count, fixedLength) {\n if (count === 0) return []\n if (type === 'BOOLEAN') {\n return readPlainBoolean(reader, count)\n } else if (type === 'INT32') {\n return readPlainInt32(reader, count)\n } else if (type === 'INT64') {\n return readPlainInt64(reader, count)\n } else if (type === 'INT96') {\n return readPlainInt96(reader, count)\n } else if (type === 'FLOAT') {\n return readPlainFloat(reader, count)\n } else if (type === 'DOUBLE') {\n return readPlainDouble(reader, count)\n } else if (type === 'BYTE_ARRAY') {\n return readPlainByteArray(reader, count)\n } else if (type === 'FIXED_LEN_BYTE_ARRAY') {\n if (!fixedLength) throw new Error('parquet missing fixed length')\n return readPlainByteArrayFixed(reader, count, fixedLength)\n } else {\n throw new Error(`parquet unhandled type: ${type}`)\n }\n}\n\n/**\n * Read `count` boolean values.\n *\n * @param {DataReader} reader\n * @param {number} count\n * @returns {boolean[]}\n */\nfunction readPlainBoolean(reader, count) {\n const values = new Array(count)\n for (let i = 0; i < count; i++) {\n const byteOffset = reader.offset + (i / 8 | 0)\n const bitOffset = i % 8\n const byte = reader.view.getUint8(byteOffset)\n values[i] = (byte & 1 << bitOffset) !== 0\n }\n reader.offset += Math.ceil(count / 8)\n return values\n}\n\n/**\n * Read `count` int32 values.\n *\n * @param {DataReader} reader\n * @param {number} count\n * @returns {Int32Array}\n */\nfunction readPlainInt32(reader, count) {\n const values = (reader.view.byteOffset + reader.offset) % 4\n ? new Int32Array(align(reader.view.buffer, reader.view.byteOffset + reader.offset, count * 4))\n : new Int32Array(reader.view.buffer, reader.view.byteOffset + reader.offset, count)\n reader.offset += count * 4\n return values\n}\n\n/**\n * Read `count` int64 values.\n *\n * @param {DataReader} reader\n * @param {number} count\n * @returns {BigInt64Array}\n */\nfunction readPlainInt64(reader, count) {\n const values = (reader.view.byteOffset + reader.offset) % 8\n ? new BigInt64Array(align(reader.view.buffer, reader.view.byteOffset + reader.offset, count * 8))\n : new BigInt64Array(reader.view.buffer, reader.view.byteOffset + reader.offset, count)\n reader.offset += count * 8\n return values\n}\n\n/**\n * Read `count` int96 values.\n *\n * @param {DataReader} reader\n * @param {number} count\n * @returns {bigint[]}\n */\nfunction readPlainInt96(reader, count) {\n const values = new Array(count)\n for (let i = 0; i < count; i++) {\n const low = reader.view.getBigInt64(reader.offset + i * 12, true)\n const high = reader.view.getInt32(reader.offset + i * 12 + 8, true)\n values[i] = BigInt(high) << 64n | low\n }\n reader.offset += count * 12\n return values\n}\n\n/**\n * Read `count` float values.\n *\n * @param {DataReader} reader\n * @param {number} count\n * @returns {Float32Array}\n */\nfunction readPlainFloat(reader, count) {\n const values = (reader.view.byteOffset + reader.offset) % 4\n ? new Float32Array(align(reader.view.buffer, reader.view.byteOffset + reader.offset, count * 4))\n : new Float32Array(reader.view.buffer, reader.view.byteOffset + reader.offset, count)\n reader.offset += count * 4\n return values\n}\n\n/**\n * Read `count` double values.\n *\n * @param {DataReader} reader\n * @param {number} count\n * @returns {Float64Array}\n */\nfunction readPlainDouble(reader, count) {\n const values = (reader.view.byteOffset + reader.offset) % 8\n ? new Float64Array(align(reader.view.buffer, reader.view.byteOffset + reader.offset, count * 8))\n : new Float64Array(reader.view.buffer, reader.view.byteOffset + reader.offset, count)\n reader.offset += count * 8\n return values\n}\n\n/**\n * Read `count` byte array values.\n *\n * @param {DataReader} reader\n * @param {number} count\n * @returns {Uint8Array[]}\n */\nfunction readPlainByteArray(reader, count) {\n const values = new Array(count)\n for (let i = 0; i < count; i++) {\n const length = reader.view.getUint32(reader.offset, true)\n reader.offset += 4\n values[i] = new Uint8Array(reader.view.buffer, reader.view.byteOffset + reader.offset, length)\n reader.offset += length\n }\n return values\n}\n\n/**\n * Read a fixed length byte array.\n *\n * @param {DataReader} reader\n * @param {number} count\n * @param {number} fixedLength\n * @returns {Uint8Array[]}\n */\nfunction readPlainByteArrayFixed(reader, count, fixedLength) {\n // assert(reader.view.byteLength - reader.offset >= count * fixedLength)\n const values = new Array(count)\n for (let i = 0; i < count; i++) {\n values[i] = new Uint8Array(reader.view.buffer, reader.view.byteOffset + reader.offset, fixedLength)\n reader.offset += fixedLength\n }\n return values\n}\n\n/**\n * Create a new buffer with the offset and size.\n *\n * @import {DataReader, DecodedArray, ParquetType} from '../src/types.js'\n * @param {ArrayBufferLike} buffer\n * @param {number} offset\n * @param {number} size\n * @returns {ArrayBuffer}\n */\nfunction align(buffer, offset, size) {\n const aligned = new ArrayBuffer(size)\n new Uint8Array(aligned).set(new Uint8Array(buffer, offset, size))\n return aligned\n}\n",
250
+ "/**\n * The MIT License (MIT)\n * Copyright (c) 2016 Zhipeng Jia\n * https://github.com/zhipeng-jia/snappyjs\n */\n\nconst WORD_MASK = [0, 0xff, 0xffff, 0xffffff, 0xffffffff]\n\n/**\n * Copy bytes from one array to another\n *\n * @param {Uint8Array} fromArray source array\n * @param {number} fromPos source position\n * @param {Uint8Array} toArray destination array\n * @param {number} toPos destination position\n * @param {number} length number of bytes to copy\n */\nfunction copyBytes(fromArray, fromPos, toArray, toPos, length) {\n for (let i = 0; i < length; i++) {\n toArray[toPos + i] = fromArray[fromPos + i]\n }\n}\n\n/**\n * Decompress snappy data.\n * Accepts an output buffer to avoid allocating a new buffer for each call.\n *\n * @param {Uint8Array} input compressed data\n * @param {Uint8Array} output output buffer\n */\nexport function snappyUncompress(input, output) {\n const inputLength = input.byteLength\n const outputLength = output.byteLength\n let pos = 0\n let outPos = 0\n\n // skip preamble (contains uncompressed length as varint)\n while (pos < inputLength) {\n const c = input[pos]\n pos++\n if (c < 128) {\n break\n }\n }\n if (outputLength && pos >= inputLength) {\n throw new Error('invalid snappy length header')\n }\n\n while (pos < inputLength) {\n const c = input[pos]\n let len = 0\n pos++\n\n if (pos >= inputLength) {\n throw new Error('missing eof marker')\n }\n\n // There are two types of elements, literals and copies (back references)\n if ((c & 0x3) === 0) {\n // Literals are uncompressed data stored directly in the byte stream\n let len = (c >>> 2) + 1\n // Longer literal length is encoded in multiple bytes\n if (len > 60) {\n if (pos + 3 >= inputLength) {\n throw new Error('snappy error literal pos + 3 >= inputLength')\n }\n const lengthSize = len - 60 // length bytes - 1\n len = input[pos]\n + (input[pos + 1] << 8)\n + (input[pos + 2] << 16)\n + (input[pos + 3] << 24)\n len = (len & WORD_MASK[lengthSize]) + 1\n pos += lengthSize\n }\n if (pos + len > inputLength) {\n throw new Error('snappy error literal exceeds input length')\n }\n copyBytes(input, pos, output, outPos, len)\n pos += len\n outPos += len\n } else {\n // Copy elements\n let offset = 0 // offset back from current position to read\n switch (c & 0x3) {\n case 1:\n // Copy with 1-byte offset\n len = (c >>> 2 & 0x7) + 4\n offset = input[pos] + (c >>> 5 << 8)\n pos++\n break\n case 2:\n // Copy with 2-byte offset\n if (inputLength <= pos + 1) {\n throw new Error('snappy error end of input')\n }\n len = (c >>> 2) + 1\n offset = input[pos] + (input[pos + 1] << 8)\n pos += 2\n break\n case 3:\n // Copy with 4-byte offset\n if (inputLength <= pos + 3) {\n throw new Error('snappy error end of input')\n }\n len = (c >>> 2) + 1\n offset = input[pos]\n + (input[pos + 1] << 8)\n + (input[pos + 2] << 16)\n + (input[pos + 3] << 24)\n pos += 4\n break\n default:\n break\n }\n if (offset === 0 || isNaN(offset)) {\n throw new Error(`invalid offset ${offset} pos ${pos} inputLength ${inputLength}`)\n }\n if (offset > outPos) {\n throw new Error('cannot copy from before start of buffer')\n }\n copyBytes(output, outPos - offset, output, outPos, len)\n outPos += len\n }\n }\n\n if (outPos !== outputLength) throw new Error('premature end of input')\n}\n",
251
+ "/**\n * @import {ColumnDecoder, CompressionCodec, Compressors, DataPage, DataPageHeader, DataPageHeaderV2, DataReader, DecodedArray, PageHeader, SchemaTree} from '../src/types.js'\n */\n\nimport { deltaBinaryUnpack, deltaByteArray, deltaLengthByteArray } from './delta.js'\nimport { byteStreamSplit, readRleBitPackedHybrid } from './encoding.js'\nimport { readPlain } from './plain.js'\nimport { getMaxDefinitionLevel, getMaxRepetitionLevel } from './schema.js'\nimport { snappyUncompress } from './snappy.js'\n\n/**\n * Read a data page from uncompressed reader.\n *\n * @param {Uint8Array} bytes raw page data (should already be decompressed)\n * @param {DataPageHeader} daph data page header\n * @param {ColumnDecoder} columnDecoder\n * @returns {DataPage} definition levels, repetition levels, and array of values\n */\nexport function readDataPage(bytes, daph, { type, element, schemaPath }) {\n const view = new DataView(bytes.buffer, bytes.byteOffset, bytes.byteLength)\n const reader = { view, offset: 0 }\n /** @type {DecodedArray} */\n let dataPage\n\n // repetition and definition levels\n const repetitionLevels = readRepetitionLevels(reader, daph, schemaPath)\n // assert(!repetitionLevels.length || repetitionLevels.length === daph.num_values)\n const { definitionLevels, numNulls } = readDefinitionLevels(reader, daph, schemaPath)\n // assert(!definitionLevels.length || definitionLevels.length === daph.num_values)\n\n // read values based on encoding\n const nValues = daph.num_values - numNulls\n if (daph.encoding === 'PLAIN') {\n dataPage = readPlain(reader, type, nValues, element.type_length)\n } else if (\n daph.encoding === 'PLAIN_DICTIONARY' ||\n daph.encoding === 'RLE_DICTIONARY' ||\n daph.encoding === 'RLE'\n ) {\n const bitWidth = type === 'BOOLEAN' ? 1 : view.getUint8(reader.offset++)\n if (bitWidth) {\n dataPage = new Array(nValues)\n if (type === 'BOOLEAN') {\n readRleBitPackedHybrid(reader, bitWidth, dataPage)\n dataPage = dataPage.map(x => !!x) // convert to boolean\n } else {\n // assert(daph.encoding.endsWith('_DICTIONARY'))\n readRleBitPackedHybrid(reader, bitWidth, dataPage, view.byteLength - reader.offset)\n }\n } else {\n dataPage = new Uint8Array(nValues) // nValue zeroes\n }\n } else if (daph.encoding === 'BYTE_STREAM_SPLIT') {\n dataPage = byteStreamSplit(reader, nValues, type, element.type_length)\n } else if (daph.encoding === 'DELTA_BINARY_PACKED') {\n const int32 = type === 'INT32'\n dataPage = int32 ? new Int32Array(nValues) : new BigInt64Array(nValues)\n deltaBinaryUnpack(reader, nValues, dataPage)\n } else if (daph.encoding === 'DELTA_LENGTH_BYTE_ARRAY') {\n dataPage = new Array(nValues)\n deltaLengthByteArray(reader, nValues, dataPage)\n } else {\n throw new Error(`parquet unsupported encoding: ${daph.encoding}`)\n }\n\n return { definitionLevels, repetitionLevels, dataPage }\n}\n\n/**\n * @param {DataReader} reader data view for the page\n * @param {DataPageHeader} daph data page header\n * @param {SchemaTree[]} schemaPath\n * @returns {any[]} repetition levels and number of bytes read\n */\nfunction readRepetitionLevels(reader, daph, schemaPath) {\n if (schemaPath.length > 1) {\n const maxRepetitionLevel = getMaxRepetitionLevel(schemaPath)\n if (maxRepetitionLevel) {\n const values = new Array(daph.num_values)\n readRleBitPackedHybrid(reader, bitWidth(maxRepetitionLevel), values)\n return values\n }\n }\n return []\n}\n\n/**\n * @param {DataReader} reader data view for the page\n * @param {DataPageHeader} daph data page header\n * @param {SchemaTree[]} schemaPath\n * @returns {{ definitionLevels: number[], numNulls: number }} definition levels\n */\nfunction readDefinitionLevels(reader, daph, schemaPath) {\n const maxDefinitionLevel = getMaxDefinitionLevel(schemaPath)\n if (!maxDefinitionLevel) return { definitionLevels: [], numNulls: 0 }\n\n const definitionLevels = new Array(daph.num_values)\n readRleBitPackedHybrid(reader, bitWidth(maxDefinitionLevel), definitionLevels)\n\n // count nulls\n let numNulls = daph.num_values\n for (const def of definitionLevels) {\n if (def === maxDefinitionLevel) numNulls--\n }\n if (numNulls === 0) definitionLevels.length = 0\n\n return { definitionLevels, numNulls }\n}\n\n/**\n * @param {Uint8Array} compressedBytes\n * @param {number} uncompressed_page_size\n * @param {CompressionCodec} codec\n * @param {Compressors | undefined} compressors\n * @returns {Uint8Array}\n */\nexport function decompressPage(compressedBytes, uncompressed_page_size, codec, compressors) {\n /** @type {Uint8Array} */\n let page\n const customDecompressor = compressors?.[codec]\n if (codec === 'UNCOMPRESSED') {\n page = compressedBytes\n } else if (customDecompressor) {\n page = customDecompressor(compressedBytes, uncompressed_page_size)\n } else if (codec === 'SNAPPY') {\n page = new Uint8Array(uncompressed_page_size)\n snappyUncompress(compressedBytes, page)\n } else {\n throw new Error(`parquet unsupported compression codec: ${codec}`)\n }\n if (page?.length !== uncompressed_page_size) {\n throw new Error(`parquet decompressed page length ${page?.length} does not match header ${uncompressed_page_size}`)\n }\n return page\n}\n\n\n/**\n * Read a data page from the given Uint8Array.\n *\n * @param {Uint8Array} compressedBytes raw page data\n * @param {PageHeader} ph page header\n * @param {ColumnDecoder} columnDecoder\n * @returns {DataPage} definition levels, repetition levels, and array of values\n */\nexport function readDataPageV2(compressedBytes, ph, columnDecoder) {\n const view = new DataView(compressedBytes.buffer, compressedBytes.byteOffset, compressedBytes.byteLength)\n const reader = { view, offset: 0 }\n const { type, element, schemaPath, codec, compressors } = columnDecoder\n const daph2 = ph.data_page_header_v2\n if (!daph2) throw new Error('parquet data page header v2 is undefined')\n\n // repetition levels\n const repetitionLevels = readRepetitionLevelsV2(reader, daph2, schemaPath)\n reader.offset = daph2.repetition_levels_byte_length // readVarInt() => len for boolean v2?\n\n // definition levels\n const definitionLevels = readDefinitionLevelsV2(reader, daph2, schemaPath)\n // assert(reader.offset === daph2.repetition_levels_byte_length + daph2.definition_levels_byte_length)\n\n const uncompressedPageSize = ph.uncompressed_page_size - daph2.definition_levels_byte_length - daph2.repetition_levels_byte_length\n\n let page = compressedBytes.subarray(reader.offset)\n if (daph2.is_compressed !== false) {\n page = decompressPage(page, uncompressedPageSize, codec, compressors)\n }\n const pageView = new DataView(page.buffer, page.byteOffset, page.byteLength)\n const pageReader = { view: pageView, offset: 0 }\n\n // read values based on encoding\n /** @type {DecodedArray} */\n let dataPage\n const nValues = daph2.num_values - daph2.num_nulls\n if (daph2.encoding === 'PLAIN') {\n dataPage = readPlain(pageReader, type, nValues, element.type_length)\n } else if (daph2.encoding === 'RLE') {\n // assert(type === 'BOOLEAN')\n dataPage = new Array(nValues)\n readRleBitPackedHybrid(pageReader, 1, dataPage)\n dataPage = dataPage.map(x => !!x)\n } else if (\n daph2.encoding === 'PLAIN_DICTIONARY' ||\n daph2.encoding === 'RLE_DICTIONARY'\n ) {\n const bitWidth = pageView.getUint8(pageReader.offset++)\n dataPage = new Array(nValues)\n readRleBitPackedHybrid(pageReader, bitWidth, dataPage, uncompressedPageSize - 1)\n } else if (daph2.encoding === 'DELTA_BINARY_PACKED') {\n const int32 = type === 'INT32'\n dataPage = int32 ? new Int32Array(nValues) : new BigInt64Array(nValues)\n deltaBinaryUnpack(pageReader, nValues, dataPage)\n } else if (daph2.encoding === 'DELTA_LENGTH_BYTE_ARRAY') {\n dataPage = new Array(nValues)\n deltaLengthByteArray(pageReader, nValues, dataPage)\n } else if (daph2.encoding === 'DELTA_BYTE_ARRAY') {\n dataPage = new Array(nValues)\n deltaByteArray(pageReader, nValues, dataPage)\n } else if (daph2.encoding === 'BYTE_STREAM_SPLIT') {\n dataPage = byteStreamSplit(pageReader, nValues, type, element.type_length)\n } else {\n throw new Error(`parquet unsupported encoding: ${daph2.encoding}`)\n }\n\n return { definitionLevels, repetitionLevels, dataPage }\n}\n\n/**\n * @param {DataReader} reader\n * @param {DataPageHeaderV2} daph2 data page header v2\n * @param {SchemaTree[]} schemaPath\n * @returns {any[]} repetition levels\n */\nfunction readRepetitionLevelsV2(reader, daph2, schemaPath) {\n const maxRepetitionLevel = getMaxRepetitionLevel(schemaPath)\n if (!maxRepetitionLevel) return []\n\n const values = new Array(daph2.num_values)\n readRleBitPackedHybrid(reader, bitWidth(maxRepetitionLevel), values, daph2.repetition_levels_byte_length)\n return values\n}\n\n/**\n * @param {DataReader} reader\n * @param {DataPageHeaderV2} daph2 data page header v2\n * @param {SchemaTree[]} schemaPath\n * @returns {number[] | undefined} definition levels\n */\nfunction readDefinitionLevelsV2(reader, daph2, schemaPath) {\n const maxDefinitionLevel = getMaxDefinitionLevel(schemaPath)\n if (maxDefinitionLevel) {\n // V2 we know the length\n const values = new Array(daph2.num_values)\n readRleBitPackedHybrid(reader, bitWidth(maxDefinitionLevel), values, daph2.definition_levels_byte_length)\n return values\n }\n}\n\n/**\n * Minimum bits needed to store value.\n *\n * @param {number} value\n * @returns {number}\n */\nfunction bitWidth(value) {\n return 32 - Math.clz32(value)\n}\n",
252
+ "/**\n * @import {ColumnDecoder, DataReader, DecodedArray, PageHeader, PageResult, RowGroupSelect, SubColumnData} from '../src/types.js'\n */\n\nimport { assembleLists } from './assemble.js'\nimport { Encodings, PageTypes } from './constants.js'\nimport { convert, convertWithDictionary } from './convert.js'\nimport { decompressPage, readDataPage, readDataPageV2 } from './datapage.js'\nimport { readPlain } from './plain.js'\nimport { isFlatColumn } from './schema.js'\nimport { deserializeTCompactProtocol } from './thrift.js'\n\n/**\n * Parse column data from a buffer.\n *\n * @param {DataReader} reader\n * @param {RowGroupSelect} rowGroupSelect row group selection\n * @param {ColumnDecoder} columnDecoder column decoder params\n * @param {(chunk: SubColumnData) => void} [onPage] callback for each page\n * @returns {{ data: DecodedArray[], skipped: number }}\n */\nexport function readColumn(reader, { groupStart, selectStart, selectEnd }, columnDecoder, onPage) {\n const { pathInSchema, schemaPath } = columnDecoder\n const isFlat = isFlatColumn(schemaPath)\n /** @type {DecodedArray[]} */\n const chunks = []\n /** @type {DecodedArray | undefined} */\n let dictionary = undefined\n /** @type {DecodedArray | undefined} */\n let lastChunk = undefined\n let rowCount = 0\n let skipped = 0\n\n const emitLastChunk = onPage && (() => {\n lastChunk && onPage({\n pathInSchema,\n columnData: lastChunk,\n rowStart: groupStart + rowCount - lastChunk.length,\n rowEnd: groupStart + rowCount,\n })\n })\n\n while (isFlat ? rowCount < selectEnd : reader.offset < reader.view.byteLength - 1) {\n if (reader.offset >= reader.view.byteLength - 1) break // end of reader\n\n // read page header\n const header = parquetHeader(reader)\n if (header.type === 'DICTIONARY_PAGE') {\n const { data } = readPage(reader, header, columnDecoder, dictionary, undefined, 0)\n if (data) dictionary = convert(data, columnDecoder)\n } else {\n const lastChunkLength = lastChunk?.length || 0\n const result = readPage(reader, header, columnDecoder, dictionary, lastChunk, selectStart - rowCount)\n if (result.skipped) {\n // skipped page - just advance row count, don't add to chunks\n if (!chunks.length) {\n skipped += result.skipped\n }\n rowCount += result.skipped\n } else if (result.data && lastChunk === result.data) {\n // continued from previous page\n rowCount += result.data.length - lastChunkLength\n } else if (result.data && result.data.length) {\n emitLastChunk?.()\n chunks.push(result.data)\n rowCount += result.data.length\n lastChunk = result.data\n }\n }\n }\n emitLastChunk?.()\n\n return { data: chunks, skipped }\n}\n\n/**\n * Read a page (data or dictionary) from a buffer.\n *\n * @param {DataReader} reader\n * @param {PageHeader} header\n * @param {ColumnDecoder} columnDecoder\n * @param {DecodedArray | undefined} dictionary\n * @param {DecodedArray | undefined} previousChunk\n * @param {number} pageStart skip this many rows in the page\n * @returns {PageResult}\n */\nexport function readPage(reader, header, columnDecoder, dictionary, previousChunk, pageStart) {\n const { type, element, schemaPath, codec, compressors } = columnDecoder\n // read compressed_page_size bytes\n const compressedBytes = new Uint8Array(\n reader.view.buffer, reader.view.byteOffset + reader.offset, header.compressed_page_size\n )\n reader.offset += header.compressed_page_size\n\n // parse page data by type\n if (header.type === 'DATA_PAGE') {\n const daph = header.data_page_header\n if (!daph) throw new Error('parquet data page header is undefined')\n\n // skip unnecessary non-nested pages\n if (pageStart > daph.num_values && isFlatColumn(schemaPath)) {\n return { skipped: daph.num_values }\n }\n\n const page = decompressPage(compressedBytes, Number(header.uncompressed_page_size), codec, compressors)\n const { definitionLevels, repetitionLevels, dataPage } = readDataPage(page, daph, columnDecoder)\n // assert(!daph.statistics?.null_count || daph.statistics.null_count === BigInt(daph.num_values - dataPage.length))\n\n // convert types, dereference dictionary, and assemble lists\n const values = convertWithDictionary(dataPage, dictionary, daph.encoding, columnDecoder)\n const output = Array.isArray(previousChunk) ? previousChunk : []\n const assembled = assembleLists(output, definitionLevels, repetitionLevels, values, schemaPath)\n return { skipped: 0, data: assembled }\n } else if (header.type === 'DATA_PAGE_V2') {\n const daph2 = header.data_page_header_v2\n if (!daph2) throw new Error('parquet data page header v2 is undefined')\n\n // skip unnecessary pages\n if (pageStart > daph2.num_rows) {\n return { skipped: daph2.num_values }\n }\n\n const { definitionLevels, repetitionLevels, dataPage } =\n readDataPageV2(compressedBytes, header, columnDecoder)\n\n // convert types, dereference dictionary, and assemble lists\n const values = convertWithDictionary(dataPage, dictionary, daph2.encoding, columnDecoder)\n const output = Array.isArray(previousChunk) ? previousChunk : []\n const assembled = assembleLists(output, definitionLevels, repetitionLevels, values, schemaPath)\n return { skipped: 0, data: assembled }\n } else if (header.type === 'DICTIONARY_PAGE') {\n const diph = header.dictionary_page_header\n if (!diph) throw new Error('parquet dictionary page header is undefined')\n\n const page = decompressPage(\n compressedBytes, Number(header.uncompressed_page_size), codec, compressors\n )\n\n const reader = { view: new DataView(page.buffer, page.byteOffset, page.byteLength), offset: 0 }\n const dictArray = readPlain(reader, type, diph.num_values, element.type_length)\n return { skipped: 0, data: dictArray }\n } else {\n throw new Error(`parquet unsupported page type: ${header.type}`)\n }\n}\n\n/**\n * Read parquet header from a buffer.\n *\n * @param {DataReader} reader\n * @returns {PageHeader}\n */\nfunction parquetHeader(reader) {\n const header = deserializeTCompactProtocol(reader)\n\n // Parse parquet header from thrift data\n const type = PageTypes[header.field_1]\n const uncompressed_page_size = header.field_2\n const compressed_page_size = header.field_3\n const crc = header.field_4\n const data_page_header = header.field_5 && {\n num_values: header.field_5.field_1,\n encoding: Encodings[header.field_5.field_2],\n definition_level_encoding: Encodings[header.field_5.field_3],\n repetition_level_encoding: Encodings[header.field_5.field_4],\n statistics: header.field_5.field_5 && {\n max: header.field_5.field_5.field_1,\n min: header.field_5.field_5.field_2,\n null_count: header.field_5.field_5.field_3,\n distinct_count: header.field_5.field_5.field_4,\n max_value: header.field_5.field_5.field_5,\n min_value: header.field_5.field_5.field_6,\n },\n }\n const index_page_header = header.field_6\n const dictionary_page_header = header.field_7 && {\n num_values: header.field_7.field_1,\n encoding: Encodings[header.field_7.field_2],\n is_sorted: header.field_7.field_3,\n }\n const data_page_header_v2 = header.field_8 && {\n num_values: header.field_8.field_1,\n num_nulls: header.field_8.field_2,\n num_rows: header.field_8.field_3,\n encoding: Encodings[header.field_8.field_4],\n definition_levels_byte_length: header.field_8.field_5,\n repetition_levels_byte_length: header.field_8.field_6,\n is_compressed: header.field_8.field_7 === undefined ? true : header.field_8.field_7, // default true\n statistics: header.field_8.field_8,\n }\n\n return {\n type,\n uncompressed_page_size,\n compressed_page_size,\n crc,\n data_page_header,\n index_page_header,\n dictionary_page_header,\n data_page_header_v2,\n }\n}\n",
253
+ "/**\n * @import {AsyncColumn, AsyncRowGroup, ChunkPlan, ColumnDecoder, DecodedArray, GroupPlan, PageLocation, ParquetParsers, ParquetReadOptions, QueryPlan, SchemaTree} from '../src/types.js'\n */\n\nimport { assembleNested } from './assemble.js'\nimport { readColumn } from './column.js'\nimport { DEFAULT_PARSERS } from './convert.js'\nimport { readOffsetIndex } from './indexes.js'\nimport { getSchemaPath } from './schema.js'\nimport { flatten } from './utils.js'\n\n/**\n * Read a row group from a file-like object.\n *\n * @param {ParquetReadOptions} options\n * @param {QueryPlan} plan\n * @param {GroupPlan} groupPlan\n * @returns {AsyncRowGroup} resolves to column data\n */\nexport function readRowGroup(options, { metadata }, groupPlan) {\n /** @type {AsyncColumn[]} */\n const asyncColumns = []\n\n // read column data\n for (const chunk of groupPlan.chunks) {\n const { path_in_schema: pathInSchema } = chunk.columnMetadata\n const schemaPath = getSchemaPath(metadata.schema, pathInSchema)\n const columnDecoder = {\n pathInSchema,\n element: schemaPath[schemaPath.length - 1].element,\n schemaPath,\n parsers: { ...DEFAULT_PARSERS, ...options.parsers },\n ...options,\n ...chunk.columnMetadata,\n }\n const { startByte, endByte } = chunk.range\n\n if ('pageLocations' in chunk) {\n // page locations already parsed from the offset index\n asyncColumns.push({\n pathInSchema,\n data: readSelectedPages(options, groupPlan, chunk, chunk.pageLocations, columnDecoder),\n })\n } else if ('offsetIndex' in chunk) {\n asyncColumns.push({\n pathInSchema,\n // fetch offset index\n data: Promise.resolve(options.file.slice(chunk.offsetIndex.startByte, chunk.offsetIndex.endByte))\n .then(arrayBuffer => {\n const pages = readOffsetIndex({ view: new DataView(arrayBuffer), offset: 0 }).page_locations\n return readSelectedPages(options, groupPlan, chunk, pages, columnDecoder)\n }),\n })\n } else {\n // full column chunk\n asyncColumns.push({\n pathInSchema,\n data: Promise.resolve(options.file.slice(startByte, endByte))\n .then(buffer => {\n const reader = { view: new DataView(buffer), offset: 0 }\n return readColumn(reader, groupPlan, columnDecoder, options.onPage)\n }),\n })\n }\n }\n\n return {\n groupStart: groupPlan.groupStart,\n groupRows: groupPlan.groupRows,\n selectStart: groupPlan.selectStart,\n selectEnd: groupPlan.selectEnd,\n asyncColumns,\n }\n}\n\n/**\n * Read only the pages of a column chunk that overlap the group plan's select\n * range [selectStart, selectEnd), using page locations from the offset index.\n *\n * @param {ParquetReadOptions} options\n * @param {GroupPlan} groupPlan\n * @param {ChunkPlan} chunk\n * @param {PageLocation[]} pages\n * @param {ColumnDecoder} columnDecoder\n * @returns {Promise<{data: DecodedArray[], skipped: number}>}\n */\nasync function readSelectedPages(options, groupPlan, chunk, pages, columnDecoder) {\n const { data_page_offset, dictionary_page_offset } = chunk.columnMetadata\n const { selectStart, selectEnd } = groupPlan\n let { startByte, endByte } = chunk.range\n let skipped = -1\n // include dictionary if present, handle polars missing dictionary_page_offset\n const hasDict = dictionary_page_offset || data_page_offset < pages[0].offset\n for (let i = 0; i < pages.length; i++) {\n const page = pages[i]\n const pageStart = Number(page.first_row_index)\n const pageEnd = i + 1 < pages.length\n ? Number(pages[i + 1].first_row_index)\n : groupPlan.groupRows // last page extends to end of row group\n // check if page overlaps with [selectStart, selectEnd)\n if (skipped < 0 && pageEnd > selectStart) {\n startByte = Number(page.offset)\n skipped = pageStart\n }\n if (pageStart < selectEnd) {\n endByte = Number(page.offset) + page.compressed_page_size\n }\n }\n if (skipped < 0) skipped = 0\n /** @type {DataView} */\n let view\n if (hasDict && skipped) {\n // fetch the dictionary page separately from the selected data pages so\n // the skipped leading pages are not transferred\n const dictLength = Number(pages[0].offset) - chunk.range.startByte\n const [dictBuffer, dataBuffer] = await Promise.all([\n options.file.slice(chunk.range.startByte, Number(pages[0].offset)),\n options.file.slice(startByte, endByte),\n ])\n // clamp in case the AsyncBuffer returned more bytes than requested\n const combined = new Uint8Array(dictLength + dataBuffer.byteLength)\n combined.set(new Uint8Array(dictBuffer, 0, dictLength))\n combined.set(new Uint8Array(dataBuffer), dictLength)\n view = new DataView(combined.buffer)\n } else if (hasDict) {\n // dictionary page is contiguous with the first selected page\n view = new DataView(await options.file.slice(chunk.range.startByte, endByte))\n } else {\n view = new DataView(await options.file.slice(startByte, endByte))\n }\n const reader = { view, offset: 0 }\n // adjust row selection for skipped pages\n const adjustedGroupPlan = skipped ? {\n ...groupPlan,\n groupStart: groupPlan.groupStart + skipped,\n selectStart: groupPlan.selectStart - skipped,\n selectEnd: groupPlan.selectEnd - skipped,\n } : groupPlan\n const { data, skipped: columnSkipped } = readColumn(reader, adjustedGroupPlan, columnDecoder, options.onPage)\n return {\n data,\n skipped: skipped + columnSkipped,\n }\n}\n\n/**\n * @overload\n * @param {AsyncRowGroup} asyncGroup\n * @param {number} selectStart\n * @param {number} selectEnd\n * @param {string[] | undefined} columns\n * @param {'object'} rowFormat\n * @returns {Promise<Record<string, any>[]>} resolves to row data\n */\n/**\n * @overload\n * @param {AsyncRowGroup} asyncGroup\n * @param {number} selectStart\n * @param {number} selectEnd\n * @param {string[] | undefined} columns\n * @param {'array'} [rowFormat]\n * @returns {Promise<any[][]>} resolves to row data\n */\n/**\n * @param {AsyncRowGroup} asyncGroup\n * @param {number} selectStart\n * @param {number} selectEnd\n * @param {string[] | undefined} columns\n * @param {'object' | 'array'} [rowFormat]\n * @returns {Promise<Record<string, any>[] | any[][]>} resolves to row data\n */\nexport async function asyncGroupToRows({ asyncColumns }, selectStart, selectEnd, columns, rowFormat) {\n // TODO: do it without flatten\n const asyncPages = await Promise.all(asyncColumns.map(column =>\n column.data.then(({ skipped, data }) => ({ skipped, data: flatten(data) }))\n ))\n\n // transpose columns into rows\n const selectCount = selectEnd - selectStart\n if (rowFormat === 'object') {\n /** @type {Record<string, any>[]} */\n const groupData = Array(selectCount)\n for (let selectRow = 0; selectRow < selectCount; selectRow++) {\n // return each row as an object\n /** @type {Record<string, any>} */\n const rowData = {}\n for (let i = 0; i < asyncColumns.length; i++) {\n const { data, skipped } = asyncPages[i]\n rowData[asyncColumns[i].pathInSchema[0]] = data[selectStart + selectRow - skipped]\n }\n groupData[selectRow] = rowData\n }\n return groupData\n }\n\n // careful mapping of column order for rowFormat: array\n const includedColumnNames = asyncColumns\n .map(child => child.pathInSchema[0])\n .filter(name => !columns || columns.includes(name))\n const columnOrder = columns ?? includedColumnNames\n const columnIndexes = columnOrder.map(name => asyncColumns.findIndex(column => column.pathInSchema[0] === name))\n\n /** @type {any[][]} */\n const groupData = Array(selectCount)\n for (let selectRow = 0; selectRow < selectCount; selectRow++) {\n // return each row as an array\n const rowData = Array(asyncColumns.length)\n for (let i = 0; i < columnOrder.length; i++) {\n const colIdx = columnIndexes[i]\n if (colIdx < 0) throw new Error(`parquet column not found: ${columnOrder[i]}`)\n const { data, skipped } = asyncPages[colIdx]\n rowData[i] = data[selectStart + selectRow - skipped]\n }\n groupData[selectRow] = rowData\n }\n return groupData\n}\n\n/**\n * Assemble physical columns into top-level columns asynchronously.\n *\n * @param {AsyncRowGroup} asyncRowGroup\n * @param {SchemaTree} schemaTree\n * @param {ParquetParsers} [parsers]\n * @returns {AsyncRowGroup}\n */\nexport function assembleAsync(asyncRowGroup, schemaTree, parsers) {\n const { asyncColumns } = asyncRowGroup\n parsers = { ...DEFAULT_PARSERS, ...parsers }\n /** @type {AsyncColumn[]} */\n const assembled = []\n for (const child of schemaTree.children) {\n if (child.children.length) {\n const childColumns = asyncColumns.filter(column => column.pathInSchema[0] === child.element.name)\n if (!childColumns.length) continue\n\n assembled.push({\n pathInSchema: child.path,\n data: (async () => {\n // collect subcolumn data — Promise.all observes every rejection so\n // a sibling failure cannot leak as an unhandledRejection\n const resolved = await Promise.all(childColumns.map(c => c.data))\n /** @type {Map<string, DecodedArray>} */\n const subcolumnData = new Map()\n const flattened = resolved.map(({ data }) => flatten(data))\n const skipped = Math.max(...resolved.map(result => result.skipped))\n const end = Math.min(...resolved.map((result, i) => result.skipped + flattened[i].length))\n for (let i = 0; i < childColumns.length; i++) {\n // Offset-index reads may start each physical child at a different\n // page boundary. Align them to their common absolute row range.\n const start = skipped - resolved[i].skipped\n const length = Math.max(0, end - skipped)\n subcolumnData.set(\n childColumns[i].pathInSchema.join('.'),\n flattened[i].slice(start, start + length)\n )\n }\n // assemble the column\n assembleNested(subcolumnData, child, parsers)\n const assembled = subcolumnData.get(child.element.name)\n if (!assembled) throw new Error('parquet column data not assembled')\n return { data: [assembled], skipped }\n })(),\n })\n } else {\n // leaf node, return the column\n const asyncColumn = asyncColumns.find(column => column.pathInSchema[0] === child.element.name)\n if (asyncColumn) assembled.push(asyncColumn)\n }\n }\n return { ...asyncRowGroup, asyncColumns: assembled }\n}\n",
254
+ "/**\n * @import {AsyncRowGroup, BaseParquetReadOptions, DecodedArray, ParquetReadOptions, SchemaElement} from '../src/types.js'\n */\n\nimport { columnsNeededForFilter, matchFilter } from './filter.js'\nimport { parquetMetadataAsync, parquetSchema } from './metadata.js'\nimport { parquetPlan, prefetchAsyncBuffer, prefetchBloomFilters, prefetchPageIndexes } from './plan.js'\nimport { assembleAsync, asyncGroupToRows, readRowGroup } from './rowgroup.js'\nimport { concat } from './utils.js'\n\n/**\n * Read parquet data rows from a file-like object.\n * Reads the minimal number of row groups and columns to satisfy the request.\n *\n * Returns a void promise when complete.\n * Errors are thrown on the returned promise.\n * Data is returned in callbacks onComplete, onChunk, onPage, NOT the return promise.\n * See parquetReadObjects for a more convenient API.\n *\n * @param {ParquetReadOptions} options read options\n * @returns {Promise<void>} resolves when all requested rows and columns are parsed, all errors are thrown here\n */\nexport async function parquetRead(options) {\n // load metadata if not provided\n options.metadata ??= await parquetMetadataAsync(options.file, options)\n\n const { rowStart = 0, rowEnd, columns, onChunk, onComplete, rowFormat, filter, filterStrict = true } = options\n\n // Filter requires object format to match column names\n if (filter && rowFormat !== 'object') {\n throw new Error('parquet filter requires rowFormat: \"object\"')\n }\n\n // Include filter columns in the read plan\n const filterColumns = columnsNeededForFilter(filter)\n if (filterColumns.length) {\n const schemaColumns = parquetSchema(options.metadata).children.map(c => c.element.name)\n const missingColumns = filterColumns.filter(c => !schemaColumns.includes(c))\n if (missingColumns.length) {\n throw new Error(`parquet filter columns not found: ${missingColumns.join(', ')}`)\n }\n }\n let readColumns = columns\n let requiresProjection = false\n if (columns && filter) {\n const missingFilterColumns = filterColumns.filter(c => !columns.includes(c))\n if (missingFilterColumns.length) {\n readColumns = [...columns, ...missingFilterColumns]\n requiresProjection = true\n }\n }\n\n // read row groups with expanded columns\n let readOptions = readColumns !== columns ? { ...options, columns: readColumns } : options\n readOptions = await withBloomFilters(readOptions)\n readOptions = await withPageIndexes(readOptions)\n const asyncGroups = parquetReadAsync(readOptions)\n\n // skip assembly if no onComplete or onChunk, but wait for reading to finish\n if (!onComplete && !onChunk) {\n await awaitAllColumns(asyncGroups)\n return\n }\n\n // assemble struct columns\n const schemaTree = parquetSchema(options.metadata)\n const assembled = asyncGroups.map(arg => assembleAsync(arg, schemaTree, options.parsers))\n\n // onChunk emit all chunks (don't await). Rejection is surfaced by awaitAllColumns below.\n if (onChunk) {\n for (const asyncGroup of assembled) {\n for (const asyncColumn of asyncGroup.asyncColumns) {\n asyncColumn.data.then(({ data, skipped }) => {\n let rowStart = asyncGroup.groupStart + skipped\n for (const columnData of data) {\n onChunk({\n columnName: asyncColumn.pathInSchema[0],\n columnData,\n rowStart,\n rowEnd: rowStart + columnData.length,\n })\n rowStart += columnData.length\n }\n }, () => {})\n }\n }\n }\n\n // onComplete transpose column chunks to rows\n if (onComplete) {\n // wait for all reads to settle so a sibling rejection cannot leak\n await awaitAllColumns(assembled)\n // loosen the types to avoid duplicate code\n /** @type {any[]} */\n const rows = []\n for (const asyncGroup of assembled) {\n // filter to rows in range (the plan may have narrowed the selection to\n // a sub-range of the group via page index pushdown)\n const selectStart = asyncGroup.selectStart ?? Math.max(rowStart - asyncGroup.groupStart, 0)\n const selectEnd = asyncGroup.selectEnd ?? Math.min((rowEnd ?? Infinity) - asyncGroup.groupStart, asyncGroup.groupRows)\n // transpose column chunks to rows in output\n const groupData = rowFormat === 'object' ?\n await asyncGroupToRows(asyncGroup, selectStart, selectEnd, readColumns, 'object') :\n await asyncGroupToRows(asyncGroup, selectStart, selectEnd, columns, 'array')\n\n // Apply filter and projection\n if (filter) {\n // eslint-disable-next-line no-extra-parens\n for (const row of /** @type {Record<string, any>[]} */ (groupData)) {\n if (matchFilter(row, filter, filterStrict)) {\n if (requiresProjection && columns) {\n for (const col of filterColumns) {\n if (!columns.includes(col)) delete row[col]\n }\n }\n rows.push(row)\n }\n }\n } else {\n concat(rows, groupData)\n }\n }\n onComplete(rows)\n } else {\n // wait for all async groups to finish (complete takes care of this)\n await awaitAllColumns(assembled)\n }\n}\n\n/**\n * Await every column promise across the given row groups via Promise.allSettled\n * so no rejection escapes as an unhandledRejection. Throws the first rejection.\n *\n * @param {AsyncRowGroup[]} asyncGroups\n * @returns {Promise<void>}\n */\nasync function awaitAllColumns(asyncGroups) {\n const all = asyncGroups.flatMap(g => g.asyncColumns.map(c => c.data))\n const results = await Promise.allSettled(all)\n const failed = results.find(r => r.status === 'rejected')\n if (failed) throw failed.reason\n}\n\n/**\n * @param {ParquetReadOptions} options read options\n * @returns {AsyncRowGroup[]}\n */\nexport function parquetReadAsync(options) {\n if (!options.metadata) throw new Error('parquet requires metadata')\n // TODO: validate options (start, end, columns, etc)\n\n // prefetch byte ranges\n const plan = parquetPlan(options)\n options.file = prefetchAsyncBuffer(options.file, plan)\n\n // read row groups\n return plan.groups.map(groupPlan => readRowGroup(options, plan, groupPlan))\n}\n\n/**\n * Reads a single column from a parquet file.\n *\n * @param {BaseParquetReadOptions} options\n * @returns {Promise<DecodedArray>}\n */\nexport async function parquetReadColumn(options) {\n if (options.columns?.length !== 1) {\n throw new Error('parquetReadColumn expected columns: [columnName]')\n }\n options.metadata ??= await parquetMetadataAsync(options.file, options)\n const asyncGroups = parquetReadAsync(await withBloomFilters(options))\n\n // assemble struct columns\n const schemaTree = parquetSchema(options.metadata)\n const assembled = asyncGroups.map(arg => assembleAsync(arg, schemaTree, options.parsers))\n\n // wait for all reads to settle so a sibling rejection cannot leak\n await awaitAllColumns(assembled)\n\n /** @type {DecodedArray} */\n const columnData = []\n for (const rg of assembled) {\n const { data } = await rg.asyncColumns[0].data\n for (const chunk of data) {\n concat(columnData, chunk)\n }\n }\n return columnData\n}\n\n/**\n * Conditionally fetch bloom filters and attach them (and the per-column schema\n * elements they require) to options so parquetPlan can use them for row-group\n * pruning. Returns options unchanged when there's no filter or the user has\n * disabled bloom pushdown.\n *\n * @param {BaseParquetReadOptions} options\n * @returns {Promise<BaseParquetReadOptions>}\n */\nasync function withBloomFilters(options) {\n if (!options.useBloomFilters) return options\n if (!options.filter || !options.metadata) return options\n const schemaTree = parquetSchema(options.metadata)\n /** @type {Record<string, SchemaElement>} */\n const schemaElements = {}\n for (const child of schemaTree.children) schemaElements[child.element.name] = child.element\n const bloomFiltersByGroup = await prefetchBloomFilters({\n file: options.file,\n metadata: options.metadata,\n filter: options.filter,\n filterStrict: options.filterStrict,\n })\n // eslint-disable-next-line no-extra-parens\n return /** @type {BaseParquetReadOptions} */ ({ ...options, bloomFiltersByGroup, schemaElements })\n}\n\n/**\n * Conditionally fetch page indexes (column index + offset index) for filter\n * columns and attach per-group candidate row ranges and page locations to\n * options so parquetPlan can skip pages that cannot match the filter.\n * Returns options unchanged when there's no filter or the user has not\n * enabled page index pushdown.\n *\n * @param {BaseParquetReadOptions} options\n * @returns {Promise<BaseParquetReadOptions>}\n */\nasync function withPageIndexes(options) {\n if (!options.usePageIndex) return options\n if (!options.filter || !options.metadata) return options\n const { pageRangesByGroup, pageLocationsByGroup } = await prefetchPageIndexes({\n file: options.file,\n metadata: options.metadata,\n filter: options.filter,\n filterStrict: options.filterStrict,\n rowStart: options.rowStart,\n rowEnd: options.rowEnd,\n columns: options.columns,\n // @ts-expect-error bloomFiltersByGroup/schemaElements are attached by withBloomFilters\n bloomFiltersByGroup: options.bloomFiltersByGroup,\n // @ts-expect-error bloomFiltersByGroup/schemaElements are attached by withBloomFilters\n schemaElements: options.schemaElements,\n parsers: options.parsers,\n })\n const readOptions = { ...options, pageRangesByGroup, pageLocationsByGroup }\n return readOptions\n}\n\n/**\n * This is a helper function to read parquet row data as a promise.\n * It is a wrapper around the more configurable parquetRead function.\n *\n * @param {Omit<ParquetReadOptions, 'onComplete'>} options\n * @returns {Promise<Record<string, any>[]>} resolves when all requested rows and columns are parsed\n */\nexport function parquetReadObjects(options) {\n return new Promise((onComplete, reject) => {\n parquetRead({\n ...options,\n rowFormat: 'object', // force object output\n onComplete,\n }).catch(reject)\n })\n}\n",
255
+ "import { sha256Canonical } from \"../market-data-archive/capture-contract\";\nimport type {\n\tBackfillArchiveRow,\n\tMarketDataVendorBackfillRequest,\n} from \"./contracts\";\n\nconst LOGICAL_KEYS = {\n\t\"market_data.cex_order_book_levels\": [\n\t\t\"capture_bundle_id\",\n\t\t\"exchange\",\n\t\t\"trading_pair\",\n\t\t\"raw_capture_id\",\n\t\t\"snapshot_id\",\n\t\t\"schema_version\",\n\t\t\"side\",\n\t\t\"level_index\",\n\t],\n\t\"market_data.cex_order_book_depth_summary\": [\n\t\t\"capture_bundle_id\",\n\t\t\"exchange\",\n\t\t\"trading_pair\",\n\t\t\"raw_capture_id\",\n\t\t\"snapshot_id\",\n\t\t\"schema_version\",\n\t],\n} as const;\n\nfunction logicalIdentity(row: BackfillArchiveRow): {\n\tkey: string;\n\tchecksum: string;\n} {\n\tif (\n\t\trow.table !== \"market_data.cex_order_book_levels\" &&\n\t\trow.table !== \"market_data.cex_order_book_depth_summary\"\n\t) {\n\t\tthrow new Error(\n\t\t\t\"archive evidence rows are not candidate semantic evidence\",\n\t\t);\n\t}\n\tconst keys = LOGICAL_KEYS[row.table];\n\tconst checksum = row.row.normalized_row_checksum;\n\tif (typeof checksum !== \"string\" || !/^[a-f0-9]{64}$/.test(checksum)) {\n\t\tthrow new Error(\"candidate normalized checksum is invalid\");\n\t}\n\tconst values = keys.map((key) => row.row[key]);\n\tif (\n\t\tvalues.some(\n\t\t\t(value) =>\n\t\t\t\ttypeof value !== \"string\" &&\n\t\t\t\ttypeof value !== \"number\" &&\n\t\t\t\tvalue !== null,\n\t\t)\n\t) {\n\t\tthrow new Error(\"candidate logical identity is incomplete\");\n\t}\n\treturn {\n\t\tkey: `${row.table}\\u0000${JSON.stringify(values)}`,\n\t\tchecksum,\n\t};\n}\n\nexport function semanticDigest(rows: readonly BackfillArchiveRow[]): string {\n\tconst identities = rows\n\t\t.map(logicalIdentity)\n\t\t.sort((left, right) =>\n\t\t\tleft.key === right.key\n\t\t\t\t? left.checksum.localeCompare(right.checksum)\n\t\t\t\t: left.key.localeCompare(right.key),\n\t\t);\n\treturn sha256Canonical(identities);\n}\n\nfunction exactCandidateMatch(\n\texpected: readonly BackfillArchiveRow[],\n\tactual: readonly BackfillArchiveRow[],\n): boolean {\n\tif (expected.length !== actual.length) return false;\n\tconst expectedIdentities = expected\n\t\t.map(logicalIdentity)\n\t\t.map(({ key, checksum }) => `${key}\\u0000${checksum}`)\n\t\t.sort();\n\tconst actualIdentities = actual\n\t\t.map(logicalIdentity)\n\t\t.map(({ key, checksum }) => `${key}\\u0000${checksum}`)\n\t\t.sort();\n\treturn expectedIdentities.every(\n\t\t(identity, index) => identity === actualIdentities[index],\n\t);\n}\n\nfunction requestedShapeMatches(\n\trequest: MarketDataVendorBackfillRequest,\n\trows: readonly BackfillArchiveRow[],\n): boolean {\n\treturn rows.every(\n\t\t({ row }) =>\n\t\t\trow.depth_limit === request.depth &&\n\t\t\trow.construction_mode === request.constructionMode &&\n\t\t\trow.schema_version === request.expectedProduct.canonicalSchemaVersion,\n\t);\n}\n\nfunction requiredClockCoverage(\n\trequest: MarketDataVendorBackfillRequest,\n\trows: readonly BackfillArchiveRow[],\n\tcoverageSourceTimesMs?: readonly number[],\n): boolean {\n\tconst summaryTimes = (\n\t\tcoverageSourceTimesMs ??\n\t\trows\n\t\t\t.filter(\n\t\t\t\t({ table }) => table === \"market_data.cex_order_book_depth_summary\",\n\t\t\t)\n\t\t\t.map(({ row }) => row.source_time_ms)\n\t)\n\t\t.map((value) => {\n\t\t\tif (\n\t\t\t\ttypeof value !== \"number\" &&\n\t\t\t\t(typeof value !== \"string\" || !/^\\d+$/.test(value))\n\t\t\t) {\n\t\t\t\treturn undefined;\n\t\t\t}\n\t\t\tconst parsed = Number(value);\n\t\t\treturn Number.isSafeInteger(parsed) && parsed >= 0 ? parsed : undefined;\n\t\t})\n\t\t.filter((value): value is number => value !== undefined)\n\t\t.sort((left, right) => left - right);\n\treturn request.requiredClockTargetsMs.every((target) => {\n\t\tlet prior: number | undefined;\n\t\tfor (const sourceTime of summaryTimes) {\n\t\t\tif (sourceTime > target) break;\n\t\t\tprior = sourceTime;\n\t\t}\n\t\treturn (\n\t\t\tprior !== undefined &&\n\t\t\ttarget - prior >= 0 &&\n\t\t\ttarget - prior <= request.maxPriorAsOfLagMs\n\t\t);\n\t});\n}\n\nexport type SemanticPromotionEvidence = {\n\trequest: MarketDataVendorBackfillRequest;\n\tnormalizedRows: readonly BackfillArchiveRow[];\n\tcandidateRows: readonly BackfillArchiveRow[];\n\tconflictCount: number;\n\tprefixDigestBefore: string;\n\tprefixDigestAfter: string;\n\tsuffixDigestBefore: string;\n\tsuffixDigestAfter: string;\n\tseamVerified: boolean;\n\texporterCompatible: boolean;\n\tcoverageSourceTimesMs?: readonly number[];\n};\n\nexport type SemanticPromotionResult = {\n\tpassed: boolean;\n\treasonCode: string;\n\tcanonicalSemanticDigest: string;\n\tprefixDigest: string;\n\tsuffixDigest: string;\n\tseamVerified: boolean;\n\tcoverageVerified: boolean;\n};\n\nexport function verifySemanticPromotion(\n\tevidence: SemanticPromotionEvidence,\n): SemanticPromotionResult {\n\tconst canonicalSemanticDigest = semanticDigest(evidence.candidateRows);\n\tconst base = {\n\t\tcanonicalSemanticDigest,\n\t\tprefixDigest: evidence.prefixDigestAfter,\n\t\tsuffixDigest: evidence.suffixDigestAfter,\n\t\tseamVerified: evidence.seamVerified,\n\t};\n\tif (!exactCandidateMatch(evidence.normalizedRows, evidence.candidateRows)) {\n\t\treturn {\n\t\t\t...base,\n\t\t\tpassed: false,\n\t\t\treasonCode: \"candidate_semantic_mismatch\",\n\t\t\tcoverageVerified: false,\n\t\t};\n\t}\n\tif (evidence.conflictCount !== 0) {\n\t\treturn {\n\t\t\t...base,\n\t\t\tpassed: false,\n\t\t\treasonCode: \"candidate_checksum_conflict\",\n\t\t\tcoverageVerified: false,\n\t\t};\n\t}\n\tif (\n\t\tevidence.prefixDigestBefore !== evidence.prefixDigestAfter ||\n\t\tevidence.suffixDigestBefore !== evidence.suffixDigestAfter\n\t) {\n\t\treturn {\n\t\t\t...base,\n\t\t\tpassed: false,\n\t\t\treasonCode: \"qualified_timeline_changed\",\n\t\t\tcoverageVerified: false,\n\t\t};\n\t}\n\tif (!evidence.seamVerified) {\n\t\treturn {\n\t\t\t...base,\n\t\t\tpassed: false,\n\t\t\treasonCode: \"timeline_seam_invalid\",\n\t\t\tcoverageVerified: false,\n\t\t};\n\t}\n\tif (!requestedShapeMatches(evidence.request, evidence.candidateRows)) {\n\t\treturn {\n\t\t\t...base,\n\t\t\tpassed: false,\n\t\t\treasonCode: \"candidate_shape_mismatch\",\n\t\t\tcoverageVerified: false,\n\t\t};\n\t}\n\tif (!evidence.exporterCompatible) {\n\t\treturn {\n\t\t\t...base,\n\t\t\tpassed: false,\n\t\t\treasonCode: \"canonical_export_incompatible\",\n\t\t\tcoverageVerified: false,\n\t\t};\n\t}\n\tconst coverageVerified = requiredClockCoverage(\n\t\tevidence.request,\n\t\tevidence.candidateRows,\n\t\tevidence.coverageSourceTimesMs,\n\t);\n\tif (!coverageVerified) {\n\t\treturn {\n\t\t\t...base,\n\t\t\tpassed: false,\n\t\t\treasonCode: \"required_clock_coverage_insufficient\",\n\t\t\tcoverageVerified: false,\n\t\t};\n\t}\n\treturn {\n\t\t...base,\n\t\tpassed: true,\n\t\treasonCode: \"semantic_promotion_verified\",\n\t\tcoverageVerified: true,\n\t};\n}\n",
256
+ "import { buildCanonicalOrderBookRows } from \"./market-data-archive/canonical-orderbook\";\nimport {\n\tCHECKSUM_ALGORITHM,\n\tMARKET_CAPTURE_SCHEMA_VERSION,\n\tsha256Canonical,\n} from \"./market-data-archive/capture-contract\";\nimport sourceTapeCapability from \"./market-data-preparation/policies/source-tape-capability-v1.json\" with {\n\ttype: \"json\",\n};\nimport depthSummaryProjection from \"./market-data-preparation/schemas/order-book-depth-summary-parquet-projection.schema.json\" with {\n\ttype: \"json\",\n};\nimport levelsProjection from \"./market-data-preparation/schemas/order-book-levels-parquet-projection.schema.json\" with {\n\ttype: \"json\",\n};\nimport {\n\tBACKFILL_MAX_BATCH_BYTES,\n\tBACKFILL_MAX_BATCH_ROWS,\n\tbuildForwarderBatches,\n} from \"./market-data-vendor-backfill/batching\";\nimport type {\n\tBackfillArchiveRow,\n\tForwarderBatch,\n\tProviderObjectEvidence,\n} from \"./market-data-vendor-backfill/contracts\";\nimport {\n\ttype PolicyNeutralCryptoHftBookState,\n\ttype PolicyNeutralTapeSink,\n\tSOURCE_TAPE_MAX_BATCH_BYTES as RECONSTRUCTOR_SOURCE_TAPE_MAX_BATCH_BYTES,\n\tSOURCE_TAPE_MAX_IN_FLIGHT as RECONSTRUCTOR_SOURCE_TAPE_MAX_IN_FLIGHT,\n\tSOURCE_TAPE_MAX_STATES_PER_YIELD as RECONSTRUCTOR_SOURCE_TAPE_MAX_STATES_PER_YIELD,\n} from \"./market-data-vendor-backfill/cryptohftdata\";\nimport {\n\tassertDocumentSha256,\n\tjcsCanonicalize,\n\tjcsSha256,\n} from \"./market-data-vendor-backfill/identity\";\nimport { semanticDigest } from \"./market-data-vendor-backfill/semantic-verification\";\n\nassertDocumentSha256(sourceTapeCapability, \"policy_sha256\");\n\nexport const SOURCE_TAPE_CAPABILITY = Object.freeze(sourceTapeCapability);\nexport const SOURCE_TAPE_CAPABILITY_ID = SOURCE_TAPE_CAPABILITY.policy_id;\nexport const SOURCE_TAPE_CONSTRUCTION_MODE =\n\t\"policy_neutral_top_n_state_change_tape/v1\" as const;\nexport const SOURCE_TAPE_DEPTH = 100 as const;\nexport const SOURCE_TAPE_MAX_STATES_PER_YIELD =\n\tRECONSTRUCTOR_SOURCE_TAPE_MAX_STATES_PER_YIELD;\nexport const SOURCE_TAPE_MAX_BATCH_ROWS = BACKFILL_MAX_BATCH_ROWS;\nexport const SOURCE_TAPE_MAX_BATCH_BYTES = BACKFILL_MAX_BATCH_BYTES;\nexport const SOURCE_TAPE_MAX_IN_FLIGHT =\n\tRECONSTRUCTOR_SOURCE_TAPE_MAX_IN_FLIGHT;\nif (RECONSTRUCTOR_SOURCE_TAPE_MAX_BATCH_BYTES !== BACKFILL_MAX_BATCH_BYTES) {\n\tthrow new Error(\"source tape and forwarder byte bounds differ\");\n}\nexport const SOURCE_TAPE_SANDBOX_TARGET = Object.freeze({\n\tenvironment: \"sandbox\",\n\tcluster: \"cex-archive-local\",\n});\nexport const SOURCE_TAPE_PROJECTION_PINS = Object.freeze([\n\tObject.freeze({\n\t\tschema_id: levelsProjection.$id,\n\t\tschema_sha256: jcsSha256(levelsProjection),\n\t}),\n\tObject.freeze({\n\t\tschema_id: depthSummaryProjection.$id,\n\t\tschema_sha256: jcsSha256(depthSummaryProjection),\n\t}),\n]);\n\nexport type SourceTapeProviderObjectInventory = {\n\texpected_identities: string[];\n\tobserved_identities: string[];\n\tcomplete: boolean;\n};\n\nexport function sourceTapeCaptureBundleId(input: {\n\tidempotencyKey: string;\n\ttradingPair: \"ARB-USDC\" | \"ARB-USDT\";\n\twindow: { startTimeMs: number; endTimeMs: number };\n\texpectedObjectIdentities: readonly string[];\n}): string {\n\tif (!/^[a-f0-9]{64}$/u.test(input.idempotencyKey)) {\n\t\tthrow new Error(\"source_tape_idempotency_key_invalid\");\n\t}\n\tconst identities = [...input.expectedObjectIdentities];\n\tif (\n\t\tidentities.length === 0 ||\n\t\tnew Set(identities).size !== identities.length ||\n\t\tJSON.stringify(identities) !== JSON.stringify([...identities].sort())\n\t) {\n\t\tthrow new Error(\"source_tape_expected_inventory_invalid\");\n\t}\n\treturn sha256Canonical({\n\t\tidentity: \"market-data-source-tape-capture-bundle/v1\",\n\t\tcapability_policy_sha256: SOURCE_TAPE_CAPABILITY.policy_sha256,\n\t\tidempotency_key: input.idempotencyKey,\n\t\ttrading_pair: input.tradingPair,\n\t\twindow: input.window,\n\t\texpected_object_identities: identities,\n\t\tconstruction_mode: SOURCE_TAPE_CONSTRUCTION_MODE,\n\t\tdepth: SOURCE_TAPE_DEPTH,\n\t});\n}\n\n/**\n * `production` is the stable forwarder mutation-authorization class. It is not\n * an environment assertion: source-tape qualification remains sandbox-local.\n */\nexport function assertSourceTapeSandboxAuthorization(input: {\n\trequestAuthorizationId: string;\n\trequestTarget: { environment: string; cluster: string };\n\tpreflight: {\n\t\tauthorizationId: string;\n\t\tscope: \"production\";\n\t\tenvironment: string;\n\t\tcluster: string;\n\t\tcredentialValidated: boolean;\n\t};\n}): void {\n\tif (\n\t\tinput.requestTarget.environment !==\n\t\t\tSOURCE_TAPE_SANDBOX_TARGET.environment ||\n\t\tinput.requestTarget.cluster !== SOURCE_TAPE_SANDBOX_TARGET.cluster\n\t) {\n\t\tthrow new Error(\"source_tape_sandbox_target_mismatch\");\n\t}\n\tif (\n\t\tinput.preflight.authorizationId !== input.requestAuthorizationId ||\n\t\tinput.preflight.scope !== \"production\" ||\n\t\tinput.preflight.environment !== input.requestTarget.environment ||\n\t\tinput.preflight.cluster !== input.requestTarget.cluster ||\n\t\tinput.preflight.credentialValidated !== true\n\t) {\n\t\tthrow new Error(\"source_tape_authorization_mismatch\");\n\t}\n}\n\nexport type SourceTapeArchiveSinkResult = {\n\tcapture_bundle_id: string;\n\tstate_count: number;\n\tlevel_row_count: number;\n\tsummary_row_count: number;\n\tforwarder_batch_count: number;\n\tforwarder_batch_identity_sha256: string;\n\tinitializer: {\n\t\tcanonical_snapshot_id: string;\n\t\tsource_time_ms: number;\n\t\tsequence: string;\n\t\tsemantic_stream_position: 0;\n\t};\n\texpected_semantic_digest: string;\n\tfirst_state_descriptor_sha256: string;\n\tlast_state_descriptor_sha256: string;\n\tprovider_object_inventory_complete: true;\n\tmax_states_per_yield: typeof SOURCE_TAPE_MAX_STATES_PER_YIELD;\n\tmax_batch_rows: typeof SOURCE_TAPE_MAX_BATCH_ROWS;\n\tmax_batch_bytes: typeof SOURCE_TAPE_MAX_BATCH_BYTES;\n\tmax_in_flight_submissions: typeof SOURCE_TAPE_MAX_IN_FLIGHT;\n};\n\nexport type SourceTapeSemanticStateDescriptor = {\n\tstate_kind: \"initialization\" | \"change\";\n\tsemantic_stream_position: number;\n\tcanonical_snapshot_id: string;\n\tsource_time_ms: number;\n\tsequence: string;\n\tcanonical_rows_sha256: string;\n};\n\nconst SOURCE_TAPE_SEMANTIC_DIGEST_DOMAIN =\n\t\"market-data-source-tape-semantic-stream/v1\";\n\nexport class SourceTapeSemanticDigestAccumulator {\n\tprivate readonly hash: Hash;\n\tprivate count = 0;\n\n\tconstructor() {\n\t\tthis.hash = createHash(\"sha256\");\n\t\tthis.hash.update(`${SOURCE_TAPE_SEMANTIC_DIGEST_DOMAIN}\\n`);\n\t}\n\n\tappend(descriptor: SourceTapeSemanticStateDescriptor): void {\n\t\tif (descriptor.semantic_stream_position !== this.count) {\n\t\t\tthrow new Error(\"source_tape_semantic_position_invalid\");\n\t\t}\n\t\tthis.hash.update(`${jcsCanonicalize(descriptor)}\\n`);\n\t\tthis.count += 1;\n\t}\n\n\tdigest(): string {\n\t\treturn this.hash.digest(\"hex\");\n\t}\n}\n\nexport function sourceTapeSemanticStateDescriptor(input: {\n\tstateKind: \"initialization\" | \"change\";\n\tsemanticStreamPosition: number;\n\trows: readonly BackfillArchiveRow[];\n}): SourceTapeSemanticStateDescriptor {\n\tconst summary = input.rows.filter(\n\t\t({ table }) => table === \"market_data.cex_order_book_depth_summary\",\n\t);\n\tif (summary.length !== 1) {\n\t\tthrow new Error(\"source_tape_semantic_summary_invalid\");\n\t}\n\tconst row = summary[0]?.row;\n\tconst snapshotId = row?.snapshot_id;\n\tconst sourceTimeMs = Number(row?.source_time_ms);\n\tconst sequence = String(row?.sequence ?? \"\");\n\tif (\n\t\ttypeof snapshotId !== \"string\" ||\n\t\t!/^[a-f0-9]{64}$/u.test(snapshotId) ||\n\t\t!Number.isSafeInteger(sourceTimeMs) ||\n\t\tsourceTimeMs < 0 ||\n\t\t!/^\\d+$/u.test(sequence)\n\t) {\n\t\tthrow new Error(\"source_tape_semantic_summary_invalid\");\n\t}\n\treturn {\n\t\tstate_kind: input.stateKind,\n\t\tsemantic_stream_position: input.semanticStreamPosition,\n\t\tcanonical_snapshot_id: snapshotId,\n\t\tsource_time_ms: sourceTimeMs,\n\t\tsequence,\n\t\tcanonical_rows_sha256: semanticDigest(input.rows),\n\t};\n}\n\nexport type SourceTapeArchiveSink = PolicyNeutralTapeSink & {\n\tresult(): SourceTapeArchiveSinkResult;\n};\n\n/**\n * Streams canonical tape rows to the existing archive-forwarder admission\n * tables. Promotion, selection and exporter-v2 finalization remain later\n * gates; this sink never creates a receipt or a success manifest by itself.\n */\nexport function createSourceTapeArchiveSink(input: {\n\tcaptureBundleId: string;\n\ttradingPair: \"ARB-USDC\" | \"ARB-USDT\";\n\twindow: { startTimeMs: number; endTimeMs: number };\n\tforwarder: {\n\t\tsubmit(batch: ForwarderBatch): Promise<{ ok: boolean; inserted: number }>;\n\t};\n}): SourceTapeArchiveSink {\n\tif (!/^[a-f0-9]{64}$/u.test(input.captureBundleId)) {\n\t\tthrow new Error(\"source_tape_capture_bundle_invalid\");\n\t}\n\tif (\n\t\t!Number.isSafeInteger(input.window.startTimeMs) ||\n\t\t!Number.isSafeInteger(input.window.endTimeMs) ||\n\t\tinput.window.endTimeMs <= input.window.startTimeMs\n\t) {\n\t\tthrow new Error(\"source_tape_window_invalid\");\n\t}\n\tlet stateCount = 0;\n\tlet initializationCount = 0;\n\tlet levelRowCount = 0;\n\tlet summaryRowCount = 0;\n\tlet lastSourceTimeMs = Number.NEGATIVE_INFINITY;\n\tlet completed = false;\n\tlet aborted = false;\n\tlet initializer: SourceTapeArchiveSinkResult[\"initializer\"] | undefined;\n\tconst batchIds: string[] = [];\n\tconst semanticDigestAccumulator = new SourceTapeSemanticDigestAccumulator();\n\tlet firstStateDescriptorSha256: string | undefined;\n\tlet lastStateDescriptorSha256: string | undefined;\n\tlet resultValue: SourceTapeArchiveSinkResult | undefined;\n\n\treturn {\n\t\tasync writeBatch(states) {\n\t\t\tif (completed || aborted) {\n\t\t\t\tthrow new Error(\"source_tape_sink_closed\");\n\t\t\t}\n\t\t\tif (\n\t\t\t\tstates.length === 0 ||\n\t\t\t\tstates.length > SOURCE_TAPE_MAX_STATES_PER_YIELD\n\t\t\t) {\n\t\t\t\tthrow new Error(\"source_tape_state_batch_invalid\");\n\t\t\t}\n\t\t\tfor (const state of states) {\n\t\t\t\tif (state.sourceTimeMs < lastSourceTimeMs) {\n\t\t\t\t\tthrow new Error(\"source_tape_state_order_invalid\");\n\t\t\t\t}\n\t\t\t\tif (state.sourceTimeMs >= input.window.endTimeMs) {\n\t\t\t\t\tthrow new Error(\"source_tape_end_boundary_invalid\");\n\t\t\t\t}\n\t\t\t\tif (state.tapeState === \"initialization\") {\n\t\t\t\t\tinitializationCount += 1;\n\t\t\t\t\tif (stateCount !== 0 || initializationCount !== 1) {\n\t\t\t\t\t\tthrow new Error(\"source_tape_initialization_invalid\");\n\t\t\t\t\t}\n\t\t\t\t} else if (\n\t\t\t\t\tinitializationCount !== 1 ||\n\t\t\t\t\tstate.sourceTimeMs < input.window.startTimeMs\n\t\t\t\t) {\n\t\t\t\t\tthrow new Error(\"source_tape_change_boundary_invalid\");\n\t\t\t\t}\n\t\t\t\tlastSourceTimeMs = state.sourceTimeMs;\n\t\t\t\tstateCount += 1;\n\t\t\t}\n\t\t\tconst rows = normalizeSourceTapeStates({\n\t\t\t\ttape: states,\n\t\t\t\tcapture_bundle_id: input.captureBundleId,\n\t\t\t\ttrading_pair: input.tradingPair,\n\t\t\t});\n\t\t\tfor (const state of states) {\n\t\t\t\tconst stateRows = rows.filter(\n\t\t\t\t\t({ row }) =>\n\t\t\t\t\t\tNumber(row.source_time_ms) === state.sourceTimeMs &&\n\t\t\t\t\t\tString(row.sequence) === state.sequence,\n\t\t\t\t);\n\t\t\t\tconst descriptor = sourceTapeSemanticStateDescriptor({\n\t\t\t\t\tstateKind: state.tapeState,\n\t\t\t\t\tsemanticStreamPosition:\n\t\t\t\t\t\tstateCount - states.length + states.indexOf(state),\n\t\t\t\t\trows: stateRows,\n\t\t\t\t});\n\t\t\t\tsemanticDigestAccumulator.append(descriptor);\n\t\t\t\tconst descriptorSha256 = jcsSha256(descriptor);\n\t\t\t\tfirstStateDescriptorSha256 ??= descriptorSha256;\n\t\t\t\tlastStateDescriptorSha256 = descriptorSha256;\n\t\t\t\tif (state.tapeState === \"initialization\") {\n\t\t\t\t\tinitializer = {\n\t\t\t\t\t\tcanonical_snapshot_id: descriptor.canonical_snapshot_id,\n\t\t\t\t\t\tsource_time_ms: descriptor.source_time_ms,\n\t\t\t\t\t\tsequence: descriptor.sequence,\n\t\t\t\t\t\tsemantic_stream_position: 0,\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t}\n\t\t\tfor (const row of rows) {\n\t\t\t\tif (row.table === \"market_data.cex_order_book_levels\") {\n\t\t\t\t\tlevelRowCount += 1;\n\t\t\t\t} else if (row.table === \"market_data.cex_order_book_depth_summary\") {\n\t\t\t\t\tsummaryRowCount += 1;\n\t\t\t\t}\n\t\t\t}\n\t\t\tconst batches = buildForwarderBatches({\n\t\t\t\tcaptureBundleId: input.captureBundleId,\n\t\t\t\tdeploymentId: \"cex-okx-source-tape\",\n\t\t\t\trows,\n\t\t\t\tmaxRows: SOURCE_TAPE_MAX_BATCH_ROWS,\n\t\t\t\tmaxBytes: SOURCE_TAPE_MAX_BATCH_BYTES,\n\t\t\t});\n\t\t\tfor (const batch of batches) {\n\t\t\t\tconst response = await input.forwarder.submit(batch);\n\t\t\t\tif (!response.ok || response.inserted !== batch.rows.length) {\n\t\t\t\t\tthrow new Error(\"source_tape_forwarder_rejected\");\n\t\t\t\t}\n\t\t\t\tbatchIds.push(batch.batch_id);\n\t\t\t}\n\t\t},\n\t\tasync complete(completion) {\n\t\t\tif (\n\t\t\t\tcompleted ||\n\t\t\t\taborted ||\n\t\t\t\tinitializationCount !== 1 ||\n\t\t\t\t!initializer ||\n\t\t\t\t!firstStateDescriptorSha256 ||\n\t\t\t\t!lastStateDescriptorSha256\n\t\t\t) {\n\t\t\t\tthrow new Error(\"source_tape_completion_invalid\");\n\t\t\t}\n\t\t\tif (completion.stateCount !== stateCount) {\n\t\t\t\tthrow new Error(\"source_tape_state_count_mismatch\");\n\t\t\t}\n\t\t\tconst inventory = {\n\t\t\t\texpected_identities: [...completion.expectedObjectIdentities],\n\t\t\t\tobserved_identities: completion.observedObjects.map(\n\t\t\t\t\t({ identity }: ProviderObjectEvidence) => identity,\n\t\t\t\t),\n\t\t\t\tcomplete: true,\n\t\t\t};\n\t\t\tif (!providerObjectInventoryIsComplete(inventory)) {\n\t\t\t\tthrow new Error(\"source_tape_inventory_incomplete\");\n\t\t\t}\n\t\t\tcompleted = true;\n\t\t\tresultValue = {\n\t\t\t\tcapture_bundle_id: input.captureBundleId,\n\t\t\t\tstate_count: stateCount,\n\t\t\t\tlevel_row_count: levelRowCount,\n\t\t\t\tsummary_row_count: summaryRowCount,\n\t\t\t\tforwarder_batch_count: batchIds.length,\n\t\t\t\tforwarder_batch_identity_sha256: sha256Canonical(batchIds),\n\t\t\t\tinitializer,\n\t\t\t\texpected_semantic_digest: semanticDigestAccumulator.digest(),\n\t\t\t\tfirst_state_descriptor_sha256: firstStateDescriptorSha256,\n\t\t\t\tlast_state_descriptor_sha256: lastStateDescriptorSha256,\n\t\t\t\tprovider_object_inventory_complete: true,\n\t\t\t\tmax_states_per_yield: SOURCE_TAPE_MAX_STATES_PER_YIELD,\n\t\t\t\tmax_batch_rows: SOURCE_TAPE_MAX_BATCH_ROWS,\n\t\t\t\tmax_batch_bytes: SOURCE_TAPE_MAX_BATCH_BYTES,\n\t\t\t\tmax_in_flight_submissions: SOURCE_TAPE_MAX_IN_FLIGHT,\n\t\t\t};\n\t\t},\n\t\tasync abort() {\n\t\t\taborted = true;\n\t\t\tresultValue = undefined;\n\t\t},\n\t\tresult() {\n\t\t\tif (!completed || !resultValue || aborted) {\n\t\t\t\tthrow new Error(\"source_tape_result_unavailable\");\n\t\t\t}\n\t\t\treturn resultValue;\n\t\t},\n\t};\n}\n\nexport function providerObjectInventoryIsComplete(\n\tinventory: SourceTapeProviderObjectInventory,\n): boolean {\n\tconst expected = [...inventory.expected_identities].sort();\n\tconst observed = [...inventory.observed_identities].sort();\n\treturn (\n\t\tinventory.complete &&\n\t\tnew Set(expected).size === expected.length &&\n\t\tnew Set(observed).size === observed.length &&\n\t\tJSON.stringify(expected) === JSON.stringify(observed)\n\t);\n}\n\nexport function evaluateSourceTapeEligibility(input: {\n\tsource_enumeration_eligible: boolean;\n\tprovider_object_inventory: SourceTapeProviderObjectInventory;\n\ttape_complete: boolean;\n\tcapability_id: string;\n\tcapability_sha256: string;\n\tconstruction_mode: string;\n\tprojection_schema_pins: readonly {\n\t\tschema_id: string;\n\t\tschema_sha256: string;\n\t}[];\n\tartifact_sha256s: readonly string[];\n\ttape_manifest_sha256: string;\n}): boolean {\n\tconst expectedProjectionPins = [...SOURCE_TAPE_PROJECTION_PINS]\n\t\t.map(({ schema_id, schema_sha256 }) => `${schema_id}:${schema_sha256}`)\n\t\t.sort();\n\tconst actualProjectionPins = input.projection_schema_pins\n\t\t.map(({ schema_id, schema_sha256 }) => `${schema_id}:${schema_sha256}`)\n\t\t.sort();\n\treturn (\n\t\tinput.source_enumeration_eligible &&\n\t\tproviderObjectInventoryIsComplete(input.provider_object_inventory) &&\n\t\tinput.tape_complete &&\n\t\tinput.capability_id === SOURCE_TAPE_CAPABILITY_ID &&\n\t\tinput.capability_sha256 === SOURCE_TAPE_CAPABILITY.policy_sha256 &&\n\t\tinput.construction_mode === SOURCE_TAPE_CONSTRUCTION_MODE &&\n\t\tJSON.stringify(actualProjectionPins) ===\n\t\t\tJSON.stringify(expectedProjectionPins) &&\n\t\tinput.artifact_sha256s.length === 2 &&\n\t\tnew Set(input.artifact_sha256s).size === 2 &&\n\t\tinput.artifact_sha256s.every((sha) => /^[a-f0-9]{64}$/u.test(sha)) &&\n\t\t/^[a-f0-9]{64}$/u.test(input.tape_manifest_sha256)\n\t);\n}\n\nexport function normalizeSourceTapeStates(input: {\n\ttape: readonly PolicyNeutralCryptoHftBookState[];\n\tcapture_bundle_id: string;\n\ttrading_pair: \"ARB-USDC\" | \"ARB-USDT\";\n}): BackfillArchiveRow[] {\n\tif (!/^[a-f0-9]{64}$/u.test(input.capture_bundle_id)) {\n\t\tthrow new Error(\"source tape capture bundle identity is invalid\");\n\t}\n\treturn input.tape.flatMap((state) => {\n\t\tconst rawCaptureId = sha256Canonical({\n\t\t\tcapability_policy_sha256: SOURCE_TAPE_CAPABILITY.policy_sha256,\n\t\t\tcapture_bundle_id: input.capture_bundle_id,\n\t\t\tdataset_object_identity: state.datasetObjectIdentity,\n\t\t\tdataset_object_checksum: state.datasetObjectChecksum,\n\t\t\tsource_time_ms: state.sourceTimeMs,\n\t\t\tsequence: state.sequence,\n\t\t\ttape_state: state.tapeState,\n\t\t});\n\t\tconst canonical = buildCanonicalOrderBookRows({\n\t\t\tcontext: {\n\t\t\t\tsource: \"external_backfill\",\n\t\t\t\tdeploymentId: \"cex-okx-source-tape\",\n\t\t\t\tcaptureBundleId: input.capture_bundle_id,\n\t\t\t\texchange: \"okx\",\n\t\t\t\tsymbol: input.trading_pair,\n\t\t\t\ttradingPair: input.trading_pair,\n\t\t\t\tsourceSymbol: input.trading_pair,\n\t\t\t\tassetType: \"spot\",\n\t\t\t\tfeed: \"ORDERBOOK\",\n\t\t\t\tprovider: \"cryptohftdata\",\n\t\t\t\tsourceMode: \"vendor_historical_backfill_v1\",\n\t\t\t\tschemaVersion: MARKET_CAPTURE_SCHEMA_VERSION,\n\t\t\t\tchecksumAlgorithm: CHECKSUM_ALGORITHM,\n\t\t\t\tprovenanceComplete: true,\n\t\t\t},\n\t\t\trawCapture: {\n\t\t\t\trawCaptureId,\n\t\t\t\trawCaptureScope: \"vendor_normalized_dataset_file\",\n\t\t\t\trawChecksum: state.datasetObjectChecksum,\n\t\t\t\tredactedPayload: {\n\t\t\t\t\tdataset_object_identity: state.datasetObjectIdentity,\n\t\t\t\t\tdataset_object_checksum: state.datasetObjectChecksum,\n\t\t\t\t},\n\t\t\t\teventTimeMs: state.sourceTimeMs,\n\t\t\t\treceivedTimeMs: state.receivedTimeMs,\n\t\t\t\tchecksumAlgorithm: CHECKSUM_ALGORITHM,\n\t\t\t},\n\t\t\tdepthLimit: SOURCE_TAPE_DEPTH,\n\t\t\tconstructionMode: SOURCE_TAPE_CONSTRUCTION_MODE,\n\t\t\tsnapshot: {\n\t\t\t\tbids: state.bids,\n\t\t\t\tasks: state.asks,\n\t\t\t\ttimestamp: state.sourceTimeMs,\n\t\t\t\treceivedTimestamp: state.receivedTimeMs,\n\t\t\t\texchange: \"okx\",\n\t\t\t\tsymbol: input.trading_pair,\n\t\t\t\tdepthLimit: SOURCE_TAPE_DEPTH,\n\t\t\t\tsequence: state.sequence,\n\t\t\t},\n\t\t});\n\t\treturn [...canonical.levels, canonical.summary].map((entry) => {\n\t\t\tif (\n\t\t\t\tentry.table !== \"market_data.cex_order_book_levels\" &&\n\t\t\t\tentry.table !== \"market_data.cex_order_book_depth_summary\"\n\t\t\t) {\n\t\t\t\tthrow new Error(\"source tape archive table is invalid\");\n\t\t\t}\n\t\t\treturn { table: entry.table, row: entry.row };\n\t\t});\n\t});\n}\n\nimport { createHash, type Hash } from \"node:crypto\";\n",
257
+ "import { sha256Canonical } from \"../market-data-archive/capture-contract\";\nimport {\n\tSOURCE_TAPE_CAPABILITY,\n\tSOURCE_TAPE_CONSTRUCTION_MODE,\n} from \"../source-tape\";\nimport {\n\ttype BackfillArchiveRow,\n\ttype PromotionReceipt,\n\ttype PromotionReceiptWire,\n\tpromotionIdentitySha256,\n\tpromotionReceiptCodec,\n\tpromotionReceiptSchema,\n} from \"./contracts\";\nimport { documentSha256, jcsCanonicalize } from \"./identity\";\nimport {\n\tCAPABILITY_POLICY,\n\tEFFECTIVE_ACQUISITION_POLICY_PIN,\n\tEFFECTIVE_ADAPTER_POLICY_PIN,\n\tRESOURCE_POLICY,\n} from \"./manifests\";\n\nexport type StablePromotionReceipt = Omit<\n\tPromotionReceipt,\n\t\"receiptId\" | \"verificationTimeMs\"\n>;\n\nfunction samePolicyPin(\n\tleft: { policy_id: string; policy_sha256: string },\n\tright: { policy_id: string; policy_sha256: string },\n): boolean {\n\treturn (\n\t\tleft.policy_id === right.policy_id &&\n\t\tleft.policy_sha256 === right.policy_sha256\n\t);\n}\n\nexport function promotionReceiptMatchesCurrentPolicies(\n\treceipt: PromotionReceiptWire,\n): boolean {\n\tconst expectedCapability =\n\t\treceipt.construction_mode === SOURCE_TAPE_CONSTRUCTION_MODE\n\t\t\t? SOURCE_TAPE_CAPABILITY\n\t\t\t: CAPABILITY_POLICY;\n\treturn (\n\t\tsamePolicyPin(\n\t\t\treceipt.effective_policies.capability_policy,\n\t\t\texpectedCapability,\n\t\t) &&\n\t\tsamePolicyPin(\n\t\t\treceipt.effective_policies.resource_policy,\n\t\t\tRESOURCE_POLICY,\n\t\t) &&\n\t\tsamePolicyPin(\n\t\t\treceipt.effective_policies.adapter_policy,\n\t\t\tEFFECTIVE_ADAPTER_POLICY_PIN,\n\t\t) &&\n\t\tsamePolicyPin(\n\t\t\treceipt.effective_policies.acquisition_policy,\n\t\t\tEFFECTIVE_ACQUISITION_POLICY_PIN,\n\t\t)\n\t);\n}\n\nexport function promotionReceiptId(receipt: StablePromotionReceipt): string {\n\treturn sha256Canonical(receipt);\n}\n\nfunction finalizeLegacyPromotionReceipt(\n\tstable: StablePromotionReceipt,\n\tverificationTimeMs: number,\n): PromotionReceipt {\n\treturn promotionReceiptSchema.parse({\n\t\t...stable,\n\t\treceiptId: promotionReceiptId(stable),\n\t\tverificationTimeMs,\n\t});\n}\n\ntype UnfinalizedPromotionReceiptWire = Omit<\n\tPromotionReceiptWire,\n\t\"receipt_id\" | \"promotion_identity_sha256\"\n> &\n\tPartial<\n\t\tPick<PromotionReceiptWire, \"receipt_id\" | \"promotion_identity_sha256\">\n\t>;\n\nexport function finalizePromotionReceipt(\n\treceipt: UnfinalizedPromotionReceiptWire,\n): PromotionReceiptWire;\nexport function finalizePromotionReceipt(\n\treceipt: StablePromotionReceipt,\n\tverificationTimeMs: number,\n): PromotionReceipt;\nexport function finalizePromotionReceipt(\n\treceipt: UnfinalizedPromotionReceiptWire | StablePromotionReceipt,\n\tverificationTimeMs?: number,\n): PromotionReceiptWire | PromotionReceipt {\n\tif (\"schema_id\" in receipt) {\n\t\tconst {\n\t\t\treceipt_id: _receiptId,\n\t\t\tpromotion_identity_sha256: _promotionIdentity,\n\t\t\t...semanticAndTimestamp\n\t\t} = receipt;\n\t\tconst promotion_identity_sha256 =\n\t\t\tpromotionIdentitySha256(semanticAndTimestamp);\n\t\tconst content = { ...semanticAndTimestamp, promotion_identity_sha256 };\n\t\treturn promotionReceiptCodec.decode({\n\t\t\t...content,\n\t\t\treceipt_id: documentSha256(content, \"receipt_id\"),\n\t\t});\n\t}\n\tif (verificationTimeMs === undefined) {\n\t\tthrow new TypeError(\"legacy promotion receipt requires verificationTimeMs\");\n\t}\n\treturn finalizeLegacyPromotionReceipt(receipt, verificationTimeMs);\n}\n\nexport function promotionReceiptToArchiveRow(\n\treceiptInput: PromotionReceipt | PromotionReceiptWire,\n): BackfillArchiveRow {\n\tif (\"schema_id\" in receiptInput) {\n\t\tconst receipt = promotionReceiptCodec.decode(receiptInput);\n\t\treturn {\n\t\t\ttable: \"market_data.cex_order_book_capture_promotions\",\n\t\t\trow: {\n\t\t\t\tsource: receipt.source,\n\t\t\t\tcapture_origin: receipt.capture_origin,\n\t\t\t\tsource_mode: receipt.source_mode,\n\t\t\t\tdeployment_id: \"market-data-vendor-backfill\",\n\t\t\t\treceipt_schema_version: receipt.schema_id,\n\t\t\t\treceipt_id: receipt.receipt_id,\n\t\t\t\tpromotion_identity_sha256: receipt.promotion_identity_sha256,\n\t\t\t\trequest_id: receipt.request_id,\n\t\t\t\tidempotency_key: receipt.idempotency_key,\n\t\t\t\tstatus: \"passing\",\n\t\t\t\tcapture_bundle_id: receipt.capture_bundle_id,\n\t\t\t\tprovider: receipt.provider,\n\t\t\t\tadapter_version: receipt.adapter_version,\n\t\t\t\texchange: receipt.scope.exchange,\n\t\t\t\ttrading_pair: receipt.scope.trading_pair,\n\t\t\t\tasset_type: receipt.scope.market_type,\n\t\t\t\tfeed: receipt.scope.feed,\n\t\t\t\twindow_start_ms: Date.parse(receipt.window.start_at),\n\t\t\t\twindow_end_ms: Date.parse(receipt.window.end_at),\n\t\t\t\tdepth_limit: receipt.depth,\n\t\t\t\tconstruction_mode: receipt.construction_mode,\n\t\t\t\tschema_version: \"1.0.0\",\n\t\t\t\tcanonical_schema_sha256: receipt.canonical_schema.schema_sha256,\n\t\t\t\tchecksum_algorithm: \"sha256-canonical-json-v1\",\n\t\t\t\tcoverage_policy_json: jcsCanonicalize(receipt.coverage_policy),\n\t\t\t\tselection_sha256: receipt.selection_sha256,\n\t\t\t\tcapability_policy_id:\n\t\t\t\t\treceipt.effective_policies.capability_policy.policy_id,\n\t\t\t\tcapability_policy_sha256:\n\t\t\t\t\treceipt.effective_policies.capability_policy.policy_sha256,\n\t\t\t\tresource_policy_id:\n\t\t\t\t\treceipt.effective_policies.resource_policy.policy_id,\n\t\t\t\tresource_policy_sha256:\n\t\t\t\t\treceipt.effective_policies.resource_policy.policy_sha256,\n\t\t\t\tadapter_policy_id: receipt.effective_policies.adapter_policy.policy_id,\n\t\t\t\tadapter_policy_sha256:\n\t\t\t\t\treceipt.effective_policies.adapter_policy.policy_sha256,\n\t\t\t\tacquisition_policy_id:\n\t\t\t\t\treceipt.effective_policies.acquisition_policy.policy_id,\n\t\t\t\tacquisition_policy_sha256:\n\t\t\t\t\treceipt.effective_policies.acquisition_policy.policy_sha256,\n\t\t\t\tvendor_semantic_digest: receipt.vendor_semantic_digest,\n\t\t\t\tcanonical_semantic_digest: receipt.canonical_semantic_digest,\n\t\t\t\tprefix_digest: receipt.prefix_digest,\n\t\t\t\tsuffix_digest: receipt.suffix_digest,\n\t\t\t\tseam_verified: 1,\n\t\t\t\tcoverage_verified: 1,\n\t\t\t\tdataset_objects_json: jcsCanonicalize(receipt.dataset_objects),\n\t\t\t\treceipt_json: jcsCanonicalize(receipt),\n\t\t\t\tverification_time_ms: Date.parse(receipt.verified_at),\n\t\t\t},\n\t\t};\n\t}\n\tconst receipt = promotionReceiptSchema.parse(receiptInput);\n\tif (\n\t\tpromotionReceiptId(\n\t\t\tObject.fromEntries(\n\t\t\t\tObject.entries(receipt).filter(\n\t\t\t\t\t([key]) => key !== \"receiptId\" && key !== \"verificationTimeMs\",\n\t\t\t\t),\n\t\t\t) as StablePromotionReceipt,\n\t\t) !== receipt.receiptId\n\t) {\n\t\tthrow new Error(\"promotion receipt identity mismatch\");\n\t}\n\treturn {\n\t\ttable: \"market_data.cex_order_book_capture_promotions\",\n\t\trow: {\n\t\t\tsource: receipt.source,\n\t\t\tdeployment_id: \"market-data-vendor-backfill\",\n\t\t\treceipt_schema_version: receipt.schemaVersion,\n\t\t\treceipt_id: receipt.receiptId,\n\t\t\trequest_id: receipt.requestId,\n\t\t\tidempotency_key: receipt.idempotencyKey,\n\t\t\tstatus: receipt.status,\n\t\t\tcapture_bundle_id: receipt.captureBundleId,\n\t\t\tprovider: receipt.provider,\n\t\t\tadapter_version: receipt.adapterVersion,\n\t\t\texchange: receipt.exchange,\n\t\t\ttrading_pair: receipt.tradingPair,\n\t\t\tasset_type: receipt.marketType,\n\t\t\tfeed: receipt.feed,\n\t\t\twindow_start_ms: receipt.startTimeMs,\n\t\t\twindow_end_ms: receipt.endTimeMs,\n\t\t\tdepth_limit: receipt.depth,\n\t\t\tconstruction_mode: receipt.constructionMode,\n\t\t\tschema_version: receipt.canonicalSchemaVersion,\n\t\t\tchecksum_algorithm: receipt.checksumAlgorithm,\n\t\t\tvendor_semantic_digest: receipt.vendorSemanticDigest,\n\t\t\tcanonical_semantic_digest: receipt.canonicalSemanticDigest,\n\t\t\tprefix_digest: receipt.prefixDigest,\n\t\t\tsuffix_digest: receipt.suffixDigest,\n\t\t\tseam_verified: 1,\n\t\t\tcoverage_verified: 1,\n\t\t\tdataset_objects_json: JSON.stringify(receipt.datasetObjects),\n\t\t\tverification_time_ms: receipt.verificationTimeMs,\n\t\t},\n\t};\n}\n\nexport function promotionReceiptFromArchiveRow(\n\trow: Record<string, unknown>,\n): PromotionReceipt | PromotionReceiptWire {\n\tif (typeof row.receipt_json === \"string\" && row.receipt_json.length > 0) {\n\t\tlet parsed: unknown;\n\t\ttry {\n\t\t\tparsed = JSON.parse(row.receipt_json);\n\t\t} catch {\n\t\t\tthrow new Error(\"promotion receipt_json is invalid\");\n\t\t}\n\t\tconst receipt = promotionReceiptCodec.decode(parsed);\n\t\tif (\n\t\t\treceipt.receipt_id !== row.receipt_id ||\n\t\t\treceipt.promotion_identity_sha256 !== row.promotion_identity_sha256\n\t\t) {\n\t\t\tthrow new Error(\"promotion receipt archive identity mismatch\");\n\t\t}\n\t\treturn receipt;\n\t}\n\tlet datasetObjects: unknown;\n\ttry {\n\t\tdatasetObjects = JSON.parse(String(row.dataset_objects_json));\n\t} catch {\n\t\tthrow new Error(\"promotion dataset_objects_json is invalid\");\n\t}\n\tconst receipt = promotionReceiptSchema.parse({\n\t\tschemaVersion: row.receipt_schema_version,\n\t\treceiptId: row.receipt_id,\n\t\trequestId: row.request_id,\n\t\tidempotencyKey: row.idempotency_key,\n\t\tstatus: row.status,\n\t\tsource: row.source,\n\t\tprovider: row.provider,\n\t\tadapterVersion: row.adapter_version,\n\t\tcaptureBundleId: row.capture_bundle_id,\n\t\texchange: row.exchange,\n\t\ttradingPair: row.trading_pair,\n\t\tmarketType: row.asset_type,\n\t\tfeed: row.feed,\n\t\tstartTimeMs: row.window_start_ms,\n\t\tendTimeMs: row.window_end_ms,\n\t\tdepth: row.depth_limit,\n\t\tconstructionMode: row.construction_mode,\n\t\tcanonicalSchemaVersion: row.schema_version,\n\t\tchecksumAlgorithm: row.checksum_algorithm,\n\t\tvendorSemanticDigest: row.vendor_semantic_digest,\n\t\tcanonicalSemanticDigest: row.canonical_semantic_digest,\n\t\tprefixDigest: row.prefix_digest,\n\t\tsuffixDigest: row.suffix_digest,\n\t\tseamVerified: row.seam_verified === 1,\n\t\tcoverageVerified: row.coverage_verified === 1,\n\t\tdatasetObjects,\n\t\tverificationTimeMs: row.verification_time_ms,\n\t});\n\tconst {\n\t\treceiptId,\n\t\tverificationTimeMs: _verificationTimeMs,\n\t\t...stable\n\t} = receipt;\n\tif (promotionReceiptId(stable) !== receiptId) {\n\t\tthrow new Error(\"promotion receipt identity mismatch\");\n\t}\n\treturn receipt;\n}\n",
258
+ "import {\n\ttype CanonicalOrderBookExportQuerySegment,\n\ttype CanonicalOrderBookExportRequestWire,\n\tcanonicalOrderBookExportRequestCodec,\n\tORDER_BOOK_DEPTH_SUMMARY_PARQUET_PROJECTION,\n\tORDER_BOOK_DEPTH_SUMMARY_PARQUET_PROJECTION_SCHEMA_SHA256,\n\tORDER_BOOK_LEVELS_PARQUET_PROJECTION,\n\tORDER_BOOK_LEVELS_PARQUET_PROJECTION_SCHEMA_SHA256,\n} from \"../market-data-preparation/contracts\";\nimport {\n\ttype ArchiveSelectionWire,\n\tarchiveSelectionCodec,\n\ttype Sha256Hex,\n} from \"../market-data-vendor-backfill/contracts\";\nimport { jcsSha256 } from \"../market-data-vendor-backfill/identity\";\nimport {\n\tCAPABILITY_POLICY,\n\tEFFECTIVE_ACQUISITION_POLICY_PIN,\n\tEFFECTIVE_ADAPTER_POLICY_PIN,\n\tRESOURCE_POLICY,\n} from \"../market-data-vendor-backfill/manifests\";\nimport {\n\tSOURCE_TAPE_CAPABILITY,\n\tSOURCE_TAPE_CONSTRUCTION_MODE,\n} from \"../source-tape\";\n\nexport type ExactOrderBookQueryValue = string | number | readonly string[];\n\nexport type CompiledExactOrderBookExport = {\n\trequest: CanonicalOrderBookExportRequestWire;\n\tsegments: CanonicalOrderBookExportQuerySegment[];\n\tquerySha256: Sha256Hex;\n\tparameters: Readonly<Record<string, ExactOrderBookQueryValue>>;\n\tpredicateSql: string;\n\tphysicalPredicateSql: string;\n\tlevelsSql: string;\n\tsummarySql: string;\n\tconflictsSql: string;\n\trowCountsSql: string;\n\tpromotionReceiptsSql: string;\n};\n\nexport class ExactOrderBookExportError extends Error {\n\tconstructor(readonly reason: string) {\n\t\tsuper(reason);\n\t\tthis.name = \"ExactOrderBookExportError\";\n\t}\n}\n\ntype Interval = { startAtMs: number; endAtMs: number };\ntype Candidate = CanonicalOrderBookExportQuerySegment & Interval;\n\nfunction intervalMs(\n\tinterval: { start_at: string; end_at: string },\n\tfield: string,\n): Interval {\n\tconst startAtMs = Date.parse(interval.start_at);\n\tconst endAtMs = Date.parse(interval.end_at);\n\tif (\n\t\t!Number.isSafeInteger(startAtMs) ||\n\t\t!Number.isSafeInteger(endAtMs) ||\n\t\tstartAtMs < 0 ||\n\t\tendAtMs <= startAtMs\n\t) {\n\t\tthrow new ExactOrderBookExportError(`${field}_invalid`);\n\t}\n\treturn { startAtMs, endAtMs };\n}\n\nfunction contains(outer: Interval, inner: Interval): boolean {\n\treturn outer.startAtMs <= inner.startAtMs && outer.endAtMs >= inner.endAtMs;\n}\n\nfunction expectedPrecedence(\n\tselection: ArchiveSelectionWire,\n): ArchiveSelectionWire[\"precedence\"] {\n\treturn selection.source_policy === \"fill_gaps\"\n\t\t? [\"archive\", \"vendor\"]\n\t\t: [\"vendor\"];\n}\n\nfunction originPriority(\n\tselection: ArchiveSelectionWire,\n\torigin: CanonicalOrderBookExportQuerySegment[\"capture_origin\"],\n): number {\n\tif (selection.source_policy === \"fill_gaps\") {\n\t\treturn origin === \"production_capture\" ? 0 : 1;\n\t}\n\treturn origin === \"vendor_historical_backfill\" ? 0 : Number.MAX_SAFE_INTEGER;\n}\n\nfunction assertSelectionLinks(selection: ArchiveSelectionWire): Candidate[] {\n\tif (\n\t\tJSON.stringify(selection.precedence) !==\n\t\tJSON.stringify(expectedPrecedence(selection))\n\t) {\n\t\tthrow new ExactOrderBookExportError(\"selection_precedence_invalid\");\n\t}\n\tconst bundleById = new Map(\n\t\tselection.bundles.map((bundle) => [bundle.capture_bundle_id, bundle]),\n\t);\n\tif (bundleById.size !== selection.bundles.length) {\n\t\tthrow new ExactOrderBookExportError(\"selection_bundle_identity_duplicate\");\n\t}\n\tconst requested = selection.requested_intervals.map((interval, index) =>\n\t\tintervalMs(interval, `requested_interval_${index}`),\n\t);\n\tif (\n\t\tselection.source_policy === \"authoritative_window\" &&\n\t\tnew Set(\n\t\t\tselection.selected_intervals.map((selected) => selected.capture_origin),\n\t\t).size > 1\n\t) {\n\t\tthrow new ExactOrderBookExportError(\n\t\t\t\"authoritative_selection_mixes_capture_origins\",\n\t\t);\n\t}\n\n\treturn selection.selected_intervals.map((selected, index) => {\n\t\tconst selectedMs = intervalMs(selected, `selected_interval_${index}`);\n\t\tconst bundle = bundleById.get(selected.capture_bundle_id);\n\t\tif (!bundle || bundle.capture_origin !== selected.capture_origin) {\n\t\t\tthrow new ExactOrderBookExportError(\"selected_bundle_link_invalid\");\n\t\t}\n\t\tif (\n\t\t\t!contains(\n\t\t\t\tintervalMs(bundle.interval, `bundle_interval_${index}`),\n\t\t\t\tselectedMs,\n\t\t\t)\n\t\t) {\n\t\t\tthrow new ExactOrderBookExportError(\"selected_interval_outside_bundle\");\n\t\t}\n\t\tif (!requested.some((interval) => contains(interval, selectedMs))) {\n\t\t\tthrow new ExactOrderBookExportError(\"selected_interval_outside_request\");\n\t\t}\n\t\tif (selected.capture_origin === \"vendor_historical_backfill\") {\n\t\t\tconst qualification = bundle.qualification;\n\t\t\tif (\n\t\t\t\tqualification?.state !== \"qualified\" ||\n\t\t\t\t!selection.receipt_ids.includes(qualification.receipt_id) ||\n\t\t\t\t!selection.qualification_event_ids.includes(\n\t\t\t\t\tqualification.qualification_event_id,\n\t\t\t\t)\n\t\t\t) {\n\t\t\t\tthrow new ExactOrderBookExportError(\n\t\t\t\t\t\"vendor_selection_qualification_link_invalid\",\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t\treturn { ...selected, ...selectedMs };\n\t});\n}\n\nfunction effectiveSegments(\n\tselection: ArchiveSelectionWire,\n): CanonicalOrderBookExportQuerySegment[] {\n\tconst candidates = assertSelectionLinks(selection);\n\tconst segments: Candidate[] = [];\n\tfor (const [\n\t\trequestIndex,\n\t\trequestedWire,\n\t] of selection.requested_intervals.entries()) {\n\t\tconst requested = intervalMs(\n\t\t\trequestedWire,\n\t\t\t`requested_interval_${requestIndex}`,\n\t\t);\n\t\tconst relevant = candidates.filter(\n\t\t\t(candidate) =>\n\t\t\t\tcandidate.startAtMs < requested.endAtMs &&\n\t\t\t\tcandidate.endAtMs > requested.startAtMs,\n\t\t);\n\t\tconst boundaries = [\n\t\t\t...new Set([\n\t\t\t\trequested.startAtMs,\n\t\t\t\trequested.endAtMs,\n\t\t\t\t...relevant.flatMap((candidate) => [\n\t\t\t\t\tMath.max(candidate.startAtMs, requested.startAtMs),\n\t\t\t\t\tMath.min(candidate.endAtMs, requested.endAtMs),\n\t\t\t\t]),\n\t\t\t]),\n\t\t].sort((left, right) => left - right);\n\t\tfor (let index = 0; index < boundaries.length - 1; index += 1) {\n\t\t\tconst startAtMs = boundaries[index];\n\t\t\tconst endAtMs = boundaries[index + 1];\n\t\t\tif (\n\t\t\t\tstartAtMs === undefined ||\n\t\t\t\tendAtMs === undefined ||\n\t\t\t\tendAtMs <= startAtMs\n\t\t\t) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tconst covering = relevant.filter(\n\t\t\t\t(candidate) =>\n\t\t\t\t\tcandidate.startAtMs <= startAtMs && candidate.endAtMs >= endAtMs,\n\t\t\t);\n\t\t\tif (covering.length === 0) {\n\t\t\t\tthrow new ExactOrderBookExportError(\"complete_selection_has_gap\");\n\t\t\t}\n\t\t\tconst priority = Math.min(\n\t\t\t\t...covering.map((candidate) =>\n\t\t\t\t\toriginPriority(selection, candidate.capture_origin),\n\t\t\t\t),\n\t\t\t);\n\t\t\tconst preferred = covering.filter(\n\t\t\t\t(candidate) =>\n\t\t\t\t\toriginPriority(selection, candidate.capture_origin) === priority,\n\t\t\t);\n\t\t\tconst identities = new Set(\n\t\t\t\tpreferred.map(\n\t\t\t\t\t(candidate) =>\n\t\t\t\t\t\t`${candidate.capture_bundle_id}:${candidate.capture_origin}`,\n\t\t\t\t),\n\t\t\t);\n\t\t\tif (identities.size !== 1 || !preferred[0]) {\n\t\t\t\tthrow new ExactOrderBookExportError(\"ambiguous_selection_overlap\");\n\t\t\t}\n\t\t\tsegments.push({ ...preferred[0], startAtMs, endAtMs });\n\t\t}\n\t}\n\n\tconst merged: Candidate[] = [];\n\tfor (const segment of segments.sort(\n\t\t(left, right) =>\n\t\t\tleft.startAtMs - right.startAtMs ||\n\t\t\tleft.endAtMs - right.endAtMs ||\n\t\t\tleft.capture_bundle_id.localeCompare(right.capture_bundle_id),\n\t)) {\n\t\tconst previous = merged.at(-1);\n\t\tif (\n\t\t\tprevious &&\n\t\t\tprevious.endAtMs === segment.startAtMs &&\n\t\t\tprevious.capture_bundle_id === segment.capture_bundle_id &&\n\t\t\tprevious.capture_origin === segment.capture_origin\n\t\t) {\n\t\t\tprevious.endAtMs = segment.endAtMs;\n\t\t\tprevious.end_at = new Date(segment.endAtMs).toISOString();\n\t\t} else {\n\t\t\tmerged.push({\n\t\t\t\t...segment,\n\t\t\t\tstart_at: new Date(segment.startAtMs).toISOString(),\n\t\t\t\tend_at: new Date(segment.endAtMs).toISOString(),\n\t\t\t});\n\t\t}\n\t}\n\treturn merged.map(\n\t\t({ startAtMs: _startAtMs, endAtMs: _endAtMs, ...segment }) => segment,\n\t);\n}\n\nfunction queryIdentity(\n\trequest: CanonicalOrderBookExportRequestWire,\n\tsegments: CanonicalOrderBookExportQuerySegment[],\n): Sha256Hex {\n\treturn jcsSha256({\n\t\tselection_sha256: request.selection.selection_sha256,\n\t\ttarget: request.target,\n\t\tscope: request.selection.scope,\n\t\tdepth: request.depth,\n\t\tconstruction_mode: request.construction_mode,\n\t\tcanonical_schema_version: request.canonical_schema_version,\n\t\tchecksum_algorithm: request.checksum_algorithm,\n\t\tsource_policy: request.selection.source_policy,\n\t\tprecedence: request.selection.precedence,\n\t\tsegments,\n\t\tprojection_schemas: {\n\t\t\tlevels: {\n\t\t\t\tschema_id: ORDER_BOOK_LEVELS_PARQUET_PROJECTION.$id,\n\t\t\t\tschema_sha256: ORDER_BOOK_LEVELS_PARQUET_PROJECTION_SCHEMA_SHA256,\n\t\t\t},\n\t\t\tsummary: {\n\t\t\t\tschema_id: ORDER_BOOK_DEPTH_SUMMARY_PARQUET_PROJECTION.$id,\n\t\t\t\tschema_sha256:\n\t\t\t\t\tORDER_BOOK_DEPTH_SUMMARY_PARQUET_PROJECTION_SCHEMA_SHA256,\n\t\t\t},\n\t\t},\n\t});\n}\n\nfunction projectionSql(projection: {\n\tcolumns: Array<{ name: string }>;\n}): string {\n\treturn projection.columns.map(({ name }) => `\\`${name}\\``).join(\", \");\n}\n\nfunction buildPredicate(\n\trequest: CanonicalOrderBookExportRequestWire,\n\tsegments: CanonicalOrderBookExportQuerySegment[],\n): {\n\tparameters: Record<string, ExactOrderBookQueryValue>;\n\tpredicateSql: string;\n\tsegmentPredicateSql: string[];\n} {\n\tconst parameters: Record<string, ExactOrderBookQueryValue> = {\n\t\texchange: request.selection.scope.exchange,\n\t\ttrading_pair: request.selection.scope.trading_pair,\n\t\tdepth_limit: request.depth,\n\t\tconstruction_mode: request.construction_mode,\n\t\tschema_version: request.canonical_schema_version,\n\t\tchecksum_algorithm: request.checksum_algorithm,\n\t};\n\tconst segmentPredicates = segments.map((segment, index) => {\n\t\tconst prefix = `segment_${index}`;\n\t\tconst sources =\n\t\t\tsegment.capture_origin === \"production_capture\"\n\t\t\t\t? [\"broker_read\", \"broker_write\"]\n\t\t\t\t: [\"external_backfill\"];\n\t\tparameters[`${prefix}_bundle`] = segment.capture_bundle_id;\n\t\tparameters[`${prefix}_start_ms`] = Date.parse(segment.start_at);\n\t\tparameters[`${prefix}_end_ms`] = Date.parse(segment.end_at);\n\t\tparameters[`${prefix}_origin`] =\n\t\t\tsegment.capture_origin === \"production_capture\"\n\t\t\t\t? \"production_capture\"\n\t\t\t\t: \"vendor_historical_backfill\";\n\t\tparameters[`${prefix}_sources`] = sources;\n\t\treturn `(capture_bundle_id = {${prefix}_bundle:String}\n\tAND capture_origin = {${prefix}_origin:String}\n\tAND source IN {${prefix}_sources:Array(String)}\n\tAND source_time_ms >= {${prefix}_start_ms:UInt64}\n\tAND source_time_ms < {${prefix}_end_ms:UInt64})`;\n\t});\n\tconst scopePredicateSql = `exchange = {exchange:String}\n\tAND trading_pair = {trading_pair:String}\n\tAND feed = 'ORDERBOOK'\n\tAND depth_limit = {depth_limit:UInt16}\n\tAND construction_mode = {construction_mode:String}\n\tAND schema_version = {schema_version:String}\n\tAND checksum_algorithm = {checksum_algorithm:String}`;\n\treturn {\n\t\tparameters,\n\t\tpredicateSql: `${scopePredicateSql}\n\tAND (${segmentPredicates.join(\"\\n\\tOR \")})`,\n\t\tsegmentPredicateSql: segmentPredicates.map(\n\t\t\t(segmentPredicate) => `${scopePredicateSql}\\n\\tAND ${segmentPredicate}`,\n\t\t),\n\t};\n}\n\nexport function compileExactOrderBookExport(\n\trequestInput: CanonicalOrderBookExportRequestWire,\n): CompiledExactOrderBookExport {\n\tconst request = canonicalOrderBookExportRequestCodec.decode(requestInput);\n\tarchiveSelectionCodec.decode(request.selection);\n\tconst segments = effectiveSegments(request.selection);\n\tif (segments.length === 0) {\n\t\tthrow new ExactOrderBookExportError(\"selection_has_no_effective_segments\");\n\t}\n\tconst { parameters, predicateSql, segmentPredicateSql } = buildPredicate(\n\t\trequest,\n\t\tsegments,\n\t);\n\tconst currentCapability =\n\t\trequest.construction_mode === SOURCE_TAPE_CONSTRUCTION_MODE\n\t\t\t? SOURCE_TAPE_CAPABILITY\n\t\t\t: CAPABILITY_POLICY;\n\tparameters.current_capability_policy_id = currentCapability.policy_id;\n\tparameters.current_capability_policy_sha256 = currentCapability.policy_sha256;\n\tparameters.current_resource_policy_id = RESOURCE_POLICY.policy_id;\n\tparameters.current_resource_policy_sha256 = RESOURCE_POLICY.policy_sha256;\n\tparameters.current_adapter_policy_id = EFFECTIVE_ADAPTER_POLICY_PIN.policy_id;\n\tparameters.current_adapter_policy_sha256 =\n\t\tEFFECTIVE_ADAPTER_POLICY_PIN.policy_sha256;\n\tparameters.current_acquisition_policy_id =\n\t\tEFFECTIVE_ACQUISITION_POLICY_PIN.policy_id;\n\tparameters.current_acquisition_policy_sha256 =\n\t\tEFFECTIVE_ACQUISITION_POLICY_PIN.policy_sha256;\n\tconst physicalPredicateSql = predicateSql;\n\tconst levelsSql = `SELECT ${projectionSql(ORDER_BOOK_LEVELS_PARQUET_PROJECTION)}\n\tFROM market_data.cex_order_book_levels_replay_qualified\n\tWHERE ${predicateSql}\n\tORDER BY source_time_ms, snapshot_id, side, level_index`;\n\tconst summarySql = `SELECT ${projectionSql(ORDER_BOOK_DEPTH_SUMMARY_PARQUET_PROJECTION)}\n\tFROM market_data.cex_order_book_depth_summary_replay_qualified\n\tWHERE ${predicateSql}\n\tORDER BY source_time_ms, snapshot_id`;\n\tconst conflictsSql = `SELECT count() AS conflicts\n\tFROM\n\t(\n\t\tSELECT conflict.capture_bundle_id, conflict.snapshot_id\n\t\tFROM market_data.cex_order_book_levels_conflicts AS conflict\n\t\tINNER JOIN\n\t\t(\n\t\t\tSELECT DISTINCT capture_bundle_id, snapshot_id\n\t\t\tFROM market_data.cex_order_book_depth_summary\n\t\t\tWHERE ${physicalPredicateSql}\n\t\t) AS selected USING (capture_bundle_id, snapshot_id)\n\t\tUNION ALL\n\t\tSELECT conflict.capture_bundle_id, conflict.snapshot_id\n\t\tFROM market_data.cex_order_book_depth_summary_conflicts AS conflict\n\t\tINNER JOIN\n\t\t(\n\t\t\tSELECT DISTINCT capture_bundle_id, snapshot_id\n\t\t\tFROM market_data.cex_order_book_depth_summary\n\t\t\tWHERE ${physicalPredicateSql}\n\t\t) AS selected USING (capture_bundle_id, snapshot_id)\n\t)`;\n\tconst segmentRowCountsSql = segmentPredicateSql.flatMap(\n\t\t(segmentPredicate, index) => [\n\t\t\t`(SELECT count() FROM market_data.cex_order_book_levels_replay_qualified WHERE ${segmentPredicate}) AS segment_${index}_level_rows`,\n\t\t\t`(SELECT count() FROM market_data.cex_order_book_depth_summary_replay_qualified WHERE ${segmentPredicate}) AS segment_${index}_summary_rows`,\n\t\t],\n\t);\n\tconst rowCountsSql = `SELECT\n\t\t(SELECT count() FROM market_data.cex_order_book_levels_replay_qualified WHERE ${predicateSql}) AS level_rows,\n\t\t(SELECT count() FROM market_data.cex_order_book_depth_summary_replay_qualified WHERE ${predicateSql}) AS summary_rows,\n\t\t${segmentRowCountsSql.join(\",\\n\\t\\t\")}`;\n\tconst promotionReceiptsSql = `SELECT DISTINCT promotion.receipt_id AS receipt_id\n\tFROM market_data.cex_order_book_capture_promotions AS promotion\n\tINNER JOIN\n\t(\n\t\tSELECT DISTINCT capture_bundle_id\n\t\tFROM market_data.cex_order_book_depth_summary_replay_qualified\n\t\tWHERE ${predicateSql}\n\t) AS selected USING (capture_bundle_id)\n\tINNER JOIN\n\t(\n\t\tSELECT capture_bundle_id, receipt_id, promotion_identity_sha256, state\n\t\tFROM market_data.cex_order_book_capture_qualifications\n\t\tORDER BY event_at_ms DESC\n\t\tLIMIT 1 BY capture_bundle_id\n\t) AS latest\n\tON promotion.capture_bundle_id = latest.capture_bundle_id\n\tAND promotion.receipt_id = latest.receipt_id\n\tAND promotion.promotion_identity_sha256 = latest.promotion_identity_sha256\n\tWHERE latest.state = 'qualified'\n\tAND promotion.status = 'passing'\n\tAND promotion.seam_verified = 1\n\tAND promotion.coverage_verified = 1\n\tAND promotion.capability_policy_id = {current_capability_policy_id:String}\n\tAND promotion.capability_policy_sha256 = {current_capability_policy_sha256:String}\n\tAND promotion.resource_policy_id = {current_resource_policy_id:String}\n\tAND promotion.resource_policy_sha256 = {current_resource_policy_sha256:String}\n\tAND promotion.adapter_policy_id = {current_adapter_policy_id:String}\n\tAND promotion.adapter_policy_sha256 = {current_adapter_policy_sha256:String}\n\tAND promotion.acquisition_policy_id = {current_acquisition_policy_id:String}\n\tAND promotion.acquisition_policy_sha256 = {current_acquisition_policy_sha256:String}\n\tORDER BY promotion.receipt_id`;\n\treturn {\n\t\trequest,\n\t\tsegments,\n\t\tquerySha256: queryIdentity(request, segments),\n\t\tparameters,\n\t\tpredicateSql,\n\t\tphysicalPredicateSql,\n\t\tlevelsSql,\n\t\tsummarySql,\n\t\tconflictsSql,\n\t\trowCountsSql,\n\t\tpromotionReceiptsSql,\n\t};\n}\n",
259
+ "import { createHash } from \"node:crypto\";\nimport path from \"node:path\";\nimport type {\n\tCanonicalOrderBookExportArtifact,\n\tCanonicalOrderBookExportRequestWire,\n} from \"../market-data-preparation/contracts\";\nimport {\n\tORDER_BOOK_DEPTH_SUMMARY_PARQUET_PROJECTION_SCHEMA_ID,\n\tORDER_BOOK_DEPTH_SUMMARY_PARQUET_PROJECTION_SCHEMA_SHA256,\n\tORDER_BOOK_LEVELS_PARQUET_PROJECTION_SCHEMA_ID,\n\tORDER_BOOK_LEVELS_PARQUET_PROJECTION_SCHEMA_SHA256,\n} from \"../market-data-preparation/contracts\";\nimport { writeExclusiveDurableFile } from \"../market-data-preparation/file-job\";\nimport {\n\ttype CompiledExactOrderBookExport,\n\tcompileExactOrderBookExport,\n\tExactOrderBookExportError,\n\ttype ExactOrderBookQueryValue,\n} from \"./exact-selection\";\nimport {\n\tassertDepthSummaryParquetProjection,\n\tassertLevelsParquetProjection,\n} from \"./parquet-projection\";\n\nexport type ExactOrderBookExportFormat = \"JSONEachRow\" | \"Parquet\";\n\nexport type ExactOrderBookExportQueryClient = {\n\texecute(\n\t\tsql: string,\n\t\tparameters: Readonly<Record<string, ExactOrderBookQueryValue>>,\n\t\tformat: ExactOrderBookExportFormat,\n\t): Promise<Uint8Array>;\n};\n\nexport type ExactCanonicalOrderBookExport = {\n\tcompiled: CompiledExactOrderBookExport;\n\tpromotionReceiptIds: string[];\n\tlevelsPath: string;\n\tsummaryPath: string;\n\tlevels: CanonicalOrderBookExportArtifact;\n\tsummary: CanonicalOrderBookExportArtifact;\n};\n\nexport type ClickHouseExactExportClientOptions = {\n\turl: string;\n\tusername?: string;\n\tpassword?: string;\n\tfetch?: typeof globalThis.fetch;\n};\n\nfunction encodeClickHouseParameter(value: ExactOrderBookQueryValue): string {\n\tif (!Array.isArray(value)) return String(value);\n\treturn `[${value\n\t\t.map((entry) => {\n\t\t\tconst serialized = JSON.stringify(entry);\n\t\t\treturn `'${serialized.slice(1, -1).replaceAll(\"'\", \"\\\\'\")}'`;\n\t\t})\n\t\t.join(\",\")}]`;\n}\n\nexport function createClickHouseExactOrderBookExportClient(\n\toptions: ClickHouseExactExportClientOptions,\n): ExactOrderBookExportQueryClient {\n\tconst request = options.fetch ?? globalThis.fetch;\n\treturn {\n\t\tasync execute(sql, parameters, format) {\n\t\t\tlet endpoint: URL;\n\t\t\ttry {\n\t\t\t\tendpoint = new URL(options.url);\n\t\t\t} catch {\n\t\t\t\tthrow new ExactOrderBookExportError(\"archive_url_invalid\");\n\t\t\t}\n\t\t\tconst embeddedUsername = decodeURIComponent(endpoint.username);\n\t\t\tconst embeddedPassword = decodeURIComponent(endpoint.password);\n\t\t\tendpoint.username = \"\";\n\t\t\tendpoint.password = \"\";\n\t\t\tendpoint.searchParams.set(\"database\", \"market_data\");\n\t\t\tfor (const [name, value] of Object.entries(parameters)) {\n\t\t\t\tendpoint.searchParams.set(\n\t\t\t\t\t`param_${name}`,\n\t\t\t\t\tencodeClickHouseParameter(value),\n\t\t\t\t);\n\t\t\t}\n\t\t\tlet response: Response;\n\t\t\ttry {\n\t\t\t\tresponse = await request(endpoint, {\n\t\t\t\t\tmethod: \"POST\",\n\t\t\t\t\theaders: {\n\t\t\t\t\t\t\"X-ClickHouse-User\":\n\t\t\t\t\t\t\toptions.username || embeddedUsername || \"default\",\n\t\t\t\t\t\t\"X-ClickHouse-Key\": options.password ?? embeddedPassword,\n\t\t\t\t\t},\n\t\t\t\t\tbody: `${sql.trim()}\\nFORMAT ${format}`,\n\t\t\t\t});\n\t\t\t} catch {\n\t\t\t\tthrow new ExactOrderBookExportError(\"archive_query_unreachable\");\n\t\t\t}\n\t\t\tif (!response.ok) {\n\t\t\t\tthrow new ExactOrderBookExportError(\n\t\t\t\t\t`archive_query_http_${response.status}`,\n\t\t\t\t);\n\t\t\t}\n\t\t\treturn new Uint8Array(await response.arrayBuffer());\n\t\t},\n\t};\n}\n\nfunction parseJsonEachRow(bytes: Uint8Array): Record<string, unknown>[] {\n\tconst text = new TextDecoder().decode(bytes).trim();\n\ttry {\n\t\treturn text\n\t\t\t? text\n\t\t\t\t\t.split(\"\\n\")\n\t\t\t\t\t.map((line) => JSON.parse(line) as Record<string, unknown>)\n\t\t\t: [];\n\t} catch {\n\t\tthrow new ExactOrderBookExportError(\"archive_response_invalid\");\n\t}\n}\n\nasync function jsonQuery(\n\tclient: ExactOrderBookExportQueryClient,\n\tcompiled: CompiledExactOrderBookExport,\n\tsql: string,\n): Promise<Record<string, unknown>[]> {\n\ttry {\n\t\treturn parseJsonEachRow(\n\t\t\tawait client.execute(sql, compiled.parameters, \"JSONEachRow\"),\n\t\t);\n\t} catch (error) {\n\t\tif (error instanceof ExactOrderBookExportError) throw error;\n\t\tthrow new ExactOrderBookExportError(\"archive_query_failed\");\n\t}\n}\n\nfunction unsignedCount(value: unknown, reason: string): number {\n\tconst count = typeof value === \"number\" ? value : Number(value);\n\tif (!Number.isSafeInteger(count) || count < 0) {\n\t\tthrow new ExactOrderBookExportError(reason);\n\t}\n\treturn count;\n}\n\nfunction artifact(\n\tfileName: string,\n\trows: number,\n\tbytes: Uint8Array,\n\tprojection: {\n\t\tprojection_schema_id: CanonicalOrderBookExportArtifact[\"projection_schema_id\"];\n\t\tprojection_schema_sha256: string;\n\t},\n): CanonicalOrderBookExportArtifact {\n\treturn {\n\t\tfile_name: fileName,\n\t\trows,\n\t\tbytes: bytes.byteLength,\n\t\tsha256: createHash(\"sha256\").update(bytes).digest(\"hex\"),\n\t\t...projection,\n\t};\n}\n\nexport async function exportExactCanonicalOrderBook(input: {\n\trequest: CanonicalOrderBookExportRequestWire;\n\tclient: ExactOrderBookExportQueryClient;\n\toutputDirectory: string;\n}): Promise<ExactCanonicalOrderBookExport> {\n\tconst compiled = compileExactOrderBookExport(input.request);\n\tconst identityRows = await jsonQuery(\n\t\tinput.client,\n\t\tcompiled,\n\t\t`SELECT environment, cluster\n\t\t FROM market_data.cex_archive_cluster_identity FINAL\n\t\t WHERE singleton_key = 'archive'\n\t\t LIMIT 2`,\n\t);\n\tif (\n\t\tidentityRows.length !== 1 ||\n\t\tidentityRows[0]?.environment !== compiled.request.target.environment ||\n\t\tidentityRows[0]?.cluster !== compiled.request.target.cluster\n\t) {\n\t\tthrow new ExactOrderBookExportError(\"archive_target_mismatch\");\n\t}\n\n\tconst conflictRows = await jsonQuery(\n\t\tinput.client,\n\t\tcompiled,\n\t\tcompiled.conflictsSql,\n\t);\n\tif (\n\t\tconflictRows.length !== 1 ||\n\t\tunsignedCount(conflictRows[0]?.conflicts, \"conflict_count_invalid\") !== 0\n\t) {\n\t\tthrow new ExactOrderBookExportError(\"selected_checksum_conflict\");\n\t}\n\n\tconst countRows = await jsonQuery(\n\t\tinput.client,\n\t\tcompiled,\n\t\tcompiled.rowCountsSql,\n\t);\n\tif (countRows.length !== 1) {\n\t\tthrow new ExactOrderBookExportError(\"qualified_row_counts_invalid\");\n\t}\n\tconst levelRows = unsignedCount(\n\t\tcountRows[0]?.level_rows,\n\t\t\"qualified_row_counts_invalid\",\n\t);\n\tconst summaryRows = unsignedCount(\n\t\tcountRows[0]?.summary_rows,\n\t\t\"qualified_row_counts_invalid\",\n\t);\n\tif (levelRows === 0 || summaryRows === 0) {\n\t\tthrow new ExactOrderBookExportError(\"qualified_selection_empty\");\n\t}\n\tfor (const [index] of compiled.segments.entries()) {\n\t\tconst segmentLevelRows = unsignedCount(\n\t\t\tcountRows[0]?.[`segment_${index}_level_rows`],\n\t\t\t\"qualified_row_counts_invalid\",\n\t\t);\n\t\tconst segmentSummaryRows = unsignedCount(\n\t\t\tcountRows[0]?.[`segment_${index}_summary_rows`],\n\t\t\t\"qualified_row_counts_invalid\",\n\t\t);\n\t\tif (segmentLevelRows === 0 || segmentSummaryRows === 0) {\n\t\t\tthrow new ExactOrderBookExportError(\"qualified_segment_empty\");\n\t\t}\n\t}\n\n\tconst receiptRows = await jsonQuery(\n\t\tinput.client,\n\t\tcompiled,\n\t\tcompiled.promotionReceiptsSql,\n\t);\n\tconst promotionReceiptIds = [\n\t\t...new Set(\n\t\t\treceiptRows.map((row) => {\n\t\t\t\tif (typeof row.receipt_id !== \"string\") {\n\t\t\t\t\tthrow new ExactOrderBookExportError(\"promotion_receipts_invalid\");\n\t\t\t\t}\n\t\t\t\treturn row.receipt_id;\n\t\t\t}),\n\t\t),\n\t].sort();\n\tconst expectedReceiptIds = [...compiled.request.selection.receipt_ids].sort();\n\tif (\n\t\tJSON.stringify(promotionReceiptIds) !== JSON.stringify(expectedReceiptIds)\n\t) {\n\t\tthrow new ExactOrderBookExportError(\"promotion_receipt_mismatch\");\n\t}\n\n\tlet levelsBytes: Uint8Array;\n\tlet summaryBytes: Uint8Array;\n\ttry {\n\t\t[levelsBytes, summaryBytes] = await Promise.all([\n\t\t\tinput.client.execute(compiled.levelsSql, compiled.parameters, \"Parquet\"),\n\t\t\tinput.client.execute(compiled.summarySql, compiled.parameters, \"Parquet\"),\n\t\t]);\n\t} catch (error) {\n\t\tif (error instanceof ExactOrderBookExportError) throw error;\n\t\tthrow new ExactOrderBookExportError(\"archive_query_failed\");\n\t}\n\tassertLevelsParquetProjection(levelsBytes);\n\tassertDepthSummaryParquetProjection(summaryBytes);\n\n\tconst levelsFileName = \"order_book_levels.parquet\";\n\tconst summaryFileName = \"order_book_depth_summary.parquet\";\n\tconst levelsPath = path.join(input.outputDirectory, levelsFileName);\n\tconst summaryPath = path.join(input.outputDirectory, summaryFileName);\n\ttry {\n\t\tawait writeExclusiveDurableFile(levelsPath, levelsBytes);\n\t\tawait writeExclusiveDurableFile(summaryPath, summaryBytes);\n\t} catch {\n\t\tthrow new ExactOrderBookExportError(\"artifact_write_failed\");\n\t}\n\n\treturn {\n\t\tcompiled,\n\t\tpromotionReceiptIds,\n\t\tlevelsPath,\n\t\tsummaryPath,\n\t\tlevels: artifact(levelsFileName, levelRows, levelsBytes, {\n\t\t\tprojection_schema_id: ORDER_BOOK_LEVELS_PARQUET_PROJECTION_SCHEMA_ID,\n\t\t\tprojection_schema_sha256:\n\t\t\t\tORDER_BOOK_LEVELS_PARQUET_PROJECTION_SCHEMA_SHA256,\n\t\t}),\n\t\tsummary: artifact(summaryFileName, summaryRows, summaryBytes, {\n\t\t\tprojection_schema_id:\n\t\t\t\tORDER_BOOK_DEPTH_SUMMARY_PARQUET_PROJECTION_SCHEMA_ID,\n\t\t\tprojection_schema_sha256:\n\t\t\t\tORDER_BOOK_DEPTH_SUMMARY_PARQUET_PROJECTION_SCHEMA_SHA256,\n\t\t}),\n\t};\n}\n",
260
+ "import { createHash, randomUUID } from \"node:crypto\";\nimport { constants as fsConstants, type Stats } from \"node:fs\";\nimport { type FileHandle, lstat, open, rename, unlink } from \"node:fs/promises\";\nimport path from \"node:path\";\n\nexport const FILE_JOB_REQUEST_MAX_BYTES = 1_048_576;\nexport const FILE_JOB_CLOCK_MAX_BYTES = 16_777_216;\nexport const FILE_JOB_EXECUTABLE_MAX_BYTES = 536_870_912;\n\nexport type FileJobPaths = {\n\tattemptRoot: string;\n\trequestPath: string;\n\tresultPath: string;\n};\n\nexport type AtomicWriteHooks = {\n\tbeforeTempOpen?(tempPath: string): void | Promise<void>;\n\tbeforeFileFsync?(): void | Promise<void>;\n\tbeforeRename?(): void | Promise<void>;\n\tbeforeDirectoryFsync?(): void | Promise<void>;\n};\n\nexport type AtomicWriteJsonOptions<T> = {\n\tvalidate?: (value: T) => void;\n\thooks?: AtomicWriteHooks;\n};\n\nexport type DurableArtifactHooks = {\n\tbeforeOpen?(filePath: string): void | Promise<void>;\n\tbeforeFileFsync?(): void | Promise<void>;\n};\n\nexport class FileJobUnreadableError extends Error {\n\tconstructor(message: string) {\n\t\tsuper(message);\n\t\tthis.name = \"FileJobUnreadableError\";\n\t}\n}\n\nfunction errorCode(error: unknown): string | undefined {\n\treturn error && typeof error === \"object\" && \"code\" in error\n\t\t? String((error as { code?: unknown }).code)\n\t\t: undefined;\n}\n\nexport function containsParentTraversal(input: string): boolean {\n\treturn input.split(/[\\\\/]+/u).includes(\"..\");\n}\n\nexport function assertSupportedNode22(\n\tversion = process.versions.node,\n\tproductName = \"market-data preparation executable\",\n): void {\n\tconst major = Number.parseInt(version.split(\".\", 1)[0] ?? \"\", 10);\n\tif (!Number.isInteger(major) || major < 22) {\n\t\tthrow new Error(`${productName} requires Node 22 or newer; got ${version}`);\n\t}\n}\n\nexport function parseFileJobArgv(argv: readonly string[]): {\n\trequestPath: string;\n\tresultPath: string;\n} {\n\tif (\n\t\targv.length !== 5 ||\n\t\targv[0] !== \"run\" ||\n\t\targv[1] !== \"--request\" ||\n\t\targv[3] !== \"--result\" ||\n\t\t!argv[2] ||\n\t\t!argv[4]\n\t) {\n\t\tthrow new Error(\"expected exactly: run --request <path> --result <path>\");\n\t}\n\treturn { requestPath: argv[2], resultPath: argv[4] };\n}\n\nasync function assertAttemptRoot(attemptRoot: string): Promise<void> {\n\tconst stats = await lstat(attemptRoot);\n\tif (stats.isSymbolicLink() || !stats.isDirectory()) {\n\t\tthrow new Error(\"attempt root must be a non-symlink directory\");\n\t}\n}\n\nasync function assertSafeResultTarget(resultPath: string): Promise<void> {\n\tlet stats: Stats;\n\ttry {\n\t\tstats = await lstat(resultPath);\n\t} catch (error) {\n\t\tif (errorCode(error) === \"ENOENT\") return;\n\t\tthrow error;\n\t}\n\tif (stats.isSymbolicLink() || !stats.isFile()) {\n\t\tthrow new Error(\n\t\t\t\"result target must be absent or a non-symlink regular file\",\n\t\t);\n\t}\n\n\tconst handle = await open(\n\t\tresultPath,\n\t\tfsConstants.O_RDONLY | fsConstants.O_NOFOLLOW,\n\t);\n\ttry {\n\t\tif (!(await handle.stat()).isFile()) {\n\t\t\tthrow new Error(\"opened result target is not a regular file\");\n\t\t}\n\t} finally {\n\t\tawait handle.close();\n\t}\n}\n\nexport async function assertSafeFileJobPaths(\n\trequestInput: string,\n\tresultInput: string,\n): Promise<FileJobPaths> {\n\tif (\n\t\tcontainsParentTraversal(requestInput) ||\n\t\tcontainsParentTraversal(resultInput)\n\t) {\n\t\tthrow new FileJobUnreadableError(\"parent traversal is not allowed\");\n\t}\n\tconst requestPath = path.resolve(requestInput);\n\tconst resultPath = path.resolve(resultInput);\n\tconst attemptRoot = path.dirname(requestPath);\n\tif (path.dirname(resultPath) !== attemptRoot) {\n\t\tthrow new Error(\"result parent must be identical to the request parent\");\n\t}\n\tawait assertAttemptRoot(attemptRoot);\n\tawait assertSafeResultTarget(resultPath);\n\treturn { attemptRoot, requestPath, resultPath };\n}\n\nexport function assertSidecarBasename(fileName: string): void {\n\tif (\n\t\tpath.basename(fileName) !== fileName ||\n\t\tcontainsParentTraversal(fileName) ||\n\t\tfileName.includes(\"/\") ||\n\t\tfileName.includes(\"\\\\\")\n\t) {\n\t\tthrow new Error(\"sidecar file name must be a basename\");\n\t}\n}\n\nexport async function readBoundedRegularFile(\n\tfilePath: string,\n\tmaximumBytes: number,\n): Promise<Buffer> {\n\tif (!Number.isSafeInteger(maximumBytes) || maximumBytes < 0) {\n\t\tthrow new Error(\"maximumBytes must be a non-negative safe integer\");\n\t}\n\tlet pathStats: Stats;\n\ttry {\n\t\tpathStats = await lstat(filePath);\n\t} catch (error) {\n\t\tthrow new FileJobUnreadableError(\n\t\t\t`cannot lstat input: ${errorCode(error) ?? \"unknown\"}`,\n\t\t);\n\t}\n\tif (\n\t\tpathStats.isSymbolicLink() ||\n\t\t!pathStats.isFile() ||\n\t\tpathStats.size > maximumBytes\n\t) {\n\t\tthrow new FileJobUnreadableError(\n\t\t\t\"input must be a bounded non-symlink regular file\",\n\t\t);\n\t}\n\n\tlet handle: FileHandle;\n\ttry {\n\t\thandle = await open(\n\t\t\tfilePath,\n\t\t\tfsConstants.O_RDONLY | fsConstants.O_NOFOLLOW,\n\t\t);\n\t} catch (error) {\n\t\tthrow new FileJobUnreadableError(\n\t\t\t`cannot open input: ${errorCode(error) ?? \"unknown\"}`,\n\t\t);\n\t}\n\n\tlet result: Buffer | undefined;\n\tlet readError: FileJobUnreadableError | undefined;\n\ttry {\n\t\tconst openedStats = await handle.stat();\n\t\tif (!openedStats.isFile() || openedStats.size > maximumBytes) {\n\t\t\tthrow new FileJobUnreadableError(\n\t\t\t\t\"opened input must be a bounded regular file\",\n\t\t\t);\n\t\t}\n\t\tconst bytes = Buffer.alloc(openedStats.size);\n\t\tlet offset = 0;\n\t\twhile (offset < bytes.length) {\n\t\t\tconst { bytesRead } = await handle.read(\n\t\t\t\tbytes,\n\t\t\t\toffset,\n\t\t\t\tbytes.length - offset,\n\t\t\t\toffset,\n\t\t\t);\n\t\t\tif (bytesRead === 0) break;\n\t\t\toffset += bytesRead;\n\t\t}\n\t\tconst finalStats = await handle.stat();\n\t\tif (\n\t\t\toffset !== bytes.length ||\n\t\t\tfinalStats.size !== openedStats.size ||\n\t\t\tfinalStats.size > maximumBytes\n\t\t) {\n\t\t\tthrow new FileJobUnreadableError(\"input changed while it was being read\");\n\t\t}\n\t\tresult = bytes;\n\t} catch (error) {\n\t\treadError =\n\t\t\terror instanceof FileJobUnreadableError\n\t\t\t\t? error\n\t\t\t\t: new FileJobUnreadableError(\n\t\t\t\t\t\t`cannot read input: ${errorCode(error) ?? \"unknown\"}`,\n\t\t\t\t\t);\n\t}\n\ttry {\n\t\tawait handle.close();\n\t} catch (error) {\n\t\tif (!readError) {\n\t\t\treadError = new FileJobUnreadableError(\n\t\t\t\t`cannot close input: ${errorCode(error) ?? \"unknown\"}`,\n\t\t\t);\n\t\t}\n\t}\n\tif (readError) throw readError;\n\tif (!result) {\n\t\tthrow new FileJobUnreadableError(\"input read produced no result\");\n\t}\n\treturn result;\n}\n\nexport async function sha256RegularFile(filePath: string): Promise<string> {\n\tconst bytes = await readBoundedRegularFile(\n\t\tfilePath,\n\t\tFILE_JOB_EXECUTABLE_MAX_BYTES,\n\t);\n\treturn createHash(\"sha256\").update(bytes).digest(\"hex\");\n}\n\nexport async function writeExclusiveDurableFile(\n\tfilePath: string,\n\tbytes: Uint8Array,\n\thooks: DurableArtifactHooks = {},\n): Promise<void> {\n\tawait hooks.beforeOpen?.(filePath);\n\tconst handle = await open(\n\t\tfilePath,\n\t\tfsConstants.O_WRONLY |\n\t\t\tfsConstants.O_CREAT |\n\t\t\tfsConstants.O_EXCL |\n\t\t\tfsConstants.O_NOFOLLOW,\n\t\t0o600,\n\t);\n\ttry {\n\t\tif (!(await handle.stat()).isFile()) {\n\t\t\tthrow new Error(\"artifact target is not a regular file\");\n\t\t}\n\t\tawait handle.writeFile(bytes);\n\t\tawait hooks.beforeFileFsync?.();\n\t\tawait handle.sync();\n\t} finally {\n\t\tawait handle.close();\n\t}\n}\n\nfunction redactString(\n\tvalue: string,\n\tsensitiveValues: ReadonlySet<string>,\n): string {\n\tlet redacted = value;\n\tfor (const secret of sensitiveValues) {\n\t\tif (secret) redacted = redacted.replaceAll(secret, \"[REDACTED]\");\n\t}\n\treturn redacted;\n}\n\nexport function redactDiagnostics(\n\tdiagnostics: Readonly<Record<string, string | number | boolean>>,\n\tsensitiveValues: ReadonlySet<string>,\n): Record<string, string | number | boolean> {\n\treturn Object.fromEntries(\n\t\tObject.entries(diagnostics).map(([key, value]) => [\n\t\t\tredactString(key, sensitiveValues),\n\t\t\ttypeof value === \"string\" ? redactString(value, sensitiveValues) : value,\n\t\t]),\n\t);\n}\n\nasync function closeIgnoringErrors(handle: FileHandle | null): Promise<void> {\n\tif (!handle) return;\n\ttry {\n\t\tawait handle.close();\n\t} catch {\n\t\t// Preserve the original durable-write failure.\n\t}\n}\n\nexport async function atomicWriteJsonResult<T>(\n\tresultPath: string,\n\tresult: T,\n\toptions: AtomicWriteJsonOptions<T> = {},\n): Promise<void> {\n\toptions.validate?.(result);\n\tconst serialized = `${JSON.stringify(result)}\\n`;\n\tconst attemptRoot = path.dirname(resultPath);\n\tconst tempPath = path.join(\n\t\tattemptRoot,\n\t\t`.${path.basename(resultPath)}.${randomUUID()}.tmp`,\n\t);\n\tlet tempHandle: FileHandle | null = null;\n\tlet renamed = false;\n\n\ttry {\n\t\ttry {\n\t\t\tawait lstat(tempPath);\n\t\t\tthrow new Error(\"exclusive temporary result path already exists\");\n\t\t} catch (error) {\n\t\t\tif (errorCode(error) !== \"ENOENT\") throw error;\n\t\t}\n\n\t\tawait options.hooks?.beforeTempOpen?.(tempPath);\n\t\ttempHandle = await open(\n\t\t\ttempPath,\n\t\t\tfsConstants.O_WRONLY |\n\t\t\t\tfsConstants.O_CREAT |\n\t\t\t\tfsConstants.O_EXCL |\n\t\t\t\tfsConstants.O_NOFOLLOW,\n\t\t\t0o600,\n\t\t);\n\t\tif (!(await tempHandle.stat()).isFile()) {\n\t\t\tthrow new Error(\"temporary result is not a regular file\");\n\t\t}\n\t\tawait tempHandle.writeFile(serialized, \"utf8\");\n\t\tawait options.hooks?.beforeFileFsync?.();\n\t\tawait tempHandle.sync();\n\t\tawait tempHandle.close();\n\t\ttempHandle = null;\n\n\t\tawait options.hooks?.beforeRename?.();\n\t\tawait rename(tempPath, resultPath);\n\t\trenamed = true;\n\n\t\tconst directoryHandle = await open(\n\t\t\tattemptRoot,\n\t\t\tfsConstants.O_RDONLY | fsConstants.O_DIRECTORY | fsConstants.O_NOFOLLOW,\n\t\t);\n\t\ttry {\n\t\t\tif (!(await directoryHandle.stat()).isDirectory()) {\n\t\t\t\tthrow new Error(\"opened attempt root is not a directory\");\n\t\t\t}\n\t\t\ttry {\n\t\t\t\tawait options.hooks?.beforeDirectoryFsync?.();\n\t\t\t\tawait directoryHandle.sync();\n\t\t\t} catch (error) {\n\t\t\t\tif (![\"ENOTSUP\", \"EINVAL\"].includes(errorCode(error) ?? \"\")) {\n\t\t\t\t\tthrow error;\n\t\t\t\t}\n\t\t\t}\n\t\t} finally {\n\t\t\tawait directoryHandle.close();\n\t\t}\n\t} catch (error) {\n\t\tawait closeIgnoringErrors(tempHandle);\n\t\tif (!renamed) {\n\t\t\ttry {\n\t\t\t\tawait unlink(tempPath);\n\t\t\t} catch (cleanupError) {\n\t\t\t\tif (errorCode(cleanupError) !== \"ENOENT\") {\n\t\t\t\t\t// The original failure remains authoritative.\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tthrow error;\n\t}\n}\n",
261
+ "import { parquetMetadata, type SchemaElement } from \"hyparquet\";\nimport {\n\tORDER_BOOK_DEPTH_SUMMARY_PARQUET_PROJECTION,\n\tORDER_BOOK_LEVELS_PARQUET_PROJECTION,\n} from \"../market-data-preparation/contracts\";\nimport { ExactOrderBookExportError } from \"./exact-selection\";\n\ntype ProjectionColumn = {\n\tname: string;\n\tphysical_type: string;\n\tlogical_type: string | null;\n\tnullable: boolean;\n};\n\ntype ProjectionDocument = {\n\t$id: string;\n\tcanonical_schema_id: string;\n\tfile_name: string;\n\tparquet_metadata: { key_value_metadata: unknown[] };\n\tcolumns: ProjectionColumn[];\n};\n\ntype ParsedNode = {\n\telement: SchemaElement;\n\tchildren: ParsedNode[];\n};\n\nfunction parseNode(\n\tschema: readonly SchemaElement[],\n\tstart: number,\n): { node: ParsedNode; next: number } {\n\tconst element = schema[start];\n\tif (!element) throw new Error(\"Parquet schema node is missing\");\n\tconst children: ParsedNode[] = [];\n\tlet next = start + 1;\n\tfor (let index = 0; index < (element.num_children ?? 0); index += 1) {\n\t\tconst parsed = parseNode(schema, next);\n\t\tchildren.push(parsed.node);\n\t\tnext = parsed.next;\n\t}\n\treturn { node: { element, children }, next };\n}\n\nfunction topLevelColumns(schema: readonly SchemaElement[]): ParsedNode[] {\n\tconst root = parseNode(schema, 0).node;\n\tif (root.element.name !== \"schema\") {\n\t\tthrow new Error(\"Parquet root schema is invalid\");\n\t}\n\treturn root.children;\n}\n\nfunction normalizedLogicalType(element: SchemaElement): string | null {\n\tif (element.converted_type === \"UTF8\") return \"UTF8\";\n\tif (element.converted_type?.startsWith(\"UINT_\")) {\n\t\treturn element.converted_type;\n\t}\n\tif (element.converted_type === \"DECIMAL\") {\n\t\treturn `DECIMAL(${element.precision},${element.scale})`;\n\t}\n\treturn element.converted_type ?? null;\n}\n\nfunction firstLeaf(node: ParsedNode): SchemaElement | undefined {\n\tif (node.element.type) return node.element;\n\tfor (const child of node.children) {\n\t\tconst leaf = firstLeaf(child);\n\t\tif (leaf) return leaf;\n\t}\n\treturn undefined;\n}\n\nfunction actualColumn(node: ParsedNode): ProjectionColumn {\n\tif (node.element.converted_type === \"LIST\") {\n\t\tconst leaf = firstLeaf(node);\n\t\tif (!leaf) throw new Error(\"Parquet LIST column has no physical element\");\n\t\treturn {\n\t\t\tname: node.element.name,\n\t\t\tphysical_type: \"LIST\",\n\t\t\tlogical_type: `LIST<${normalizedLogicalType(leaf) ?? leaf.type}>`,\n\t\t\tnullable: node.element.repetition_type === \"OPTIONAL\",\n\t\t};\n\t}\n\tif (!node.element.type)\n\t\tthrow new Error(\"Parquet column has no physical type\");\n\treturn {\n\t\tname: node.element.name,\n\t\tphysical_type: node.element.type,\n\t\tlogical_type: normalizedLogicalType(node.element),\n\t\tnullable: node.element.repetition_type === \"OPTIONAL\",\n\t};\n}\n\nfunction asArrayBuffer(bytes: Uint8Array): ArrayBuffer {\n\treturn bytes.buffer.slice(\n\t\tbytes.byteOffset,\n\t\tbytes.byteOffset + bytes.byteLength,\n\t) as ArrayBuffer;\n}\n\nexport function assertParquetProjection(\n\tbytes: Uint8Array,\n\tprojection: ProjectionDocument,\n): void {\n\ttry {\n\t\tif (projection.canonical_schema_id !== \"cex-order-book-canonical/v1\") {\n\t\t\tthrow new Error(\"projection canonical identity is invalid\");\n\t\t}\n\t\tconst metadata = parquetMetadata(asArrayBuffer(bytes));\n\t\tif (\n\t\t\tJSON.stringify(metadata.key_value_metadata ?? []) !==\n\t\t\tJSON.stringify(projection.parquet_metadata.key_value_metadata)\n\t\t) {\n\t\t\tthrow new Error(\n\t\t\t\t\"Parquet key-value metadata differs from pinned document\",\n\t\t\t);\n\t\t}\n\t\tconst actual = topLevelColumns(metadata.schema).map(actualColumn);\n\t\tif (JSON.stringify(actual) !== JSON.stringify(projection.columns)) {\n\t\t\tthrow new Error(\"Parquet projection differs from pinned document\");\n\t\t}\n\t} catch {\n\t\tthrow new ExactOrderBookExportError(\"parquet_projection_schema_mismatch\");\n\t}\n}\n\nexport function assertLevelsParquetProjection(bytes: Uint8Array): void {\n\tassertParquetProjection(\n\t\tbytes,\n\t\tORDER_BOOK_LEVELS_PARQUET_PROJECTION as ProjectionDocument,\n\t);\n}\n\nexport function assertDepthSummaryParquetProjection(bytes: Uint8Array): void {\n\tassertParquetProjection(\n\t\tbytes,\n\t\tORDER_BOOK_DEPTH_SUMMARY_PARQUET_PROJECTION as ProjectionDocument,\n\t);\n}\n"
231
262
  ],
232
- "mappings": "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",
233
- "debugId": "0AD3286872E96B4764756E2164756E21",
263
+ "mappings": "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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;A7HhOD,IAAM,+BAA+B,kCAAuB;AAC5D,IAAM,+CACZ,kDAAoB;AACd,IAAM,8CACZ,iDAAmB;AACb,IAAM,oCAAoC,uCAAiB;AAC3D,IAAM,iDACZ,oDAAuB;AACjB,IAAM,wDACZ,2DAA6B;AACvB,IAAM,oCACZ,uCAA4B;AACtB,IAAM,wCACZ,2CAAgC;AAC1B,IAAM,oCACZ;AAyJD,SAAS,kBAAiB,CAAC,SAAkD;AAAA,EAC5E,QAAQ,WAAU,CAAC,GACjB,IACA,CAAC,YACA,GAAG,QAAM,gBAAgB,OAAO,QAAM,WAAW,cACnD,EACC,KAAK,IAAI;AAAA;AAGZ,SAAS,MAAQ,CAChB,UACA,UACW;AAAA,EACX,OAAO;AAAA,IACN,MAAM,CAAC,OAAmB;AAAA,MACzB,IAAI,CAAC,SAAS,KAAK,GAAG;AAAA,QACrB,MAAM,IAAI,MACT,kCAAkC,mBAAkB,SAAS,MAAM,GACpE;AAAA,MACD;AAAA,MACA,WAAW,KAAU;AAAA,MACrB,OAAO;AAAA;AAAA,IAER,EAAE,CAAC,OAA4B;AAAA,MAC9B,IAAI,CAAC,SAAS,KAAK;AAAA,QAAG,OAAO;AAAA,MAC7B,IAAI;AAAA,QACH,WAAW,KAAU;AAAA,QACrB,OAAO;AAAA,QACN,MAAM;AAAA,QACP,OAAO;AAAA;AAAA;AAAA,EAGV;AAAA;AAGD,SAAS,iBAAgB,CAAC,OAAe,OAAuB;AAAA,EAC/D,MAAM,SAAS,KAAK,MAAM,KAAK;AAAA,EAC/B,IACC,CAAC,OAAO,cAAc,MAAM,KAC5B,IAAI,KAAK,MAAM,EAAE,YAAY,MAAM,OAClC;AAAA,IACD,MAAM,IAAI,MAAM,GAAG,4CAA4C;AAAA,EAChE;AAAA,EACA,OAAO;AAAA;AAGR,SAAS,kBAAkB,CAAC,OAGnB;AAAA,EACR,IACC,kBAAiB,MAAM,cAAc,cAAc,IACnD,kBAAiB,MAAM,YAAY,YAAY,GAC9C;AAAA,IACD,MAAM,IAAI,MAAM,kCAAkC;AAAA,EACnD;AAAA;AAGD,IAAM,OAAM,IAAI,sBAAQ,EAAE,WAAW,MAAM,QAAQ,KAAK,CAAC;AACzD,KAAI,UAAU,gCAAsB;AACpC,KAAI,UAAU,gCAAsB;AAEpC,IAAM,2BAA2B,KAAI,QAAQ,iCAAsB;AACnE,IAAM,wBAAwB,KAAI,QAAQ,iDAAmB;AAC7D,IAAM,uBAAuB,KAAI,QAAQ,gDAAkB;AAC3D,IAAM,qBAAqB,KAAI,QAAQ,sCAAgB;AAEhD,IAAM,wBAAwB,OACpC,0BACA,CAAC,WAAW;AAAA,EACX,qBAAqB,QAAQ,eAAe;AAAA,EAC5C,mBAAmB,MAAM;AAAA,EACzB,IACC,OAAO,kBAAkB,cAAc,kBAAkB,aACzD,OAAO,kBAAkB,kBACxB,kBAAkB,iBACnB,OAAO,gBAAgB,cAAc,gBAAgB,aACrD,OAAO,gBAAgB,kBAAkB,gBAAgB,eACxD;AAAA,IACD,MAAM,IAAI,MAAM,mDAAmD;AAAA,EACpE;AAAA,EACA,IACC,OAAO,2BACP,+BAA+B,iBAC9B;AAAA,IACD,MAAM,IAAI,MACT,yDACD;AAAA,EACD;AAAA,EACA,IAAI,OAAO,QAAQ,WAAW;AAAA,IAC7B,sBAAsB,OAAO,OAAO,QAAQ,SAAS;AAAA,EACtD;AAAA,EACA,IAAI,OAAO,QAAQ,SAAS;AAAA,IAC3B,MAAM,UAAU,sBAAsB,OAAO,OAAO,QAAQ,OAAO;AAAA,IACnE,IAAI,CAAC,uCAAuC,OAAO,GAAG;AAAA,MACrD,MAAM,IAAI,MAAM,kDAAkD;AAAA,IACnE;AAAA,IACA,IACC,QAAQ,mBAAmB,kBAAkB,cAC5C,OAAO,kBAAkB,aAC1B,QAAQ,mBAAmB,kBAAkB,kBAC5C,OAAO,kBAAkB,iBAC1B,QAAQ,mBAAmB,gBAAgB,cAC1C,OAAO,gBAAgB,aACxB,QAAQ,mBAAmB,gBAAgB,kBAC1C,OAAO,gBAAgB,eACvB;AAAA,MACD,MAAM,IAAI,MACT,wDACD;AAAA,IACD;AAAA,EACD;AAAA,EACA,IACC,OAAO,QAAQ,WAAW,eACzB,CAAC,OAAO,QAAQ,aAAa,CAAC,OAAO,QAAQ,UAC7C;AAAA,IACD,MAAM,IAAI,MAAM,iDAAiD;AAAA,EAClE;AAAA,EACA,IACC,OAAO,QAAQ,WAAW,qBAC1B,CAAC,OAAO,QAAQ,WACf;AAAA,IACD,MAAM,IAAI,MAAM,4CAA4C;AAAA,EAC7D;AAAA,EACA,KACE,OAAO,QAAQ,WAAW,qBAC1B,OAAO,QAAQ,WAAW,eAC3B,OAAO,QAAQ,WAAW,QAAQ,KACjC,CAAC,WAAW,OAAO,mBAAmB,4BACvC,KACA,CAAC,OAAO,QAAQ,SACf;AAAA,IACD,MAAM,IAAI,MAAM,uDAAuD;AAAA,EACxE;AAAA,EACA,KACE,OAAO,QAAQ,WAAW,qBAC1B,OAAO,QAAQ,WAAW,eAC3B,OAAO,QAAQ,aACf,OAAO,QAAQ,SACd;AAAA,IACD,MAAM,2BAA2B,IAAI,IACpC,OAAO,QAAQ,UAAU,QACvB,OACA,CAAC,WAAW,OAAO,mBAAmB,4BACvC,EACC,IAAI,CAAC,WAAW,OAAO,eAAe,UAAU,CACnD;AAAA,IACA,IACC,yBAAyB,SAAS,KAClC,CAAC,yBAAyB,IAAI,OAAO,QAAQ,QAAQ,UAAU,KAC/D,OAAO,QAAQ,UAAU,YAAY,WAAW,KAChD,OAAO,QAAQ,UAAU,YAAY,OACpC,OAAO,QAAQ,QAAQ,YACvB;AAAA,MACD,MAAM,IAAI,MACT,kEACD;AAAA,IACD;AAAA,EACD;AAAA,CAEF;AAEO,IAAM,uCACZ,OACC,uBACA,CAAC,YAAY;AAAA,EACZ,MAAM,YAAY,sBAAsB,OAAO,QAAQ,SAAS;AAAA,EAChE,IACC,UAAU,mBAAmB,cAC7B,UAAU,mBAAmB,WAAW,GACvC;AAAA,IACD,MAAM,IAAI,MACT,wDACD;AAAA,EACD;AAAA,CAEF;AAEM,IAAM,sCACZ,OAA0C,sBAAsB,CAAC,WAAW;AAAA,EAC3E,qBAAqB,QAAQ,eAAe;AAAA,EAC5C,mBAAmB,MAAM;AAAA,EACzB,MAAM,YAAY,OAAO,QAAQ;AAAA,EACjC,IACC,cACC,UAAU,OAAO,yBACjB,kDACA,UAAU,OAAO,6BAChB,sDACD,UAAU,QAAQ,yBACjB,yDACD,UAAU,QAAQ,6BACjB,4DACD;AAAA,IACD,MAAM,IAAI,MAAM,qDAAqD;AAAA,EACtE;AAAA,CACA;AAEK,IAAM,6BAA6B,OACzC,oBACA,CAAC,QAAQ;AAAA,EACR,MAAM,sBAAsB,IAAI,IAAI;AAAA,IACnC;AAAA,MACC;AAAA,MACA;AAAA,QACC,gBAAgB;AAAA,QAChB,cAAc;AAAA,MACf;AAAA,IACD;AAAA,IACA;AAAA,MACC;AAAA,MACA;AAAA,QACC,gBAAgB;AAAA,QAChB,cAAc;AAAA,MACf;AAAA,IACD;AAAA,EACD,CAAU;AAAA,EACV,IAAI,IAAI,YAAY,WAAW,oBAAoB,MAAM;AAAA,IACxD,MAAM,IAAI,MAAM,wDAAwD;AAAA,EACzE;AAAA,EACA,WAAW,cAAc,IAAI,aAAa;AAAA,IACzC,MAAM,WAAW,oBAAoB,IAAI,WAAW,UAAU;AAAA,IAC9D,IACC,CAAC,YACD,WAAW,oBAAoB,SAAS,kBACxC,WAAW,kBAAkB,SAAS,cACrC;AAAA,MACD,MAAM,IAAI,MAAM,iDAAiD;AAAA,IAClE;AAAA,IACA,IACC,WAAW,cAAc,MAAM,SAAS,EAAE,SAAS,IAAI,KACvD,WAAW,cAAc,WAAW,GAAG,GACtC;AAAA,MACD,MAAM,IAAI,MAAM,uCAAuC;AAAA,IACxD;AAAA,EACD;AAAA,EACA,IACC,IAAI,gBAAgB,cACnB,+BAA+B,aAChC,IAAI,gBAAgB,oBACnB,+BAA+B,iBAC/B;AAAA,IACD,MAAM,IAAI,MACT,8EACD;AAAA,EACD;AAAA,EACA,MAAM,gBAAgB,IAAI,YACxB,IAAI,GAAG,WAAW,oBAAoB,GAAG,aAAa,eAAe,EACrE,KAAK;AAAA,EACP,MAAM,kBAAkB,6BAA6B,IACpD,GAAG,WAAW,oBAAoB,GAAG,aAAa,eACnD,EAAE,KAAK;AAAA,EACP,IAAI,KAAK,UAAU,aAAa,MAAM,KAAK,UAAU,eAAe,GAAG;AAAA,IACtE,MAAM,IAAI,MACT,qEACD;AAAA,EACD;AAAA,EACA,IACC,IAAI,kBAAkB,cAAc,kBAAkB,aACtD,IAAI,kBAAkB,kBAAkB,kBAAkB,iBAC1D,IAAI,uBAAuB,cAC1B,uBAAuB,aACxB,IAAI,uBAAuB,kBAC1B,uBAAuB,iBACxB,IAAI,gBAAgB,cAAc,gBAAgB,aAClD,IAAI,gBAAgB,kBAAkB,gBAAgB,eACrD;AAAA,IACD,MAAM,IAAI,MAAM,gDAAgD;AAAA,EACjE;AAAA,EACA,MAAM,qBAAqB;AAAA,IAC1B;AAAA,MACC,QAAQ;AAAA,MACR,cAAc;AAAA,IACf;AAAA,IACA;AAAA,MACC,QAAQ;AAAA,MACR,cAAc;AAAA,IACf;AAAA,EACD;AAAA,EACA,IACC,IAAI,oBAAoB,qBACvB,mDACD,KAAK,UAAU,IAAI,oBAAoB,UAAU,MAChD,KAAK,UAAU,kBAAkB,GACjC;AAAA,IACD,MAAM,IAAI,MAAM,qDAAqD;AAAA,EACtE;AAAA,CAEF;AAEO,SAAS,wBAAwB,CACvC,SAC0B;AAAA,EAC1B,OAAO,sBAAsB,OAAO;AAAA,OAChC;AAAA,IACH,eAAe,eAAe,SAAS,eAAe;AAAA,EACvD,CAAC;AAAA;AAGK,SAAS,sCAAsC,CACrD,SACqC;AAAA,EACrC,OAAO,oCAAoC,OAAO;AAAA,OAC9C;AAAA,IACH,eAAe,eAAe,SAAS,eAAe;AAAA,EACvD,CAAC;AAAA;AAGF,IAAM,6BAA6B;AAAA,EAClC,CAAC,2CAA2C,sBAAa;AAAA,EACzD,CAAC,0CAA0C,iCAAsB;AAAA,EACjE,CAAC,yCAAyC,6BAAmB;AAAA,EAC7D,CAAC,4CAA4C,gCAAsB;AAAA,EACnE,CAAC,4CAA4C,gCAAsB;AAAA,EACnE;AAAA,IACC;AAAA,IACA;AAAA,EACD;AAAA,EACA;AAAA,IACC;AAAA,IACA;AAAA,EACD;AAAA,EACA,CAAC,kDAAkD,sCAAgB;AAAA,EACnE;AAAA,IACC;AAAA,IACA;AAAA,EACD;AAAA,EACA;AAAA,IACC;AAAA,IACA;AAAA,EACD;AAAA,EACA;AAAA,IACC;AAAA,IACA;AAAA,EACD;AAAA,EACA;AAAA,IACC;AAAA,IACA;AAAA,EACD;AACD;AAEO,IAAM,+BAA+B,OAAO,OAClD,2BAA2B,IAAI,EAAE,MAAM,YACtC,OAAO,OAAO;AAAA,EACb,WAAW,OAAO;AAAA,EAClB;AAAA,EACA,eAAe,UAAU,MAAM;AAAA,EAC/B;AACD,CAAC,CACF,CACD;AAEA,IAAM,mCAAmC;AAAA,EACxC,WAAW;AAAA,EACX,WAAW,6BAA6B,IACvC,GAAG,WAAW,MAAM,qBAAqB;AAAA,IACxC;AAAA,IACA;AAAA,IACA;AAAA,EACD,EACD;AACD;AAEO,IAAM,iCAAiC,OAAO,OAAO;AAAA,KACxD;AAAA,EACH,iBAAiB,UAAU,gCAAgC;AAC5D,CAAC;AAEM,IAAM,uCAAuC,OAAO,OAC1D,mDACD;AACO,IAAM,8CAA8C,OAAO,OACjE,0DACD;AACO,IAAM,qDAAqD,UACjE,mDACD;AACO,IAAM,4DACZ,UAAU,0DAA4B;;;A8HvjBhC,MAAM,kCAAkC,MAAM;AAAA,EAC/B;AAAA,EAArB,WAAW,CAAU,QAAgB;AAAA,IACpC,MAAM,MAAM;AAAA,IADQ;AAAA,IAEpB,KAAK,OAAO;AAAA;AAEd;AAKA,SAAS,UAAU,CAClB,UACA,OACW;AAAA,EACX,MAAM,YAAY,KAAK,MAAM,SAAS,QAAQ;AAAA,EAC9C,MAAM,UAAU,KAAK,MAAM,SAAS,MAAM;AAAA,EAC1C,IACC,CAAC,OAAO,cAAc,SAAS,KAC/B,CAAC,OAAO,cAAc,OAAO,KAC7B,YAAY,KACZ,WAAW,WACV;AAAA,IACD,MAAM,IAAI,0BAA0B,GAAG,eAAe;AAAA,EACvD;AAAA,EACA,OAAO,EAAE,WAAW,QAAQ;AAAA;AAG7B,SAAS,QAAQ,CAAC,OAAiB,OAA0B;AAAA,EAC5D,OAAO,MAAM,aAAa,MAAM,aAAa,MAAM,WAAW,MAAM;AAAA;AAGrE,SAAS,kBAAkB,CAC1B,WACqC;AAAA,EACrC,OAAO,UAAU,kBAAkB,cAChC,CAAC,WAAW,QAAQ,IACpB,CAAC,QAAQ;AAAA;AAGb,SAAS,cAAc,CACtB,WACA,QACS;AAAA,EACT,IAAI,UAAU,kBAAkB,aAAa;AAAA,IAC5C,OAAO,WAAW,uBAAuB,IAAI;AAAA,EAC9C;AAAA,EACA,OAAO,WAAW,+BAA+B,IAAI,OAAO;AAAA;AAG7D,SAAS,oBAAoB,CAAC,WAA8C;AAAA,EAC3E,IACC,KAAK,UAAU,UAAU,UAAU,MACnC,KAAK,UAAU,mBAAmB,SAAS,CAAC,GAC3C;AAAA,IACD,MAAM,IAAI,0BAA0B,8BAA8B;AAAA,EACnE;AAAA,EACA,MAAM,aAAa,IAAI,IACtB,UAAU,QAAQ,IAAI,CAAC,WAAW,CAAC,OAAO,mBAAmB,MAAM,CAAC,CACrE;AAAA,EACA,IAAI,WAAW,SAAS,UAAU,QAAQ,QAAQ;AAAA,IACjD,MAAM,IAAI,0BAA0B,qCAAqC;AAAA,EAC1E;AAAA,EACA,MAAM,YAAY,UAAU,oBAAoB,IAAI,CAAC,UAAU,UAC9D,WAAW,UAAU,sBAAsB,OAAO,CACnD;AAAA,EACA,IACC,UAAU,kBAAkB,0BAC5B,IAAI,IACH,UAAU,mBAAmB,IAAI,CAAC,aAAa,SAAS,cAAc,CACvE,EAAE,OAAO,GACR;AAAA,IACD,MAAM,IAAI,0BACT,+CACD;AAAA,EACD;AAAA,EAEA,OAAO,UAAU,mBAAmB,IAAI,CAAC,UAAU,UAAU;AAAA,IAC5D,MAAM,aAAa,WAAW,UAAU,qBAAqB,OAAO;AAAA,IACpE,MAAM,SAAS,WAAW,IAAI,SAAS,iBAAiB;AAAA,IACxD,IAAI,CAAC,UAAU,OAAO,mBAAmB,SAAS,gBAAgB;AAAA,MACjE,MAAM,IAAI,0BAA0B,8BAA8B;AAAA,IACnE;AAAA,IACA,IACC,CAAC,SACA,WAAW,OAAO,UAAU,mBAAmB,OAAO,GACtD,UACD,GACC;AAAA,MACD,MAAM,IAAI,0BAA0B,kCAAkC;AAAA,IACvE;AAAA,IACA,IAAI,CAAC,UAAU,KAAK,CAAC,aAAa,SAAS,UAAU,UAAU,CAAC,GAAG;AAAA,MAClE,MAAM,IAAI,0BAA0B,mCAAmC;AAAA,IACxE;AAAA,IACA,IAAI,SAAS,mBAAmB,8BAA8B;AAAA,MAC7D,MAAM,gBAAgB,OAAO;AAAA,MAC7B,IACC,eAAe,UAAU,eACzB,CAAC,UAAU,YAAY,SAAS,cAAc,UAAU,KACxD,CAAC,UAAU,wBAAwB,SAClC,cAAc,sBACf,GACC;AAAA,QACD,MAAM,IAAI,0BACT,6CACD;AAAA,MACD;AAAA,IACD;AAAA,IACA,OAAO,KAAK,aAAa,WAAW;AAAA,GACpC;AAAA;AAGF,SAAS,iBAAiB,CACzB,WACyC;AAAA,EACzC,MAAM,aAAa,qBAAqB,SAAS;AAAA,EACjD,MAAM,WAAwB,CAAC;AAAA,EAC/B;AAAA,IACC;AAAA,IACA;AAAA,OACI,UAAU,oBAAoB,QAAQ,GAAG;AAAA,IAC7C,MAAM,YAAY,WACjB,eACA,sBAAsB,cACvB;AAAA,IACA,MAAM,WAAW,WAAW,OAC3B,CAAC,cACA,UAAU,YAAY,UAAU,WAChC,UAAU,UAAU,UAAU,SAChC;AAAA,IACA,MAAM,aAAa;AAAA,MAClB,GAAG,IAAI,IAAI;AAAA,QACV,UAAU;AAAA,QACV,UAAU;AAAA,QACV,GAAG,SAAS,QAAQ,CAAC,cAAc;AAAA,UAClC,KAAK,IAAI,UAAU,WAAW,UAAU,SAAS;AAAA,UACjD,KAAK,IAAI,UAAU,SAAS,UAAU,OAAO;AAAA,QAC9C,CAAC;AAAA,MACF,CAAC;AAAA,IACF,EAAE,KAAK,CAAC,MAAM,UAAU,OAAO,KAAK;AAAA,IACpC,SAAS,QAAQ,EAAG,QAAQ,WAAW,SAAS,GAAG,SAAS,GAAG;AAAA,MAC9D,MAAM,YAAY,WAAW;AAAA,MAC7B,MAAM,UAAU,WAAW,QAAQ;AAAA,MACnC,IACC,cAAc,aACd,YAAY,aACZ,WAAW,WACV;AAAA,QACD;AAAA,MACD;AAAA,MACA,MAAM,WAAW,SAAS,OACzB,CAAC,cACA,UAAU,aAAa,aAAa,UAAU,WAAW,OAC3D;AAAA,MACA,IAAI,SAAS,WAAW,GAAG;AAAA,QAC1B,MAAM,IAAI,0BAA0B,4BAA4B;AAAA,MACjE;AAAA,MACA,MAAM,WAAW,KAAK,IACrB,GAAG,SAAS,IAAI,CAAC,cAChB,eAAe,WAAW,UAAU,cAAc,CACnD,CACD;AAAA,MACA,MAAM,YAAY,SAAS,OAC1B,CAAC,cACA,eAAe,WAAW,UAAU,cAAc,MAAM,QAC1D;AAAA,MACA,MAAM,aAAa,IAAI,IACtB,UAAU,IACT,CAAC,cACA,GAAG,UAAU,qBAAqB,UAAU,gBAC9C,CACD;AAAA,MACA,IAAI,WAAW,SAAS,KAAK,CAAC,UAAU,IAAI;AAAA,QAC3C,MAAM,IAAI,0BAA0B,6BAA6B;AAAA,MAClE;AAAA,MACA,SAAS,KAAK,KAAK,UAAU,IAAI,WAAW,QAAQ,CAAC;AAAA,IACtD;AAAA,EACD;AAAA,EAEA,MAAM,SAAsB,CAAC;AAAA,EAC7B,WAAW,WAAW,SAAS,KAC9B,CAAC,MAAM,UACN,KAAK,YAAY,MAAM,aACvB,KAAK,UAAU,MAAM,WACrB,KAAK,kBAAkB,cAAc,MAAM,iBAAiB,CAC9D,GAAG;AAAA,IACF,MAAM,WAAW,OAAO,GAAG,EAAE;AAAA,IAC7B,IACC,YACA,SAAS,YAAY,QAAQ,aAC7B,SAAS,sBAAsB,QAAQ,qBACvC,SAAS,mBAAmB,QAAQ,gBACnC;AAAA,MACD,SAAS,UAAU,QAAQ;AAAA,MAC3B,SAAS,SAAS,IAAI,KAAK,QAAQ,OAAO,EAAE,YAAY;AAAA,IACzD,EAAO;AAAA,MACN,OAAO,KAAK;AAAA,WACR;AAAA,QACH,UAAU,IAAI,KAAK,QAAQ,SAAS,EAAE,YAAY;AAAA,QAClD,QAAQ,IAAI,KAAK,QAAQ,OAAO,EAAE,YAAY;AAAA,MAC/C,CAAC;AAAA;AAAA,EAEH;AAAA,EACA,OAAO,OAAO,IACb,GAAG,WAAW,YAAY,SAAS,aAAa,cAAc,OAC/D;AAAA;AAGD,SAAS,aAAa,CACrB,SACA,UACY;AAAA,EACZ,OAAO,UAAU;AAAA,IAChB,kBAAkB,QAAQ,UAAU;AAAA,IACpC,QAAQ,QAAQ;AAAA,IAChB,OAAO,QAAQ,UAAU;AAAA,IACzB,OAAO,QAAQ;AAAA,IACf,mBAAmB,QAAQ;AAAA,IAC3B,0BAA0B,QAAQ;AAAA,IAClC,oBAAoB,QAAQ;AAAA,IAC5B,eAAe,QAAQ,UAAU;AAAA,IACjC,YAAY,QAAQ,UAAU;AAAA,IAC9B;AAAA,IACA,oBAAoB;AAAA,MACnB,QAAQ;AAAA,QACP,WAAW,qCAAqC;AAAA,QAChD,eAAe;AAAA,MAChB;AAAA,MACA,SAAS;AAAA,QACR,WAAW,4CAA4C;AAAA,QACvD,eACC;AAAA,MACF;AAAA,IACD;AAAA,EACD,CAAC;AAAA;AAGF,SAAS,aAAa,CAAC,YAEZ;AAAA,EACV,OAAO,WAAW,QAAQ,IAAI,GAAG,WAAW,KAAK,QAAQ,EAAE,KAAK,IAAI;AAAA;AAGrE,SAAS,cAAc,CACtB,SACA,UAKC;AAAA,EACD,MAAM,aAAuD;AAAA,IAC5D,UAAU,QAAQ,UAAU,MAAM;AAAA,IAClC,cAAc,QAAQ,UAAU,MAAM;AAAA,IACtC,aAAa,QAAQ;AAAA,IACrB,mBAAmB,QAAQ;AAAA,IAC3B,gBAAgB,QAAQ;AAAA,IACxB,oBAAoB,QAAQ;AAAA,EAC7B;AAAA,EACA,MAAM,oBAAoB,SAAS,IAAI,CAAC,SAAS,UAAU;AAAA,IAC1D,MAAM,SAAS,WAAW;AAAA,IAC1B,MAAM,UACL,QAAQ,mBAAmB,uBACxB,CAAC,eAAe,cAAc,IAC9B,CAAC,mBAAmB;AAAA,IACxB,WAAW,GAAG,mBAAmB,QAAQ;AAAA,IACzC,WAAW,GAAG,qBAAqB,KAAK,MAAM,QAAQ,QAAQ;AAAA,IAC9D,WAAW,GAAG,mBAAmB,KAAK,MAAM,QAAQ,MAAM;AAAA,IAC1D,WAAW,GAAG,mBACb,QAAQ,mBAAmB,uBACxB,uBACA;AAAA,IACJ,WAAW,GAAG,oBAAoB;AAAA,IAClC,OAAO,yBAAyB;AAAA,yBACT;AAAA,kBACP;AAAA,0BACQ;AAAA,yBACD;AAAA,GACvB;AAAA,EACD,MAAM,oBAAoB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAO1B,OAAO;AAAA,IACN;AAAA,IACA,cAAc,GAAG;AAAA,QACX,kBAAkB,KAAK;AAAA,KAAS;AAAA,IACtC,qBAAqB,kBAAkB,IACtC,CAAC,qBAAqB,GAAG;AAAA,OAA4B,kBACtD;AAAA,EACD;AAAA;AAGM,SAAS,2BAA2B,CAC1C,cAC+B;AAAA,EAC/B,MAAM,UAAU,qCAAqC,OAAO,YAAY;AAAA,EACxE,sBAAsB,OAAO,QAAQ,SAAS;AAAA,EAC9C,MAAM,WAAW,kBAAkB,QAAQ,SAAS;AAAA,EACpD,IAAI,SAAS,WAAW,GAAG;AAAA,IAC1B,MAAM,IAAI,0BAA0B,qCAAqC;AAAA,EAC1E;AAAA,EACA,QAAQ,YAAY,cAAc,wBAAwB,eACzD,SACA,QACD;AAAA,EACA,MAAM,oBACL,QAAQ,sBAAsB,gCAC3B,yBACA;AAAA,EACJ,WAAW,+BAA+B,kBAAkB;AAAA,EAC5D,WAAW,mCAAmC,kBAAkB;AAAA,EAChE,WAAW,6BAA6B,gBAAgB;AAAA,EACxD,WAAW,iCAAiC,gBAAgB;AAAA,EAC5D,WAAW,4BAA4B,6BAA6B;AAAA,EACpE,WAAW,gCACV,6BAA6B;AAAA,EAC9B,WAAW,gCACV,iCAAiC;AAAA,EAClC,WAAW,oCACV,iCAAiC;AAAA,EAClC,MAAM,uBAAuB;AAAA,EAC7B,MAAM,YAAY,UAAU,cAAc,oCAAoC;AAAA;AAAA,SAEtE;AAAA;AAAA,EAER,MAAM,aAAa,UAAU,cAAc,2CAA2C;AAAA;AAAA,SAE9E;AAAA;AAAA,EAER,MAAM,eAAe;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,WASX;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,WASA;AAAA;AAAA;AAAA,EAGV,MAAM,sBAAsB,oBAAoB,QAC/C,CAAC,kBAAkB,UAAU;AAAA,IAC5B,iFAAiF,gCAAgC;AAAA,IACjH,wFAAwF,gCAAgC;AAAA,EACzH,CACD;AAAA,EACA,MAAM,eAAe;AAAA,kFAC4D;AAAA,yFACO;AAAA,IACrF,oBAAoB,KAAK;AAAA,GAAS;AAAA,EACrC,MAAM,uBAAuB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,UAMpB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAyBT,OAAO;AAAA,IACN;AAAA,IACA;AAAA,IACA,aAAa,cAAc,SAAS,QAAQ;AAAA,IAC5C;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACD;AAAA;;;AChcD,uBAAS;AACT;;;ACDA,uBAAS;AACT,sBAAS;AACT;AACA;AAEO,IAAM,6BAA6B;AACnC,IAAM,2BAA2B;AACjC,IAAM,gCAAgC;AAAA;AAyBtC,MAAM,+BAA+B,MAAM;AAAA,EACjD,WAAW,CAAC,SAAiB;AAAA,IAC5B,MAAM,OAAO;AAAA,IACb,KAAK,OAAO;AAAA;AAEd;AAEA,SAAS,SAAS,CAAC,SAAoC;AAAA,EACtD,OAAO,WAAS,OAAO,YAAU,YAAY,UAAU,UACpD,OAAQ,QAA6B,IAAI,IACzC;AAAA;AAGG,SAAS,uBAAuB,CAAC,OAAwB;AAAA,EAC/D,OAAO,MAAM,MAAM,SAAS,EAAE,SAAS,IAAI;AAAA;AAGrC,SAAS,qBAAqB,CACpC,WAAU,QAAQ,SAAS,MAC3B,cAAc,sCACP;AAAA,EACP,MAAM,QAAQ,OAAO,SAAS,SAAQ,MAAM,KAAK,CAAC,EAAE,MAAM,IAAI,EAAE;AAAA,EAChE,IAAI,CAAC,OAAO,UAAU,KAAK,KAAK,QAAQ,IAAI;AAAA,IAC3C,MAAM,IAAI,MAAM,GAAG,8CAA8C,UAAS;AAAA,EAC3E;AAAA;AAGM,SAAS,gBAAgB,CAAC,MAG/B;AAAA,EACD,IACC,KAAK,WAAW,KAChB,KAAK,OAAO,SACZ,KAAK,OAAO,eACZ,KAAK,OAAO,cACZ,CAAC,KAAK,MACN,CAAC,KAAK,IACL;AAAA,IACD,MAAM,IAAI,MAAM,wDAAwD;AAAA,EACzE;AAAA,EACA,OAAO,EAAE,aAAa,KAAK,IAAI,YAAY,KAAK,GAAG;AAAA;AAGpD,eAAe,iBAAiB,CAAC,aAAoC;AAAA,EACpE,MAAM,QAAQ,MAAM,MAAM,WAAW;AAAA,EACrC,IAAI,MAAM,eAAe,KAAK,CAAC,MAAM,YAAY,GAAG;AAAA,IACnD,MAAM,IAAI,MAAM,8CAA8C;AAAA,EAC/D;AAAA;AAGD,eAAe,sBAAsB,CAAC,YAAmC;AAAA,EACxE,IAAI;AAAA,EACJ,IAAI;AAAA,IACH,QAAQ,MAAM,MAAM,UAAU;AAAA,IAC7B,OAAO,SAAO;AAAA,IACf,IAAI,UAAU,OAAK,MAAM;AAAA,MAAU;AAAA,IACnC,MAAM;AAAA;AAAA,EAEP,IAAI,MAAM,eAAe,KAAK,CAAC,MAAM,OAAO,GAAG;AAAA,IAC9C,MAAM,IAAI,MACT,4DACD;AAAA,EACD;AAAA,EAEA,MAAM,SAAS,MAAM,KACpB,YACA,YAAY,WAAW,YAAY,UACpC;AAAA,EACA,IAAI;AAAA,IACH,IAAI,EAAE,MAAM,OAAO,KAAK,GAAG,OAAO,GAAG;AAAA,MACpC,MAAM,IAAI,MAAM,4CAA4C;AAAA,IAC7D;AAAA,YACC;AAAA,IACD,MAAM,OAAO,MAAM;AAAA;AAAA;AAIrB,eAAsB,sBAAsB,CAC3C,cACA,aACwB;AAAA,EACxB,IACC,wBAAwB,YAAY,KACpC,wBAAwB,WAAW,GAClC;AAAA,IACD,MAAM,IAAI,uBAAuB,iCAAiC;AAAA,EACnE;AAAA,EACA,MAAM,cAAc,KAAK,QAAQ,YAAY;AAAA,EAC7C,MAAM,aAAa,KAAK,QAAQ,WAAW;AAAA,EAC3C,MAAM,cAAc,KAAK,QAAQ,WAAW;AAAA,EAC5C,IAAI,KAAK,QAAQ,UAAU,MAAM,aAAa;AAAA,IAC7C,MAAM,IAAI,MAAM,uDAAuD;AAAA,EACxE;AAAA,EACA,MAAM,kBAAkB,WAAW;AAAA,EACnC,MAAM,uBAAuB,UAAU;AAAA,EACvC,OAAO,EAAE,aAAa,aAAa,WAAW;AAAA;AAGxC,SAAS,qBAAqB,CAAC,UAAwB;AAAA,EAC7D,IACC,KAAK,SAAS,QAAQ,MAAM,YAC5B,wBAAwB,QAAQ,KAChC,SAAS,SAAS,GAAG,KACrB,SAAS,SAAS,IAAI,GACrB;AAAA,IACD,MAAM,IAAI,MAAM,sCAAsC;AAAA,EACvD;AAAA;AAGD,eAAsB,sBAAsB,CAC3C,UACA,cACkB;AAAA,EAClB,IAAI,CAAC,OAAO,cAAc,YAAY,KAAK,eAAe,GAAG;AAAA,IAC5D,MAAM,IAAI,MAAM,kDAAkD;AAAA,EACnE;AAAA,EACA,IAAI;AAAA,EACJ,IAAI;AAAA,IACH,YAAY,MAAM,MAAM,QAAQ;AAAA,IAC/B,OAAO,SAAO;AAAA,IACf,MAAM,IAAI,uBACT,uBAAuB,UAAU,OAAK,KAAK,WAC5C;AAAA;AAAA,EAED,IACC,UAAU,eAAe,KACzB,CAAC,UAAU,OAAO,KAClB,UAAU,OAAO,cAChB;AAAA,IACD,MAAM,IAAI,uBACT,kDACD;AAAA,EACD;AAAA,EAEA,IAAI;AAAA,EACJ,IAAI;AAAA,IACH,SAAS,MAAM,KACd,UACA,YAAY,WAAW,YAAY,UACpC;AAAA,IACC,OAAO,SAAO;AAAA,IACf,MAAM,IAAI,uBACT,sBAAsB,UAAU,OAAK,KAAK,WAC3C;AAAA;AAAA,EAGD,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,IACH,MAAM,cAAc,MAAM,OAAO,KAAK;AAAA,IACtC,IAAI,CAAC,YAAY,OAAO,KAAK,YAAY,OAAO,cAAc;AAAA,MAC7D,MAAM,IAAI,uBACT,6CACD;AAAA,IACD;AAAA,IACA,MAAM,QAAQ,OAAO,MAAM,YAAY,IAAI;AAAA,IAC3C,IAAI,SAAS;AAAA,IACb,OAAO,SAAS,MAAM,QAAQ;AAAA,MAC7B,QAAQ,cAAc,MAAM,OAAO,KAClC,OACA,QACA,MAAM,SAAS,QACf,MACD;AAAA,MACA,IAAI,cAAc;AAAA,QAAG;AAAA,MACrB,UAAU;AAAA,IACX;AAAA,IACA,MAAM,aAAa,MAAM,OAAO,KAAK;AAAA,IACrC,IACC,WAAW,MAAM,UACjB,WAAW,SAAS,YAAY,QAChC,WAAW,OAAO,cACjB;AAAA,MACD,MAAM,IAAI,uBAAuB,uCAAuC;AAAA,IACzE;AAAA,IACA,SAAS;AAAA,IACR,OAAO,SAAO;AAAA,IACf,YACC,mBAAiB,yBACd,UACA,IAAI,uBACJ,sBAAsB,UAAU,OAAK,KAAK,WAC3C;AAAA;AAAA,EAEJ,IAAI;AAAA,IACH,MAAM,OAAO,MAAM;AAAA,IAClB,OAAO,SAAO;AAAA,IACf,IAAI,CAAC,WAAW;AAAA,MACf,YAAY,IAAI,uBACf,uBAAuB,UAAU,OAAK,KAAK,WAC5C;AAAA,IACD;AAAA;AAAA,EAED,IAAI;AAAA,IAAW,MAAM;AAAA,EACrB,IAAI,CAAC,QAAQ;AAAA,IACZ,MAAM,IAAI,uBAAuB,+BAA+B;AAAA,EACjE;AAAA,EACA,OAAO;AAAA;AAGR,eAAsB,iBAAiB,CAAC,UAAmC;AAAA,EAC1E,MAAM,QAAQ,MAAM,uBACnB,UACA,6BACD;AAAA,EACA,OAAO,YAAW,QAAQ,EAAE,OAAO,KAAK,EAAE,OAAO,KAAK;AAAA;AAGvD,eAAsB,yBAAyB,CAC9C,UACA,OACA,QAA8B,CAAC,GACf;AAAA,EAChB,MAAM,MAAM,aAAa,QAAQ;AAAA,EACjC,MAAM,SAAS,MAAM,KACpB,UACA,YAAY,WACX,YAAY,UACZ,YAAY,SACZ,YAAY,YACb,GACD;AAAA,EACA,IAAI;AAAA,IACH,IAAI,EAAE,MAAM,OAAO,KAAK,GAAG,OAAO,GAAG;AAAA,MACpC,MAAM,IAAI,MAAM,uCAAuC;AAAA,IACxD;AAAA,IACA,MAAM,OAAO,UAAU,KAAK;AAAA,IAC5B,MAAM,MAAM,kBAAkB;AAAA,IAC9B,MAAM,OAAO,KAAK;AAAA,YACjB;AAAA,IACD,MAAM,OAAO,MAAM;AAAA;AAAA;AAIrB,SAAS,YAAY,CACpB,OACA,iBACS;AAAA,EACT,IAAI,WAAW;AAAA,EACf,WAAW,UAAU,iBAAiB;AAAA,IACrC,IAAI;AAAA,MAAQ,WAAW,SAAS,WAAW,QAAQ,YAAY;AAAA,EAChE;AAAA,EACA,OAAO;AAAA;AAGD,SAAS,iBAAiB,CAChC,aACA,iBAC4C;AAAA,EAC5C,OAAO,OAAO,YACb,OAAO,QAAQ,WAAW,EAAE,IAAI,EAAE,KAAK,WAAW;AAAA,IACjD,aAAa,KAAK,eAAe;AAAA,IACjC,OAAO,UAAU,WAAW,aAAa,OAAO,eAAe,IAAI;AAAA,EACpE,CAAC,CACF;AAAA;AAGD,eAAe,mBAAmB,CAAC,QAA0C;AAAA,EAC5E,IAAI,CAAC;AAAA,IAAQ;AAAA,EACb,IAAI;AAAA,IACH,MAAM,OAAO,MAAM;AAAA,IAClB,MAAM;AAAA;AAKT,eAAsB,qBAAwB,CAC7C,YACA,QACA,UAAqC,CAAC,GACtB;AAAA,EAChB,QAAQ,WAAW,MAAM;AAAA,EACzB,MAAM,aAAa,GAAG,KAAK,UAAU,MAAM;AAAA;AAAA,EAC3C,MAAM,cAAc,KAAK,QAAQ,UAAU;AAAA,EAC3C,MAAM,WAAW,KAAK,KACrB,aACA,IAAI,KAAK,SAAS,UAAU,KAAK,WAAW,OAC7C;AAAA,EACA,IAAI,aAAgC;AAAA,EACpC,IAAI,UAAU;AAAA,EAEd,IAAI;AAAA,IACH,IAAI;AAAA,MACH,MAAM,MAAM,QAAQ;AAAA,MACpB,MAAM,IAAI,MAAM,gDAAgD;AAAA,MAC/D,OAAO,SAAO;AAAA,MACf,IAAI,UAAU,OAAK,MAAM;AAAA,QAAU,MAAM;AAAA;AAAA,IAG1C,MAAM,QAAQ,OAAO,iBAAiB,QAAQ;AAAA,IAC9C,aAAa,MAAM,KAClB,UACA,YAAY,WACX,YAAY,UACZ,YAAY,SACZ,YAAY,YACb,GACD;AAAA,IACA,IAAI,EAAE,MAAM,WAAW,KAAK,GAAG,OAAO,GAAG;AAAA,MACxC,MAAM,IAAI,MAAM,wCAAwC;AAAA,IACzD;AAAA,IACA,MAAM,WAAW,UAAU,YAAY,MAAM;AAAA,IAC7C,MAAM,QAAQ,OAAO,kBAAkB;AAAA,IACvC,MAAM,WAAW,KAAK;AAAA,IACtB,MAAM,WAAW,MAAM;AAAA,IACvB,aAAa;AAAA,IAEb,MAAM,QAAQ,OAAO,eAAe;AAAA,IACpC,MAAM,OAAO,UAAU,UAAU;AAAA,IACjC,UAAU;AAAA,IAEV,MAAM,kBAAkB,MAAM,KAC7B,aACA,YAAY,WAAW,YAAY,cAAc,YAAY,UAC9D;AAAA,IACA,IAAI;AAAA,MACH,IAAI,EAAE,MAAM,gBAAgB,KAAK,GAAG,YAAY,GAAG;AAAA,QAClD,MAAM,IAAI,MAAM,wCAAwC;AAAA,MACzD;AAAA,MACA,IAAI;AAAA,QACH,MAAM,QAAQ,OAAO,uBAAuB;AAAA,QAC5C,MAAM,gBAAgB,KAAK;AAAA,QAC1B,OAAO,SAAO;AAAA,QACf,IAAI,CAAC,CAAC,WAAW,QAAQ,EAAE,SAAS,UAAU,OAAK,KAAK,EAAE,GAAG;AAAA,UAC5D,MAAM;AAAA,QACP;AAAA;AAAA,cAEA;AAAA,MACD,MAAM,gBAAgB,MAAM;AAAA;AAAA,IAE5B,OAAO,SAAO;AAAA,IACf,MAAM,oBAAoB,UAAU;AAAA,IACpC,IAAI,CAAC,SAAS;AAAA,MACb,IAAI;AAAA,QACH,MAAM,OAAO,QAAQ;AAAA,QACpB,OAAO,cAAc;AAAA,QACtB,IAAI,UAAU,YAAY,MAAM,UAAU,CAE1C;AAAA;AAAA,IAEF;AAAA,IACA,MAAM;AAAA;AAAA;;;AC3VR,SAAS,SAAS,CACjB,QACA,OACqC;AAAA,EACrC,MAAM,UAAU,OAAO;AAAA,EACvB,IAAI,CAAC;AAAA,IAAS,MAAM,IAAI,MAAM,gCAAgC;AAAA,EAC9D,MAAM,WAAyB,CAAC;AAAA,EAChC,IAAI,OAAO,QAAQ;AAAA,EACnB,SAAS,QAAQ,EAAG,SAAS,QAAQ,gBAAgB,IAAI,SAAS,GAAG;AAAA,IACpE,MAAM,SAAS,UAAU,QAAQ,IAAI;AAAA,IACrC,SAAS,KAAK,OAAO,IAAI;AAAA,IACzB,OAAO,OAAO;AAAA,EACf;AAAA,EACA,OAAO,EAAE,MAAM,EAAE,SAAS,SAAS,GAAG,KAAK;AAAA;AAG5C,SAAS,eAAe,CAAC,QAAgD;AAAA,EACxE,MAAM,OAAO,UAAU,QAAQ,CAAC,EAAE;AAAA,EAClC,IAAI,KAAK,QAAQ,SAAS,UAAU;AAAA,IACnC,MAAM,IAAI,MAAM,gCAAgC;AAAA,EACjD;AAAA,EACA,OAAO,KAAK;AAAA;AAGb,SAAS,qBAAqB,CAAC,SAAuC;AAAA,EACrE,IAAI,QAAQ,mBAAmB;AAAA,IAAQ,OAAO;AAAA,EAC9C,IAAI,QAAQ,gBAAgB,WAAW,OAAO,GAAG;AAAA,IAChD,OAAO,QAAQ;AAAA,EAChB;AAAA,EACA,IAAI,QAAQ,mBAAmB,WAAW;AAAA,IACzC,OAAO,WAAW,QAAQ,aAAa,QAAQ;AAAA,EAChD;AAAA,EACA,OAAO,QAAQ,kBAAkB;AAAA;AAGlC,SAAS,SAAS,CAAC,MAA6C;AAAA,EAC/D,IAAI,KAAK,QAAQ;AAAA,IAAM,OAAO,KAAK;AAAA,EACnC,WAAW,SAAS,KAAK,UAAU;AAAA,IAClC,MAAM,OAAO,UAAU,KAAK;AAAA,IAC5B,IAAI;AAAA,MAAM,OAAO;AAAA,EAClB;AAAA,EACA;AAAA;AAGD,SAAS,YAAY,CAAC,MAAoC;AAAA,EACzD,IAAI,KAAK,QAAQ,mBAAmB,QAAQ;AAAA,IAC3C,MAAM,OAAO,UAAU,IAAI;AAAA,IAC3B,IAAI,CAAC;AAAA,MAAM,MAAM,IAAI,MAAM,6CAA6C;AAAA,IACxE,OAAO;AAAA,MACN,MAAM,KAAK,QAAQ;AAAA,MACnB,eAAe;AAAA,MACf,cAAc,QAAQ,sBAAsB,IAAI,KAAK,KAAK;AAAA,MAC1D,UAAU,KAAK,QAAQ,oBAAoB;AAAA,IAC5C;AAAA,EACD;AAAA,EACA,IAAI,CAAC,KAAK,QAAQ;AAAA,IACjB,MAAM,IAAI,MAAM,qCAAqC;AAAA,EACtD,OAAO;AAAA,IACN,MAAM,KAAK,QAAQ;AAAA,IACnB,eAAe,KAAK,QAAQ;AAAA,IAC5B,cAAc,sBAAsB,KAAK,OAAO;AAAA,IAChD,UAAU,KAAK,QAAQ,oBAAoB;AAAA,EAC5C;AAAA;AAGD,SAAS,aAAa,CAAC,OAAgC;AAAA,EACtD,OAAO,MAAM,OAAO,MACnB,MAAM,YACN,MAAM,aAAa,MAAM,UAC1B;AAAA;AAGM,SAAS,uBAAuB,CACtC,OACA,YACO;AAAA,EACP,IAAI;AAAA,IACH,IAAI,WAAW,wBAAwB,+BAA+B;AAAA,MACrE,MAAM,IAAI,MAAM,0CAA0C;AAAA,IAC3D;AAAA,IACA,MAAM,WAAW,gBAAgB,cAAc,KAAK,CAAC;AAAA,IACrD,IACC,KAAK,UAAU,SAAS,sBAAsB,CAAC,CAAC,MAChD,KAAK,UAAU,WAAW,iBAAiB,kBAAkB,GAC5D;AAAA,MACD,MAAM,IAAI,MACT,yDACD;AAAA,IACD;AAAA,IACA,MAAM,SAAS,gBAAgB,SAAS,MAAM,EAAE,IAAI,YAAY;AAAA,IAChE,IAAI,KAAK,UAAU,MAAM,MAAM,KAAK,UAAU,WAAW,OAAO,GAAG;AAAA,MAClE,MAAM,IAAI,MAAM,iDAAiD;AAAA,IAClE;AAAA,IACC,MAAM;AAAA,IACP,MAAM,IAAI,0BAA0B,oCAAoC;AAAA;AAAA;AAInE,SAAS,6BAA6B,CAAC,OAAyB;AAAA,EACtE,wBACC,OACA,oCACD;AAAA;AAGM,SAAS,mCAAmC,CAAC,OAAyB;AAAA,EAC5E,wBACC,OACA,2CACD;AAAA;;;AFtFD,SAAS,yBAAyB,CAAC,OAAyC;AAAA,EAC3E,IAAI,CAAC,MAAM,QAAQ,KAAK;AAAA,IAAG,OAAO,OAAO,KAAK;AAAA,EAC9C,OAAO,IAAI,MACT,IAAI,CAAC,UAAU;AAAA,IACf,MAAM,aAAa,KAAK,UAAU,KAAK;AAAA,IACvC,OAAO,IAAI,WAAW,MAAM,GAAG,EAAE,EAAE,WAAW,KAAK,KAAK;AAAA,GACxD,EACA,KAAK,GAAG;AAAA;AAGJ,SAAS,0CAA0C,CACzD,SACkC;AAAA,EAClC,MAAM,UAAU,QAAQ,SAAS,WAAW;AAAA,EAC5C,OAAO;AAAA,SACA,QAAO,CAAC,KAAK,YAAY,QAAQ;AAAA,MACtC,IAAI;AAAA,MACJ,IAAI;AAAA,QACH,WAAW,IAAI,IAAI,QAAQ,GAAG;AAAA,QAC7B,MAAM;AAAA,QACP,MAAM,IAAI,0BAA0B,qBAAqB;AAAA;AAAA,MAE1D,MAAM,mBAAmB,mBAAmB,SAAS,QAAQ;AAAA,MAC7D,MAAM,mBAAmB,mBAAmB,SAAS,QAAQ;AAAA,MAC7D,SAAS,WAAW;AAAA,MACpB,SAAS,WAAW;AAAA,MACpB,SAAS,aAAa,IAAI,YAAY,aAAa;AAAA,MACnD,YAAY,MAAM,UAAU,OAAO,QAAQ,UAAU,GAAG;AAAA,QACvD,SAAS,aAAa,IACrB,SAAS,QACT,0BAA0B,KAAK,CAChC;AAAA,MACD;AAAA,MACA,IAAI;AAAA,MACJ,IAAI;AAAA,QACH,WAAW,MAAM,QAAQ,UAAU;AAAA,UAClC,QAAQ;AAAA,UACR,SAAS;AAAA,YACR,qBACC,QAAQ,YAAY,oBAAoB;AAAA,YACzC,oBAAoB,QAAQ,YAAY;AAAA,UACzC;AAAA,UACA,MAAM,GAAG,IAAI,KAAK;AAAA,SAAa;AAAA,QAChC,CAAC;AAAA,QACA,MAAM;AAAA,QACP,MAAM,IAAI,0BAA0B,2BAA2B;AAAA;AAAA,MAEhE,IAAI,CAAC,SAAS,IAAI;AAAA,QACjB,MAAM,IAAI,0BACT,sBAAsB,SAAS,QAChC;AAAA,MACD;AAAA,MACA,OAAO,IAAI,WAAW,MAAM,SAAS,YAAY,CAAC;AAAA;AAAA,EAEpD;AAAA;AAGD,SAAS,gBAAgB,CAAC,OAA8C;AAAA,EACvE,MAAM,OAAO,IAAI,YAAY,EAAE,OAAO,KAAK,EAAE,KAAK;AAAA,EAClD,IAAI;AAAA,IACH,OAAO,OACJ,KACC,MAAM;AAAA,CAAI,EACV,IAAI,CAAC,SAAS,KAAK,MAAM,IAAI,CAA4B,IAC1D,CAAC;AAAA,IACH,MAAM;AAAA,IACP,MAAM,IAAI,0BAA0B,0BAA0B;AAAA;AAAA;AAIhE,eAAe,SAAS,CACvB,QACA,UACA,KACqC;AAAA,EACrC,IAAI;AAAA,IACH,OAAO,iBACN,MAAM,OAAO,QAAQ,KAAK,SAAS,YAAY,aAAa,CAC7D;AAAA,IACC,OAAO,SAAO;AAAA,IACf,IAAI,mBAAiB;AAAA,MAA2B,MAAM;AAAA,IACtD,MAAM,IAAI,0BAA0B,sBAAsB;AAAA;AAAA;AAI5D,SAAS,aAAa,CAAC,OAAgB,QAAwB;AAAA,EAC9D,MAAM,QAAQ,OAAO,UAAU,WAAW,QAAQ,OAAO,KAAK;AAAA,EAC9D,IAAI,CAAC,OAAO,cAAc,KAAK,KAAK,QAAQ,GAAG;AAAA,IAC9C,MAAM,IAAI,0BAA0B,MAAM;AAAA,EAC3C;AAAA,EACA,OAAO;AAAA;AAGR,SAAS,QAAQ,CAChB,UACA,MACA,OACA,YAImC;AAAA,EACnC,OAAO;AAAA,IACN,WAAW;AAAA,IACX;AAAA,IACA,OAAO,MAAM;AAAA,IACb,QAAQ,YAAW,QAAQ,EAAE,OAAO,KAAK,EAAE,OAAO,KAAK;AAAA,OACpD;AAAA,EACJ;AAAA;AAGD,eAAsB,6BAA6B,CAAC,OAIT;AAAA,EAC1C,MAAM,WAAW,4BAA4B,MAAM,OAAO;AAAA,EAC1D,MAAM,eAAe,MAAM,UAC1B,MAAM,QACN,UACA;AAAA;AAAA;AAAA,WAID;AAAA,EACA,IACC,aAAa,WAAW,KACxB,aAAa,IAAI,gBAAgB,SAAS,QAAQ,OAAO,eACzD,aAAa,IAAI,YAAY,SAAS,QAAQ,OAAO,SACpD;AAAA,IACD,MAAM,IAAI,0BAA0B,yBAAyB;AAAA,EAC9D;AAAA,EAEA,MAAM,eAAe,MAAM,UAC1B,MAAM,QACN,UACA,SAAS,YACV;AAAA,EACA,IACC,aAAa,WAAW,KACxB,cAAc,aAAa,IAAI,WAAW,wBAAwB,MAAM,GACvE;AAAA,IACD,MAAM,IAAI,0BAA0B,4BAA4B;AAAA,EACjE;AAAA,EAEA,MAAM,YAAY,MAAM,UACvB,MAAM,QACN,UACA,SAAS,YACV;AAAA,EACA,IAAI,UAAU,WAAW,GAAG;AAAA,IAC3B,MAAM,IAAI,0BAA0B,8BAA8B;AAAA,EACnE;AAAA,EACA,MAAM,YAAY,cACjB,UAAU,IAAI,YACd,8BACD;AAAA,EACA,MAAM,cAAc,cACnB,UAAU,IAAI,cACd,8BACD;AAAA,EACA,IAAI,cAAc,KAAK,gBAAgB,GAAG;AAAA,IACzC,MAAM,IAAI,0BAA0B,2BAA2B;AAAA,EAChE;AAAA,EACA,YAAY,UAAU,SAAS,SAAS,QAAQ,GAAG;AAAA,IAClD,MAAM,mBAAmB,cACxB,UAAU,KAAK,WAAW,qBAC1B,8BACD;AAAA,IACA,MAAM,qBAAqB,cAC1B,UAAU,KAAK,WAAW,uBAC1B,8BACD;AAAA,IACA,IAAI,qBAAqB,KAAK,uBAAuB,GAAG;AAAA,MACvD,MAAM,IAAI,0BAA0B,yBAAyB;AAAA,IAC9D;AAAA,EACD;AAAA,EAEA,MAAM,cAAc,MAAM,UACzB,MAAM,QACN,UACA,SAAS,oBACV;AAAA,EACA,MAAM,sBAAsB;AAAA,IAC3B,GAAG,IAAI,IACN,YAAY,IAAI,CAAC,QAAQ;AAAA,MACxB,IAAI,OAAO,IAAI,eAAe,UAAU;AAAA,QACvC,MAAM,IAAI,0BAA0B,4BAA4B;AAAA,MACjE;AAAA,MACA,OAAO,IAAI;AAAA,KACX,CACF;AAAA,EACD,EAAE,KAAK;AAAA,EACP,MAAM,qBAAqB,CAAC,GAAG,SAAS,QAAQ,UAAU,WAAW,EAAE,KAAK;AAAA,EAC5E,IACC,KAAK,UAAU,mBAAmB,MAAM,KAAK,UAAU,kBAAkB,GACxE;AAAA,IACD,MAAM,IAAI,0BAA0B,4BAA4B;AAAA,EACjE;AAAA,EAEA,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,IACH,CAAC,aAAa,YAAY,IAAI,MAAM,QAAQ,IAAI;AAAA,MAC/C,MAAM,OAAO,QAAQ,SAAS,WAAW,SAAS,YAAY,SAAS;AAAA,MACvE,MAAM,OAAO,QAAQ,SAAS,YAAY,SAAS,YAAY,SAAS;AAAA,IACzE,CAAC;AAAA,IACA,OAAO,SAAO;AAAA,IACf,IAAI,mBAAiB;AAAA,MAA2B,MAAM;AAAA,IACtD,MAAM,IAAI,0BAA0B,sBAAsB;AAAA;AAAA,EAE3D,8BAA8B,WAAW;AAAA,EACzC,oCAAoC,YAAY;AAAA,EAEhD,MAAM,iBAAiB;AAAA,EACvB,MAAM,kBAAkB;AAAA,EACxB,MAAM,aAAa,MAAK,KAAK,MAAM,iBAAiB,cAAc;AAAA,EAClE,MAAM,cAAc,MAAK,KAAK,MAAM,iBAAiB,eAAe;AAAA,EACpE,IAAI;AAAA,IACH,MAAM,0BAA0B,YAAY,WAAW;AAAA,IACvD,MAAM,0BAA0B,aAAa,YAAY;AAAA,IACxD,MAAM;AAAA,IACP,MAAM,IAAI,0BAA0B,uBAAuB;AAAA;AAAA,EAG5D,OAAO;AAAA,IACN;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,QAAQ,SAAS,gBAAgB,WAAW,aAAa;AAAA,MACxD,sBAAsB;AAAA,MACtB,0BACC;AAAA,IACF,CAAC;AAAA,IACD,SAAS,SAAS,iBAAiB,aAAa,cAAc;AAAA,MAC7D,sBACC;AAAA,MACD,0BACC;AAAA,IACF,CAAC;AAAA,EACF;AAAA;;;AhI7OD,IAAM,gBAAgB;AACtB,IAAM,uBAAuB;AAE7B,SAAS,uBAAuB,CAC/B,SAC0C;AAAA,EAC1C,IAAI,CAAC,qBAAqB,KAAK,QAAQ,cAAc,GAAG;AAAA,IACvD,MAAM,IAAI,MAAM,uDAAuD;AAAA,EACxE;AAAA,EACA,IAAI,CAAC,cAAc,KAAK,QAAQ,OAAO,GAAG;AAAA,IACzC,MAAM,IAAI,MACT,2DACD;AAAA,EACD;AAAA,EACA,OAAO;AAAA;AAGR,SAAS,oBAAoB,GAA4C;AAAA,EACxE,OAAO,wBAAwB;AAAA,IAC9B,gBAEI;AAAA,IAEJ,SAEI;AAAA,EAEL,CAAC;AAAA;AAGF,SAAS,mBAAmB,CAC3B,aACA,MACqB;AAAA,EACrB,MAAM,QAAQ,YAAY;AAAA,EAC1B,OAAO,SAAS,MAAM,KAAK,EAAE,SAAS,IAAI,QAAQ;AAAA;AAG5C,SAAS,2CAA2C,CAC1D,aACkC;AAAA,EAClC,OAAO,2CAA2C;AAAA,IACjD,KAAK,oBAAoB,aAAa,gBAAgB,KAAK;AAAA,IAC3D,UAAU,oBAAoB,aAAa,iBAAiB;AAAA,IAC5D,UAAU,oBAAoB,aAAa,qBAAqB;AAAA,EACjE,CAAC;AAAA;AAGF,SAAS,qBAAqB,CAAC,QAAgD;AAAA,EAC9E,IACC,WAAW,yBACX,WAAW,0BACX,WAAW,+BACX,OAAO,WAAW,qBAAqB,GACtC;AAAA,IACD,OAAO;AAAA,EACR;AAAA,EACA,OAAO,WAAW,0BACf,0BACA;AAAA;AAGJ,eAAe,WAAW,CAAC,OAgBqB;AAAA,EAC/C,MAAM,SAAS,uCAAuC;AAAA,IACrD,WAAW;AAAA,IACX,QAAQ,MAAM;AAAA,IACd,qBAAqB,MAAM;AAAA,IAC3B,UAAU,MAAM;AAAA,IAChB,YAAY,MAAM;AAAA,IAClB,cAAc,MAAM;AAAA,IACpB,SAAS;AAAA,MACR,QAAQ,MAAM;AAAA,MACd,aAAa,MAAM;AAAA,MACnB,gBAAgB,MAAM;AAAA,MACtB,YAAY,MAAM,SAAS,cAAc;AAAA,MACzC,QAAQ,MAAM,SAAS,UAAU;AAAA,MACjC,kBAAkB,MAAM,SAAS,UAAU,oBAAoB;AAAA,MAC/D,cAAc,MAAM,eAAe;AAAA,MACnC,gBAAgB,MAAM,iBAAiB,CAAC;AAAA,MACxC,uBAAuB,MAAM,uBAAuB,CAAC;AAAA,MACrD,WAAW,MAAM,aAAa;AAAA,MAC9B,aAAa,CAAC;AAAA,IACf;AAAA,EACD,CAAC;AAAA,EACD,MAAM,sBAAsB,MAAM,YAAY,QAAQ;AAAA,IACrD,UAAU,CAAC,UAAU;AAAA,MACpB,oCAAoC,OAAO,KAAK;AAAA;AAAA,IAEjD,OAAO,MAAM;AAAA,EACd,CAAC;AAAA,EACD,OAAO;AAAA;AAGR,eAAsB,kCAAkC,CACvD,SAC8C;AAAA,EAC9C,sBACC,QAAQ,SAAS,MACjB,gCACD;AAAA,EACA,MAAM,UAAU,wBACf,QAAQ,WAAW,qBAAqB,CACzC;AAAA,EACA,MAAM,QAAQ,QAAQ,SAAS,KAAK;AAAA,EACpC,MAAM,YAAY,IAAI,KAAK,MAAM,CAAC,EAAE,YAAY;AAAA,EAChD,MAAM,SAAS,QAAQ,cAAc,aAAY;AAAA,EACjD,MAAM,iBAAiB,QAAQ,iBAC5B,MAAK,QAAQ,QAAQ,cAAc,IACnC,QAAQ,KAAK,KACZ,MAAK,QAAQ,QAAQ,KAAK,EAAE,IAC5B;AAAA,EACJ,IAAI,CAAC;AAAA,IACJ,MAAM,IAAI,MAAM,wCAAwC;AAAA,EACzD,MAAM,mBAAmB,MAAM,kBAAkB,cAAc;AAAA,EAC/D,MAAM,WAA2D;AAAA,IAChE,YAAY;AAAA,IACZ,iBAAiB;AAAA,IACjB,SAAS;AAAA,MACR,MAAM;AAAA,MACN,SAAS,QAAQ;AAAA,MACjB,UAAU,QAAQ;AAAA,IACnB;AAAA,IACA,mBAAmB;AAAA,IACnB,SAAS,EAAE,MAAM,QAAQ,SAAS,QAAQ,SAAS,KAAK;AAAA,EACzD;AAAA,EAEA,MAAM,QAAQ,MAAM,uBACnB,MAAK,QAAQ,QAAQ,WAAW,GAChC,MAAK,QAAQ,QAAQ,UAAU,CAChC;AAAA,EACA,MAAM,SAAS;AAAA,IACd,YAAY,MAAM;AAAA,IAClB;AAAA,IACA;AAAA,IACA;AAAA,IACA,OAAO,QAAQ;AAAA,EAChB;AAAA,EACA,IACC,wBAAwB,QAAQ,WAAW,KAC3C,wBAAwB,QAAQ,UAAU,GACzC;AAAA,IACD,OAAO,YAAY;AAAA,SACf;AAAA,MACH,mBAAmB;AAAA,MACnB,SAAS;AAAA,MACT,QAAQ;AAAA,MACR,YAAY;AAAA,MACZ,eAAe;AAAA,MACf,aAAa,IAAI,KAAK,MAAM,CAAC,EAAE,YAAY;AAAA,IAC5C,CAAC;AAAA,EACF;AAAA,EAEA,IAAI;AAAA,EACJ,IAAI;AAAA,IACH,eAAe,MAAM,uBACpB,MAAM,aACN,0BACD;AAAA,IACC,OAAO,SAAO;AAAA,IACf,IAAI,EAAE,mBAAiB;AAAA,MAAyB,MAAM;AAAA,IACtD,OAAO,YAAY;AAAA,SACf;AAAA,MACH,mBAAmB;AAAA,MACnB,SAAS;AAAA,MACT,QAAQ;AAAA,MACR,YAAY;AAAA,MACZ,eAAe;AAAA,MACf,aAAa,IAAI,KAAK,MAAM,CAAC,EAAE,YAAY;AAAA,IAC5C,CAAC;AAAA;AAAA,EAEF,MAAM,oBAAoB,YAAW,QAAQ,EAC3C,OAAO,YAAY,EACnB,OAAO,KAAK;AAAA,EACd,IAAI;AAAA,EACJ,IAAI;AAAA,IACH,UAAU,qCAAqC,OAC9C,KAAK,MAAM,aAAa,SAAS,MAAM,CAAC,CACzC;AAAA,IACC,MAAM;AAAA,IACP,OAAO,YAAY;AAAA,SACf;AAAA,MACH;AAAA,MACA,SAAS;AAAA,MACT,QAAQ;AAAA,MACR,YAAY;AAAA,MACZ,eAAe;AAAA,MACf,aAAa,IAAI,KAAK,MAAM,CAAC,EAAE,YAAY;AAAA,IAC5C,CAAC;AAAA;AAAA,EAGF,IAAI;AAAA,IACH,MAAM,WAAW,MAAM,8BAA8B;AAAA,MACpD;AAAA,MACA,QACC,QAAQ,UACR,4CACC,QAAQ,eAAe,QAAQ,GAChC;AAAA,MACD,iBAAiB,MAAM;AAAA,IACxB,CAAC;AAAA,IACD,OAAO,YAAY;AAAA,SACf;AAAA,MACH;AAAA,MACA;AAAA,MACA,QAAQ;AAAA,MACR,YAAY;AAAA,MACZ,eAAe;AAAA,MACf,aAAa,SAAS,SAAS;AAAA,MAC/B,eAAe,SAAS,SAAS;AAAA,MACjC,qBAAqB,SAAS;AAAA,MAC9B,WAAW,EAAE,QAAQ,SAAS,QAAQ,SAAS,SAAS,QAAQ;AAAA,MAChE,aAAa,IAAI,KAAK,MAAM,CAAC,EAAE,YAAY;AAAA,IAC5C,CAAC;AAAA,IACA,OAAO,SAAO;AAAA,IACf,MAAM,SACL,mBAAiB,4BACd,QAAM,SACN;AAAA,IACJ,MAAM,SAAS,sBAAsB,MAAM;AAAA,IAC3C,OAAO,YAAY;AAAA,SACf;AAAA,MACH;AAAA,MACA;AAAA,MACA;AAAA,MACA,YAAY;AAAA,MACZ,eAAe;AAAA,MACf,aAAa,IAAI,KAAK,MAAM,CAAC,EAAE,YAAY;AAAA,IAC5C,CAAC;AAAA;AAAA;AAIH,eAAsB,8BAA8B,CACnD,MACA,UAGI,CAAC,GACa;AAAA,EAClB,sBACC,QAAQ,SAAS,MACjB,gCACD;AAAA,EACA,MAAM,QAAQ,iBAAiB,IAAI;AAAA,EACnC,MAAM,mCAAmC,KAAK,YAAY,MAAM,CAAC;AAAA,EACjE,OAAO;AAAA;AAGR,IAAM,aAAa,QAAQ,KAAK,KAC7B,cAAc,MAAK,QAAQ,QAAQ,KAAK,EAAE,CAAC,EAAE,OAC7C;AACH,IAAI,eAAe,YAAY,KAAK;AAAA,EACnC,+BAA+B,QAAQ,KAAK,MAAM,CAAC,CAAC,EAAE,KACrD,CAAC,aAAa;AAAA,IACb,QAAQ,WAAW;AAAA,KAEpB,MAAM;AAAA,IACL,QAAQ,MAAM,uCAAuC;AAAA,IACrD,QAAQ,WAAW;AAAA,GAErB;AACD;",
264
+ "debugId": "90BECE8C8E375A1F64756E2164756E21",
234
265
  "names": []
235
266
  }