@capacitor/device 1.1.0 → 4.0.0-beta.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/CHANGELOG.md CHANGED
@@ -3,6 +3,62 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ # 4.0.0-beta.0 (2022-06-27)
7
+
8
+
9
+ ### Bug Fixes
10
+
11
+ * **device:** handle case of no localStorage for getId ([#1059](https://github.com/ionic-team/capacitor-plugins/issues/1059)) ([5f77a7d](https://github.com/ionic-team/capacitor-plugins/commit/5f77a7da48fc7f0ce5250e7cba621731ac6b210a))
12
+ * **device:** return short language code in web ([#893](https://github.com/ionic-team/capacitor-plugins/issues/893)) ([07f0887](https://github.com/ionic-team/capacitor-plugins/commit/07f0887f4f0c9a883e55fb24b506a47dc61f13f7))
13
+ * add es2017 lib to tsconfig ([#180](https://github.com/ionic-team/capacitor-plugins/issues/180)) ([2c3776c](https://github.com/ionic-team/capacitor-plugins/commit/2c3776c38ca025c5ee965dec10ccf1cdb6c02e2f))
14
+ * correct addListeners links ([#655](https://github.com/ionic-team/capacitor-plugins/issues/655)) ([f9871e7](https://github.com/ionic-team/capacitor-plugins/commit/f9871e7bd53478addb21155e148829f550c0e457))
15
+ * inline source code in esm map files ([#760](https://github.com/ionic-team/capacitor-plugins/issues/760)) ([a960489](https://github.com/ionic-team/capacitor-plugins/commit/a960489a19db0182b90d187a50deff9dfbe51038))
16
+ * **device:** isVirtual is false on M1 simulators ([#726](https://github.com/ionic-team/capacitor-plugins/issues/726)) ([5377586](https://github.com/ionic-team/capacitor-plugins/commit/53775863df624531e8ffa4b18852b408e1bd2cbd))
17
+ * remove postpublish scripts ([#656](https://github.com/ionic-team/capacitor-plugins/issues/656)) ([ed6ac49](https://github.com/ionic-team/capacitor-plugins/commit/ed6ac499ebf4a47525071ccbfc36c27503e11f60))
18
+ * support deprecated types from Capacitor 2 ([#139](https://github.com/ionic-team/capacitor-plugins/issues/139)) ([2d7127a](https://github.com/ionic-team/capacitor-plugins/commit/2d7127a488e26f0287951921a6db47c49d817336))
19
+
20
+
21
+ ### Features
22
+
23
+ * set targetSDK default value to 32 ([#970](https://github.com/ionic-team/capacitor-plugins/issues/970)) ([fa70d96](https://github.com/ionic-team/capacitor-plugins/commit/fa70d96f141af751aae53ceb5642c46b204f5958))
24
+ * **device:** Add getLanguageTag function ([#939](https://github.com/ionic-team/capacitor-plugins/issues/939)) ([d268e4a](https://github.com/ionic-team/capacitor-plugins/commit/d268e4a3d5a0a0279bae6a971b0d6e65481f1899))
25
+ * **device:** model now reflects exact model on iOS ([#929](https://github.com/ionic-team/capacitor-plugins/issues/929)) ([302d813](https://github.com/ionic-team/capacitor-plugins/commit/302d813991a755c89fbf57a6f5b2c3a2e1cd79aa))
26
+ * add commonjs output format ([#179](https://github.com/ionic-team/capacitor-plugins/issues/179)) ([8e9e098](https://github.com/ionic-team/capacitor-plugins/commit/8e9e09862064b3f6771d7facbc4008e995d9b463))
27
+ * Device plugin ([#47](https://github.com/ionic-team/capacitor-plugins/issues/47)) ([9870e30](https://github.com/ionic-team/capacitor-plugins/commit/9870e3006094062d7b10df6ab59aa9da35f6c34b))
28
+ * set targetSDK default value to 31 ([#824](https://github.com/ionic-team/capacitor-plugins/issues/824)) ([3ee10de](https://github.com/ionic-team/capacitor-plugins/commit/3ee10de98067984c1a4e75295d001c5a895c47f4))
29
+ * Upgrade gradle to 7.4 ([#826](https://github.com/ionic-team/capacitor-plugins/issues/826)) ([5db0906](https://github.com/ionic-team/capacitor-plugins/commit/5db0906f6264287c4f8e69dbaecf19d4d387824b))
30
+ * Use java 11 ([#910](https://github.com/ionic-team/capacitor-plugins/issues/910)) ([5acb2a2](https://github.com/ionic-team/capacitor-plugins/commit/5acb2a288a413492b163e4e97da46a085d9e4be0))
31
+ * **device:** add browser/webview version to getInfo() ([#109](https://github.com/ionic-team/capacitor-plugins/issues/109)) ([48c49c1](https://github.com/ionic-team/capacitor-plugins/commit/48c49c1cd1ffc86b40b02dd3778c0a3079cdc00c))
32
+ * **device:** Add deviceInfo.name implementation for Android ([#88](https://github.com/ionic-team/capacitor-plugins/issues/88)) ([bdc3b38](https://github.com/ionic-team/capacitor-plugins/commit/bdc3b38f70ecc7898e2bb23c1cceaea8903f26d9))
33
+ * **device:** Add getId function ([#370](https://github.com/ionic-team/capacitor-plugins/issues/370)) ([96664c6](https://github.com/ionic-team/capacitor-plugins/commit/96664c630140112af7e50569b98b00f774480949))
34
+ * **device:** Add realDiskTotal and realDiskFree properties ([#694](https://github.com/ionic-team/capacitor-plugins/issues/694)) ([3f67643](https://github.com/ionic-team/capacitor-plugins/commit/3f67643edf4cfd90a84d4606c4c6349b72531b92))
35
+
36
+
37
+
38
+
39
+
40
+ ## [1.1.2](https://github.com/ionic-team/capacitor-plugins/compare/@capacitor/device@1.1.1...@capacitor/device@1.1.2) (2022-01-19)
41
+
42
+
43
+ ### Bug Fixes
44
+
45
+ * inline source code in esm map files ([#760](https://github.com/ionic-team/capacitor-plugins/issues/760)) ([a960489](https://github.com/ionic-team/capacitor-plugins/commit/a960489a19db0182b90d187a50deff9dfbe51038))
46
+
47
+
48
+
49
+
50
+
51
+ ## [1.1.1](https://github.com/ionic-team/capacitor-plugins/compare/@capacitor/device@1.1.0...@capacitor/device@1.1.1) (2021-12-08)
52
+
53
+
54
+ ### Bug Fixes
55
+
56
+ * **device:** isVirtual is false on M1 simulators ([#726](https://github.com/ionic-team/capacitor-plugins/issues/726)) ([5377586](https://github.com/ionic-team/capacitor-plugins/commit/53775863df624531e8ffa4b18852b408e1bd2cbd))
57
+
58
+
59
+
60
+
61
+
6
62
  # [1.1.0](https://github.com/ionic-team/capacitor-plugins/compare/@capacitor/device@1.0.6...@capacitor/device@1.1.0) (2021-11-17)
7
63
 
8
64
 
@@ -11,7 +11,7 @@ Pod::Spec.new do |s|
11
11
  s.author = package['author']
12
12
  s.source = { :git => 'https://github.com/ionic-team/capacitor-plugins.git', :tag => package['name'] + '@' + package['version'] }
13
13
  s.source_files = 'ios/Plugin/**/*.{swift,h,m,c,cc,mm,cpp}', 'device/ios/Plugin/**/*.{swift,h,m,c,cc,mm,cpp}'
14
- s.ios.deployment_target = '12.0'
14
+ s.ios.deployment_target = '13.0'
15
15
  s.dependency 'Capacitor'
16
16
  s.swift_version = '5.1'
17
17
  end
package/README.md CHANGED
@@ -35,6 +35,7 @@ const logBatteryInfo = async () => {
35
35
  * [`getInfo()`](#getinfo)
36
36
  * [`getBatteryInfo()`](#getbatteryinfo)
37
37
  * [`getLanguageCode()`](#getlanguagecode)
38
+ * [`getLanguageTag()`](#getlanguagetag)
38
39
  * [Interfaces](#interfaces)
39
40
  * [Type Aliases](#type-aliases)
40
41
 
@@ -103,14 +104,29 @@ Get the device's current language locale code.
103
104
  --------------------
104
105
 
105
106
 
107
+ ### getLanguageTag()
108
+
109
+ ```typescript
110
+ getLanguageTag() => Promise<LanguageTag>
111
+ ```
112
+
113
+ Get the device's current language locale tag.
114
+
115
+ **Returns:** <code>Promise&lt;<a href="#languagetag">LanguageTag</a>&gt;</code>
116
+
117
+ **Since:** 4.0.0
118
+
119
+ --------------------
120
+
121
+
106
122
  ### Interfaces
107
123
 
108
124
 
109
125
  #### DeviceId
110
126
 
111
- | Prop | Type | Description | Since |
112
- | ---------- | ------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----- |
113
- | **`uuid`** | <code>string</code> | The UUID of the device as available to the app. This identifier may change on modern mobile platforms that only allow per-app install UUIDs. On web, a random identifier is generated and stored on localStorage for subsequent calls. | 1.0.0 |
127
+ | Prop | Type | Description | Since |
128
+ | ---------- | ------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----- |
129
+ | **`uuid`** | <code>string</code> | The UUID of the device as available to the app. This identifier may change on modern mobile platforms that only allow per-app install UUIDs. On web, a random identifier is generated and stored on localStorage for subsequent calls. If localStorage is not available a new random identifier will be generated on every call. | 1.0.0 |
114
130
 
115
131
 
116
132
  #### DeviceInfo
@@ -118,7 +134,7 @@ Get the device's current language locale code.
118
134
  | Prop | Type | Description | Since |
119
135
  | --------------------- | ----------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----- |
120
136
  | **`name`** | <code>string</code> | The name of the device. For example, "John's iPhone". This is only supported on iOS and Android 7.1 or above. | 1.0.0 |
121
- | **`model`** | <code>string</code> | The device model. For example, "iPhone". | 1.0.0 |
137
+ | **`model`** | <code>string</code> | The device model. For example, "iPhone13,4". | 1.0.0 |
122
138
  | **`platform`** | <code>'ios' \| 'android' \| 'web'</code> | The device platform (lowercase). | 1.0.0 |
123
139
  | **`operatingSystem`** | <code><a href="#operatingsystem">OperatingSystem</a></code> | The operating system of the device. | 1.0.0 |
124
140
  | **`osVersion`** | <code>string</code> | The version of the device OS. | 1.0.0 |
@@ -147,6 +163,13 @@ Get the device's current language locale code.
147
163
  | **`value`** | <code>string</code> | Two character language code. | 1.0.0 |
148
164
 
149
165
 
166
+ #### LanguageTag
167
+
168
+ | Prop | Type | Description | Since |
169
+ | ----------- | ------------------- | ----------------------------------------------- | ----- |
170
+ | **`value`** | <code>string</code> | Returns a well-formed IETF BCP 47 language tag. | 4.0.0 |
171
+
172
+
150
173
  ### Type Aliases
151
174
 
152
175
 
@@ -1,8 +1,8 @@
1
1
  ext {
2
- junitVersion = project.hasProperty('junitVersion') ? rootProject.ext.junitVersion : '4.13.1'
3
- androidxAppCompatVersion = project.hasProperty('androidxAppCompatVersion') ? rootProject.ext.androidxAppCompatVersion : '1.2.0'
4
- androidxJunitVersion = project.hasProperty('androidxJunitVersion') ? rootProject.ext.androidxJunitVersion : '1.1.2'
5
- androidxEspressoCoreVersion = project.hasProperty('androidxEspressoCoreVersion') ? rootProject.ext.androidxEspressoCoreVersion : '3.3.0'
2
+ junitVersion = project.hasProperty('junitVersion') ? rootProject.ext.junitVersion : '4.13.2'
3
+ androidxAppCompatVersion = project.hasProperty('androidxAppCompatVersion') ? rootProject.ext.androidxAppCompatVersion : '1.4.2'
4
+ androidxJunitVersion = project.hasProperty('androidxJunitVersion') ? rootProject.ext.androidxJunitVersion : '1.1.3'
5
+ androidxEspressoCoreVersion = project.hasProperty('androidxEspressoCoreVersion') ? rootProject.ext.androidxEspressoCoreVersion : '3.4.0'
6
6
  }
7
7
 
8
8
  buildscript {
@@ -11,17 +11,17 @@ buildscript {
11
11
  mavenCentral()
12
12
  }
13
13
  dependencies {
14
- classpath 'com.android.tools.build:gradle:4.2.1'
14
+ classpath 'com.android.tools.build:gradle:7.2.1'
15
15
  }
16
16
  }
17
17
 
18
18
  apply plugin: 'com.android.library'
19
19
 
20
20
  android {
21
- compileSdkVersion project.hasProperty('compileSdkVersion') ? rootProject.ext.compileSdkVersion : 30
21
+ compileSdkVersion project.hasProperty('compileSdkVersion') ? rootProject.ext.compileSdkVersion : 32
22
22
  defaultConfig {
23
- minSdkVersion project.hasProperty('minSdkVersion') ? rootProject.ext.minSdkVersion : 21
24
- targetSdkVersion project.hasProperty('targetSdkVersion') ? rootProject.ext.targetSdkVersion : 30
23
+ minSdkVersion project.hasProperty('minSdkVersion') ? rootProject.ext.minSdkVersion : 22
24
+ targetSdkVersion project.hasProperty('targetSdkVersion') ? rootProject.ext.targetSdkVersion : 32
25
25
  versionCode 1
26
26
  versionName "1.0"
27
27
  testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
@@ -36,14 +36,13 @@ android {
36
36
  abortOnError false
37
37
  }
38
38
  compileOptions {
39
- sourceCompatibility JavaVersion.VERSION_1_8
40
- targetCompatibility JavaVersion.VERSION_1_8
39
+ sourceCompatibility JavaVersion.VERSION_11
40
+ targetCompatibility JavaVersion.VERSION_11
41
41
  }
42
42
  }
43
43
 
44
44
  repositories {
45
45
  google()
46
- jcenter()
47
46
  mavenCentral()
48
47
  }
49
48
 
@@ -63,4 +63,11 @@ public class DevicePlugin extends Plugin {
63
63
  ret.put("value", Locale.getDefault().getLanguage());
64
64
  call.resolve(ret);
65
65
  }
66
+
67
+ @PluginMethod
68
+ public void getLanguageTag(PluginCall call) {
69
+ JSObject ret = new JSObject();
70
+ ret.put("value", Locale.getDefault().toLanguageTag());
71
+ call.resolve(ret);
72
+ }
66
73
  }
package/dist/docs.json CHANGED
@@ -72,6 +72,23 @@
72
72
  "GetLanguageCodeResult"
73
73
  ],
74
74
  "slug": "getlanguagecode"
75
+ },
76
+ {
77
+ "name": "getLanguageTag",
78
+ "signature": "() => Promise<LanguageTag>",
79
+ "parameters": [],
80
+ "returns": "Promise<LanguageTag>",
81
+ "tags": [
82
+ {
83
+ "name": "since",
84
+ "text": "4.0.0"
85
+ }
86
+ ],
87
+ "docs": "Get the device's current language locale tag.",
88
+ "complexTypes": [
89
+ "LanguageTag"
90
+ ],
91
+ "slug": "getlanguagetag"
75
92
  }
76
93
  ],
77
94
  "properties": []
@@ -92,7 +109,7 @@
92
109
  "name": "since"
93
110
  }
94
111
  ],
95
- "docs": "The UUID of the device as available to the app. This identifier may change\non modern mobile platforms that only allow per-app install UUIDs.\n\nOn web, a random identifier is generated and stored on localStorage for subsequent calls.",
112
+ "docs": "The UUID of the device as available to the app. This identifier may change\non modern mobile platforms that only allow per-app install UUIDs.\n\nOn web, a random identifier is generated and stored on localStorage for subsequent calls.\nIf localStorage is not available a new random identifier will be generated on every call.",
96
113
  "complexTypes": [],
97
114
  "type": "string"
98
115
  }
@@ -125,7 +142,7 @@
125
142
  "name": "since"
126
143
  }
127
144
  ],
128
- "docs": "The device model. For example, \"iPhone\".",
145
+ "docs": "The device model. For example, \"iPhone13,4\".",
129
146
  "complexTypes": [],
130
147
  "type": "string"
131
148
  },
@@ -326,6 +343,27 @@
326
343
  "type": "string"
327
344
  }
328
345
  ]
346
+ },
347
+ {
348
+ "name": "LanguageTag",
349
+ "slug": "languagetag",
350
+ "docs": "",
351
+ "tags": [],
352
+ "methods": [],
353
+ "properties": [
354
+ {
355
+ "name": "value",
356
+ "tags": [
357
+ {
358
+ "text": "4.0.0",
359
+ "name": "since"
360
+ }
361
+ ],
362
+ "docs": "Returns a well-formed IETF BCP 47 language tag.",
363
+ "complexTypes": [],
364
+ "type": "string"
365
+ }
366
+ ]
329
367
  }
330
368
  ],
331
369
  "enums": [],
@@ -5,6 +5,7 @@ export interface DeviceId {
5
5
  * on modern mobile platforms that only allow per-app install UUIDs.
6
6
  *
7
7
  * On web, a random identifier is generated and stored on localStorage for subsequent calls.
8
+ * If localStorage is not available a new random identifier will be generated on every call.
8
9
  *
9
10
  * @since 1.0.0
10
11
  */
@@ -20,7 +21,7 @@ export interface DeviceInfo {
20
21
  */
21
22
  name?: string;
22
23
  /**
23
- * The device model. For example, "iPhone".
24
+ * The device model. For example, "iPhone13,4".
24
25
  *
25
26
  * @since 1.0.0
26
27
  */
@@ -125,6 +126,14 @@ export interface GetLanguageCodeResult {
125
126
  */
126
127
  value: string;
127
128
  }
129
+ export interface LanguageTag {
130
+ /**
131
+ * Returns a well-formed IETF BCP 47 language tag.
132
+ *
133
+ * @since 4.0.0
134
+ */
135
+ value: string;
136
+ }
128
137
  export interface DevicePlugin {
129
138
  /**
130
139
  * Return an unique identifier for the device.
@@ -150,6 +159,12 @@ export interface DevicePlugin {
150
159
  * @since 1.0.0
151
160
  */
152
161
  getLanguageCode(): Promise<GetLanguageCodeResult>;
162
+ /**
163
+ * Get the device's current language locale tag.
164
+ *
165
+ * @since 4.0.0
166
+ */
167
+ getLanguageTag(): Promise<LanguageTag>;
153
168
  }
154
169
  /**
155
170
  * @deprecated Use `BatteryInfo`.
@@ -1 +1 @@
1
- {"version":3,"file":"definitions.js","sourceRoot":"","sources":["../../src/definitions.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"definitions.js","sourceRoot":"","sources":["../../src/definitions.ts"],"names":[],"mappings":"","sourcesContent":["export type OperatingSystem = 'ios' | 'android' | 'windows' | 'mac' | 'unknown';\n\nexport interface DeviceId {\n /**\n * The UUID of the device as available to the app. This identifier may change\n * on modern mobile platforms that only allow per-app install UUIDs.\n *\n * On web, a random identifier is generated and stored on localStorage for subsequent calls.\n * If localStorage is not available a new random identifier will be generated on every call.\n *\n * @since 1.0.0\n */\n uuid: string;\n}\n\nexport interface DeviceInfo {\n /**\n * The name of the device. For example, \"John's iPhone\".\n *\n * This is only supported on iOS and Android 7.1 or above.\n *\n * @since 1.0.0\n */\n name?: string;\n\n /**\n * The device model. For example, \"iPhone13,4\".\n *\n * @since 1.0.0\n */\n model: string;\n\n /**\n * The device platform (lowercase).\n *\n * @since 1.0.0\n */\n platform: 'ios' | 'android' | 'web';\n\n /**\n * The operating system of the device.\n *\n * @since 1.0.0\n */\n operatingSystem: OperatingSystem;\n\n /**\n * The version of the device OS.\n *\n * @since 1.0.0\n */\n osVersion: string;\n\n /**\n * The manufacturer of the device.\n *\n * @since 1.0.0\n */\n manufacturer: string;\n\n /**\n * Whether the app is running in a simulator/emulator.\n *\n * @since 1.0.0\n */\n isVirtual: boolean;\n\n /**\n * Approximate memory used by the current app, in bytes. Divide by\n * 1048576 to get the number of MBs used.\n *\n * @since 1.0.0\n */\n memUsed?: number;\n\n /**\n * How much free disk space is available on the the normal data storage\n * path for the os, in bytes.\n *\n * On Android it returns the free disk space on the \"system\"\n * partition holding the core Android OS.\n * On iOS this value is not accurate.\n *\n * @deprecated Use `realDiskFree`.\n * @since 1.0.0\n */\n diskFree?: number;\n\n /**\n * The total size of the normal data storage path for the OS, in bytes.\n *\n * On Android it returns the disk space on the \"system\"\n * partition holding the core Android OS.\n *\n * @deprecated Use `realDiskTotal`.\n * @since 1.0.0\n */\n diskTotal?: number;\n\n /**\n * How much free disk space is available on the the normal data storage, in bytes.\n *\n * @since 1.1.0\n */\n realDiskFree?: number;\n\n /**\n * The total size of the normal data storage path, in bytes.\n *\n * @since 1.1.0\n */\n realDiskTotal?: number;\n\n /**\n * The web view browser version\n *\n * @since 1.0.0\n */\n webViewVersion: string;\n}\n\nexport interface BatteryInfo {\n /**\n * A percentage (0 to 1) indicating how much the battery is charged.\n *\n * @since 1.0.0\n */\n batteryLevel?: number;\n\n /**\n * Whether the device is charging.\n *\n * @since 1.0.0\n */\n isCharging?: boolean;\n}\n\nexport interface GetLanguageCodeResult {\n /**\n * Two character language code.\n *\n * @since 1.0.0\n */\n value: string;\n}\n\nexport interface LanguageTag {\n /**\n * Returns a well-formed IETF BCP 47 language tag.\n *\n * @since 4.0.0\n */\n value: string;\n}\n\nexport interface DevicePlugin {\n /**\n * Return an unique identifier for the device.\n *\n * @since 1.0.0\n */\n getId(): Promise<DeviceId>;\n\n /**\n * Return information about the underlying device/os/platform.\n *\n * @since 1.0.0\n */\n getInfo(): Promise<DeviceInfo>;\n\n /**\n * Return information about the battery.\n *\n * @since 1.0.0\n */\n getBatteryInfo(): Promise<BatteryInfo>;\n\n /**\n * Get the device's current language locale code.\n *\n * @since 1.0.0\n */\n getLanguageCode(): Promise<GetLanguageCodeResult>;\n\n /**\n * Get the device's current language locale tag.\n *\n * @since 4.0.0\n */\n getLanguageTag(): Promise<LanguageTag>;\n}\n\n/**\n * @deprecated Use `BatteryInfo`.\n * @since 1.0.0\n */\nexport type DeviceBatteryInfo = BatteryInfo;\n\n/**\n * @deprecated Use `GetLanguageCodeResult`.\n * @since 1.0.0\n */\nexport type DeviceLanguageCodeResult = GetLanguageCodeResult;\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAIjD,MAAM,MAAM,GAAG,cAAc,CAAe,QAAQ,EAAE;IACpD,GAAG,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,CAAC;CACxD,CAAC,CAAC;AAEH,cAAc,eAAe,CAAC;AAC9B,OAAO,EAAE,MAAM,EAAE,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAIjD,MAAM,MAAM,GAAG,cAAc,CAAe,QAAQ,EAAE;IACpD,GAAG,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,CAAC;CACxD,CAAC,CAAC;AAEH,cAAc,eAAe,CAAC;AAC9B,OAAO,EAAE,MAAM,EAAE,CAAC","sourcesContent":["import { registerPlugin } from '@capacitor/core';\n\nimport type { DevicePlugin } from './definitions';\n\nconst Device = registerPlugin<DevicePlugin>('Device', {\n web: () => import('./web').then(m => new m.DeviceWeb()),\n});\n\nexport * from './definitions';\nexport { Device };\n"]}
package/dist/esm/web.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import { WebPlugin } from '@capacitor/core';
2
- import type { BatteryInfo, DeviceId, DeviceInfo, DevicePlugin, GetLanguageCodeResult } from './definitions';
2
+ import type { BatteryInfo, DeviceId, DeviceInfo, DevicePlugin, GetLanguageCodeResult, LanguageTag } from './definitions';
3
3
  declare global {
4
4
  interface Navigator {
5
5
  getBattery: any;
@@ -16,6 +16,7 @@ export declare class DeviceWeb extends WebPlugin implements DevicePlugin {
16
16
  getInfo(): Promise<DeviceInfo>;
17
17
  getBatteryInfo(): Promise<BatteryInfo>;
18
18
  getLanguageCode(): Promise<GetLanguageCodeResult>;
19
+ getLanguageTag(): Promise<LanguageTag>;
19
20
  parseUa(ua: string): any;
20
21
  getUid(): string;
21
22
  uuid4(): string;
package/dist/esm/web.js CHANGED
@@ -38,6 +38,11 @@ export class DeviceWeb extends WebPlugin {
38
38
  };
39
39
  }
40
40
  async getLanguageCode() {
41
+ return {
42
+ value: navigator.language.split('-')[0].toLowerCase(),
43
+ };
44
+ }
45
+ async getLanguageTag() {
41
46
  return {
42
47
  value: navigator.language,
43
48
  };
@@ -143,7 +148,7 @@ export class DeviceWeb extends WebPlugin {
143
148
  return uaFields;
144
149
  }
145
150
  getUid() {
146
- if (typeof window !== 'undefined') {
151
+ if (typeof window !== 'undefined' && window.localStorage) {
147
152
  let uid = window.localStorage.getItem('_capuid');
148
153
  if (uid) {
149
154
  return uid;
@@ -1 +1 @@
1
- {"version":3,"file":"web.js","sourceRoot":"","sources":["../../src/web.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"web.js","sourceRoot":"","sources":["../../src/web.ts"],"names":[],"mappings":"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","sourcesContent":["import { WebPlugin } from '@capacitor/core';\n\nimport type {\n BatteryInfo,\n DeviceId,\n DeviceInfo,\n DevicePlugin,\n GetLanguageCodeResult,\n LanguageTag,\n} from './definitions';\n\ndeclare global {\n interface Navigator {\n getBattery: any;\n oscpu: any;\n }\n\n interface Window {\n InstallTrigger?: any;\n ApplePaySession?: any;\n chrome?: any;\n }\n}\n\nexport class DeviceWeb extends WebPlugin implements DevicePlugin {\n async getId(): Promise<DeviceId> {\n return {\n uuid: this.getUid(),\n };\n }\n\n async getInfo(): Promise<DeviceInfo> {\n if (typeof navigator === 'undefined' || !navigator.userAgent) {\n throw this.unavailable('Device API not available in this browser');\n }\n\n const ua = navigator.userAgent;\n const uaFields = this.parseUa(ua);\n\n return {\n model: uaFields.model,\n platform: <const>'web',\n operatingSystem: uaFields.operatingSystem,\n osVersion: uaFields.osVersion,\n manufacturer: navigator.vendor,\n isVirtual: false,\n webViewVersion: uaFields.browserVersion,\n };\n }\n\n async getBatteryInfo(): Promise<BatteryInfo> {\n if (typeof navigator === 'undefined' || !navigator.getBattery) {\n throw this.unavailable('Device API not available in this browser');\n }\n let battery: any = {};\n\n try {\n battery = await navigator.getBattery();\n } catch (e) {\n // Let it fail, we don't care\n }\n\n return {\n batteryLevel: battery.level,\n isCharging: battery.charging,\n };\n }\n\n async getLanguageCode(): Promise<GetLanguageCodeResult> {\n return {\n value: navigator.language.split('-')[0].toLowerCase(),\n };\n }\n\n async getLanguageTag(): Promise<LanguageTag> {\n return {\n value: navigator.language,\n };\n }\n\n parseUa(ua: string): any {\n const uaFields: any = {};\n const start = ua.indexOf('(') + 1;\n let end = ua.indexOf(') AppleWebKit');\n if (ua.indexOf(') Gecko') !== -1) {\n end = ua.indexOf(') Gecko');\n }\n const fields = ua.substring(start, end);\n if (ua.indexOf('Android') !== -1) {\n const tmpFields = fields.replace('; wv', '').split('; ').pop();\n if (tmpFields) {\n uaFields.model = tmpFields.split(' Build')[0];\n }\n uaFields.osVersion = fields.split('; ')[1];\n } else {\n uaFields.model = fields.split('; ')[0];\n if (typeof navigator !== 'undefined' && navigator.oscpu) {\n uaFields.osVersion = navigator.oscpu;\n } else {\n if (ua.indexOf('Windows') !== -1) {\n uaFields.osVersion = fields;\n } else {\n const tmpFields = fields.split('; ').pop();\n if (tmpFields) {\n const lastParts = tmpFields\n .replace(' like Mac OS X', '')\n .split(' ');\n uaFields.osVersion = lastParts[lastParts.length - 1].replace(\n /_/g,\n '.',\n );\n }\n }\n }\n }\n\n if (/android/i.test(ua)) {\n uaFields.operatingSystem = 'android';\n } else if (/iPad|iPhone|iPod/.test(ua) && !window.MSStream) {\n uaFields.operatingSystem = 'ios';\n } else if (/Win/.test(ua)) {\n uaFields.operatingSystem = 'windows';\n } else if (/Mac/i.test(ua)) {\n uaFields.operatingSystem = 'mac';\n } else {\n uaFields.operatingSystem = 'unknown';\n }\n\n // Check for browsers based on non-standard javascript apis, only not user agent\n const isFirefox = !!window.InstallTrigger;\n const isSafari = !!window.ApplePaySession;\n const isChrome = !!window.chrome;\n const isEdge = /Edg/.test(ua);\n const isFirefoxIOS = /FxiOS/.test(ua);\n const isChromeIOS = /CriOS/.test(ua);\n const isEdgeIOS = /EdgiOS/.test(ua);\n\n // FF and Edge User Agents both end with \"/MAJOR.MINOR\"\n if (\n isSafari ||\n (isChrome && !isEdge) ||\n isFirefoxIOS ||\n isChromeIOS ||\n isEdgeIOS\n ) {\n // Safari version comes as \"... Version/MAJOR.MINOR ...\"\n // Chrome version comes as \"... Chrome/MAJOR.MINOR ...\"\n // FirefoxIOS version comes as \"... FxiOS/MAJOR.MINOR ...\"\n // ChromeIOS version comes as \"... CriOS/MAJOR.MINOR ...\"\n let searchWord: string;\n if (isFirefoxIOS) {\n searchWord = 'FxiOS';\n } else if (isChromeIOS) {\n searchWord = 'CriOS';\n } else if (isEdgeIOS) {\n searchWord = 'EdgiOS';\n } else if (isSafari) {\n searchWord = 'Version';\n } else {\n searchWord = 'Chrome';\n }\n\n const words = ua.split(' ');\n for (const word of words) {\n if (word.includes(searchWord)) {\n const version = word.split('/')[1];\n uaFields.browserVersion = version;\n }\n }\n } else if (isFirefox || isEdge) {\n const reverseUA = ua.split('').reverse().join('');\n const reverseVersion = reverseUA.split('/')[0];\n const version = reverseVersion.split('').reverse().join('');\n uaFields.browserVersion = version;\n }\n\n return uaFields;\n }\n\n getUid(): string {\n if (typeof window !== 'undefined' && window.localStorage) {\n let uid = window.localStorage.getItem('_capuid');\n if (uid) {\n return uid;\n }\n\n uid = this.uuid4();\n window.localStorage.setItem('_capuid', uid);\n return uid;\n }\n return this.uuid4();\n }\n\n uuid4(): string {\n return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(\n /[xy]/g,\n function (c) {\n const r = (Math.random() * 16) | 0,\n v = c === 'x' ? r : (r & 0x3) | 0x8;\n return v.toString(16);\n },\n );\n }\n}\n"]}
@@ -47,6 +47,11 @@ class DeviceWeb extends core.WebPlugin {
47
47
  };
48
48
  }
49
49
  async getLanguageCode() {
50
+ return {
51
+ value: navigator.language.split('-')[0].toLowerCase(),
52
+ };
53
+ }
54
+ async getLanguageTag() {
50
55
  return {
51
56
  value: navigator.language,
52
57
  };
@@ -152,7 +157,7 @@ class DeviceWeb extends core.WebPlugin {
152
157
  return uaFields;
153
158
  }
154
159
  getUid() {
155
- if (typeof window !== 'undefined') {
160
+ if (typeof window !== 'undefined' && window.localStorage) {
156
161
  let uid = window.localStorage.getItem('_capuid');
157
162
  if (uid) {
158
163
  return uid;
@@ -1 +1 @@
1
- {"version":3,"file":"plugin.cjs.js","sources":["esm/index.js","esm/web.js"],"sourcesContent":["import { registerPlugin } from '@capacitor/core';\nconst Device = registerPlugin('Device', {\n web: () => import('./web').then(m => new m.DeviceWeb()),\n});\nexport * from './definitions';\nexport { Device };\n//# sourceMappingURL=index.js.map","import { WebPlugin } from '@capacitor/core';\nexport class DeviceWeb extends WebPlugin {\n async getId() {\n return {\n uuid: this.getUid(),\n };\n }\n async getInfo() {\n if (typeof navigator === 'undefined' || !navigator.userAgent) {\n throw this.unavailable('Device API not available in this browser');\n }\n const ua = navigator.userAgent;\n const uaFields = this.parseUa(ua);\n return {\n model: uaFields.model,\n platform: 'web',\n operatingSystem: uaFields.operatingSystem,\n osVersion: uaFields.osVersion,\n manufacturer: navigator.vendor,\n isVirtual: false,\n webViewVersion: uaFields.browserVersion,\n };\n }\n async getBatteryInfo() {\n if (typeof navigator === 'undefined' || !navigator.getBattery) {\n throw this.unavailable('Device API not available in this browser');\n }\n let battery = {};\n try {\n battery = await navigator.getBattery();\n }\n catch (e) {\n // Let it fail, we don't care\n }\n return {\n batteryLevel: battery.level,\n isCharging: battery.charging,\n };\n }\n async getLanguageCode() {\n return {\n value: navigator.language,\n };\n }\n parseUa(ua) {\n const uaFields = {};\n const start = ua.indexOf('(') + 1;\n let end = ua.indexOf(') AppleWebKit');\n if (ua.indexOf(') Gecko') !== -1) {\n end = ua.indexOf(') Gecko');\n }\n const fields = ua.substring(start, end);\n if (ua.indexOf('Android') !== -1) {\n const tmpFields = fields.replace('; wv', '').split('; ').pop();\n if (tmpFields) {\n uaFields.model = tmpFields.split(' Build')[0];\n }\n uaFields.osVersion = fields.split('; ')[1];\n }\n else {\n uaFields.model = fields.split('; ')[0];\n if (typeof navigator !== 'undefined' && navigator.oscpu) {\n uaFields.osVersion = navigator.oscpu;\n }\n else {\n if (ua.indexOf('Windows') !== -1) {\n uaFields.osVersion = fields;\n }\n else {\n const tmpFields = fields.split('; ').pop();\n if (tmpFields) {\n const lastParts = tmpFields\n .replace(' like Mac OS X', '')\n .split(' ');\n uaFields.osVersion = lastParts[lastParts.length - 1].replace(/_/g, '.');\n }\n }\n }\n }\n if (/android/i.test(ua)) {\n uaFields.operatingSystem = 'android';\n }\n else if (/iPad|iPhone|iPod/.test(ua) && !window.MSStream) {\n uaFields.operatingSystem = 'ios';\n }\n else if (/Win/.test(ua)) {\n uaFields.operatingSystem = 'windows';\n }\n else if (/Mac/i.test(ua)) {\n uaFields.operatingSystem = 'mac';\n }\n else {\n uaFields.operatingSystem = 'unknown';\n }\n // Check for browsers based on non-standard javascript apis, only not user agent\n const isFirefox = !!window.InstallTrigger;\n const isSafari = !!window.ApplePaySession;\n const isChrome = !!window.chrome;\n const isEdge = /Edg/.test(ua);\n const isFirefoxIOS = /FxiOS/.test(ua);\n const isChromeIOS = /CriOS/.test(ua);\n const isEdgeIOS = /EdgiOS/.test(ua);\n // FF and Edge User Agents both end with \"/MAJOR.MINOR\"\n if (isSafari ||\n (isChrome && !isEdge) ||\n isFirefoxIOS ||\n isChromeIOS ||\n isEdgeIOS) {\n // Safari version comes as \"... Version/MAJOR.MINOR ...\"\n // Chrome version comes as \"... Chrome/MAJOR.MINOR ...\"\n // FirefoxIOS version comes as \"... FxiOS/MAJOR.MINOR ...\"\n // ChromeIOS version comes as \"... CriOS/MAJOR.MINOR ...\"\n let searchWord;\n if (isFirefoxIOS) {\n searchWord = 'FxiOS';\n }\n else if (isChromeIOS) {\n searchWord = 'CriOS';\n }\n else if (isEdgeIOS) {\n searchWord = 'EdgiOS';\n }\n else if (isSafari) {\n searchWord = 'Version';\n }\n else {\n searchWord = 'Chrome';\n }\n const words = ua.split(' ');\n for (const word of words) {\n if (word.includes(searchWord)) {\n const version = word.split('/')[1];\n uaFields.browserVersion = version;\n }\n }\n }\n else if (isFirefox || isEdge) {\n const reverseUA = ua.split('').reverse().join('');\n const reverseVersion = reverseUA.split('/')[0];\n const version = reverseVersion.split('').reverse().join('');\n uaFields.browserVersion = version;\n }\n return uaFields;\n }\n getUid() {\n if (typeof window !== 'undefined') {\n let uid = window.localStorage.getItem('_capuid');\n if (uid) {\n return uid;\n }\n uid = this.uuid4();\n window.localStorage.setItem('_capuid', uid);\n return uid;\n }\n return this.uuid4();\n }\n uuid4() {\n return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {\n const r = (Math.random() * 16) | 0, v = c === 'x' ? r : (r & 0x3) | 0x8;\n return v.toString(16);\n });\n }\n}\n//# sourceMappingURL=web.js.map"],"names":["registerPlugin","WebPlugin"],"mappings":"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"}
1
+ {"version":3,"file":"plugin.cjs.js","sources":["esm/index.js","esm/web.js"],"sourcesContent":["import { registerPlugin } from '@capacitor/core';\nconst Device = registerPlugin('Device', {\n web: () => import('./web').then(m => new m.DeviceWeb()),\n});\nexport * from './definitions';\nexport { Device };\n//# sourceMappingURL=index.js.map","import { WebPlugin } from '@capacitor/core';\nexport class DeviceWeb extends WebPlugin {\n async getId() {\n return {\n uuid: this.getUid(),\n };\n }\n async getInfo() {\n if (typeof navigator === 'undefined' || !navigator.userAgent) {\n throw this.unavailable('Device API not available in this browser');\n }\n const ua = navigator.userAgent;\n const uaFields = this.parseUa(ua);\n return {\n model: uaFields.model,\n platform: 'web',\n operatingSystem: uaFields.operatingSystem,\n osVersion: uaFields.osVersion,\n manufacturer: navigator.vendor,\n isVirtual: false,\n webViewVersion: uaFields.browserVersion,\n };\n }\n async getBatteryInfo() {\n if (typeof navigator === 'undefined' || !navigator.getBattery) {\n throw this.unavailable('Device API not available in this browser');\n }\n let battery = {};\n try {\n battery = await navigator.getBattery();\n }\n catch (e) {\n // Let it fail, we don't care\n }\n return {\n batteryLevel: battery.level,\n isCharging: battery.charging,\n };\n }\n async getLanguageCode() {\n return {\n value: navigator.language.split('-')[0].toLowerCase(),\n };\n }\n async getLanguageTag() {\n return {\n value: navigator.language,\n };\n }\n parseUa(ua) {\n const uaFields = {};\n const start = ua.indexOf('(') + 1;\n let end = ua.indexOf(') AppleWebKit');\n if (ua.indexOf(') Gecko') !== -1) {\n end = ua.indexOf(') Gecko');\n }\n const fields = ua.substring(start, end);\n if (ua.indexOf('Android') !== -1) {\n const tmpFields = fields.replace('; wv', '').split('; ').pop();\n if (tmpFields) {\n uaFields.model = tmpFields.split(' Build')[0];\n }\n uaFields.osVersion = fields.split('; ')[1];\n }\n else {\n uaFields.model = fields.split('; ')[0];\n if (typeof navigator !== 'undefined' && navigator.oscpu) {\n uaFields.osVersion = navigator.oscpu;\n }\n else {\n if (ua.indexOf('Windows') !== -1) {\n uaFields.osVersion = fields;\n }\n else {\n const tmpFields = fields.split('; ').pop();\n if (tmpFields) {\n const lastParts = tmpFields\n .replace(' like Mac OS X', '')\n .split(' ');\n uaFields.osVersion = lastParts[lastParts.length - 1].replace(/_/g, '.');\n }\n }\n }\n }\n if (/android/i.test(ua)) {\n uaFields.operatingSystem = 'android';\n }\n else if (/iPad|iPhone|iPod/.test(ua) && !window.MSStream) {\n uaFields.operatingSystem = 'ios';\n }\n else if (/Win/.test(ua)) {\n uaFields.operatingSystem = 'windows';\n }\n else if (/Mac/i.test(ua)) {\n uaFields.operatingSystem = 'mac';\n }\n else {\n uaFields.operatingSystem = 'unknown';\n }\n // Check for browsers based on non-standard javascript apis, only not user agent\n const isFirefox = !!window.InstallTrigger;\n const isSafari = !!window.ApplePaySession;\n const isChrome = !!window.chrome;\n const isEdge = /Edg/.test(ua);\n const isFirefoxIOS = /FxiOS/.test(ua);\n const isChromeIOS = /CriOS/.test(ua);\n const isEdgeIOS = /EdgiOS/.test(ua);\n // FF and Edge User Agents both end with \"/MAJOR.MINOR\"\n if (isSafari ||\n (isChrome && !isEdge) ||\n isFirefoxIOS ||\n isChromeIOS ||\n isEdgeIOS) {\n // Safari version comes as \"... Version/MAJOR.MINOR ...\"\n // Chrome version comes as \"... Chrome/MAJOR.MINOR ...\"\n // FirefoxIOS version comes as \"... FxiOS/MAJOR.MINOR ...\"\n // ChromeIOS version comes as \"... CriOS/MAJOR.MINOR ...\"\n let searchWord;\n if (isFirefoxIOS) {\n searchWord = 'FxiOS';\n }\n else if (isChromeIOS) {\n searchWord = 'CriOS';\n }\n else if (isEdgeIOS) {\n searchWord = 'EdgiOS';\n }\n else if (isSafari) {\n searchWord = 'Version';\n }\n else {\n searchWord = 'Chrome';\n }\n const words = ua.split(' ');\n for (const word of words) {\n if (word.includes(searchWord)) {\n const version = word.split('/')[1];\n uaFields.browserVersion = version;\n }\n }\n }\n else if (isFirefox || isEdge) {\n const reverseUA = ua.split('').reverse().join('');\n const reverseVersion = reverseUA.split('/')[0];\n const version = reverseVersion.split('').reverse().join('');\n uaFields.browserVersion = version;\n }\n return uaFields;\n }\n getUid() {\n if (typeof window !== 'undefined' && window.localStorage) {\n let uid = window.localStorage.getItem('_capuid');\n if (uid) {\n return uid;\n }\n uid = this.uuid4();\n window.localStorage.setItem('_capuid', uid);\n return uid;\n }\n return this.uuid4();\n }\n uuid4() {\n return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {\n const r = (Math.random() * 16) | 0, v = c === 'x' ? r : (r & 0x3) | 0x8;\n return v.toString(16);\n });\n }\n}\n//# sourceMappingURL=web.js.map"],"names":["registerPlugin","WebPlugin"],"mappings":"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"}
package/dist/plugin.js CHANGED
@@ -44,6 +44,11 @@ var capacitorDevice = (function (exports, core) {
44
44
  };
45
45
  }
46
46
  async getLanguageCode() {
47
+ return {
48
+ value: navigator.language.split('-')[0].toLowerCase(),
49
+ };
50
+ }
51
+ async getLanguageTag() {
47
52
  return {
48
53
  value: navigator.language,
49
54
  };
@@ -149,7 +154,7 @@ var capacitorDevice = (function (exports, core) {
149
154
  return uaFields;
150
155
  }
151
156
  getUid() {
152
- if (typeof window !== 'undefined') {
157
+ if (typeof window !== 'undefined' && window.localStorage) {
153
158
  let uid = window.localStorage.getItem('_capuid');
154
159
  if (uid) {
155
160
  return uid;
@@ -1 +1 @@
1
- {"version":3,"file":"plugin.js","sources":["esm/index.js","esm/web.js"],"sourcesContent":["import { registerPlugin } from '@capacitor/core';\nconst Device = registerPlugin('Device', {\n web: () => import('./web').then(m => new m.DeviceWeb()),\n});\nexport * from './definitions';\nexport { Device };\n//# sourceMappingURL=index.js.map","import { WebPlugin } from '@capacitor/core';\nexport class DeviceWeb extends WebPlugin {\n async getId() {\n return {\n uuid: this.getUid(),\n };\n }\n async getInfo() {\n if (typeof navigator === 'undefined' || !navigator.userAgent) {\n throw this.unavailable('Device API not available in this browser');\n }\n const ua = navigator.userAgent;\n const uaFields = this.parseUa(ua);\n return {\n model: uaFields.model,\n platform: 'web',\n operatingSystem: uaFields.operatingSystem,\n osVersion: uaFields.osVersion,\n manufacturer: navigator.vendor,\n isVirtual: false,\n webViewVersion: uaFields.browserVersion,\n };\n }\n async getBatteryInfo() {\n if (typeof navigator === 'undefined' || !navigator.getBattery) {\n throw this.unavailable('Device API not available in this browser');\n }\n let battery = {};\n try {\n battery = await navigator.getBattery();\n }\n catch (e) {\n // Let it fail, we don't care\n }\n return {\n batteryLevel: battery.level,\n isCharging: battery.charging,\n };\n }\n async getLanguageCode() {\n return {\n value: navigator.language,\n };\n }\n parseUa(ua) {\n const uaFields = {};\n const start = ua.indexOf('(') + 1;\n let end = ua.indexOf(') AppleWebKit');\n if (ua.indexOf(') Gecko') !== -1) {\n end = ua.indexOf(') Gecko');\n }\n const fields = ua.substring(start, end);\n if (ua.indexOf('Android') !== -1) {\n const tmpFields = fields.replace('; wv', '').split('; ').pop();\n if (tmpFields) {\n uaFields.model = tmpFields.split(' Build')[0];\n }\n uaFields.osVersion = fields.split('; ')[1];\n }\n else {\n uaFields.model = fields.split('; ')[0];\n if (typeof navigator !== 'undefined' && navigator.oscpu) {\n uaFields.osVersion = navigator.oscpu;\n }\n else {\n if (ua.indexOf('Windows') !== -1) {\n uaFields.osVersion = fields;\n }\n else {\n const tmpFields = fields.split('; ').pop();\n if (tmpFields) {\n const lastParts = tmpFields\n .replace(' like Mac OS X', '')\n .split(' ');\n uaFields.osVersion = lastParts[lastParts.length - 1].replace(/_/g, '.');\n }\n }\n }\n }\n if (/android/i.test(ua)) {\n uaFields.operatingSystem = 'android';\n }\n else if (/iPad|iPhone|iPod/.test(ua) && !window.MSStream) {\n uaFields.operatingSystem = 'ios';\n }\n else if (/Win/.test(ua)) {\n uaFields.operatingSystem = 'windows';\n }\n else if (/Mac/i.test(ua)) {\n uaFields.operatingSystem = 'mac';\n }\n else {\n uaFields.operatingSystem = 'unknown';\n }\n // Check for browsers based on non-standard javascript apis, only not user agent\n const isFirefox = !!window.InstallTrigger;\n const isSafari = !!window.ApplePaySession;\n const isChrome = !!window.chrome;\n const isEdge = /Edg/.test(ua);\n const isFirefoxIOS = /FxiOS/.test(ua);\n const isChromeIOS = /CriOS/.test(ua);\n const isEdgeIOS = /EdgiOS/.test(ua);\n // FF and Edge User Agents both end with \"/MAJOR.MINOR\"\n if (isSafari ||\n (isChrome && !isEdge) ||\n isFirefoxIOS ||\n isChromeIOS ||\n isEdgeIOS) {\n // Safari version comes as \"... Version/MAJOR.MINOR ...\"\n // Chrome version comes as \"... Chrome/MAJOR.MINOR ...\"\n // FirefoxIOS version comes as \"... FxiOS/MAJOR.MINOR ...\"\n // ChromeIOS version comes as \"... CriOS/MAJOR.MINOR ...\"\n let searchWord;\n if (isFirefoxIOS) {\n searchWord = 'FxiOS';\n }\n else if (isChromeIOS) {\n searchWord = 'CriOS';\n }\n else if (isEdgeIOS) {\n searchWord = 'EdgiOS';\n }\n else if (isSafari) {\n searchWord = 'Version';\n }\n else {\n searchWord = 'Chrome';\n }\n const words = ua.split(' ');\n for (const word of words) {\n if (word.includes(searchWord)) {\n const version = word.split('/')[1];\n uaFields.browserVersion = version;\n }\n }\n }\n else if (isFirefox || isEdge) {\n const reverseUA = ua.split('').reverse().join('');\n const reverseVersion = reverseUA.split('/')[0];\n const version = reverseVersion.split('').reverse().join('');\n uaFields.browserVersion = version;\n }\n return uaFields;\n }\n getUid() {\n if (typeof window !== 'undefined') {\n let uid = window.localStorage.getItem('_capuid');\n if (uid) {\n return uid;\n }\n uid = this.uuid4();\n window.localStorage.setItem('_capuid', uid);\n return uid;\n }\n return this.uuid4();\n }\n uuid4() {\n return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {\n const r = (Math.random() * 16) | 0, v = c === 'x' ? r : (r & 0x3) | 0x8;\n return v.toString(16);\n });\n }\n}\n//# sourceMappingURL=web.js.map"],"names":["registerPlugin","WebPlugin"],"mappings":"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"}
1
+ {"version":3,"file":"plugin.js","sources":["esm/index.js","esm/web.js"],"sourcesContent":["import { registerPlugin } from '@capacitor/core';\nconst Device = registerPlugin('Device', {\n web: () => import('./web').then(m => new m.DeviceWeb()),\n});\nexport * from './definitions';\nexport { Device };\n//# sourceMappingURL=index.js.map","import { WebPlugin } from '@capacitor/core';\nexport class DeviceWeb extends WebPlugin {\n async getId() {\n return {\n uuid: this.getUid(),\n };\n }\n async getInfo() {\n if (typeof navigator === 'undefined' || !navigator.userAgent) {\n throw this.unavailable('Device API not available in this browser');\n }\n const ua = navigator.userAgent;\n const uaFields = this.parseUa(ua);\n return {\n model: uaFields.model,\n platform: 'web',\n operatingSystem: uaFields.operatingSystem,\n osVersion: uaFields.osVersion,\n manufacturer: navigator.vendor,\n isVirtual: false,\n webViewVersion: uaFields.browserVersion,\n };\n }\n async getBatteryInfo() {\n if (typeof navigator === 'undefined' || !navigator.getBattery) {\n throw this.unavailable('Device API not available in this browser');\n }\n let battery = {};\n try {\n battery = await navigator.getBattery();\n }\n catch (e) {\n // Let it fail, we don't care\n }\n return {\n batteryLevel: battery.level,\n isCharging: battery.charging,\n };\n }\n async getLanguageCode() {\n return {\n value: navigator.language.split('-')[0].toLowerCase(),\n };\n }\n async getLanguageTag() {\n return {\n value: navigator.language,\n };\n }\n parseUa(ua) {\n const uaFields = {};\n const start = ua.indexOf('(') + 1;\n let end = ua.indexOf(') AppleWebKit');\n if (ua.indexOf(') Gecko') !== -1) {\n end = ua.indexOf(') Gecko');\n }\n const fields = ua.substring(start, end);\n if (ua.indexOf('Android') !== -1) {\n const tmpFields = fields.replace('; wv', '').split('; ').pop();\n if (tmpFields) {\n uaFields.model = tmpFields.split(' Build')[0];\n }\n uaFields.osVersion = fields.split('; ')[1];\n }\n else {\n uaFields.model = fields.split('; ')[0];\n if (typeof navigator !== 'undefined' && navigator.oscpu) {\n uaFields.osVersion = navigator.oscpu;\n }\n else {\n if (ua.indexOf('Windows') !== -1) {\n uaFields.osVersion = fields;\n }\n else {\n const tmpFields = fields.split('; ').pop();\n if (tmpFields) {\n const lastParts = tmpFields\n .replace(' like Mac OS X', '')\n .split(' ');\n uaFields.osVersion = lastParts[lastParts.length - 1].replace(/_/g, '.');\n }\n }\n }\n }\n if (/android/i.test(ua)) {\n uaFields.operatingSystem = 'android';\n }\n else if (/iPad|iPhone|iPod/.test(ua) && !window.MSStream) {\n uaFields.operatingSystem = 'ios';\n }\n else if (/Win/.test(ua)) {\n uaFields.operatingSystem = 'windows';\n }\n else if (/Mac/i.test(ua)) {\n uaFields.operatingSystem = 'mac';\n }\n else {\n uaFields.operatingSystem = 'unknown';\n }\n // Check for browsers based on non-standard javascript apis, only not user agent\n const isFirefox = !!window.InstallTrigger;\n const isSafari = !!window.ApplePaySession;\n const isChrome = !!window.chrome;\n const isEdge = /Edg/.test(ua);\n const isFirefoxIOS = /FxiOS/.test(ua);\n const isChromeIOS = /CriOS/.test(ua);\n const isEdgeIOS = /EdgiOS/.test(ua);\n // FF and Edge User Agents both end with \"/MAJOR.MINOR\"\n if (isSafari ||\n (isChrome && !isEdge) ||\n isFirefoxIOS ||\n isChromeIOS ||\n isEdgeIOS) {\n // Safari version comes as \"... Version/MAJOR.MINOR ...\"\n // Chrome version comes as \"... Chrome/MAJOR.MINOR ...\"\n // FirefoxIOS version comes as \"... FxiOS/MAJOR.MINOR ...\"\n // ChromeIOS version comes as \"... CriOS/MAJOR.MINOR ...\"\n let searchWord;\n if (isFirefoxIOS) {\n searchWord = 'FxiOS';\n }\n else if (isChromeIOS) {\n searchWord = 'CriOS';\n }\n else if (isEdgeIOS) {\n searchWord = 'EdgiOS';\n }\n else if (isSafari) {\n searchWord = 'Version';\n }\n else {\n searchWord = 'Chrome';\n }\n const words = ua.split(' ');\n for (const word of words) {\n if (word.includes(searchWord)) {\n const version = word.split('/')[1];\n uaFields.browserVersion = version;\n }\n }\n }\n else if (isFirefox || isEdge) {\n const reverseUA = ua.split('').reverse().join('');\n const reverseVersion = reverseUA.split('/')[0];\n const version = reverseVersion.split('').reverse().join('');\n uaFields.browserVersion = version;\n }\n return uaFields;\n }\n getUid() {\n if (typeof window !== 'undefined' && window.localStorage) {\n let uid = window.localStorage.getItem('_capuid');\n if (uid) {\n return uid;\n }\n uid = this.uuid4();\n window.localStorage.setItem('_capuid', uid);\n return uid;\n }\n return this.uuid4();\n }\n uuid4() {\n return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {\n const r = (Math.random() * 16) | 0, v = c === 'x' ? r : (r & 0x3) | 0x8;\n return v.toString(16);\n });\n }\n}\n//# sourceMappingURL=web.js.map"],"names":["registerPlugin","WebPlugin"],"mappings":"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"}
@@ -65,4 +65,16 @@ import Foundation
65
65
  public func getLanguageCode() -> String {
66
66
  return String(Locale.preferredLanguages[0].prefix(2))
67
67
  }
68
+
69
+ public func getLanguageTag() -> String {
70
+ return String(Locale.preferredLanguages[0])
71
+ }
72
+
73
+ public func getModelName() -> String {
74
+ var size = 0
75
+ sysctlbyname("hw.machine", nil, &size, nil, 0)
76
+ var machine = [CChar](repeating: 0, count: size)
77
+ sysctlbyname("hw.machine", &machine, &size, nil, 0)
78
+ return String(cString: machine)
79
+ }
68
80
  }
@@ -8,4 +8,5 @@ CAP_PLUGIN(DevicePlugin, "Device",
8
8
  CAP_PLUGIN_METHOD(getInfo, CAPPluginReturnPromise);
9
9
  CAP_PLUGIN_METHOD(getBatteryInfo, CAPPluginReturnPromise);
10
10
  CAP_PLUGIN_METHOD(getLanguageCode, CAPPluginReturnPromise);
11
+ CAP_PLUGIN_METHOD(getLanguageTag, CAPPluginReturnPromise);
11
12
  )
@@ -16,8 +16,12 @@ public class DevicePlugin: CAPPlugin {
16
16
  }
17
17
  @objc func getInfo(_ call: CAPPluginCall) {
18
18
  var isSimulator = false
19
- #if arch(i386) || arch(x86_64)
19
+ var modelName = ""
20
+ #if targetEnvironment(simulator)
20
21
  isSimulator = true
22
+ modelName = ProcessInfo().environment["SIMULATOR_MODEL_IDENTIFIER"] ?? "Simulator"
23
+ #else
24
+ modelName = implementation.getModelName()
21
25
  #endif
22
26
 
23
27
  let memUsed = implementation.getMemoryUsage()
@@ -32,7 +36,7 @@ public class DevicePlugin: CAPPlugin {
32
36
  "realDiskFree": realDiskFree,
33
37
  "realDiskTotal": diskTotal,
34
38
  "name": UIDevice.current.name,
35
- "model": UIDevice.current.model,
39
+ "model": modelName,
36
40
  "operatingSystem": "ios",
37
41
  "osVersion": UIDevice.current.systemVersion,
38
42
  "platform": "ios",
@@ -60,4 +64,11 @@ public class DevicePlugin: CAPPlugin {
60
64
  ])
61
65
  }
62
66
 
67
+ @objc func getLanguageTag(_ call: CAPPluginCall) {
68
+ let tag = implementation.getLanguageTag()
69
+ call.resolve([
70
+ "value": tag
71
+ ])
72
+ }
73
+
63
74
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@capacitor/device",
3
- "version": "1.1.0",
3
+ "version": "4.0.0-beta.0",
4
4
  "description": "The Device API exposes internal information about the device, such as the model and operating system version, along with user information such as unique ids.",
5
5
  "main": "dist/plugin.cjs.js",
6
6
  "module": "dist/esm/index.js",
@@ -30,7 +30,7 @@
30
30
  "scripts": {
31
31
  "test": "uvu -r esm -r ts-node/register src/__tests__",
32
32
  "verify": "npm run verify:ios && npm run verify:android && npm run verify:web",
33
- "verify:ios": "cd ios && pod install && xcodebuild -workspace Plugin.xcworkspace -scheme Plugin && cd ..",
33
+ "verify:ios": "cd ios && pod install && xcodebuild -workspace Plugin.xcworkspace -scheme Plugin -destination generic/platform=iOS && cd ..",
34
34
  "verify:android": "cd android && ./gradlew clean build test && cd ..",
35
35
  "verify:web": "npm run build && npm test",
36
36
  "lint": "npm run eslint && npm run prettier -- --check && npm run swiftlint -- lint",
@@ -46,10 +46,10 @@
46
46
  "publish:cocoapod": "pod trunk push ./CapacitorDevice.podspec --allow-warnings"
47
47
  },
48
48
  "devDependencies": {
49
- "@capacitor/android": "^3.0.0",
50
- "@capacitor/core": "^3.0.0",
49
+ "@capacitor/android": "next",
50
+ "@capacitor/core": "next",
51
51
  "@capacitor/docgen": "0.0.18",
52
- "@capacitor/ios": "^3.0.0",
52
+ "@capacitor/ios": "next",
53
53
  "@ionic/eslint-config": "^0.3.0",
54
54
  "@ionic/prettier-config": "~1.0.1",
55
55
  "@ionic/swiftlint-config": "^1.1.2",
@@ -65,7 +65,7 @@
65
65
  "uvu": "^0.5.1"
66
66
  },
67
67
  "peerDependencies": {
68
- "@capacitor/core": "^3.0.0"
68
+ "@capacitor/core": "next"
69
69
  },
70
70
  "prettier": "@ionic/prettier-config",
71
71
  "swiftlint": "@ionic/swiftlint-config",
@@ -83,5 +83,5 @@
83
83
  "publishConfig": {
84
84
  "access": "public"
85
85
  },
86
- "gitHead": "3beb75a9bfc18d0586f2c9df1b584250e95e0237"
86
+ "gitHead": "fd7db8285f72990522da0adc889514c9804b6dae"
87
87
  }