@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 +96 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/routing/composite.d.ts +18 -0
- package/dist/routing/composite.d.ts.map +1 -0
- package/dist/routing/composite.js +58 -0
- package/dist/routing/preferred-with-fallback.d.ts +2 -2
- package/dist/routing/preferred-with-fallback.d.ts.map +1 -1
- package/dist/routing/preferred-with-fallback.js +25 -37
- package/dist/routing/random.d.ts +1 -0
- package/dist/routing/random.d.ts.map +1 -1
- package/dist/routing/random.js +1 -0
- package/dist/telemetry.d.ts +2 -1
- package/dist/telemetry.d.ts.map +1 -1
- package/dist/telemetry.js +26 -19
- package/dist/types.d.ts +1 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.d.ts.map +1 -1
- package/dist/version.js +1 -1
- package/dist/wayfinder.d.ts +2 -2
- package/dist/wayfinder.d.ts.map +1 -1
- package/package.json +2 -2
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';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -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;
|
|
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
|
|
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;
|
|
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
|
-
|
|
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
|
|
30
|
-
this.
|
|
31
|
-
|
|
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
|
}
|
package/dist/routing/random.d.ts
CHANGED
|
@@ -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"}
|
package/dist/routing/random.js
CHANGED
package/dist/telemetry.d.ts
CHANGED
|
@@ -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, }?: {
|
package/dist/telemetry.d.ts.map
CHANGED
|
@@ -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;
|
|
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
|
-
|
|
63
|
-
const
|
|
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: [
|
|
67
|
+
spanProcessors: [new SimpleSpanProcessor(exporter)],
|
|
73
68
|
})
|
|
74
|
-
:
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
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 (
|
|
85
|
+
if (isBrowser()) {
|
|
81
86
|
assertZoneLoaded();
|
|
82
87
|
}
|
|
83
|
-
provider.register
|
|
84
|
-
|
|
85
|
-
|
|
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
package/dist/types.d.ts.map
CHANGED
|
@@ -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.
|
|
17
|
+
export declare const WAYFINDER_CORE_VERSION = "v1.6.1-alpha.0";
|
|
18
18
|
//# sourceMappingURL=version.d.ts.map
|
package/dist/version.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,sBAAsB,
|
|
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
package/dist/wayfinder.d.ts
CHANGED
|
@@ -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
|
*/
|
package/dist/wayfinder.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wayfinder.d.ts","sourceRoot":"","sources":["../src/wayfinder.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAIH,OAAO,EAAQ,KAAK,MAAM,EAAkB,MAAM,oBAAoB,CAAC;AACvE,OAAO,
|
|
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.
|
|
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.
|
|
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",
|