cantonjs 0.2.0 → 0.3.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 +149 -59
- package/dist/cjs/auth/index.d.ts +2 -0
- package/dist/cjs/auth/index.d.ts.map +1 -0
- package/dist/cjs/auth/index.js +3 -0
- package/dist/cjs/auth/index.js.map +1 -0
- package/dist/cjs/auth/types.d.ts +27 -0
- package/dist/cjs/auth/types.d.ts.map +1 -0
- package/dist/cjs/auth/types.js +3 -0
- package/dist/cjs/auth/types.js.map +1 -0
- package/dist/cjs/chains/definitions.d.ts +5 -11
- package/dist/cjs/chains/definitions.d.ts.map +1 -1
- package/dist/cjs/chains/definitions.js +59 -13
- package/dist/cjs/chains/definitions.js.map +1 -1
- package/dist/cjs/chains/index.d.ts +2 -1
- package/dist/cjs/chains/index.d.ts.map +1 -1
- package/dist/cjs/chains/index.js +19 -6
- package/dist/cjs/chains/index.js.map +1 -1
- package/dist/cjs/chains/presets.d.ts +59 -0
- package/dist/cjs/chains/presets.d.ts.map +1 -0
- package/dist/cjs/chains/presets.js +55 -0
- package/dist/cjs/chains/presets.js.map +1 -0
- package/dist/cjs/errors/auth.d.ts +6 -0
- package/dist/cjs/errors/auth.d.ts.map +1 -1
- package/dist/cjs/errors/auth.js +17 -1
- package/dist/cjs/errors/auth.js.map +1 -1
- package/dist/cjs/errors/index.d.ts +1 -1
- package/dist/cjs/errors/index.d.ts.map +1 -1
- package/dist/cjs/errors/index.js +2 -1
- package/dist/cjs/errors/index.js.map +1 -1
- package/dist/cjs/index.d.ts +5 -4
- package/dist/cjs/index.d.ts.map +1 -1
- package/dist/cjs/index.js +9 -6
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/testing/setupSandbox.d.ts +11 -1
- package/dist/cjs/testing/setupSandbox.d.ts.map +1 -1
- package/dist/cjs/testing/setupSandbox.js +25 -13
- package/dist/cjs/testing/setupSandbox.js.map +1 -1
- package/dist/cjs/transport/grpc.d.ts +2 -4
- package/dist/cjs/transport/grpc.d.ts.map +1 -1
- package/dist/cjs/transport/grpc.js +28 -16
- package/dist/cjs/transport/grpc.js.map +1 -1
- package/dist/cjs/transport/index.d.ts +1 -1
- package/dist/cjs/transport/index.d.ts.map +1 -1
- package/dist/cjs/transport/json-api.d.ts +1 -1
- package/dist/cjs/transport/json-api.d.ts.map +1 -1
- package/dist/cjs/transport/json-api.js +19 -5
- package/dist/cjs/transport/json-api.js.map +1 -1
- package/dist/cjs/transport/types.d.ts +13 -3
- package/dist/cjs/transport/types.d.ts.map +1 -1
- package/dist/cjs/transport/types.js +40 -0
- package/dist/cjs/transport/types.js.map +1 -1
- package/dist/esm/auth/index.d.ts +2 -0
- package/dist/esm/auth/index.d.ts.map +1 -0
- package/dist/esm/auth/index.js +2 -0
- package/dist/esm/auth/index.js.map +1 -0
- package/dist/esm/auth/types.d.ts +27 -0
- package/dist/esm/auth/types.d.ts.map +1 -0
- package/dist/esm/auth/types.js +2 -0
- package/dist/esm/auth/types.js.map +1 -0
- package/dist/esm/chains/definitions.d.ts +5 -11
- package/dist/esm/chains/definitions.d.ts.map +1 -1
- package/dist/esm/chains/definitions.js +59 -13
- package/dist/esm/chains/definitions.js.map +1 -1
- package/dist/esm/chains/index.d.ts +2 -1
- package/dist/esm/chains/index.d.ts.map +1 -1
- package/dist/esm/chains/index.js +2 -1
- package/dist/esm/chains/index.js.map +1 -1
- package/dist/esm/chains/presets.d.ts +59 -0
- package/dist/esm/chains/presets.d.ts.map +1 -0
- package/dist/esm/chains/presets.js +51 -0
- package/dist/esm/chains/presets.js.map +1 -0
- package/dist/esm/errors/auth.d.ts +6 -0
- package/dist/esm/errors/auth.d.ts.map +1 -1
- package/dist/esm/errors/auth.js +15 -0
- package/dist/esm/errors/auth.js.map +1 -1
- package/dist/esm/errors/index.d.ts +1 -1
- package/dist/esm/errors/index.d.ts.map +1 -1
- package/dist/esm/errors/index.js +1 -1
- package/dist/esm/errors/index.js.map +1 -1
- package/dist/esm/index.d.ts +5 -4
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +2 -2
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/testing/setupSandbox.d.ts +11 -1
- package/dist/esm/testing/setupSandbox.d.ts.map +1 -1
- package/dist/esm/testing/setupSandbox.js +25 -14
- package/dist/esm/testing/setupSandbox.js.map +1 -1
- package/dist/esm/transport/grpc.d.ts +2 -4
- package/dist/esm/transport/grpc.d.ts.map +1 -1
- package/dist/esm/transport/grpc.js +28 -16
- package/dist/esm/transport/grpc.js.map +1 -1
- package/dist/esm/transport/index.d.ts +1 -1
- package/dist/esm/transport/index.d.ts.map +1 -1
- package/dist/esm/transport/json-api.d.ts +1 -1
- package/dist/esm/transport/json-api.d.ts.map +1 -1
- package/dist/esm/transport/json-api.js +19 -5
- package/dist/esm/transport/json-api.js.map +1 -1
- package/dist/esm/transport/types.d.ts +13 -3
- package/dist/esm/transport/types.d.ts.map +1 -1
- package/dist/esm/transport/types.js +38 -1
- package/dist/esm/transport/types.js.map +1 -1
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/dist/tsconfig.cjs.tsbuildinfo +1 -1
- package/package.json +12 -2
- package/src/auth/index.ts +7 -0
- package/src/auth/types.ts +30 -0
- package/src/chains/definitions.ts +77 -22
- package/src/chains/index.ts +2 -1
- package/src/chains/presets.ts +121 -0
- package/src/errors/auth.ts +16 -0
- package/src/errors/index.ts +1 -1
- package/src/index.ts +34 -7
- package/src/testing/setupSandbox.ts +45 -17
- package/src/transport/grpc.ts +33 -19
- package/src/transport/index.ts +7 -1
- package/src/transport/json-api.ts +24 -7
- package/src/transport/types.ts +63 -3
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.defineChainPreset = defineChainPreset;
|
|
4
|
+
exports.withChainOverrides = withChainOverrides;
|
|
5
|
+
function defineChainPreset(input) {
|
|
6
|
+
const participant = { ...(input.participant ?? {}) };
|
|
7
|
+
const scan = { ...(input.scan ?? {}) };
|
|
8
|
+
const validator = { ...(input.validator ?? {}) };
|
|
9
|
+
const authAudiences = { ...(input.authAudiences ?? {}) };
|
|
10
|
+
const splice = { ...(input.splice ?? {}) };
|
|
11
|
+
return {
|
|
12
|
+
id: input.id,
|
|
13
|
+
name: input.name,
|
|
14
|
+
network: input.network,
|
|
15
|
+
participant,
|
|
16
|
+
scan,
|
|
17
|
+
validator,
|
|
18
|
+
authAudiences,
|
|
19
|
+
splice,
|
|
20
|
+
jsonApiUrl: participant.jsonApiUrl,
|
|
21
|
+
grpcUrl: participant.grpcUrl,
|
|
22
|
+
scanUrl: scan.url,
|
|
23
|
+
validatorApiUrl: validator.apiBaseUrl,
|
|
24
|
+
scanProxyUrl: validator.scanProxyBaseUrl,
|
|
25
|
+
resetCycle: splice.resetCycleNote,
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
function withChainOverrides(chain, overrides = {}) {
|
|
29
|
+
return defineChainPreset({
|
|
30
|
+
id: chain.id,
|
|
31
|
+
name: overrides.name ?? chain.name,
|
|
32
|
+
network: chain.network,
|
|
33
|
+
participant: {
|
|
34
|
+
...chain.participant,
|
|
35
|
+
...overrides.participant,
|
|
36
|
+
},
|
|
37
|
+
scan: {
|
|
38
|
+
...chain.scan,
|
|
39
|
+
...overrides.scan,
|
|
40
|
+
},
|
|
41
|
+
validator: {
|
|
42
|
+
...chain.validator,
|
|
43
|
+
...overrides.validator,
|
|
44
|
+
},
|
|
45
|
+
authAudiences: {
|
|
46
|
+
...chain.authAudiences,
|
|
47
|
+
...overrides.authAudiences,
|
|
48
|
+
},
|
|
49
|
+
splice: {
|
|
50
|
+
...chain.splice,
|
|
51
|
+
...overrides.splice,
|
|
52
|
+
},
|
|
53
|
+
});
|
|
54
|
+
}
|
|
55
|
+
//# sourceMappingURL=presets.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"presets.js","sourceRoot":"","sources":["../../../src/chains/presets.ts"],"names":[],"mappings":";;AAkEA,8CAuBC;AAED,gDA6BC;AAtDD,SAAgB,iBAAiB,CAAC,KAA6B;IAC7D,MAAM,WAAW,GAAG,EAAE,GAAG,CAAC,KAAK,CAAC,WAAW,IAAI,EAAE,CAAC,EAAE,CAAA;IACpD,MAAM,IAAI,GAAG,EAAE,GAAG,CAAC,KAAK,CAAC,IAAI,IAAI,EAAE,CAAC,EAAE,CAAA;IACtC,MAAM,SAAS,GAAG,EAAE,GAAG,CAAC,KAAK,CAAC,SAAS,IAAI,EAAE,CAAC,EAAE,CAAA;IAChD,MAAM,aAAa,GAAG,EAAE,GAAG,CAAC,KAAK,CAAC,aAAa,IAAI,EAAE,CAAC,EAAE,CAAA;IACxD,MAAM,MAAM,GAAG,EAAE,GAAG,CAAC,KAAK,CAAC,MAAM,IAAI,EAAE,CAAC,EAAE,CAAA;IAE1C,OAAO;QACL,EAAE,EAAE,KAAK,CAAC,EAAE;QACZ,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,OAAO,EAAE,KAAK,CAAC,OAAO;QACtB,WAAW;QACX,IAAI;QACJ,SAAS;QACT,aAAa;QACb,MAAM;QACN,UAAU,EAAE,WAAW,CAAC,UAAU;QAClC,OAAO,EAAE,WAAW,CAAC,OAAO;QAC5B,OAAO,EAAE,IAAI,CAAC,GAAG;QACjB,eAAe,EAAE,SAAS,CAAC,UAAU;QACrC,YAAY,EAAE,SAAS,CAAC,gBAAgB;QACxC,UAAU,EAAE,MAAM,CAAC,cAAc;KAClC,CAAA;AACH,CAAC;AAED,SAAgB,kBAAkB,CAChC,KAAkB,EAClB,YAAkC,EAAE;IAEpC,OAAO,iBAAiB,CAAC;QACvB,EAAE,EAAE,KAAK,CAAC,EAAE;QACZ,IAAI,EAAE,SAAS,CAAC,IAAI,IAAI,KAAK,CAAC,IAAI;QAClC,OAAO,EAAE,KAAK,CAAC,OAAO;QACtB,WAAW,EAAE;YACX,GAAG,KAAK,CAAC,WAAW;YACpB,GAAG,SAAS,CAAC,WAAW;SACzB;QACD,IAAI,EAAE;YACJ,GAAG,KAAK,CAAC,IAAI;YACb,GAAG,SAAS,CAAC,IAAI;SAClB;QACD,SAAS,EAAE;YACT,GAAG,KAAK,CAAC,SAAS;YAClB,GAAG,SAAS,CAAC,SAAS;SACvB;QACD,aAAa,EAAE;YACb,GAAG,KAAK,CAAC,aAAa;YACtB,GAAG,SAAS,CAAC,aAAa;SAC3B;QACD,MAAM,EAAE;YACN,GAAG,KAAK,CAAC,MAAM;YACf,GAAG,SAAS,CAAC,MAAM;SACpB;KACF,CAAC,CAAA;AACJ,CAAC"}
|
|
@@ -10,4 +10,10 @@ export declare class InvalidTokenError extends CantonjsError {
|
|
|
10
10
|
cause?: Error;
|
|
11
11
|
});
|
|
12
12
|
}
|
|
13
|
+
/** A request-scoped auth/session provider failed before the request was sent. */
|
|
14
|
+
export declare class AuthProviderError extends CantonjsError {
|
|
15
|
+
constructor(transport: string, path: string, options?: {
|
|
16
|
+
cause?: Error;
|
|
17
|
+
});
|
|
18
|
+
}
|
|
13
19
|
//# sourceMappingURL=auth.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../../src/errors/auth.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAkB,MAAM,WAAW,CAAA;AAEzD,6BAA6B;AAC7B,qBAAa,iBAAkB,SAAQ,aAAa;IAClD,QAAQ,CAAC,SAAS,EAAE,IAAI,CAAA;gBAEZ,SAAS,EAAE,IAAI;CAW5B;AAED,yCAAyC;AACzC,qBAAa,iBAAkB,SAAQ,aAAa;gBACtC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,KAAK,CAAA;KAAE;CAWxD"}
|
|
1
|
+
{"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../../src/errors/auth.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAkB,MAAM,WAAW,CAAA;AAEzD,6BAA6B;AAC7B,qBAAa,iBAAkB,SAAQ,aAAa;IAClD,QAAQ,CAAC,SAAS,EAAE,IAAI,CAAA;gBAEZ,SAAS,EAAE,IAAI;CAW5B;AAED,yCAAyC;AACzC,qBAAa,iBAAkB,SAAQ,aAAa;gBACtC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,KAAK,CAAA;KAAE;CAWxD;AAED,iFAAiF;AACjF,qBAAa,iBAAkB,SAAQ,aAAa;gBACtC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,KAAK,CAAA;KAAE;CAYzE"}
|
package/dist/cjs/errors/auth.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.InvalidTokenError = exports.TokenExpiredError = void 0;
|
|
3
|
+
exports.AuthProviderError = exports.InvalidTokenError = exports.TokenExpiredError = void 0;
|
|
4
4
|
const base_js_1 = require("./base.js");
|
|
5
5
|
/** JWT token has expired. */
|
|
6
6
|
class TokenExpiredError extends base_js_1.CantonjsError {
|
|
@@ -33,4 +33,20 @@ class InvalidTokenError extends base_js_1.CantonjsError {
|
|
|
33
33
|
}
|
|
34
34
|
}
|
|
35
35
|
exports.InvalidTokenError = InvalidTokenError;
|
|
36
|
+
/** A request-scoped auth/session provider failed before the request was sent. */
|
|
37
|
+
class AuthProviderError extends base_js_1.CantonjsError {
|
|
38
|
+
constructor(transport, path, options) {
|
|
39
|
+
super('Failed to resolve authentication for request', {
|
|
40
|
+
code: 'CJ2003',
|
|
41
|
+
cause: options?.cause,
|
|
42
|
+
metaMessages: [
|
|
43
|
+
`Transport: ${transport}`,
|
|
44
|
+
`Path: ${path}`,
|
|
45
|
+
'Ensure your auth/session provider returns a token or throws a CantonjsError.',
|
|
46
|
+
],
|
|
47
|
+
});
|
|
48
|
+
this.name = 'AuthProviderError';
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
exports.AuthProviderError = AuthProviderError;
|
|
36
52
|
//# sourceMappingURL=auth.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../../../src/errors/auth.ts"],"names":[],"mappings":";;;AAAA,uCAAyD;AAEzD,6BAA6B;AAC7B,MAAa,iBAAkB,SAAQ,uBAAa;IACzC,SAAS,CAAM;IAExB,YAAY,SAAe;QACzB,KAAK,CAAC,uBAAuB,EAAE;YAC7B,IAAI,EAAE,QAAqB;YAC3B,YAAY,EAAE;gBACZ,qBAAqB,SAAS,CAAC,WAAW,EAAE,EAAE;gBAC9C,sEAAsE;aACvE;SACF,CAAC,CAAA;QACF,IAAI,CAAC,IAAI,GAAG,mBAAmB,CAAA;QAC/B,IAAI,CAAC,SAAS,GAAG,SAAS,CAAA;IAC5B,CAAC;CACF;AAdD,8CAcC;AAED,yCAAyC;AACzC,MAAa,iBAAkB,SAAQ,uBAAa;IAClD,YAAY,MAAc,EAAE,OAA2B;QACrD,KAAK,CAAC,sBAAsB,MAAM,EAAE,EAAE;YACpC,IAAI,EAAE,QAAqB;YAC3B,KAAK,EAAE,OAAO,EAAE,KAAK;YACrB,YAAY,EAAE;gBACZ,kEAAkE;gBAClE,iCAAiC;aAClC;SACF,CAAC,CAAA;QACF,IAAI,CAAC,IAAI,GAAG,mBAAmB,CAAA;IACjC,CAAC;CACF;AAZD,8CAYC"}
|
|
1
|
+
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../../../src/errors/auth.ts"],"names":[],"mappings":";;;AAAA,uCAAyD;AAEzD,6BAA6B;AAC7B,MAAa,iBAAkB,SAAQ,uBAAa;IACzC,SAAS,CAAM;IAExB,YAAY,SAAe;QACzB,KAAK,CAAC,uBAAuB,EAAE;YAC7B,IAAI,EAAE,QAAqB;YAC3B,YAAY,EAAE;gBACZ,qBAAqB,SAAS,CAAC,WAAW,EAAE,EAAE;gBAC9C,sEAAsE;aACvE;SACF,CAAC,CAAA;QACF,IAAI,CAAC,IAAI,GAAG,mBAAmB,CAAA;QAC/B,IAAI,CAAC,SAAS,GAAG,SAAS,CAAA;IAC5B,CAAC;CACF;AAdD,8CAcC;AAED,yCAAyC;AACzC,MAAa,iBAAkB,SAAQ,uBAAa;IAClD,YAAY,MAAc,EAAE,OAA2B;QACrD,KAAK,CAAC,sBAAsB,MAAM,EAAE,EAAE;YACpC,IAAI,EAAE,QAAqB;YAC3B,KAAK,EAAE,OAAO,EAAE,KAAK;YACrB,YAAY,EAAE;gBACZ,kEAAkE;gBAClE,iCAAiC;aAClC;SACF,CAAC,CAAA;QACF,IAAI,CAAC,IAAI,GAAG,mBAAmB,CAAA;IACjC,CAAC;CACF;AAZD,8CAYC;AAED,iFAAiF;AACjF,MAAa,iBAAkB,SAAQ,uBAAa;IAClD,YAAY,SAAiB,EAAE,IAAY,EAAE,OAA2B;QACtE,KAAK,CAAC,8CAA8C,EAAE;YACpD,IAAI,EAAE,QAAqB;YAC3B,KAAK,EAAE,OAAO,EAAE,KAAK;YACrB,YAAY,EAAE;gBACZ,cAAc,SAAS,EAAE;gBACzB,SAAS,IAAI,EAAE;gBACf,8EAA8E;aAC/E;SACF,CAAC,CAAA;QACF,IAAI,CAAC,IAAI,GAAG,mBAAmB,CAAA;IACjC,CAAC;CACF;AAbD,8CAaC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
export { CantonjsError, type ErrorCode, type CantonjsErrorOptions } from './base.js';
|
|
2
2
|
export { ConnectionError, HttpError, GrpcError, TimeoutError } from './transport.js';
|
|
3
3
|
export { CommandRejectedError, ContractNotFoundError, AuthorizationError } from './ledger.js';
|
|
4
|
-
export { TokenExpiredError, InvalidTokenError } from './auth.js';
|
|
4
|
+
export { TokenExpiredError, InvalidTokenError, AuthProviderError } from './auth.js';
|
|
5
5
|
export { WebSocketError, StreamClosedError, ReconnectFailedError } from './streaming.js';
|
|
6
6
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/errors/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,KAAK,SAAS,EAAE,KAAK,oBAAoB,EAAE,MAAM,WAAW,CAAA;AACpF,OAAO,EAAE,eAAe,EAAE,SAAS,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AACpF,OAAO,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAA;AAC7F,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/errors/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,KAAK,SAAS,EAAE,KAAK,oBAAoB,EAAE,MAAM,WAAW,CAAA;AACpF,OAAO,EAAE,eAAe,EAAE,SAAS,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AACpF,OAAO,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAA;AAC7F,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAA;AACnF,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAA"}
|
package/dist/cjs/errors/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.ReconnectFailedError = exports.StreamClosedError = exports.WebSocketError = exports.InvalidTokenError = exports.TokenExpiredError = exports.AuthorizationError = exports.ContractNotFoundError = exports.CommandRejectedError = exports.TimeoutError = exports.GrpcError = exports.HttpError = exports.ConnectionError = exports.CantonjsError = void 0;
|
|
3
|
+
exports.ReconnectFailedError = exports.StreamClosedError = exports.WebSocketError = exports.AuthProviderError = exports.InvalidTokenError = exports.TokenExpiredError = exports.AuthorizationError = exports.ContractNotFoundError = exports.CommandRejectedError = exports.TimeoutError = exports.GrpcError = exports.HttpError = exports.ConnectionError = exports.CantonjsError = void 0;
|
|
4
4
|
var base_js_1 = require("./base.js");
|
|
5
5
|
Object.defineProperty(exports, "CantonjsError", { enumerable: true, get: function () { return base_js_1.CantonjsError; } });
|
|
6
6
|
var transport_js_1 = require("./transport.js");
|
|
@@ -15,6 +15,7 @@ Object.defineProperty(exports, "AuthorizationError", { enumerable: true, get: fu
|
|
|
15
15
|
var auth_js_1 = require("./auth.js");
|
|
16
16
|
Object.defineProperty(exports, "TokenExpiredError", { enumerable: true, get: function () { return auth_js_1.TokenExpiredError; } });
|
|
17
17
|
Object.defineProperty(exports, "InvalidTokenError", { enumerable: true, get: function () { return auth_js_1.InvalidTokenError; } });
|
|
18
|
+
Object.defineProperty(exports, "AuthProviderError", { enumerable: true, get: function () { return auth_js_1.AuthProviderError; } });
|
|
18
19
|
var streaming_js_1 = require("./streaming.js");
|
|
19
20
|
Object.defineProperty(exports, "WebSocketError", { enumerable: true, get: function () { return streaming_js_1.WebSocketError; } });
|
|
20
21
|
Object.defineProperty(exports, "StreamClosedError", { enumerable: true, get: function () { return streaming_js_1.StreamClosedError; } });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/errors/index.ts"],"names":[],"mappings":";;;AAAA,qCAAoF;AAA3E,wGAAA,aAAa,OAAA;AACtB,+CAAoF;AAA3E,+GAAA,eAAe,OAAA;AAAE,yGAAA,SAAS,OAAA;AAAE,yGAAA,SAAS,OAAA;AAAE,4GAAA,YAAY,OAAA;AAC5D,yCAA6F;AAApF,iHAAA,oBAAoB,OAAA;AAAE,kHAAA,qBAAqB,OAAA;AAAE,+GAAA,kBAAkB,OAAA;AACxE,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/errors/index.ts"],"names":[],"mappings":";;;AAAA,qCAAoF;AAA3E,wGAAA,aAAa,OAAA;AACtB,+CAAoF;AAA3E,+GAAA,eAAe,OAAA;AAAE,yGAAA,SAAS,OAAA;AAAE,yGAAA,SAAS,OAAA;AAAE,4GAAA,YAAY,OAAA;AAC5D,yCAA6F;AAApF,iHAAA,oBAAoB,OAAA;AAAE,kHAAA,qBAAqB,OAAA;AAAE,+GAAA,kBAAkB,OAAA;AACxE,qCAAmF;AAA1E,4GAAA,iBAAiB,OAAA;AAAE,4GAAA,iBAAiB,OAAA;AAAE,4GAAA,iBAAiB,OAAA;AAChE,+CAAwF;AAA/E,8GAAA,cAAc,OAAA;AAAE,iHAAA,iBAAiB,OAAA;AAAE,oHAAA,oBAAoB,OAAA"}
|
package/dist/cjs/index.d.ts
CHANGED
|
@@ -4,14 +4,15 @@ export { createTestClient, type TestClient, type TestClientConfig, } from './cli
|
|
|
4
4
|
export { jsonApi } from './transport/json-api.js';
|
|
5
5
|
export { grpc, type GrpcTransportConfig, type GrpcTransportLike } from './transport/grpc.js';
|
|
6
6
|
export { fallback, type FallbackTransportConfig } from './transport/fallback.js';
|
|
7
|
-
export type { Transport, TransportConfig, TransportRequest } from './transport/types.js';
|
|
8
|
-
export {
|
|
7
|
+
export type { Transport, TransportAuthConfig, TransportConfig, TransportRequest, } from './transport/types.js';
|
|
8
|
+
export type { MaybePromise, AuthContext, AuthSession, AuthProvider, SessionProvider, } from './auth/index.js';
|
|
9
|
+
export { CantonjsError, ConnectionError, HttpError, GrpcError, TimeoutError, CommandRejectedError, ContractNotFoundError, AuthorizationError, TokenExpiredError, InvalidTokenError, AuthProviderError, WebSocketError, StreamClosedError, ReconnectFailedError, } from './errors/index.js';
|
|
9
10
|
export type { ErrorCode, CantonjsErrorOptions } from './errors/base.js';
|
|
10
|
-
export { localNet, devNet, testNet, mainNet, type CantonChain } from './chains/
|
|
11
|
+
export { defineChainPreset, withChainOverrides, localNet, devNet, testNet, mainNet, type CantonAuthAudienceHints, type CantonChain, type CantonChainOverrides, type CantonChainPresetInput, type CantonNetwork, type CantonParticipantEndpoints, type CantonScanEndpoints, type CantonSpliceMetadata, type CantonValidatorEndpoints, } from './chains/index.js';
|
|
11
12
|
export type { ContractId, TemplateId, CreatedEvent, ArchivedEvent, ExercisedEvent, TaggedEvent, ActiveContract, ContractEntry, } from './types/contract.js';
|
|
12
13
|
export type { Party, ObjectMeta, PartyDetails, AllocatePartyRequest } from './types/party.js';
|
|
13
14
|
export type { LedgerOffset, TaggedCommand, JsCommands, TransactionShape, EventFormat, TransactionFormat, } from './types/command.js';
|
|
14
|
-
export type { JsTransaction, TaggedUpdate, UpdateFormat
|
|
15
|
+
export type { JsTransaction, TaggedUpdate, UpdateFormat } from './types/transaction.js';
|
|
15
16
|
export type { User, Right, RightKind, CreateUserRequest } from './types/user.js';
|
|
16
17
|
export type { PackageStatus, PackageDetails } from './types/package.js';
|
|
17
18
|
export type { IdentityProviderConfig, CreateIdentityProviderRequest, UpdateIdentityProviderRequest, } from './types/idp.js';
|
package/dist/cjs/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EACL,kBAAkB,EAClB,KAAK,YAAY,EACjB,KAAK,kBAAkB,EACvB,KAAK,cAAc,EACnB,KAAK,YAAY,EACjB,KAAK,qBAAqB,EAC1B,KAAK,aAAa,GACnB,MAAM,iCAAiC,CAAA;AAExC,OAAO,EACL,iBAAiB,EACjB,KAAK,WAAW,EAChB,KAAK,iBAAiB,EACtB,KAAK,iBAAiB,EACtB,KAAK,eAAe,GACrB,MAAM,gCAAgC,CAAA;AAEvC,OAAO,EACL,gBAAgB,EAChB,KAAK,UAAU,EACf,KAAK,gBAAgB,GACtB,MAAM,+BAA+B,CAAA;AAGtC,OAAO,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAA;AACjD,OAAO,EAAE,IAAI,EAAE,KAAK,mBAAmB,EAAE,KAAK,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AAC5F,OAAO,EAAE,QAAQ,EAAE,KAAK,uBAAuB,EAAE,MAAM,yBAAyB,CAAA;AAChF,YAAY,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/cjs/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.toWebSocketUrl = exports.streamCompletions = exports.streamContracts = exports.streamUpdates = exports.mainNet = exports.testNet = exports.devNet = exports.localNet = exports.ReconnectFailedError = exports.StreamClosedError = exports.WebSocketError = exports.InvalidTokenError = exports.TokenExpiredError = exports.AuthorizationError = exports.ContractNotFoundError = exports.CommandRejectedError = exports.TimeoutError = exports.GrpcError = exports.HttpError = exports.ConnectionError = exports.CantonjsError = exports.fallback = exports.grpc = exports.jsonApi = exports.createTestClient = exports.createAdminClient = exports.createLedgerClient = void 0;
|
|
3
|
+
exports.toWebSocketUrl = exports.streamCompletions = exports.streamContracts = exports.streamUpdates = exports.mainNet = exports.testNet = exports.devNet = exports.localNet = exports.withChainOverrides = exports.defineChainPreset = exports.ReconnectFailedError = exports.StreamClosedError = exports.WebSocketError = exports.AuthProviderError = exports.InvalidTokenError = exports.TokenExpiredError = exports.AuthorizationError = exports.ContractNotFoundError = exports.CommandRejectedError = exports.TimeoutError = exports.GrpcError = exports.HttpError = exports.ConnectionError = exports.CantonjsError = exports.fallback = exports.grpc = exports.jsonApi = exports.createTestClient = exports.createAdminClient = exports.createLedgerClient = void 0;
|
|
4
4
|
// Clients
|
|
5
5
|
var createLedgerClient_js_1 = require("./clients/createLedgerClient.js");
|
|
6
6
|
Object.defineProperty(exports, "createLedgerClient", { enumerable: true, get: function () { return createLedgerClient_js_1.createLedgerClient; } });
|
|
@@ -27,15 +27,18 @@ Object.defineProperty(exports, "ContractNotFoundError", { enumerable: true, get:
|
|
|
27
27
|
Object.defineProperty(exports, "AuthorizationError", { enumerable: true, get: function () { return index_js_1.AuthorizationError; } });
|
|
28
28
|
Object.defineProperty(exports, "TokenExpiredError", { enumerable: true, get: function () { return index_js_1.TokenExpiredError; } });
|
|
29
29
|
Object.defineProperty(exports, "InvalidTokenError", { enumerable: true, get: function () { return index_js_1.InvalidTokenError; } });
|
|
30
|
+
Object.defineProperty(exports, "AuthProviderError", { enumerable: true, get: function () { return index_js_1.AuthProviderError; } });
|
|
30
31
|
Object.defineProperty(exports, "WebSocketError", { enumerable: true, get: function () { return index_js_1.WebSocketError; } });
|
|
31
32
|
Object.defineProperty(exports, "StreamClosedError", { enumerable: true, get: function () { return index_js_1.StreamClosedError; } });
|
|
32
33
|
Object.defineProperty(exports, "ReconnectFailedError", { enumerable: true, get: function () { return index_js_1.ReconnectFailedError; } });
|
|
33
34
|
// Chains
|
|
34
|
-
var
|
|
35
|
-
Object.defineProperty(exports, "
|
|
36
|
-
Object.defineProperty(exports, "
|
|
37
|
-
Object.defineProperty(exports, "
|
|
38
|
-
Object.defineProperty(exports, "
|
|
35
|
+
var index_js_2 = require("./chains/index.js");
|
|
36
|
+
Object.defineProperty(exports, "defineChainPreset", { enumerable: true, get: function () { return index_js_2.defineChainPreset; } });
|
|
37
|
+
Object.defineProperty(exports, "withChainOverrides", { enumerable: true, get: function () { return index_js_2.withChainOverrides; } });
|
|
38
|
+
Object.defineProperty(exports, "localNet", { enumerable: true, get: function () { return index_js_2.localNet; } });
|
|
39
|
+
Object.defineProperty(exports, "devNet", { enumerable: true, get: function () { return index_js_2.devNet; } });
|
|
40
|
+
Object.defineProperty(exports, "testNet", { enumerable: true, get: function () { return index_js_2.testNet; } });
|
|
41
|
+
Object.defineProperty(exports, "mainNet", { enumerable: true, get: function () { return index_js_2.mainNet; } });
|
|
39
42
|
// Streaming
|
|
40
43
|
var streamUpdates_js_1 = require("./streaming/streamUpdates.js");
|
|
41
44
|
Object.defineProperty(exports, "streamUpdates", { enumerable: true, get: function () { return streamUpdates_js_1.streamUpdates; } });
|
package/dist/cjs/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;AAAA,UAAU;AACV,yEAQwC;AAPtC,2HAAA,kBAAkB,OAAA;AASpB,uEAMuC;AALrC,yHAAA,iBAAiB,OAAA;AAOnB,qEAIsC;AAHpC,uHAAA,gBAAgB,OAAA;AAKlB,YAAY;AACZ,uDAAiD;AAAxC,sGAAA,OAAO,OAAA;AAChB,+CAA4F;AAAnF,+FAAA,IAAI,OAAA;AACb,uDAAgF;AAAvE,uGAAA,QAAQ,OAAA;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;AAAA,UAAU;AACV,yEAQwC;AAPtC,2HAAA,kBAAkB,OAAA;AASpB,uEAMuC;AALrC,yHAAA,iBAAiB,OAAA;AAOnB,qEAIsC;AAHpC,uHAAA,gBAAgB,OAAA;AAKlB,YAAY;AACZ,uDAAiD;AAAxC,sGAAA,OAAO,OAAA;AAChB,+CAA4F;AAAnF,+FAAA,IAAI,OAAA;AACb,uDAAgF;AAAvE,uGAAA,QAAQ,OAAA;AAiBjB,SAAS;AACT,8CAe0B;AAdxB,yGAAA,aAAa,OAAA;AACb,2GAAA,eAAe,OAAA;AACf,qGAAA,SAAS,OAAA;AACT,qGAAA,SAAS,OAAA;AACT,wGAAA,YAAY,OAAA;AACZ,gHAAA,oBAAoB,OAAA;AACpB,iHAAA,qBAAqB,OAAA;AACrB,8GAAA,kBAAkB,OAAA;AAClB,6GAAA,iBAAiB,OAAA;AACjB,6GAAA,iBAAiB,OAAA;AACjB,6GAAA,iBAAiB,OAAA;AACjB,0GAAA,cAAc,OAAA;AACd,6GAAA,iBAAiB,OAAA;AACjB,gHAAA,oBAAoB,OAAA;AAItB,SAAS;AACT,8CAgB0B;AAfxB,6GAAA,iBAAiB,OAAA;AACjB,8GAAA,kBAAkB,OAAA;AAClB,oGAAA,QAAQ,OAAA;AACR,kGAAA,MAAM,OAAA;AACN,mGAAA,OAAO,OAAA;AACP,mGAAA,OAAO,OAAA;AA+DT,YAAY;AACZ,iEAA4D;AAAnD,iHAAA,aAAa,OAAA;AACtB,qEAA8F;AAArF,qHAAA,eAAe,OAAA;AACxB,yEAAoE;AAA3D,yHAAA,iBAAiB,OAAA;AAC1B,+DAA4D;AAAnD,iHAAA,cAAc,OAAA"}
|
|
@@ -18,6 +18,7 @@
|
|
|
18
18
|
* await sandbox.teardown()
|
|
19
19
|
* ```
|
|
20
20
|
*/
|
|
21
|
+
import type { AuthProvider, SessionProvider } from '../auth/types.js';
|
|
21
22
|
import { type TestClient } from '../clients/createTestClient.js';
|
|
22
23
|
import type { Transport } from '../transport/types.js';
|
|
23
24
|
import type { Party } from '../types/party.js';
|
|
@@ -29,7 +30,11 @@ export type SandboxConfig = {
|
|
|
29
30
|
readonly timeout?: number;
|
|
30
31
|
/** JWT token. If not provided, attempts to use cantonctl auth. */
|
|
31
32
|
readonly token?: string;
|
|
32
|
-
/**
|
|
33
|
+
/** Per-request bearer token provider for participant calls. */
|
|
34
|
+
readonly auth?: AuthProvider;
|
|
35
|
+
/** Per-request session provider for participant calls. */
|
|
36
|
+
readonly session?: SessionProvider;
|
|
37
|
+
/** Party for the TestClient. Default: `test-party`. */
|
|
33
38
|
readonly party?: Party;
|
|
34
39
|
/** Custom fetch implementation (for testing the fixture itself). */
|
|
35
40
|
readonly fetchFn?: typeof fetch;
|
|
@@ -50,6 +55,11 @@ export type SandboxContext = {
|
|
|
50
55
|
/** Tear down the sandbox. */
|
|
51
56
|
readonly teardown: () => Promise<void>;
|
|
52
57
|
};
|
|
58
|
+
/** Default exec using child_process (Node.js only). */
|
|
59
|
+
export declare function defaultExec(cmd: string): Promise<{
|
|
60
|
+
stdout: string;
|
|
61
|
+
stderr: string;
|
|
62
|
+
}>;
|
|
53
63
|
/**
|
|
54
64
|
* Set up a Canton sandbox for integration testing.
|
|
55
65
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"setupSandbox.d.ts","sourceRoot":"","sources":["../../../src/testing/setupSandbox.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;
|
|
1
|
+
{"version":3,"file":"setupSandbox.d.ts","sourceRoot":"","sources":["../../../src/testing/setupSandbox.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA;AAErE,OAAO,EAAoB,KAAK,UAAU,EAAE,MAAM,gCAAgC,CAAA;AAClF,OAAO,KAAK,EAAE,SAAS,EAAmB,MAAM,uBAAuB,CAAA;AACvE,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAA;AAE9C,uCAAuC;AACvC,MAAM,MAAM,aAAa,GAAG;IAC1B,4CAA4C;IAC5C,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAA;IACtB,2EAA2E;IAC3E,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAA;IACzB,kEAAkE;IAClE,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAA;IACvB,+DAA+D;IAC/D,QAAQ,CAAC,IAAI,CAAC,EAAE,YAAY,CAAA;IAC5B,0DAA0D;IAC1D,QAAQ,CAAC,OAAO,CAAC,EAAE,eAAe,CAAA;IAClC,uDAAuD;IACvD,QAAQ,CAAC,KAAK,CAAC,EAAE,KAAK,CAAA;IACtB,oEAAoE;IACpE,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,KAAK,CAAA;IAC/B,mEAAmE;IACnE,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CAC/E,CAAA;AAED,wCAAwC;AACxC,MAAM,MAAM,cAAc,GAAG;IAC3B,oDAAoD;IACpD,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;IACpB,8CAA8C;IAC9C,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAA;IAC7B,qCAAqC;IACrC,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAA;IAC3B,6BAA6B;IAC7B,QAAQ,CAAC,QAAQ,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;CACvC,CAAA;AAED,uDAAuD;AACvD,wBAAsB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC,CAM1F;AAqED;;;;;;;GAOG;AACH,wBAAsB,kBAAkB,CACtC,MAAM,GAAE,aAAkB,GACzB,OAAO,CAAC,cAAc,CAAC,CA6CzB"}
|
|
@@ -20,16 +20,15 @@
|
|
|
20
20
|
* ```
|
|
21
21
|
*/
|
|
22
22
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
23
|
+
exports.defaultExec = defaultExec;
|
|
23
24
|
exports.setupCantonSandbox = setupCantonSandbox;
|
|
24
25
|
const json_api_js_1 = require("../transport/json-api.js");
|
|
25
26
|
const createTestClient_js_1 = require("../clients/createTestClient.js");
|
|
26
27
|
/** Default exec using child_process (Node.js only). */
|
|
27
28
|
async function defaultExec(cmd) {
|
|
28
|
-
// Dynamic import
|
|
29
|
-
|
|
30
|
-
const
|
|
31
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
32
|
-
const util = await Function('return import("node:util")')();
|
|
29
|
+
// Dynamic import keeps Node-only modules out of browser-oriented consumers.
|
|
30
|
+
const cp = await Promise.resolve().then(() => require('node:child_process'));
|
|
31
|
+
const util = await Promise.resolve().then(() => require('node:util'));
|
|
33
32
|
const execAsync = util.promisify(cp.exec);
|
|
34
33
|
return execAsync(cmd);
|
|
35
34
|
}
|
|
@@ -60,6 +59,26 @@ async function waitForHealth(url, timeoutMs, fetchFn) {
|
|
|
60
59
|
}
|
|
61
60
|
throw new Error(`Canton sandbox did not become ready within ${timeoutMs}ms at ${url}`);
|
|
62
61
|
}
|
|
62
|
+
async function resolveSandboxTransportConfig(url, fetchFn, execFn, config) {
|
|
63
|
+
const token = config.token?.trim() === '' ? undefined : config.token?.trim();
|
|
64
|
+
const transportConfig = {
|
|
65
|
+
url,
|
|
66
|
+
fetchFn,
|
|
67
|
+
token,
|
|
68
|
+
auth: config.auth,
|
|
69
|
+
session: config.session,
|
|
70
|
+
};
|
|
71
|
+
if (transportConfig.token === undefined &&
|
|
72
|
+
transportConfig.auth === undefined &&
|
|
73
|
+
transportConfig.session === undefined) {
|
|
74
|
+
const result = await execFn('cantonctl auth token');
|
|
75
|
+
return {
|
|
76
|
+
...transportConfig,
|
|
77
|
+
token: result.stdout.trim(),
|
|
78
|
+
};
|
|
79
|
+
}
|
|
80
|
+
return transportConfig;
|
|
81
|
+
}
|
|
63
82
|
/**
|
|
64
83
|
* Set up a Canton sandbox for integration testing.
|
|
65
84
|
*
|
|
@@ -82,14 +101,7 @@ async function setupCantonSandbox(config = {}) {
|
|
|
82
101
|
await execFn(`cantonctl dev start --port ${port}`);
|
|
83
102
|
// Wait for health
|
|
84
103
|
await waitForHealth(url, timeout, fetchFn);
|
|
85
|
-
|
|
86
|
-
let token = config.token;
|
|
87
|
-
if (!token) {
|
|
88
|
-
const result = await execFn('cantonctl auth token');
|
|
89
|
-
token = result.stdout.trim();
|
|
90
|
-
}
|
|
91
|
-
// Create transport and client
|
|
92
|
-
const transport = (0, json_api_js_1.jsonApi)({ url, token, fetchFn });
|
|
104
|
+
const transport = (0, json_api_js_1.jsonApi)(await resolveSandboxTransportConfig(url, fetchFn, execFn, config));
|
|
93
105
|
const party = config.party ?? 'test-party';
|
|
94
106
|
const client = (0, createTestClient_js_1.createTestClient)({ transport, party });
|
|
95
107
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"setupSandbox.js","sourceRoot":"","sources":["../../../src/testing/setupSandbox.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;GAmBG;;
|
|
1
|
+
{"version":3,"file":"setupSandbox.js","sourceRoot":"","sources":["../../../src/testing/setupSandbox.ts"],"names":[],"mappings":"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"}
|
|
@@ -19,13 +19,11 @@
|
|
|
19
19
|
* grpcTransport: createGrpcWebTransport({ baseUrl: 'http://localhost:7575' }),
|
|
20
20
|
* })
|
|
21
21
|
*/
|
|
22
|
-
import type
|
|
22
|
+
import { type Transport, type TransportAuthConfig } from './types.js';
|
|
23
23
|
/** Configuration for the gRPC transport. */
|
|
24
|
-
export type GrpcTransportConfig = {
|
|
24
|
+
export type GrpcTransportConfig = TransportAuthConfig & {
|
|
25
25
|
/** Base URL of the Canton node. */
|
|
26
26
|
readonly url: string;
|
|
27
|
-
/** JWT Bearer token for authentication. */
|
|
28
|
-
readonly token?: string;
|
|
29
27
|
/**
|
|
30
28
|
* A ConnectRPC transport instance (from @connectrpc/connect-web or connect-node).
|
|
31
29
|
* Injected to keep cantonjs zero-dependency.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"grpc.d.ts","sourceRoot":"","sources":["../../../src/transport/grpc.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"grpc.d.ts","sourceRoot":"","sources":["../../../src/transport/grpc.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,EAEL,KAAK,SAAS,EACd,KAAK,mBAAmB,EAEzB,MAAM,YAAY,CAAA;AAEnB,4CAA4C;AAC5C,MAAM,MAAM,mBAAmB,GAAG,mBAAmB,GAAG;IACtD,mCAAmC;IACnC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;IACpB;;;OAGG;IACH,QAAQ,CAAC,aAAa,EAAE,iBAAiB,CAAA;CAC1C,CAAA;AAED;;;GAGG;AACH,MAAM,MAAM,iBAAiB,GAAG;IAC9B,QAAQ,CAAC,KAAK,EAAE,CACd,OAAO,EAAE,OAAO,EAChB,MAAM,EAAE,OAAO,EACf,MAAM,EAAE,WAAW,GAAG,SAAS,EAC/B,SAAS,EAAE,MAAM,GAAG,SAAS,EAC7B,MAAM,EAAE,OAAO,EACf,OAAO,EAAE,OAAO,KACb,OAAO,CAAC;QAAE,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC,CAAA;CAC5C,CAAA;AAED;;;;;GAKG;AACH,wBAAgB,IAAI,CAAC,MAAM,EAAE,mBAAmB,GAAG,SAAS,CAmC3D"}
|
|
@@ -22,6 +22,7 @@
|
|
|
22
22
|
*/
|
|
23
23
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
24
24
|
exports.grpc = grpc;
|
|
25
|
+
const types_js_1 = require("./types.js");
|
|
25
26
|
/**
|
|
26
27
|
* Create a gRPC transport for the Canton Ledger API.
|
|
27
28
|
*
|
|
@@ -29,16 +30,25 @@ exports.grpc = grpc;
|
|
|
29
30
|
* Maps Transport requests to gRPC unary calls.
|
|
30
31
|
*/
|
|
31
32
|
function grpc(config) {
|
|
32
|
-
const { url,
|
|
33
|
+
const { url, grpcTransport } = config;
|
|
33
34
|
const baseUrl = url.replace(/\/+$/, '');
|
|
34
35
|
return {
|
|
35
36
|
type: 'grpc',
|
|
36
37
|
url: baseUrl,
|
|
37
38
|
async request(args) {
|
|
38
|
-
const headers = {
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
39
|
+
const headers = {
|
|
40
|
+
...args.headers,
|
|
41
|
+
...(await (0, types_js_1.resolveTransportHeaders)(config, {
|
|
42
|
+
transport: 'grpc',
|
|
43
|
+
url: baseUrl,
|
|
44
|
+
request: {
|
|
45
|
+
method: args.method,
|
|
46
|
+
path: args.path,
|
|
47
|
+
headers: args.headers,
|
|
48
|
+
signal: args.signal,
|
|
49
|
+
},
|
|
50
|
+
})),
|
|
51
|
+
};
|
|
42
52
|
const result = await grpcTransport.unary(pathToService(args.path), pathToMethod(args.path), args.signal, args.timeout, headers, args.body ?? {});
|
|
43
53
|
return result.message;
|
|
44
54
|
},
|
|
@@ -52,18 +62,19 @@ function grpc(config) {
|
|
|
52
62
|
function pathToService(path) {
|
|
53
63
|
const segments = path.replace(/^\/v2\//, '').split('/');
|
|
54
64
|
const serviceMap = {
|
|
55
|
-
|
|
65
|
+
commands: 'com.daml.ledger.api.v2.CommandService',
|
|
56
66
|
'interactive-submission': 'com.daml.ledger.api.v2.InteractiveSubmissionService',
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
67
|
+
state: 'com.daml.ledger.api.v2.StateService',
|
|
68
|
+
updates: 'com.daml.ledger.api.v2.UpdateService',
|
|
69
|
+
events: 'com.daml.ledger.api.v2.EventQueryService',
|
|
70
|
+
parties: 'com.daml.ledger.api.v2.PartyManagementService',
|
|
71
|
+
users: 'com.daml.ledger.api.v2.UserManagementService',
|
|
72
|
+
packages: 'com.daml.ledger.api.v2.PackageService',
|
|
73
|
+
dars: 'com.daml.ledger.api.v2.PackageManagementService',
|
|
74
|
+
version: 'com.daml.ledger.api.v2.VersionService',
|
|
65
75
|
};
|
|
66
|
-
const
|
|
76
|
+
const serviceKey = segments.find((segment) => segment.length > 0);
|
|
77
|
+
const serviceName = serviceKey === undefined ? 'unknown' : (serviceMap[serviceKey] ?? 'unknown');
|
|
67
78
|
return { typeName: serviceName };
|
|
68
79
|
}
|
|
69
80
|
/**
|
|
@@ -84,7 +95,8 @@ function pathToMethod(path) {
|
|
|
84
95
|
'/v2/events/events-by-contract-id': 'GetEventsByContractId',
|
|
85
96
|
'/v2/version': 'GetLedgerApiVersion',
|
|
86
97
|
};
|
|
87
|
-
const
|
|
98
|
+
const fallbackMethodName = path.split('/').filter((segment) => segment.length > 0).at(-1);
|
|
99
|
+
const methodName = methodMap[path] ?? fallbackMethodName ?? 'unknown';
|
|
88
100
|
return { name: methodName };
|
|
89
101
|
}
|
|
90
102
|
//# sourceMappingURL=grpc.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"grpc.js","sourceRoot":"","sources":["../../../src/transport/grpc.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;;
|
|
1
|
+
{"version":3,"file":"grpc.js","sourceRoot":"","sources":["../../../src/transport/grpc.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
export { jsonApi } from './json-api.js';
|
|
2
|
-
export type { Transport, TransportConfig, TransportRequest, TransportFactory } from './types.js';
|
|
2
|
+
export type { Transport, TransportAuthConfig, TransportConfig, TransportRequest, TransportFactory, } from './types.js';
|
|
3
3
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/transport/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AACvC,YAAY,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/transport/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AACvC,YAAY,EACV,SAAS,EACT,mBAAmB,EACnB,eAAe,EACf,gBAAgB,EAChB,gBAAgB,GACjB,MAAM,YAAY,CAAA"}
|
|
@@ -4,6 +4,6 @@
|
|
|
4
4
|
* Primary transport for cantonjs. Communicates with Canton's JSON Ledger API
|
|
5
5
|
* via HTTP requests to /v2/* endpoints.
|
|
6
6
|
*/
|
|
7
|
-
import type
|
|
7
|
+
import { type Transport, type TransportConfig } from './types.js';
|
|
8
8
|
export declare function jsonApi(config: TransportConfig): Transport;
|
|
9
9
|
//# sourceMappingURL=json-api.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"json-api.d.ts","sourceRoot":"","sources":["../../../src/transport/json-api.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"json-api.d.ts","sourceRoot":"","sources":["../../../src/transport/json-api.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAEL,KAAK,SAAS,EACd,KAAK,eAAe,EAErB,MAAM,YAAY,CAAA;AAInB,wBAAgB,OAAO,CAAC,MAAM,EAAE,eAAe,GAAG,SAAS,CAkF1D"}
|
|
@@ -8,27 +8,41 @@
|
|
|
8
8
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
9
|
exports.jsonApi = jsonApi;
|
|
10
10
|
const transport_js_1 = require("../errors/transport.js");
|
|
11
|
+
const types_js_1 = require("./types.js");
|
|
11
12
|
const DEFAULT_TIMEOUT = 30_000;
|
|
12
13
|
function jsonApi(config) {
|
|
13
|
-
const { url,
|
|
14
|
+
const { url, timeout = DEFAULT_TIMEOUT, fetchFn = globalThis.fetch } = config;
|
|
14
15
|
const baseUrl = url.replace(/\/+$/, '');
|
|
15
16
|
return {
|
|
16
17
|
type: 'json-api',
|
|
17
18
|
url: baseUrl,
|
|
18
19
|
async request(args) {
|
|
19
20
|
const requestUrl = `${baseUrl}${args.path}`;
|
|
21
|
+
const authHeaders = await (0, types_js_1.resolveTransportHeaders)(config, {
|
|
22
|
+
transport: 'json-api',
|
|
23
|
+
url: baseUrl,
|
|
24
|
+
request: {
|
|
25
|
+
method: args.method,
|
|
26
|
+
path: args.path,
|
|
27
|
+
headers: args.headers,
|
|
28
|
+
signal: args.signal,
|
|
29
|
+
},
|
|
30
|
+
});
|
|
20
31
|
const headers = {
|
|
21
32
|
'Content-Type': 'application/json',
|
|
22
33
|
...args.headers,
|
|
34
|
+
...authHeaders,
|
|
23
35
|
};
|
|
24
|
-
if (token !== undefined) {
|
|
25
|
-
headers['Authorization'] = `Bearer ${token}`;
|
|
26
|
-
}
|
|
27
36
|
const controller = new AbortController();
|
|
28
37
|
const timeoutMs = args.timeout ?? timeout;
|
|
29
38
|
const timeoutId = setTimeout(() => controller.abort(), timeoutMs);
|
|
30
39
|
if (args.signal !== undefined) {
|
|
31
|
-
args.signal.
|
|
40
|
+
if (args.signal.aborted) {
|
|
41
|
+
controller.abort();
|
|
42
|
+
}
|
|
43
|
+
else {
|
|
44
|
+
args.signal.addEventListener('abort', () => controller.abort(), { once: true });
|
|
45
|
+
}
|
|
32
46
|
}
|
|
33
47
|
try {
|
|
34
48
|
const response = await fetchFn(requestUrl, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"json-api.js","sourceRoot":"","sources":["../../../src/transport/json-api.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;
|
|
1
|
+
{"version":3,"file":"json-api.js","sourceRoot":"","sources":["../../../src/transport/json-api.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,6 +5,7 @@
|
|
|
5
5
|
* transport that handles the actual request execution. This separates
|
|
6
6
|
* client logic from communication concerns.
|
|
7
7
|
*/
|
|
8
|
+
import type { AuthContext, AuthProvider, AuthSession, SessionProvider } from '../auth/types.js';
|
|
8
9
|
/** A transport handles sending requests to a Canton node. */
|
|
9
10
|
export type Transport = {
|
|
10
11
|
readonly type: string;
|
|
@@ -20,12 +21,19 @@ export type TransportRequest = {
|
|
|
20
21
|
signal?: AbortSignal;
|
|
21
22
|
timeout?: number;
|
|
22
23
|
};
|
|
24
|
+
/** Authentication configuration shared by core transports. */
|
|
25
|
+
export type TransportAuthConfig = {
|
|
26
|
+
/** Static JWT Bearer token for authentication. */
|
|
27
|
+
readonly token?: string;
|
|
28
|
+
/** Per-request bearer token provider. */
|
|
29
|
+
readonly auth?: AuthProvider;
|
|
30
|
+
/** Per-request session provider for advanced auth/header injection. */
|
|
31
|
+
readonly session?: SessionProvider;
|
|
32
|
+
};
|
|
23
33
|
/** Configuration shared by all transport types. */
|
|
24
|
-
export type TransportConfig = {
|
|
34
|
+
export type TransportConfig = TransportAuthConfig & {
|
|
25
35
|
/** Base URL of the Canton node. */
|
|
26
36
|
readonly url: string;
|
|
27
|
-
/** JWT Bearer token for authentication. */
|
|
28
|
-
readonly token?: string;
|
|
29
37
|
/** Request timeout in milliseconds. Default: 30000. */
|
|
30
38
|
readonly timeout?: number;
|
|
31
39
|
/** Custom fetch implementation (for testing or environments without global fetch). */
|
|
@@ -33,4 +41,6 @@ export type TransportConfig = {
|
|
|
33
41
|
};
|
|
34
42
|
/** Factory function type for creating transports. */
|
|
35
43
|
export type TransportFactory = (config: TransportConfig) => Transport;
|
|
44
|
+
export declare function resolveTransportSession(config: TransportAuthConfig, context: AuthContext): Promise<AuthSession | undefined>;
|
|
45
|
+
export declare function resolveTransportHeaders(config: TransportAuthConfig, context: AuthContext): Promise<Record<string, string>>;
|
|
36
46
|
//# sourceMappingURL=types.d.ts.map
|