@wireapp/api-client 26.2.4 → 26.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.
@@ -25,6 +25,8 @@ export declare class ClientAPI {
25
25
  CAPABILITIES: string;
26
26
  PREKEYS: string;
27
27
  PUBLIC_KEYS: string;
28
+ NONCE: string;
29
+ ACCESS_TOKEN: string;
28
30
  };
29
31
  postClient(newClient: CreateClientPayload): Promise<RegisteredClient>;
30
32
  putClient(clientId: string, updatedClient: UpdateClientPayload): Promise<void>;
@@ -45,6 +47,13 @@ export declare class ClientAPI {
45
47
  * @param {string[]} keyPackages The key packages to upload
46
48
  */
47
49
  uploadMLSKeyPackages(clientId: string, keyPackages: string[]): Promise<void>;
50
+ /**
51
+ * Will delete keypackages for an MLS capable client
52
+ * @see https://nginz-https.elna.wire.link/v4/api/swagger-ui/#/default/delete_mls_key_packages_self__client_
53
+ * @param {string} clientId The client to delete the key packages for
54
+ * @param {string[]} keyPackageRefs The key package references to delete
55
+ */
56
+ deleteMLSKeyPackages(clientId: string, keyPackageRefs: string[]): Promise<void>;
48
57
  /**
49
58
  * Claim one key package for each client of the given user
50
59
  * @param {string} userId The user to claim the key packages for
@@ -67,6 +76,12 @@ export declare class ClientAPI {
67
76
  * @see https://staging-nginz-https.zinfra.io/api/swagger-ui/#/default/get_mls_public_keys
68
77
  */
69
78
  getPublicKeys(): Promise<PublicKeys>;
79
+ getNonce(clientId: string): Promise<string>;
80
+ getAccessToken(clientId: string, dpopToken: Uint8Array): Promise<{
81
+ type: "DPoP";
82
+ expires_in: number;
83
+ token: string;
84
+ }>;
70
85
  }
71
86
  export {};
72
87
  //# sourceMappingURL=ClientAPI.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ClientAPI.d.ts","sourceRoot":"","sources":["../../src/client/ClientAPI.ts"],"names":[],"mappings":"AAqBA,OAAO,EAAC,oBAAoB,EAAC,MAAM,wBAAwB,CAAC;AAI5D,OAAO,EAAC,mBAAmB,EAAE,gBAAgB,EAAE,mBAAmB,EAAC,MAAM,YAAY,CAAC;AACtF,OAAO,EAAkC,UAAU,EAAC,MAAM,UAAU,CAAC;AAErE,MAAM,MAAM,kBAAkB,GAAG;IAC/B,YAAY,EAAE;QACZ,MAAM,EAAE,MAAM,CAAC;QACf,MAAM,EAAE,MAAM,CAAC;QACf,WAAW,EAAE,MAAM,CAAC;QACpB,eAAe,EAAE,MAAM,CAAC;QACxB,IAAI,EAAE,MAAM,CAAC;KACd,EAAE,CAAC;CACL,CAAC;AAEF,KAAK,UAAU,GAAG;IAChB,OAAO,EAAE;QACP,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAAC;KAC7B,CAAC;CACH,CAAC;AAEF,qBAAa,SAAS;IACR,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAAN,MAAM,EAAE,UAAU;IAE/C,gBAAuB,GAAG;;;;;;;MAOxB;IAEW,UAAU,CAAC,SAAS,EAAE,mBAAmB,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAWrE,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,aAAa,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC;IAmB9E,qBAAqB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAUnF;;;;OAIG;IACU,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAYhE,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAUtD,UAAU,IAAI,OAAO,CAAC,gBAAgB,EAAE,CAAC;IAUzC,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAUlE;;;;;OAKG;IACU,oBAAoB,CAAC,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE;IAUzE;;;;;;;OAOG;IACU,mBAAmB,CAC9B,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,MAAM,EAClB,WAAW,EAAE,MAAM,EACnB,OAAO,CAAC,EAAE,MAAM,GACf,OAAO,CAAC,kBAAkB,CAAC;IAe9B;;;;;OAKG;IACU,qBAAqB,CAAC,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAa1F;;;;OAIG;IACU,aAAa,IAAI,OAAO,CAAC,UAAU,CAAC;CASlD"}
