@towns-labs/sdk 6.0.0 → 7.2.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.
Files changed (47) hide show
  1. package/dist/appRegistryService.d.ts +16 -5
  2. package/dist/appRegistryService.d.ts.map +1 -1
  3. package/dist/appRegistryService.js +25 -83
  4. package/dist/appRegistryService.js.map +1 -1
  5. package/dist/authenticatedServiceUtils.d.ts +32 -0
  6. package/dist/authenticatedServiceUtils.d.ts.map +1 -0
  7. package/dist/authenticatedServiceUtils.js +110 -0
  8. package/dist/authenticatedServiceUtils.js.map +1 -0
  9. package/dist/contactsService.d.ts +35 -0
  10. package/dist/contactsService.d.ts.map +1 -0
  11. package/dist/contactsService.js +45 -0
  12. package/dist/contactsService.js.map +1 -0
  13. package/dist/index.d.ts +2 -0
  14. package/dist/index.d.ts.map +1 -1
  15. package/dist/index.js +2 -0
  16. package/dist/index.js.map +1 -1
  17. package/dist/makeContactsRpcClient.d.ts +8 -0
  18. package/dist/makeContactsRpcClient.d.ts.map +1 -0
  19. package/dist/makeContactsRpcClient.js +40 -0
  20. package/dist/makeContactsRpcClient.js.map +1 -0
  21. package/dist/notificationService.d.ts +16 -5
  22. package/dist/notificationService.d.ts.map +1 -1
  23. package/dist/notificationService.js +19 -36
  24. package/dist/notificationService.js.map +1 -1
  25. package/dist/syncedStreamsExtension.d.ts.map +1 -1
  26. package/dist/syncedStreamsExtension.js +5 -1
  27. package/dist/syncedStreamsExtension.js.map +1 -1
  28. package/dist/tests/multi_ne/makeStreamRpcClient.test.js +1 -0
  29. package/dist/tests/multi_ne/makeStreamRpcClient.test.js.map +1 -1
  30. package/dist/tests/multi_ne/syncWithBlocks.test.js +1 -1
  31. package/dist/tests/multi_ne/syncWithBlocks.test.js.map +1 -1
  32. package/dist/tests/unit/syncedStreamsExtension.test.d.ts +2 -0
  33. package/dist/tests/unit/syncedStreamsExtension.test.d.ts.map +1 -0
  34. package/dist/tests/unit/syncedStreamsExtension.test.js +38 -0
  35. package/dist/tests/unit/syncedStreamsExtension.test.js.map +1 -0
  36. package/dist/townsEnv.d.ts +9 -4
  37. package/dist/townsEnv.d.ts.map +1 -1
  38. package/dist/townsEnv.js +38 -6
  39. package/dist/townsEnv.js.map +1 -1
  40. package/dist/views/models/timelineEvent.d.ts.map +1 -1
  41. package/dist/views/models/timelineEvent.js +1 -0
  42. package/dist/views/models/timelineEvent.js.map +1 -1
  43. package/dist/views/models/timelineTypes.d.ts +1 -0
  44. package/dist/views/models/timelineTypes.d.ts.map +1 -1
  45. package/dist/views/models/timelineTypes.js +3 -0
  46. package/dist/views/models/timelineTypes.js.map +1 -1
  47. package/package.json +8 -8
@@ -3,15 +3,26 @@ import { RpcOptions } from './rpcCommon';
3
3
  import { SignerContext } from './signerContext';
4
4
  import { type AppRegistryRpcClient } from './makeAppRegistryRpcClient';
