react-native-bundle-discovery-ui 2.7.0-rc.0 → 2.7.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.
@@ -2,7 +2,7 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
2
  //#region src/client/pages/_common.ts
3
3
  const platformColor = `transformOptions.platform = 'android' ? 'rgba(194, 239, 116, .4)' : 'rgba(119, 31, 218, .4)'`;
4
4
  function getPackage(entry) {
5
- return `
5
+ return `
6
6
  $packages: $.packages;
7
7
  $totalSize: $.modules.sum(=>output.sizeInBytes);
8
8
  $toModule: => {
@@ -31,139 +31,162 @@ function getPackage(entry) {
31
31
  }))`;
32
32
  }
33
33
  const metadataTooltip = {
34
- view: "text",
35
- when: "metadata.createdAt",
36
- data: "'Published ' + metadata.createdAt.formatDate() + ' (' + metadata.createdAt.timeAgo() + ')'"
34
+ view: "text",
35
+ when: "metadata.createdAt",
36
+ data: "'Published ' + metadata.createdAt.formatDate() + ' (' + metadata.createdAt.timeAgo() + ')'",
37
37
  };
38
38
  const outdatedColor = "rgba(255, 165, 0, 0.35)";
39
- function getMetadataBadges({ deprecated, outdated, latestVersion, renderLatestVersion }) {
40
- return [{
41
- view: "pill-badge",
42
- when: deprecated,
43
- data: `{ text: '⚠️ deprecated', message: ${deprecated} }`,
44
- color: "#cf222e",
45
- textColor: "white",
46
- darkColor: "#f85149",
47
- darkTextColor: "white",
48
- tooltip: "text: message"
49
- }, renderLatestVersion ? {
50
- view: "pill-badge",
51
- when: outdated,
52
- data: `{ text: '↑ v' + ${latestVersion} }`,
53
- color: outdatedColor,
54
- tooltip: "text: 'Latest version on npm'"
55
- } : null].filter(Boolean);
39
+ function getMetadataBadges({
40
+ deprecated,
41
+ outdated,
42
+ latestVersion,
43
+ renderLatestVersion,
44
+ }) {
45
+ return [
46
+ {
47
+ view: "pill-badge",
48
+ when: deprecated,
49
+ data: `{ text: '⚠️ deprecated', message: ${deprecated} }`,
50
+ color: "#cf222e",
51
+ textColor: "white",
52
+ darkColor: "#f85149",
53
+ darkTextColor: "white",
54
+ tooltip: "text: message",
55
+ },
56
+ renderLatestVersion
57
+ ? {
58
+ view: "pill-badge",
59
+ when: outdated,
60
+ data: `{ text: '↑ v' + ${latestVersion} }`,
61
+ color: outdatedColor,
62
+ tooltip: "text: 'Latest version on npm'",
63
+ }
64
+ : null,
65
+ ].filter(Boolean);
56
66
  }
57
- function getPackageList({ data, itemPkgName, showCopiesBadge, expanded, limit, subLimit }) {
58
- return {
59
- view: "list",
60
- data,
61
- emptyText: "⚠️ No packages found",
62
- limit,
63
- item: {
64
- view: "tree",
65
- expanded,
66
- itemConfig: {
67
- content: [
68
- itemPkgName,
69
- "text: ' '",
70
- "pill-badge:{ text: size.formatBytes(), color: 'rgba(120, 177, 9, 0.35)' }",
71
- ...getMetadataBadges({
72
- deprecated: "pkgInstances.metadata.deprecated[0]",
73
- outdated: "pkgInstances.[metadata and not metadata.isLatest]",
74
- latestVersion: "pkgInstances.metadata.latestVersion[0]",
75
- renderLatestVersion: false
76
- }),
77
- showCopiesBadge ? {
78
- view: "pill-badge",
79
- when: "pkgInstances.size() > 1",
80
- data: "(pkgInstances.size() - 1).pluralBadge(['copy','copies'], '+')",
81
- color: "rgba(255, 0, 0, 0.35)"
82
- } : null,
83
- {
84
- view: "pill-badge",
85
- data: "pkgInstances.modules.size().pluralBadge(['file','files'])"
86
- }
87
- ].filter(Boolean),
88
- children: `$.pkgInstances`,
89
- itemConfig: {
90
- view: "tree-leaf",
91
- limit: subLimit,
92
- content: [
93
- "text:pkgName",
94
- "text:' '",
95
- {
96
- view: "pill-badge",
97
- data: "{ text: 'v' + version, metadata }",
98
- color: "#0af",
99
- tooltip: metadataTooltip
100
- },
101
- "pill-badge:{ text: size.formatBytes(), color: 'rgba(120, 177, 9, 0.35)' }",
102
- {
103
- view: "pill-badge",
104
- data: "modules.size().pluralBadge(['file','files'])"
105
- },
106
- ...getMetadataBadges({
107
- deprecated: "metadata.deprecated",
108
- outdated: "metadata and not metadata.isLatest",
109
- latestVersion: "metadata.latestVersion",
110
- renderLatestVersion: true
111
- })
112
- ],
113
- children: `$.modules`,
114
- itemConfig: {
115
- view: "tree-leaf",
116
- content: getTreeModule({ hasPercent: true })
117
- }
118
- }
119
- }
120
- }
121
- };
67
+ function getPackageList({
68
+ data,
69
+ itemPkgName,
70
+ showCopiesBadge,
71
+ expanded,
72
+ limit,
73
+ subLimit,
74
+ }) {
75
+ return {
76
+ view: "list",
77
+ data,
78
+ emptyText: "⚠️ No packages found",
79
+ limit,
80
+ item: {
81
+ view: "tree",
82
+ expanded,
83
+ itemConfig: {
84
+ content: [
85
+ itemPkgName,
86
+ "text: ' '",
87
+ "pill-badge:{ text: size.formatBytes(), color: 'rgba(120, 177, 9, 0.35)' }",
88
+ ...getMetadataBadges({
89
+ deprecated: "pkgInstances.metadata.deprecated[0]",
90
+ outdated: "pkgInstances.[metadata and not metadata.isLatest]",
91
+ latestVersion: "pkgInstances.metadata.latestVersion[0]",
92
+ renderLatestVersion: false,
93
+ }),
94
+ showCopiesBadge
95
+ ? {
96
+ view: "pill-badge",
97
+ when: "pkgInstances.size() > 1",
98
+ data: "(pkgInstances.size() - 1).pluralBadge(['copy','copies'], '+')",
99
+ color: "rgba(255, 0, 0, 0.35)",
100
+ }
101
+ : null,
102
+ {
103
+ view: "pill-badge",
104
+ data: "pkgInstances.modules.size().pluralBadge(['file','files'])",
105
+ },
106
+ ].filter(Boolean),
107
+ children: `$.pkgInstances`,
108
+ itemConfig: {
109
+ view: "tree-leaf",
110
+ limit: subLimit,
111
+ content: [
112
+ "text:pkgName",
113
+ "text:' '",
114
+ {
115
+ view: "pill-badge",
116
+ data: "{ text: 'v' + version, metadata }",
117
+ color: "#0af",
118
+ tooltip: metadataTooltip,
119
+ },
120
+ "pill-badge:{ text: size.formatBytes(), color: 'rgba(120, 177, 9, 0.35)' }",
121
+ {
122
+ view: "pill-badge",
123
+ data: "modules.size().pluralBadge(['file','files'])",
124
+ },
125
+ ...getMetadataBadges({
126
+ deprecated: "metadata.deprecated",
127
+ outdated: "metadata and not metadata.isLatest",
128
+ latestVersion: "metadata.latestVersion",
129
+ renderLatestVersion: true,
130
+ }),
131
+ ],
132
+ children: `$.modules`,
133
+ itemConfig: {
134
+ view: "tree-leaf",
135
+ content: getTreeModule({ hasPercent: true }),
136
+ },
137
+ },
138
+ },
139
+ },
140
+ };
122
141
  }
123
142
  function getTreeModule({ hasTextMatch = false, hasPercent = false } = {}) {
124
- return [
125
- "pill-badge:{ text: ext, color: ext.getExtColor() }",
126
- hasTextMatch ? {
127
- view: "link",
128
- content: hasTextMatch ? "text-match" : "text",
129
- data: `{
143
+ return [
144
+ "pill-badge:{ text: ext, color: ext.getExtColor() }",
145
+ hasTextMatch
146
+ ? {
147
+ view: "link",
148
+ content: hasTextMatch ? "text-match" : "text",
149
+ data: `{
130
150
  href: name.pageLink("module", {}),
131
151
  text: name,
132
152
  match: #.filterByPathStr
133
- }`
134
- } : {
135
- view: "link",
136
- data: `{ href: $.name.pageLink("module", {}), text: $.name }`
137
- },
138
- "text:' '",
139
- {
140
- view: "badge",
141
- when: "isEntry",
142
- text: "Entrypoint",
143
- color: "gold",
144
- textColor: "black"
145
- },
146
- "pill-badge:{ text: size, color: 'rgba(120, 177, 9, 0.35)' }",
147
- hasPercent ? "pill-badge:{ text: percent, color: 'rgba(120, 177, 9, 0.35)' }" : null
148
- ].filter(Boolean);
153
+ }`,
154
+ }
155
+ : {
156
+ view: "link",
157
+ data: `{ href: $.name.pageLink("module", {}), text: $.name }`,
158
+ },
159
+ "text:' '",
160
+ {
161
+ view: "badge",
162
+ when: "isEntry",
163
+ text: "Entrypoint",
164
+ color: "gold",
165
+ textColor: "black",
166
+ },
167
+ "pill-badge:{ text: size, color: 'rgba(120, 177, 9, 0.35)' }",
168
+ hasPercent
169
+ ? "pill-badge:{ text: percent, color: 'rgba(120, 177, 9, 0.35)' }"
170
+ : null,
171
+ ].filter(Boolean);
149
172
  }
150
173
  function getModulesTree({ data, limit }) {
151
- if (!data) throw new Error("[getModulesTree]: data is required");
152
- return {
153
- view: "content-filter",
154
- data,
155
- name: "filterByPathStr",
156
- content: {
157
- view: "list",
158
- limit,
159
- data: ".[name ~= #.filterByPathStr]",
160
- emptyText: "⚠️ No modules found",
161
- item: {
162
- view: "tree",
163
- expanded: false,
164
- itemConfig: {
165
- content: getTreeModule({ hasTextMatch: true }),
166
- children: `
174
+ if (!data) throw new Error("[getModulesTree]: data is required");
175
+ return {
176
+ view: "content-filter",
177
+ data,
178
+ name: "filterByPathStr",
179
+ content: {
180
+ view: "list",
181
+ limit,
182
+ data: ".[name ~= #.filterByPathStr]",
183
+ emptyText: "⚠️ No modules found",
184
+ item: {
185
+ view: "tree",
186
+ expanded: false,
187
+ itemConfig: {
188
+ content: getTreeModule({ hasTextMatch: true }),
189
+ children: `
167
190
  [
168
191
  {
169
192
  title:'Imported by modules',
@@ -177,100 +200,106 @@ function getModulesTree({ data, limit }) {
177
200
  }
178
201
  ].filter(=> $.data.size() > 0)
179
202
  `,
180
- itemConfig: {
181
- view: "switch",
182
- content: [{
183
- when: "type=\"reasons\"",
184
- content: {
185
- view: "tree-leaf",
186
- content: [
187
- "text:title",
188
- "text:' '",
189
- "badge:{ text: $.data.size() }"
190
- ],
191
- children: `$.data`,
192
- itemConfig: {
193
- view: "tree-leaf",
194
- content: getTreeModule()
195
- }
196
- }
197
- }, {
198
- when: "type=\"duplicates\"",
199
- content: {
200
- view: "tree-leaf",
201
- content: [
202
- "text:title",
203
- "text:' '",
204
- "badge:{ text: $.data.size() }"
205
- ],
206
- children: `$.data`,
207
- itemConfig: {
208
- view: "tree-leaf",
209
- content: getTreeModule()
210
- }
211
- }
212
- }]
213
- }
214
- }
215
- }
216
- }
217
- };
203
+ itemConfig: {
204
+ view: "switch",
205
+ content: [
206
+ {
207
+ when: 'type="reasons"',
208
+ content: {
209
+ view: "tree-leaf",
210
+ content: [
211
+ "text:title",
212
+ "text:' '",
213
+ "badge:{ text: $.data.size() }",
214
+ ],
215
+ children: `$.data`,
216
+ itemConfig: {
217
+ view: "tree-leaf",
218
+ content: getTreeModule(),
219
+ },
220
+ },
221
+ },
222
+ {
223
+ when: 'type="duplicates"',
224
+ content: {
225
+ view: "tree-leaf",
226
+ content: [
227
+ "text:title",
228
+ "text:' '",
229
+ "badge:{ text: $.data.size() }",
230
+ ],
231
+ children: `$.data`,
232
+ itemConfig: {
233
+ view: "tree-leaf",
234
+ content: getTreeModule(),
235
+ },
236
+ },
237
+ },
238
+ ],
239
+ },
240
+ },
241
+ },
242
+ },
243
+ };
218
244
  }
