@_nazmiforreal/flutter-ota 0.1.22 → 0.1.23

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.
Binary file
@@ -0,0 +1,85 @@
1
+ #!/usr/bin/env node
2
+ 'use strict';
3
+
4
+ // Launcher for the flutter_ota_kit CLI.
5
+ //
6
+ // Resolves a platform+arch-specific prebuilt binary (`flutter-ota-<os>-<arch>`)
7
+ // shipped next to this script, falling back to `dart run` of the bundled Dart
8
+ // source when no prebuilt exists for the current architecture (e.g. a user on
9
+ // arm64 with only an x64 binary present). This keeps the package installable on
10
+ // any platform that has the Dart SDK, without us needing to ship every binary.
11
+
12
+ const { spawnSync } = require('child_process');
13
+ const fs = require('fs');
14
+ const path = require('path');
15
+
16
+ function platform() {
17
+ if (process.platform === 'win32') return 'windows';
18
+ if (process.platform === 'darwin') return 'macos';
19
+ return 'linux';
20
+ }
21
+
22
+ function arch() {
23
+ // Only x64/arm64 matter for Dart AOT; everything else falls back to Dart VM.
24
+ return process.arch === 'arm64' ? 'arm64' : 'x64';
25
+ }
26
+
27
+ const platformName = platform();
28
+ const archName = arch();
29
+ const ext = process.platform === 'win32' ? '.exe' : '';
30
+ const binDir = __dirname;
31
+ const binName = `flutter-ota-${platformName}-${archName}${ext}`;
32
+ const binPath = path.join(binDir, binName);
33
+
34
+ const sourceEntry = path.join(
35
+ binDir, '..', 'dart-src', 'packages', 'cli-tools', 'bin', 'flutter_ota_kit.dart',
36
+ );
37
+ const cliDir = path.dirname(path.dirname(sourceEntry));
38
+
39
+ function chmodIfNeeded(p) {
40
+ try {
41
+ const st = fs.statSync(p);
42
+ // Ensure owner-executable bit is set.
43
+ if (!(st.mode & 0o100)) fs.chmodSync(p, st.mode | 0o755);
44
+ } catch (_) {
45
+ // Non-fatal.
46
+ }
47
+ }
48
+
49
+ function run(bin, args) {
50
+ const res = spawnSync(bin, args, { stdio: 'inherit', windowsHide: false });
51
+ process.exit(res.status == null ? 1 : res.status);
52
+ }
53
+
54
+ if (fs.existsSync(binPath)) {
55
+ chmodIfNeeded(binPath);
56
+ run(binPath, process.argv.slice(2));
57
+ } else if (
58
+ spawnSync('dart', ['--version'], { stdio: 'ignore' }).status === 0 &&
59
+ fs.existsSync(sourceEntry)
60
+ ) {
61
+ // Ensure dependencies are resolved before running from source. We only run
62
+ // `dart pub get` when the package config is missing, so repeated invocations
63
+ // don't re-resolve dependencies on every command.
64
+ const configPath = path.join(cliDir, '.dart_tool', 'package_config.json');
65
+ if (!fs.existsSync(configPath)) {
66
+ const getRes = spawnSync('dart', ['pub', 'get'], { stdio: 'inherit', cwd: cliDir });
67
+ if (getRes.status !== 0) {
68
+ console.error(
69
+ 'flutter-ota: `dart pub get` failed. Install dependencies or build ' +
70
+ `a prebuilt manually:\n cd ${cliDir} && dart compile exe ` +
71
+ `bin/flutter_ota_kit.dart -o ${binPath}`,
72
+ );
73
+ process.exit(1);
74
+ }
75
+ }
76
+ chmodIfNeeded(binPath);
77
+ run('dart', [sourceEntry, ...process.argv.slice(2)]);
78
+ } else {
79
+ console.error(
80
+ `flutter-ota: no prebuilt binary for ${platformName}-${archName} and ` +
81
+ 'the Dart SDK was not found. Install Dart (https://dart.dev) or use a ' +
82
+ 'platform/arch with a shipped prebuilt binary.',
83
+ );
84
+ process.exit(1);
85
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@_nazmiforreal/flutter-ota",
3
- "version": "0.1.22",
3
+ "version": "0.1.23",
4
4
  "description": "Command-line interface for flutter_ota_kit — an OTA code-push tool for Flutter, hot-updater compatible.",
5
5
  "bin": {
6
6
  "flutter-ota": "./bin/flutter-ota.js"
@@ -32,7 +32,7 @@ const ext = process.platform === 'win32' ? '.exe' : '';
32
32
  const pkgDir = path.join(__dirname, '..');
33
33
  const binDir = path.join(pkgDir, 'bin');
34
34
  const target = path.join(binDir, `flutter-ota-${platformName}-${archName}${ext}`);
35
- const cliDir = path.join(pkgDir, 'dart-src', 'packages', 'cli-tools');
35
+ const cliDir = path.join(pkgDir, '..', '..', 'packages', 'cli-tools');
36
36
 
37
37
  function chmod(pathname) {
38
38
  try {
@@ -94,3 +94,51 @@ if (res.status !== 0) {
94
94
  }
95
95
  chmod(target);
96
96
  console.log(`flutter-ota: built ${target}`);
97
+
98
+ // Ensure the npm bin wrapper exists (entry point for `flutter-ota` command)
99
+ const wrapper = path.join(binDir, 'flutter-ota.js');
100
+ if (!fs.existsSync(wrapper)) {
101
+ const wrapperContent = `#!/usr/bin/env node
102
+ 'use strict';
103
+
104
+ // Wrapper entry point for npm bin linking.
105
+ // This file is created by postinstall.js and points to the platform-specific binary.
106
+
107
+ const { spawnSync } = require('child_process');
108
+ const fs = require('fs');
109
+ const path = require('path');
110
+
111
+ function platform() {
112
+ if (process.platform === 'win32') return 'windows';
113
+ if (process.platform === 'darwin') return 'macos';
114
+ return 'linux';
115
+ }
116
+
117
+ function arch() {
118
+ return process.arch === 'arm64' ? 'arm64' : 'x64';
119
+ }
120
+
121
+ const platformName = platform();
122
+ const archName = arch();
123
+ const ext = process.platform === 'win32' ? '.exe' : '';
124
+ const binDir = path.join(__dirname);
125
+ const binary = path.join(binDir, \`flutter-ota-\${platformName}-\${archName}\${ext}\`);
126
+
127
+ if (!fs.existsSync(binary)) {
128
+ console.error(\`flutter-ota: binary not found at \${binary}\`);
129
+ console.error('Run \`npm install\` to trigger postinstall build, or build manually:');
130
+ console.error(\` cd \${path.join(__dirname, '..', 'dart-src', 'packages', 'cli-tools')}\`);
131
+ console.error(\` dart compile exe bin/flutter_ota_kit.dart -o \${binary}\`);
132
+ process.exit(1);
133
+ }
134
+
135
+ // Forward all arguments to the native binary
136
+ const result = spawnSync(binary, process.argv.slice(2), {
137
+ stdio: 'inherit',
138
+ });
139
+ process.exit(result.status ?? 1);
140
+ `;
141
+ fs.writeFileSync(wrapper, wrapperContent);
142
+ chmod(wrapper);
143
+ console.log(`flutter-ota: created npm bin wrapper at ${wrapper}`);
144
+ }
@@ -1,460 +0,0 @@
1
- {
2
- "configVersion": 2,
3
- "packages": [
4
- {
5
- "name": "_fe_analyzer_shared",
6
- "rootUri": "file:///home/user/.pub-cache/hosted/pub.dev/_fe_analyzer_shared-107.0.0",
7
- "packageUri": "lib/",
8
- "languageVersion": "3.11"
9
- },
10
- {
11
- "name": "analyzer",
12
- "rootUri": "file:///home/user/.pub-cache/hosted/pub.dev/analyzer-14.3.0",
13
- "packageUri": "lib/",
14
- "languageVersion": "3.11"
15
- },
16
- {
17
- "name": "archive",
18
- "rootUri": "file:///home/user/.pub-cache/hosted/pub.dev/archive-4.2.0",
19
- "packageUri": "lib/",
20
- "languageVersion": "3.0"
21
- },
22
- {
23
- "name": "args",
24
- "rootUri": "file:///home/user/.pub-cache/hosted/pub.dev/args-2.7.0",
25
- "packageUri": "lib/",
26
- "languageVersion": "3.3"
27
- },
28
- {
29
- "name": "asn1lib",
30
- "rootUri": "file:///home/user/.pub-cache/hosted/pub.dev/asn1lib-1.6.5",
31
- "packageUri": "lib/",
32
- "languageVersion": "3.0"
33
- },
34
- {
35
- "name": "async",
36
- "rootUri": "file:///home/user/.pub-cache/hosted/pub.dev/async-2.13.1",
37
- "packageUri": "lib/",
38
- "languageVersion": "3.4"
39
- },
40
- {
41
- "name": "boolean_selector",
42
- "rootUri": "file:///home/user/.pub-cache/hosted/pub.dev/boolean_selector-2.1.2",
43
- "packageUri": "lib/",
44
- "languageVersion": "3.1"
45
- },
46
- {
47
- "name": "buffer",
48
- "rootUri": "file:///home/user/.pub-cache/hosted/pub.dev/buffer-1.2.3",
49
- "packageUri": "lib/",
50
- "languageVersion": "2.12"
51
- },
52
- {
53
- "name": "charcode",
54
- "rootUri": "file:///home/user/.pub-cache/hosted/pub.dev/charcode-1.4.0",
55
- "packageUri": "lib/",
56
- "languageVersion": "3.0"
57
- },
58
- {
59
- "name": "cli_config",
60
- "rootUri": "file:///home/user/.pub-cache/hosted/pub.dev/cli_config-0.2.0",
61
- "packageUri": "lib/",
62
- "languageVersion": "3.0"
63
- },
64
- {
65
- "name": "clock",
66
- "rootUri": "file:///home/user/.pub-cache/hosted/pub.dev/clock-1.1.3",
67
- "packageUri": "lib/",
68
- "languageVersion": "3.4"
69
- },
70
- {
71
- "name": "collection",
72
- "rootUri": "file:///home/user/.pub-cache/hosted/pub.dev/collection-1.19.1",
73
- "packageUri": "lib/",
74
- "languageVersion": "3.4"
75
- },
76
- {
77
- "name": "convert",
78
- "rootUri": "file:///home/user/.pub-cache/hosted/pub.dev/convert-3.1.2",
79
- "packageUri": "lib/",
80
- "languageVersion": "3.4"
81
- },
82
- {
83
- "name": "coverage",
84
- "rootUri": "file:///home/user/.pub-cache/hosted/pub.dev/coverage-1.15.1",
85
- "packageUri": "lib/",
86
- "languageVersion": "3.4"
87
- },
88
- {
89
- "name": "crypto",
90
- "rootUri": "file:///home/user/.pub-cache/hosted/pub.dev/crypto-3.0.7",
91
- "packageUri": "lib/",
92
- "languageVersion": "3.4"
93
- },
94
- {
95
- "name": "cryptography",
96
- "rootUri": "file:///home/user/.pub-cache/hosted/pub.dev/cryptography-2.9.0",
97
- "packageUri": "lib/",
98
- "languageVersion": "3.3"
99
- },
100
- {
101
- "name": "dart_jsonwebtoken",
102
- "rootUri": "file:///home/user/.pub-cache/hosted/pub.dev/dart_jsonwebtoken-3.4.1",
103
- "packageUri": "lib/",
104
- "languageVersion": "3.0"
105
- },
106
- {
107
- "name": "ffi",
108
- "rootUri": "file:///home/user/.pub-cache/hosted/pub.dev/ffi-2.2.0",
109
- "packageUri": "lib/",
110
- "languageVersion": "3.7"
111
- },
112
- {
113
- "name": "file",
114
- "rootUri": "file:///home/user/.pub-cache/hosted/pub.dev/file-7.0.1",
115
- "packageUri": "lib/",
116
- "languageVersion": "3.0"
117
- },
118
- {
119
- "name": "flutter_ota_kit_aws",
120
- "rootUri": "../../../plugins/aws",
121
- "packageUri": "lib/",
122
- "languageVersion": "3.13"
123
- },
124
- {
125
- "name": "flutter_ota_kit_cloudflare",
126
- "rootUri": "../../../plugins/cloudflare",
127
- "packageUri": "lib/",
128
- "languageVersion": "3.13"
129
- },
130
- {
131
- "name": "flutter_ota_kit_core",
132
- "rootUri": "../../core",
133
- "packageUri": "lib/",
134
- "languageVersion": "3.13"
135
- },
136
- {
137
- "name": "flutter_ota_kit_plugin_core",
138
- "rootUri": "../../../plugins/plugin-core",
139
- "packageUri": "lib/",
140
- "languageVersion": "3.13"
141
- },
142
- {
143
- "name": "flutter_ota_kit_pocketbase",
144
- "rootUri": "../../../plugins/pocketbase",
145
- "packageUri": "lib/",
146
- "languageVersion": "3.13"
147
- },
148
- {
149
- "name": "flutter_ota_kit_postgres",
150
- "rootUri": "../../../plugins/postgres",
151
- "packageUri": "lib/",
152
- "languageVersion": "3.13"
153
- },
154
- {
155
- "name": "flutter_ota_kit_supabase",
156
- "rootUri": "../../../plugins/supabase",
157
- "packageUri": "lib/",
158
- "languageVersion": "3.13"
159
- },
160
- {
161
- "name": "frontend_server_client",
162
- "rootUri": "file:///home/user/.pub-cache/hosted/pub.dev/frontend_server_client-4.0.0",
163
- "packageUri": "lib/",
164
- "languageVersion": "3.0"
165
- },
166
- {
167
- "name": "functions_client",
168
- "rootUri": "file:///home/user/.pub-cache/hosted/pub.dev/functions_client-2.7.1",
169
- "packageUri": "lib/",
170
- "languageVersion": "3.9"
171
- },
172
- {
173
- "name": "glob",
174
- "rootUri": "file:///home/user/.pub-cache/hosted/pub.dev/glob-2.2.0",
175
- "packageUri": "lib/",
176
- "languageVersion": "3.3"
177
- },
178
- {
179
- "name": "gotrue",
180
- "rootUri": "file:///home/user/.pub-cache/hosted/pub.dev/gotrue-2.27.2",
181
- "packageUri": "lib/",
182
- "languageVersion": "3.9"
183
- },
184
- {
185
- "name": "http",
186
- "rootUri": "file:///home/user/.pub-cache/hosted/pub.dev/http-1.6.0",
187
- "packageUri": "lib/",
188
- "languageVersion": "3.4"
189
- },
190
- {
191
- "name": "http_multi_server",
192
- "rootUri": "file:///home/user/.pub-cache/hosted/pub.dev/http_multi_server-3.2.2",
193
- "packageUri": "lib/",
194
- "languageVersion": "3.2"
195
- },
196
- {
197
- "name": "http_parser",
198
- "rootUri": "file:///home/user/.pub-cache/hosted/pub.dev/http_parser-4.1.2",
199
- "packageUri": "lib/",
200
- "languageVersion": "3.4"
201
- },
202
- {
203
- "name": "io",
204
- "rootUri": "file:///home/user/.pub-cache/hosted/pub.dev/io-1.1.0",
205
- "packageUri": "lib/",
206
- "languageVersion": "3.4"
207
- },
208
- {
209
- "name": "logging",
210
- "rootUri": "file:///home/user/.pub-cache/hosted/pub.dev/logging-1.3.0",
211
- "packageUri": "lib/",
212
- "languageVersion": "3.4"
213
- },
214
- {
215
- "name": "matcher",
216
- "rootUri": "file:///home/user/.pub-cache/hosted/pub.dev/matcher-0.12.20",
217
- "packageUri": "lib/",
218
- "languageVersion": "3.10"
219
- },
220
- {
221
- "name": "meta",
222
- "rootUri": "file:///home/user/.pub-cache/hosted/pub.dev/meta-1.19.0",
223
- "packageUri": "lib/",
224
- "languageVersion": "3.5"
225
- },
226
- {
227
- "name": "mime",
228
- "rootUri": "file:///home/user/.pub-cache/hosted/pub.dev/mime-2.1.0",
229
- "packageUri": "lib/",
230
- "languageVersion": "3.2"
231
- },
232
- {
233
- "name": "node_preamble",
234
- "rootUri": "file:///home/user/.pub-cache/hosted/pub.dev/node_preamble-2.0.2",
235
- "packageUri": "lib/",
236
- "languageVersion": "2.12"
237
- },
238
- {
239
- "name": "package_config",
240
- "rootUri": "file:///home/user/.pub-cache/hosted/pub.dev/package_config-3.0.0",
241
- "packageUri": "lib/",
242
- "languageVersion": "3.11"
243
- },
244
- {
245
- "name": "path",
246
- "rootUri": "file:///home/user/.pub-cache/hosted/pub.dev/path-1.9.1",
247
- "packageUri": "lib/",
248
- "languageVersion": "3.4"
249
- },
250
- {
251
- "name": "pointycastle",
252
- "rootUri": "file:///home/user/.pub-cache/hosted/pub.dev/pointycastle-4.0.0",
253
- "packageUri": "lib/",
254
- "languageVersion": "3.2"
255
- },
256
- {
257
- "name": "pool",
258
- "rootUri": "file:///home/user/.pub-cache/hosted/pub.dev/pool-1.5.3",
259
- "packageUri": "lib/",
260
- "languageVersion": "3.4"
261
- },
262
- {
263
- "name": "posix",
264
- "rootUri": "file:///home/user/.pub-cache/hosted/pub.dev/posix-6.5.2",
265
- "packageUri": "lib/",
266
- "languageVersion": "3.0"
267
- },
268
- {
269
- "name": "postgres",
270
- "rootUri": "file:///home/user/.pub-cache/hosted/pub.dev/postgres-3.5.12",
271
- "packageUri": "lib/",
272
- "languageVersion": "3.9"
273
- },
274
- {
275
- "name": "postgrest",
276
- "rootUri": "file:///home/user/.pub-cache/hosted/pub.dev/postgrest-2.9.1",
277
- "packageUri": "lib/",
278
- "languageVersion": "3.9"
279
- },
280
- {
281
- "name": "pub_semver",
282
- "rootUri": "file:///home/user/.pub-cache/hosted/pub.dev/pub_semver-2.2.1",
283
- "packageUri": "lib/",
284
- "languageVersion": "3.4"
285
- },
286
- {
287
- "name": "realtime_client",
288
- "rootUri": "file:///home/user/.pub-cache/hosted/pub.dev/realtime_client-2.13.0",
289
- "packageUri": "lib/",
290
- "languageVersion": "3.9"
291
- },
292
- {
293
- "name": "shelf",
294
- "rootUri": "file:///home/user/.pub-cache/hosted/pub.dev/shelf-1.4.2",
295
- "packageUri": "lib/",
296
- "languageVersion": "3.4"
297
- },
298
- {
299
- "name": "shelf_packages_handler",
300
- "rootUri": "file:///home/user/.pub-cache/hosted/pub.dev/shelf_packages_handler-3.0.2",
301
- "packageUri": "lib/",
302
- "languageVersion": "2.17"
303
- },
304
- {
305
- "name": "shelf_static",
306
- "rootUri": "file:///home/user/.pub-cache/hosted/pub.dev/shelf_static-1.1.3",
307
- "packageUri": "lib/",
308
- "languageVersion": "3.3"
309
- },
310
- {
311
- "name": "shelf_web_socket",
312
- "rootUri": "file:///home/user/.pub-cache/hosted/pub.dev/shelf_web_socket-3.0.0",
313
- "packageUri": "lib/",
314
- "languageVersion": "3.5"
315
- },
316
- {
317
- "name": "source_map_stack_trace",
318
- "rootUri": "file:///home/user/.pub-cache/hosted/pub.dev/source_map_stack_trace-2.1.2",
319
- "packageUri": "lib/",
320
- "languageVersion": "3.3"
321
- },
322
- {
323
- "name": "source_maps",
324
- "rootUri": "file:///home/user/.pub-cache/hosted/pub.dev/source_maps-0.10.14",
325
- "packageUri": "lib/",
326
- "languageVersion": "3.3"
327
- },
328
- {
329
- "name": "source_span",
330
- "rootUri": "file:///home/user/.pub-cache/hosted/pub.dev/source_span-1.10.2",
331
- "packageUri": "lib/",
332
- "languageVersion": "3.1"
333
- },
334
- {
335
- "name": "stack_trace",
336
- "rootUri": "file:///home/user/.pub-cache/hosted/pub.dev/stack_trace-1.12.2",
337
- "packageUri": "lib/",
338
- "languageVersion": "3.4"
339
- },
340
- {
341
- "name": "storage_client",
342
- "rootUri": "file:///home/user/.pub-cache/hosted/pub.dev/storage_client-2.8.0",
343
- "packageUri": "lib/",
344
- "languageVersion": "3.9"
345
- },
346
- {
347
- "name": "stream_channel",
348
- "rootUri": "file:///home/user/.pub-cache/hosted/pub.dev/stream_channel-2.1.4",
349
- "packageUri": "lib/",
350
- "languageVersion": "3.3"
351
- },
352
- {
353
- "name": "string_scanner",
354
- "rootUri": "file:///home/user/.pub-cache/hosted/pub.dev/string_scanner-1.4.1",
355
- "packageUri": "lib/",
356
- "languageVersion": "3.1"
357
- },
358
- {
359
- "name": "supabase",
360
- "rootUri": "file:///home/user/.pub-cache/hosted/pub.dev/supabase-2.16.1",
361
- "packageUri": "lib/",
362
- "languageVersion": "3.9"
363
- },
364
- {
365
- "name": "supabase_common",
366
- "rootUri": "file:///home/user/.pub-cache/hosted/pub.dev/supabase_common-0.1.2",
367
- "packageUri": "lib/",
368
- "languageVersion": "3.9"
369
- },
370
- {
371
- "name": "term_glyph",
372
- "rootUri": "file:///home/user/.pub-cache/hosted/pub.dev/term_glyph-1.2.2",
373
- "packageUri": "lib/",
374
- "languageVersion": "3.1"
375
- },
376
- {
377
- "name": "test",
378
- "rootUri": "file:///home/user/.pub-cache/hosted/pub.dev/test-1.32.0",
379
- "packageUri": "lib/",
380
- "languageVersion": "3.11"
381
- },
382
- {
383
- "name": "test_api",
384
- "rootUri": "file:///home/user/.pub-cache/hosted/pub.dev/test_api-0.7.14",
385
- "packageUri": "lib/",
386
- "languageVersion": "3.11"
387
- },
388
- {
389
- "name": "test_core",
390
- "rootUri": "file:///home/user/.pub-cache/hosted/pub.dev/test_core-0.6.20",
391
- "packageUri": "lib/",
392
- "languageVersion": "3.11"
393
- },
394
- {
395
- "name": "typed_data",
396
- "rootUri": "file:///home/user/.pub-cache/hosted/pub.dev/typed_data-1.4.0",
397
- "packageUri": "lib/",
398
- "languageVersion": "3.5"
399
- },
400
- {
401
- "name": "vm_service",
402
- "rootUri": "file:///home/user/.pub-cache/hosted/pub.dev/vm_service-15.3.0",
403
- "packageUri": "lib/",
404
- "languageVersion": "3.5"
405
- },
406
- {
407
- "name": "watcher",
408
- "rootUri": "file:///home/user/.pub-cache/hosted/pub.dev/watcher-1.2.1",
409
- "packageUri": "lib/",
410
- "languageVersion": "3.4"
411
- },
412
- {
413
- "name": "web",
414
- "rootUri": "file:///home/user/.pub-cache/hosted/pub.dev/web-1.1.1",
415
- "packageUri": "lib/",
416
- "languageVersion": "3.4"
417
- },
418
- {
419
- "name": "web_socket",
420
- "rootUri": "file:///home/user/.pub-cache/hosted/pub.dev/web_socket-1.0.1",
421
- "packageUri": "lib/",
422
- "languageVersion": "3.4"
423
- },
424
- {
425
- "name": "web_socket_channel",
426
- "rootUri": "file:///home/user/.pub-cache/hosted/pub.dev/web_socket_channel-3.0.3",
427
- "packageUri": "lib/",
428
- "languageVersion": "3.3"
429
- },
430
- {
431
- "name": "webkit_inspection_protocol",
432
- "rootUri": "file:///home/user/.pub-cache/hosted/pub.dev/webkit_inspection_protocol-1.2.1",
433
- "packageUri": "lib/",
434
- "languageVersion": "3.0"
435
- },
436
- {
437
- "name": "yaml",
438
- "rootUri": "file:///home/user/.pub-cache/hosted/pub.dev/yaml-3.1.4",
439
- "packageUri": "lib/",
440
- "languageVersion": "3.4"
441
- },
442
- {
443
- "name": "yet_another_json_isolate",
444
- "rootUri": "file:///home/user/.pub-cache/hosted/pub.dev/yet_another_json_isolate-2.1.1",
445
- "packageUri": "lib/",
446
- "languageVersion": "3.4"
447
- },
448
- {
449
- "name": "flutter_ota_kit_cli",
450
- "rootUri": "../",
451
- "packageUri": "lib/",
452
- "languageVersion": "3.13"
453
- }
454
- ],
455
- "generator": "pub",
456
- "generatorVersion": "3.13.2",
457
- "flutterRoot": "file:///home/user/flutter",
458
- "flutterVersion": "3.47.2",
459
- "pubCache": "file:///home/user/.pub-cache"
460
- }