@usherlabs/cex-broker 0.2.48 → 0.2.50

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 (26) hide show
  1. package/dist/commands/cex-canonical-orderbook-export.js +72 -358
  2. package/dist/commands/cex-canonical-orderbook-export.js.map +7 -19
  3. package/dist/commands/cli.js +224 -67
  4. package/dist/commands/market-data-vendor-backfill.js +975 -1198
  5. package/dist/commands/market-data-vendor-backfill.js.map +13 -25
  6. package/dist/helpers/logger.d.ts +4 -0
  7. package/dist/helpers/market-data-vendor-backfill/cryptohftdata.d.ts +3 -1
  8. package/dist/helpers/market-data-vendor-backfill/manifests.d.ts +58 -4
  9. package/dist/helpers/market-data-vendor-backfill/semantic-verification.d.ts +1 -0
  10. package/dist/helpers/otel.d.ts +1 -0
  11. package/dist/helpers/trace-context.d.ts +8 -0
  12. package/dist/index.js +183 -63
  13. package/dist/index.js.map +9 -8
  14. package/dist/market-data-preparation/fixtures/conformance-v2.json +8 -8
  15. package/dist/market-data-preparation/policies/capability-policy-v1.json +28 -0
  16. package/dist/market-data-preparation/policies/capability-policy.json +14 -3
  17. package/dist/market-data-preparation/policies/resource-policy-v1.json +16 -0
  18. package/dist/market-data-preparation/policies/resource-policy.json +3 -3
  19. package/dist/market-data-preparation.js +70 -359
  20. package/dist/market-data-preparation.js.map +9 -21
  21. package/dist/market-data-vendor-backfill/policies/capability-policy-v2.json +39 -0
  22. package/dist/market-data-vendor-backfill/policies/resource-policy-v2.json +16 -0
  23. package/dist/market-data-vendor-backfill.d.ts +2 -2
  24. package/dist/market-data-vendor-backfill.js +1528 -1750
  25. package/dist/market-data-vendor-backfill.js.map +13 -25
  26. package/package.json +1 -1
@@ -26,8 +26,8 @@
26
26
  "policy_sha256": "51f522286ad24ec55525c19cad5c2c37043f9325a5a8f20d838adb7fd71191bf"
27
27
  },
28
28
  "resource_policy": {
29
- "policy_id": "market-data-vendor-backfill-resources/v1",
30
- "policy_sha256": "38d4f47cbd15794efed570801556a95f724561a8b45567d518c044da9d454142"
29
+ "policy_id": "market-data-vendor-backfill-resources/v2",
30
+ "policy_sha256": "5c095c9af4450a0dd110cae04215b9188c6522ab16f4524a41b6122b154160a2"
31
31
  },
32
32
  "started_at": "2026-08-20T12:00:01.000Z",
33
33
  "completed_at": "2026-08-20T12:00:03.000Z",
@@ -191,7 +191,7 @@
191
191
  "promoted_rows": 50
192
192
  }
193
193
  },
194
- "result_sha256": "a436b2f916fb2b2885a2694016227385a01e2d4cea8eda01417a8c8992d3317a"
194
+ "result_sha256": "3d77158ab5609eab483333810b59b38967ca399feaee6e8a8f62aa5196814cfe"
195
195
  },
196
196
  "canonical_orderbook_export_request": {
197
197
  "schema_id": "https://schemas.usher.so/cex-canonical-orderbook-export-request/v1",
@@ -406,18 +406,18 @@
406
406
  }
407
407
  ],
408
408
  "capability_policy": {
409
- "policy_id": "market-data-vendor-backfill-capabilities/v1",
410
- "policy_sha256": "51f522286ad24ec55525c19cad5c2c37043f9325a5a8f20d838adb7fd71191bf"
409
+ "policy_id": "market-data-vendor-backfill-capabilities/v2",
410
+ "policy_sha256": "1dc3f918c6de98d4f65dc1439e16e8c8e0269b5eb9063e3617a52e457fdc24d1"
411
411
  },
412
412
  "resource_policy": {
413
- "policy_id": "market-data-vendor-backfill-resources/v1",
414
- "policy_sha256": "38d4f47cbd15794efed570801556a95f724561a8b45567d518c044da9d454142"
413
+ "policy_id": "market-data-vendor-backfill-resources/v2",
414
+ "policy_sha256": "5c095c9af4450a0dd110cae04215b9188c6522ab16f4524a41b6122b154160a2"
415
415
  }
416
416
  }
417
417
  },
418
418
  "identities": {
419
419
  "manifest_sha256": "0e226165c78c6217a765c09be15b6305a574e69b6e05e8607f399b468ba04d5b",
420
- "backfill_result_sha256": "a436b2f916fb2b2885a2694016227385a01e2d4cea8eda01417a8c8992d3317a",
420
+ "backfill_result_sha256": "3d77158ab5609eab483333810b59b38967ca399feaee6e8a8f62aa5196814cfe",
421
421
  "selection_sha256": "cc4869df6d08c79d030c8407e7a55e5c534e6a96da7c1ac3f726e814c66a108e",
422
422
  "export_result_sha256": "4be9b182d1858bf4dd60da823e245f9a6ca472e99b3b50b94c17a48c71c9dc67"
423
423
  }