219
245
  const metadata = {
220
- platform: {
221
- when: "transformOptions.platform",
222
- view: "badge",
223
- data: `{ prefix: 'Platform: ', text: transformOptions.platform, color: ${platformColor} }`
224
- },
225
- size: {
226
- when: "modules.filter(=> $.path has 'node_modules').size()",
227
- view: "badge",
228
- data: `{ prefix: 'Size: ', text: modules.sum(=>output.sizeInBytes).formatBytes(), color: ${platformColor} }`
229
- },
230
- node_modules_size: {
231
- when: "modules.filter(=> $.path has 'node_modules').size()",
232
- view: "badge",
233
- data: "{ prefix: 'node_modules: ', text: modules.filter(=> $.path has 'node_modules').sum(=>output.sizeInBytes).formatBytes(), color: 'rgba(255, 0, 0, 0.35)' }"
234
- },
235
- source_code_size: {
236
- when: "modules.filter(=> $.path has 'node_modules').size()",
237
- view: "badge",
238
- data: `
246
+ platform: {
247
+ when: "transformOptions.platform",
248
+ view: "badge",
249
+ data: `{ prefix: 'Platform: ', text: transformOptions.platform, color: ${platformColor} }`,
250
+ },
251
+ size: {
252
+ when: "modules.filter(=> $.path has 'node_modules').size()",
253
+ view: "badge",
254
+ data: `{ prefix: 'Size: ', text: modules.sum(=>output.sizeInBytes).formatBytes(), color: ${platformColor} }`,
255
+ },
256
+ node_modules_size: {
257
+ when: "modules.filter(=> $.path has 'node_modules').size()",
258
+ view: "badge",
259
+ data: "{ prefix: 'node_modules: ', text: modules.filter(=> $.path has 'node_modules').sum(=>output.sizeInBytes).formatBytes(), color: 'rgba(255, 0, 0, 0.35)' }",
260
+ },
261
+ source_code_size: {
262
+ when: "modules.filter(=> $.path has 'node_modules').size()",
263
+ view: "badge",
264
+ data: `
239
265
  // vars
240
266
  $totalSize: modules.sum(=>output.sizeInBytes);
241
267
  $thirdPartySize: modules.filter(=> $.path has 'node_modules').sum(=>output.sizeInBytes);
242
268
  // return data
243
- { prefix: 'Source code: ', text: ($totalSize - $thirdPartySize).formatBytes(), color: 'rgba(148, 111, 234, 0.5)' }`
244
- },
245
- is_dev: {
246
- when: "transformOptions.dev != null",
247
- view: "badge",
248
- data: "{ prefix: '__DEV__: ', text: transformOptions.dev }"
249
- },
250
- is_minified: {
251
- when: "transformOptions.minify != null",
252
- view: "badge",
253
- data: "{ prefix: 'Minify: ', text: transformOptions.minify }"
254
- }
269
+ { prefix: 'Source code: ', text: ($totalSize - $thirdPartySize).formatBytes(), color: 'rgba(148, 111, 234, 0.5)' }`,
270
+ },
271
+ is_dev: {
272
+ when: "transformOptions.dev != null",
273
+ view: "badge",
274
+ data: "{ prefix: '__DEV__: ', text: transformOptions.dev }",
275
+ },
276
+ is_minified: {
277
+ when: "transformOptions.minify != null",
278
+ view: "badge",
279
+ data: "{ prefix: 'Minify: ', text: transformOptions.minify }",
280
+ },
255
281
  };