1
+ {"version":3,"file":"ClientAPI.d.ts","sourceRoot":"","sources":["../../src/client/ClientAPI.ts"],"names":[],"mappings":"AAsBA,OAAO,EAAC,oBAAoB,EAAC,MAAM,wBAAwB,CAAC;AAI5D,OAAO,EAAC,mBAAmB,EAAE,gBAAgB,EAAE,mBAAmB,EAAC,MAAM,YAAY,CAAC;AACtF,OAAO,EAAkC,UAAU,EAAC,MAAM,UAAU,CAAC;AAErE,MAAM,MAAM,kBAAkB,GAAG;IAC/B,YAAY,EAAE;QACZ,MAAM,EAAE,MAAM,CAAC;QACf,MAAM,EAAE,MAAM,CAAC;QACf,WAAW,EAAE,MAAM,CAAC;QACpB,eAAe,EAAE,MAAM,CAAC;QACxB,IAAI,EAAE,MAAM,CAAC;KACd,EAAE,CAAC;CACL,CAAC;AAEF,KAAK,UAAU,GAAG;IAChB,OAAO,EAAE;QACP,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAAC;KAC7B,CAAC;CACH,CAAC;AAEF,qBAAa,SAAS;IACR,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAAN,MAAM,EAAE,UAAU;IAE/C,gBAAuB,GAAG;;;;;;;;;MASxB;IAEW,UAAU,CAAC,SAAS,EAAE,mBAAmB,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAWrE,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,aAAa,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC;IAmB9E,qBAAqB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAUnF;;;;OAIG;IACU,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAYhE,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAUtD,UAAU,IAAI,OAAO,CAAC,gBAAgB,EAAE,CAAC;IAUzC,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAUlE;;;;;OAKG;IACU,oBAAoB,CAAC,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE;IAUzE;;;;;OAKG;IACU,oBAAoB,CAAC,QAAQ,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,EAAE;IAgB5E;;;;;;;OAOG;IACU,mBAAmB,CAC9B,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,MAAM,EAClB,WAAW,EAAE,MAAM,EACnB,OAAO,CAAC,EAAE,MAAM,GACf,OAAO,CAAC,kBAAkB,CAAC;IAe9B;;;;;OAKG;IACU,qBAAqB,CAAC,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAa1F;;;;OAIG;IACU,aAAa,IAAI,OAAO,CAAC,UAAU,CAAC;IAUpC,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAgB3C,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,UAAU;;;;;CAmBpE"}
@@ -19,6 +19,7 @@
19
19
  */
20
20
  Object.defineProperty(exports, "__esModule", { value: true });
21
21
  exports.ClientAPI = void 0;
22
+ const zod_1 = require("zod");
22
23
  const ClientError_1 = require("./ClientError");
23
24
  const http_1 = require("../http/");
24
25
  class ClientAPI {
@@ -113,6 +114,24 @@ class ClientAPI {
113
114
  };
114
115
  await this.client.sendJSON(config, true);
115
116
  }