@@ -0,0 +1,28 @@
1
+ {
2
+ "policy_id": "market-data-vendor-backfill-capabilities/v1",
3
+ "provider": "cryptohftdata",
4
+ "adapter_policy": {
5
+ "policy_id": "cryptohftdata-orderbook-adapter/v1",
6
+ "adapter_version": "cryptohftdata-orderbook/v2"
7
+ },
8
+ "acquisition_policy": {
9
+ "policy_id": "cryptohftdata-hourly-acquisition/v1",
10
+ "object_granularity": "utc_hour",
11
+ "authentication": "bearer",
12
+ "initialization_lookback_ms": 0
13
+ },
14
+ "profiles": [
15
+ {
16
+ "exchange": "okx",
17
+ "market_type": "spot",
18
+ "feed": "ORDERBOOK",
19
+ "canonical_trading_pair": "ARB-USDT",
20
+ "provider_exchange_id": "okx_spot",
21
+ "resolved_symbol": "ARB-USDT",
22
+ "construction_modes": ["sampled_top_n_snapshot"],
23
+ "source_policies": ["authoritative_window"],
24
+ "max_depth": 400
25
+ }
26
+ ],
27
+ "policy_sha256": "51f522286ad24ec55525c19cad5c2c37043f9325a5a8f20d838adb7fd71191bf"
28
+ }
@@ -1,5 +1,5 @@
1
1
  {
2
- "policy_id": "market-data-vendor-backfill-capabilities/v1",
2
+ "policy_id": "market-data-vendor-backfill-capabilities/v2",
3
3
  "provider": "cryptohftdata",
4
4
  "adapter_policy": {
5
5
  "policy_id": "cryptohftdata-orderbook-adapter/v1",
@@ -20,9 +20,20 @@
20
20
  "provider_exchange_id": "okx_spot",
21
21
  "resolved_symbol": "ARB-USDT",
22
22
  "construction_modes": ["sampled_top_n_snapshot"],
23
- "source_policies": ["authoritative_window"],
23
+ "source_policies": ["authoritative_window", "fill_gaps"],
24
+ "max_depth": 400
25
+ },
26
+ {
27
+ "exchange": "okx",
28
+ "market_type": "spot",
29
+ "feed": "ORDERBOOK",
30
+ "canonical_trading_pair": "ARB-USDC",
31
+ "provider_exchange_id": "okx_spot",
32
+ "resolved_symbol": "ARB-USDC",
33
+ "construction_modes": ["sampled_top_n_snapshot"],
34
+ "source_policies": ["authoritative_window", "fill_gaps"],
24
35
  "max_depth": 400
25
36
  }
26
37
  ],
27
- "policy_sha256": "51f522286ad24ec55525c19cad5c2c37043f9325a5a8f20d838adb7fd71191bf"
38
+ "policy_sha256": "1dc3f918c6de98d4f65dc1439e16e8c8e0269b5eb9063e3617a52e457fdc24d1"
28
39
  }
@@ -0,0 +1,16 @@
1
+ {
2
+ "policy_id": "market-data-vendor-backfill-resources/v1",
3
+ "limits": {
4
+ "max_files": 10000,
5
+ "max_bytes": 107374182400,
6
+ "max_rows": 1000000000,
7
+ "max_duration_ms": 86400000,
8
+ "max_boundary_lookback_ms": 604800000
9
+ },
10
+ "request_bounds": {
11
+ "max_depth": 500,
12
+ "max_window_ms": 604800000,
13
+ "max_required_events": 100000
14
+ },
15
+ "policy_sha256": "38d4f47cbd15794efed570801556a95f724561a8b45567d518c044da9d454142"
16
+ }
@@ -1,5 +1,5 @@
1
1
  {
2
- "policy_id": "market-data-vendor-backfill-resources/v1",
2
+ "policy_id": "market-data-vendor-backfill-resources/v2",
3
3
  "limits": {
4
4
  "max_files": 10000,
5
5
  "max_bytes": 107374182400,
@@ -9,8 +9,8 @@
9
9
  },
10
10
  "request_bounds": {
11
11
  "max_depth": 500,
12
- "max_window_ms": 604800000,
12
+ "max_window_ms": 2678400000,
13
13
  "max_required_events": 100000
14
14
  },
15
- "policy_sha256": "38d4f47cbd15794efed570801556a95f724561a8b45567d518c044da9d454142"
15
+ "policy_sha256": "5c095c9af4450a0dd110cae04215b9188c6522ab16f4524a41b6122b154160a2"
16
16
  }
@@ -8256,241 +8256,6 @@ var require_src = __commonJS((exports) => {
8256
8256
  };
8257
8257
  });
8258
8258
 
