react-native-update-cli 1.30.3 → 1.31.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.
@@ -1,224 +1,202 @@
1
- 'use strict';
2
-
3
1
  // From https://github.com/openstf/adbkit-apkreader
2
+ "use strict";
4
3
  const BinaryXmlParser = require('./binary');
5
-
6
4
  const INTENT_MAIN = 'android.intent.action.MAIN';
7
5
  const CATEGORY_LAUNCHER = 'android.intent.category.LAUNCHER';
8
-
9
6
  class ManifestParser {
10
- constructor(buffer, options = {}) {
11
- this.buffer = buffer;
12
- this.xmlParser = new BinaryXmlParser(this.buffer, options);
13
- }
14
-
15
- collapseAttributes(element) {
16
- const collapsed = Object.create(null);
17
- for (let attr of Array.from(element.attributes)) {
18
- collapsed[attr.name] = attr.typedValue.value;
7
+ collapseAttributes(element) {
8
+ const collapsed = Object.create(null);
9
+ for (let attr of Array.from(element.attributes)){
10
+ collapsed[attr.name] = attr.typedValue.value;
11
+ }
12
+ return collapsed;
19
13
  }
20
- return collapsed;
21
- }
22
-
23
- parseIntents(element, target) {
24
- target.intentFilters = [];
25
- target.metaData = [];
26
-
27
- return element.childNodes.forEach(element => {
28
- switch (element.nodeName) {
29
- case 'intent-filter':
30
- {
31
- const intentFilter = this.collapseAttributes(element);
32
-
33
- intentFilter.actions = [];
34
- intentFilter.categories = [];
35
- intentFilter.data = [];
36
-
37
- element.childNodes.forEach(element => {
38
- switch (element.nodeName) {
39
- case 'action':
40
- intentFilter.actions.push(this.collapseAttributes(element));
41
- break;
42
- case 'category':
43
- intentFilter.categories.push(this.collapseAttributes(element));
44
- break;
45
- case 'data':
46
- intentFilter.data.push(this.collapseAttributes(element));
47
- break;
48
- }
49
- });
50
-
51
- target.intentFilters.push(intentFilter);
52
- break;
53
- }
54
- case 'meta-data':
55
- target.metaData.push(this.collapseAttributes(element));
56
- break;
57
- }
58
- });
59
- }
60
-
61
- parseApplication(element) {
62
- const app = this.collapseAttributes(element);
63
-
64
- app.activities = [];
65
- app.activityAliases = [];
66
- app.launcherActivities = [];
67
- app.services = [];
68
- app.receivers = [];
69
- app.providers = [];
70
- app.usesLibraries = [];
71
- app.metaData = [];
72
-
73
- element.childNodes.forEach(element => {
74
- switch (element.nodeName) {
75
- case 'activity':
76
- {
77
- const activity = this.collapseAttributes(element);
78
- this.parseIntents(element, activity);
79
- app.activities.push(activity);
80
- if (this.isLauncherActivity(activity)) {
81
- app.launcherActivities.push(activity);
82
- }
83
- break;
84
- }
85
- case 'activity-alias':
86
- {
87
- const activityAlias = this.collapseAttributes(element);
88
- this.parseIntents(element, activityAlias);
89
- app.activityAliases.push(activityAlias);
90
- if (this.isLauncherActivity(activityAlias)) {
91
- app.launcherActivities.push(activityAlias);
14
+ parseIntents(element, target) {
15
+ target.intentFilters = [];
16
+ target.metaData = [];
17
+ return element.childNodes.forEach((element)=>{
18
+ switch(element.nodeName){
19
+ case 'intent-filter':
20
+ {
21
+ const intentFilter = this.collapseAttributes(element);
22
+ intentFilter.actions = [];
23
+ intentFilter.categories = [];
24
+ intentFilter.data = [];
25
+ element.childNodes.forEach((element)=>{
26
+ switch(element.nodeName){
27
+ case 'action':
28
+ intentFilter.actions.push(this.collapseAttributes(element));
29
+ break;
30
+ case 'category':
31
+ intentFilter.categories.push(this.collapseAttributes(element));
32
+ break;
33
+ case 'data':
34
+ intentFilter.data.push(this.collapseAttributes(element));
35
+ break;
36
+ }
37
+ });
38
+ target.intentFilters.push(intentFilter);
39
+ break;
40
+ }
41
+ case 'meta-data':
42
+ target.metaData.push(this.collapseAttributes(element));
43
+ break;
92
44
  }
93
- break;
94
- }
95
- case 'service':
96
- {
97
- const service = this.collapseAttributes(element);
98
- this.parseIntents(element, service);
99
- app.services.push(service);
100
- break;
101
- }
102
- case 'receiver':
103
- {
104
- const receiver = this.collapseAttributes(element);
105
- this.parseIntents(element, receiver);
106
- app.receivers.push(receiver);
107
- break;
108
- }
109
- case 'provider':
110
- {
111
- const provider = this.collapseAttributes(element);
112
-
113
- provider.grantUriPermissions = [];
114
- provider.metaData = [];
115
- provider.pathPermissions = [];
116
-
117
- element.childNodes.forEach(element => {
118
- switch (element.nodeName) {
119
- case 'grant-uri-permission':
120
- provider.grantUriPermissions.push(this.collapseAttributes(element));
121
- break;
45
+ });
46
+ }
47
+ parseApplication(element) {
48
+ const app = this.collapseAttributes(element);
49
+ app.activities = [];
50
+ app.activityAliases = [];
51
+ app.launcherActivities = [];
52
+ app.services = [];
53
+ app.receivers = [];
54
+ app.providers = [];
55
+ app.usesLibraries = [];
56
+ app.metaData = [];
57
+ element.childNodes.forEach((element)=>{
58
+ switch(element.nodeName){
59
+ case 'activity':
60
+ {
61
+ const activity = this.collapseAttributes(element);
62
+ this.parseIntents(element, activity);
63
+ app.activities.push(activity);
64
+ if (this.isLauncherActivity(activity)) {
65
+ app.launcherActivities.push(activity);
66
+ }
67
+ break;
68
+ }
69
+ case 'activity-alias':
70
+ {
71
+ const activityAlias = this.collapseAttributes(element);
72
+ this.parseIntents(element, activityAlias);
73
+ app.activityAliases.push(activityAlias);
74
+ if (this.isLauncherActivity(activityAlias)) {
75
+ app.launcherActivities.push(activityAlias);
76
+ }
77
+ break;
78
+ }
79
+ case 'service':
80
+ {
81
+ const service = this.collapseAttributes(element);
82
+ this.parseIntents(element, service);
83
+ app.services.push(service);
84
+ break;
85
+ }
86
+ case 'receiver':
87
+ {
88
+ const receiver = this.collapseAttributes(element);
89
+ this.parseIntents(element, receiver);
90
+ app.receivers.push(receiver);
91
+ break;
92
+ }
93
+ case 'provider':
94
+ {
95
+ const provider = this.collapseAttributes(element);
96
+ provider.grantUriPermissions = [];
97
+ provider.metaData = [];
98
+ provider.pathPermissions = [];
99
+ element.childNodes.forEach((element)=>{
100
+ switch(element.nodeName){
101
+ case 'grant-uri-permission':
102
+ provider.grantUriPermissions.push(this.collapseAttributes(element));
103
+ break;
104
+ case 'meta-data':
105
+ provider.metaData.push(this.collapseAttributes(element));
106
+ break;
107
+ case 'path-permission':
108
+ provider.pathPermissions.push(this.collapseAttributes(element));
109
+ break;
110
+ }
111
+ });
112
+ app.providers.push(provider);
113
+ break;
114
+ }
115
+ case 'uses-library':
116
+ app.usesLibraries.push(this.collapseAttributes(element));
117
+ break;
122
118
  case 'meta-data':
123
- provider.metaData.push(this.collapseAttributes(element));
124
- break;
125
- case 'path-permission':
126
- provider.pathPermissions.push(this.collapseAttributes(element));
127
- break;
128
- }
129
- });
130
-
131
- app.providers.push(provider);
132
- break;
133
- }
134
- case 'uses-library':
135
- app.usesLibraries.push(this.collapseAttributes(element));
136
- break;
137
- case 'meta-data':
138
- app.metaData.push(this.collapseAttributes(element));
139
- break;
140
- }
141
- });
142
-
143
- return app;
144
- }
145
-
146
- isLauncherActivity(activity) {
147
- return activity.intentFilters.some(function (filter) {
148
- const hasMain = filter.actions.some(action => action.name === INTENT_MAIN);
149
- if (!hasMain) {
150
- return false;
151
- }
152
- return filter.categories.some(category => category.name === CATEGORY_LAUNCHER);
153
- });
154
- }
155
-
156
- parse() {
157
- const document = this.xmlParser.parse();
158
- const manifest = this.collapseAttributes(document);
159
-
160
- manifest.usesPermissions = [];
161
- manifest.usesPermissionsSDK23 = [];
162
- manifest.permissions = [];
163
- manifest.permissionTrees = [];
164
- manifest.permissionGroups = [];
165
- manifest.instrumentation = null;
166
- manifest.usesSdk = null;
167
- manifest.usesConfiguration = null;
168
- manifest.usesFeatures = [];
169
- manifest.supportsScreens = null;
170
- manifest.compatibleScreens = [];
171
- manifest.supportsGlTextures = [];
172
- manifest.application = Object.create(null);
173
-
174
- document.childNodes.forEach(element => {
175
- switch (element.nodeName) {
176
- case 'uses-permission':
177
- manifest.usesPermissions.push(this.collapseAttributes(element));
178
- break;
179
- case 'uses-permission-sdk-23':
180
- manifest.usesPermissionsSDK23.push(this.collapseAttributes(element));
181
- break;
182
- case 'permission':
183
- manifest.permissions.push(this.collapseAttributes(element));
184
- break;
185
- case 'permission-tree':
186
- manifest.permissionTrees.push(this.collapseAttributes(element));
187
- break;
188
- case 'permission-group':
189
- manifest.permissionGroups.push(this.collapseAttributes(element));
190
- break;
191
- case 'instrumentation':
192
- manifest.instrumentation = this.collapseAttributes(element);
193
- break;
194
- case 'uses-sdk':
195
- manifest.usesSdk = this.collapseAttributes(element);
196
- break;
197
- case 'uses-configuration':
198
- manifest.usesConfiguration = this.collapseAttributes(element);
199
- break;
200
- case 'uses-feature':
201
- manifest.usesFeatures.push(this.collapseAttributes(element));
202
- break;
203
- case 'supports-screens':
204
- manifest.supportsScreens = this.collapseAttributes(element);
205
- break;
206
- case 'compatible-screens':
207
- element.childNodes.forEach(screen => {
208
- return manifest.compatibleScreens.push(this.collapseAttributes(screen));
209
- });
210
- break;
211
- case 'supports-gl-texture':
212
- manifest.supportsGlTextures.push(this.collapseAttributes(element));
213
- break;
214
- case 'application':
215
- manifest.application = this.parseApplication(element);
216
- break;
217
- }
218
- });
219
-
220
- return manifest;
221
- }
119
+ app.metaData.push(this.collapseAttributes(element));
120
+ break;
121
+ }
122
+ });
123
+ return app;
124
+ }
125
+ isLauncherActivity(activity) {
126
+ return activity.intentFilters.some(function(filter) {
127
+ const hasMain = filter.actions.some((action)=>action.name === INTENT_MAIN);
128
+ if (!hasMain) {
129
+ return false;
130
+ }
131
+ return filter.categories.some((category)=>category.name === CATEGORY_LAUNCHER);
132
+ });
133
+ }
134
+ parse() {
135
+ const document = this.xmlParser.parse();
136
+ const manifest = this.collapseAttributes(document);
137
+ manifest.usesPermissions = [];
138
+ manifest.usesPermissionsSDK23 = [];
139
+ manifest.permissions = [];
140
+ manifest.permissionTrees = [];
141
+ manifest.permissionGroups = [];
142
+ manifest.instrumentation = null;
143
+ manifest.usesSdk = null;
144
+ manifest.usesConfiguration = null;
145
+ manifest.usesFeatures = [];
146
+ manifest.supportsScreens = null;
147
+ manifest.compatibleScreens = [];
148
+ manifest.supportsGlTextures = [];
149
+ manifest.application = Object.create(null);
150
+ document.childNodes.forEach((element)=>{
151
+ switch(element.nodeName){
152
+ case 'uses-permission':
153
+ manifest.usesPermissions.push(this.collapseAttributes(element));
154
+ break;
155
+ case 'uses-permission-sdk-23':
156
+ manifest.usesPermissionsSDK23.push(this.collapseAttributes(element));
157
+ break;
158
+ case 'permission':
159
+ manifest.permissions.push(this.collapseAttributes(element));
160
+ break;
161
+ case 'permission-tree':
162
+ manifest.permissionTrees.push(this.collapseAttributes(element));
163
+ break;
164
+ case 'permission-group':
165
+ manifest.permissionGroups.push(this.collapseAttributes(element));
166
+ break;
167
+ case 'instrumentation':
168
+ manifest.instrumentation = this.collapseAttributes(element);
169
+ break;
170
+ case 'uses-sdk':
171
+ manifest.usesSdk = this.collapseAttributes(element);
172
+ break;
173
+ case 'uses-configuration':
174
+ manifest.usesConfiguration = this.collapseAttributes(element);
175
+ break;
176
+ case 'uses-feature':
177
+ manifest.usesFeatures.push(this.collapseAttributes(element));
178
+ break;
179
+ case 'supports-screens':
180
+ manifest.supportsScreens = this.collapseAttributes(element);
181
+ break;
182
+ case 'compatible-screens':
183
+ element.childNodes.forEach((screen)=>{
184
+ return manifest.compatibleScreens.push(this.collapseAttributes(screen));
185
+ });
186
+ break;
187
+ case 'supports-gl-texture':
188
+ manifest.supportsGlTextures.push(this.collapseAttributes(element));
189
+ break;
190
+ case 'application':
191
+ manifest.application = this.parseApplication(element);
192
+ break;
193
+ }
194
+ });
195
+ return manifest;
196
+ }
197
+ constructor(buffer, options = {}){
198
+ this.buffer = buffer;
199
+ this.xmlParser = new BinaryXmlParser(this.buffer, options);
200
+ }
222
201
  }
223
-
224
- module.exports = ManifestParser;
202
+ module.exports = ManifestParser;
@@ -1,50 +1,50 @@
1
- 'use strict';
2
-
1
+ "use strict";
3
2
  const Unzip = require('isomorphic-unzip');
4
3
  const { isBrowser, decodeNullUnicode } = require('./utils');
5
-
6
4
  class Zip {
7
- constructor(file) {
8
- if (isBrowser()) {
9
- if (!(file instanceof window.Blob || typeof file.size !== 'undefined')) {
10
- throw new Error('Param error: [file] must be an instance of Blob or File in browser.');
11
- }
12
- this.file = file;
13
- } else {
14
- if (typeof file !== 'string') {
15
- throw new Error('Param error: [file] must be file path in Node.');
16
- }
17
- this.file = require('path').resolve(file);
18
- }
19
- this.unzip = new Unzip(this.file);
20
- }
21
-
22
- /**
5
+ /**
23
6
  * get entries by regexps, the return format is: { <filename>: <Buffer|Blob> }
24
7
  * @param {Array} regexps // regexps for matching files
25
8
  * @param {String} type // return type, can be buffer or blob, default buffer
26
- */
27
- getEntries(regexps, type = 'buffer') {
28
- regexps = regexps.map(regex => decodeNullUnicode(regex));
29
- return new Promise((resolve, reject) => {
30
- this.unzip.getBuffer(regexps, { type }, (err, buffers) => {
31
- err ? reject(err) : resolve(buffers);
32
- });
33
- });
34
- }
35
- /**
9
+ */ getEntries(regexps, type = 'buffer') {
10
+ regexps = regexps.map((regex)=>decodeNullUnicode(regex));
11
+ return new Promise((resolve, reject)=>{
12
+ this.unzip.getBuffer(regexps, {
13
+ type
14
+ }, (err, buffers)=>{
15
+ err ? reject(err) : resolve(buffers);
16
+ });
17
+ });
18
+ }
19
+ /**
36
20
  * get entry by regex, return an instance of Buffer or Blob
37
21
  * @param {Regex} regex // regex for matching file
38
22
  * @param {String} type // return type, can be buffer or blob, default buffer
39
- */
40
- getEntry(regex, type = 'buffer') {
41
- regex = decodeNullUnicode(regex);
42
- return new Promise((resolve, reject) => {
43
- this.unzip.getBuffer([regex], { type }, (err, buffers) => {
44
- err ? reject(err) : resolve(buffers[regex]);
45
- });
46
- });
47
- }
23
+ */ getEntry(regex, type = 'buffer') {
24
+ regex = decodeNullUnicode(regex);
25
+ return new Promise((resolve, reject)=>{
26
+ this.unzip.getBuffer([
27
+ regex
28
+ ], {
29
+ type
30
+ }, (err, buffers)=>{
31
+ err ? reject(err) : resolve(buffers[regex]);
32
+ });
33
+ });
34
+ }
35
+ constructor(file){
36
+ if (isBrowser()) {
37
+ if (!(file instanceof window.Blob || typeof file.size !== 'undefined')) {
38
+ throw new Error('Param error: [file] must be an instance of Blob or File in browser.');
39
+ }
40
+ this.file = file;
41
+ } else {
42
+ if (typeof file !== 'string') {
43
+ throw new Error('Param error: [file] must be file path in Node.');
44
+ }
45
+ this.file = require('path').resolve(file);
46
+ }
47
+ this.unzip = new Unzip(this.file);
48
+ }
48
49
  }
49
-
50
- module.exports = Zip;
50
+ module.exports = Zip;