117
+ /**
118
+ * Will delete keypackages for an MLS capable client
119
+ * @see https://nginz-https.elna.wire.link/v4/api/swagger-ui/#/default/delete_mls_key_packages_self__client_
120
+ * @param {string} clientId The client to delete the key packages for
121
+ * @param {string[]} keyPackageRefs The key package references to delete
122
+ */
123
+ async deleteMLSKeyPackages(clientId, keyPackageRefs) {
124
+ const maxKeyPackages = 1000;
125
+ if (keyPackageRefs.length > maxKeyPackages) {
126
+ throw new Error(`Too many key packages, max is ${maxKeyPackages}. Please split the request into multiple requests.`);
127
+ }
128
+ const config = {
129
+ data: { key_packages: keyPackageRefs },
130
+ method: 'DELETE',
131
+ url: `/${ClientAPI.URL.MLS_CLIENTS}/${ClientAPI.URL.MLS_KEY_PACKAGES}/self/${clientId}`,
132
+ };
133
+ await this.client.sendJSON(config, true);
134
+ }
116
135
  /**
117
136
  * Claim one key package for each client of the given user
118
137
  * @param {string} userId The user to claim the key packages for
@@ -162,6 +181,34 @@ class ClientAPI {
162
181
  const response = await this.client.sendJSON(config, true);
163
182
  return response.data;
164
183
  }
184
+ async getNonce(clientId) {
185
+ const NonceKey = 'replay-nonce';
186
+ const NonceSchema = zod_1.z.object({
187
+ [NonceKey]: zod_1.z.string().min(1),
188
+ });
189
+ const config = {
190
+ method: 'head',
191
+ url: `${ClientAPI.URL.CLIENTS}/${clientId}/${ClientAPI.URL.NONCE}`,
192
+ };
193
+ const { headers } = await this.client.sendRequest(config);
194
+ return NonceSchema.parse(headers)[NonceKey];
195
+ }
196
+ async getAccessToken(clientId, dpopToken) {
197
+ const ResponseSchema = zod_1.z.object({
198
+ expires_in: zod_1.z.number().min(1),
199
+ token: zod_1.z.string().min(1),
200
+ type: zod_1.z.literal('DPoP'),
201
+ });
202
+ const config = {
203
+ method: 'post',
204
+ url: `${ClientAPI.URL.CLIENTS}/${clientId}/${ClientAPI.URL.ACCESS_TOKEN}`,
205
+ headers: {
206
+ DPoP: new TextDecoder().decode(dpopToken),
207
+ },
208
+ };
209
+ const { data } = await this.client.sendJSON(config);
210
+ return ResponseSchema.parse(data);
211
+ }
165
212
  }
166
213
  exports.ClientAPI = ClientAPI;
167
214
  ClientAPI.URL = {
@@ -171,4 +218,6 @@ ClientAPI.URL = {
171
218
  CAPABILITIES: 'capabilities',
172
219
  PREKEYS: 'prekeys',
173
220
  PUBLIC_KEYS: 'public-keys',
221
+ NONCE: 'nonce',
222
+ ACCESS_TOKEN: 'access-token',
174
223
  };
@@ -22,6 +22,7 @@ export declare class HttpClient extends EventEmitter {
22
22
  static readonly TOPIC: typeof TOPIC;
23
23
  private versionPrefix;
24
24
  constructor(config: Config, accessTokenStore: AccessTokenStore);
25
+ getBaseUrl(): string;
25
26
  useVersion(version: number): void;
26
27
  private updateConnectionState;
27
28
  _sendRequest<T>(config: AxiosRequestConfig, tokenAsParam?: boolean, isFirstTry?: boolean): Promise<AxiosResponse<T>>;
@@ -1 +1 @@
1
- {"version":3,"file":"HttpClient.d.ts","sourceRoot":"","sources":["../../src/http/HttpClient.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"HttpClient.d.ts","sourceRoot":"","sources":["../../src/http/HttpClient.ts"],"names":[],"mappings":"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"}
@@ -100,6 +100,9 @@ class HttpClient extends events_1.EventEmitter {
100
100
  retryDelay: commons_1.TimeUtil.TimeInMillis.SECOND,
101
101
  });
102
102
  }
103
+ getBaseUrl() {
104
+ return `${this.config.urls.rest}${this.versionPrefix}`;
105
+ }
103
106
  useVersion(version) {
104
107
  this.versionPrefix = version > 0 ? `/v${version}` : '';
105
108
  }
package/package.json CHANGED
@@ -13,7 +13,7 @@
13
13
  "./lib/shims/node/websocket": "./lib/shims/browser/websocket.js"
14
14
  },
15
15
  "dependencies": {
16
- "@wireapp/commons": "^5.2.0",
16
+ "@wireapp/commons": "^5.2.1",
17
17
  "@wireapp/priority-queue": "^2.1.4",
18
18
  "@wireapp/protocol-messaging": "1.44.0",
19
19
  "axios": "1.5.1",
@@ -24,7 +24,8 @@
24
24
  "reconnecting-websocket": "4.4.0",
25
25
  "spark-md5": "3.0.2",
26
26
  "tough-cookie": "4.1.3",
27
- "ws": "8.14.2"
27
+ "ws": "8.14.2",
28
+ "zod": "3.21.4"
28
29
  },
29
30
  "devDependencies": {
30
31
  "@swc/core": "^1.3.10",
@@ -65,6 +66,6 @@
65
66
  "watch": "webpack serve --config webpack.browser.js",
66
67
  "prepare": "yarn dist"
67
68
  },
68
- "version": "26.2.4",
69
- "gitHead": "e3e0f0451f1e34b4ad97ac972429b6176b05a07a"
69
+ "version": "26.3.0",
70
+ "gitHead": "03058b9323c4afec84e6c85c4614c3b599ebcb71"
70
71
  }