8259
- // node_modules/@loglayer/transport-opentelemetry/node_modules/@opentelemetry/api-logs/build/src/types/LogRecord.js
8260
- var require_LogRecord = __commonJS((exports) => {
8261
- Object.defineProperty(exports, "__esModule", { value: true });
8262
- exports.SeverityNumber = undefined;
8263
- var SeverityNumber;
8264
- (function(SeverityNumber2) {
8265
- SeverityNumber2[SeverityNumber2["UNSPECIFIED"] = 0] = "UNSPECIFIED";
8266
- SeverityNumber2[SeverityNumber2["TRACE"] = 1] = "TRACE";
8267
- SeverityNumber2[SeverityNumber2["TRACE2"] = 2] = "TRACE2";
8268
- SeverityNumber2[SeverityNumber2["TRACE3"] = 3] = "TRACE3";
8269
- SeverityNumber2[SeverityNumber2["TRACE4"] = 4] = "TRACE4";
8270
- SeverityNumber2[SeverityNumber2["DEBUG"] = 5] = "DEBUG";
8271
- SeverityNumber2[SeverityNumber2["DEBUG2"] = 6] = "DEBUG2";
8272
- SeverityNumber2[SeverityNumber2["DEBUG3"] = 7] = "DEBUG3";
8273
- SeverityNumber2[SeverityNumber2["DEBUG4"] = 8] = "DEBUG4";
8274
- SeverityNumber2[SeverityNumber2["INFO"] = 9] = "INFO";
8275
- SeverityNumber2[SeverityNumber2["INFO2"] = 10] = "INFO2";
8276
- SeverityNumber2[SeverityNumber2["INFO3"] = 11] = "INFO3";
8277
- SeverityNumber2[SeverityNumber2["INFO4"] = 12] = "INFO4";
8278
- SeverityNumber2[SeverityNumber2["WARN"] = 13] = "WARN";
8279
- SeverityNumber2[SeverityNumber2["WARN2"] = 14] = "WARN2";
8280
- SeverityNumber2[SeverityNumber2["WARN3"] = 15] = "WARN3";
8281
- SeverityNumber2[SeverityNumber2["WARN4"] = 16] = "WARN4";
8282
- SeverityNumber2[SeverityNumber2["ERROR"] = 17] = "ERROR";
8283
- SeverityNumber2[SeverityNumber2["ERROR2"] = 18] = "ERROR2";
8284
- SeverityNumber2[SeverityNumber2["ERROR3"] = 19] = "ERROR3";
8285
- SeverityNumber2[SeverityNumber2["ERROR4"] = 20] = "ERROR4";
8286
- SeverityNumber2[SeverityNumber2["FATAL"] = 21] = "FATAL";
8287
- SeverityNumber2[SeverityNumber2["FATAL2"] = 22] = "FATAL2";
8288
- SeverityNumber2[SeverityNumber2["FATAL3"] = 23] = "FATAL3";
8289
- SeverityNumber2[SeverityNumber2["FATAL4"] = 24] = "FATAL4";
8290
- })(SeverityNumber = exports.SeverityNumber || (exports.SeverityNumber = {}));
8291
- });
8292
-
8293
- // node_modules/@loglayer/transport-opentelemetry/node_modules/@opentelemetry/api-logs/build/src/NoopLogger.js
8294
- var require_NoopLogger = __commonJS((exports) => {
8295
- Object.defineProperty(exports, "__esModule", { value: true });
8296
- exports.NOOP_LOGGER = exports.NoopLogger = undefined;
8297
-
8298
- class NoopLogger {
8299
- emit(_logRecord) {}
8300
- }
8301
- exports.NoopLogger = NoopLogger;
8302
- exports.NOOP_LOGGER = new NoopLogger;
8303
- });
8304
-
8305
- // node_modules/@loglayer/transport-opentelemetry/node_modules/@opentelemetry/api-logs/build/src/NoopLoggerProvider.js
8306
- var require_NoopLoggerProvider = __commonJS((exports) => {
8307
- Object.defineProperty(exports, "__esModule", { value: true });
8308
- exports.NOOP_LOGGER_PROVIDER = exports.NoopLoggerProvider = undefined;
8309
- var NoopLogger_1 = require_NoopLogger();
8310
-
8311
- class NoopLoggerProvider {
8312
- getLogger(_name, _version, _options) {
8313
- return new NoopLogger_1.NoopLogger;
8314
- }
8315
- }
8316
- exports.NoopLoggerProvider = NoopLoggerProvider;
8317
- exports.NOOP_LOGGER_PROVIDER = new NoopLoggerProvider;
8318
- });
8319
-
8320
- // node_modules/@loglayer/transport-opentelemetry/node_modules/@opentelemetry/api-logs/build/src/ProxyLogger.js
8321
- var require_ProxyLogger = __commonJS((exports) => {
8322
- Object.defineProperty(exports, "__esModule", { value: true });
8323
- exports.ProxyLogger = undefined;
8324
- var NoopLogger_1 = require_NoopLogger();
8325
-
8326
- class ProxyLogger {
8327
- constructor(_provider, name, version2, options) {
8328
- this._provider = _provider;
8329
- this.name = name;
8330
- this.version = version2;
8331
- this.options = options;
8332
- }
8333
- emit(logRecord) {
8334
- this._getLogger().emit(logRecord);
8335
- }
8336
- _getLogger() {
8337
- if (this._delegate) {
8338
- return this._delegate;
8339
- }
8340
- const logger = this._provider._getDelegateLogger(this.name, this.version, this.options);
8341
- if (!logger) {
8342
- return NoopLogger_1.NOOP_LOGGER;
8343
- }
8344
- this._delegate = logger;
8345
- return this._delegate;
8346
- }
8347
- }
8348
- exports.ProxyLogger = ProxyLogger;
8349
- });
8350
-
8351
- // node_modules/@loglayer/transport-opentelemetry/node_modules/@opentelemetry/api-logs/build/src/ProxyLoggerProvider.js
8352
- var require_ProxyLoggerProvider = __commonJS((exports) => {
8353
- Object.defineProperty(exports, "__esModule", { value: true });
8354
- exports.ProxyLoggerProvider = undefined;
8355
- var NoopLoggerProvider_1 = require_NoopLoggerProvider();
8356
- var ProxyLogger_1 = require_ProxyLogger();
8357
-
8358
- class ProxyLoggerProvider {
8359
- getLogger(name, version2, options) {
8360
- var _a2;
8361
- return (_a2 = this._getDelegateLogger(name, version2, options)) !== null && _a2 !== undefined ? _a2 : new ProxyLogger_1.ProxyLogger(this, name, version2, options);
8362
- }
8363
- _getDelegate() {
8364
- var _a2;
8365
- return (_a2 = this._delegate) !== null && _a2 !== undefined ? _a2 : NoopLoggerProvider_1.NOOP_LOGGER_PROVIDER;
8366
- }
8367
- _setDelegate(delegate) {
8368
- this._delegate = delegate;
8369
- }
8370
- _getDelegateLogger(name, version2, options) {
8371
- var _a2;
8372
- return (_a2 = this._delegate) === null || _a2 === undefined ? undefined : _a2.getLogger(name, version2, options);
8373
- }
8374
- }
8375
- exports.ProxyLoggerProvider = ProxyLoggerProvider;
8376
- });
8377
-
8378
- // node_modules/@loglayer/transport-opentelemetry/node_modules/@opentelemetry/api-logs/build/src/platform/node/globalThis.js
8379
- var require_globalThis2 = __commonJS((exports) => {
8380
- Object.defineProperty(exports, "__esModule", { value: true });
8381
- exports._globalThis = undefined;
8382
- exports._globalThis = typeof globalThis === "object" ? globalThis : global;
8383
- });
8384
-
8385
- // node_modules/@loglayer/transport-opentelemetry/node_modules/@opentelemetry/api-logs/build/src/platform/node/index.js
8386
- var require_node2 = __commonJS((exports) => {
8387
- Object.defineProperty(exports, "__esModule", { value: true });
8388
- exports._globalThis = undefined;
8389
- var globalThis_1 = require_globalThis2();
8390
- Object.defineProperty(exports, "_globalThis", { enumerable: true, get: function() {
8391
- return globalThis_1._globalThis;
8392
- } });
8393
- });
8394
-
8395
- // node_modules/@loglayer/transport-opentelemetry/node_modules/@opentelemetry/api-logs/build/src/platform/index.js
8396
- var require_platform2 = __commonJS((exports) => {
8397
- Object.defineProperty(exports, "__esModule", { value: true });
8398
- exports._globalThis = undefined;
8399
- var node_1 = require_node2();
8400
- Object.defineProperty(exports, "_globalThis", { enumerable: true, get: function() {
8401
- return node_1._globalThis;
8402
- } });
8403
- });
8404
-
8405
- // node_modules/@loglayer/transport-opentelemetry/node_modules/@opentelemetry/api-logs/build/src/internal/global-utils.js
8406
- var require_global_utils2 = __commonJS((exports) => {
8407
- Object.defineProperty(exports, "__esModule", { value: true });
8408
- exports.API_BACKWARDS_COMPATIBILITY_VERSION = exports.makeGetter = exports._global = exports.GLOBAL_LOGS_API_KEY = undefined;
8409
- var platform_1 = require_platform2();
8410
- exports.GLOBAL_LOGS_API_KEY = Symbol.for("io.opentelemetry.js.api.logs");
8411
- exports._global = platform_1._globalThis;
8412
- function makeGetter(requiredVersion, instance, fallback) {
8413
- return (version2) => version2 === requiredVersion ? instance : fallback;
8414
- }
8415
- exports.makeGetter = makeGetter;
8416
- exports.API_BACKWARDS_COMPATIBILITY_VERSION = 1;
8417
- });
8418
-
8419
- // node_modules/@loglayer/transport-opentelemetry/node_modules/@opentelemetry/api-logs/build/src/api/logs.js
8420
- var require_logs = __commonJS((exports) => {
8421
- Object.defineProperty(exports, "__esModule", { value: true });
8422
- exports.LogsAPI = undefined;
8423
- var global_utils_1 = require_global_utils2();
8424
- var NoopLoggerProvider_1 = require_NoopLoggerProvider();
8425
- var ProxyLoggerProvider_1 = require_ProxyLoggerProvider();
8426
-
8427
- class LogsAPI {
8428
- constructor() {
8429
- this._proxyLoggerProvider = new ProxyLoggerProvider_1.ProxyLoggerProvider;
8430
- }
8431
- static getInstance() {
8432
- if (!this._instance) {
8433
- this._instance = new LogsAPI;
8434
- }
8435
- return this._instance;
8436
- }
8437
- setGlobalLoggerProvider(provider) {
8438
- if (global_utils_1._global[global_utils_1.GLOBAL_LOGS_API_KEY]) {
8439
- return this.getLoggerProvider();
8440
- }
8441
- global_utils_1._global[global_utils_1.GLOBAL_LOGS_API_KEY] = (0, global_utils_1.makeGetter)(global_utils_1.API_BACKWARDS_COMPATIBILITY_VERSION, provider, NoopLoggerProvider_1.NOOP_LOGGER_PROVIDER);
8442
- this._proxyLoggerProvider._setDelegate(provider);
8443
- return provider;
8444
- }
8445
- getLoggerProvider() {
8446
- var _a2, _b;
8447
- return (_b = (_a2 = global_utils_1._global[global_utils_1.GLOBAL_LOGS_API_KEY]) === null || _a2 === undefined ? undefined : _a2.call(global_utils_1._global, global_utils_1.API_BACKWARDS_COMPATIBILITY_VERSION)) !== null && _b !== undefined ? _b : this._proxyLoggerProvider;
8448
- }
8449
- getLogger(name, version2, options) {
8450
- return this.getLoggerProvider().getLogger(name, version2, options);
8451
- }
8452
- disable() {
8453
- delete global_utils_1._global[global_utils_1.GLOBAL_LOGS_API_KEY];
8454
- this._proxyLoggerProvider = new ProxyLoggerProvider_1.ProxyLoggerProvider;
8455
- }
8456
- }
8457
- exports.LogsAPI = LogsAPI;
8458
- });
8459
-
8460
- // node_modules/@loglayer/transport-opentelemetry/node_modules/@opentelemetry/api-logs/build/src/index.js
8461
- var require_src2 = __commonJS((exports) => {
8462
- Object.defineProperty(exports, "__esModule", { value: true });
8463
- exports.logs = exports.ProxyLoggerProvider = exports.ProxyLogger = exports.NoopLoggerProvider = exports.NOOP_LOGGER_PROVIDER = exports.NoopLogger = exports.NOOP_LOGGER = exports.SeverityNumber = undefined;
8464
- var LogRecord_1 = require_LogRecord();
8465
- Object.defineProperty(exports, "SeverityNumber", { enumerable: true, get: function() {
8466
- return LogRecord_1.SeverityNumber;
8467
- } });
8468
- var NoopLogger_1 = require_NoopLogger();
8469
- Object.defineProperty(exports, "NOOP_LOGGER", { enumerable: true, get: function() {
8470
- return NoopLogger_1.NOOP_LOGGER;
8471
- } });
8472
- Object.defineProperty(exports, "NoopLogger", { enumerable: true, get: function() {
8473
- return NoopLogger_1.NoopLogger;
8474
- } });
8475
- var NoopLoggerProvider_1 = require_NoopLoggerProvider();
8476
- Object.defineProperty(exports, "NOOP_LOGGER_PROVIDER", { enumerable: true, get: function() {
8477
- return NoopLoggerProvider_1.NOOP_LOGGER_PROVIDER;
8478
- } });
8479
- Object.defineProperty(exports, "NoopLoggerProvider", { enumerable: true, get: function() {
8480
- return NoopLoggerProvider_1.NoopLoggerProvider;
8481
- } });
8482
- var ProxyLogger_1 = require_ProxyLogger();
8483
- Object.defineProperty(exports, "ProxyLogger", { enumerable: true, get: function() {
8484
- return ProxyLogger_1.ProxyLogger;
8485
- } });
8486
- var ProxyLoggerProvider_1 = require_ProxyLoggerProvider();
8487
- Object.defineProperty(exports, "ProxyLoggerProvider", { enumerable: true, get: function() {
8488
- return ProxyLoggerProvider_1.ProxyLoggerProvider;
8489
- } });
8490
- var logs_1 = require_logs();
8491
- exports.logs = logs_1.LogsAPI.getInstance();
8492
- });
8493
-
8494
8259
  // src/helpers/market-data-preparation/contracts.ts