5
5
  export declare class AppRegistryService {
6
- private static _authenticateCommon;
7
6
  static authenticate(signerContext: SignerContext, serviceUrl: string, opts?: RpcOptions): Promise<{
8
- startResponse: import("@towns-labs/proto").StartAuthenticationResponse;
9
- finishResponse: import("@towns-labs/proto").FinishAuthenticationResponse;
7
+ startResponse: import("@bufbuild/protobuf").Message<"river.StartAuthenticationResponse"> & {
8
+ userId: Uint8Array;
9
+ challenge: Uint8Array;
10
+ expiration?: import("@bufbuild/protobuf/wkt").Timestamp;
11
+ };
12
+ finishResponse: import("@bufbuild/protobuf").Message<"river.FinishAuthenticationResponse"> & {
13
+ sessionToken: string;
14
+ };
10
15
  appRegistryRpcClient: AppRegistryRpcClient;
11
16
  }>;
12
17
  static authenticateWithSigner(userId: string | Uint8Array, signer: Signer, serviceUrl: string, opts?: RpcOptions): Promise<{
13
- startResponse: import("@towns-labs/proto").StartAuthenticationResponse;
14
- finishResponse: import("@towns-labs/proto").FinishAuthenticationResponse;
18
+ startResponse: import("@bufbuild/protobuf").Message<"river.StartAuthenticationResponse"> & {
19
+ userId: Uint8Array;
20
+ challenge: Uint8Array;
21
+ expiration?: import("@bufbuild/protobuf/wkt").Timestamp;
22
+ };
23
+ finishResponse: import("@bufbuild/protobuf").Message<"river.FinishAuthenticationResponse"> & {
24
+ sessionToken: string;
25
+ };
15
26
  appRegistryRpcClient: AppRegistryRpcClient;
16
27
  }>;
17
28
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"appRegistryService.d.ts","sourceRoot":"","sources":["../src/appRegistryService.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAC/B,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AACxC,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAE/C,OAAO,EAA4B,KAAK,oBAAoB,EAAE,MAAM,4BAA4B,CAAA;AAIhG,qBAAa,kBAAkB;mBACN,mBAAmB;WAsC3B,YAAY,CAAC,aAAa,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,UAAU;;;;;WAkBhF,sBAAsB,CAC/B,MAAM,EAAE,MAAM,GAAG,UAAU,EAC3B,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,MAAM,EAClB,IAAI,CAAC,EAAE,UAAU;;;;;IAkBrB;;;;OAIG;IACH,MAAM,CAAC,YAAY,CACf,aAAa,EAAE,aAAa,EAC5B,UAAU,EAAE,MAAM,EAClB,IAAI,CAAC,EAAE,UAAU,GAClB,MAAM,OAAO,CAAC,oBAAoB,CAAC;CAgDzC"}
1
+ {"version":3,"file":"appRegistryService.d.ts","sourceRoot":"","sources":["../src/appRegistryService.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAC/B,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AACxC,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAC/C,OAAO,EAA4B,KAAK,oBAAoB,EAAE,MAAM,4BAA4B,CAAA;AAOhG,qBAAa,kBAAkB;WACd,YAAY,CAAC,aAAa,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,UAAU;;;;;;;;;;;WAkBhF,sBAAsB,CAC/B,MAAM,EAAE,MAAM,GAAG,UAAU,EAC3B,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,MAAM,EAClB,IAAI,CAAC,EAAE,UAAU;;;;;;;;;;;IAoBrB;;;;OAIG;IACH,MAAM,CAAC,YAAY,CACf,aAAa,EAAE,aAAa,EAC5B,UAAU,EAAE,MAAM,EAClB,IAAI,CAAC,EAAE,UAAU,GAClB,MAAM,OAAO,CAAC,oBAAoB,CAAC;CAYzC"}
@@ -1,50 +1,32 @@
1
- import { makeAuthenticationRpcClient } from './makeAuthenticationRpcClient';
2
- import { bin_fromHexString, check } from '@towns-labs/utils';
3
- import { meganodeAuthHash, riverSign } from './sign';
4
- import { isDefined } from './check';
5
- import { hashPersonalMessage } from '@ethereumjs/util';
6
1
  import { makeAppRegistryRpcClient } from './makeAppRegistryRpcClient';
7
- import { Err } from '@towns-labs/proto';
8
- import { errorContains } from './rpcInterceptors';
2
+ import { authenticateWithSigner, authenticateWithSignerContext, createReauthenticatingClientFactory, } from './authenticatedServiceUtils';
9
3
  export class AppRegistryService {
10
- static async _authenticateCommon(userId, serviceUrl, opts, getSignature, extraFinishAuthParams) {
11
- const authenticationRpcClient = makeAuthenticationRpcClient(serviceUrl, opts);
12
- const startResponse = await authenticationRpcClient.startAuthentication({ userId });
13
- check(startResponse.challenge.length >= 16, 'challenge must be 16 bytes');
14
- check(isDefined(startResponse.expiration), 'expiration must be defined');
15
- const hash = meganodeAuthHash(userId, startResponse.expiration.seconds, startResponse.challenge);
16
- const signature = await getSignature(hash);
17
- const finishResponse = await authenticationRpcClient.finishAuthentication({
18
- userId,
19
- challenge: startResponse.challenge,
20
- signature,
21
- ...extraFinishAuthParams,
4
+ static async authenticate(signerContext, serviceUrl, opts) {
5
+ const { startResponse, finishResponse, rpcClient: appRegistryRpcClient, } = await authenticateWithSignerContext({
6
+ signerContext,
7
+ serviceUrl,
8
+ opts,
9
+ makeRpcClient: makeAppRegistryRpcClient,
22
10
  });
23
- const appRegistryRpcClient = makeAppRegistryRpcClient(serviceUrl, finishResponse.sessionToken, opts);
24
11
  return {
25
12
  startResponse,
26
13
  finishResponse,
27
14
  appRegistryRpcClient,
28
15
  };
29
16
  }
30
- static async authenticate(signerContext, serviceUrl, opts) {
31
- const userId = signerContext.creatorAddress;
32
- return this._authenticateCommon(userId, serviceUrl, opts, async (hashSrc) => {
33
- const hash = hashPersonalMessage(hashSrc);
34
- return await riverSign(hash, signerContext.signerPrivateKey());
35
- }, {
36
- delegateSig: signerContext.delegateSig,
37
- delegateExpiryEpochMs: signerContext.delegateExpiryEpochMs,
38
- });
39
- }
40
17
  static async authenticateWithSigner(userId, signer, serviceUrl, opts) {
41
- if (typeof userId === 'string') {
42
- userId = bin_fromHexString(userId);
43
- }
44
- return this._authenticateCommon(userId, serviceUrl, opts, async (hash) => {
45
- const sigHex = await signer.signMessage(hash);
46
- return bin_fromHexString(sigHex);
47
- }, {});
18
+ const { startResponse, finishResponse, rpcClient: appRegistryRpcClient, } = await authenticateWithSigner({
19
+ userId,
20
+ signer,
21
+ serviceUrl,
22
+ opts,
23
+ makeRpcClient: makeAppRegistryRpcClient,
24
+ });
25
+ return {
26
+ startResponse,
27
+ finishResponse,
28
+ appRegistryRpcClient,
29
+ };
48
30
  }
49
31
  /**
50
32
  * Creates a lazy, self-healing app registry client that automatically
@@ -52,52 +34,12 @@ export class AppRegistryService {
52
34
  * Concurrent re-auth attempts are coalesced into a single authentication call.
53
35
  */
54
36
  static createClient(signerContext, serviceUrl, opts) {
55
- let currentClient;
56
- let reAuthPromise;
57
- let proxy;
58
- const reAuthenticate = async () => {
59
- if (!reAuthPromise) {
60
- reAuthPromise = this.authenticate(signerContext, serviceUrl, opts)
61
- .then((result) => {
62
- currentClient = result.appRegistryRpcClient;
63
- })
64
- .finally(() => {
65
- reAuthPromise = undefined;
66
- });
67
- }
68
- return reAuthPromise;
69
- };
70
- return async () => {
71
- if (!currentClient) {
72
- await reAuthenticate();
73
- }
74
- if (!proxy) {
75
- /* eslint-disable @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-unsafe-return, @typescript-eslint/no-unsafe-call */
76
- proxy = new Proxy({}, {
77
- get(_target, prop) {
78
- const client = currentClient;
79
- const value = client[prop];
80
- if (typeof value !== 'function')
81
- return value;
82
- return async (...args) => {
83
- try {
84
- return await value.apply(client, args);
85
- }
86
- catch (err) {
87
- if (errorContains(err, Err.UNAUTHENTICATED)) {
88
- await reAuthenticate();
89
- const newClient = currentClient;
90
- return await newClient[prop].apply(newClient, args);
91
- }
92
- throw err;
93
- }
94
- };
95
- },
96
- });
97
- /* eslint-enable @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-unsafe-return, @typescript-eslint/no-unsafe-call */
98
- }
99
- return proxy;
100
- };
37
+ return createReauthenticatingClientFactory({
38
+ authenticate: async () => {
39
+ const { appRegistryRpcClient } = await this.authenticate(signerContext, serviceUrl, opts);
40
+ return appRegistryRpcClient;
41
+ },
42
+ });
101
43
  }
102
44
  }
103
45
  //# sourceMappingURL=appRegistryService.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"appRegistryService.js","sourceRoot":"","sources":["../src/appRegistryService.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"appRegistryService.js","sourceRoot":"","sources":["../src/appRegistryService.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,wBAAwB,EAA6B,MAAM,4BAA4B,CAAA;AAChG,OAAO,EACH,sBAAsB,EACtB,6BAA6B,EAC7B,mCAAmC,GACtC,MAAM,6BAA6B,CAAA;AAEpC,MAAM,OAAO,kBAAkB;IAC3B,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,aAA4B,EAAE,UAAkB,EAAE,IAAiB;QACzF,MAAM,EACF,aAAa,EACb,cAAc,EACd,SAAS,EAAE,oBAAoB,GAClC,GAAG,MAAM,6BAA6B,CAAC;YACpC,aAAa;YACb,UAAU;YACV,IAAI;YACJ,aAAa,EAAE,wBAAwB;SAC1C,CAAC,CAAA;QACF,OAAO;YACH,aAAa;YACb,cAAc;YACd,oBAAoB;SACvB,CAAA;IACL,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,sBAAsB,CAC/B,MAA2B,EAC3B,MAAc,EACd,UAAkB,EAClB,IAAiB;QAEjB,MAAM,EACF,aAAa,EACb,cAAc,EACd,SAAS,EAAE,oBAAoB,GAClC,GAAG,MAAM,sBAAsB,CAAC;YAC7B,MAAM;YACN,MAAM;YACN,UAAU;YACV,IAAI;YACJ,aAAa,EAAE,wBAAwB;SAC1C,CAAC,CAAA;QACF,OAAO;YACH,aAAa;YACb,cAAc;YACd,oBAAoB;SACvB,CAAA;IACL,CAAC;IAED;;;;OAIG;IACH,MAAM,CAAC,YAAY,CACf,aAA4B,EAC5B,UAAkB,EAClB,IAAiB;QAEjB,OAAO,mCAAmC,CAAC;YACvC,YAAY,EAAE,KAAK,IAAI,EAAE;gBACrB,MAAM,EAAE,oBAAoB,EAAE,GAAG,MAAM,IAAI,CAAC,YAAY,CACpD,aAAa,EACb,UAAU,EACV,IAAI,CACP,CAAA;gBACD,OAAO,oBAAoB,CAAA;YAC/B,CAAC;SACJ,CAAC,CAAA;IACN,CAAC;CACJ"}
@@ -0,0 +1,32 @@
1
+ import { Signer } from 'ethers';
2
+ import { type AuthenticationRpcClient } from './makeAuthenticationRpcClient';
3
+ import { RpcOptions } from './rpcCommon';
4
+ import { SignerContext } from './signerContext';
5
+ type StartAuthenticationResponse = Awaited<ReturnType<AuthenticationRpcClient['startAuthentication']>>;
6
+ type FinishAuthenticationResponse = Awaited<ReturnType<AuthenticationRpcClient['finishAuthentication']>>;
7
+ type AuthenticateCommonResult<TRpcClient> = {
8
+ startResponse: StartAuthenticationResponse;
9
+ finishResponse: FinishAuthenticationResponse;
10
+ rpcClient: TRpcClient;
11
+ };
12
+ type AuthenticateWithSignerContextParams<TRpcClient> = {
13
+ signerContext: SignerContext;
14
+ serviceUrl: string;
15
+ opts?: RpcOptions;
16
+ makeRpcClient: (serviceUrl: string, sessionToken: string, opts?: RpcOptions) => TRpcClient;
17
+ };
18
+ export declare function authenticateWithSignerContext<TRpcClient>({ signerContext, serviceUrl, opts, makeRpcClient, }: AuthenticateWithSignerContextParams<TRpcClient>): Promise<AuthenticateCommonResult<TRpcClient>>;
19
+ type AuthenticateWithSignerParams<TRpcClient> = {
20
+ userId: string | Uint8Array;
21
+ signer: Signer;
22
+ serviceUrl: string;
23
+ opts?: RpcOptions;
24
+ makeRpcClient: (serviceUrl: string, sessionToken: string, opts?: RpcOptions) => TRpcClient;
25
+ };
26
+ export declare function authenticateWithSigner<TRpcClient>({ userId, signer, serviceUrl, opts, makeRpcClient, }: AuthenticateWithSignerParams<TRpcClient>): Promise<AuthenticateCommonResult<TRpcClient>>;
27
+ type ReauthenticatingClientParams<TClient extends object> = {
28
+ authenticate: () => Promise<TClient>;
29
+ };
30
+ export declare function createReauthenticatingClientFactory<TClient extends object>({ authenticate, }: ReauthenticatingClientParams<TClient>): () => Promise<TClient>;
31
+ export {};
32
+ //# sourceMappingURL=authenticatedServiceUtils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"authenticatedServiceUtils.d.ts","sourceRoot":"","sources":["../src/authenticatedServiceUtils.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAI/B,OAAO,EAEH,KAAK,uBAAuB,EAC/B,MAAM,+BAA+B,CAAA;AACtC,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAGxC,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAE/C,KAAK,2BAA2B,GAAG,OAAO,CACtC,UAAU,CAAC,uBAAuB,CAAC,qBAAqB,CAAC,CAAC,CAC7D,CAAA;AACD,KAAK,4BAA4B,GAAG,OAAO,CACvC,UAAU,CAAC,uBAAuB,CAAC,sBAAsB,CAAC,CAAC,CAC9D,CAAA;AAED,KAAK,wBAAwB,CAAC,UAAU,IAAI;IACxC,aAAa,EAAE,2BAA2B,CAAA;IAC1C,cAAc,EAAE,4BAA4B,CAAA;IAC5C,SAAS,EAAE,UAAU,CAAA;CACxB,CAAA;AA0CD,KAAK,mCAAmC,CAAC,UAAU,IAAI;IACnD,aAAa,EAAE,aAAa,CAAA;IAC5B,UAAU,EAAE,MAAM,CAAA;IAClB,IAAI,CAAC,EAAE,UAAU,CAAA;IACjB,aAAa,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,UAAU,KAAK,UAAU,CAAA;CAC7F,CAAA;AAED,wBAAsB,6BAA6B,CAAC,UAAU,EAAE,EAC5D,aAAa,EACb,UAAU,EACV,IAAI,EACJ,aAAa,GAChB,EAAE,mCAAmC,CAAC,UAAU,CAAC,GAAG,OAAO,CAAC,wBAAwB,CAAC,UAAU,CAAC,CAAC,CAejG;AAED,KAAK,4BAA4B,CAAC,UAAU,IAAI;IAC5C,MAAM,EAAE,MAAM,GAAG,UAAU,CAAA;IAC3B,MAAM,EAAE,MAAM,CAAA;IACd,UAAU,EAAE,MAAM,CAAA;IAClB,IAAI,CAAC,EAAE,UAAU,CAAA;IACjB,aAAa,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,UAAU,KAAK,UAAU,CAAA;CAC7F,CAAA;AAED,wBAAsB,sBAAsB,CAAC,UAAU,EAAE,EACrD,MAAM,EACN,MAAM,EACN,UAAU,EACV,IAAI,EACJ,aAAa,GAChB,EAAE,4BAA4B,CAAC,UAAU,CAAC,GAAG,OAAO,CAAC,wBAAwB,CAAC,UAAU,CAAC,CAAC,CAa1F;AAED,KAAK,4BAA4B,CAAC,OAAO,SAAS,MAAM,IAAI;IACxD,YAAY,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,CAAA;CACvC,CAAA;AAED,wBAAgB,mCAAmC,CAAC,OAAO,SAAS,MAAM,EAAE,EACxE,YAAY,GACf,EAAE,4BAA4B,CAAC,OAAO,CAAC,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,CAqDhE"}
@@ -0,0 +1,110 @@
1
+ import { hashPersonalMessage } from '@ethereumjs/util';
2
+ import { bin_fromHexString, check } from '@towns-labs/utils';
3
+ import { Err } from '@towns-labs/proto';
4
+ import { isDefined } from './check';
5
+ import { makeAuthenticationRpcClient, } from './makeAuthenticationRpcClient';
6
+ import { errorContains } from './rpcInterceptors';
7
+ import { meganodeAuthHash, riverSign } from './sign';
8
+ async function authenticateCommon({ userId, serviceUrl, opts, getSignature, extraFinishAuthParams, makeRpcClient, }) {
9
+ const authenticationRpcClient = makeAuthenticationRpcClient(serviceUrl, opts);
10
+ const startResponse = await authenticationRpcClient.startAuthentication({ userId });
11
+ check(startResponse.challenge.length >= 16, 'challenge must be 16 bytes');
12
+ check(isDefined(startResponse.expiration), 'expiration must be defined');
13
+ const hash = meganodeAuthHash(userId, startResponse.expiration.seconds, startResponse.challenge);
14
+ const signature = await getSignature(hash);
15
+ const finishResponse = await authenticationRpcClient.finishAuthentication({
16
+ userId,
17
+ challenge: startResponse.challenge,
18
+ signature,
19
+ ...extraFinishAuthParams,
20
+ });
21
+ return {
22
+ startResponse,
23
+ finishResponse,
24
+ rpcClient: makeRpcClient(serviceUrl, finishResponse.sessionToken, opts),
25
+ };
26
+ }
27
+ export async function authenticateWithSignerContext({ signerContext, serviceUrl, opts, makeRpcClient, }) {
28
+ return authenticateCommon({
29
+ userId: signerContext.creatorAddress,
30
+ serviceUrl,
31
+ opts,
32
+ getSignature: async (hashSrc) => {
33
+ const hash = hashPersonalMessage(hashSrc);
34
+ return await riverSign(hash, signerContext.signerPrivateKey());
35
+ },
36
+ extraFinishAuthParams: {
37
+ delegateSig: signerContext.delegateSig,
38
+ delegateExpiryEpochMs: signerContext.delegateExpiryEpochMs,
39
+ },
40
+ makeRpcClient,
41
+ });
42
+ }
43
+ export async function authenticateWithSigner({ userId, signer, serviceUrl, opts, makeRpcClient, }) {
44
+ const userIdBytes = typeof userId === 'string' ? bin_fromHexString(userId) : userId;
45
+ return authenticateCommon({
46
+ userId: userIdBytes,
47
+ serviceUrl,
48
+ opts,
49
+ getSignature: async (hash) => {
50
+ const sigHex = await signer.signMessage(hash);
51
+ return bin_fromHexString(sigHex);
52
+ },
53
+ extraFinishAuthParams: {},
54
+ makeRpcClient,
55
+ });
56
+ }
57
+ export function createReauthenticatingClientFactory({ authenticate, }) {
58
+ let currentClient;
59
+ let reAuthPromise;
60
+ let proxy;
61
+ const reAuthenticate = async () => {
62
+ if (!reAuthPromise) {
63
+ reAuthPromise = authenticate()
64
+ .then((client) => {
65
+ currentClient = client;
66
+ })
67
+ .finally(() => {
68
+ reAuthPromise = undefined;
69
+ });
70
+ }
71
+ return reAuthPromise;
72
+ };
73
+ return async () => {
74
+ if (!currentClient) {
75
+ await reAuthenticate();
76
+ }
77
+ if (!proxy) {
78
+ /* eslint-disable @typescript-eslint/no-unsafe-return */
79
+ proxy = new Proxy({}, {
80
+ get(_target, prop) {
81
+ const client = currentClient;
82
+ const value = client[prop];
83
+ if (typeof value !== 'function') {
84
+ return value;
85
+ }
86
+ return async (...args) => {
87
+ try {
88
+ return await value.apply(client, args);
89
+ }
90
+ catch (err) {
91
+ if (errorContains(err, Err.UNAUTHENTICATED)) {
92
+ await reAuthenticate();
93
+ const newClient = currentClient;
94
+ const newValue = newClient[prop];
95
+ if (typeof newValue !== 'function') {
96
+ return newValue;
97
+ }
98
+ return await newValue.apply(newClient, args);
99
+ }
100
+ throw err;
101
+ }
102
+ };
103
+ },
104
+ });
105
+ /* eslint-enable @typescript-eslint/no-unsafe-return */
106
+ }
107
+ return proxy;
108
+ };
109
+ }
110
+ //# sourceMappingURL=authenticatedServiceUtils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"authenticatedServiceUtils.js","sourceRoot":"","sources":["../src/authenticatedServiceUtils.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,35 @@
1
+ import { type ContactsRpcClient } from './makeContactsRpcClient';
2
+ import { Signer } from 'ethers';
3
+ import { RpcOptions } from './rpcCommon';
4
+ import { SignerContext } from './signerContext';
5
+ export declare class ContactsService {
6
+ static authenticate(signerContext: SignerContext, serviceUrl: string, opts?: RpcOptions): Promise<{
7
+ startResponse: import("@bufbuild/protobuf").Message<"river.StartAuthenticationResponse"> & {
8
+ userId: Uint8Array;
9
+ challenge: Uint8Array;
10
+ expiration?: import("@bufbuild/protobuf/wkt").Timestamp;
11
+ };
12
+ finishResponse: import("@bufbuild/protobuf").Message<"river.FinishAuthenticationResponse"> & {
13
+ sessionToken: string;
14
+ };
15
+ contactsRpcClient: ContactsRpcClient;
16
+ }>;
17
+ static authenticateWithSigner(userId: string | Uint8Array, signer: Signer, serviceUrl: string, opts?: RpcOptions): Promise<{
18
+ startResponse: import("@bufbuild/protobuf").Message<"river.StartAuthenticationResponse"> & {
19
+ userId: Uint8Array;
20
+ challenge: Uint8Array;
21
+ expiration?: import("@bufbuild/protobuf/wkt").Timestamp;
22
+ };
23
+ finishResponse: import("@bufbuild/protobuf").Message<"river.FinishAuthenticationResponse"> & {
24
+ sessionToken: string;
25
+ };
26
+ contactsRpcClient: ContactsRpcClient;
27
+ }>;
28
+ /**
29
+ * Creates a lazy, self-healing contacts client that automatically
30
+ * re-authenticates when the session token expires (UNAUTHENTICATED error).
31
+ * Concurrent re-auth attempts are coalesced into a single authentication call.
32
+ */
33
+ static createClient(signerContext: SignerContext, serviceUrl: string, opts?: RpcOptions): () => Promise<ContactsRpcClient>;
34
+ }
35
+ //# sourceMappingURL=contactsService.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"contactsService.d.ts","sourceRoot":"","sources":["../src/contactsService.ts"],"names":[],"mappings":"AAAA,OAAO,EAAyB,KAAK,iBAAiB,EAAE,MAAM,yBAAyB,CAAA;AACvF,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAC/B,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AACxC,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAO/C,qBAAa,eAAe;WACX,YAAY,CAAC,aAAa,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,UAAU;;;;;;;;;;;WAkBhF,sBAAsB,CAC/B,MAAM,EAAE,MAAM,GAAG,UAAU,EAC3B,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,MAAM,EAClB,IAAI,CAAC,EAAE,UAAU;;;;;;;;;;;IAoBrB;;;;OAIG;IACH,MAAM,CAAC,YAAY,CACf,aAAa,EAAE,aAAa,EAC5B,UAAU,EAAE,MAAM,EAClB,IAAI,CAAC,EAAE,UAAU,GAClB,MAAM,OAAO,CAAC,iBAAiB,CAAC;CAYtC"}
@@ -0,0 +1,45 @@
1
+ import { makeContactsRpcClient } from './makeContactsRpcClient';
2
+ import { authenticateWithSigner, authenticateWithSignerContext, createReauthenticatingClientFactory, } from './authenticatedServiceUtils';
3
+ export class ContactsService {
4
+ static async authenticate(signerContext, serviceUrl, opts) {
5
+ const { startResponse, finishResponse, rpcClient: contactsRpcClient, } = await authenticateWithSignerContext({
6
+ signerContext,
7
+ serviceUrl,
8
+ opts,
9
+ makeRpcClient: makeContactsRpcClient,
10
+ });
11
+ return {
12
+ startResponse,
13
+ finishResponse,
14
+ contactsRpcClient,
15
+ };
16
+ }
17
+ static async authenticateWithSigner(userId, signer, serviceUrl, opts) {
18
+ const { startResponse, finishResponse, rpcClient: contactsRpcClient, } = await authenticateWithSigner({
19
+ userId,
20
+ signer,
21
+ serviceUrl,
22
+ opts,
23
+ makeRpcClient: makeContactsRpcClient,
24
+ });
25
+ return {
26
+ startResponse,
27
+ finishResponse,
28
+ contactsRpcClient,
29
+ };
30
+ }
31
+ /**
32
+ * Creates a lazy, self-healing contacts client that automatically
33
+ * re-authenticates when the session token expires (UNAUTHENTICATED error).
34
+ * Concurrent re-auth attempts are coalesced into a single authentication call.
35
+ */
36
+ static createClient(signerContext, serviceUrl, opts) {
37
+ return createReauthenticatingClientFactory({
38
+ authenticate: async () => {
39
+ const { contactsRpcClient } = await this.authenticate(signerContext, serviceUrl, opts);
40
+ return contactsRpcClient;
41
+ },
42
+ });
43
+ }
44
+ }
45
+ //# sourceMappingURL=contactsService.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"contactsService.js","sourceRoot":"","sources":["../src/contactsService.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAA0B,MAAM,yBAAyB,CAAA;AAIvF,OAAO,EACH,sBAAsB,EACtB,6BAA6B,EAC7B,mCAAmC,GACtC,MAAM,6BAA6B,CAAA;AAEpC,MAAM,OAAO,eAAe;IACxB,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,aAA4B,EAAE,UAAkB,EAAE,IAAiB;QACzF,MAAM,EACF,aAAa,EACb,cAAc,EACd,SAAS,EAAE,iBAAiB,GAC/B,GAAG,MAAM,6BAA6B,CAAC;YACpC,aAAa;YACb,UAAU;YACV,IAAI;YACJ,aAAa,EAAE,qBAAqB;SACvC,CAAC,CAAA;QACF,OAAO;YACH,aAAa;YACb,cAAc;YACd,iBAAiB;SACpB,CAAA;IACL,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,sBAAsB,CAC/B,MAA2B,EAC3B,MAAc,EACd,UAAkB,EAClB,IAAiB;QAEjB,MAAM,EACF,aAAa,EACb,cAAc,EACd,SAAS,EAAE,iBAAiB,GAC/B,GAAG,MAAM,sBAAsB,CAAC;YAC7B,MAAM;YACN,MAAM;YACN,UAAU;YACV,IAAI;YACJ,aAAa,EAAE,qBAAqB;SACvC,CAAC,CAAA;QACF,OAAO;YACH,aAAa;YACb,cAAc;YACd,iBAAiB;SACpB,CAAA;IACL,CAAC;IAED;;;;OAIG;IACH,MAAM,CAAC,YAAY,CACf,aAA4B,EAC5B,UAAkB,EAClB,IAAiB;QAEjB,OAAO,mCAAmC,CAAC;YACvC,YAAY,EAAE,KAAK,IAAI,EAAE;gBACrB,MAAM,EAAE,iBAAiB,EAAE,GAAG,MAAM,IAAI,CAAC,YAAY,CACjD,aAAa,EACb,UAAU,EACV,IAAI,CACP,CAAA;gBACD,OAAO,iBAAiB,CAAA;YAC5B,CAAC;SACJ,CAAC,CAAA;IACN,CAAC;CACJ"}
package/dist/index.d.ts CHANGED
@@ -6,6 +6,7 @@ export * from './check';
6
6
  export * from './client-v2';
7
7
  export * from './client';
8
8
  export * from './clientDecryptionExtensions';
9
+ export * from './contactsService';
9
10
  export * from './createApp';
10
11
  export * from './registerWebhook';
11
12
  export * from './updateAppSettings';
@@ -14,6 +15,7 @@ export * from './encryptedContentTypes';
14
15
  export * from './id';
15
16
  export * from './makeAppRegistryRpcClient';
16
17
  export * from './makeAuthenticationRpcClient';
18
+ export * from './makeContactsRpcClient';
17
19
  export * from './makeNotificationRpcClient';
18
20
  export * from './makeStreamRpcClient';
19
21
  export * from './migrations/migrateSnapshot';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -6,6 +6,7 @@ export * from './check';
6
6
  export * from './client-v2';
7
7
  export * from './client';
8
8
  export * from './clientDecryptionExtensions';
9
+ export * from './contactsService';
9
10
  export * from './createApp';
10
11
  export * from './registerWebhook';
11
12
  export * from './updateAppSettings';
@@ -14,6 +15,7 @@ export * from './encryptedContentTypes';
14
15
  export * from './id';
15
16
  export * from './makeAppRegistryRpcClient';
16
17
  export * from './makeAuthenticationRpcClient';
18
+ export * from './makeContactsRpcClient';
17
19
  export * from './makeNotificationRpcClient';
18
20
  export * from './makeStreamRpcClient';
19
21
  export * from './migrations/migrateSnapshot';
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import type { Client } from '@towns-labs/rpc-connector/common';
2
+ import { ContactsService } from '@towns-labs/proto';
3
+ import { RpcOptions } from './rpcCommon';
4
+ export type ContactsRpcClient = Client<typeof ContactsService> & {
5
+ url: string;
6
+ };
7
+ export declare function makeContactsRpcClient(dest: string, sessionToken: string, opts?: RpcOptions): ContactsRpcClient;
8
+ //# sourceMappingURL=makeContactsRpcClient.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"makeContactsRpcClient.d.ts","sourceRoot":"","sources":["../src/makeContactsRpcClient.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAA2B,MAAM,kCAAkC,CAAA;AACvF,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AAGnD,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAaxC,MAAM,MAAM,iBAAiB,GAAG,MAAM,CAAC,OAAO,eAAe,CAAC,GAAG;IAAE,GAAG,EAAE,MAAM,CAAA;CAAE,CAAA;AAEhF,wBAAgB,qBAAqB,CACjC,IAAI,EAAE,MAAM,EACZ,YAAY,EAAE,MAAM,EACpB,IAAI,CAAC,EAAE,UAAU,GAClB,iBAAiB,CAoCnB"}
@@ -0,0 +1,40 @@
1
+ import { createClient } from '@towns-labs/rpc-connector/common';
2
+ import { ContactsService } from '@towns-labs/proto';
3
+ import { dlog } from '@towns-labs/utils';
4
+ import { getEnvVar, randomUrlSelector } from './utils';
5
+ import { createHttp2ConnectTransport } from '@towns-labs/rpc-connector';
6
+ import { DEFAULT_RETRY_PARAMS, loggingInterceptor, retryInterceptor, setHeaderInterceptor, } from './rpcInterceptors';
7
+ const logInfo = dlog('csb:rpc:info');
8
+ let nextRpcClientNum = 0;
9
+ export function makeContactsRpcClient(dest, sessionToken, opts) {
10
+ const transportId = nextRpcClientNum++;
11
+ const retryParams = opts?.retryParams ?? DEFAULT_RETRY_PARAMS;
12
+ const url = randomUrlSelector(dest);
13
+ logInfo('makeContactsRpcClient: Connecting to url=', url, ' allUrls=', dest, ' transportId =', transportId);
14
+ const options = {
15
+ baseUrl: url,
16
+ interceptors: [
17
+ ...(opts?.interceptors ?? []),
18
+ setHeaderInterceptor({ Authorization: sessionToken }),
19
+ loggingInterceptor(transportId, 'ContactsService'),
20
+ retryInterceptor(retryParams),
21
+ ],
22
+ defaultTimeoutMs: undefined, // default timeout is undefined, we add a timeout in the retryInterceptor
23
+ };
24
+ if (getEnvVar('RIVER_DEBUG_TRANSPORT') !== 'true') {
25
+ options.useBinaryFormat = true;
26
+ }
27
+ else {
28
+ logInfo('makeContactsRpcClient: running in debug mode, using JSON format');
29
+ options.useBinaryFormat = false;
30
+ options.jsonOptions = {
31
+ alwaysEmitImplicit: true,
32
+ useProtoFieldName: true,
33
+ };
34
+ }
35
+ const transport = createHttp2ConnectTransport(options);
36
+ const client = createClient(ContactsService, transport);
37
+ client.url = url;
38
+ return client;
39
+ }
40
+ //# sourceMappingURL=makeContactsRpcClient.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"makeContactsRpcClient.js","sourceRoot":"","sources":["../src/makeContactsRpcClient.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAA;AAE/D,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AACnD,OAAO,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAA;AACxC,OAAO,EAAE,SAAS,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAA;AAEtD,OAAO,EAAE,2BAA2B,EAAE,MAAM,2BAA2B,CAAA;AACvE,OAAO,EACH,oBAAoB,EACpB,kBAAkB,EAClB,gBAAgB,EAChB,oBAAoB,GACvB,MAAM,mBAAmB,CAAA;AAE1B,MAAM,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC,CAAA;AAEpC,IAAI,gBAAgB,GAAG,CAAC,CAAA;AAIxB,MAAM,UAAU,qBAAqB,CACjC,IAAY,EACZ,YAAoB,EACpB,IAAiB;IAEjB,MAAM,WAAW,GAAG,gBAAgB,EAAE,CAAA;IACtC,MAAM,WAAW,GAAG,IAAI,EAAE,WAAW,IAAI,oBAAoB,CAAA;IAC7D,MAAM,GAAG,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAA;IACnC,OAAO,CACH,2CAA2C,EAC3C,GAAG,EACH,WAAW,EACX,IAAI,EACJ,gBAAgB,EAChB,WAAW,CACd,CAAA;IACD,MAAM,OAAO,GAA4B;QACrC,OAAO,EAAE,GAAG;QACZ,YAAY,EAAE;YACV,GAAG,CAAC,IAAI,EAAE,YAAY,IAAI,EAAE,CAAC;YAC7B,oBAAoB,CAAC,EAAE,aAAa,EAAE,YAAY,EAAE,CAAC;YACrD,kBAAkB,CAAC,WAAW,EAAE,iBAAiB,CAAC;YAClD,gBAAgB,CAAC,WAAW,CAAC;SAChC;QACD,gBAAgB,EAAE,SAAS,EAAE,yEAAyE;KACzG,CAAA;IACD,IAAI,SAAS,CAAC,uBAAuB,CAAC,KAAK,MAAM,EAAE,CAAC;QAChD,OAAO,CAAC,eAAe,GAAG,IAAI,CAAA;IAClC,CAAC;SAAM,CAAC;QACJ,OAAO,CAAC,iEAAiE,CAAC,CAAA;QAC1E,OAAO,CAAC,eAAe,GAAG,KAAK,CAAA;QAC/B,OAAO,CAAC,WAAW,GAAG;YAClB,kBAAkB,EAAE,IAAI;YACxB,iBAAiB,EAAE,IAAI;SAC1B,CAAA;IACL,CAAC;IACD,MAAM,SAAS,GAAG,2BAA2B,CAAC,OAAO,CAAC,CAAA;IACtD,MAAM,MAAM,GAAG,YAAY,CAAC,eAAe,EAAE,SAAS,CAAsB,CAAA;IAC5E,MAAM,CAAC,GAAG,GAAG,GAAG,CAAA;IAChB,OAAO,MAAM,CAAA;AACjB,CAAC"}
@@ -2,15 +2,26 @@ import { Signer } from 'ethers';
2
2
  import { RpcOptions } from './rpcCommon';
3
3
  import { SignerContext } from './signerContext';
4
4
  export declare class NotificationService {
5
- private static _authenticateCommon;
6
5
  static authenticate(signerContext: SignerContext, serviceUrl: string, opts?: RpcOptions): Promise<{
7
- startResponse: import("@towns-labs/proto").StartAuthenticationResponse;
8
- finishResponse: import("@towns-labs/proto").FinishAuthenticationResponse;
6
+ startResponse: import("@bufbuild/protobuf").Message<"river.StartAuthenticationResponse"> & {
7
+ userId: Uint8Array;
8
+ challenge: Uint8Array;
9
+ expiration?: import("@bufbuild/protobuf/wkt").Timestamp;
10
+ };
11
+ finishResponse: import("@bufbuild/protobuf").Message<"river.FinishAuthenticationResponse"> & {
12
+ sessionToken: string;
13
+ };
9
14
  notificationRpcClient: import("./makeNotificationRpcClient").NotificationRpcClient;
10
15
  }>;
11
16
  static authenticateWithSigner(userId: string | Uint8Array, signer: Signer, serviceUrl: string, opts?: RpcOptions): Promise<{
12
- startResponse: import("@towns-labs/proto").StartAuthenticationResponse;
13
- finishResponse: import("@towns-labs/proto").FinishAuthenticationResponse;
17
+ startResponse: import("@bufbuild/protobuf").Message<"river.StartAuthenticationResponse"> & {
18
+ userId: Uint8Array;
19
+ challenge: Uint8Array;
20
+ expiration?: import("@bufbuild/protobuf/wkt").Timestamp;
21
+ };
22
+ finishResponse: import("@bufbuild/protobuf").Message<"river.FinishAuthenticationResponse"> & {
23
+ sessionToken: string;
24
+ };
14
25
  notificationRpcClient: import("./makeNotificationRpcClient").NotificationRpcClient;
15
26
  }>;
16
27
  }
@@ -1 +1 @@
1
- {"version":3,"file":"notificationService.d.ts","sourceRoot":"","sources":["../src/notificationService.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAC/B,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AACxC,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAI/C,qBAAa,mBAAmB;mBACP,mBAAmB;WAsC3B,YAAY,CAAC,aAAa,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,UAAU;;;;;WAkBhF,sBAAsB,CAC/B,MAAM,EAAE,MAAM,GAAG,UAAU,EAC3B,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,MAAM,EAClB,IAAI,CAAC,EAAE,UAAU;;;;;CAiBxB"}
1
+ {"version":3,"file":"notificationService.d.ts","sourceRoot":"","sources":["../src/notificationService.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAC/B,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AACxC,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAG/C,qBAAa,mBAAmB;WACf,YAAY,CAAC,aAAa,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,UAAU;;;;;;;;;;;WAkBhF,sBAAsB,CAC/B,MAAM,EAAE,MAAM,GAAG,UAAU,EAC3B,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,MAAM,EAClB,IAAI,CAAC,EAAE,UAAU;;;;;;;;;;;CAmBxB"}