@ar.io/wayfinder-core 1.5.0 → 1.6.1-alpha.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -228,6 +228,7 @@ Wayfinder supports multiple routing strategies to select target gateways for you
228
228
  | `RoundRobinRoutingStrategy` | Selects gateways in round-robin order | Good for load balancing and resilience |
229
229
  | `FastestPingRoutingStrategy` | Selects the fastest gateway based on ping time | Good for performance and latency |
230
230
  | `PreferredWithFallbackRoutingStrategy` | Uses a preferred gateway, with a fallback strategy if the preferred gateway is not available | Good for performance and resilience. Ideal for builders who run their own gateways. |
231
+ | `CompositeRoutingStrategy` | Chains multiple routing strategies together, trying each sequentially until one succeeds | Good for complex fallback scenarios and maximum resilience |
231
232
 
232
233
  ### RandomRoutingStrategy
233
234
 
@@ -335,6 +336,9 @@ const gateway3 = await routingStrategy2.selectGateway({
335
336
 
336
337
  Uses a preferred gateway, with a fallback strategy if the preferred gateway is not available. This is useful for builders who run their own gateways and want to use their own gateway as the preferred gateway, but also want to have a fallback strategy in case their gateway is not available.
337
338
 
339
+ > [!INFO]
340
+ > This strategy is built using `CompositeRoutingStrategy` internally. It first attempts to ping the preferred gateway (using `PingRoutingStrategy` with `StaticRoutingStrategy`), and if that fails, it falls back to the specified fallback strategy.
341
+
338
342
  ```javascript
339
343
  import { PreferredWithFallbackRoutingStrategy, FastestPingRoutingStrategy } from '@ar.io/wayfinder-core';
340
344
 
@@ -346,6 +350,62 @@ const routingStrategy = new PreferredWithFallbackRoutingStrategy({
346
350
  });
347
351
  ```
348
352
 
353
+ ### CompositeRoutingStrategy
354
+
355
+ Chains multiple routing strategies together, trying each sequentially until one succeeds. This strategy provides maximum resilience by allowing complex fallback scenarios where you can combine different routing approaches.
356
+
357
+ ```javascript
358
+ import {
359
+ CompositeRoutingStrategy,
360
+ FastestPingRoutingStrategy,
361
+ RandomRoutingStrategy,
362
+ StaticRoutingStrategy,
363
+ NetworkGatewaysProvider
364
+ } from '@ar.io/wayfinder-core';
365
+ import { ARIO } from '@ar.io/sdk';
366
+
367
+ // Example 1: Try fastest ping first, fallback to random selection
368
+ const strategy = new CompositeRoutingStrategy({
369
+ strategies: [
370
+ new FastestPingRoutingStrategy({
371
+ timeoutMs: 500,
372
+ gatewaysProvider: new NetworkGatewaysProvider({
373
+ ario: ARIO.mainnet(),
374
+ sortBy: 'operatorStake',
375
+ limit: 10,
376
+ }),
377
+ }),
378
+ new RandomRoutingStrategy(), // fallback if ping strategy fails
379
+ ],
380
+ });
381
+
382
+ // Example 2: Try preferred gateway, then fastest ping, then any random gateway
383
+ const complexStrategy = new CompositeRoutingStrategy({
384
+ strategies: [
385
+ new StaticRoutingStrategy({ gateway: 'https://my-preferred-gateway.com' }),
386
+ new FastestPingRoutingStrategy({ timeoutMs: 1000 }),
387
+ new RandomRoutingStrategy(), // final fallback
388
+ ],
389
+ });
390
+
391
+ const gateway = await strategy.selectGateway({
392
+ gateways: [new URL('https://gateway1.com'), new URL('https://gateway2.com')],
393
+ });
394
+ ```
395
+
396
+ **How it works:**
397
+ 1. The composite strategy tries each routing strategy in order
398
+ 2. If a strategy successfully returns a gateway, that gateway is used
399
+ 3. If a strategy throws an error, the next strategy is tried
400
+ 4. If all strategies fail, an error is thrown
401
+ 5. The first successful strategy short-circuits the process (remaining strategies are not tried)
402
+
403
+ **Common Use Cases:**
404
+ - **Performance + Resilience**: Try fastest ping first, fallback to random if ping fails
405
+ - **Preferred + Network**: Use your own gateway first, fallback to AR.IO network selection
406
+ - **Multi-tier Fallback**: Try premium gateways, then standard gateways, then any available gateway
407
+ - **Development + Production**: Use local gateway in development, fallback to production gateways
408
+
349
409
  ### Strategy Composition Examples
350
410
 
351
411
  Here are a few “lego-style” examples showing how existing routing strategies can
@@ -486,6 +546,42 @@ const cachedStrategy = new SimpleCacheRoutingStrategy({
486
546
  });
487
547
  ```
488
548
 
549
+ #### Complex multi-strategy fallback with CompositeRoutingStrategy
550
+
551
+ Chain multiple strategies together for maximum resilience - try fastest ping first, then fall back to random selection if ping fails.
552
+
553
+ ```ts
554
+ import {
555
+ CompositeRoutingStrategy,
556
+ FastestPingRoutingStrategy,
557
+ RandomRoutingStrategy,
558
+ NetworkGatewaysProvider,
559
+ } from "@ar.io/wayfinder-core";
560
+ import { ARIO } from '@ar.io/sdk';
561
+
562
+ // Define gateway provider for both strategies
563
+ const gatewayProvider = new NetworkGatewaysProvider({
564
+ ario: ARIO.mainnet(),
565
+ sortBy: 'operatorStake',
566
+ limit: 15,
567
+ });
568
+
569
+ // Create a composite strategy that tries fastest ping first, then random
570
+ const strategy = new CompositeRoutingStrategy({
571
+ strategies: [
572
+ // Try fastest ping first (high performance, but may fail if all gateways are slow)
573
+ new FastestPingRoutingStrategy({
574
+ timeoutMs: 500,
575
+ gatewaysProvider: gatewayProvider,
576
+ }),
577
+ // Fallback to random selection (guaranteed to work if gateways exist)
578
+ new RandomRoutingStrategy({
579
+ gatewaysProvider: gatewayProvider,
580
+ }),
581
+ ],
582
+ });
583
+ ```
584
+
489
585
  In all cases, you can supply the composed strategy to `Wayfinder` (or whatever
490
586
  router factory you use) and pass in a gateways provider:
491
587
 
package/dist/index.d.ts CHANGED
@@ -21,6 +21,7 @@ export * from './routing/ping.js';
21
21
  export * from './routing/round-robin.js';
22
22
  export * from './routing/preferred-with-fallback.js';
23
23
  export * from './routing/simple-cache.js';
24
+ export * from './routing/composite.js';
24
25
  export * from './gateways/network.js';
25
26
  export * from './gateways/simple-cache.js';
26
27
  export * from './gateways/static.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAGH,cAAc,YAAY,CAAC;AAG3B,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC;AACpC,cAAc,mBAAmB,CAAC;AAClC,cAAc,0BAA0B,CAAC;AACzC,cAAc,sCAAsC,CAAC;AACrD,cAAc,2BAA2B,CAAC;AAG1C,cAAc,uBAAuB,CAAC;AACtC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,sBAAsB,CAAC;AACrC,cAAc,mCAAmC,CAAC;AAGlD,cAAc,0CAA0C,CAAC;AACzD,cAAc,qCAAqC,CAAC;AACpD,cAAc,0CAA0C,CAAC;AACzD,cAAc,uCAAuC,CAAC;AAGtD,cAAc,cAAc,CAAC;AAG7B,cAAc,gBAAgB,CAAC;AAG/B,cAAc,aAAa,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAGH,cAAc,YAAY,CAAC;AAG3B,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC;AACpC,cAAc,mBAAmB,CAAC;AAClC,cAAc,0BAA0B,CAAC;AACzC,cAAc,sCAAsC,CAAC;AACrD,cAAc,2BAA2B,CAAC;AAC1C,cAAc,wBAAwB,CAAC;AAGvC,cAAc,uBAAuB,CAAC;AACtC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,sBAAsB,CAAC;AACrC,cAAc,mCAAmC,CAAC;AAGlD,cAAc,0CAA0C,CAAC;AACzD,cAAc,qCAAqC,CAAC;AACpD,cAAc,0CAA0C,CAAC;AACzD,cAAc,uCAAuC,CAAC;AAGtD,cAAc,cAAc,CAAC;AAG7B,cAAc,gBAAgB,CAAC;AAG/B,cAAc,aAAa,CAAC"}
package/dist/index.js CHANGED
@@ -23,6 +23,7 @@ export * from './routing/ping.js';
23
23
  export * from './routing/round-robin.js';
24
24
  export * from './routing/preferred-with-fallback.js';
25
25
  export * from './routing/simple-cache.js';
26
+ export * from './routing/composite.js';
26
27
  // gateways providers
27
28
  export * from './gateways/network.js';
28
29
  export * from './gateways/simple-cache.js';
@@ -0,0 +1,18 @@
1
+ import type { Logger, RoutingStrategy } from '../types.js';
2
+ export declare class CompositeRoutingStrategy implements RoutingStrategy {
3
+ readonly name = "composite";
4
+ private strategies;
5
+ private logger;
6
+ constructor({ strategies, logger, }?: {
7
+ strategies?: RoutingStrategy[];
8
+ logger?: Logger;
9
+ });
10
+ selectGateway(params: {
11
+ gateways?: URL[];
12
+ path?: string;
13
+ subdomain?: string;
14
+ }): Promise<URL>;
15
+ addStrategy(strategy: RoutingStrategy): void;
16
+ getStrategies(): RoutingStrategy[];
17
+ }
18
+ //# sourceMappingURL=composite.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"composite.d.ts","sourceRoot":"","sources":["../../src/routing/composite.ts"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAE3D,qBAAa,wBAAyB,YAAW,eAAe;IAC9D,SAAgB,IAAI,eAAe;IACnC,OAAO,CAAC,UAAU,CAAoB;IACtC,OAAO,CAAC,MAAM,CAAS;gBAEX,EACV,UAAe,EACf,MAAsB,GACvB,GAAE;QACD,UAAU,CAAC,EAAE,eAAe,EAAE,CAAC;QAC/B,MAAM,CAAC,EAAE,MAAM,CAAC;KACZ;IAQA,aAAa,CAAC,MAAM,EAAE;QAC1B,QAAQ,CAAC,EAAE,GAAG,EAAE,CAAC;QACjB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,GAAG,OAAO,CAAC,GAAG,CAAC;IAyBhB,WAAW,CAAC,QAAQ,EAAE,eAAe,GAAG,IAAI;IAI5C,aAAa,IAAI,eAAe,EAAE;CAGnC"}
@@ -0,0 +1,58 @@
1
+ /**
2
+ * WayFinder
3
+ * Copyright (C) 2022-2025 Permanent Data Solutions, Inc.
4
+ *
5
+ * Licensed under the Apache License, Version 2.0 (the "License");
6
+ * you may not use this file except in compliance with the License.
7
+ * You may obtain a copy of the License at
8
+ *
9
+ * http://www.apache.org/licenses/LICENSE-2.0
10
+ *
11
+ * Unless required by applicable law or agreed to in writing, software
12
+ * distributed under the License is distributed on an "AS IS" BASIS,
13
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ * See the License for the specific language governing permissions and
15
+ * limitations under the License.
16
+ */
17
+ import { defaultLogger } from '../logger.js';
18
+ export class CompositeRoutingStrategy {
19
+ name = 'composite';
20
+ strategies;
21
+ logger;
22
+ constructor({ strategies = [], logger = defaultLogger, } = {}) {
23
+ if (strategies.length === 0) {
24
+ throw new Error('At least one routing strategy must be provided');
25
+ }
26
+ this.strategies = strategies;
27
+ this.logger = logger;
28
+ }
29
+ async selectGateway(params) {
30
+ this.logger.debug('CompositeRoutingStrategy: starting gateway selection', {
31
+ strategiesCount: this.strategies.length,
32
+ gateways: params.gateways?.map((g) => g.toString()),
33
+ });
34
+ for (const strategy of this.strategies) {
35
+ try {
36
+ this.logger.debug(`CompositeRoutingStrategy: trying strategy`);
37
+ const gateway = await strategy.selectGateway(params);
38
+ this.logger.debug(`CompositeRoutingStrategy: strategy succeeded`, {
39
+ selectedGateway: gateway.toString(),
40
+ });
41
+ return gateway;
42
+ }
43
+ catch (error) {
44
+ this.logger.debug(`CompositeRoutingStrategy: strategy failed`, {
45
+ error: error instanceof Error ? error.message : String(error),
46
+ });
47
+ }
48
+ }
49
+ this.logger.error('CompositeRoutingStrategy: all strategies failed');
50
+ throw new Error('All routing strategies failed to select a gateway');
51
+ }
52
+ addStrategy(strategy) {
53
+ this.strategies.push(strategy);
54
+ }
55
+ getStrategies() {
56
+ return [...this.strategies];
57
+ }
58
+ }
@@ -19,13 +19,13 @@ export declare class PreferredWithFallbackRoutingStrategy implements RoutingStra
19
19
  readonly name = "preferred-with-fallback";
20
20
  readonly preferredGateway: URL;
21
21
  readonly fallbackStrategy: RoutingStrategy;
22
- private logger;
22
+ private compositeStrategy;
23
23
  constructor({ preferredGateway, fallbackStrategy, logger, }: {
24
24
  preferredGateway: string;
25
25
  fallbackStrategy?: RoutingStrategy;
26
26
  logger?: Logger;
27
27
  });
28
- selectGateway({ gateways, path, subdomain, }: {
28
+ selectGateway({ gateways, path, subdomain, }?: {
29
29
  gateways?: URL[];
30
30
  path?: string;
31
31
  subdomain?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"preferred-with-fallback.d.ts","sourceRoot":"","sources":["../../src/routing/preferred-with-fallback.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAGH,OAAO,KAAK,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAG3D,qBAAa,oCAAqC,YAAW,eAAe;IAC1E,SAAgB,IAAI,6BAA6B;IACjD,SAAgB,gBAAgB,EAAE,GAAG,CAAC;IACtC,SAAgB,gBAAgB,EAAE,eAAe,CAAC;IAClD,OAAO,CAAC,MAAM,CAAS;gBAEX,EACV,gBAAgB,EAChB,gBAAmD,EACnD,MAAsB,GACvB,EAAE;QACD,gBAAgB,EAAE,MAAM,CAAC;QACzB,gBAAgB,CAAC,EAAE,eAAe,CAAC;QACnC,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB;IAMK,aAAa,CAAC,EAClB,QAAQ,EACR,IAAS,EACT,SAAS,GACV,EAAE;QACD,QAAQ,CAAC,EAAE,GAAG,EAAE,CAAC;QACjB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,GAAG,OAAO,CAAC,GAAG,CAAC;CA6CjB"}
1
+ {"version":3,"file":"preferred-with-fallback.d.ts","sourceRoot":"","sources":["../../src/routing/preferred-with-fallback.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAGH,OAAO,KAAK,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAM3D,qBAAa,oCAAqC,YAAW,eAAe;IAC1E,SAAgB,IAAI,6BAA6B;IACjD,SAAgB,gBAAgB,EAAE,GAAG,CAAC;IACtC,SAAgB,gBAAgB,EAAE,eAAe,CAAC;IAClD,OAAO,CAAC,iBAAiB,CAA2B;gBAExC,EACV,gBAAgB,EAChB,gBAAmD,EACnD,MAAsB,GACvB,EAAE;QACD,gBAAgB,EAAE,MAAM,CAAC;QACzB,gBAAgB,CAAC,EAAE,eAAe,CAAC;QACnC,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB;IAsBK,aAAa,CAAC,EAClB,QAAQ,EACR,IAAI,EACJ,SAAS,GACV,GAAE;QACD,QAAQ,CAAC,EAAE,GAAG,EAAE,CAAC;QACjB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,SAAS,CAAC,EAAE,MAAM,CAAC;KACf,GAAG,OAAO,CAAC,GAAG,CAAC;CAOtB"}
@@ -15,52 +15,40 @@
15
15
  * limitations under the License.
16
16
  */
17
17
  import { defaultLogger } from '../logger.js';
18
+ import { CompositeRoutingStrategy } from './composite.js';
18
19
  import { FastestPingRoutingStrategy } from './ping.js';
20
+ import { PingRoutingStrategy } from './ping.js';
21
+ import { StaticRoutingStrategy } from './static.js';
19
22
  export class PreferredWithFallbackRoutingStrategy {
20
23
  name = 'preferred-with-fallback';
21
24
  preferredGateway;
22
25
  fallbackStrategy;
23
- logger;
26
+ compositeStrategy;
24
27
  constructor({ preferredGateway, fallbackStrategy = new FastestPingRoutingStrategy(), logger = defaultLogger, }) {
25
- this.logger = logger;
26
28
  this.fallbackStrategy = fallbackStrategy;
27
29
  this.preferredGateway = new URL(preferredGateway);
30
+ // create a composite strategy that tries the preferred gateway first, then falls back
31
+ this.compositeStrategy = new CompositeRoutingStrategy({
32
+ strategies: [
33
+ new PingRoutingStrategy({
34
+ routingStrategy: new StaticRoutingStrategy({
35
+ gateway: preferredGateway,
36
+ logger,
37
+ }),
38
+ retries: 1,
39
+ timeoutMs: 1000,
40
+ logger,
41
+ }),
42
+ fallbackStrategy,
43
+ ],
44
+ logger,
45
+ });
28
46
  }
29
- async selectGateway({ gateways, path = '', subdomain, }) {
30
- this.logger.debug('Attempting to connect to preferred gateway', {
31
- preferredGateway: this.preferredGateway.toString(),
47
+ async selectGateway({ gateways, path, subdomain, } = {}) {
48
+ return this.compositeStrategy.selectGateway({
49
+ gateways,
50
+ path,
51
+ subdomain,
32
52
  });
33
- try {
34
- // Check if the preferred gateway is responsive
35
- const url = new URL(this.preferredGateway.toString());
36
- if (subdomain) {
37
- url.hostname = `${subdomain}.${url.hostname}`;
38
- }
39
- const probeUrl = path ? new URL(path.replace(/^\//, ''), url) : url;
40
- const response = await fetch(probeUrl.toString(), {
41
- method: 'HEAD',
42
- signal: AbortSignal.timeout(1000),
43
- });
44
- if (response.ok) {
45
- this.logger.debug('Successfully connected to preferred gateway', {
46
- preferredGateway: this.preferredGateway.toString(),
47
- });
48
- return this.preferredGateway;
49
- }
50
- throw new Error(`Preferred gateway responded with status: ${response.status}`);
51
- }
52
- catch (error) {
53
- this.logger.warn('Failed to connect to preferred gateway, falling back to alternative strategy', {
54
- preferredGateway: this.preferredGateway.toString(),
55
- error: error instanceof Error ? error.message : String(error),
56
- fallbackStrategy: this.fallbackStrategy.constructor.name,
57
- });
58
- // Fall back to the provided routing strategy
59
- return this.fallbackStrategy.selectGateway({
60
- gateways,
61
- path,
62
- subdomain,
63
- });
64
- }
65
53
  }
66
54
  }
@@ -1,5 +1,6 @@
1
1
  import type { GatewaysProvider, Logger, RoutingStrategy } from '../types.js';
2
2
  export declare class RandomRoutingStrategy implements RoutingStrategy {
3
+ readonly name = "random";
3
4
  private gatewaysProvider?;
4
5
  private logger;
5
6
  constructor({ gatewaysProvider, logger, }?: {
@@ -1 +1 @@
1
- {"version":3,"file":"random.d.ts","sourceRoot":"","sources":["../../src/routing/random.ts"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAG7E,qBAAa,qBAAsB,YAAW,eAAe;IAC3D,OAAO,CAAC,gBAAgB,CAAC,CAAmB;IAC5C,OAAO,CAAC,MAAM,CAAS;gBAEX,EACV,gBAAgB,EAChB,MAAsB,GACvB,GAAE;QACD,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;QACpC,MAAM,CAAC,EAAE,MAAM,CAAC;KACZ;IAKA,aAAa,CAAC,EAClB,QAAQ,GACT,GAAE;QACD,QAAQ,CAAC,EAAE,GAAG,EAAE,CAAC;KACb,GAAG,OAAO,CAAC,GAAG,CAAC;CAatB"}
1
+ {"version":3,"file":"random.d.ts","sourceRoot":"","sources":["../../src/routing/random.ts"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAG7E,qBAAa,qBAAsB,YAAW,eAAe;IAC3D,SAAgB,IAAI,YAAY;IAChC,OAAO,CAAC,gBAAgB,CAAC,CAAmB;IAC5C,OAAO,CAAC,MAAM,CAAS;gBAEX,EACV,gBAAgB,EAChB,MAAsB,GACvB,GAAE;QACD,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;QACpC,MAAM,CAAC,EAAE,MAAM,CAAC;KACZ;IAKA,aAAa,CAAC,EAClB,QAAQ,GACT,GAAE;QACD,QAAQ,CAAC,EAAE,GAAG,EAAE,CAAC;KACb,GAAG,OAAO,CAAC,GAAG,CAAC;CAatB"}
@@ -17,6 +17,7 @@
17
17
  import { defaultLogger } from '../logger.js';
18
18
  import { randomInt } from '../utils/random.js';
19
19
  export class RandomRoutingStrategy {
20
+ name = 'random';
20
21
  gatewaysProvider;
21
22
  logger;
22
23
  constructor({ gatewaysProvider, logger = defaultLogger, } = {}) {
@@ -15,12 +15,13 @@
15
15
  * limitations under the License.
16
16
  */
17
17
  import { Span, type Tracer } from '@opentelemetry/api';
18
+ import { BasicTracerProvider } from '@opentelemetry/sdk-trace-base';
18
19
  import { NodeTracerProvider } from '@opentelemetry/sdk-trace-node';
19
20
  import { WebTracerProvider } from '@opentelemetry/sdk-trace-web';
20
21
  import { WayfinderEmitter } from './emitter.js';
21
22
  import type { GatewaysProvider, TelemetrySettings, WayfinderOptions } from './types.js';
22
23
  export declare const initTelemetry: ({ enabled, sampleRate, exporterUrl, apiKey, clientName, clientVersion, }: TelemetrySettings) => {
23
- tracerProvider: WebTracerProvider | NodeTracerProvider;
24
+ tracerProvider: WebTracerProvider | NodeTracerProvider | BasicTracerProvider;
24
25
  tracer: Tracer;
25
26
  } | undefined;
26
27
  export declare const startRequestSpans: ({ originalUrl, emitter, tracer, verificationSettings, routingSettings, gatewaysProvider, }?: {
@@ -1 +1 @@
1
- {"version":3,"file":"telemetry.d.ts","sourceRoot":"","sources":["../src/telemetry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AACH,OAAO,EAGL,IAAI,EACJ,KAAK,MAAM,EAIZ,MAAM,oBAAoB,CAAC;AAS5B,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AACnE,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AAKjE,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,KAAK,EACV,gBAAgB,EAChB,iBAAiB,EACjB,gBAAgB,EACjB,MAAM,YAAY,CAAC;AAcpB,eAAO,MAAM,aAAa,GAAI,0EAO3B,iBAAiB,KAChB;IACE,cAAc,EAAE,iBAAiB,GAAG,kBAAkB,CAAC;IACvD,MAAM,EAAE,MAAM,CAAC;CAChB,GACD,SAgEH,CAAC;AAEF,eAAO,MAAM,iBAAiB,GAAI,6FAO/B;IACD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,gBAAgB,CAAC;IAC3B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,oBAAoB,CAAC,EAAE,gBAAgB,CAAC,sBAAsB,CAAC,CAAC;IAChE,eAAe,CAAC,EAAE,gBAAgB,CAAC,iBAAiB,CAAC,CAAC;IACtD,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;CAChC;;;;CA+EL,CAAC"}
1
+ {"version":3,"file":"telemetry.d.ts","sourceRoot":"","sources":["../src/telemetry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AACH,OAAO,EAGL,IAAI,EACJ,KAAK,MAAM,EAIZ,MAAM,oBAAoB,CAAC;AAI5B,OAAO,EACL,mBAAmB,EAIpB,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AACnE,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AAKjE,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,KAAK,EACV,gBAAgB,EAChB,iBAAiB,EACjB,gBAAgB,EACjB,MAAM,YAAY,CAAC;AAkBpB,eAAO,MAAM,aAAa,GAAI,0EAO3B,iBAAiB,KAChB;IACE,cAAc,EACV,iBAAiB,GACjB,kBAAkB,GAClB,mBAAmB,CAAC;IACxB,MAAM,EAAE,MAAM,CAAC;CAChB,GACD,SAuEH,CAAC;AAEF,eAAO,MAAM,iBAAiB,GAAI,6FAO/B;IACD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,gBAAgB,CAAC;IAC3B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,oBAAoB,CAAC,EAAE,gBAAgB,CAAC,sBAAsB,CAAC,CAAC;IAChE,eAAe,CAAC,EAAE,gBAAgB,CAAC,iBAAiB,CAAC,CAAC;IACtD,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;CAChC;;;;CA+EL,CAAC"}
package/dist/telemetry.js CHANGED
@@ -18,7 +18,7 @@ import { DiagConsoleLogger, DiagLogLevel, context, diag, trace, } from '@opentel
18
18
  import { ZoneContextManager } from '@opentelemetry/context-zone';
19
19
  import { OTLPTraceExporter } from '@opentelemetry/exporter-trace-otlp-http';
20
20
  import { resourceFromAttributes } from '@opentelemetry/resources';
21
- import { BatchSpanProcessor, SimpleSpanProcessor, TraceIdRatioBasedSampler, } from '@opentelemetry/sdk-trace-base';
21
+ import { BasicTracerProvider, BatchSpanProcessor, SimpleSpanProcessor, TraceIdRatioBasedSampler, } from '@opentelemetry/sdk-trace-base';
22
22
  import { NodeTracerProvider } from '@opentelemetry/sdk-trace-node';
23
23
  import { WebTracerProvider } from '@opentelemetry/sdk-trace-web';
24
24
  import { ATTR_SERVICE_NAME, ATTR_SERVICE_VERSION, } from '@opentelemetry/semantic-conventions';
@@ -59,31 +59,38 @@ clientName, clientVersion, }) => {
59
59
  'client.name': clientName,
60
60
  'client.version': clientVersion,
61
61
  });
62
- const useWebTracer = isBrowser() || isChromeExtension();
63
- const spanProcessor = useWebTracer
64
- ? new SimpleSpanProcessor(exporter)
65
- : new BatchSpanProcessor(exporter, {
66
- scheduledDelayMillis: 500,
67
- });
68
- const provider = useWebTracer
62
+ // use web tracer if in browser, basic tracer if in chrome extension, node tracer otherwise
63
+ const provider = isBrowser()
69
64
  ? new WebTracerProvider({
70
65
  sampler,
71
66
  resource,
72
- spanProcessors: [spanProcessor],
67
+ spanProcessors: [new SimpleSpanProcessor(exporter)],
73
68
  })
74
- : new NodeTracerProvider({
75
- sampler,
76
- resource,
77
- spanProcessors: [spanProcessor],
78
- });
69
+ : isChromeExtension()
70
+ ? new BasicTracerProvider({
71
+ sampler,
72
+ resource,
73
+ spanProcessors: [new SimpleSpanProcessor(exporter)],
74
+ })
75
+ : new NodeTracerProvider({
76
+ sampler,
77
+ resource,
78
+ spanProcessors: [
79
+ new BatchSpanProcessor(exporter, {
80
+ scheduledDelayMillis: 500,
81
+ }),
82
+ ],
83
+ });
79
84
  // ensure zone.js is loaded before registering the tracer provider if we're using the browser
80
- if (useWebTracer) {
85
+ if (isBrowser()) {
81
86
  assertZoneLoaded();
82
87
  }
83
- provider.register({
84
- // zone.js is only used in the browser (node/extensions/service workers don't need it)
85
- contextManager: useWebTracer ? new ZoneContextManager() : undefined,
86
- });
88
+ if ('register' in provider && typeof provider.register === 'function') {
89
+ provider.register({
90
+ // zone.js is only used in the browser (node/extensions/service workers don't need it)
91
+ contextManager: isBrowser() ? new ZoneContextManager() : undefined,
92
+ });
93
+ }
87
94
  tracerProvider = provider;
88
95
  tracer = provider.getTracer('wayfinder-core');
89
96
  return {
package/dist/types.d.ts CHANGED
@@ -163,6 +163,7 @@ export interface GatewaysProvider {
163
163
  getGateways(): Promise<URL[]>;
164
164
  }
165
165
  export interface RoutingStrategy {
166
+ name?: string;
166
167
  selectGateway(params: {
167
168
  gateways?: URL[];
168
169
  path?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/dist/version.d.ts CHANGED
@@ -14,5 +14,5 @@
14
14
  * See the License for the specific language governing permissions and
15
15
  * limitations under the License.
16
16
  */
17
- export declare const WAYFINDER_CORE_VERSION = "v1.5.0";
17
+ export declare const WAYFINDER_CORE_VERSION = "v1.6.1-alpha.0";
18
18
  //# sourceMappingURL=version.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,sBAAsB,WAAW,CAAC"}
1
+ {"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,sBAAsB,mBAAmB,CAAC"}
package/dist/version.js CHANGED
@@ -14,4 +14,4 @@
14
14
  * See the License for the specific language governing permissions and
15
15
  * limitations under the License.
16
16
  */
17
- export const WAYFINDER_CORE_VERSION = 'v1.5.0';
17
+ export const WAYFINDER_CORE_VERSION = 'v1.6.1-alpha.0';
@@ -15,7 +15,7 @@
15
15
  * limitations under the License.
16
16
  */
17
17
  import { type Tracer } from '@opentelemetry/api';
18
- import { NodeTracerProvider } from '@opentelemetry/sdk-trace-node';
18
+ import { BasicTracerProvider, NodeTracerProvider } from '@opentelemetry/sdk-trace-node';
19
19
  import { WebTracerProvider } from '@opentelemetry/sdk-trace-web';
20
20
  import { WayfinderEmitter } from './emitter.js';
21
21
  import type { GatewaysProvider, Logger, RoutingStrategy, TelemetrySettings, VerificationStrategy, WayfinderOptions, WayfinderURL, WayfinderURLParams } from './types.js';
@@ -121,7 +121,7 @@ export declare class Wayfinder {
121
121
  /**
122
122
  * OpenTelemetry tracer provider instance
123
123
  */
124
- protected tracerProvider?: WebTracerProvider | NodeTracerProvider;
124
+ protected tracerProvider?: WebTracerProvider | NodeTracerProvider | BasicTracerProvider;
125
125
  /**
126
126
  * OpenTelemetry tracer instance
127
127
  */
@@ -1 +1 @@
1
- {"version":3,"file":"wayfinder.d.ts","sourceRoot":"","sources":["../src/wayfinder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"wayfinder.d.ts","sourceRoot":"","sources":["../src/wayfinder.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ar.io/wayfinder-core",
3
- "version": "1.5.0",
3
+ "version": "1.6.1-alpha.0",
4
4
  "description": "WayFinder core library for intelligently routing to optimal AR.IO gateways",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/index.js",
@@ -44,7 +44,7 @@
44
44
  "@dha-team/arbundles": "^1.0.3",
45
45
  "@opentelemetry/api": "^1.9.0",
46
46
  "@opentelemetry/context-zone": "^2.0.1",
47
- "@opentelemetry/exporter-trace-otlp-http": "^0.202.0",
47
+ "@opentelemetry/exporter-trace-otlp-http": "^0.206.0",
48
48
  "@opentelemetry/sdk-trace-base": "^2.0.1",
49
49
  "@opentelemetry/sdk-trace-node": "^2.0.1",
50
50
  "@opentelemetry/sdk-trace-web": "^2.0.1",