8495
8260
  var import__20202 = __toESM(require_2020(), 1);
8496
8261
 
@@ -22248,102 +22013,6 @@ var BaseTransport = class {
22248
22013
  return this.logger;
22249
22014
  }
22250
22015
  };
22251
- var LoggerlessTransport = class {
22252
- id;
22253
- enabled;
22254
- level;
22255
- consoleDebug;
22256
- constructor(config2) {
22257
- this.id = Date.now().toString() + Math.random().toString();
22258
- this.enabled = config2.enabled ?? true;
22259
- this.consoleDebug = config2.consoleDebug ?? false;
22260
- this.level = config2.level ?? "trace";
22261
- }
22262
- _sendToLogger(params) {
22263
- if (!this.enabled)
22264
- return;
22265
- if (LogLevelPriority[params.logLevel] < LogLevelPriority[this.level])
22266
- return;
22267
- const messages = this.shipToLogger(params);
22268
- if (this.consoleDebug)
22269
- switch (params.logLevel) {
22270
- case LogLevel.info:
22271
- console.info(...messages);
22272
- break;
22273
- case LogLevel.warn:
22274
- console.warn(...messages);
22275
- break;
22276
- case LogLevel.error:
22277
- console.error(...messages);
22278
- break;
22279
- case LogLevel.trace:
22280
- console.debug(...messages);
22281
- break;
22282
- case LogLevel.debug:
22283
- console.debug(...messages);
22284
- break;
22285
- case LogLevel.fatal:
22286
- console.debug(...messages);
22287
- break;
22288
- default:
22289
- console.log(...messages);
22290
- }
22291
- }
22292
- getLoggerInstance() {
22293
- throw new Error("This transport does not have a logger instance");
22294
- }
22295
- };
22296
-
22297
- // node_modules/@loglayer/transport-opentelemetry/dist/index.mjs
22298
- var import_api_logs = __toESM(require_src2(), 1);
22299
- var logLayerLevels = {
22300
- fatal: import_api_logs.SeverityNumber.FATAL,
22301
- error: import_api_logs.SeverityNumber.ERROR,
22302
- warn: import_api_logs.SeverityNumber.WARN,
22303
- info: import_api_logs.SeverityNumber.INFO,
22304
- debug: import_api_logs.SeverityNumber.DEBUG,
22305
- trace: import_api_logs.SeverityNumber.TRACE
22306
- };
22307
- function getSeverityNumber(level) {
22308
- return logLayerLevels[level] ?? import_api_logs.SeverityNumber.TRACE;
22309
- }
22310
- function emitLogRecord(record2, logger) {
22311
- const { message, level, ...splat } = record2;
22312
- const attributes = {};
22313
- for (const key in splat)
22314
- if (Object.hasOwn(splat, key))
22315
- attributes[key] = splat[key];
22316
- const logRecord = {
22317
- severityNumber: getSeverityNumber(level),
22318
- severityText: level,
22319
- body: message,
22320
- attributes
22321
- };
22322
- logger.emit(logRecord);
22323
- }
22324
- var OpenTelemetryTransport = class extends LoggerlessTransport {
22325
- _logger;
22326
- onError;
22327
- constructor(config2 = {}) {
22328
- super(config2);
22329
- this._logger = import_api_logs.logs.getLogger("loglayer");
22330
- this.onError = config2.onError;
22331
- }
22332
- shipToLogger({ logLevel, messages, data, hasData }) {
22333
- const assembled = {
22334
- level: logLevel,
22335
- message: messages.join(" "),
22336
- ...hasData ? data : {}
22337
- };
22338
- try {
22339
- emitLogRecord(assembled, this._logger);
22340
- } catch (error48) {
22341
- if (this.onError)
22342
- this.onError(error48);
22343
- }
22344
- return [assembled];
22345
- }
22346
- };
22347
22016
 
