@mcesystems/apple-kit 1.0.95 → 1.0.97

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 (78) hide show
  1. package/README.md +258 -258
  2. package/dist/index.js +97 -67
  3. package/dist/index.js.map +2 -2
  4. package/dist/index.mjs +97 -67
  5. package/dist/index.mjs.map +3 -3
  6. package/dist/resources/plist/certificate-trust.xml +43 -43
  7. package/dist/resources/plist/wifi-enterprise.xml +59 -59
  8. package/dist/resources/plist/wifi-standard.xml +50 -50
  9. package/dist/types/index.d.ts +13 -34
  10. package/package.json +3 -3
  11. package/resources/ios.exe +0 -0
  12. package/resources/wintun-LICENSE.txt +84 -0
  13. package/resources/wintun.dll +0 -0
  14. package/scripts/README.md +209 -209
  15. package/scripts/build-windows.sh.template +222 -222
  16. package/dist/resources/bin/darwin/idevice_id +0 -0
  17. package/dist/resources/bin/darwin/idevicedebug +0 -0
  18. package/dist/resources/bin/darwin/idevicediagnostics +0 -0
  19. package/dist/resources/bin/darwin/ideviceinfo +0 -0
  20. package/dist/resources/bin/darwin/ideviceinstaller +0 -0
  21. package/dist/resources/bin/darwin/idevicename +0 -0
  22. package/dist/resources/bin/darwin/idevicepair +0 -0
  23. package/dist/resources/bin/darwin/idevicescreenshot +0 -0
  24. package/dist/resources/bin/darwin/idevicesyslog +0 -0
  25. package/dist/resources/bin/darwin/iproxy +0 -0
  26. package/dist/resources/bin/darwin/libcrypto.3.dylib +0 -0
  27. package/dist/resources/bin/darwin/libimobiledevice-1.0.6.dylib +0 -0
  28. package/dist/resources/bin/darwin/libimobiledevice-glue-1.0.0.dylib +0 -0
  29. package/dist/resources/bin/darwin/liblzma.5.dylib +0 -0
  30. package/dist/resources/bin/darwin/libplist-2.0.4.dylib +0 -0
  31. package/dist/resources/bin/darwin/libssl.3.dylib +0 -0
  32. package/dist/resources/bin/darwin/libusbmuxd-2.0.7.dylib +0 -0
  33. package/dist/resources/bin/darwin/libzip.5.dylib +0 -0
  34. package/dist/resources/bin/darwin/libzstd.1.dylib +0 -0
  35. package/dist/resources/licenses/LGPL-2.1.txt +0 -33
  36. package/dist/types/index.d.ts.map +0 -1
  37. package/dist/types/logic/actions/activation.d.ts +0 -12
  38. package/dist/types/logic/actions/activation.d.ts.map +0 -1
  39. package/dist/types/logic/actions/device.d.ts +0 -15
  40. package/dist/types/logic/actions/device.d.ts.map +0 -1
  41. package/dist/types/logic/actions/install.d.ts +0 -10
  42. package/dist/types/logic/actions/install.d.ts.map +0 -1
  43. package/dist/types/logic/actions/pair.d.ts +0 -6
  44. package/dist/types/logic/actions/pair.d.ts.map +0 -1
  45. package/dist/types/logic/actions/proxy.d.ts +0 -23
  46. package/dist/types/logic/actions/proxy.d.ts.map +0 -1
  47. package/dist/types/logic/actions/restore.d.ts +0 -36
  48. package/dist/types/logic/actions/restore.d.ts.map +0 -1
  49. package/dist/types/logic/actions/tool.d.ts +0 -8
  50. package/dist/types/logic/actions/tool.d.ts.map +0 -1
  51. package/dist/types/logic/activationFlow.d.ts +0 -15
  52. package/dist/types/logic/activationFlow.d.ts.map +0 -1
  53. package/dist/types/logic/appleDeviceKit.d.ts +0 -164
  54. package/dist/types/logic/appleDeviceKit.d.ts.map +0 -1
  55. package/dist/types/logic/dataParser.d.ts +0 -23
  56. package/dist/types/logic/dataParser.d.ts.map +0 -1
  57. package/dist/types/logic/iosCli.d.ts +0 -6
  58. package/dist/types/logic/iosCli.d.ts.map +0 -1
  59. package/dist/types/logic/utils/resolvePath.d.ts +0 -13
  60. package/dist/types/logic/utils/resolvePath.d.ts.map +0 -1
  61. package/dist/types/types/activation.d.ts +0 -28
  62. package/dist/types/types/activation.d.ts.map +0 -1
  63. package/dist/types/types/ios.d.ts +0 -152
  64. package/dist/types/types/ios.d.ts.map +0 -1
  65. package/dist/types/types/trust.d.ts +0 -10
  66. package/dist/types/types/trust.d.ts.map +0 -1
  67. package/dist/types/types/types.d.ts +0 -47
  68. package/dist/types/types/types.d.ts.map +0 -1
  69. package/dist/types/types/wifi.d.ts +0 -19
  70. package/dist/types/types/wifi.d.ts.map +0 -1
  71. package/dist/types/types.d.ts +0 -140
  72. package/dist/types/types.d.ts.map +0 -1
  73. package/dist/types/utils/debug.d.ts +0 -17
  74. package/dist/types/utils/debug.d.ts.map +0 -1
  75. package/dist/types/utils/templateLoader.d.ts +0 -8
  76. package/dist/types/utils/templateLoader.d.ts.map +0 -1
  77. package/dist/types/utils/wifiProfile.d.ts +0 -14
  78. package/dist/types/utils/wifiProfile.d.ts.map +0 -1
