nuki-api-js 0.0.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/dist/index.cjs ADDED
@@ -0,0 +1,668 @@
1
+ 'use strict';
2
+
3
+ function notEmpty(value) {
4
+ return value !== null && value !== void 0;
5
+ }
6
+ function compactObject(obj) {
7
+ return Object.fromEntries(Object.entries(obj).filter(([, value]) => notEmpty(value)));
8
+ }
9
+
10
+ const baseUrl = "https://api.nuki.io";
11
+ async function fetch$1({
12
+ url,
13
+ method,
14
+ body,
15
+ headers,
16
+ pathParams,
17
+ queryParams,
18
+ signal,
19
+ token,
20
+ fetchImpl
21
+ }) {
22
+ try {
23
+ const requestHeaders = compactObject({
24
+ "Content-Type": "application/json",
25
+ Authorization: token ? `Bearer ${token}` : void 0,
26
+ ...headers
27
+ });
28
+ if (requestHeaders["Content-Type"]?.toLowerCase().includes("multipart/form-data")) {
29
+ delete requestHeaders["Content-Type"];
30
+ }
31
+ const payload = body instanceof FormData ? body : requestHeaders["Content-Type"] === "application/json" ? JSON.stringify(body) : body;
32
+ const response = await fetchImpl(`${baseUrl}${resolveUrl(url, queryParams, pathParams)}`, {
33
+ signal,
34
+ method: method.toUpperCase(),
35
+ body: payload,
36
+ headers: requestHeaders
37
+ });
38
+ if (!response.ok) {
39
+ let error;
40
+ try {
41
+ error = await response.json();
42
+ } catch (e) {
43
+ error = {
44
+ status: "unknown",
45
+ payload: e instanceof Error ? `Unexpected error (${e.message})` : "Unexpected error"
46
+ };
47
+ }
48
+ throw error;
49
+ }
50
+ if (response.headers?.get("content-type")?.includes("json")) {
51
+ return await response.json();
52
+ } else {
53
+ return await response.text();
54
+ }
55
+ } catch (e) {
56
+ let errorObject = {
57
+ name: "unknown",
58
+ message: e instanceof Error ? `Network error (${e.message})` : "Network error",
59
+ stack: e
60
+ };
61
+ throw errorObject;
62
+ }
63
+ }
64
+ const resolveUrl = (url, queryParams = {}, pathParams = {}) => {
65
+ let query = new URLSearchParams(queryParams).toString();
66
+ if (query) query = `?${query}`;
67
+ return url.replace(/\{\w*\}/g, (key) => pathParams[key.slice(1, -1)] ?? "") + query;
68
+ };
69
+
70
+ const getAccountsResource = (variables, signal) => fetch$1({
71
+ url: "/account",
72
+ method: "get",
73
+ ...variables,
74
+ signal
75
+ });
76
+ const postAccountsResource = (variables, signal) => fetch$1({
77
+ url: "/account",
78
+ method: "post",
79
+ ...variables,
80
+ signal
81
+ });
82
+ const deleteAccountsResource = (variables, signal) => fetch$1({
83
+ url: "/account",
84
+ method: "delete",
85
+ ...variables,
86
+ signal
87
+ });
88
+ const postAccountEmailChangeResource = (variables, signal) => fetch$1({
89
+ url: "/account/email/change",
90
+ method: "post",
91
+ ...variables,
92
+ signal
93
+ });
94
+ const postAccountEmailVerifyResource = (variables, signal) => fetch$1({
95
+ url: "/account/email/verify",
96
+ method: "post",
97
+ ...variables,
98
+ signal
99
+ });
100
+ const getAccountIntegrationsResource = (variables, signal) => fetch$1({
101
+ url: "/account/integration",
102
+ method: "get",
103
+ ...variables,
104
+ signal
105
+ });
106
+ const deleteAccountIntegrationsResource = (variables, signal) => fetch$1({ url: "/account/integration", method: "delete", ...variables, signal });
107
+ const postAccountOtpResource = (variables, signal) => fetch$1({
108
+ url: "/account/otp",
109
+ method: "post",
110
+ ...variables,
111
+ signal
112
+ });
113
+ const putAccountOtpResource = (variables, signal) => fetch$1({
114
+ url: "/account/otp",
115
+ method: "put",
116
+ ...variables,
117
+ signal
118
+ });
119
+ const deleteAccountOtpResource = (variables, signal) => fetch$1({
120
+ url: "/account/otp",
121
+ method: "delete",
122
+ ...variables,
123
+ signal
124
+ });
125
+ const postAccountPasswordResetResource = (variables, signal) => fetch$1({
126
+ url: "/account/password/reset",
127
+ method: "post",
128
+ ...variables,
129
+ signal
130
+ });
131
+ const getAccountSettingResource = (variables, signal) => fetch$1({
132
+ url: "/account/setting",
133
+ method: "get",
134
+ ...variables,
135
+ signal
136
+ });
137
+ const putAccountSettingResource = (variables, signal) => fetch$1({
138
+ url: "/account/setting",
139
+ method: "put",
140
+ ...variables,
141
+ signal
142
+ });
143
+ const deleteAccountSettingResource = (variables, signal) => fetch$1({
144
+ url: "/account/setting",
145
+ method: "delete",
146
+ ...variables,
147
+ signal
148
+ });
149
+ const getAccountSubsResource = (variables, signal) => fetch$1({
150
+ url: "/account/sub",
151
+ method: "get",
152
+ ...variables,
153
+ signal
154
+ });
155
+ const putAccountSubsResource = (variables, signal) => fetch$1({
156
+ url: "/account/sub",
157
+ method: "put",
158
+ ...variables,
159
+ signal
160
+ });
161
+ const getAccountSubResource = (variables, signal) => fetch$1({
162
+ url: "/account/sub/{accountId}",
163
+ method: "get",
164
+ ...variables,
165
+ signal
166
+ });
167
+ const postAccountSubResource = (variables, signal) => fetch$1({
168
+ url: "/account/sub/{accountId}",
169
+ method: "post",
170
+ ...variables,
171
+ signal
172
+ });
173
+ const deleteAccountSubResource = (variables, signal) => fetch$1({
174
+ url: "/account/sub/{accountId}",
175
+ method: "delete",
176
+ ...variables,
177
+ signal
178
+ });
179
+ const postAccountSubscriptionPayResource = (variables, signal) => fetch$1({
180
+ url: "/account/subscription/pay",
181
+ method: "post",
182
+ ...variables,
183
+ signal
184
+ });
185
+ const postAccountSubscriptionActivateResource = (variables, signal) => fetch$1({ url: "/account/subscription/{id}/activate", method: "post", ...variables, signal });
186
+ const postAccountSubscriptionTerminateResource = (variables, signal) => fetch$1({ url: "/account/subscription/{id}/terminate", method: "post", ...variables, signal });
187
+ const getAccountUsersResource = (variables, signal) => fetch$1({ url: "/account/user", method: "get", ...variables, signal });
188
+ const putAccountUsersResource = (variables, signal) => fetch$1({
189
+ url: "/account/user",
190
+ method: "put",
191
+ ...variables,
192
+ signal
193
+ });
194
+ const getAccountUserResource = (variables, signal) => fetch$1({
195
+ url: "/account/user/{accountUserId}",
196
+ method: "get",
197
+ ...variables,
198
+ signal
199
+ });
200
+ const postAccountUserResource = (variables, signal) => fetch$1({ url: "/account/user/{accountUserId}", method: "post", ...variables, signal });
201
+ const deleteAccountUserResource = (variables, signal) => fetch$1({
202
+ url: "/account/user/{accountUserId}",
203
+ method: "delete",
204
+ ...variables,
205
+ signal
206
+ });
207
+ const getAddressesResource = (variables, signal) => fetch$1({
208
+ url: "/address",
209
+ method: "get",
210
+ ...variables,
211
+ signal
212
+ });
213
+ const putAddressesResource = (variables, signal) => fetch$1({
214
+ url: "/address",
215
+ method: "put",
216
+ ...variables,
217
+ signal
218
+ });
219
+ const getAddressTokenResource = (variables, signal) => fetch$1({
220
+ url: "/address/token/{id}",
221
+ method: "get",
222
+ ...variables,
223
+ signal
224
+ });
225
+ const getAddressTokenRedeemResource = (variables, signal) => fetch$1({ url: "/address/token/{id}/redeem", method: "get", ...variables, signal });
226
+ const postAddressTokenRedeemResource = (variables, signal) => fetch$1({ url: "/address/token/{id}/redeem", method: "post", ...variables, signal });
227
+ const postAddressResource = (variables, signal) => fetch$1({
228
+ url: "/address/{addressId}",
229
+ method: "post",
230
+ ...variables,
231
+ signal
232
+ });
233
+ const deleteAddressResource = (variables, signal) => fetch$1({
234
+ url: "/address/{addressId}",
235
+ method: "delete",
236
+ ...variables,
237
+ signal
238
+ });
239
+ const getAddressReservationsResource = (variables, signal) => fetch$1({ url: "/address/{addressId}/reservation", method: "get", ...variables, signal });
240
+ const postAddressReservationIssueResource = (variables, signal) => fetch$1({ url: "/address/{addressId}/reservation/{id}/issue", method: "post", ...variables, signal });
241
+ const postAddressReservationRevokeResource = (variables, signal) => fetch$1({ url: "/address/{addressId}/reservation/{id}/revoke", method: "post", ...variables, signal });
242
+ const postReservationAccessTimesUpdateResource = (variables, signal) => fetch$1({ url: "/address/{addressId}/reservation/{id}/update/accesstimes", method: "post", ...variables, signal });
243
+ const getAddressTokensResource = (variables, signal) => fetch$1({ url: "/address/{addressId}/token", method: "get", ...variables, signal });
244
+ const getAddressUnitsResource = (variables, signal) => fetch$1({ url: "/address/{addressId}/unit", method: "get", ...variables, signal });
245
+ const putAddressUnitsResource = (variables, signal) => fetch$1({ url: "/address/{addressId}/unit", method: "put", ...variables, signal });
246
+ const deleteAddressUnitsResource = (variables, signal) => fetch$1({ url: "/address/{addressId}/unit", method: "delete", ...variables, signal });
247
+ const deleteAddressUnitResource = (variables, signal) => fetch$1({ url: "/address/{addressId}/unit/{id}", method: "delete", ...variables, signal });
248
+ const getDecentralWebhooksResource = (variables, signal) => fetch$1({
249
+ url: "/api/decentralWebhook",
250
+ method: "get",
251
+ ...variables,
252
+ signal
253
+ });
254
+ const putDecentralWebhooksResource = (variables, signal) => fetch$1({
255
+ url: "/api/decentralWebhook",
256
+ method: "put",
257
+ ...variables,
258
+ signal
259
+ });
260
+ const deleteDecentralWebhookResource = (variables, signal) => fetch$1({
261
+ url: "/api/decentralWebhook/{id}",
262
+ method: "delete",
263
+ ...variables,
264
+ signal
265
+ });
266
+ const getApiKeysResource = (variables, signal) => fetch$1({
267
+ url: "/api/key",
268
+ method: "get",
269
+ ...variables,
270
+ signal
271
+ });
272
+ const putApiKeysResource = (variables, signal) => fetch$1({
273
+ url: "/api/key",
274
+ method: "put",
275
+ ...variables,
276
+ signal
277
+ });
278
+ const postApiKeyResource = (variables, signal) => fetch$1({
279
+ url: "/api/key/{apiKeyId}",
280
+ method: "post",
281
+ ...variables,
282
+ signal
283
+ });
284
+ const deleteApiKeyResource = (variables, signal) => fetch$1({
285
+ url: "/api/key/{apiKeyId}",
286
+ method: "delete",
287
+ ...variables,
288
+ signal
289
+ });
290
+ const getApiKeyAdvancedResource = (variables, signal) => fetch$1(
291
+ { url: "/api/key/{apiKeyId}/advanced", method: "get", ...variables, signal }
292
+ );
293
+ const postApiKeyAdvancedResource = (variables, signal) => fetch$1({ url: "/api/key/{apiKeyId}/advanced", method: "post", ...variables, signal });
294
+ const putApiKeyAdvancedResource = (variables, signal) => fetch$1({ url: "/api/key/{apiKeyId}/advanced", method: "put", ...variables, signal });
295
+ const deleteApiKeyAdvancedResource = (variables, signal) => fetch$1({
296
+ url: "/api/key/{apiKeyId}/advanced",
297
+ method: "delete",
298
+ ...variables,
299
+ signal
300
+ });
301
+ const postApiKeyAdvancedReactivateResource = (variables, signal) => fetch$1({ url: "/api/key/{apiKeyId}/advanced/reactivate", method: "post", ...variables, signal });
302
+ const getApiKeyTokensResource = (variables, signal) => fetch$1({ url: "/api/key/{apiKeyId}/token", method: "get", ...variables, signal });
303
+ const putApiKeyTokensResource = (variables, signal) => fetch$1({ url: "/api/key/{apiKeyId}/token", method: "put", ...variables, signal });
304
+ const postApiKeyTokenResource = (variables, signal) => fetch$1({
305
+ url: "/api/key/{apiKeyId}/token/{id}",
306
+ method: "post",
307
+ ...variables,
308
+ signal
309
+ });
310
+ const deleteApiKeyTokenResource = (variables, signal) => fetch$1({
311
+ url: "/api/key/{apiKeyId}/token/{id}",
312
+ method: "delete",
313
+ ...variables,
314
+ signal
315
+ });
316
+ const getWebhookLogsResource = (variables, signal) => fetch$1({ url: "/api/key/{apiKeyId}/webhook/logs", method: "get", ...variables, signal });
317
+ const getAccountSubscriptionsResource = (variables, signal) => fetch$1({
318
+ url: "/app/account/subscription",
319
+ method: "get",
320
+ ...variables,
321
+ signal
322
+ });
323
+ const postSmartlockBulkWebConfigResource = (variables, signal) => fetch$1({
324
+ url: "/bulk-web-config",
325
+ method: "post",
326
+ ...variables,
327
+ signal
328
+ });
329
+ const getCompaniesResource = (variables, signal) => fetch$1({
330
+ url: "/company",
331
+ method: "get",
332
+ ...variables,
333
+ signal
334
+ });
335
+ const getNotificationsResource = (variables, signal) => fetch$1({ url: "/notification", method: "get", ...variables, signal });
336
+ const putNotificationsResource = (variables, signal) => fetch$1({
337
+ url: "/notification",
338
+ method: "put",
339
+ ...variables,
340
+ signal
341
+ });
342
+ const getNotificationResource = (variables, signal) => fetch$1({
343
+ url: "/notification/{notificationId}",
344
+ method: "get",
345
+ ...variables,
346
+ signal
347
+ });
348
+ const postNotificationResource = (variables, signal) => fetch$1({ url: "/notification/{notificationId}", method: "post", ...variables, signal });
349
+ const deleteNotificationResource = (variables, signal) => fetch$1({
350
+ url: "/notification/{notificationId}",
351
+ method: "delete",
352
+ ...variables,
353
+ signal
354
+ });
355
+ const getOpenerBrandsResource = (variables, signal) => fetch$1({
356
+ url: "/opener/brand",
357
+ method: "get",
358
+ ...variables,
359
+ signal
360
+ });
361
+ const getOpenerBrandResource = (variables, signal) => fetch$1({
362
+ url: "/opener/brand/{brandId}",
363
+ method: "get",
364
+ ...variables,
365
+ signal
366
+ });
367
+ const getOpenerIntercomsResource = (variables, signal) => fetch$1({ url: "/opener/intercom", method: "get", ...variables, signal });
368
+ const getOpenerIntercomResource = (variables, signal) => fetch$1({ url: "/opener/intercom/{intercomId}", method: "get", ...variables, signal });
369
+ const getServicesResource = (variables, signal) => fetch$1({
370
+ url: "/service",
371
+ method: "get",
372
+ ...variables,
373
+ signal
374
+ });
375
+ const getServiceResource = (variables, signal) => fetch$1({
376
+ url: "/service/{serviceId}",
377
+ method: "get",
378
+ ...variables,
379
+ signal
380
+ });
381
+ const postServiceLinkResource = (variables, signal) => fetch$1({
382
+ url: "/service/{serviceId}/link",
383
+ method: "post",
384
+ ...variables,
385
+ signal
386
+ });
387
+ const postServiceSyncResource = (variables, signal) => fetch$1({
388
+ url: "/service/{serviceId}/sync",
389
+ method: "post",
390
+ ...variables,
391
+ signal
392
+ });
393
+ const postServiceUnlinkResource = (variables, signal) => fetch$1({
394
+ url: "/service/{serviceId}/unlink",
395
+ method: "post",
396
+ ...variables,
397
+ signal
398
+ });
399
+ const getSmartlocksResource = (variables, signal) => fetch$1(
400
+ { url: "/smartlock", method: "get", ...variables, signal }
401
+ );
402
+ const getSmartlocksAuthsResource = (variables, signal) => fetch$1({ url: "/smartlock/auth", method: "get", ...variables, signal });
403
+ const postSmartlocksAuthsResource = (variables, signal) => fetch$1({
404
+ url: "/smartlock/auth",
405
+ method: "post",
406
+ ...variables,
407
+ signal
408
+ });
409
+ const putSmartlocksAuthsResource = (variables, signal) => fetch$1({
410
+ url: "/smartlock/auth",
411
+ method: "put",
412
+ ...variables,
413
+ signal
414
+ });
415
+ const deleteSmartlocksAuthsResource = (variables, signal) => fetch$1({
416
+ url: "/smartlock/auth",
417
+ method: "delete",
418
+ ...variables,
419
+ signal
420
+ });
421
+ const putSmartlockAuthsAdvancedResource = (variables, signal) => fetch$1({ url: "/smartlock/auth/advanced", method: "put", ...variables, signal });
422
+ const getSmartlocksLogsResource = (variables, signal) => fetch$1({ url: "/smartlock/log", method: "get", ...variables, signal });
423
+ const getSmartlockResource = (variables, signal) => fetch$1({
424
+ url: "/smartlock/{smartlockId}",
425
+ method: "get",
426
+ ...variables,
427
+ signal
428
+ });
429
+ const postSmartlockResource = (variables, signal) => fetch$1({
430
+ url: "/smartlock/{smartlockId}",
431
+ method: "post",
432
+ ...variables,
433
+ signal
434
+ });
435
+ const deleteSmartlockResource = (variables, signal) => fetch$1({
436
+ url: "/smartlock/{smartlockId}",
437
+ method: "delete",
438
+ ...variables,
439
+ signal
440
+ });
441
+ const postSmartlockActionResource = (variables, signal) => fetch$1({ url: "/smartlock/{smartlockId}/action", method: "post", ...variables, signal });
442
+ const postSmartlockActionAdvancedResource = (variables, signal) => fetch$1({ url: "/smartlock/{smartlockId}/action/advanced", method: "post", ...variables, signal });
443
+ const postSmartlockLockActionResource = (variables, signal) => fetch$1({
444
+ url: "/smartlock/{smartlockId}/action/lock",
445
+ method: "post",
446
+ ...variables,
447
+ signal
448
+ });
449
+ const postSmartlockLockActionAdvancedResource = (variables, signal) => fetch$1({ url: "/smartlock/{smartlockId}/action/lock/advanced", method: "post", ...variables, signal });
450
+ const postSmartlockUnlockActionResource = (variables, signal) => fetch$1({ url: "/smartlock/{smartlockId}/action/unlock", method: "post", ...variables, signal });
451
+ const postSmartlockUnlockActionAdvancedResource = (variables, signal) => fetch$1({ url: "/smartlock/{smartlockId}/action/unlock/advanced", method: "post", ...variables, signal });
452
+ const postSmartlockAdminPinResource = (variables, signal) => fetch$1({ url: "/smartlock/{smartlockId}/admin/pin", method: "post", ...variables, signal });
453
+ const postSmartlockAdvancedConfigResource = (variables, signal) => fetch$1({ url: "/smartlock/{smartlockId}/advanced/config", method: "post", ...variables, signal });
454
+ const postSmartlockOpenerAdvancedConfigResource = (variables, signal) => fetch$1({ url: "/smartlock/{smartlockId}/advanced/openerconfig", method: "post", ...variables, signal });
455
+ const postSmartdoorAdvancedConfigResource = (variables, signal) => fetch$1({ url: "/smartlock/{smartlockId}/advanced/smartdoorconfig", method: "post", ...variables, signal });
456
+ const getSmartlockAuthsResource = (variables, signal) => fetch$1({ url: "/smartlock/{smartlockId}/auth", method: "get", ...variables, signal });
457
+ const putSmartlockAuthsResource = (variables, signal) => fetch$1({ url: "/smartlock/{smartlockId}/auth", method: "put", ...variables, signal });
458
+ const postSmartlockAuthWithSharedKeyResource = (variables, signal) => fetch$1({ url: "/smartlock/{smartlockId}/auth/advanced/sharedkey", method: "post", ...variables, signal });
459
+ const getSmartlockAuthResource = (variables, signal) => fetch$1({
460
+ url: "/smartlock/{smartlockId}/auth/{id}",
461
+ method: "get",
462
+ ...variables,
463
+ signal
464
+ });
465
+ const postSmartlockAuthResource = (variables, signal) => fetch$1({ url: "/smartlock/{smartlockId}/auth/{id}", method: "post", ...variables, signal });
466
+ const deleteSmartlockAuthResource = (variables, signal) => fetch$1({
467
+ url: "/smartlock/{smartlockId}/auth/{id}",
468
+ method: "delete",
469
+ ...variables,
470
+ signal
471
+ });
472
+ const postSmartlockConfigResource = (variables, signal) => fetch$1({ url: "/smartlock/{smartlockId}/config", method: "post", ...variables, signal });
473
+ const getSmartlockLogsResource = (variables, signal) => fetch$1({ url: "/smartlock/{smartlockId}/log", method: "get", ...variables, signal });
474
+ const postSmartlockSyncResource = (variables, signal) => fetch$1({
475
+ url: "/smartlock/{smartlockId}/sync",
476
+ method: "post",
477
+ ...variables,
478
+ signal
479
+ });
480
+ const postSmartlockWebConfigResource = (variables, signal) => fetch$1({ url: "/smartlock/{smartlockId}/web/config", method: "post", ...variables, signal });
481
+ const getSubscriptionsResource = (variables, signal) => fetch$1({
482
+ url: "/subscription",
483
+ method: "get",
484
+ ...variables,
485
+ signal
486
+ });
487
+ const getSubscriptionResource = (variables, signal) => fetch$1({
488
+ url: "/subscription/{subscriptionId}",
489
+ method: "get",
490
+ ...variables,
491
+ signal
492
+ });
493
+ const operationsByTag = {
494
+ account: {
495
+ getAccountsResource,
496
+ postAccountsResource,
497
+ deleteAccountsResource,
498
+ postAccountEmailChangeResource,
499
+ postAccountEmailVerifyResource,
500
+ getAccountIntegrationsResource,
501
+ deleteAccountIntegrationsResource,
502
+ postAccountOtpResource,
503
+ putAccountOtpResource,
504
+ deleteAccountOtpResource,
505
+ postAccountPasswordResetResource,
506
+ getAccountSettingResource,
507
+ putAccountSettingResource,
508
+ deleteAccountSettingResource,
509
+ getAccountSubsResource,
510
+ putAccountSubsResource,
511
+ getAccountSubResource,
512
+ postAccountSubResource,
513
+ deleteAccountSubResource
514
+ },
515
+ accountSubscription: {
516
+ postAccountSubscriptionPayResource,
517
+ postAccountSubscriptionActivateResource,
518
+ postAccountSubscriptionTerminateResource,
519
+ getAccountSubscriptionsResource
520
+ },
521
+ accountUser: {
522
+ getAccountUsersResource,
523
+ putAccountUsersResource,
524
+ getAccountUserResource,
525
+ postAccountUserResource,
526
+ deleteAccountUserResource
527
+ },
528
+ address: {
529
+ getAddressesResource,
530
+ putAddressesResource,
531
+ postAddressResource,
532
+ deleteAddressResource,
533
+ getAddressUnitsResource,
534
+ putAddressUnitsResource,
535
+ deleteAddressUnitsResource,
536
+ deleteAddressUnitResource
537
+ },
538
+ addressToken: {
539
+ getAddressTokenResource,
540
+ getAddressTokenRedeemResource,
541
+ postAddressTokenRedeemResource,
542
+ getAddressTokensResource
543
+ },
544
+ addressReservation: {
545
+ getAddressReservationsResource,
546
+ postAddressReservationIssueResource,
547
+ postAddressReservationRevokeResource,
548
+ postReservationAccessTimesUpdateResource
549
+ },
550
+ advancedApi: {
551
+ getDecentralWebhooksResource,
552
+ putDecentralWebhooksResource,
553
+ deleteDecentralWebhookResource,
554
+ getWebhookLogsResource,
555
+ putSmartlockAuthsAdvancedResource,
556
+ postSmartlockActionAdvancedResource,
557
+ postSmartlockLockActionAdvancedResource,
558
+ postSmartlockUnlockActionAdvancedResource
559
+ },
560
+ apiKey: {
561
+ getApiKeysResource,
562
+ putApiKeysResource,
563
+ postApiKeyResource,
564
+ deleteApiKeyResource,
565
+ getApiKeyAdvancedResource,
566
+ postApiKeyAdvancedResource,
567
+ putApiKeyAdvancedResource,
568
+ deleteApiKeyAdvancedResource,
569
+ postApiKeyAdvancedReactivateResource,
570
+ getApiKeyTokensResource,
571
+ putApiKeyTokensResource,
572
+ postApiKeyTokenResource,
573
+ deleteApiKeyTokenResource
574
+ },
575
+ smartlock: {
576
+ postSmartlockBulkWebConfigResource,
577
+ getSmartlocksResource,
578
+ getSmartlockResource,
579
+ postSmartlockResource,
580
+ deleteSmartlockResource,
581
+ postSmartlockActionResource,
582
+ postSmartlockLockActionResource,
583
+ postSmartlockUnlockActionResource,
584
+ postSmartlockAdminPinResource,
585
+ postSmartlockAdvancedConfigResource,
586
+ postSmartlockOpenerAdvancedConfigResource,
587
+ postSmartdoorAdvancedConfigResource,
588
+ postSmartlockConfigResource,
589
+ postSmartlockSyncResource,
590
+ postSmartlockWebConfigResource
591
+ },
592
+ company: { getCompaniesResource },
593
+ notification: {
594
+ getNotificationsResource,
595
+ putNotificationsResource,
596
+ getNotificationResource,
597
+ postNotificationResource,
598
+ deleteNotificationResource
599
+ },
600
+ opener: { getOpenerBrandsResource, getOpenerBrandResource, getOpenerIntercomsResource, getOpenerIntercomResource },
601
+ service: {
602
+ getServicesResource,
603
+ getServiceResource,
604
+ postServiceLinkResource,
605
+ postServiceSyncResource,
606
+ postServiceUnlinkResource
607
+ },
608
+ smartlockAuth: {
609
+ getSmartlocksAuthsResource,
610
+ postSmartlocksAuthsResource,
611
+ putSmartlocksAuthsResource,
612
+ deleteSmartlocksAuthsResource,
613
+ getSmartlockAuthsResource,
614
+ putSmartlockAuthsResource,
615
+ postSmartlockAuthWithSharedKeyResource,
616
+ getSmartlockAuthResource,
617
+ postSmartlockAuthResource,
618
+ deleteSmartlockAuthResource
619
+ },
620
+ smartlockLog: { getSmartlocksLogsResource, getSmartlockLogsResource },
621
+ subscription: { getSubscriptionsResource, getSubscriptionResource }
622
+ };
623
+
624
+ class NukiApi {
625
+ #token;
626
+ #fetch;
627
+ constructor(options) {
628
+ this.#token = options.token;
629
+ this.#fetch = options.fetch || fetch;
630
+ if (!this.#fetch) throw new Error("Fetch is required");
631
+ }
632
+ get api() {
633
+ const token = this.#token;
634
+ const fetchImpl = this.#fetch;
635
+ return new Proxy(
636
+ {},
637
+ {
638
+ get: (_target, namespace) => {
639
+ if (operationsByTag[namespace] === void 0) {
640
+ return void 0;
641
+ }
642
+ return new Proxy(
643
+ {},
644
+ {
645
+ get: (_target2, operation) => {
646
+ if (operationsByTag[namespace][operation] === void 0) {
647
+ return void 0;
648
+ }
649
+ const method = operationsByTag[namespace][operation];
650
+ return async (params) => {
651
+ return await method({ ...params, token, fetchImpl });
652
+ };
653
+ }
654
+ }
655
+ );
656
+ }
657
+ }
658
+ );
659
+ }
660
+ async request(endpoint, params) {
661
+ const [method = "", url = ""] = endpoint.split(" ");
662
+ const extraParams = params || {};
663
+ const result = await fetch$1({ ...extraParams, method, url, token: this.#token, fetchImpl: this.#fetch });
664
+ return result;
665
+ }
666
+ }
667
+
668
+ exports.NukiApi = NukiApi;