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