balena-cli 23.2.14-build-update-compose-tar-dependencies-8decbe453ca1f661f606bfb12ed61e774d54276a-1 → 23.2.14

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,16 +1,16 @@
1
1
  {
2
2
  "name": "balena-cli",
3
- "version": "23.2.14-build-update-compose-tar-dependencies-8decbe453ca1f661f606bfb12ed61e774d54276a-1",
3
+ "version": "23.2.14",
4
4
  "lockfileVersion": 3,
5
5
  "requires": true,
6
6
  "packages": {
7
7
  "": {
8
8
  "name": "balena-cli",
9
- "version": "23.2.14-build-update-compose-tar-dependencies-8decbe453ca1f661f606bfb12ed61e774d54276a-1",
9
+ "version": "23.2.14",
10
10
  "hasInstallScript": true,
11
11
  "license": "Apache-2.0",
12
12
  "dependencies": {
13
- "@balena/compose": "^7.2.1",
13
+ "@balena/compose": "^7.0.10",
14
14
  "@balena/dockerignore": "^1.0.2",
15
15
  "@balena/env-parsing": "^1.1.8",
16
16
  "@balena/es-version": "^1.0.1",
@@ -24,7 +24,7 @@
24
24
  "balena-errors": "^4.7.3",
25
25
  "balena-image-fs": "^7.5.2",
26
26
  "balena-preload": "^18.0.5",
27
- "balena-sdk": "^22.4.1",
27
+ "balena-sdk": "^22.4.5",
28
28
  "balena-semver": "^3.0.10",
29
29
  "balena-settings-client": "^5.0.2",
30
30
  "balena-settings-storage": "^8.1.0",
@@ -77,8 +77,8 @@
77
77
  "stream-to-promise": "^2.2.0",
78
78
  "string-width": "^4.2.3",
79
79
  "strip-ansi-stream": "^1.0.0",
80
- "tar-stream": "^3.1.7",
81
- "tar-utils": "^3.1.1",
80
+ "tar-stream": "^2.1.3",
81
+ "tar-utils": "^3.0.3",
82
82
  "through2": "^2.0.3",
83
83
  "tmp": "^0.2.1",
84
84
  "typed-error": "^3.2.1",
@@ -6014,32 +6014,34 @@
6014
6014
  }
6015
6015
  },
6016
6016
  "node_modules/@balena/compose": {
6017
- "version": "7.2.1",
6018
- "resolved": "https://registry.npmjs.org/@balena/compose/-/compose-7.2.1.tgz",
6019
- "integrity": "sha512-mEZnLX7IqIaOVOV5hYlj1/Ta+K+yMk8B7pFSOgCKFdmyP5E+oxymze28APUe2QrjMKKvxZoTjtuiZJvKkeEX7w==",
6017
+ "version": "7.0.10",
6018
+ "resolved": "https://registry.npmjs.org/@balena/compose/-/compose-7.0.10.tgz",
6019
+ "integrity": "sha512-uk7FHt2wfB0ItRZWYUqKcvBxNGzmdZdobOoO85SLyOoC13/Sequn3IUaI+R7atz/r9lT+7yPZ+jImrNpzoUxxw==",
6020
6020
  "license": "Apache-2.0",
6021
6021
  "dependencies": {
6022
- "ajv": "^6.12.6",
6023
- "balena-sdk": "^22.1.3",
6022
+ "ajv": "^6.12.3",
6024
6023
  "docker-file-parser": "^1.0.7",
6025
- "docker-progress": "^5.3.1",
6026
- "dockerfile-ast": "^0.7.1",
6027
- "dockerode": "^4.0.8",
6028
- "fp-ts": "^2.16.11",
6029
- "io-ts": "^2.2.22",
6024
+ "docker-progress": "^5.1.0",
6025
+ "dockerfile-ast": "^0.7.0",
6026
+ "dockerode": "^4.0.4",
6027
+ "duplexify": "^4.1.2",
6028
+ "event-stream": "^4.0.1",
6029
+ "fp-ts": "^2.8.1",
6030
+ "io-ts": "^2.2.9",
6030
6031
  "io-ts-reporters": "^1.2.2",
6031
6032
  "js-yaml": "^4.1.0",
6032
- "jsesc": "^3.1.0",
6033
+ "jsesc": "^3.0.2",
6033
6034
  "JSONStream": "^1.3.5",
6034
- "klaw": "^4.1.0",
6035
- "lodash": "^4.17.21",
6036
- "memoizee": "^0.4.17",
6035
+ "klaw": "^4.0.1",
6036
+ "lodash": "^4.17.19",
6037
+ "memoizee": "^0.4.15",
6037
6038
  "mz": "^2.7.0",
6038
6039
  "p-map": "^4.0.0",
6039
- "semver": "^7.7.2",
6040
- "tar-stream": "^3.1.7",
6041
- "tar-utils": "^3.1.0",
6042
- "typed-error": "^3.2.2"
6040
+ "semver": "^7.3.5",
6041
+ "stream-to-promise": "^3.0.0",
6042
+ "tar-stream": "^3.1.6",
6043
+ "tar-utils": "^3.0.2",
6044
+ "typed-error": "^3.2.1"
6043
6045
  },
6044
6046
  "engines": {
6045
6047
  "node": ">=20.6.0"
@@ -6048,6 +6050,43 @@
6048
6050
  "pinejs-client-core": "^6.14.13 || ^7.0.0 || ^8.0.0"
6049
6051
  }
6050
6052
  },
6053
+ "node_modules/@balena/compose/node_modules/event-stream": {
6054
+ "version": "4.0.1",
6055
+ "resolved": "https://registry.npmjs.org/event-stream/-/event-stream-4.0.1.tgz",
6056
+ "integrity": "sha512-qACXdu/9VHPBzcyhdOWR5/IahhGMf0roTeZJfzz077GwylcDd90yOHLouhmv7GJ5XzPi6ekaQWd8AvPP2nOvpA==",
6057
+ "dependencies": {
6058
+ "duplexer": "^0.1.1",
6059
+ "from": "^0.1.7",
6060
+ "map-stream": "0.0.7",
6061
+ "pause-stream": "^0.0.11",
6062
+ "split": "^1.0.1",
6063
+ "stream-combiner": "^0.2.2",
6064
+ "through": "^2.3.8"
6065
+ }
6066
+ },
6067
+ "node_modules/@balena/compose/node_modules/stream-to-promise": {
6068
+ "version": "3.0.0",
6069
+ "resolved": "https://registry.npmjs.org/stream-to-promise/-/stream-to-promise-3.0.0.tgz",
6070
+ "integrity": "sha512-h+7wLeFiYegOdgTfTxjRsrT7/Op7grnKEIHWgaO1RTHwcwk7xRreMr3S8XpDfDMesSxzgM2V4CxNCFAGo6ssnA==",
6071
+ "dependencies": {
6072
+ "any-promise": "~1.3.0",
6073
+ "end-of-stream": "~1.4.1",
6074
+ "stream-to-array": "~2.3.0"
6075
+ },
6076
+ "engines": {
6077
+ "node": ">= 10"
6078
+ }
6079
+ },
6080
+ "node_modules/@balena/compose/node_modules/tar-stream": {
6081
+ "version": "3.1.7",
6082
+ "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-3.1.7.tgz",
6083
+ "integrity": "sha512-qJj60CXt7IU1Ffyc3NJMjh6EkuCFej46zUqJ4J7pqYlThyd9bO0XBTmcOIhSzZJVWfsLks0+nle/j538YAW9RQ==",
6084
+ "dependencies": {
6085
+ "b4a": "^1.6.4",
6086
+ "fast-fifo": "^1.2.0",
6087
+ "streamx": "^2.15.0"
6088
+ }
6089
+ },
6051
6090
  "node_modules/@balena/dockerignore": {
6052
6091
  "version": "1.0.2",
6053
6092
  "resolved": "https://registry.npmjs.org/@balena/dockerignore/-/dockerignore-1.0.2.tgz",
@@ -12716,9 +12755,9 @@
12716
12755
  }
12717
12756
  },
12718
12757
  "node_modules/balena-sdk": {
12719
- "version": "22.4.1",
12720
- "resolved": "https://registry.npmjs.org/balena-sdk/-/balena-sdk-22.4.1.tgz",
12721
- "integrity": "sha512-8ZHexbJg/U+okHmXs0D9seFg3RGu04inZyNPgjwQB03hTQhxVQkc1Zfa2v5NiwlyuiMBpfVhM5YLcaGWJiMNHw==",
12758
+ "version": "22.4.5",
12759
+ "resolved": "https://registry.npmjs.org/balena-sdk/-/balena-sdk-22.4.5.tgz",
12760
+ "integrity": "sha512-xz8YsmL/eMMoW2RHlOsfJchW38Xnn7cJ8/FIedA1Nzvvj4HcnYTsjvpum7lef+iL/gXTDDfZ/Pa0peMmxjno9w==",
12722
12761
  "license": "Apache-2.0",
12723
12762
  "dependencies": {
12724
12763
  "@balena/abstract-sql-to-typescript": "^5.1.1",
@@ -12944,7 +12983,6 @@
12944
12983
  "version": "4.1.0",
12945
12984
  "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz",
12946
12985
  "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==",
12947
- "license": "MIT",
12948
12986
  "dependencies": {
12949
12987
  "buffer": "^5.5.0",
12950
12988
  "inherits": "^2.0.4",
@@ -12955,7 +12993,6 @@
12955
12993
  "version": "3.6.2",
12956
12994
  "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz",
12957
12995
  "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==",
12958
- "license": "MIT",
12959
12996
  "dependencies": {
12960
12997
  "inherits": "^2.0.3",
12961
12998
  "string_decoder": "^1.1.1",
@@ -14652,9 +14689,9 @@
14652
14689
  }
14653
14690
  },
14654
14691
  "node_modules/dockerfile-ast": {
14655
- "version": "0.7.1",
14656
- "resolved": "https://registry.npmjs.org/dockerfile-ast/-/dockerfile-ast-0.7.1.tgz",
14657
- "integrity": "sha512-oX/A4I0EhSkGqrFv0YuvPkBUSYp1XiY8O8zAKc8Djglx8ocz+JfOr8gP0ryRMC2myqvDLagmnZaU9ot1vG2ijw==",
14692
+ "version": "0.7.0",
14693
+ "resolved": "https://registry.npmjs.org/dockerfile-ast/-/dockerfile-ast-0.7.0.tgz",
14694
+ "integrity": "sha512-HYpjuL0IEC2lYflTpWD0RLNSZYhQxLwYRYsoEjnCP7nu/OlFx1BVrU6X/Y8ETVsa2hojhG2OTJVxleH5Wrlq+Q==",
14658
14695
  "license": "MIT",
14659
14696
  "dependencies": {
14660
14697
  "vscode-languageserver-textdocument": "^1.0.8",
@@ -14832,6 +14869,30 @@
14832
14869
  "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz",
14833
14870
  "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI="
14834
14871
  },
14872
+ "node_modules/duplexify": {
14873
+ "version": "4.1.2",
14874
+ "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-4.1.2.tgz",
14875
+ "integrity": "sha512-fz3OjcNCHmRP12MJoZMPglx8m4rrFP8rovnk4vT8Fs+aonZoCwGg10dSsQsfP/E62eZcPTMSMP6686fu9Qlqtw==",
14876
+ "dependencies": {
14877
+ "end-of-stream": "^1.4.1",
14878
+ "inherits": "^2.0.3",
14879
+ "readable-stream": "^3.1.1",
14880
+ "stream-shift": "^1.0.0"
14881
+ }
14882
+ },
14883
+ "node_modules/duplexify/node_modules/readable-stream": {
14884
+ "version": "3.6.2",
14885
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz",
14886
+ "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==",
14887
+ "dependencies": {
14888
+ "inherits": "^2.0.3",
14889
+ "string_decoder": "^1.1.1",
14890
+ "util-deprecate": "^1.0.1"
14891
+ },
14892
+ "engines": {
14893
+ "node": ">= 6"
14894
+ }
14895
+ },
14835
14896
  "node_modules/eastasianwidth": {
14836
14897
  "version": "0.2.0",
14837
14898
  "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz",
@@ -16564,10 +16625,9 @@
16564
16625
  "license": "MIT"
16565
16626
  },
16566
16627
  "node_modules/fp-ts": {
16567
- "version": "2.16.11",
16568
- "resolved": "https://registry.npmjs.org/fp-ts/-/fp-ts-2.16.11.tgz",
16569
- "integrity": "sha512-LaI+KaX2NFkfn1ZGHoKCmcfv7yrZsC3b8NtWsTVQeHkq4F27vI5igUuO53sxqDEa2gNQMHFPmpojDw/1zmUK7w==",
16570
- "license": "MIT",
16628
+ "version": "2.13.1",
16629
+ "resolved": "https://registry.npmjs.org/fp-ts/-/fp-ts-2.13.1.tgz",
16630
+ "integrity": "sha512-0eu5ULPS2c/jsa1lGFneEFFEdTbembJv8e4QKXeVJ3lm/5hyve06dlKZrpxmMwJt6rYen7sxmHHK2CLaXvWuWQ==",
16571
16631
  "peer": true
16572
16632
  },
16573
16633
  "node_modules/fresh": {
@@ -18129,10 +18189,9 @@
18129
18189
  }
18130
18190
  },
18131
18191
  "node_modules/io-ts": {
18132
- "version": "2.2.22",
18133
- "resolved": "https://registry.npmjs.org/io-ts/-/io-ts-2.2.22.tgz",
18134
- "integrity": "sha512-FHCCztTkHoV9mdBsHpocLpdTAfh956ZQcIkWQxxS0U5HT53vtrcuYdQneEJKH6xILaLNzXVl2Cvwtoy8XNN0AA==",
18135
- "license": "MIT",
18192
+ "version": "2.2.20",
18193
+ "resolved": "https://registry.npmjs.org/io-ts/-/io-ts-2.2.20.tgz",
18194
+ "integrity": "sha512-Rq2BsYmtwS5vVttie4rqrOCIfHCS9TgpRLFpKQCM1wZBBRY9nWVGmEvm2FnDbSE2un1UE39DvFpTR5UL47YDcA==",
18136
18195
  "peer": true,
18137
18196
  "peerDependencies": {
18138
18197
  "fp-ts": "^2.5.0"
@@ -23914,6 +23973,11 @@
23914
23973
  "through": "~2.3.4"
23915
23974
  }
23916
23975
  },
23976
+ "node_modules/stream-shift": {
23977
+ "version": "1.0.1",
23978
+ "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.1.tgz",
23979
+ "integrity": "sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ=="
23980
+ },
23917
23981
  "node_modules/stream-to-array": {
23918
23982
  "version": "2.3.0",
23919
23983
  "resolved": "https://registry.npmjs.org/stream-to-array/-/stream-to-array-2.3.0.tgz",
@@ -24338,25 +24402,10 @@
24338
24402
  "tar-stream": "^2.1.4"
24339
24403
  }
24340
24404
  },
24341
- "node_modules/tar-fs/node_modules/readable-stream": {
24342
- "version": "3.6.2",
24343
- "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz",
24344
- "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==",
24345
- "license": "MIT",
24346
- "dependencies": {
24347
- "inherits": "^2.0.3",
24348
- "string_decoder": "^1.1.1",
24349
- "util-deprecate": "^1.0.1"
24350
- },
24351
- "engines": {
24352
- "node": ">= 6"
24353
- }
24354
- },
24355
- "node_modules/tar-fs/node_modules/tar-stream": {
24405
+ "node_modules/tar-stream": {
24356
24406
  "version": "2.2.0",
24357
24407
  "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz",
24358
24408
  "integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==",
24359
- "license": "MIT",
24360
24409
  "dependencies": {
24361
24410
  "bl": "^4.0.3",
24362
24411
  "end-of-stream": "^1.4.1",
@@ -24368,15 +24417,17 @@
24368
24417
  "node": ">=6"
24369
24418
  }
24370
24419
  },
24371
- "node_modules/tar-stream": {
24372
- "version": "3.1.7",
24373
- "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-3.1.7.tgz",
24374
- "integrity": "sha512-qJj60CXt7IU1Ffyc3NJMjh6EkuCFej46zUqJ4J7pqYlThyd9bO0XBTmcOIhSzZJVWfsLks0+nle/j538YAW9RQ==",
24375
- "license": "MIT",
24420
+ "node_modules/tar-stream/node_modules/readable-stream": {
24421
+ "version": "3.6.2",
24422
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz",
24423
+ "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==",
24376
24424
  "dependencies": {
24377
- "b4a": "^1.6.4",
24378
- "fast-fifo": "^1.2.0",
24379
- "streamx": "^2.15.0"
24425
+ "inherits": "^2.0.3",
24426
+ "string_decoder": "^1.1.1",
24427
+ "util-deprecate": "^1.0.1"
24428
+ },
24429
+ "engines": {
24430
+ "node": ">= 6"
24380
24431
  }
24381
24432
  },
24382
24433
  "node_modules/tar-utils": {
@@ -24391,6 +24442,17 @@
24391
24442
  "node": ">=16.13.0"
24392
24443
  }
24393
24444
  },
24445
+ "node_modules/tar-utils/node_modules/tar-stream": {
24446
+ "version": "3.1.7",
24447
+ "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-3.1.7.tgz",
24448
+ "integrity": "sha512-qJj60CXt7IU1Ffyc3NJMjh6EkuCFej46zUqJ4J7pqYlThyd9bO0XBTmcOIhSzZJVWfsLks0+nle/j538YAW9RQ==",
24449
+ "license": "MIT",
24450
+ "dependencies": {
24451
+ "b4a": "^1.6.4",
24452
+ "fast-fifo": "^1.2.0",
24453
+ "streamx": "^2.15.0"
24454
+ }
24455
+ },
24394
24456
  "node_modules/temp": {
24395
24457
  "version": "0.6.0",
24396
24458
  "resolved": "https://registry.npmjs.org/temp/-/temp-0.6.0.tgz",
@@ -3597,6 +3597,136 @@
3597
3597
  "versions.js"
3598
3598
  ]
3599
3599
  },
3600
+ "preload": {
3601
+ "aliases": [],
3602
+ "args": {
3603
+ "image": {
3604
+ "description": "the image file path",
3605
+ "name": "image",
3606
+ "required": true
3607
+ }
3608
+ },
3609
+ "description": "Preload a release on a disk image (or Edison zip archive).\n\nPreload a release (service images/containers) from a balena fleet, and optionally\na balenaOS splash screen, in a previously downloaded '.img' balenaOS image file\nin the local disk (a zip file is only accepted for the Intel Edison device type).\nAfter preloading, the balenaOS image file can be flashed to a device's SD card.\nWhen the device boots, it will not need to download the release, as it was\npreloaded. This is usually combined with release pinning\n(https://www.balena.io/docs/learn/deploy/release-strategy/release-policy/)\nto avoid the device downloading a newer release straight away, if available.\nCheck also the Preloading and Preregistering section of the balena CLI's advanced\nmasterclass document:\nhttps://www.balena.io/docs/learn/more/masterclasses/advanced-cli/#5-preloading-and-preregistering\n\nFleets may be specified by fleet name or slug. Fleet slugs are\nthe recommended option, as they are unique and unambiguous. Slugs can be\nlisted with the `balena fleet list` command. Note that slugs may change if the\nfleet is renamed. Fleet names are not unique and may result in \"Fleet is\nambiguous\" errors at any time (even if it \"used to work in the past\"), for\nexample if the name clashes with a newly created public fleet, or with fleets\nfrom other balena accounts that you may be invited to join under any role.\nFor this reason, fleet names are especially discouraged in scripts (e.g. CI\nenvironments).\n\nNote that the this command requires Docker to be installed, as further detailed\nin the balena CLI's installation instructions:\nhttps://github.com/balena-io/balena-cli/blob/master/INSTALL.md\nThe `--dockerHost` and `--dockerPort` flags allow a remote Docker engine to\nbe used, however the image file must be accessible to the remote Docker engine\non the same path given on the command line. This is because Docker's bind mount\nfeature is used to \"share\" the image with a container that performs the preload.",
3610
+ "examples": [
3611
+ "$ balena preload balena.img --fleet MyFleet --commit e1f2592fc6ee949e68756d4f4a48e49bff8d72a0",
3612
+ "$ balena preload balena.img --fleet myorg/myfleet --splash-image image.png",
3613
+ "$ balena preload balena.img"
3614
+ ],
3615
+ "flags": {
3616
+ "fleet": {
3617
+ "char": "f",
3618
+ "description": "fleet name or slug (preferred)",
3619
+ "name": "fleet",
3620
+ "hasDynamicHelp": false,
3621
+ "multiple": false,
3622
+ "type": "option"
3623
+ },
3624
+ "commit": {
3625
+ "char": "c",
3626
+ "description": "The commit hash of the release to preload. Use \"current\" to specify the current\nrelease (ignored if no appId is given). The current release is usually also the\nlatest, but can be pinned to a specific release. See:\nhttps://www.balena.io/docs/learn/deploy/release-strategy/release-policy/\nhttps://www.balena.io/docs/learn/more/masterclasses/fleet-management/#63-pin-using-the-api\nhttps://github.com/balena-io-examples/staged-releases",
3627
+ "name": "commit",
3628
+ "hasDynamicHelp": false,
3629
+ "multiple": false,
3630
+ "type": "option"
3631
+ },
3632
+ "splash-image": {
3633
+ "char": "s",
3634
+ "description": "path to a png image to replace the splash screen",
3635
+ "name": "splash-image",
3636
+ "hasDynamicHelp": false,
3637
+ "multiple": false,
3638
+ "type": "option"
3639
+ },
3640
+ "dont-check-arch": {
3641
+ "description": "disable architecture compatibility check between image and fleet",
3642
+ "name": "dont-check-arch",
3643
+ "allowNo": false,
3644
+ "type": "boolean"
3645
+ },
3646
+ "pin-device-to-release": {
3647
+ "char": "p",
3648
+ "description": "pin the preloaded device to the preloaded release on provision",
3649
+ "name": "pin-device-to-release",
3650
+ "allowNo": true,
3651
+ "type": "boolean"
3652
+ },
3653
+ "additional-space": {
3654
+ "description": "expand the image by this amount of bytes instead of automatically estimating the required amount",
3655
+ "name": "additional-space",
3656
+ "hasDynamicHelp": false,
3657
+ "multiple": false,
3658
+ "type": "option"
3659
+ },
3660
+ "add-certificate": {
3661
+ "description": "Add the given certificate (in PEM format) to /etc/ssl/certs in the preloading container.\nThe file name must end with '.crt' and must not be already contained in the preloader's\n/etc/ssl/certs folder.\nCan be repeated to add multiple certificates.",
3662
+ "name": "add-certificate",
3663
+ "hasDynamicHelp": false,
3664
+ "multiple": true,
3665
+ "type": "option"
3666
+ },
3667
+ "docker": {
3668
+ "char": "P",
3669
+ "description": "Path to a local docker socket (e.g. /var/run/docker.sock)",
3670
+ "name": "docker",
3671
+ "hasDynamicHelp": false,
3672
+ "multiple": false,
3673
+ "type": "option"
3674
+ },
3675
+ "dockerHost": {
3676
+ "char": "h",
3677
+ "description": "Docker daemon hostname or IP address (dev machine or balena device) ",
3678
+ "name": "dockerHost",
3679
+ "hasDynamicHelp": false,
3680
+ "multiple": false,
3681
+ "type": "option"
3682
+ },
3683
+ "dockerPort": {
3684
+ "description": "Docker daemon TCP port number (hint: 2375 for balena devices)",
3685
+ "name": "dockerPort",
3686
+ "hasDynamicHelp": false,
3687
+ "multiple": false,
3688
+ "type": "option"
3689
+ },
3690
+ "ca": {
3691
+ "description": "Docker host TLS certificate authority file",
3692
+ "name": "ca",
3693
+ "hasDynamicHelp": false,
3694
+ "multiple": false,
3695
+ "type": "option"
3696
+ },
3697
+ "cert": {
3698
+ "description": "Docker host TLS certificate file",
3699
+ "name": "cert",
3700
+ "hasDynamicHelp": false,
3701
+ "multiple": false,
3702
+ "type": "option"
3703
+ },
3704
+ "key": {
3705
+ "description": "Docker host TLS key file",
3706
+ "name": "key",
3707
+ "hasDynamicHelp": false,
3708
+ "multiple": false,
3709
+ "type": "option"
3710
+ }
3711
+ },
3712
+ "hasDynamicHelp": false,
3713
+ "hiddenAliases": [],
3714
+ "id": "preload",
3715
+ "pluginAlias": "balena-cli",
3716
+ "pluginName": "balena-cli",
3717
+ "pluginType": "core",
3718
+ "strict": true,
3719
+ "enableJsonFlag": false,
3720
+ "authenticated": true,
3721
+ "primary": true,
3722
+ "isESM": false,
3723
+ "relativePath": [
3724
+ "build",
3725
+ "commands",
3726
+ "preload",
3727
+ "index.js"
3728
+ ]
3729
+ },
3600
3730
  "push": {
3601
3731
  "aliases": [],
3602
3732
  "args": {
@@ -3762,136 +3892,6 @@
3762
3892
  "index.js"
3763
3893
  ]
3764
3894
  },
3765
- "preload": {
3766
- "aliases": [],
3767
- "args": {
3768
- "image": {
3769
- "description": "the image file path",
3770
- "name": "image",
3771
- "required": true
3772
- }
3773
- },
3774
- "description": "Preload a release on a disk image (or Edison zip archive).\n\nPreload a release (service images/containers) from a balena fleet, and optionally\na balenaOS splash screen, in a previously downloaded '.img' balenaOS image file\nin the local disk (a zip file is only accepted for the Intel Edison device type).\nAfter preloading, the balenaOS image file can be flashed to a device's SD card.\nWhen the device boots, it will not need to download the release, as it was\npreloaded. This is usually combined with release pinning\n(https://www.balena.io/docs/learn/deploy/release-strategy/release-policy/)\nto avoid the device downloading a newer release straight away, if available.\nCheck also the Preloading and Preregistering section of the balena CLI's advanced\nmasterclass document:\nhttps://www.balena.io/docs/learn/more/masterclasses/advanced-cli/#5-preloading-and-preregistering\n\nFleets may be specified by fleet name or slug. Fleet slugs are\nthe recommended option, as they are unique and unambiguous. Slugs can be\nlisted with the `balena fleet list` command. Note that slugs may change if the\nfleet is renamed. Fleet names are not unique and may result in \"Fleet is\nambiguous\" errors at any time (even if it \"used to work in the past\"), for\nexample if the name clashes with a newly created public fleet, or with fleets\nfrom other balena accounts that you may be invited to join under any role.\nFor this reason, fleet names are especially discouraged in scripts (e.g. CI\nenvironments).\n\nNote that the this command requires Docker to be installed, as further detailed\nin the balena CLI's installation instructions:\nhttps://github.com/balena-io/balena-cli/blob/master/INSTALL.md\nThe `--dockerHost` and `--dockerPort` flags allow a remote Docker engine to\nbe used, however the image file must be accessible to the remote Docker engine\non the same path given on the command line. This is because Docker's bind mount\nfeature is used to \"share\" the image with a container that performs the preload.",
3775
- "examples": [
3776
- "$ balena preload balena.img --fleet MyFleet --commit e1f2592fc6ee949e68756d4f4a48e49bff8d72a0",
3777
- "$ balena preload balena.img --fleet myorg/myfleet --splash-image image.png",
3778
- "$ balena preload balena.img"
3779
- ],
3780
- "flags": {
3781
- "fleet": {
3782
- "char": "f",
3783
- "description": "fleet name or slug (preferred)",
3784
- "name": "fleet",
3785
- "hasDynamicHelp": false,
3786
- "multiple": false,
3787
- "type": "option"
3788
- },
3789
- "commit": {
3790
- "char": "c",
3791
- "description": "The commit hash of the release to preload. Use \"current\" to specify the current\nrelease (ignored if no appId is given). The current release is usually also the\nlatest, but can be pinned to a specific release. See:\nhttps://www.balena.io/docs/learn/deploy/release-strategy/release-policy/\nhttps://www.balena.io/docs/learn/more/masterclasses/fleet-management/#63-pin-using-the-api\nhttps://github.com/balena-io-examples/staged-releases",
3792
- "name": "commit",
3793
- "hasDynamicHelp": false,
3794
- "multiple": false,
3795
- "type": "option"
3796
- },
3797
- "splash-image": {
3798
- "char": "s",
3799
- "description": "path to a png image to replace the splash screen",
3800
- "name": "splash-image",
3801
- "hasDynamicHelp": false,
3802
- "multiple": false,
3803
- "type": "option"
3804
- },
3805
- "dont-check-arch": {
3806
- "description": "disable architecture compatibility check between image and fleet",
3807
- "name": "dont-check-arch",
3808
- "allowNo": false,
3809
- "type": "boolean"
3810
- },
3811
- "pin-device-to-release": {
3812
- "char": "p",
3813
- "description": "pin the preloaded device to the preloaded release on provision",
3814
- "name": "pin-device-to-release",
3815
- "allowNo": true,
3816
- "type": "boolean"
3817
- },
3818
- "additional-space": {
3819
- "description": "expand the image by this amount of bytes instead of automatically estimating the required amount",
3820
- "name": "additional-space",
3821
- "hasDynamicHelp": false,
3822
- "multiple": false,
3823
- "type": "option"
3824
- },
3825
- "add-certificate": {
3826
- "description": "Add the given certificate (in PEM format) to /etc/ssl/certs in the preloading container.\nThe file name must end with '.crt' and must not be already contained in the preloader's\n/etc/ssl/certs folder.\nCan be repeated to add multiple certificates.",
3827
- "name": "add-certificate",
3828
- "hasDynamicHelp": false,
3829
- "multiple": true,
3830
- "type": "option"
3831
- },
3832
- "docker": {
3833
- "char": "P",
3834
- "description": "Path to a local docker socket (e.g. /var/run/docker.sock)",
3835
- "name": "docker",
3836
- "hasDynamicHelp": false,
3837
- "multiple": false,
3838
- "type": "option"
3839
- },
3840
- "dockerHost": {
3841
- "char": "h",
3842
- "description": "Docker daemon hostname or IP address (dev machine or balena device) ",
3843
- "name": "dockerHost",
3844
- "hasDynamicHelp": false,
3845
- "multiple": false,
3846
- "type": "option"
3847
- },
3848
- "dockerPort": {
3849
- "description": "Docker daemon TCP port number (hint: 2375 for balena devices)",
3850
- "name": "dockerPort",
3851
- "hasDynamicHelp": false,
3852
- "multiple": false,
3853
- "type": "option"
3854
- },
3855
- "ca": {
3856
- "description": "Docker host TLS certificate authority file",
3857
- "name": "ca",
3858
- "hasDynamicHelp": false,
3859
- "multiple": false,
3860
- "type": "option"
3861
- },
3862
- "cert": {
3863
- "description": "Docker host TLS certificate file",
3864
- "name": "cert",
3865
- "hasDynamicHelp": false,
3866
- "multiple": false,
3867
- "type": "option"
3868
- },
3869
- "key": {
3870
- "description": "Docker host TLS key file",
3871
- "name": "key",
3872
- "hasDynamicHelp": false,
3873
- "multiple": false,
3874
- "type": "option"
3875
- }
3876
- },
3877
- "hasDynamicHelp": false,
3878
- "hiddenAliases": [],
3879
- "id": "preload",
3880
- "pluginAlias": "balena-cli",
3881
- "pluginName": "balena-cli",
3882
- "pluginType": "core",
3883
- "strict": true,
3884
- "enableJsonFlag": false,
3885
- "authenticated": true,
3886
- "primary": true,
3887
- "isESM": false,
3888
- "relativePath": [
3889
- "build",
3890
- "commands",
3891
- "preload",
3892
- "index.js"
3893
- ]
3894
- },
3895
3895
  "release:finalize": {
3896
3896
  "aliases": [],
3897
3897
  "args": {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "balena-cli",
3
- "version": "23.2.14-build-update-compose-tar-dependencies-8decbe453ca1f661f606bfb12ed61e774d54276a-1",
3
+ "version": "23.2.14",
4
4
  "description": "The official balena Command Line Interface",
5
5
  "main": "./build/app.js",
6
6
  "homepage": "https://github.com/balena-io/balena-cli",
@@ -176,7 +176,7 @@
176
176
  "typescript": "^5.9.2"
177
177
  },
178
178
  "dependencies": {
179
- "@balena/compose": "^7.2.1",
179
+ "@balena/compose": "^7.0.10",
180
180
  "@balena/dockerignore": "^1.0.2",
181
181
  "@balena/env-parsing": "^1.1.8",
182
182
  "@balena/es-version": "^1.0.1",
@@ -190,7 +190,7 @@
190
190
  "balena-errors": "^4.7.3",
191
191
  "balena-image-fs": "^7.5.2",
192
192
  "balena-preload": "^18.0.5",
193
- "balena-sdk": "^22.4.1",
193
+ "balena-sdk": "^22.4.5",
194
194
  "balena-semver": "^3.0.10",
195
195
  "balena-settings-client": "^5.0.2",
196
196
  "balena-settings-storage": "^8.1.0",
@@ -243,8 +243,8 @@
243
243
  "stream-to-promise": "^2.2.0",
244
244
  "string-width": "^4.2.3",
245
245
  "strip-ansi-stream": "^1.0.0",
246
- "tar-stream": "^3.1.7",
247
- "tar-utils": "^3.1.1",
246
+ "tar-stream": "^2.1.3",
247
+ "tar-utils": "^3.0.3",
248
248
  "through2": "^2.0.3",
249
249
  "tmp": "^0.2.1",
250
250
  "typed-error": "^3.2.1",
@@ -262,6 +262,6 @@
262
262
  "balena-request": "14.0.6"
263
263
  },
264
264
  "versionist": {
265
- "publishedAt": "2025-12-30T07:41:17.796Z"
265
+ "publishedAt": "2025-12-30T11:51:18.913Z"
266
266
  }
267
267
  }
@@ -153,8 +153,10 @@ export default class DeviceRestartCmd extends Command {
153
153
  // Remove this workaround when SDK issue resolved: https://github.com/balena-io/balena-sdk/issues/649
154
154
  const { instanceOf, ExpectedError } = await import('../../errors');
155
155
  try {
156
- const device = await balena.models.device.get(deviceUuid);
157
- if (!device.is_online) {
156
+ const device = await balena.models.device.get(deviceUuid, {
157
+ $select: 'is_connected_to_vpn',
158
+ });
159
+ if (!device.is_connected_to_vpn) {
158
160
  throw new ExpectedError(`Device ${deviceUuid} is not online.`);
159
161
  }
160
162
  } catch (e) {