256
282
  const externalLinkHtml = `<svg class="my-icon my-icon-link" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" ><path d="M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6M15 3h6v6M10 14 21 3"></path></svg>`;
257
283
  function getCopyToClipboardButton({ textToCopy, className, text }) {
258
- return {
259
- view: "button",
260
- className: `${className ?? ""} copy-to-clipboard`,
261
- text,
262
- data: `{ textToCopy: ${textToCopy} }`,
263
- onClick(elm, data) {
264
- clearTimeout(elm.__timer);
265
- navigator.clipboard.writeText(data.textToCopy).then(() => {
266
- elm.classList.add("done");
267
- elm.__timer = setTimeout(() => elm.classList.remove("done"), 2e3);
268
- }).catch(() => {
269
- elm.classList.add("err");
270
- elm.__timer = setTimeout(() => elm.classList.remove("err"), 2e3);
271
- });
272
- }
273
- };
284
+ return {
285
+ view: "button",
286
+ className: `${className ?? ""} copy-to-clipboard`,
287
+ text,
288
+ data: `{ textToCopy: ${textToCopy} }`,
289
+ onClick(elm, data) {
290
+ clearTimeout(elm.__timer);
291
+ navigator.clipboard
292
+ .writeText(data.textToCopy)
293
+ .then(() => {
294
+ elm.classList.add("done");
295
+ elm.__timer = setTimeout(() => elm.classList.remove("done"), 2e3);
296
+ })
297
+ .catch(() => {
298
+ elm.classList.add("err");
299
+ elm.__timer = setTimeout(() => elm.classList.remove("err"), 2e3);
300
+ });
301
+ },
302
+ };
274
303
  }
275
304
  //#endregion
276
305
  exports.externalLinkHtml = externalLinkHtml;