@webpieces/http-client-node 0.4.869 → 0.4.871
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/package.json +5 -5
- package/src/index.d.ts +1 -3
- package/src/index.js +2 -7
- package/src/index.js.map +1 -1
- package/src/RuntimeClients.d.ts +0 -9
- package/src/RuntimeClients.js +0 -23
- package/src/RuntimeClients.js.map +0 -1
- package/src/RuntimeClientsCompileAssertions.d.ts +0 -13
- package/src/RuntimeClientsCompileAssertions.js +0 -24
- package/src/RuntimeClientsCompileAssertions.js.map +0 -1
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@webpieces/http-client-node",
|
|
3
|
-
"version": "0.4.
|
|
3
|
+
"version": "0.4.871",
|
|
4
4
|
"description": "Server-side HTTP client for webpieces: inversify-wired, reads RequestContext directly, mints OIDC/shared-secret delivery auth, resolves Cloud Run URLs from a service name",
|
|
5
5
|
"type": "commonjs",
|
|
6
6
|
"main": "./src/index.js",
|
|
@@ -22,10 +22,10 @@
|
|
|
22
22
|
"access": "public"
|
|
23
23
|
},
|
|
24
24
|
"dependencies": {
|
|
25
|
-
"@webpieces/core-context": "0.4.
|
|
26
|
-
"@webpieces/core-util": "0.4.
|
|
27
|
-
"@webpieces/gcp-identity": "0.4.
|
|
28
|
-
"@webpieces/http-client-core": "0.4.
|
|
25
|
+
"@webpieces/core-context": "0.4.871",
|
|
26
|
+
"@webpieces/core-util": "0.4.871",
|
|
27
|
+
"@webpieces/gcp-identity": "0.4.871",
|
|
28
|
+
"@webpieces/http-client-core": "0.4.871",
|
|
29
29
|
"inversify": "7.10.4",
|
|
30
30
|
"reflect-metadata": "0.2.2"
|
|
31
31
|
}
|
package/src/index.d.ts
CHANGED
|
@@ -42,6 +42,4 @@ export { ClientRequest, ClientFilterDefinition } from '@webpieces/http-client-co
|
|
|
42
42
|
export type { ClientFilter } from '@webpieces/http-client-core';
|
|
43
43
|
export type { ApiPrototype } from '@webpieces/http-client-core';
|
|
44
44
|
export { StreamingCapabilityError } from '@webpieces/http-client-core';
|
|
45
|
-
export {
|
|
46
|
-
export { ClientToken } from '@webpieces/http-client-core';
|
|
47
|
-
export { WiringPolicy, ExternalContractUse } from '@webpieces/http-client-core';
|
|
45
|
+
export { WiringPolicy } from '@webpieces/http-client-core';
|
package/src/index.js
CHANGED
|
@@ -25,7 +25,7 @@
|
|
|
25
25
|
* ```
|
|
26
26
|
*/
|
|
27
27
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
28
|
-
exports.
|
|
28
|
+
exports.WiringPolicy = exports.StreamingCapabilityError = exports.ClientFilterDefinition = exports.ClientRequest = exports.ClientErrorTranslator = exports.ProxyClient = exports.DnsAddressResolver = exports.AddressResolver = exports.InternalAddressRules = exports.OutboundAuthFilter = exports.SsrfRefusedError = exports.SsrfGuardFilter = exports.SsrfTestingPolicy = exports.SsrfPolicy = exports.WEBHOOK_SIGNER_CALLBACK = exports.SignableRequest = exports.WebhookSignerCallback = exports.MissingWebhookSignerError = exports.MissingSharedSecretError = exports.MissingRuntimeBaseUrlError = exports.ContextFullUrlFilter = exports.ContextBaseUrlFilter = exports.ClientConfig = exports.NODE_PROXY_CLIENT_PROVIDER = exports.NodeProxyClient = exports.ClientHttpFactory = void 0;
|
|
29
29
|
var ClientHttpFactory_1 = require("./ClientHttpFactory");
|
|
30
30
|
Object.defineProperty(exports, "ClientHttpFactory", { enumerable: true, get: function () { return ClientHttpFactory_1.ClientHttpFactory; } });
|
|
31
31
|
var NodeProxyClient_1 = require("./NodeProxyClient");
|
|
@@ -80,11 +80,6 @@ Object.defineProperty(exports, "ClientRequest", { enumerable: true, get: functio
|
|
|
80
80
|
Object.defineProperty(exports, "ClientFilterDefinition", { enumerable: true, get: function () { return http_client_core_2.ClientFilterDefinition; } });
|
|
81
81
|
var http_client_core_3 = require("@webpieces/http-client-core");
|
|
82
82
|
Object.defineProperty(exports, "StreamingCapabilityError", { enumerable: true, get: function () { return http_client_core_3.StreamingCapabilityError; } });
|
|
83
|
-
var RuntimeClients_1 = require("./RuntimeClients");
|
|
84
|
-
Object.defineProperty(exports, "RuntimeClients", { enumerable: true, get: function () { return RuntimeClients_1.RuntimeClients; } });
|
|
85
83
|
var http_client_core_4 = require("@webpieces/http-client-core");
|
|
86
|
-
Object.defineProperty(exports, "
|
|
87
|
-
var http_client_core_5 = require("@webpieces/http-client-core");
|
|
88
|
-
Object.defineProperty(exports, "WiringPolicy", { enumerable: true, get: function () { return http_client_core_5.WiringPolicy; } });
|
|
89
|
-
Object.defineProperty(exports, "ExternalContractUse", { enumerable: true, get: function () { return http_client_core_5.ExternalContractUse; } });
|
|
84
|
+
Object.defineProperty(exports, "WiringPolicy", { enumerable: true, get: function () { return http_client_core_4.WiringPolicy; } });
|
|
90
85
|
//# sourceMappingURL=index.js.map
|
package/src/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../packages/http/http-client-node/src/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;;;AAEH,yDAAwD;AAA/C,sHAAA,iBAAiB,OAAA;AAC1B,qDAAgF;AAAvE,kHAAA,eAAe,OAAA;AAAE,6HAAA,0BAA0B,OAAA;AACpD,+CAA8C;AAArC,4GAAA,YAAY,OAAA;AAErB,kGAAkG;AAClG,4DAA4D;AAC5D,+DAA8D;AAArD,4HAAA,oBAAoB,OAAA;AAC7B,kGAAkG;AAClG,4EAA4E;AAC5E,+DAA8D;AAArD,4HAAA,oBAAoB,OAAA;AAC7B,2EAA0E;AAAjE,wIAAA,0BAA0B,OAAA;AAEnC,mGAAmG;AACnG,kGAAkG;AAClG,6DAA6D;AAC7D,2DAA2F;AAAlF,8HAAA,wBAAwB,OAAA;AAAE,+HAAA,yBAAyB,OAAA;AAE5D,8FAA8F;AAC9F,mFAAmF;AACnF,iEAIiC;AAH7B,8HAAA,qBAAqB,OAAA;AACrB,wHAAA,eAAe,OAAA;AACf,gIAAA,uBAAuB,OAAA;AAG3B,qGAAqG;AACrG,+FAA+F;AAC/F,2CAA6D;AAApD,wGAAA,UAAU,OAAA;AAAE,+GAAA,iBAAiB,OAAA;AACtC,qDAAoD;AAA3C,kHAAA,eAAe,OAAA;AACxB,uDAAsD;AAA7C,oHAAA,gBAAgB,OAAA;AACzB,2DAA0D;AAAjD,wHAAA,kBAAkB,OAAA;AAC3B,+DAA8D;AAArD,4HAAA,oBAAoB,OAAA;AAC7B,qDAAwE;AAA/D,kHAAA,eAAe,OAAA;AAAE,qHAAA,kBAAkB,OAAA;AAE5C,uEAAuE;AACvE,gEAAiF;AAAxE,+GAAA,WAAW,OAAA;AAAE,yHAAA,qBAAqB,OAAA;AAC3C,gEAAoF;AAA3E,iHAAA,aAAa,OAAA;AAAE,0HAAA,sBAAsB,OAAA;AAG9C,gEAAuE;AAA9D,4HAAA,wBAAwB,OAAA;AAEjC,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../packages/http/http-client-node/src/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;;;AAEH,yDAAwD;AAA/C,sHAAA,iBAAiB,OAAA;AAC1B,qDAAgF;AAAvE,kHAAA,eAAe,OAAA;AAAE,6HAAA,0BAA0B,OAAA;AACpD,+CAA8C;AAArC,4GAAA,YAAY,OAAA;AAErB,kGAAkG;AAClG,4DAA4D;AAC5D,+DAA8D;AAArD,4HAAA,oBAAoB,OAAA;AAC7B,kGAAkG;AAClG,4EAA4E;AAC5E,+DAA8D;AAArD,4HAAA,oBAAoB,OAAA;AAC7B,2EAA0E;AAAjE,wIAAA,0BAA0B,OAAA;AAEnC,mGAAmG;AACnG,kGAAkG;AAClG,6DAA6D;AAC7D,2DAA2F;AAAlF,8HAAA,wBAAwB,OAAA;AAAE,+HAAA,yBAAyB,OAAA;AAE5D,8FAA8F;AAC9F,mFAAmF;AACnF,iEAIiC;AAH7B,8HAAA,qBAAqB,OAAA;AACrB,wHAAA,eAAe,OAAA;AACf,gIAAA,uBAAuB,OAAA;AAG3B,qGAAqG;AACrG,+FAA+F;AAC/F,2CAA6D;AAApD,wGAAA,UAAU,OAAA;AAAE,+GAAA,iBAAiB,OAAA;AACtC,qDAAoD;AAA3C,kHAAA,eAAe,OAAA;AACxB,uDAAsD;AAA7C,oHAAA,gBAAgB,OAAA;AACzB,2DAA0D;AAAjD,wHAAA,kBAAkB,OAAA;AAC3B,+DAA8D;AAArD,4HAAA,oBAAoB,OAAA;AAC7B,qDAAwE;AAA/D,kHAAA,eAAe,OAAA;AAAE,qHAAA,kBAAkB,OAAA;AAE5C,uEAAuE;AACvE,gEAAiF;AAAxE,+GAAA,WAAW,OAAA;AAAE,yHAAA,qBAAqB,OAAA;AAC3C,gEAAoF;AAA3E,iHAAA,aAAa,OAAA;AAAE,0HAAA,sBAAsB,OAAA;AAG9C,gEAAuE;AAA9D,4HAAA,wBAAwB,OAAA;AAEjC,gEAA2D;AAAlD,gHAAA,YAAY,OAAA","sourcesContent":["/**\n * @webpieces/http-client-node\n *\n * The SERVER-side HTTP client. Reads an API contract's decorators and generates type-safe HTTP\n * clients from it — the same contract the callee's controller implements.\n *\n * Node-only, so unlike @webpieces/http-client-browser it is fully inversify-wired and reads the\n * magic context straight out of the AsyncLocalStorage-backed RequestContext. There is no\n * ContextReader indirection, because a server has exactly one right answer, and a call made\n * OUTSIDE `RequestContext.run(...)` throws instead of silently dropping the trace.\n *\n * Usage:\n * ```typescript\n * import { ClientHttpFactory, ClientConfig } from '@webpieces/http-client-node';\n *\n * // inject the factory, then one client per contract\n * const server2 = factory.createRpcClient(Server2Api, new ClientConfig('server2'));\n * const response = await server2.fetchValue(req);\n *\n * // a client whose destination arrives per call: ONE filter, and nothing else changes\n * const partner = factory.createRpcClient(PartnerWebhookApi, new ClientConfig('partner-webhooks'), [\n * new ClientFilterDefinition(1000, new ContextFullUrlFilter()),\n * ]);\n * ```\n */\n\nexport { ClientHttpFactory } from './ClientHttpFactory';\nexport { NodeProxyClient, NODE_PROXY_CLIENT_PROVIDER } from './NodeProxyClient';\nexport { ClientConfig } from './ClientConfig';\n\n// Install this on the ONE client whose destination is data. Installing it IS the opt-in; a client\n// without it ignores an ambient OVERRIDE_BASE_URL entirely.\nexport { ContextBaseUrlFilter } from './ContextBaseUrlFilter';\n// The same opt-in for a COMPLETE stored url (host + path + query), sent verbatim with no contract\n// path appended — the usual partner-webhook shape. Reads OVERRIDE_FULL_URL.\nexport { ContextFullUrlFilter } from './ContextFullUrlFilter';\nexport { MissingRuntimeBaseUrlError } from './MissingRuntimeBaseUrlError';\n\n// The two ways outbound auth refuses to send: a binding a contract's auth mode requires is absent.\n// Typed, so a delivery worker tells 'we are misconfigured' from 'the partner registered something\n// hostile' (SsrfRefusedError) without matching message text.\nexport { MissingSharedSecretError, MissingWebhookSignerError } from './OutboundAuthErrors';\n\n// The OUTBOUND half of webhook(name) — the mirror of http-routing's WebhookAuthCallback. Bind\n// one, or every outbound webhook(...) call throws rather than delivering unsigned.\nexport {\n WebhookSignerCallback,\n SignableRequest,\n WEBHOOK_SIGNER_CALLBACK,\n} from './WebhookSignerCallback';\n\n// The SSRF policy a re-pointed URL is judged under, and the refusal it produces. Automatic, armed by\n// the ACT of re-pointing; the ONLY way to relax it is naming SsrfTestingPolicy at a call site.\nexport { SsrfPolicy, SsrfTestingPolicy } from './SsrfPolicy';\nexport { SsrfGuardFilter } from './SsrfGuardFilter';\nexport { SsrfRefusedError } from './SsrfRefusedError';\nexport { OutboundAuthFilter } from './OutboundAuthFilter';\nexport { InternalAddressRules } from './InternalAddressRules';\nexport { AddressResolver, DnsAddressResolver } from './AddressResolver';\n\n// The isomorphic engine, re-exported so a server app needs one import.\nexport { ProxyClient, ClientErrorTranslator } from '@webpieces/http-client-core';\nexport { ClientRequest, ClientFilterDefinition } from '@webpieces/http-client-core';\nexport type { ClientFilter } from '@webpieces/http-client-core';\nexport type { ApiPrototype } from '@webpieces/http-client-core';\nexport { StreamingCapabilityError } from '@webpieces/http-client-core';\n\nexport { WiringPolicy } from '@webpieces/http-client-core';\n"]}
|
package/src/RuntimeClients.d.ts
DELETED
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import type { ContainerModuleLoadOptions, ServiceIdentifier } from 'inversify';
|
|
2
|
-
import type { ApiPrototype, ClientFilterDefinition } from '@webpieces/http-client-core';
|
|
3
|
-
import { ClientToken } from '@webpieces/http-client-core';
|
|
4
|
-
/** Registers factories only. Overrides loaded afterward never resolve the production factory. */
|
|
5
|
-
export declare class RuntimeClients {
|
|
6
|
-
private readonly options;
|
|
7
|
-
constructor(options: ContainerModuleLoadOptions);
|
|
8
|
-
bindRpc<T extends object>(token: ServiceIdentifier<NoInfer<T>> | ClientToken<NoInfer<T>>, api: ApiPrototype<T>, destination: string, filters?: readonly ClientFilterDefinition[]): void;
|
|
9
|
-
}
|
package/src/RuntimeClients.js
DELETED
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.RuntimeClients = void 0;
|
|
4
|
-
const http_client_core_1 = require("@webpieces/http-client-core");
|
|
5
|
-
const ClientHttpFactory_1 = require("./ClientHttpFactory");
|
|
6
|
-
const ClientConfig_1 = require("./ClientConfig");
|
|
7
|
-
/** Registers factories only. Overrides loaded afterward never resolve the production factory. */
|
|
8
|
-
class RuntimeClients {
|
|
9
|
-
options;
|
|
10
|
-
constructor(options) {
|
|
11
|
-
this.options = options;
|
|
12
|
-
}
|
|
13
|
-
bindRpc(token, api, destination, filters) {
|
|
14
|
-
this.options
|
|
15
|
-
.bind(token instanceof http_client_core_1.ClientToken ? token.identifier : token)
|
|
16
|
-
.toDynamicValue((context) => context
|
|
17
|
-
.get(ClientHttpFactory_1.ClientHttpFactory)
|
|
18
|
-
.createRpcClient(api, new ClientConfig_1.ClientConfig(destination), filters))
|
|
19
|
-
.inSingletonScope();
|
|
20
|
-
}
|
|
21
|
-
}
|
|
22
|
-
exports.RuntimeClients = RuntimeClients;
|
|
23
|
-
//# sourceMappingURL=RuntimeClients.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"RuntimeClients.js","sourceRoot":"","sources":["../../../../../packages/http/http-client-node/src/RuntimeClients.ts"],"names":[],"mappings":";;;AAEA,kEAA0D;AAC1D,2DAAwD;AACxD,iDAA8C;AAE9C,iGAAiG;AACjG,MAAa,cAAc;IACM;IAA7B,YAA6B,OAAmC;QAAnC,YAAO,GAAP,OAAO,CAA4B;IAAG,CAAC;IAEpE,OAAO,CACH,KAA8D,EAC9D,GAAoB,EACpB,WAAmB,EACnB,OAA2C;QAE3C,IAAI,CAAC,OAAO;aACP,IAAI,CAAI,KAAK,YAAY,8BAAW,CAAC,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC;aAChE,cAAc,CAAC,CAAC,OAAO,EAAE,EAAE,CACxB,OAAO;aACF,GAAG,CAAC,qCAAiB,CAAC;aACtB,eAAe,CAAC,GAAG,EAAE,IAAI,2BAAY,CAAC,WAAW,CAAC,EAAE,OAAO,CAAC,CACpE;aACA,gBAAgB,EAAE,CAAC;IAC5B,CAAC;CACJ;AAlBD,wCAkBC","sourcesContent":["import type { ContainerModuleLoadOptions, ServiceIdentifier } from 'inversify';\nimport type { ApiPrototype, ClientFilterDefinition } from '@webpieces/http-client-core';\nimport { ClientToken } from '@webpieces/http-client-core';\nimport { ClientHttpFactory } from './ClientHttpFactory';\nimport { ClientConfig } from './ClientConfig';\n\n/** Registers factories only. Overrides loaded afterward never resolve the production factory. */\nexport class RuntimeClients {\n constructor(private readonly options: ContainerModuleLoadOptions) {}\n\n bindRpc<T extends object>(\n token: ServiceIdentifier<NoInfer<T>> | ClientToken<NoInfer<T>>,\n api: ApiPrototype<T>,\n destination: string,\n filters?: readonly ClientFilterDefinition[],\n ): void {\n this.options\n .bind<T>(token instanceof ClientToken ? token.identifier : token)\n .toDynamicValue((context) =>\n context\n .get(ClientHttpFactory)\n .createRpcClient(api, new ClientConfig(destination), filters),\n )\n .inSingletonScope();\n }\n}\n"]}
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import type { ContainerModuleLoadOptions } from 'inversify';
|
|
2
|
-
import { ClientToken } from '@webpieces/http-client-core';
|
|
3
|
-
declare abstract class StringApi {
|
|
4
|
-
abstract read(): string;
|
|
5
|
-
}
|
|
6
|
-
declare abstract class NumberApi {
|
|
7
|
-
abstract read(): number;
|
|
8
|
-
}
|
|
9
|
-
/** Compiled by tsc, never invoked. Vitest alone does not check these negative guarantees. */
|
|
10
|
-
export declare class RuntimeClientsCompileAssertions {
|
|
11
|
-
check(options: ContainerModuleLoadOptions, strings: ClientToken<StringApi>, numbers: ClientToken<NumberApi>): void;
|
|
12
|
-
}
|
|
13
|
-
export {};
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.RuntimeClientsCompileAssertions = void 0;
|
|
4
|
-
const RuntimeClients_1 = require("./RuntimeClients");
|
|
5
|
-
class StringApi {
|
|
6
|
-
}
|
|
7
|
-
class NumberApi {
|
|
8
|
-
}
|
|
9
|
-
/** Compiled by tsc, never invoked. Vitest alone does not check these negative guarantees. */
|
|
10
|
-
class RuntimeClientsCompileAssertions {
|
|
11
|
-
check(options, strings, numbers) {
|
|
12
|
-
const clients = new RuntimeClients_1.RuntimeClients(options);
|
|
13
|
-
clients.bindRpc(strings, StringApi, 'strings');
|
|
14
|
-
// @ts-expect-error The destination is a required argument.
|
|
15
|
-
clients.bindRpc(strings, StringApi);
|
|
16
|
-
// @ts-expect-error Typed tokens must match the supplied API contract.
|
|
17
|
-
clients.bindRpc(numbers, StringApi, 'strings');
|
|
18
|
-
clients.bindRpc(numbers, NumberApi, 'numbers');
|
|
19
|
-
// @ts-expect-error Destination wrappers were removed; pass the service string.
|
|
20
|
-
clients.bindRpc(strings, StringApi, { serviceName: 'strings' });
|
|
21
|
-
}
|
|
22
|
-
}
|
|
23
|
-
exports.RuntimeClientsCompileAssertions = RuntimeClientsCompileAssertions;
|
|
24
|
-
//# sourceMappingURL=RuntimeClientsCompileAssertions.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"RuntimeClientsCompileAssertions.js","sourceRoot":"","sources":["../../../../../packages/http/http-client-node/src/RuntimeClientsCompileAssertions.ts"],"names":[],"mappings":";;;AAEA,qDAAkD;AAElD,MAAe,SAAS;CAEvB;AACD,MAAe,SAAS;CAEvB;AAED,6FAA6F;AAC7F,MAAa,+BAA+B;IACxC,KAAK,CACD,OAAmC,EACnC,OAA+B,EAC/B,OAA+B;QAE/B,MAAM,OAAO,GAAG,IAAI,+BAAc,CAAC,OAAO,CAAC,CAAC;QAC5C,OAAO,CAAC,OAAO,CAAC,OAAO,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;QAC/C,2DAA2D;QAC3D,OAAO,CAAC,OAAO,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;QACpC,sEAAsE;QACtE,OAAO,CAAC,OAAO,CAAC,OAAO,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;QAC/C,OAAO,CAAC,OAAO,CAAC,OAAO,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;QAC/C,+EAA+E;QAC/E,OAAO,CAAC,OAAO,CAAC,OAAO,EAAE,SAAS,EAAE,EAAE,WAAW,EAAE,SAAS,EAAE,CAAC,CAAC;IACpE,CAAC;CACJ;AAhBD,0EAgBC","sourcesContent":["import type { ContainerModuleLoadOptions } from 'inversify';\nimport { ClientToken } from '@webpieces/http-client-core';\nimport { RuntimeClients } from './RuntimeClients';\n\nabstract class StringApi {\n abstract read(): string;\n}\nabstract class NumberApi {\n abstract read(): number;\n}\n\n/** Compiled by tsc, never invoked. Vitest alone does not check these negative guarantees. */\nexport class RuntimeClientsCompileAssertions {\n check(\n options: ContainerModuleLoadOptions,\n strings: ClientToken<StringApi>,\n numbers: ClientToken<NumberApi>,\n ): void {\n const clients = new RuntimeClients(options);\n clients.bindRpc(strings, StringApi, 'strings');\n // @ts-expect-error The destination is a required argument.\n clients.bindRpc(strings, StringApi);\n // @ts-expect-error Typed tokens must match the supplied API contract.\n clients.bindRpc(numbers, StringApi, 'strings');\n clients.bindRpc(numbers, NumberApi, 'numbers');\n // @ts-expect-error Destination wrappers were removed; pass the service string.\n clients.bindRpc(strings, StringApi, { serviceName: 'strings' });\n }\n}\n"]}
|