@@ -1,43 +1,43 @@
1
- <?xml version="1.0" encoding="UTF-8"?>
2
- <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
3
- <plist version="1.0">
4
- <dict>
5
- <key>PayloadContent</key>
6
- <array>
7
- <dict>
8
- <key>PayloadCertificateFileName</key>
9
- <string>{{certificateFileName}}</string>
10
- <key>PayloadContent</key>
11
- <data>
12
- {{certificateBase64}}
13
- </data>
14
- <key>PayloadDescription</key>
15
- <string>{{certificateDescription}}</string>
16
- <key>PayloadDisplayName</key>
17
- <string>{{certificateDisplayName}}</string>
18
- <key>PayloadIdentifier</key>
19
- <string>{{payloadId}}</string>
20
- <key>PayloadType</key>
21
- <string>com.apple.security.root</string>
22
- <key>PayloadUUID</key>
23
- <string>{{certificateUuid}}</string>
24
- <key>PayloadVersion</key>
25
- <integer>1</integer>
26
- </dict>
27
- </array>
28
- <key>PayloadDisplayName</key>
29
- <string>{{profileDisplayName}}</string>
30
- <key>PayloadIdentifier</key>
31
- <string>{{profileId}}</string>
32
- <key>PayloadOrganization</key>
33
- <string>{{organizationName}}</string>
34
- <key>PayloadRemovalDisallowed</key>
35
- <{{removalDisallowed}}/>
36
- <key>PayloadType</key>
37
- <string>Configuration</string>
38
- <key>PayloadUUID</key>
39
- <string>{{profileUuid}}</string>
40
- <key>PayloadVersion</key>
41
- <integer>1</integer>
42
- </dict>
43
- </plist>
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
3
+ <plist version="1.0">
4
+ <dict>
5
+ <key>PayloadContent</key>
6
+ <array>
7
+ <dict>
8
+ <key>PayloadCertificateFileName</key>
9
+ <string>{{certificateFileName}}</string>
10
+ <key>PayloadContent</key>
11
+ <data>
12
+ {{certificateBase64}}
13
+ </data>
14
+ <key>PayloadDescription</key>
15
+ <string>{{certificateDescription}}</string>
16
+ <key>PayloadDisplayName</key>
17
+ <string>{{certificateDisplayName}}</string>
18
+ <key>PayloadIdentifier</key>
19
+ <string>{{payloadId}}</string>
20
+ <key>PayloadType</key>
21
+ <string>com.apple.security.root</string>
22
+ <key>PayloadUUID</key>
23
+ <string>{{certificateUuid}}</string>
24
+ <key>PayloadVersion</key>
25
+ <integer>1</integer>
26
+ </dict>
27
+ </array>
28
+ <key>PayloadDisplayName</key>
29
+ <string>{{profileDisplayName}}</string>
30
+ <key>PayloadIdentifier</key>
31
+ <string>{{profileId}}</string>
32
+ <key>PayloadOrganization</key>
33
+ <string>{{organizationName}}</string>
34
+ <key>PayloadRemovalDisallowed</key>
35
+ <{{removalDisallowed}}/>
36
+ <key>PayloadType</key>
37
+ <string>Configuration</string>
38
+ <key>PayloadUUID</key>
39
+ <string>{{profileUuid}}</string>
40
+ <key>PayloadVersion</key>
41
+ <integer>1</integer>
42
+ </dict>
43
+ </plist>
@@ -1,59 +1,59 @@
1
- <?xml version="1.0" encoding="UTF-8"?>
2
- <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
3
- <plist version="1.0">
4
- <dict>
5
- <key>PayloadContent</key>
6
- <array>
7
- <dict>
8
- <key>AutoJoin</key>
9
- <{{autoJoin}}/>
10
- <key>EncryptionType</key>
11
- <string>WPA2</string>
12
- <key>HIDDEN_NETWORK</key>
13
- <{{hiddenNetwork}}/>
14
- <key>IsHotspot</key>
15
- <false/>
16
- <key>PayloadDescription</key>
17
- <string>Configures WiFi settings for {{ssid}}</string>
18
- <key>PayloadDisplayName</key>
19
- <string>WiFi ({{ssid}})</string>
20
- <key>PayloadIdentifier</key>
21
- <string>{{payloadId}}</string>
22
- <key>PayloadType</key>
23
- <string>com.apple.wifi.managed</string>
24
- <key>PayloadUUID</key>
25
- <string>{{payloadUuid}}</string>
26
- <key>PayloadVersion</key>
27
- <integer>1</integer>
28
- <key>ProxyType</key>
29
- <string>None</string>
30
- <key>SSID_STR</key>
31
- <string>{{ssid}}</string>
32
- <key>EAPClientConfiguration</key>
33
- <dict>
34
- <key>AcceptEAPTypes</key>
35
- <array>
36
- <integer>{{eapTypeNumber}}</integer>
37
- </array>
38
- {{#if username}}<key>UserName</key><string>{{username}}</string>{{/if}}
39
- {{#if password}}<key>UserPassword</key><string>{{password}}</string>{{/if}}
40
- {{#if acceptAnyCertificate}}<key>TLSAllowTrustExceptions</key><true/>{{/if}}
41
- </dict>
42
- </dict>
43
- </array>
44
- <key>PayloadDisplayName</key>
45
- <string>{{displayName}}</string>
46
- <key>PayloadIdentifier</key>
47
- <string>{{profileId}}</string>
48
- <key>PayloadOrganization</key>
49
- <string>{{organizationName}}</string>
50
- <key>PayloadRemovalDisallowed</key>
51
- <false/>
52
- <key>PayloadType</key>
53
- <string>Configuration</string>
54
- <key>PayloadUUID</key>
55
- <string>{{profileUuid}}</string>
56
- <key>PayloadVersion</key>
57
- <integer>1</integer>
58
- </dict>
59
- </plist>
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
3
+ <plist version="1.0">
4
+ <dict>
5
+ <key>PayloadContent</key>
6
+ <array>
7
+ <dict>
8
+ <key>AutoJoin</key>
9
+ <{{autoJoin}}/>
10
+ <key>EncryptionType</key>
11
+ <string>WPA2</string>
12
+ <key>HIDDEN_NETWORK</key>
13
+ <{{hiddenNetwork}}/>
14
+ <key>IsHotspot</key>
15
+ <false/>
16
+ <key>PayloadDescription</key>
17
+ <string>Configures WiFi settings for {{ssid}}</string>
18
+ <key>PayloadDisplayName</key>
19
+ <string>WiFi ({{ssid}})</string>
20
+ <key>PayloadIdentifier</key>
21
+ <string>{{payloadId}}</string>
22
+ <key>PayloadType</key>
23
+ <string>com.apple.wifi.managed</string>
24
+ <key>PayloadUUID</key>
25
+ <string>{{payloadUuid}}</string>
26
+ <key>PayloadVersion</key>
27
+ <integer>1</integer>
28
+ <key>ProxyType</key>
29
+ <string>None</string>
30
+ <key>SSID_STR</key>
31
+ <string>{{ssid}}</string>
32
+ <key>EAPClientConfiguration</key>
33
+ <dict>
34
+ <key>AcceptEAPTypes</key>
35
+ <array>
36
+ <integer>{{eapTypeNumber}}</integer>
37
+ </array>
38
+ {{#if username}}<key>UserName</key><string>{{username}}</string>{{/if}}
39
+ {{#if password}}<key>UserPassword</key><string>{{password}}</string>{{/if}}
40
+ {{#if acceptAnyCertificate}}<key>TLSAllowTrustExceptions</key><true/>{{/if}}
41
+ </dict>
42
+ </dict>
43
+ </array>
44
+ <key>PayloadDisplayName</key>
45
+ <string>{{displayName}}</string>
46
+ <key>PayloadIdentifier</key>
47
+ <string>{{profileId}}</string>
48
+ <key>PayloadOrganization</key>
49
+ <string>{{organizationName}}</string>
50
+ <key>PayloadRemovalDisallowed</key>
51
+ <false/>
52
+ <key>PayloadType</key>
53
+ <string>Configuration</string>
54
+ <key>PayloadUUID</key>
55
+ <string>{{profileUuid}}</string>
56
+ <key>PayloadVersion</key>
57
+ <integer>1</integer>
58
+ </dict>
59
+ </plist>
@@ -1,50 +1,50 @@
1
- <?xml version="1.0" encoding="UTF-8"?>
2
- <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
3
- <plist version="1.0">
4
- <dict>
5
- <key>PayloadContent</key>
6
- <array>
7
- <dict>
8
- <key>AutoJoin</key>
9
- <{{autoJoin}}/>
10
- <key>EncryptionType</key>
11
- <string>{{encryptionType}}</string>
12
- <key>HIDDEN_NETWORK</key>
13
- <{{hiddenNetwork}}/>
14
- <key>IsHotspot</key>
15
- <false/>
16
- {{#if password}}<key>Password</key><string>{{password}}</string>{{/if}}
17
- <key>PayloadDescription</key>
18
- <string>Configures WiFi settings for {{ssid}}</string>
19
- <key>PayloadDisplayName</key>
20
- <string>WiFi ({{ssid}})</string>
21
- <key>PayloadIdentifier</key>
22
- <string>{{payloadId}}</string>
23
- <key>PayloadType</key>
24
- <string>com.apple.wifi.managed</string>
25
- <key>PayloadUUID</key>
26
- <string>{{payloadUuid}}</string>
27
- <key>PayloadVersion</key>
28
- <integer>1</integer>
29
- <key>ProxyType</key>
30
- <string>None</string>
31
- <key>SSID_STR</key>
32
- <string>{{ssid}}</string>
33
- </dict>
34
- </array>
35
- <key>PayloadDisplayName</key>
36
- <string>{{displayName}}</string>
37
- <key>PayloadIdentifier</key>
38
- <string>{{profileId}}</string>
39
- <key>PayloadOrganization</key>
40
- <string>{{organizationName}}</string>
41
- <key>PayloadRemovalDisallowed</key>
42
- <false/>
43
- <key>PayloadType</key>
44
- <string>Configuration</string>
45
- <key>PayloadUUID</key>
46
- <string>{{profileUuid}}</string>
47
- <key>PayloadVersion</key>
48
- <integer>1</integer>
49
- </dict>
50
- </plist>
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
3
+ <plist version="1.0">
4
+ <dict>
5
+ <key>PayloadContent</key>
6
+ <array>
7
+ <dict>
8
+ <key>AutoJoin</key>
9
+ <{{autoJoin}}/>
10
+ <key>EncryptionType</key>
11
+ <string>{{encryptionType}}</string>
12
+ <key>HIDDEN_NETWORK</key>
13
+ <{{hiddenNetwork}}/>
14
+ <key>IsHotspot</key>
15
+ <false/>
16
+ {{#if password}}<key>Password</key><string>{{password}}</string>{{/if}}
17
+ <key>PayloadDescription</key>
18
+ <string>Configures WiFi settings for {{ssid}}</string>
19
+ <key>PayloadDisplayName</key>
20
+ <string>WiFi ({{ssid}})</string>
21
+ <key>PayloadIdentifier</key>
22
+ <string>{{payloadId}}</string>
23
+ <key>PayloadType</key>
24
+ <string>com.apple.wifi.managed</string>
25
+ <key>PayloadUUID</key>
26
+ <string>{{payloadUuid}}</string>
27
+ <key>PayloadVersion</key>
28
+ <integer>1</integer>
29
+ <key>ProxyType</key>
30
+ <string>None</string>
31
+ <key>SSID_STR</key>
32
+ <string>{{ssid}}</string>
33
+ </dict>
34
+ </array>
35
+ <key>PayloadDisplayName</key>
36
+ <string>{{displayName}}</string>
37
+ <key>PayloadIdentifier</key>
38
+ <string>{{profileId}}</string>
39
+ <key>PayloadOrganization</key>
40
+ <string>{{organizationName}}</string>
41
+ <key>PayloadRemovalDisallowed</key>
42
+ <false/>
43
+ <key>PayloadType</key>
44
+ <string>Configuration</string>
45
+ <key>PayloadUUID</key>
46
+ <string>{{profileUuid}}</string>
47
+ <key>PayloadVersion</key>
48
+ <integer>1</integer>
49
+ </dict>
50
+ </plist>
@@ -295,16 +295,26 @@ export declare class AppleDeviceKit {
295
295
  private readonly activationFlow;
296
296
  private readonly proxyActions;
297
297
  private tunnelProcess;
298
+ private tunnelReadyPromise;
298
299
  private static readonly IOS_17_VERSION;
299
300
  constructor(udid: string, logicalPort: number, usbmuxdAddress?: string);
301
+ /**
302
+ * Returns a promise that resolves when the tunnel is ready (or immediately if not needed).
303
+ * Reuses the same in-flight promise so constructor and methods don't race.
304
+ */
305
+ private getTunnelReady;
300
306
  /**
301
307
  * Check if iOS version requires tunneling (iOS 17+)
302
308
  */
303
309
  private requiresTunneling;
304
310
  /**
305
- * Ensure tunnel is started for iOS 17+ devices
311
+ * Ensure tunnel is started for iOS 17+ devices. Safe to call multiple times; reuses in-flight setup.
306
312
  */
307
313
  private ensureTunnel;
314
+ /**
315
+ * Internal tunnel startup. Called once per tunnel lifecycle; getTunnelReady() caches this promise.
316
+ */
317
+ private runEnsureTunnel;
308
318
  /**
309
319
  * Stop tunnel for a device
310
320
  */
@@ -496,7 +506,7 @@ export declare class IosClient {
496
506
  version: string;
497
507
  }[]>;
498
508
  devMode(): Promise<IosCommandResult>;
499
- tunnelStart(userspace?: boolean): Promise<import("child_process").ChildProcessByStdio<null, import("stream").Readable, import("stream").Readable>>;
509
+ tunnelStart(userspace?: boolean, pairRecordPath?: string): Promise<ChildProcess>;
500
510
  fsyncPull({ app, srcPath, dstPath, }: {
501
511
  app: string;
502
512
  srcPath: string;
@@ -524,42 +534,11 @@ export declare class IosClient {
524
534
  path?: string;
525
535
  }): Promise<IosFsyncTreeResult>;
526
536
  }
527
- declare class DeviceActions {
528
- private readonly udid;
529
- private readonly iosClient;
530
- constructor(udid: string, iosClient: IosClient);
531
- info(): Promise<LockdownInfo>;
532
- listDevices(): Promise<IosListResult>;
533
- wipe(): Promise<void>;
534
- removeProfile(profileIdentifier: string): Promise<void>;
535
- listProfiles(): Promise<IosProfileListResult>;
536
- pair(): Promise<boolean>;
537
- trustDevice({ timeout, pollInterval, onWaitingForTrust, signal, }: {
538
- timeout?: number;
539
- pollInterval?: number;
540
- onWaitingForTrust?: () => void;
541
- signal?: AbortSignal;
542
- }): Promise<boolean>;
543
- waitForPairing({ timeout, pollInterval, signal, }: {
544
- timeout?: number;
545
- pollInterval?: number;
546
- signal?: AbortSignal;
547
- }): Promise<boolean>;
548
- /**
549
- * Returns true if device is paired and trusted.
550
- * Uses info() which only succeeds when full pairing is established (user has accepted Trust).
551
- * Prefer this over lockdown file check since file location/timing can vary by platform.
552
- */
553
- private isPairedViaInfo;
554
- isWifiConnected(timeoutMs?: number): Promise<string | undefined>;
555
- unpair(): Promise<boolean>;
556
- }
557
537
  export declare class ActivationFlow {
558
538
  private readonly udid;
559
539
  private readonly iosClient;
560
- private readonly deviceActions;
561
540
  private mdmClient;
562
- constructor(udid: string, iosClient: IosClient, deviceActions: DeviceActions);
541
+ constructor(udid: string, iosClient: IosClient);
563
542
  run(steps?: string[], signal?: AbortSignal, config?: ActivationFlowConfig): {
564
543
  promise: Promise<(() => Promise<void>) | undefined>;
565
544
  events: EventEmitter;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mcesystems/apple-kit",
3
- "version": "1.0.95",
3
+ "version": "1.0.97",
4
4
  "description": "iOS device management toolkit using libimobiledevice command-line tools",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/index.mjs",
@@ -39,8 +39,8 @@
39
39
  "tsx": "^4.21.0",
40
40
  "plist": "^3.1.0",
41
41
  "ts-retry-promise": "^0.8.1",
42
- "@mcesystems/mdm-client-g4": "1.0.95",
43
- "@mcesystems/tool-debug-g4": "1.0.95"
42
+ "@mcesystems/mdm-client-g4": "1.0.97",
43
+ "@mcesystems/tool-debug-g4": "1.0.97"
44
44
  },
45
45
  "devDependencies": {
46
46
  "@types/node": "^22.10.2",
Binary file
@@ -0,0 +1,84 @@
1
+ Prebuilt Binaries License
2
+ -------------------------
3
+
4
+ 1. DEFINITIONS. "Software" means the precise contents of the "wintun.dll"
5
+ files that are included in the .zip file that contains this document as
6
+ downloaded from wintun.net/builds.
7
+
8
+ 2. LICENSE GRANT. WireGuard LLC grants to you a non-exclusive and
9
+ non-transferable right to use Software for lawful purposes under certain
10
+ obligations and limited rights as set forth in this agreement.
11
+
12
+ 3. RESTRICTIONS. Software is owned and copyrighted by WireGuard LLC. It is
13
+ licensed, not sold. Title to Software and all associated intellectual
14
+ property rights are retained by WireGuard. You must not:
15
+ a. reverse engineer, decompile, disassemble, extract from, or otherwise
16
+ modify the Software;
17
+ b. modify or create derivative work based upon Software in whole or in
18
+ parts, except insofar as only the API interfaces of the "wintun.h" file
19
+ distributed alongside the Software (the "Permitted API") are used;
20
+ c. remove any proprietary notices, labels, or copyrights from the Software;
21
+ d. resell, redistribute, lease, rent, transfer, sublicense, or otherwise
22
+ transfer rights of the Software without the prior written consent of
23
+ WireGuard LLC, except insofar as the Software is distributed alongside
24
+ other software that uses the Software only via the Permitted API;
25
+ e. use the name of WireGuard LLC, the WireGuard project, the Wintun
26
+ project, or the names of its contributors to endorse or promote products
27
+ derived from the Software without specific prior written consent.
28
+
29
+ 4. LIMITED WARRANTY. THE SOFTWARE IS PROVIDED "AS IS" AND WITHOUT WARRANTY OF
30
+ ANY KIND. WIREGUARD LLC HEREBY EXCLUDES AND DISCLAIMS ALL IMPLIED OR
31
+ STATUTORY WARRANTIES, INCLUDING ANY WARRANTIES OF MERCHANTABILITY, FITNESS
32
+ FOR A PARTICULAR PURPOSE, QUALITY, NON-INFRINGEMENT, TITLE, RESULTS,
33
+ EFFORTS, OR QUIET ENJOYMENT. THERE IS NO WARRANTY THAT THE PRODUCT WILL BE
34
+ ERROR-FREE OR WILL FUNCTION WITHOUT INTERRUPTION. YOU ASSUME THE ENTIRE
35
+ RISK FOR THE RESULTS OBTAINED USING THE PRODUCT. TO THE EXTENT THAT
36
+ WIREGUARD LLC MAY NOT DISCLAIM ANY WARRANTY AS A MATTER OF APPLICABLE LAW,
37
+ THE SCOPE AND DURATION OF SUCH WARRANTY WILL BE THE MINIMUM PERMITTED UNDER
38
+ SUCH LAW. ALL EXPRESS OR IMPLIED CONDITIONS, REPRESENTATIONS AND
39
+ WARRANTIES, INCLUDING ANY IMPLIED WARRANTY OF MERCHANTABILITY, FITNESS FOR
40
+ A PARTICULAR PURPOSE OR NON-INFRINGEMENT ARE DISCLAIMED, EXCEPT TO THE
41
+ EXTENT THAT THESE DISCLAIMERS ARE HELD TO BE LEGALLY INVALID.
42
+
43
+ 5. LIMITATION OF LIABILITY. To the extent not prohibited by law, in no event
44
+ WireGuard LLC or any third-party-developer will be liable for any lost
45
+ revenue, profit or data or for special, indirect, consequential, incidental
46
+ or punitive damages, however caused regardless of the theory of liability,
47
+ arising out of or related to the use of or inability to use Software, even
48
+ if WireGuard LLC has been advised of the possibility of such damages.
49
+ Solely you are responsible for determining the appropriateness of using
50
+ Software and accept full responsibility for all risks associated with its
51
+ exercise of rights under this agreement, including but not limited to the
52
+ risks and costs of program errors, compliance with applicable laws, damage
53
+ to or loss of data, programs or equipment, and unavailability or
54
+ interruption of operations. The foregoing limitations will apply even if
55
+ the above stated warranty fails of its essential purpose. You acknowledge,
56
+ that it is in the nature of software that software is complex and not
57
+ completely free of errors. In no event shall WireGuard LLC or any
58
+ third-party-developer be liable to you under any theory for any damages
59
+ suffered by you or any user of Software or for any special, incidental,
60
+ indirect, consequential or similar damages (including without limitation
61
+ damages for loss of business profits, business interruption, loss of
62
+ business information or any other pecuniary loss) arising out of the use or
63
+ inability to use Software, even if WireGuard LLC has been advised of the
64
+ possibility of such damages and regardless of the legal or quitable theory
65
+ (contract, tort, or otherwise) upon which the claim is based.
66
+
67
+ 6. TERMINATION. This agreement is affected until terminated. You may
68
+ terminate this agreement at any time. This agreement will terminate
69
+ immediately without notice from WireGuard LLC if you fail to comply with
70
+ the terms and conditions of this agreement. Upon termination, you must
71
+ delete Software and all copies of Software and cease all forms of
72
+ distribution of Software.
73
+
74
+ 7. SEVERABILITY. If any provision of this agreement is held to be
75
+ unenforceable, this agreement will remain in effect with the provision
76
+ omitted, unless omission would frustrate the intent of the parties, in
77
+ which case this agreement will immediately terminate.
78
+
79
+ 8. RESERVATION OF RIGHTS. All rights not expressly granted in this agreement
80
+ are reserved by WireGuard LLC. For example, WireGuard LLC reserves the
81
+ right at any time to cease development of Software, to alter distribution
82
+ details, features, specifications, capabilities, functions, licensing
83
+ terms, release dates, APIs, ABIs, general availability, or other
84
+ characteristics of the Software.
Binary file