22348
22017
  // node_modules/@loglayer/transport-tslog/dist/index.js
22349
22018
  var TsLogTransport = class extends BaseTransport {
@@ -24515,13 +24184,7 @@ var tslogLogger = new Logger({
24515
24184
  minLevel: process.env.LOG_LEVEL === "debug" ? 0 : 3
24516
24185
  });
24517
24186
  var baseLogger = new LogLayer({
24518
- transport: [
24519
- new TsLogTransport({ id: "tslog", logger: tslogLogger }),
24520
- new OpenTelemetryTransport({
24521
- id: "otel",
24522
- enabled: true
24523
- })
24524
- ],
24187
+ transport: [new TsLogTransport({ id: "tslog", logger: tslogLogger })],
24525
24188
  plugins: [openTelemetryPlugin()],
24526
24189
  errorSerializer: serializeError
24527
24190
  });
@@ -25554,12 +25217,14 @@ var result_schema_default = {
25554
25217
  };
25555
25218
 
25556
25219
  // src/helpers/market-data-vendor-backfill/manifests.ts
25557
- var CAPABILITY_POLICY_ID = "market-data-vendor-backfill-capabilities/v1";
25558
- var RESOURCE_POLICY_ID = "market-data-vendor-backfill-resources/v1";
25220
+ var LEGACY_CAPABILITY_POLICY_ID = "market-data-vendor-backfill-capabilities/v1";
25221
+ var CAPABILITY_POLICY_ID = "market-data-vendor-backfill-capabilities/v2";
25222
+ var LEGACY_RESOURCE_POLICY_ID = "market-data-vendor-backfill-resources/v1";
25223
+ var RESOURCE_POLICY_ID = "market-data-vendor-backfill-resources/v2";
25559
25224
  var ADAPTER_POLICY_ID = "cryptohftdata-orderbook-adapter/v1";
25560
25225
  var ACQUISITION_POLICY_ID = "cryptohftdata-hourly-acquisition/v1";
25561
- var capabilityPolicyContent = {
25562
- policy_id: CAPABILITY_POLICY_ID,
25226
+ var legacyCapabilityPolicyContent = {
25227
+ policy_id: LEGACY_CAPABILITY_POLICY_ID,
25563
25228
  provider: "cryptohftdata",
25564
25229
  adapter_policy: {
25565
25230
  policy_id: ADAPTER_POLICY_ID,
@@ -25585,12 +25250,37 @@ var capabilityPolicyContent = {
25585
25250
  }
25586
25251
  ]
25587
25252
  };
25253
+ var LEGACY_CAPABILITY_POLICY = Object.freeze({
25254
+ ...legacyCapabilityPolicyContent,
25255
+ policy_sha256: jcsSha256(legacyCapabilityPolicyContent)
25256
+ });
25257
+ var capabilityPolicyContent = {
25258
+ ...legacyCapabilityPolicyContent,
25259
+ policy_id: CAPABILITY_POLICY_ID,
25260
+ profiles: [
25261
+ ...legacyCapabilityPolicyContent.profiles.map((profile) => ({
25262
+ ...profile,
25263
+ source_policies: ["authoritative_window", "fill_gaps"]
25264
+ })),
25265
+ {
25266
+ exchange: "okx",
25267
+ market_type: "spot",
25268
+ feed: "ORDERBOOK",
25269
+ canonical_trading_pair: "ARB-USDC",
25270
+ provider_exchange_id: "okx_spot",
25271
+ resolved_symbol: "ARB-USDC",
25272
+ construction_modes: ["sampled_top_n_snapshot"],
25273
+ source_policies: ["authoritative_window", "fill_gaps"],
25274
+ max_depth: 400
25275
+ }
25276
+ ]
25277
+ };
25588
25278
  var CAPABILITY_POLICY = Object.freeze({
25589
25279
  ...capabilityPolicyContent,
25590
25280
  policy_sha256: jcsSha256(capabilityPolicyContent)
25591
25281
  });
25592
- var resourcePolicyContent = {
25593
- policy_id: RESOURCE_POLICY_ID,
25282
+ var legacyResourcePolicyContent = {
25283
+ policy_id: LEGACY_RESOURCE_POLICY_ID,
25594
25284
  limits: {
25595
25285
  max_files: 1e4,
25596
25286
  max_bytes: 100 * 1024 * 1024 * 1024,
@@ -25604,17 +25294,29 @@ var resourcePolicyContent = {
25604
25294
  max_required_events: 1e5
25605
25295
  }
25606
25296
  };
25297
+ var LEGACY_RESOURCE_POLICY = Object.freeze({
25298
+ ...legacyResourcePolicyContent,
25299
+ policy_sha256: jcsSha256(legacyResourcePolicyContent)
25300
+ });
25301
+ var resourcePolicyContent = {
25302
+ ...legacyResourcePolicyContent,
25303
+ policy_id: RESOURCE_POLICY_ID,
25304
+ request_bounds: {
25305
+ ...legacyResourcePolicyContent.request_bounds,
25306
+ max_window_ms: 31 * 24 * 60 * 60 * 1000
25307
+ }
25308
+ };
25607
25309
  var RESOURCE_POLICY = Object.freeze({
25608
25310
  ...resourcePolicyContent,
25609
25311
  policy_sha256: jcsSha256(resourcePolicyContent)
25610
25312
  });
25611
25313
  var EFFECTIVE_ADAPTER_POLICY_PIN = Object.freeze({
25612
25314
  policy_id: ADAPTER_POLICY_ID,
25613
- policy_sha256: jcsSha256(capabilityPolicyContent.adapter_policy)
25315
+ policy_sha256: jcsSha256(legacyCapabilityPolicyContent.adapter_policy)
25614
25316
  });
25615
25317
  var EFFECTIVE_ACQUISITION_POLICY_PIN = Object.freeze({
25616
25318
  policy_id: ACQUISITION_POLICY_ID,
25617
- policy_sha256: jcsSha256(capabilityPolicyContent.acquisition_policy)
25319
+ policy_sha256: jcsSha256(legacyCapabilityPolicyContent.acquisition_policy)
25618
25320
  });
25619
25321
  var schemaArtifacts = [
25620
25322
  ["schemas/request.schema.json", request_schema_default],
@@ -26754,6 +26456,9 @@ function assertSelectionLinks(selection) {
26754
26456
  throw new ExactOrderBookExportError("selection_bundle_identity_duplicate");
26755
26457
  }
26756
26458
  const requested = selection.requested_intervals.map((interval, index) => intervalMs(interval, `requested_interval_${index}`));
26459
+ if (selection.source_policy === "authoritative_window" && new Set(selection.selected_intervals.map((selected) => selected.capture_origin)).size > 1) {
26460
+ throw new ExactOrderBookExportError("authoritative_selection_mixes_capture_origins");
26461
+ }
26757
26462
  return selection.selected_intervals.map((selected, index) => {
26758
26463
  const selectedMs = intervalMs(selected, `selected_interval_${index}`);
26759
26464
  const bundle = bundleById.get(selected.capture_bundle_id);
@@ -26766,9 +26471,6 @@ function assertSelectionLinks(selection) {
26766
26471
  if (!requested.some((interval) => contains(interval, selectedMs))) {
26767
26472
  throw new ExactOrderBookExportError("selected_interval_outside_request");
26768
26473
  }
26769
- if (selection.source_policy === "authoritative_window" && selected.capture_origin !== "vendor_historical_backfill") {
26770
- throw new ExactOrderBookExportError("authoritative_selection_not_vendor");
26771
- }
26772
26474
  if (selected.capture_origin === "vendor_historical_backfill") {
26773
26475
  const qualification = bundle.qualification;
26774
26476
  if (qualification?.state !== "qualified" || !selection.receipt_ids.includes(qualification.receipt_id) || !selection.qualification_event_ids.includes(qualification.qualification_event_id)) {
@@ -27259,12 +26961,12 @@ var requestContent = {
27259
26961
  },
27260
26962
  product_pins: {
27261
26963
  capability_policy: {
27262
- policy_id: CAPABILITY_POLICY.policy_id,
27263
- policy_sha256: CAPABILITY_POLICY.policy_sha256
26964
+ policy_id: LEGACY_CAPABILITY_POLICY.policy_id,
26965
+ policy_sha256: LEGACY_CAPABILITY_POLICY.policy_sha256
27264
26966
  },
27265
26967
  resource_policy: {
27266
- policy_id: RESOURCE_POLICY.policy_id,
27267
- policy_sha256: RESOURCE_POLICY.policy_sha256
26968
+ policy_id: LEGACY_RESOURCE_POLICY.policy_id,
26969
+ policy_sha256: LEGACY_RESOURCE_POLICY.policy_sha256
27268
26970
  }
27269
26971
  },
27270
26972
  production_authorization_id: authorizationId
@@ -27413,8 +27115,8 @@ var CONFORMANCE_FIXTURES = Object.freeze({
27413
27115
  promotion_identity_sha256: promotionReceipt.promotion_identity_sha256,
27414
27116
  receipt_id: promotionReceipt.receipt_id,
27415
27117
  result_sha256: result.result_sha256,
27416
- capability_policy_sha256: CAPABILITY_POLICY.policy_sha256,
27417
- resource_policy_sha256: RESOURCE_POLICY.policy_sha256
27118
+ capability_policy_sha256: LEGACY_CAPABILITY_POLICY.policy_sha256,
27119
+ resource_policy_sha256: LEGACY_RESOURCE_POLICY.policy_sha256
27418
27120
  },
27419
27121
  jcs_edge_vector: jcsEdgeVector,
27420
27122
  hashes: { jcs_edge_vector_sha256: jcsSha256(jcsEdgeVector) }
@@ -27490,7 +27192,10 @@ var backfillResult = finalizeBackfillResultV2({
27490
27192
  schema_manifest_sha256: PREPARATION_SCHEMA_MANIFEST_V2.manifest_sha256,
27491
27193
  producer: backfillProducer,
27492
27194
  capability_policy: legacyResult.capability_policy,
27493
- resource_policy: legacyResult.resource_policy,
27195
+ resource_policy: {
27196
+ policy_id: RESOURCE_POLICY.policy_id,
27197
+ policy_sha256: RESOURCE_POLICY.policy_sha256
27198
+ },
27494
27199
  started_at: legacyResult.started_at,
27495
27200
  completed_at: legacyResult.completed_at,
27496
27201
  outcome: legacyResult.outcome
@@ -27525,8 +27230,14 @@ var productPin = preparationProductPinCodec.decode({
27525
27230
  relative_path: "dist/market-data-preparation/schema-manifest.json"
27526
27231
  },
27527
27232
  schema_pins: PREPARATION_SCHEMA_ARTIFACTS.map(({ schema_id, schema_sha256 }) => ({ schema_id, schema_sha256 })),
27528
- capability_policy: legacyResult.capability_policy,
27529
- resource_policy: legacyResult.resource_policy
27233
+ capability_policy: {
27234
+ policy_id: CAPABILITY_POLICY.policy_id,
27235
+ policy_sha256: CAPABILITY_POLICY.policy_sha256
27236
+ },
27237
+ resource_policy: {
27238
+ policy_id: RESOURCE_POLICY.policy_id,
27239
+ policy_sha256: RESOURCE_POLICY.policy_sha256
27240
+ }
27530
27241
  });
27531
27242
  var PREPARATION_CONFORMANCE_FIXTURES = Object.freeze({
27532
27243
  fixture_id: "cex-market-data-preparation-conformance/v2",
@@ -27566,4 +27277,4 @@ export {
27566
27277
  BACKFILL_RESULT_V2_SCHEMA_ID
27567
27278
  };
27568
27279
 
27569
- //# debugId=3C3E74767873186464756E2164756E21
27280
+ //# debugId=ADB22A3D53607DAD64756E2164756E21