Important: This documentation covers Yarn 1 (Classic).
For Yarn 2+ docs and migration guide, see yarnpkg.com.

Package detail

balena-sdk

balena-io49.7kApache-2.021.4.4TypeScript support: included

The Balena JavaScript SDK

sdk, resin, resin.io, balena, balena.io, iot, devices

readme

Balena SDK

The official JavaScript balena SDK.

npm version dependencies Build Status Build status

Role

The intention of this module is to provide developers a nice API to integrate their JavaScript applications with balena.

Installation

Install the balena SDK by running:

$ npm install --save balena-sdk

Platforms

We currently support NodeJS (18+) and the browser.

The following features are node-only:

  • OS image streaming download (balena.models.os.download),
  • balena settings client (balena.settings).

In Node you can simply require('balena-sdk'), but in the browser things are more complicated. The balena SDK provides a bundled single file for browsers, which allows you to include a single file with all dependencies included, available as balena-browser.min.js. This uses the UMD format, and will register itself as either a CommonJS or AMD module called balena-sdk if possible, or create a balenaSdk global if not. You can also use the es2018 version if desired.

Bundling for browsers

If you're using webpack, browserify, or a similar tool then you probably want to bundle the balena SDK into your application yourself, rather than using the pre-built balena-browser.min.js bundle. If you do that, you should be aware that you may pick up some dependencies that are actually unnecessary in the browser, because they're only used in Node environments. You can safely exclude these dependencies, if you're not using them yourself, and significantly reduce the size of your resulting bundle.

In the browser the balena SDK doesn't use the following dependencies:

  • fs
  • path
  • balena-settings-client
  • node-localstorage

For the future we're looking at ways to automatically exclude these in downstream bundles. See #254 for more information.

Bundling with pkg

The balena SDK includes builds for various ECMAScript versions that are dynamically selected at runtime (using @balena/es-version). For this reason, packagers like pkg are not able to automatically detect which assets to include in the output package. The following sample pkg section should be added to your application's package.json file to instruct pkg to bundle the required assets:

  "pkg": {
    "scripts": [
      "node_modules/balena-sdk/**/*.js"
    ],
    "assets": [
      "node_modules/pinejs-client-core/**/*"
    ]
  }

For more information, please refer to the respective documentation from the pkg project.

Documentation

The module exports a single factory function. Use it like this:

var balena = require('balena-sdk')({
    apiUrl: "https://api.balena-cloud.com/",
    dataDirectory: "/opt/local/balena"
})

Where the factory method accepts the following options:

  • apiUrl, string, optional, is the balena API url. Defaults to https://api.balena-cloud.com/,
  • builderUrl, string, optional , is the balena builder url. Defaults to https://builder.balena-cloud.com/,
  • deviceUrlsBase, string, optional, is the base balena device API url. Defaults to balena-devices.com,
  • dataDirectory, string or false, optional, ignored in the browser unless false, specifies the directory where the user settings are stored, normally retrieved like require('balena-settings-client').get('dataDirectory'). Providing false creates an isolated in-memory instance. Defaults to $HOME/.balena,
  • requestLimit, number.optional, the number of requests per requestLimitInterval that the SDK should respect.
  • requestLimitInterval, number.optional, - the timespan that the requestLimit should apply to in milliseconds. Defaults to 60000.
  • retryRateLimitedRequests, boolean.optional, when enabled the sdk will retry requests that are failing with a 429 Too Many Requests status code and that include a numeric Retry-After response header. Defaults to false.
  • isBrowser, boolean, optional, is the flag to tell if the module works in the browser. If not set will be computed based on the presence of the global window value,
  • debug, boolean, optional, when set will print some extra debug information.

See the JSDoc markdown documentation for the returned balena object in DOCUMENTATION.md.

Support

If you face any issues, please raise an issue on GitHub and the balena team will be happy to help.

Deprecation policy

The balena SDK uses semver versioning, with the concepts of major, minor and patch version releases.

The latest release of the previous major version of the balena SDK will remain compatible with the balenaCloud backend services for one year from the date when the next major version is released. For example, balena SDK v12.33.4, as the latest v12 release, would remain compatible with the balenaCloud backend for one year from the date when v13.0.0 is released.

At the end of this period, the older major version is considered deprecated and some of the functionality that depends on balenaCloud services may stop working at any time. Users are encouraged to regularly update the balena SDK to the latest version.

Tests

In order to run the balena SDK test suite, set the following environment variables from an account that exists and doesn't have a billing account code: WARNING: This will delete all applications and public keys of the test users. As such, all emails are required to contain the string +testsdk to avoid accidental deletion

  • TEST_EMAIL: The main account email.
  • TEST_PASSWORD: The main account password.
  • TEST_USERNAME: The main account username.

  • TEST_MEMBER_EMAIL: The email of the account for the membership tests.

  • TEST_MEMBER_PASSWORD: The password of the account for the membership tests.
  • TEST_MEMBER_USERNAME: The username of the account for the membership tests. This user should be added to the TEST_USERNAME user's initial organization.

You also have to provide the following environment variables from an account that doesn't yet exist:

  • TEST_REGISTER_EMAIL: The email of the account to register.
  • TEST_REGISTER_PASSWORD: The password of the account to register.
  • TEST_REGISTER_USERNAME: The username of the account to register.

In order to test the billing methods for a paid account, you also have to configure the following environment variables:

  • TEST_PAID_EMAIL: The email of the paid account.
  • TEST_PAID_PASSWORD: The password of the account.

Note: The paid user's account billing code should be set to testdev so that it's tested against the test plan.

You can also, optionally, set the TEST_API_URL environment variable in order to run the tests using a different API backend (eg: https://api.balena-staging.com).

You can persist these settings by putting them all into a .env file in the root of this repo, in dotenv format (KEY=VALUE\n). This will be automatically detected and used in the tests. Make sure you don't accidentally commit this file (.env by default is gitignored, so hopefully this should be difficult).

Run the test suite by doing:

$ npm test

In order to make the develop & test cycle faster:

  • You can use mocha's .only & .skip variants to only run the subset of the test cases that is relevant to your changes/additions. You should make sure to remove those from your code before you push and make sure that the complete test suite completes successfully.
  • You can use npm run test:fast which fixes linting issues, only builds for a single ES target and runs the tests only on node. This can save time when implementing a method that interacts with an API endpoint, but should be avoided if the feature might work different or only in the browser.

Contribute

Before submitting a PR, please make sure that you

  • don't have uncommited changes on the documentation or the build output
  • don't have any .only or .skip in your tests
  • include typings for new methods
  • ran the lint script on the modified files
$ npm run lint-fix
  • include tests and that they pass
$ npm test

License

The project is licensed under the Apache 2.0 license.

changelog

Change Log

All notable changes to this project will be documented in this file automatically by Versionist. DO NOT EDIT THIS FILE MANUALLY! This project adheres to Semantic Versioning.

21.4.4 - 2025-05-26

  • Update balena-request to use native fetch for non-streaming requests [Thodoris Greasidis]

21.4.3 - 2025-05-22

  • tests: Use a realistic length for the image content_hash [Thodoris Greasidis]

21.4.2 - 2025-05-20

  • logs.history(): Add examples about using the start parameter [Thodoris Greasidis]

21.4.1 - 2025-05-15

  • tests/logs: Re-use the same test device across all test cases [Thodoris Greasidis]

21.4.0 - 2025-05-14

  • logs: Add support for a start parameter when reading logs [Thodoris Greasidis]

21.3.5 - 2025-05-06

  • os: Improve the checks against empty string release tag values [Thodoris Greasidis]

21.3.4 - 2025-05-05

  • os.getMaxSatisfyingVersion: Deprecate the 'default' versionRange value [Thodoris Greasidis]
  • os.getMaxSatisfyingVersion: Fix the docs referencing the old recommended & default behavior [Thodoris Greasidis]

21.3.3 - 2025-05-05

  • Remove unnecessary null checks [Thodoris Greasidis]

21.3.2 - 2025-04-15

  • Remove chai-as-promised from tests [Thodoris Greasidis]

21.3.1 - 2025-04-10

  • Update dependency balena-semver to v3 [balena-renovate[bot]]

21.3.0 - 2025-03-26

  • device: add changed_api_heartbeat_state_on__date to typings [Otavio Jacobi]

21.2.2 - 2025-03-26

  • fix linting [Otavio Jacobi]

21.2.1 - 2025-03-03

  • Update TypeScript to 5.8.2 [Thodoris Greasidis]

21.2.0 - 2025-03-02

  • os.getAvailableOsVersions: Add support for providing additional pine options [Thodoris Greasidis]

21.1.0 - 2025-01-21

  • Add methods for the team application access model [Andrea Rosci]
  • Add methods for the team model [Andrea Rosci]

21.0.1 - 2025-01-16

  • BREAKING config.getAll: Remove the missed deprecated deviceTypes property [Thodoris Greasidis]

21.0.0 - 2025-01-15

  • PineJsClient: Use stricter typings for backendParams [myarmolinsky]
  • application-membership.create: Update description to reflect that the user must already be a member of the organization [myarmolinsky]
  • Drop deprecated method organization-membership.create in favor of organization.invite.create [myarmolinsky]
  • Drop os.getLastModified as it has not worked for a while and is unused [myarmolinsky]
  • application.generateProvisioningKey: Switch to v2 endpoint [myarmolinsky]
  • application.generateProvisioningKey: Change parameters to an object and require keyExpiryDate [myarmolinsky]
  • Stop silencing Not Found errors for devices, applications, and organizations [myarmolinsky]
  • apiKey.create: Change parameters to an object and require expiryDate [myarmolinsky]
  • Update minimum required node version to 20.12.0 [myarmolinsky]
  • ConfigVarSchema: Update typing to use JSONSchema7 instead of JSONSchema6 [myarmolinsky]
  • startOsUpdate: Set runDetached to true by default [myarmolinsky]
  • mergePineOptions: Drop replace$select parameter [myarmolinsky]
  • image.get: No longer pass base options [myarmolinsky]
  • Drop Unknown pine option errors in favor of TS and pinejs-client throwing [myarmolinsky]
  • Drop support for OS versions <= 2.14.0 [myarmolinsky]
  • Drop deprecated property image from ImageInstall [myarmolinsky]
  • Drop deprecated method device.stopApplication [myarmolinsky]
  • Drop deprecated method device.startApplication [myarmolinsky]
  • Drop deprecated property contains__image from Release [myarmolinsky]
  • Drop deprecated property release_version from Release [myarmolinsky]
  • Drop deprecated property supports_gateway_mode from ApplicationType [myarmolinsky]
  • Drop all deprecated properties from JWTUser [myarmolinsky]
  • Drop deprecated property logo_url from DeviceType [myarmolinsky]
  • Drop deprecated property isRecommended from OsVersion [myarmolinsky]
  • Drop deprecated method device.getOsUpdateStatus [myarmolinsky]
  • Drop deprecated method device.getApplicationInfo [myarmolinsky]
  • Drop deprecated property supports_blink from DeviceType [myarmolinsky]
  • Drop deprecated property instructions from DeviceType [myarmolinsky]
  • Drop deprecated property pubnub from Config [myarmolinsky]
  • Drop deprecated method application.generateApiKey necessary to provision <2.7.8 [myarmolinsky]

20.9.1 - 2025-01-15

  • models/balenaos-contract: Switch to using markdown for links [Alexandru Costache]

20.9.0 - 2025-01-10

  • tests: Update test repo for release.createFromUrl to avoid redirects [Thodoris Greasidis]
  • typings: Add the missing User.owns__social_service_account property [Thodoris Greasidis]

20.8.4 - 2025-01-07

  • Update dependency mocha to v11 [balena-renovate[bot]]

20.8.3 - 2025-01-03

  • patch: Append instructions partial to externalFlash [Vipul Gupta (@vipulgupta2048)]

20.8.2 - 2025-01-03

  • tests: Add a prefix to the name used in the api key update tests [Thodoris Greasidis]

20.8.1 - 2024-12-17

  • tests: Add a prefix in the name of the auto-generated config.json api keys [Thodoris Greasidis]

20.8.0 - 2024-12-11

  • os: Add getOsUpdateType method for getting the OS update type for a device type from one OS version to another [myarmolinsky]

20.7.6 - 2024-12-09

  • Update balena-hup-action-utils [myarmolinsky]

20.7.5 - 2024-12-05

<summary> Update balena-request to 14.0.1 that no longer requires a zlib polyfill on browser builds [Thodoris Greasidis] </summary>

balena-request-14.0.1 - 2024-12-05

  • Avoid requiring some node dependencies using the package.json browser field [Thodoris Greasidis]

20.7.4 - 2024-12-05

  • Add provisioningKeyDescription property to ImgConfigOptions typing [Pagan Gazzard]

20.7.3 - 2024-12-05

<summary> Update balena-request to 14.x [Pagan Gazzard] </summary>

balena-request-14.0.0 - 2024-12-04

  • Switch tsconfig module to Node16 [Pagan Gazzard]
  • Update form-data-encoder to 4.x and formdata-node to 6.x [Pagan Gazzard]
  • Update tsconfig target to es2017 [Pagan Gazzard]
  • Set type to commonjs in package.json [Pagan Gazzard]

balena-request-13.3.4 - 2024-12-04

  • Tests: Convert to typescript [Pagan Gazzard]

balena-request-13.3.3 - 2024-12-03

  • Tests: add missing @types/temp dependency [Pagan Gazzard]
  • Tests: remove bluebird dependency [Pagan Gazzard]
  • Tests: remove rindle dependency [Pagan Gazzard]
  • Update author in package.json [Pagan Gazzard]

20.7.2 - 2024-12-02

  • typings_tests: Switch tsconfig module to node16 [Thodoris Greasidis]
<summary> Update dependency pinejs-client-core to v7 [balena-renovate[bot]] </summary>

pinejs-client-js-7.2.0 - 2024-09-13

  • Export OptionsToResponse type helper [Pagan Gazzard]

pinejs-client-js-7.1.5 - 2024-09-13

  • Switch tsconfig module resolution to Node16 [Pagan Gazzard]

pinejs-client-js-7.1.4 - 2024-09-10

  • Update TypeScript to 5.6.2 [Thodoris Greasidis]

pinejs-client-js-7.1.3 - 2024-09-05

  • Improve upsert typings [Pagan Gazzard]

pinejs-client-js-7.1.2 - 2024-09-05

  • Improve getOrCreate typings [Pagan Gazzard]

pinejs-client-js-7.1.1 - 2024-09-04

  • Improve typings for subscribe function [Pagan Gazzard]
  • Fix typing for subscribe on('data') method [Pagan Gazzard]

pinejs-client-js-7.1.0 - 2024-09-02

  • Deprecate prepare without expected parameter aliases [Pagan Gazzard]
  • Add the option to list expected parameter aliases when preparing a query [Pagan Gazzard]

pinejs-client-js-7.0.3 - Invalid date

  • Fix typings for request method when using method: 'GET' [Pagan Gazzard]

pinejs-client-js-7.0.2 - Invalid date

  • Reduce overloads for get by improving OptionsToResponse type helper [Pagan Gazzard]

pinejs-client-js-7.0.1 - 2024-08-29

  • Change ExpandPropsOf and ExpandToResponse helpers to check the common case first [Pagan Gazzard]

pinejs-client-js-7.0.0 - 2024-08-13

  • Update @balena/abstract-sql-to-typescript to v4 [Josh Bowling]

20.7.1 - 2024-12-02

  • tests: Improve stability of release.createFromUrl()'s cleanup [Thodoris Greasidis]

20.7.0 - 2024-11-29

  • Billing: Add createSetupIntent function [Josh Bowling]

20.6.12 - 2024-11-27

  • tsconfig: Switch module to node16 [Thodoris Greasidis]

20.6.11 - 2024-11-26

  • Fix organization.invite.create and application.invite.create descriptions incorrectly saying usernames can be used for the invitee option [myarmolinsky]
  • Deprecate organization.membership.create in favor of organization.invite.create [myarmolinsky]
  • Fix typo in application.membership.create description [myarmolinsky]

20.6.10 - 2024-11-26

  • renovate: Fix rebaseWhen option typo [Thodoris Greasidis]

20.6.9 - 2024-11-23

  • Update TypeScript to 5.7.2 [Thodoris Greasidis]

20.6.8 - 2024-11-20

  • patch: Update Jetson provisioning instructions to use Jetson Flash tool [Vipul Gupta (@vipulgupta2048)]

20.6.7 - 2024-11-19

  • Update dependency husky to v9 [balena-renovate[bot]]

20.6.6 - 2024-11-19

  • Update dependency gulp-mocha to v9 [balena-renovate[bot]]

20.6.5 - 2024-11-19

  • Update dependency jsdoc-to-markdown to v9 [balena-renovate[bot]]

20.6.4 - 2024-11-18

  • Update author [myarmolinsky]

20.6.3 - 2024-11-18

  • flowzone: Update windows, ubuntu & macos runners to -latest [Thodoris Greasidis]
  • tests: Stop using supertest in favor of balena-request [Thodoris Greasidis]
  • Update dependency sinon to v19 [balena-renovate[bot]]
  • renovate: Block updating majors & minors of balena-hup-action-utils [Thodoris Greasidis]
  • renovate: Drop the custom rule for majors in favor of the global setting [Thodoris Greasidis]
  • renovate: Set prHourlyLimit to 1 [Thodoris Greasidis]
  • renovate: Avoid rebasing failing PRs [Thodoris Greasidis]

20.6.2 - 2024-11-14

  • Update dependency lint-staged to v15 [balena-renovate[bot]]

20.6.1 - 2024-11-14

  • tests: Use a name prefix in the application rename tests [Thodoris Greasidis]
  • tests: Support concurrent runs of the last org administrator removal test [Thodoris Greasidis]

20.6.0 - 2024-11-13

  • Billing: Add card, SEPA and ACH as payment types [Thodoris Greasidis]

20.5.0 - 2024-11-11

  • Add owns__saml_account property to User interface [myarmolinsky]

20.4.0 - 2024-11-05

  • Billing: Add link and cashapp as payment types [Josh Bowling]

20.3.7 - 2024-11-04

  • Update actions/setup-node digest to 39370e3 [balena-renovate[bot]]

20.3.6 - 2024-11-01

  • Typings: Fix types for nullable model properties [Pagan Gazzard]

20.3.5 - 2024-11-01

  • Typings: mark all ReverseNavigationResource as optional as they are when not expanded [Pagan Gazzard]

20.3.4 - 2024-10-31

  • tests: Use @balena/env-parsing [Thodoris Greasidis]

20.3.3 - 2024-10-31

  • typing_tests: Target es2017 to fix compilation after recent @types/node changes [Thodoris Greasidis]

20.3.2 - 2024-10-28

  • Typings: remove optionality from any property that is expanded [Pagan Gazzard]

20.3.1 - 2024-10-28

  • Simplify the custom pinejs-client typings after the Concept type unification [Thodoris Greasidis]

20.3.0 - 2024-10-25

  • Add option for detached HUP on startOsUpdate [jaomaloy]

20.2.10 - 2024-10-24

  • Typings: fix some id typings to the correct typing [Pagan Gazzard]

20.2.9 - 2024-10-24

  • Typings: release status and update_timestamp cannot be null [Pagan Gazzard]

20.2.8 - 2024-10-23

  • Correct SupportFeature feature typing to be a ConceptTypeNavigationResource [Pagan Gazzard]

20.2.7 - 2024-10-23

  • Remove non-existent properties from model typings [Pagan Gazzard]

20.2.6 - 2024-10-21

  • Update actions/setup-node action to v4 [Self-hosted Renovate Bot]

20.2.5 - 2024-10-21

  • Pin actions/setup-node action to 1a4442c [Self-hosted Renovate Bot]

20.2.4 - 2024-10-18

  • os: Stop returning legacy OS Releases with an empty raw_version [Thodoris Greasidis]

20.2.3 - 2024-10-15

  • Throw an invalid parameter error when an empty string is provided as a uuid parameter [Thodoris Greasidis]

20.2.2 - 2024-10-02

  • Update @balena/lint to v9 [Thodoris Greasidis]

20.2.1 - 2024-10-01

  • Replace top level require calls to import...from [Thodoris Greasidis]

20.2.0 - 2024-09-20

  • typings: Add missing billing properties in Config [Thodoris Greasidis]

20.1.4 - 2024-09-19

  • Fix the device.setSupervisorRelease docs to not include a v prefix for the version [Thodoris Greasidis]

20.1.3 - 2024-09-13

  • Update lastOnline function to return "Connected" instead of "Online" [Andrea Rosci]

20.1.2 - 2024-09-10

  • Update TypeScript to 5.6.2 [Thodoris Greasidis]

20.1.1 - 2024-08-30

  • typing: Fix the release.contract to be a JsonType instead of a string [Thodoris Greasidis]

20.1.0 - 2024-08-30

  • tests: Enable the retryRateLimitedRequests option [Thodoris Greasidis]
  • Add the computed device.should_be_running__release field [Thodoris Greasidis]

20.0.0 - 2024-08-30

  • tests: Simplify the release.createFromUrl() test cleanup [Thodoris Greasidis]
  • Lint & type fixes & improvements [Thodoris Greasidis]
  • tests: Add missing $selects to make the queries faster [Thodoris Greasidis]
  • v7 model: Change image.image_size to string | null [Thodoris Greasidis]
  • v7 model: Replace device.overall_status offline & idle with disconnected, reduced-functionality & operational [Thodoris Greasidis]
  • v7 model: Change user, application & device actor, to return a deferred property when selected [Thodoris Greasidis]
  • v7 model: Replace the release.should_be_running_on__device with is_pinned_to__device [Thodoris Greasidis]
  • v7 model: Replace the device.should_be_running__release with is_pinned_on__release [Thodoris Greasidis]
  • v7 model: Add the device.should_be_operated_by__release property [Thodoris Greasidis]
  • v7 model: Drop the supervisor_release resource [Thodoris Greasidis]
  • v7 model: Replace device.should_be_managed_by__supervisor_release with should_be_managed_by__release [Thodoris Greasidis]
  • v7 model: Drop the device.is_managed_by__device, manages__device properties [Thodoris Greasidis]
  • v7 model: Drop the device.vpn_address property [Thodoris Greasidis]
  • v7 model: Drop the device state & status_sort_index sdk-only property typings [Thodoris Greasidis]
  • v7 model: Drop the gateway_download resource [Thodoris Greasidis]
  • [BREAKING]: Update all API queries to use the v7 model [Thodoris Greasidis]
  • [BREAKING]: Drop the application.getAppByOwner method [Thodoris Greasidis]
  • Add the os.getSupervisorReleasesForCpuArchitecture() method [Thodoris Greasidis]
  • [BREAKING]: Drop the os.getSupervisorReleaseByDeviceType method [Thodoris Greasidis]
  • [BREAKING]: application.create: Drop the applicationType & parent parameters [Thodoris Greasidis]
  • Drop the unused OsVersionsByDeviceType type [Thodoris Greasidis]
  • Drop the no longer needed __metadata property handling [Thodoris Greasidis]
<summary> Update pinejs-client-core to 6.15.0 [Thodoris Greasidis] </summary>

pinejs-client-js-6.15.0 - 2024-06-14

  • Add support for using model specific typings [Pagan Gazzard]

pinejs-client-js-6.14.13 - 2024-06-12

  • Deprecate passing url to helper functions [Pagan Gazzard]

pinejs-client-js-6.14.12 - 2024-06-12

  • Type upsert and getOrCreate as not accepting a url [Pagan Gazzard]

pinejs-client-js-6.14.11 - 2024-06-11

  • Include comments in generated output so that jsdoc is available [Pagan Gazzard]

pinejs-client-js-6.14.10 - 2024-06-11

  • Tests: improve typing of tests [Pagan Gazzard]

pinejs-client-js-6.14.9 - 2024-06-10

  • Add $filter to nested $count typings [Pagan Gazzard]

pinejs-client-js-6.14.8 - 2024-06-10

  • Tests: remove unnecessary/unintended returns [Pagan Gazzard]

pinejs-client-js-6.14.7 - 2024-06-06

  • Fix using top level $count downstream [Pagan Gazzard]

pinejs-client-js-6.14.6 - 2024-05-28

  • Type $count/$any/$all as needing to be nested in a navigation property [Pagan Gazzard]

pinejs-client-js-6.14.5 - 2024-05-28

  • Use readonly arrays for typings for better compatibility with as const [Pagan Gazzard]

pinejs-client-js-6.14.4 - 2024-05-08

  • Deprecate the generic PinejsClient typing in favor of using this for .clone typing [Pagan Gazzard]

pinejs-client-js-6.14.3 - 2024-04-17

  • Update dev dependencies [Pagan Gazzard]

pinejs-client-js-6.14.2 - 2024-03-04

  • Improve typings [Pagan Gazzard]

pinejs-client-js-6.14.1 - 2024-03-04

  • Update dependencies [Pagan Gazzard]
  • [BREAKING]: Stop actively supporting TypeScript versions older than the current latest [Thodoris Greasidis]
  • Bump minimum supported Typescript version to v5.5.2 [Thodoris Greasidis]
  • [BREAKING]: Update the es2015 build target & output folder to es2017 [Thodoris Greasidis]
  • package.json: Rename the lint:fix npm script to lint-fix [Thodoris Greasidis]

19.10.0 - 2024-08-29

  • Add typing for update_status and last_update_status_event in the Device resource [Andrea Rosci]

19.9.0 - 2024-08-09

  • types: Extend the InvoinceInfo states [Thodoris Greasidis]

19.8.0 - 2024-08-06

  • application.create: Allow specifying the uuid of the new application [Thodoris Greasidis]

19.7.5 - 2024-07-28

  • Switch to new custom syntax [Anton Belodedenko]

19.7.4 - 2024-07-19

  • Update @balena/lint to 8.2.7 [Thodoris Greasidis]
  • Lint fixes for latest types [Thodoris Greasidis]

19.7.3 - 2024-07-12

  • pinejs-client-core: Add some missing methods to the custom typings [Thodoris Greasidis]

19.7.2 - 2024-07-12

<summary> Update balena-request from 13.3.1 to 13.3.2 [Thodoris Greasidis] </summary>

balena-request-13.3.2 - 2024-07-12

  • Fix always following redirects when followRedirect = false [Thodoris Greasidis]

19.7.1 - 2024-07-08

<summary> Limit pinejs-client-core to ~6.14.0, to fix errors in older TypeScript [Thodoris Greasidis] </summary>

pinejs-client-js-6.14.0 - 2023-12-05

  • Respect the Retry-After header when clients define the getRetryAfterHeader option [Thodoris Greasidis]

pinejs-client-js-6.13.0 - 2023-07-11

  • Add support for $duration [Thodoris Greasidis]

pinejs-client-js-6.12.4 - 2023-05-09

  • Avoid an unnecessary function creation on each get() call [Thodoris Greasidis]

pinejs-client-js-6.12.3 - 2022-12-28

  • CI: Convert tests to TypeScript [Josh Bowling]

pinejs-client-js-6.12.2 - 2022-11-18

  • Fix $orderby: { a: { $count: ... }, $dir: 'asc' } typings [Thodoris Greasidis]

pinejs-client-js-6.12.1 - 2022-11-15

  • Update TypeScript to 4.9.3 [Thodoris Greasidis]
  • Fix the TypeScript incompatibility test [Thodoris Greasidis]

19.7.0 - 2024-07-05

  • Add identity provider & saml account model typing [Otavio Jacobi]

19.6.1 - 2024-06-20

  • Update TypeScript to 5.5.2 [Thodoris Greasidis]

19.6.0 - 2024-06-20

  • Add the application.getAllByOrganization() method [Thodoris Greasidis]
  • Deprecate the application.getAppByOwner() method [Thodoris Greasidis]

19.5.11 - 2024-05-28

  • tests: Make the cleanups more precise [Thodoris Greasidis]

19.5.10 - 2024-03-29

  • Drop the toWritable helper in favor of TypeScript's satisfies [Thodoris Greasidis]

19.5.9 - 2024-03-29

  • os: Update the comments on why we still need to be using the release_tags [Thodoris Greasidis]

19.5.8 - 2024-03-18

  • Fix application.create method being wrongly marked as deprecated [myarmolinsky]

19.5.7 - 2024-03-08

  • Fix missing underscore to describes__device property [Andrea Rosci]

19.5.6 - 2024-03-07

  • Update TypeScript to 5.4.2 [Thodoris Greasidis]
  • device-type.getInstructions: Convert etcher link to HTTPS [Vipul Gupta (@vipulgupta2048)]

19.5.5 - 2024-02-26

<summary> Update balena-auth to 6.0.1 [Thodoris Greasidis] </summary>

balena-auth-6.0.1 - 2024-02-23

  • Update jwt-decode to v3 [Thodoris Greasidis]

balena-auth-6.0.0 - 2024-02-23

  • Update typescript to 5.3.3 [Thodoris Greasidis]
  • Move the sources from lib to src [Thodoris Greasidis]
  • Update @balena/lint to v7 [Thodoris Greasidis]
  • Stop publishing the lib folder [Thodoris Greasidis]
  • Drop support for nodejs < 18 [Thodoris Greasidis]
  • Drop no longer used appveyor.yml [Thodoris Greasidis]

balena-register-device-9.0.2 - 2024-02-23

  • Update @balena/lint to v7 [Thodoris Greasidis]
  • Update balena-request to 13.3.0 [Thodoris Greasidis]

balena-request-13.3.1 - 2024-02-23

  • Update balena-auth to 6.0.1 [Thodoris Greasidis]

19.5.4 - 2024-02-14

  • Bump balena-request Update balena-request from 13.2.0 to 13.3.0 [Otávio Jacobi]

19.5.3 - 2024-02-14

  • Replace deprecated flowzone input tests_run_on [Kyle Harding]

19.5.2 - 2024-02-13

  • tests: Reformat describe & it calls to have curly braces [Thodoris Greasidis]

19.5.1 - 2024-02-02

  • Update @balena/lint to 7.3.0 [Thodoris Greasidis]

19.5.0 - 2024-01-26

  • types: Add the Organization.is_using__billing_version property [Thodoris Greasidis]

19.4.0 - 2024-01-23

  • Update the deviceType.getInstructions tests [Thodoris Greasidis]
  • os.getSupportedOsUpdateVersions: Add the option to include draft releases [Thodoris Greasidis]
<summary> Enable OS Updates to pre-release versions of higher base semver [Thodoris Greasidis] </summary>

balena-hup-action-utils-6.1.0 - 2024-01-04

  • Enable OS Updates to pre-release versions of higher base semver [Thodoris Greasidis]

balena-hup-action-utils-6.0.0 - 2023-12-20

  • Drop support for TypeScript < 5.3.3 [Thodoris Greasidis]
  • Drop support for node < v18 [Thodoris Greasidis]
  • Update dependencies [Thodoris Greasidis]
  • Move the build step from prepare to prepack [Thodoris Greasidis]

balena-hup-action-utils-5.0.1 - 2023-07-13

  • patch: Update flowzone.yml [Kyle Harding]
  • os.getAvailableOsVersions: Add the option to include draft releases [Thodoris Greasidis]

19.3.5 - 2023-12-21

  • Update date-fns to v3 [Thodoris Greasidis]

19.3.4 - 2023-12-15

  • types/Device: Deprecate the non-existent vpn_address property [Otávio Jacobi]

19.3.3 - 2023-12-15

  • types/Device: Deprecate the non-existent state & status_sort_index properties [Thodoris Greasidis]

19.3.2 - 2023-12-08

  • test:fast: Run the tests ignoring any linting errors [Thodoris Greasidis]
  • tests: Re-enable the explicit error checks for non-tarball DWB requests [Thodoris Greasidis]

19.3.1 - 2023-11-30

  • Update TypeScript to 5.3.2 [Thodoris Greasidis]

19.3.0 - 2023-11-30

  • tests: Remove the explicit error checks for non-tarball DWB requests [Thodoris Greasidis]
  • tests: Properly cleanup the test orgs [Thodoris Greasidis]
  • tests: Reduce the request batching chunk size to speed up tests [Thodoris Greasidis]
  • Add option for configuring the request batching chunk size [Thodoris Greasidis]

19.2.0 - 2023-11-13

  • Add organization logo to organization [Otávio Jacobi]

19.1.0 - 2023-11-06

  • Add the retryRateLimitedRequests sdk option for retrying after HTTP 429s [Thodoris Greasidis]

19.0.1 - 2023-10-19

  • Fix test workflow to run on node 18 [Otávio Jacobi]

19.0.0 - 2023-10-16

<summary> **BREAKING**: Drop support to node < 18 [Otávio Jacobi] </summary>

balena-register-device-9.0.1 - 2023-10-11

  • Fix balena-request peer dependency [Otávio Jacobi]

balena-register-device-9.0.0 - 2023-10-11

  • Drop supoport for node 14 & 16 [Otávio Jacobi]

balena-request-13.0.0 - 2023-10-11

  • Drop support for node 14 & 16 [Otávio Jacobi]

18.3.0 - 2023-10-09

  • jwt: Deprecate the profile fields in favor of the user_profile [Thodoris Greasidis]
  • jwt: Deprecate the intercom fields [Thodoris Greasidis]
  • jwt: Deprecate the features fields [Thodoris Greasidis]
  • jwt: Deprecate thw loginAs field [Thodoris Greasidis]
  • jwt: Deprecate username & created_at in favor of the user resource [Thodoris Greasidis]
  • Add typings for the user_profile resource [Thodoris Greasidis]

18.2.0 - 2023-09-26

  • Update @balena/lint to 7.2.0 [Thodoris Greasidis]
  • Deprecate the social_service_account property of the JWTUser [Thodoris Greasidis]
  • Add typings for the social_service_account resource [Thodoris Greasidis]

18.1.4 - 2023-08-24

  • Update TypeScript to 5.2.2 [Thodoris Greasidis]

18.1.3 - 2023-08-23

  • tests/os: Refactor some promise tests to async await [Thodoris Greasidis]
  • Fix os.getSupervisorReleaseByDeviceType test to work on balenaMachine [Thodoris Greasidis]
<summary> Update balena-request from 12.0.2 to 12.0.4 [Thodoris Greasidis] </summary>

balena-request-12.0.4 - 2023-08-23

  • Refactor the interceptors to stop using .reduce() [Thodoris Greasidis]

balena-request-12.0.3 - 2023-08-09

  • Avoid deep imports from balena-auth [Thodoris Greasidis]
  • Update balena-auth to 5.1.0 [Thodoris Greasidis]

18.1.2 - 2023-08-23

  • organization-invite: Fix throwing a typed error when passing an unkonwn role [Thodoris Greasidis]
  • application-invite: Fix throwing a typed error when passing an unkonwn role [Thodoris Greasidis]
  • tests: Fix bugs that linting surfaced [Thodoris Greasidis]
  • Update @balena/lint to 7.0.1 [Thodoris Greasidis]

18.1.1 - 2023-08-22

  • logs: Emit errors when initializing the SDK with debug: true [Thodoris Greasidis]

18.1.0 - 2023-08-22

  • Improve the auth.getActorId() tests [Thodoris Greasidis]
  • auth.getUserInfo: Add the actor id to the returned values [Thodoris Greasidis]

18.0.2 - 2023-08-18

  • patch: bump lint-staged from 13.3.0 to 14.0.0 [Thodoris Greasidis]

18.0.1 - 2023-08-18

  • Replace dependabot with renovate [Thodoris Greasidis]

18.0.0 - 2023-08-17

  • BREAKING: Remove the device-type.json state & name normalization [Thodoris Greasidis]
  • BREAKING: Drop auth.getUserActorId in favor of auth.getActorId [Otávio Jacobi]
  • auth: Add getActorId [Otávio Jacobi]
  • BREAKING: Drop auth.getUserId in favor of auth.getUserInfo [Otávio Jacobi]
  • BREAKING: Drop auth.getEmail in favor of auth.getUserInfo [Otávio Jacobi]
  • auth: Add getUserInfo [Otávio Jacobi]
  • BREAKING: Drop pre-Resin OS v1 device.os_version normalization [Thodoris Greasidis]
  • BREAKING: Support non-user API keys in auth.isLoggedIn() & whoami() [Otávio Jacobi]
  • BREAKING: Drop support to node < 16 [Otávio Jacobi]

17.12.1 - 2023-08-09

  • Fix pointing browser es2018 settings-client to the es2015 one [Thodoris Greasidis]
  • Point browser bundlers to the appropriate handlebars entrypoint [Thodoris Greasidis]

17.12.0 - 2023-08-09

  • tests: Reduce the polyfills used in webpack [Thodoris Greasidis]
  • Avoid loading balena-settings-client in browsers using the browser field [Thodoris Greasidis]

17.11.0 - 2023-08-08

<summary> Add support for creating isolated in-memory instances [Thodoris Greasidis] </summary>

balena-auth-5.1.0 - 2023-07-28

  • Add support for isolated instances by passing dataDirectory: false [Thodoris Greasidis]

balena-auth-5.0.1 - 2023-07-28

  • Add multiple instance isolation tests [Thodoris Greasidis]

17.10.2 - 2023-07-25

<summary> Update balena-request to 12.0.2 [Thodoris Greasidis] </summary>

balena-request-12.0.2 - 2023-07-25

  • Make url a normal dependency [Thodoris Greasidis]

17.10.1 - 2023-07-25

<summary> Update dependenecies [Thodoris Greasidis] </summary>

balena-auth-5.0.0 - 2023-07-24

<summary> Update balena-settings-storage to 8.0.0 [Thodoris Greasidis] </summary>

balena-settings-storage-8.0.0 - 2023-07-24

  • virtual-storage: Use an object without a prototype as the store [Thodoris Greasidis]
  • Specify a browser entry point [Thodoris Greasidis]
  • Use es6 exports [Thodoris Greasidis]
  • Update TypeScript to 5.1.6 [Thodoris Greasidis]
  • Drop support for nodejs < 14 [Thodoris Greasidis]

balena-settings-storage-7.0.2 - 2022-11-08

  • Update balena-errors from v4.7.1 to v4.7.3 [JSReds]

balena-settings-storage-7.0.1 - 2022-11-01

  • Fix tests on node18 [Thodoris Greasidis]
  • Replace balenaCI with flowzone [JSReds]
  • Update dependencies [Thodoris Greasidis]
  • Drop support for nodejs < 14 [Thodoris Greasidis]

balena-auth-4.2.1 - 2023-07-13

  • patch: Update flowzone.yml [Kyle Harding]

balena-auth-4.2.0 - 2023-05-25

  • Add a get2FAStatus() method [Thodoris Greasidis]

balena-auth-4.1.3 - 2023-05-25

  • Fix async tests not waiting for the result [Thodoris Greasidis]

balena-auth-4.1.2 - 2022-09-26

  • Delete redundant .resinci.yml [Thodoris Greasidis]

balena-auth-4.1.1 - 2022-09-22

  • Replace balenaCI with flowzone [Thodoris Greasidis]

balena-register-device-8.0.7 - 2023-07-24

  • Update balena-auth to 5.0.0 & balena-request to 12.0.1 [Thodoris Greasidis]
  • Use typescript via a devDependency rather than npx [Thodoris Greasidis]

balena-register-device-8.0.6 - 2023-07-24

  • Update mockttp to 3.8.0 [Thodoris Greasidis]

balena-register-device-8.0.5 - 2023-06-01

  • Update minimum node version to v14 [Kyle Harding]
  • Update flowzone.yml [Kyle Harding]

balena-register-device-8.0.4 - 2022-09-26

  • Delete redundant .resinci.yml [Thodoris Greasidis]

balena-register-device-8.0.3 - 2022-09-22

  • Fix overriding the whole webpack resolve section of karma tests [Thodoris Greasidis]

balena-register-device-8.0.2 - 2022-09-22

  • Fix key uniqueness check [Thodoris Greasidis]
  • Convert the tests to TypeScript [Thodoris Greasidis]
  • Fix karma browser tests in node 18 [Thodoris Greasidis]
  • Specify the supported node engines in the package.json [Thodoris Greasidis]

balena-register-device-8.0.1 - 2022-09-21

  • Replace balenaCI with flowzone [Thodoris Greasidis]

balena-request-12.0.1 - 2023-07-24

  • Update balena-auth to 5.0.0 [Thodoris Greasidis]

balena-request-12.0.0 - 2023-07-14

  • Update TypeScript to 5.1.6 [Thodoris Greasidis]
  • Update mockttp to v3.8.0 [Thodoris Greasidis]
  • Drop support for node < 14 [Thodoris Greasidis]
  • Add querystring-es3 polyfill to fix browser tests [Thodoris Greasidis]
  • tsconfig: Enable skipLibCheck to avoid mockttp nested dependency errors [Thodoris Greasidis]
  • Update TypeScript to 4.9.5 [Thodoris Greasidis]
  • patch: Update flowzone.yml [Kyle Harding]

balena-request-11.5.10 - 2022-11-02

  • Update balena-errors to v4.7.3 [JSReds]

balena-request-11.5.9 - 2022-09-26

  • Delete redundant .resinci.yml [Thodoris Greasidis]

balena-request-11.5.8 - 2022-09-22

  • Fix overriding the whole webpack resolve section of karma tests [Thodoris Greasidis]

balena-request-11.5.7 - 2022-09-22

  • Replace balenaCI with flowzone [Thodoris Greasidis]
  • Fix tests in node 18 [Thodoris Greasidis]
  • Specify the supported node engines in the package.json [Thodoris Greasidis]

balena-request-11.5.6 - 2022-09-22

  • Fix the typings to properly mark the auth parameter as optional [Thodoris Greasidis]
  • Update TypeScript to 4.8.3 [Thodoris Greasidis]

balena-request-11.5.5 - 2022-04-06

  • Fix extracting the response error from object response bodies [Thodoris Greasidis]

balena-request-11.5.4 - 2022-04-06

  • Drop explicit karma-chrome-launcher devDependency [Thodoris Greasidis]

balena-request-11.5.3 - 2022-04-05

  • Use response error as response message if there is one [Matthew Yarmolinsky]

balena-request-11.5.2 - 2022-04-04

  • Drop circle.yml [Thodoris Greasidis]

balena-request-11.5.1 - 2022-04-04

  • Drop mochainon & bump karma [Thodoris Greasidis]

balena-request-11.5.0 - 2021-11-28

  • Convert tests to JavaScript and drop coffeescript [Thodoris Greasidis]
  • Fix the jsdoc generation [Thodoris Greasidis]
  • Convert to typescript and publish typings [Thodoris Greasidis]

balena-request-11.4.2 - 2021-09-20

  • Allow overriding the default zlib flush setting [Kyle Harding]

balena-request-11.4.1 - 2021-08-27

  • Allow more lenient gzip decompression [Kyle Harding]

balena-request-11.4.0 - 2021-03-12

  • Update fetch-ponyfill to v7 [Thodoris Greasidis]

balena-request-11.3.0 - 2021-03-12

  • Switch to the versioned token refresh endpoint [Thodoris Greasidis]

balena-request-11.2.1 - 2021-03-12

  • Prevent token refresh when no base url is provided [Thodoris Greasidis]

balena-request-11.2.0 - 2020-11-12

  • Update balena-auth from 4.0.0 to 4.1.0 [josecoelho]

balena-request-11.1.1 - 2020-08-13

  • Stop refreshing the token on absolute urls [Thodoris Greasidis]

balena-request-11.1.0 - 2020-07-16

  • Add lazy loading for most modules [Pagan Gazzard]

balena-request-11.0.4 - 2020-07-14

  • Fix body overwriting on nodejs [Pagan Gazzard]

balena-request-11.0.3 - 2020-07-13

  • Add .versionbot/CHANGELOG.yml for nested changelogs [Pagan Gazzard]

balena-request-11.0.2 - 2020-07-06

  • Fix tslib dependency [Pagan Gazzard]

balena-request-11.0.1 - 2020-07-03

  • Fix passing baseUrl to refreshToken if the request uses an absolute url [Pagan Gazzard]

17.10.0 - 2023-07-11

  • service: Allow passing an application-service_name pair as a parameter [Thodoris Greasidis]

17.9.0 - 2023-07-11

  • device.serviceVar: Allow passing a service name as a parameter [Thodoris Greasidis]

17.8.0 - 2023-07-10

  • billing: Add removeBillingInfo method for removing billing info [myarmolinsky]

17.7.1 - 2023-07-09

  • deviceType.getBySlugOrName: Use a clearer var name in the docs example [Thodoris Greasidis]

17.7.0 - 2023-07-06

  • Add typings for the organization.is_frozen computed term [Thodoris Greasidis]

17.6.0 - 2023-07-05

  • application.create: Enable creating fleets with archived device types [myarmolinsky]

17.5.0 - 2023-06-27

  • Add owns__credit_bundle typing for Organization [myarmolinsky]

17.4.0 - 2023-06-19

  • Add typings for Credits Notifications [myarmolinsky]

17.3.2 - 2023-06-19

  • util: Simplify the listImagesFromTargetState helper [Thodoris Greasidis]

17.3.1 - 2023-06-17

  • Fix prettier complaining on windows runners [Thodoris Greasidis]
  • deviceType.getInstructions: Improve the return type [Thodoris Greasidis]
  • Fix browser tests now failing to find a polyfill for querystring [Thodoris Greasidis]

17.3.0 - 2023-06-05

  • os: Export the OsDownloadOptions type [Thodoris Greasidis]

17.2.3 - 2023-06-04

  • tsconfig: Allow noImplicitThis in the tests [Thodoris Greasidis]
  • tsconfig: Switch to strict compilation to fix the 5.1 errors [Thodoris Greasidis]
  • Update TypeScript to 5.1.3 [Thodoris Greasidis]

17.2.2 - 2023-06-01

  • Access other models internally via the shared current sdk instance [Thodoris Greasidis]

17.2.1 - 2023-06-01

  • Convert the remaining .js tests to .ts [Thodoris Greasidis]

17.2.0 - 2023-06-01

  • Extends batch device actions to accept arrays of full UUIDs [Thodoris Greasidis]
  • device.startOsUpdate: Add support for providing an array of UUIDs [Thodoris Greasidis]

17.1.4 - 2023-05-30

  • Add 2fa tests [Otávio Jacobi]
<summary> Fix auth.twoFactor.isEnabled() regression returning always true [Thodoris Greasidis] </summary>

balena-auth-4.2.0 - 2023-05-25

  • Add a get2FAStatus() method [Thodoris Greasidis]

balena-auth-4.1.3 - 2023-05-25

  • Fix async tests not waiting for the result [Thodoris Greasidis]

balena-auth-4.1.2 - 2022-09-26

  • Delete redundant .resinci.yml [Thodoris Greasidis]

balena-auth-4.1.1 - 2022-09-22

  • Replace balenaCI with flowzone [Thodoris Greasidis]

17.1.3 - 2023-05-29

  • Add support to short uuid on device.serviceVar.set [Otávio Jacobi]

17.1.2 - 2023-05-25

  • Switch to a stricter request limiting queuing mode [Thodoris Greasidis]

17.1.1 - 2023-05-25

  • Drop the callback examples from the docs [Thodoris Greasidis]

17.1.0 - 2023-05-24

  • Add the requestLimit & requestLimitInterval options to the SDK factory [Thodoris Greasidis]

17.0.2 - 2023-05-24

  • Update dependencies [Thodoris Greasidis]

17.0.1 - 2023-05-24

  • Add a method to retrieve the supervisor image for a DT [Edwin Joassart]
  • Add util to list images referenced in a target state v3 [Edwin Joassart]
  • Add a method for retrieving an application's virtual device target supervisor state [Edwin Joassart]

17.0.0 - 2023-05-22

  • Fully type the result of os.getAllOsVersions when providing pine options [Thodoris Greasidis]
  • Change all .create() methods to return fully typed results [Thodoris Greasidis]
  • Change the pine.post() method to return fully typed results [Thodoris Greasidis]
  • Add the imageType property to the os.download method [Thodoris Greasidis]
  • Add OS download custom properties [Otávio Jacobi]
  • BREAKING: Drop the tags.getAll() method from all models [Thodoris Greasidis]
  • BREAKING: Drop organization.membership.getAll() [Thodoris Greasidis]
  • BREAKING: Drop application.membership.getAll() [Thodoris Greasidis]
  • BREAKING: Drop device.getAll() in favor of getAllByOrganization() [Thodoris Greasidis]
  • Replace lodash flatten with native flatMap [Thodoris Greasidis]
  • Move the sources under the /src folder [Thodoris Greasidis]
  • types: Add type checks for the direction of the string $orderby variant [Thodoris Greasidis]
  • types: Require a generic param in pine's associated resource helpers [Thodoris Greasidis]
  • tests: Convert some async expectations to asyn-await [Thodoris Greasidis]
  • types: Rename ODataOptionsWithSelect to ODataOptionsStrict [Thodoris Greasidis]
  • types: Rename PineOptionsWithSelect to PineOptionsStrict [Thodoris Greasidis]
  • Types: Rename ParamsObjWithSelect to ParamsObjStrict [Thodoris Greasidis]
  • release: Rename the .note() method to .setNote() [Thodoris Greasidis]
  • device: Rename the .note() method to .setNote() [Thodoris Greasidis]
  • os.download: Change to accept a single object parameter [Thodoris Greasidis]
  • OsVersion: Make variant non-nullable to match the Release field [Thodoris Greasidis]
  • OsVersion: Drop the formattedVersion property [Thodoris Greasidis]
  • OsVersion: Drop the rawVersion property in favor of raw_version [Thodoris Greasidis]
  • Drop device.getManifestByApplication() [Thodoris Greasidis]
  • Drop device.getManifestBySlug in favor of config.getDeviceTypeManifestBySlug [Thodoris Greasidis]
  • Drop support for callbacks [Thodoris Greasidis]
  • getWithServiceDetails: Drop the current_gateway_downloads property [Thodoris Greasidis]
  • types: Drop the deprecated public_key property from the JWTUser [Thodoris Greasidis]
  • Drop the deprecated needsPasswordReset property from the JWTUser [Thodoris Greasidis]
  • Bump mockttp to v3.0.0 [Thodoris Greasidis]
<summary> Update balena-hup-action-utils to 5.0.0 [Thodoris Greasidis] </summary>

balena-hup-action-utils-5.0.0 - 2023-04-28

  • Re-enable TS-compatibility checks [Thodoris Greasidis]
  • Update Typescript to 5.0.4 [Thodoris Greasidis]
  • Throw a typed HUPActionError for expected errors [Thodoris Greasidis]
  • Change the build target to es6 [Thodoris Greasidis]
  • Drop support for node < v12 [Thodoris Greasidis]

balena-hup-action-utils-4.1.3 - 2022-09-26

  • Delete redundant .resinci.yml [Thodoris Greasidis]

balena-hup-action-utils-4.1.2 - 2022-09-22

  • Specify node 10 as the minimum supported node engine in the package.json [Thodoris Greasidis]
  • Replace balenaCI with flowzone [Thodoris Greasidis]

balena-hup-action-utils-4.1.1 - 2022-04-09

  • Bump karma to v6 [Thodoris Greasidis]
  • Update balena-settings-client to v5.0.0 [Thodoris Greasidis]
  • Bump minimum supported Typescript version to v5.0.2 [Thodoris Greasidis]
  • BREAKING: Drop device.getAllByParentDevice [Thodoris Greasidis]
  • BREAKING: Drop support for node 12, require es2019 builtin APIs [Thodoris Greasidis]
  • BREAKING: Stop publishing an unminified browser bundle [Thodoris Greasidis]

16.45.1 - 2023-05-18

  • Fix the release.finalize() tests [Thodoris Greasidis]

16.45.0 - 2023-05-18

  • Add the application.membership.getAllByUser() method [Thodoris Greasidis]
  • Add the organization.membership.getAllByUser() method [Thodoris Greasidis]

16.44.3 - 2023-05-17

  • Deprecate the OsVersionsByDeviceType type [Thodoris Greasidis]

16.44.2 - 2023-05-16

  • Update flowzone's macos runner to v12 [Thodoris Greasidis]
  • Add device type yocto properties to typings [Otávio Jacobi]
  • Optimize getDeviceUrl request in one query [Otávio Jacobi]

16.44.1 - 2023-05-09

  • Fix device.getAllByOrganization parameter docs [Otávio Jacobi]

16.44.0 - 2023-04-27

  • Add device.getAllByOrganization() [Thodoris Greasidis]
  • Deprecate Device's is_managed_by__device & manages__device properties [Thodoris Greasidis]

16.43.0 - 2023-04-19

  • Add test case DeviceHistory expandable resources [fisehara]
  • Make DeviceHistory referenced resources expandable [fisehara]

16.42.0 - 2023-04-18

  • Add support for pine queries on Concept Type properties [Thodoris Greasidis]
  • Properly type Actor properties on resources [fisehara]

16.41.0 - 2023-04-07

  • Release model: Add support for getting/patching releases by application & rawVersion pairs [myarmolinsky]

16.40.0 - 2023-04-05

  • device.reboot: Fix the typings requiring a second argument [Thodoris Greasidis]
  • device.restartApplication: Use the supervisor endpoint to issue restarts [Thodoris Greasidis]

16.39.1 - 2023-04-04

  • patch: Split instruction strings on linebreak [Vipul Gupta (@vipulgupta2048)]

16.39.0 - 2023-03-30

  • Add device history model [fisehara]

16.38.2 - 2023-03-28

  • Fix credit-bundle jsdocs [Josh Bowling]

16.38.1 - 2023-03-27

  • Deprecate the device-type.json's instructions field [Thodoris Greasidis]

16.38.0 - 2023-03-21

  • Add aliases for the DT contrast slugs used in getInstructions [Thodoris Greasidis]

16.37.0 - 2023-03-21

  • device-type/getInstructions: Overload to accept the device type contract [Thodoris Greasidis]

16.36.6 - 2023-03-20

  • Update TypeScript to 5.0.2 [Thodoris Greasidis]

16.36.5 - 2023-03-16

  • patch: Improve jetsonFlash provisioning partial [Vipul Gupta (@vipulgupta2048)]

16.36.4 - 2023-03-15

  • Avoid running write operation tests in parallel to support retries [Thodoris Greasidis]
  • Retry failing tests twice [Thodoris Greasidis]
  • Fix tests per removal of microservices-starter application type [myarmolinsky]

16.36.3 - 2023-02-28

  • models/device-type: Add test for Radxa Zero instructions [Alexandru Costache]
  • lib/models: Add radxaFlash protocol for Radxa boards [Alexandru Costache]

16.36.2 - 2023-02-24

  • tests: Stop using flowzone internal env vars to for skipping npm test [Thodoris Greasidis]

16.36.1 - 2023-02-20

  • Add plan validity date fields [Josh Bowling]

16.36.0 - 2023-02-16

  • Add contract partial based instruction generation [Micah Halter]

16.35.0 - 2023-02-10

  • Add CreditBundle model [myarmolinsky]

16.34.0 - 2023-02-09

  • Add configVarInvalidRegex to Config Var typing [Felipe Lalanne]

16.33.0 - 2023-02-09

  • CurrentServiceWithCommit: Add release raw_version to type [myarmolinsky]

16.32.3 - 2023-02-07

  • Optimize the device.get method [Thodoris Greasidis]

16.32.2 - 2023-02-02

  • Improve pine typings for public resources without id fields [Thodoris Greasidis]

16.32.1 - 2023-01-16

  • Drop no longer used .travis.yml & .hound.yml [Thodoris Greasidis]
  • Rerun prettier [Thodoris Greasidis]

16.32.0 - 2023-01-05

  • typings: Add the device.is_frozen field [Thodoris Greasidis]

16.31.2 - 2022-12-20

  • application.create: Deprecate the parent option [Thodoris Greasidis]
  • Deprecate the device.getAllByParentDevice() method [Thodoris Greasidis]
  • Simplify the device.move() checks [Thodoris Greasidis]

16.31.1 - 2022-12-17

  • Replace appveyor with flowzone [Thodoris Greasidis]

16.31.0 - 2022-12-16

  • Add updateAccountInfo method to billing model for updating billing account info [myarmolinsky]

16.30.2 - 2022-12-13

  • Flowzone: Allow external contributions [Thodoris Greasidis]

16.30.1 - 2022-12-07

  • patch: bump catch-uncommitted from 1.6.2 to 2.0.0 [dependabot[bot]]

16.30.0 - 2022-11-24

  • Add utils and export mergePineOptions balena.utils.mergePineOptions() [JSReds]

16.29.3 - 2022-11-24

  • device.getWithServiceDetails: Stop auto-expanding the gateway_downloads [Thodoris Greasidis]

16.29.2 - 2022-11-16

  • Update TypeScript to 4.9.3 [Thodoris Greasidis]

16.29.1 - 2022-11-12

  • Fix release end_timestamp type [Thodoris Greasidis]

16.29.0 - 2022-11-12

<summary> Support filtered $count operations inside $filter & $orderby [Thodoris Greasidis] </summary>

pinejs-client-js-6.12.0 - 2022-11-10

  • Deprecate the 'a/count' notation in $orderby [Thodoris Greasidis]
  • Deprecate the $count: { $op: number } notation [Thodoris Greasidis]
  • Add support for $filter: { $op: [{ $count: {} }, number] } notation [Thodoris Greasidis]

pinejs-client-js-6.11.0 - 2022-11-09

  • Deprecate non-$filter props inside $expand: { a: { $count: {...}}} [Thodoris Greasidis]
  • Add support for $orderby: { a: { $count: ... }, $dir: 'asc' } notation [Thodoris Greasidis]

pinejs-client-js-6.10.7 - 2022-11-07

  • Refactor the deprecation message definitions [Thodoris Greasidis]

pinejs-client-js-6.10.6 - 2022-11-01

  • tests: Support .only & .skip in the higher level test functions [Thodoris Greasidis]

pinejs-client-js-6.10.5 - 2022-10-14

  • Flowzone: Use inherited secrets [Pagan Gazzard]

pinejs-client-js-6.10.4 - 2022-09-26

  • Specify node 10 as the minimum supported node engine in the package.json [Thodoris Greasidis]
  • Replace balenaCI with flowzone [Thodoris Greasidis]

pinejs-client-js-6.10.3 - 2022-09-15

  • Fix $count typings to only allow $filter under it [Thodoris Greasidis]

pinejs-client-js-6.10.2 - 2022-04-08

  • Update dependencies [Pagan Gazzard]
  • Remove circleci [Pagan Gazzard]

pinejs-client-js-6.10.1 - 2022-02-08

  • Do not await the _request() result to allow enhanced promises downstream [Thodoris Greasidis]

pinejs-client-js-6.10.0 - 2022-01-24

  • Add optional retry logic to client [Paul Jonathan Zoulin]

16.28.4 - 2022-11-04

  • Use deep imports for date-fns to improve tree-shaking [Thodoris Greasidis]
  • Enable esModuleInterop build option [Thodoris Greasidis]

16.28.3 - 2022-11-03

  • Update balena-errors to v4.7.3 [JSReds]

16.28.2 - 2022-10-27

  • Update tests to run on node 18 [Thodoris Greasidis]
  • deviceType.getAllSupported: Require a valid & final release to exist [Thodoris Greasidis]

16.28.1 - 2022-10-14

  • flowzone: Run the node tests using the latest LTS version [Thodoris Greasidis]

16.28.0 - 2022-10-12

  • device.register: Allow providing a device type for the registered device [Thodoris Greasidis]

16.27.0 - 2022-10-07

  • Add support for batch operations for more device modifying methods [Thodoris Greasidis]

16.26.7 - 2022-10-07

  • Fix request batching chunking when there is no grouping navigation prop [Thodoris Greasidis]
  • request-batching: Increase the batch size to 200 items [Thodoris Greasidis]

16.26.6 - 2022-10-06

  • Fix request batching not chunking the items of the operation [Thodoris Greasidis]

16.26.5 - 2022-09-26

  • Delete redundant .resinci.yml [Pagan Gazzard]

16.26.4 - 2022-09-23

  • Remove moment in favor of date-fns [Matthew Yarmolinsky]

16.26.3 - 2022-09-21

  • Skip running tests in flowzone till we can inject env vars [Thodoris Greasidis]
  • Switch from balenaCI to flowzone [Pagan Gazzard]

16.26.2 - 2022-09-06

<summary> Update balena-register-device to 8.0.0 [Thodoris Greasidis] </summary>

balena-register-device-8.0.0 - 2022-09-06

  • Remove the travis & appveyor configurations [Thodoris Greasidis]
  • tsconfig: Enable strict type checking [Thodoris Greasidis]
  • Update devDependencies [Thodoris Greasidis]
  • Update the uuid package to v9 [Thodoris Greasidis]
  • Prevent creating a package-lock.json [Thodoris Greasidis]
  • Drop support for node 10 in favor of 14 & 16 [Thodoris Greasidis]

balena-register-device-7.2.0 - 2021-04-29

  • Support supervisorVersion/osVersion/osVariant/macAddress fields [Pagan Gazzard]

balena-register-device-7.1.1 - 2021-04-29

  • Update dependencies [Pagan Gazzard]

16.26.1 - 2022-08-29

  • Update TypeScript to v4.8 [Thodoris Greasidis]

16.26.0 - 2022-08-26

  • Pin TypeScript to 4.7 until upstream dependencies are updated [Thodoris Greasidis]
  • types: Add the InvitationTokenDecodedPayload type [Thodoris Greasidis]

16.25.1 - 2022-08-05

  • Deprecate the public_key from the user JWT [Thodoris Greasidis]

16.25.0 - 2022-08-04

  • application.remove: Support batch deletions by providing multiple IDs [Thodoris Greasidis]
  • Refactor the request batching implementation to be generic [Thodoris Greasidis]
  • Change pine options merging to extend the default $selected properties [Thodoris Greasidis]

16.24.2 - 2022-08-02

  • Refactor the internal mergePineOptions utility [Thodoris Greasidis]

16.24.1 - 2022-07-21

  • Update Husky to v7 [Thodoris Greasidis]

16.24.0 - 2022-07-08

  • types: Add missing Application to Service relation [Thodoris Greasidis]

16.23.0 - 2022-07-07

  • Add expiry-date for generation of user and device keys [Nitish Agarwal]

16.22.0 - 2022-06-06

  • os: Start using the release.phase field in the available versions [Thodoris Greasidis]

16.21.1 - 2022-06-02

  • Add provisioning key expiry date to generateDeviceProvisioningKey [Nitish Agarwal]

16.21.0 - 2022-06-01

  • os: Refactor the computation of OS releases [Thodoris Greasidis]
  • os: Use the model's release variant when the native fields are used [Thodoris Greasidis]

16.20.6 - 2022-05-31

  • Deprecate the needsPasswordReset field of the JWTUser [Thodoris Greasidis]

16.20.5 - 2022-05-25

  • Update TypeScript to v4.7 [Thodoris Greasidis]

16.20.4 - 2022-05-09

  • bump @types/node from 10.17.60 to 12.20.500 [Thodoris Greasidis]

16.20.3 - 2022-05-06

  • patch: bump browserify from 14.5.0 to 17.0.0 [dependabot[bot]]

16.20.2 - 2022-05-05

  • patch: bump tmp from 0.0.31 to 0.2.1 [dependabot[bot]]

16.20.1 - 2022-05-05

  • Drop the non-populated apiUrl & actionsUrl properties from Config type [Thodoris Greasidis]

16.20.0 - 2022-05-04

  • models.apiKey: Update apiKeyInfo with expiryDate option [Nitish Agarwal]
  • os.getConfig: Add typings for the provisioningKeyExpiryDate option [Balena CI]

16.19.14 - 2022-05-04

  • config.getAll: Mark the deviceTypes property as optional [Thodoris Greasidis]

16.19.13 - 2022-05-03

  • patch: bump mocha from 3.5.3 to 10.0.0 [dependabot[bot]]

16.19.12 - 2022-05-03

  • config.getAll: Deprecate the pubnub property and mark as optional [Thodoris Greasidis]

16.19.11 - 2022-05-03

  • patch: bump mockttp from 0.9.1 to 2.7.0 [Thodoris Greasidis]

16.19.10 - 2022-04-27

  • Reduce the prod typing dependencies [Thodoris Greasidis]

16.19.9 - 2022-04-26

  • patch: Remove documentation.md from the NPM package [Vipul Gupta]

16.19.8 - 2022-04-20

  • patch: Remove additional quotes [Vipul Gupta (@vipulgupta2048)]

16.19.7 - 2022-04-12

  • tests: Update to work with latest major of superagent [Thodoris Greasidis]
  • patch: bump superagent from 3.8.3 to 7.1.2 [dependabot[bot]]

16.19.6 - 2022-04-11

  • patch: bump dotenv from 4.0.0 to 16.0.0 [dependabot[bot]]

16.19.5 - 2022-04-09

  • Bump karma to v6 [Thodoris Greasidis]

16.19.4 - 2022-04-09

  • Add dependabot configuration [Thodoris Greasidis]

16.19.3 - 2022-04-06

  • tests: Update v5 model endpoint prefix references [Thodoris Greasidis]

16.19.2 - 2022-04-06

<summary> Fix extracting a meaningful error message instead of "[object Object]" [Thodoris Greasidis] </summary>

balena-request-11.5.5 - 2022-04-06

  • Fix extracting the response error from object response bodies [Thodoris Greasidis]

balena-request-11.5.4 - 2022-04-06

  • Drop explicit karma-chrome-launcher devDependency [Thodoris Greasidis]

16.19.1 - 2022-04-05

  • Update balena-request dependency to v11.5.3 [Matthew Yarmolinsky]

16.19.0 - 2022-03-16

  • Add release.setKnownIssueList function for setting a release's known issue list [Matthew Yarmolinsky]

16.18.0 - 2022-03-14

  • minor: Add trying SDK in the browser [Vipul Gupta (@vipulgupta2048)]

16.17.0 - 2022-03-11

  • device.getWithServiceDetails: Add the release id in the service info [Matthew Yarmolinsky]

16.16.1 - 2022-03-08

  • Replace internal use of deprecated OsVersion.rawVersion with raw_version [Thodoris Greasidis]

16.16.0 - 2022-03-03

  • Add support for named imports from .mjs files [Thodoris Greasidis]
  • Update npx command to fix ts-compatibility tests [Thodoris Greasidis]
  • Regenerate Documentation [Thodoris Greasidis]
  • Update typescript to 4.6.2 [Thodoris Greasidis]

16.15.1 - 2022-02-24

  • Remove unnecessary vpn address filtering when fetching local addresses [Pagan Gazzard]

16.15.0 - 2022-02-16

  • Add applicationClass parameter to application create function for setting is_of__class property [Matthew Yarmolinsky]

16.14.0 - 2022-02-15

  • Add name and description field to generateDeviceKey for device. [Nitish Agarwal]

16.13.4 - 2022-01-27

  • typings: Fix conditional $or/$and/$not $filters [Thodoris Greasidis]

16.13.3 - 2022-01-27

  • Deprecate the supportsBlink field of the DeviceTypeJson.DeviceType type [Thodoris Greasidis]

16.13.2 - 2022-01-25

  • Deprecate the logoUrl field of the DeviceTypeJson.DeviceType type [Thodoris Greasidis]

16.13.1 - 2022-01-21

  • Replace internal use of release.contains__image with release_image [Thodoris Greasidis]

16.13.0 - 2022-01-21

  • models: Deprecate the release.contains__image in favor of the term form [Thodoris Greasidis]
  • models: Add the release_image term form property in the Release typings [Thodoris Greasidis]

16.12.1 - 2022-01-17

  • config.getConfigVarSchema: Send the token only when using a device type [Thodoris Greasidis]

16.12.0 - 2022-01-10

  • Replace DeviceTypeJson usage for alias resolution with model queries [Thodoris Greasidis]
  • models/device-type: Support aliases as argument of the get() method [Thodoris Greasidis]

16.11.3 - 2022-01-09

  • Fix jsdoc example for balena.errors [Ken Bannister]

16.11.2 - 2021-12-30

  • tests: Convert auth spec to async await [Thodoris Greasidis]

16.11.1 - 2021-12-30

  • Fix buggy tests causing flakiness on node 16 [Thodoris Greasidis]

16.11.0 - 2021-12-30

  • Alias device.getManifestBySlug as config.getDeviceTypeManifestBySlug [Thodoris Greasidis]
  • Deprecate device.getManifestByApplication [Thodoris Greasidis]

16.10.0 - 2021-12-30

  • application.get: Add support for retrieving applications by uuid [Thodoris Greasidis]
  • package.json: Rename the lint-fix npm script to lint:fix [Thodoris Greasidis]

16.9.4 - 2021-12-29

  • os: Avoid mutating the args in getAvailableOsVersions & getAllOsVersion [Thodoris Greasidis]

16.9.3 - 2021-12-28

  • os: Replace semver normalization with balena-semver [Thodoris Greasidis]

16.9.2 - 2021-12-28

  • Stop relying on the balena-pine module [Thodoris Greasidis]

16.9.1 - 2021-12-28

  • Enable nested changelogs for balena-hup-action-utils [Thodoris Greasidis]

16.9.0 - 2021-12-24

  • Support upgrading .dev to unified OS releases [Thodoris Greasidis]

16.8.2 - 2021-12-24

  • tests: Stop using mochainon [Thodoris Greasidis]

16.8.1 - 2021-12-23

  • logs: Stop using the querystring module [Thodoris Greasidis]

16.8.0 - 2021-12-22

  • os.getConfig: Accept additional developmentMode configuration option [Thodoris Greasidis]

16.7.0 - 2021-12-22

  • os.download: Fix the inferred method typings [Thodoris Greasidis]
  • os.download: Accept additional configuration options [Thodoris Greasidis]

16.6.0 - 2021-12-22

  • models.os: Use the native hostApp OS release version if it is set [Thodoris Greasidis]
  • models.os: Deprecate OsVersion.rawVersion in favor or raw_version [Thodoris Greasidis]

16.5.0 - 2021-12-22

  • os.getAllOsVersions: Add support for invariant OS releases [Thodoris Greasidis]

16.4.1 - 2021-12-21

  • os.getMaxSatisfyingVersion: Add ">" semver range tests [Thodoris Greasidis]

16.4.0 - 2021-12-21

  • os.getMaxSatisfyingVersion: Add support for ESR releases [Thodoris Greasidis]

16.3.0 - 2021-12-21

  • application.getAppByName: Add 'directly_accessible' convenience filter [Thodoris Greasidis]

16.2.3 - 2021-12-17

  • FIx the return type of config.getConfigVarSchema() [Thodoris Greasidis]

16.2.2 - 2021-12-17

  • os.getAvailableOsVersions: Exclude draft and non-successful releases [Thodoris Greasidis]
  • os.getAllOsVersions: Deprecate OsVersion.isRecommended [Thodoris Greasidis]
  • os.getAllOsVersions: Deprecate OsVersion.formattedVersion [Thodoris Greasidis]

16.2.1 - 2021-12-17

  • Drop require-npm4-to-publish [Thodoris Greasidis]

16.2.0 - 2021-12-17

  • minor: Add Configuration Variables Schema method [Vipul Gupta (@vipulgupta2048)]

16.1.0 - 2021-12-08

  • Add description field to generateProvisioningKey for apps. [Nitish Agarwal]

16.0.0 - 2021-11-28

  • BREAKING: Merge the hostApp model into the OS model [Thodoris Greasidis]
  • BREAKING Drop os.getSupportedVersions() method in favor of hostapp.getAvailableOsVersions() [Thodoris Greasidis]
  • os.getMaxSatisfyingVersion: Add optional param to choose OS line type [Thodoris Greasidis]
  • os.getMaxSatisfyingVersion: Include ESR versions [Thodoris Greasidis]
  • os.getMaxSatisfyingVersion: Switch to use hostApps [Thodoris Greasidis]
  • hostapp.getAvailableOsVersions: Add single device type argument overload [Thodoris Greasidis]
  • hostapp.getAllOsVersions: Add single device type argument overload [Thodoris Greasidis]
  • models.hostapp: Add a getAvailableOsVersions() convenience method [Thodoris Greasidis]
  • Support optional extra PineOptions in hostapp.getAllOsVersions() [Thodoris Greasidis]
  • BREAKING Include invalidated versions in hostapp.getAllOsVersions() [Thodoris Greasidis]
  • models/application: Add getDirectlyAccessible & getAllDirectlyAccessible [Thodoris Greasidis]
  • application.get: Add 'directly_accessible' convenience filter param [Thodoris Greasidis]
  • application.getAll: Add 'directly_accessible' convenience filter param [Thodoris Greasidis]
  • BREAKING Change application.getAll to include public apps [Thodoris Greasidis]
  • BREAKING Drop targeting/retrieving apps by name in favor of slugs [Thodoris Greasidis]
  • Bump minimum supported Typescript to v4.5.2 [Thodoris Greasidis]
  • BREAKING: Stop actively supporting node 10 [Thodoris Greasidis]
  • BREAKING Drop application.getAllWithDeviceServiceDetails() [Thodoris Greasidis]
  • BREAKING Change apiKey.getAll() to return all key variants [Thodoris Greasidis]
  • types: Drop is_in_local_mode from the Device model [Thodoris Greasidis]
  • types: Drop user__is_member_of__application in favor of the term form [Thodoris Greasidis]
  • typings: Drop Subscription's discounts__plan_addon property [Thodoris Greasidis]
  • typings: Stop extending the JWTUser type in the User model [Thodoris Greasidis]
  • models/config: Change the BETA device type state to NEW [Thodoris Greasidis]
  • typings: Drop the PineWithSelectOnGet type [Thodoris Greasidis]
  • Remove my_application from the supported resources [Thodoris Greasidis]
  • typings: Properly type some Device properties [Thodoris Greasidis]
  • typings: Drop the DeviceWithImageInstalls type [Thodoris Greasidis]

15.59.2 - 2021-11-28

<summary> Update balena-request to 11.5.0 [Thodoris Greasidis] </summary>

balena-request-11.5.0 - 2021-11-28

  • Convert tests to JavaScript and drop coffeescript [Thodoris Greasidis]
  • Fix the jsdoc generation [Thodoris Greasidis]
  • Convert to typescript and publish typings [Thodoris Greasidis]

15.59.1 - 2021-11-28

  • Fix the typings of the Image contract field [Thodoris Greasidis]
  • Fix the typings for the Release contract field [Thodoris Greasidis]

15.59.0 - 2021-11-24

  • Add release setIsInvalidated function [Matthew Yarmolinsky]

15.58.1 - 2021-11-17

  • Update typescript to 4.5.2 [Thodoris Greasidis]

15.58.0 - 2021-11-16

  • models/release: Add note() method [Thodoris Greasidis]
  • typings: Add the release.invalidation_reason property [Thodoris Greasidis]
  • typings: Add the release.note property [Thodoris Greasidis]

15.57.2 - 2021-11-15

  • tests/logs: Increase the wait time for retrieving the subscribed logs [Thodoris Greasidis]
  • tests/logs: Refactor to async-await [Thodoris Greasidis]

15.57.1 - 2021-11-11

  • typings: Fix $filters for resources with non numeric ids [Thodoris Greasidis]
  • typings: Add application.can_use__application_as_host ReverseNavigation [Thodoris Greasidis]
  • Add missing apiKey.getDeviceApiKeysByDevice docs [Thodoris Greasidis]

15.57.0 - 2021-11-05

  • models/api-key: Change update() & revoke() to work with all key variants [Thodoris Greasidis]

15.56.0 - 2021-11-04

  • models/apiKey: Add getDeviceApiKeysByDevice() method [Thodoris Greasidis]

15.55.0 - 2021-11-01

  • typings: Add the release.raw_version property [Thodoris Greasidis]

15.54.2 - 2021-10-25

  • application/create: Rely on the hostApps for detecting discontinued DTs [Thodoris Greasidis]

15.54.1 - 2021-10-22

  • tests/device: Async-await conversions & abstraction on multi-field tests [Thodoris Greasidis]

15.54.0 - 2021-10-20

  • tests: Register devices in chunks of 10 to avoid uuid conflicts in node [Thodoris Greasidis]
  • Add known issue check on release isReccomanded logic [JSReds]
  • Add known_issue_list to hostApp.getOsVersions() [JSReds]

15.53.0 - 2021-10-07

  • Add support for batch device supervisor updates [Thodoris Greasidis]

15.52.0 - 2021-10-06

  • Add support for batch device pinning to release [Thodoris Greasidis]

15.51.4 - 2021-09-28

  • auth.isLoggedIn: Treat BalenaExpiredToken errors as logged out indicator [Thodoris Greasidis]

15.51.3 - 2021-09-28

  • Convert application spec to TypeScript [Thodoris Greasidis]

15.51.2 - 2021-09-28

  • application.trackLatestRelease: Fix using draft/invalidated releases [Thodoris Greasidis]
  • application.isTrackingLatestRelease: Exclude draft&invalidated releases [Thodoris Greasidis]

15.51.1 - 2021-09-20

<summary> Update balena-request to v11.4.2 [Kyle Harding] </summary>

balena-request-11.4.2 - 2021-09-20

  • Allow overriding the default zlib flush setting [Kyle Harding]

15.51.0 - 2021-09-16

  • os.getConfig: Add typings for the provisioningKeyName option [Nitish Agarwal]

15.50.1 - 2021-09-13

  • models/os: Always first normalize the device type slug [Thodoris Greasidis]

15.50.0 - 2021-09-10

  • Add release.finalize to promote draft releases to final [toochevere]

15.49.1 - 2021-09-10

  • typings: Drop the v5-model-only application_type.is_host_os [Thodoris Greasidis]

15.49.0 - 2021-09-06

  • os.getSupportedOsUpdateVersions: Use the hostApp releases [Thodoris Greasidis]
  • os.download: Use the hostApp for finding the latest release [Thodoris Greasidis]

15.48.3 - 2021-08-27

<summary> Update balena-request to 11.4.1 [Kyle Harding] </summary>

balena-request-11.4.1 - 2021-08-27

  • Allow more lenient gzip decompression [Kyle Harding]

15.48.2 - 2021-08-27

  • Improve hostapp.getAllOsVersions performance & reduce fetched data [Thodoris Greasidis]

15.48.1 - 2021-08-27

  • Update typescript to 4.4.2 [Thodoris Greasidis]

15.48.0 - 2021-08-15

  • Deprecate the release.release_version property [Thodoris Greasidis]
  • typings: Add the release versioning properties [Thodoris Greasidis]

15.47.1 - 2021-08-10

  • Run browser tests using the minified browser bundle [Thodoris Greasidis]
  • Move to uglify-js to fix const assignment bug in minified build [Thodoris Greasidis]

15.47.0 - 2021-08-09

  • typings: Add the release.is_final & is_finalized_at__date properties [Thodoris Greasidis]

15.46.1 - 2021-07-28

  • apiKey.getAll: Return only NamedUserApiKeys for backwards compatibility [Thodoris Greasidis]

15.46.0 - 2021-07-27

  • Add email verification & email request methods [Nitish Agarwal]

15.45.0 - 2021-07-26

  • Update generateProvisioningKey to include keyName [Nitish Agarwal]

15.44.0 - 2021-07-15

  • typings: Add the subscription.is_active computed term [Thodoris Greasidis]

15.43.0 - 2021-07-14

  • typings: Add the organization_memebership.effective_seat_role field [Thodoris Greasidis]

15.42.2 - 2021-07-14

  • tests: Reduce the number of organizations created [Thodoris Greasidis]

15.42.1 - 2021-07-13

  • tests/api-key: Fix a race condition in the apiKey.create() tests [Thodoris Greasidis]
  • Convert the apiKey tests to async-await [Thodoris Greasidis]

15.42.0 - 2021-07-13

  • models/apiKey: Add getProvisioningApiKeysByApplication() method [Nitish Agarwal]

15.41.1 - 2021-06-30

  • Delete CODEOWNERS [Thodoris Greasidis]

15.41.0 - 2021-06-21

  • Add organization__has_private_access_to__device_type typings [Thodoris Greasidis]
  • typings: Add organization.has_past_due_invoice_since__date [Thodoris Greasidis]

15.40.0 - 2021-06-09

  • Add getAllNamedUserApiKeys() in the apiKey model [Thodoris Greasidis]

15.39.4 - 2021-06-08

  • Add missing modified_at in device type [JSReds]

15.39.3 - 2021-06-08

  • Fix lint with new linter version [JSReds]

15.39.2 - 2021-05-27

  • Update TypeScript to v4.3.2 [Thodoris Greasidis]

15.39.1 - 2021-05-24

  • Update balena-lint to v6 [Thodoris Greasidis]

15.39.0 - 2021-05-24

  • Add public device types [Tomás Migone]

15.38.0 - 2021-05-20

  • models/billing: Add changePlan method [Thodoris Greasidis]
  • Update DOCUMENTATION about getAllWithDeviceServiceDetails deprecation [Thodoris Greasidis]

15.37.0 - 2021-05-17

  • Add public organization types [JSReds]

15.36.0 - 2021-05-13

  • Add is_of__class in application model [JSReds]

15.35.2 - 2021-05-13

  • Fix lint after prittier update [JSReds]

15.35.1 - 2021-05-06

  • Add missing types for the Service & Image resources [Thodoris Greasidis]
  • release.getLatestByApplication: Fix the return type to be optional [Thodoris Greasidis]

15.35.0 - 2021-05-05

  • Deprecate application.getAllWithDeviceServiceDetails() [Thodoris Greasidis]
  • Deprecate targeting/retrieving apps by name in all models [Thodoris Greasidis]
  • Add application.getAppByName method [Thodoris Greasidis]

15.34.2 - 2021-05-05

  • Abstract & update device os info that are used in tests [Thodoris Greasidis]

15.34.1 - 2021-04-14

  • types: Deprecate Device is_in_local_mode property [Thodoris Greasidis]

15.34.0 - 2021-04-13

  • Deprecate user__is_member_of__application in favor of the term form [Thodoris Greasidis]
  • types/models: Add user_application_membership to the User & Team [Thodoris Greasidis]

15.33.0 - 2021-04-12

  • types/modes: Deprecate Subscription's discounts__plan_addon property [Thodoris Greasidis]
  • types/models: Add subscription_addon_discount to the Subscription [Thodoris Greasidis]

15.32.0 - 2021-04-08

  • Add the auth.getUserActorId() method [Thodoris Greasidis]

15.31.2 - 2021-04-08

  • models/application: Fix examples incorrectly showing a short device uuid [Thodoris Greasidis]
  • Add application.get example using the application slug [Thodoris Greasidis]

15.31.1 - 2021-04-07

  • Refactor the resource get by field tests [Thodoris Greasidis]

15.31.0 - 2021-04-07

  • Manage lock overrides using the config variables instead of the endpoint [Thodoris Greasidis]
  • Abstract the device lock override tests by id/uuid [Thodoris Greasidis]

15.30.2 - 2021-03-31

  • Fix type of contract fields that should be anyObject instead of object [Micah Halter]

15.30.1 - 2021-03-18

  • Update ndjson to 2.x [Pagan Gazzard]

15.30.0 - 2021-03-12

  • Update balena-request to 11.4.0 [Thodoris Greasidis]

15.29.0 - 2021-03-10

  • Added contract field to device type model [Micah Halter]

15.28.1 - 2021-03-08

  • Encapsulate the supervisor api methods into a partial [Thodoris Greasidis]

15.28.0 - 2021-03-05

  • Add device type model [JSReds]

15.27.1 - 2021-02-24

  • Bump typescript to 4.2 [Thodoris Greasidis]

15.27.0 - 2021-02-15

  • application.getAll: Use the new user__has_direct_access_to__application [Thodoris Greasidis]

15.26.0 - 2021-02-15

  • Support unique keys in organization.membership.changeRole() & remove() [Thodoris Greasidis]
  • Support unique keys in application.membership.changeRole() & remove() [Thodoris Greasidis]

15.25.2 - 2021-02-10

  • tests: Remove all m.chai.expect repetitions [Thodoris Greasidis]

15.25.1 - 2021-02-10

  • Cleanup application.getAllWithDeviceServiceDetails tests [Thodoris Greasidis]
  • tests: Refactor application.isTrackingLatestRelease to async await [Thodoris Greasidis]
  • tests: Refactor application.willTrackNewReleases to async await [Thodoris Greasidis]

15.25.0 - 2021-02-10

  • types/models: Add the application uuid property [Thodoris Greasidis]

15.24.7 - 2021-02-10

  • tests/setup: Fix bug caused by setting bad release timestamps [Thodoris Greasidis]
  • tests: Fix application.willTrackNewReleases missing tests [Thodoris Greasidis]

15.24.6 - 2021-02-04

  • Add application membership methods [JSReds]

15.24.5 - 2021-02-04

  • tests: Cleanup orgs & org memberships when resetting the user [Thodoris Greasidis]

15.24.4 - 2021-02-03

  • Remove the workaround for failing cascade deletes on deployFromUrl tests [Thodoris Greasidis]

15.24.3 - 2021-02-02

  • Refactor release.createFromUrl tests to async-await [Thodoris Greasidis]

15.24.2 - 2021-02-02

  • Run write release.createFromUrl() tests one by one [Thodoris Greasidis]
  • tests: Workaround the failing cascade deletes for release.deployFromUrl [Thodoris Greasidis]

15.24.1 - 2021-01-29

  • Device: add public_address property [JSReds]

15.24.0 - 2021-01-26

  • Add methods for managing organization memberships [Thodoris Greasidis]

15.23.2 - 2021-01-26

  • tests: require an email appendage to avoid accidentally deleting accounts [Matthew McGinn]

15.23.1 - 2021-01-26

  • typings: Fix $filter errors for $any with the 1: 1 expression [Thodoris Greasidis]

15.23.0 - 2021-01-22

  • Fix bugs that custom typings were hiding [Thodoris Greasidis]
  • Type all model method results [Thodoris Greasidis]
  • Autogenerate typings [Thodoris Greasidis]

15.22.2 - 2021-01-22

  • typings: Reorganize the pinejs-client re-exports [Thodoris Greasidis]
  • typings/pinejs-client: Provide the resource map as a generic argument [Thodoris Greasidis]

15.22.1 - 2021-01-21

  • tests: Simplify the setup helpers [Thodoris Greasidis]

15.22.0 - 2021-01-21

  • typings: Mark the my_application resource as deprecated [Thodoris Greasidis]
  • typings: Add the user has direct access to application resource [Thodoris Greasidis]

15.21.5 - 2021-01-20

  • Refactor device.setSupervisorRelease tests to reduce the created devices [Thodoris Greasidis]
  • supervisor-upgrades: limit to devices that support multicontainer [Matthew McGinn]

15.21.4 - 2021-01-18

  • typings: add missing release_version [Matthew McGinn]

15.21.3 - 2021-01-14

  • Add note about the test:fast npm script variant [Thodoris Greasidis]

15.21.2 - 2021-01-08

  • Properly throw Supervisor locked errors in all methods that should do so [Thodoris Greasidis]

15.21.1 - 2020-12-29

  • Fix device type typings and add to resource mapping [Stevche Radevski]

15.21.0 - 2020-12-29

  • Add missing typings for device type [Stevche Radevski]

15.20.0 - 2020-12-04

  • device: Add deactivate method [Marios Balamatsias]

15.19.0 - 2020-12-02

  • Add missing application and release typings [Stevche Radevski]

15.18.1 - 2020-11-20

  • Bump typescript to 4.1 [Thodoris Greasidis]

15.18.0 - 2020-11-19

  • typings: Deprecate PineWithSelectOnGet variant in favor of PineStrict [Thodoris Greasidis]
<summary> Update balena-auth from 4.0.2 to 4.1.0 [josecoelho] </summary>

balena-request-11.2.0 - 2020-11-12

  • Update balena-auth from 4.0.0 to 4.1.0 [josecoelho]

15.17.0 - 2020-10-27

  • Add missing reverse navigation relations to User typings [Thodoris Greasidis]

15.16.0 - 2020-10-23

  • Add SDK methods for org invites [Amit Solanki]

15.15.0 - 2020-10-22

  • Modify the os update to check against hostapp release [Stevche Radevski]

15.14.0 - 2020-10-19

  • Prevent invalid $selects in strict pine.get variant calls [Thodoris Greasidis]
  • Improve the parameter type checks for the fully typed pine.get [Thodoris Greasidis]

15.13.0 - 2020-10-09

  • Pass shouldFlatten through when creating release from url [Stevche Radevski]

15.12.1 - 2020-09-20

  • Time the test suites [Thodoris Greasidis]
  • Combine test util files from before dropping coffeescript [Thodoris Greasidis]

15.12.0 - 2020-09-20

  • Application: add rename method [JSReds]

15.11.3 - 2020-09-19

  • tests/keys: Fix race condition [Thodoris Greasidis]

15.11.2 - 2020-09-19

  • tests/device: Combine some multicontainer app tests [Thodoris Greasidis]
  • Remove some beforeEach() from the device tests [Thodoris Greasidis]

15.11.1 - 2020-09-19

  • Fix the device.setSupervisorRelease() tests [Thodoris Greasidis]

15.11.0 - 2020-09-14

  • Typings: Extend the supported billing cycles [Thodoris Greasidis]

15.10.6 - 2020-09-14

  • tests: Reduce the application creations & teardowns even further [Thodoris Greasidis]

15.10.5 - 2020-09-14

  • Login: add new error handling, update balena-errors [JSReds]

15.10.4 - 2020-09-11

  • tests: Reduce the application creations & teardowns [Thodoris Greasidis]

15.10.3 - 2020-09-11

  • tests: Use mocha.parallel to speed up the test cases [Thodoris Greasidis]

15.10.2 - 2020-09-11

  • tests: Remove some before/afterEach calls to speed up the tests [Thodoris Greasidis]

15.10.1 - 2020-09-10

  • tests: Test that the result of device.getDeviceSlug() is a string [Thodoris Greasidis]
  • tests: Run device.getDeviceBySlug() calls in parallel to speed up tests [Thodoris Greasidis]
  • tests/os: Drop unnecessary beforeEach in getConfig() [Thodoris Greasidis]
  • tests/application: Fix incorrect skipping of unauthenticated tests [Thodoris Greasidis]

15.10.0 - 2020-09-10

  • typings: Make ReleaseWithImageDetails more accurate [Thodoris Greasidis]
  • Fully type the pine.get results [Thodoris Greasidis]
  • typings: Add the PineTypedResult helper type [Thodoris Greasidis]

15.9.1 - 2020-09-09

  • Typings: Add organization member relation to tags [Thodoris Greasidis]

15.9.0 - 2020-09-08

  • Add typings for pine.getOrCreate() [Thodoris Greasidis]
<summary> Bump balena-pine to add getOrCreate [Thodoris Greasidis] </summary>

balena-pine-12.4.0 - 2020-09-07

<summary> Update pinejs-client-core to 6.9.0 to support getOrCreate() [Thodoris Greasidis] </summary>

pinejs-client-js-6.9.0 - 2020-09-07

  • Add 'getOrCreate' method supporting natural keys [Thodoris Greasidis]

pinejs-client-js-6.8.0 - 2020-09-03

  • Add support for $format [Pagan Gazzard]

pinejs-client-js-6.7.3 - 2020-08-26

  • Improve $orderby typing to allow [{a: 'desc'}, {b: 'asc'}] [Pagan Gazzard]

pinejs-client-js-6.7.2 - 2020-08-24

  • Update dev dependencies [Pagan Gazzard]

pinejs-client-js-6.7.1 - 2020-08-12

  • Fix prepare $count typings [Pagan Gazzard]

pinejs-client-js-6.7.0 - 2020-08-12

  • Improve typings for request/post/put/patch/delete [Pagan Gazzard]

15.8.1 - 2020-09-08

  • Add mocha tests specific linting [Thodoris Greasidis]
  • Auto-fix lint errors with the test:fast script [Thodoris Greasidis]
  • Add linting checks back to the test script [Thodoris Greasidis]

15.8.0 - 2020-09-08

  • Add a hostapps model for fetching OS versions [Stevche Radevski]

15.7.1 - 2020-09-03

  • tests: Convert the device.getMACAddress tests to async await [Thodoris Greasidis]

15.7.0 - 2020-09-03

  • Add methods for managing organization membership tags [Thodoris Greasidis]
  • tests: Support testing tags with two word names [Thodoris Greasidis]

15.6.0 - 2020-09-03

  • Add the models.device.getMetrics method [Thodoris Greasidis]
  • Add the device metric related fields [Thodoris Greasidis]

15.5.0 - 2020-08-31

  • Add methods for retrieving organization memberships [Thodoris Greasidis]

15.4.5 - 2020-08-31

  • Remove invite by username example [Amit Solanki]

15.4.4 - 2020-08-31

  • Workaround a regression in lodash typings for throttle() [Thodoris Greasidis]

15.4.3 - 2020-08-28

  • tests: Prevent callback support tests from hanging when failing [Thodoris Greasidis]

15.4.2 - 2020-08-28

  • Add missing balena-request typings for the refreshToken method [Thodoris Greasidis]

15.4.1 - 2020-08-28

  • Combine the two device model files [Thodoris Greasidis]

15.4.0 - 2020-08-27

  • Add methods to enable, verify & disable 2fa [Thodoris Greasidis]

15.3.7 - 2020-08-27

  • Improve $orderby typing to allow [{a: 'desc'}, {b: 'asc'}] [Pagan Gazzard]

15.3.6 - 2020-08-26

  • Document how to use with pkg [Thodoris Greasidis]

15.3.5 - 2020-08-26

  • Use a more semantic parameter name for device.getDeviceSlug [Thodoris Greasidis]

15.3.4 - 2020-08-26

  • tests: Update the tests for the new maximum application name size [Thodoris Greasidis]

15.3.3 - 2020-08-21

  • typings: Fix nested $count support in the strict pine variant [Thodoris Greasidis]

15.3.2 - 2020-08-20

  • Update TypeScript to 4.0 [Thodoris Greasidis]

15.3.1 - 2020-08-13

<summary> Bump balena-request to fix breaking user's stored token on token refresh [Thodoris Greasidis] </summary>

balena-request-11.1.1 - 2020-08-13

  • Stop refreshing the token on absolute urls [Thodoris Greasidis]

15.3.0 - 2020-08-12

<summary> Update balena-pine and add custom typings for prepare/subscribe [Pagan Gazzard] </summary>

balena-pine-12.3.0 - 2020-08-12

<summary> Update pinejs-client-core to 6.6.1 [Pagan Gazzard] </summary>

pinejs-client-js-6.6.1 - 2020-08-11

  • Fix typing when id is specified to be AnyObject | undefined [Pagan Gazzard]

pinejs-client-js-6.6.0 - 2020-08-11

  • Deprecate $expand: { 'a/$count': {...} } [Pagan Gazzard]
  • Deprecate resource: 'a/$count' and update typings to reflect it [Pagan Gazzard]

pinejs-client-js-6.5.0 - 2020-08-11

  • Add options: { $count: { ... } } sugar for top level $count [Pagan Gazzard]
  • Add $expand: { a: { $count: { ... } } } sugar for $count in expands [Pagan Gazzard]

pinejs-client-js-6.4.0 - 2020-08-11

  • Improve return typing of subscribe method [Pagan Gazzard]

pinejs-client-js-6.3.0 - 2020-08-11

  • Fix Poll.on typings [Pagan Gazzard]
  • Improve return typing when id is passed to GET methods [Pagan Gazzard]
  • Remove PromiseResult type, use Promise<PromiseResultTypes> instead [Pagan Gazzard]
  • Remove PromiseObj type, use Promise<{}> instead [Pagan Gazzard]

pinejs-client-js-6.2.0 - 2020-08-10

  • Add $filter: { a: { $count: 1 } } sugar for $count in filters [Pagan Gazzard]

pinejs-client-js-6.1.2 - 2020-08-10

  • Remove redundant ParamsObj/SubscribeParamsObj types [Pagan Gazzard]

pinejs-client-js-6.1.1 - 2020-08-10

  • Make use of mapObj helper in more places [Pagan Gazzard]
  • Use Object.keys in preference to hasOwnProperty where applicable [Pagan Gazzard]

15.2.5 - 2020-08-10

  • Split the User resource & JWT interfaces [Thodoris Greasidis]

15.2.4 - 2020-08-10

  • Fix pine.get with id result type to include undefined [Thodoris Greasidis]

15.2.3 - 2020-08-08

  • Add a few missing explicit field $selects [Thodoris Greasidis]

15.2.2 - 2020-08-05

  • Convert index.js to typescript [Pagan Gazzard]
  • Convert dependent-resource.js to typescript [Pagan Gazzard]
  • Convert device.js to typescript [Pagan Gazzard]
  • Convert application.js to typescript [Pagan Gazzard]
  • Convert settings.js to typescript [Pagan Gazzard]
  • Convert logs.js to typescript [Pagan Gazzard]
  • Convert config.js to typescript [Pagan Gazzard]

15.2.1 - 2020-08-03

  • Convert majority to async/await [Pagan Gazzard]

15.2.0 - 2020-07-31

  • device: add method to update target supervisor release [Matthew McGinn]

15.1.1 - 2020-07-27

  • Deduplicate device update methods [Pagan Gazzard]

15.1.0 - 2020-07-27

<summary> Update balena-pine to add support for and make use of named keys [Pagan Gazzard] </summary>

balena-pine-12.2.0 - 2020-07-22

<summary> Update pinejs-client-core [Pagan Gazzard] </summary>

pinejs-client-js-6.1.0 - 2020-07-21

  • Add support for using named ids [Pagan Gazzard]

balena-request-11.1.0 - 2020-07-16

  • Add lazy loading for most modules [Pagan Gazzard]

15.0.3 - 2020-07-27

  • typings: Fix the PineWithSelect & related type helpers [Thodoris Greasidis]
  • typings: Use the native TypeScript Omit type helper [Thodoris Greasidis]

15.0.2 - 2020-07-22

  • Fix code snippet for initializing balena-sdk [Vipul Gupta (@vipulgupta2048)]

15.0.1 - 2020-07-15

  • Fix SupportTier/includes__SLA typing [Pagan Gazzard]

15.0.0 - 2020-07-15

  • BREAKING Export setSharedOptions & fromSharedOptions separately [Thodoris Greasidis]
  • BREAKING Export as an ES6 module [Thodoris Greasidis]
<summary> Update dependencies and switch all returned promises to native promises [Pagan Gazzard] </summary>

balena-auth-4.0.2 - 2020-07-13

  • Add .versionbot/CHANGELOG.yml for nested changelogs [Pagan Gazzard]

balena-auth-4.0.1 - 2020-07-03

  • Explicitly add tslib dependency [Pagan Gazzard]

balena-auth-4.0.0 - 2020-07-02

  • Update to balena-settings-storage 6.x [Pagan Gazzard]
  • Update target to es2015 [Pagan Gazzard]
  • Switch to native promises [Pagan Gazzard]
  • Enable strict type checking [Pagan Gazzard]
  • Specify node 10+ [Pagan Gazzard]

balena-auth-3.1.1 - 2020-07-02

  • Switch to @balena/lint for linting [Pagan Gazzard]

balena-pine-12.1.1 - 2020-07-13

  • Add .versionbot/CHANGELOG.yml for nested changelogs [Pagan Gazzard]

balena-pine-12.1.0 - 2020-07-06

  • Update balena-auth to 4.x and balena-request to 11.x [Pagan Gazzard]

balena-pine-12.0.1 - 2020-07-03

  • Use typescript import helpers [Pagan Gazzard]

balena-pine-12.0.0 - 2020-06-26

  • Stop actively supporting node 8 [Thodoris Greasidis]
  • Convert to async await [Thodoris Greasidis]
  • Add balenaCI repo.yml [Thodoris Greasidis]
  • karma.conf.js: Combine declaration & assignment of karmaConfig [Thodoris Greasidis]
  • Bump @balena/lint to v5 [Thodoris Greasidis]
  • Drop getPine() in favor of an es6 export of the BalenaPine class [Thodoris Greasidis]
  • Drop the API_PREFIX property in favor of the apiPrefix [Thodoris Greasidis]
  • Bump to pinejs-client v6 which requires es2015 & drops Bluebird promises [Thodoris Greasidis]

balena-pine-11.2.1 - 2020-06-15

  • Convert karma.conf to js [Thodoris Greasidis]
  • Bump balena-config-karma to v3 [Thodoris Greasidis]

balena-register-device-7.1.0 - 2020-07-13

  • Switch from randomstring to uuid for generating device uuids [Pagan Gazzard]

balena-register-device-7.0.1 - 2020-07-13

  • Add .versionbot/CHANGELOG.yml for nested changelogs [Pagan Gazzard]

balena-register-device-7.0.0 - 2020-07-06

  • Convert to type checked javascript [Pagan Gazzard]
  • Drop callback interface in favor of promise interface [Pagan Gazzard]
  • Switch to a named export [Pagan Gazzard]
  • Convert to typescript [Pagan Gazzard]
  • Update to typed-error 3.x [Pagan Gazzard]
  • Switch to returning native promises [Pagan Gazzard]
  • Update to balena-request 11.x [Pagan Gazzard]
  • Use typescript import helpers [Pagan Gazzard]

balena-register-device-6.1.6 - 2020-05-26

  • Export ApiError [Cameron Diver]

balena-register-device-6.1.5 - 2020-05-21

  • Convert tests to js [Thodoris Greasidis]

balena-register-device-6.1.4 - 2020-05-21

  • Install typed-error v2 [Cameron Diver]

balena-register-device-6.1.3 - 2020-05-20

  • Extend API exception to include full response object [Miguel Casqueira]

balena-register-device-6.1.2 - 2020-05-20

  • Update mocha to fix node v12 deprecation warning [Thodoris Greasidis]

balena-request-11.0.4 - 2020-07-14

  • Fix body overwriting on nodejs [Pagan Gazzard]

balena-request-11.0.3 - 2020-07-13

  • Add .versionbot/CHANGELOG.yml for nested changelogs [Pagan Gazzard]

balena-request-11.0.2 - 2020-07-06

  • Fix tslib dependency [Pagan Gazzard]

balena-request-11.0.1 - 2020-07-03

  • Fix passing baseUrl to refreshToken if the request uses an absolute url [Pagan Gazzard]

balena-request-11.0.0 - 2020-07-03

  • Convert to type checked javascript [Pagan Gazzard]
  • Switch to returning native promises [Pagan Gazzard]
  • Drop support for nodejs < 10 [Pagan Gazzard]
  • Update balena-auth to 4.x [Pagan Gazzard]
  • Remove rindle dependency [Pagan Gazzard]
  • Update fetch-ponyfill to 6.x [Pagan Gazzard]
  • Remove proxy tests as global-tunnel-ng only supports nodejs < 10.16.0 [Pagan Gazzard]
  • Switch to a named export [Pagan Gazzard]
  • Use typescript import helpers [Pagan Gazzard]
  • Bump balena-config-karma & convert karma.conf.coffee to js [Thodoris Greasidis]
  • Change the browser request timeout error to be consistent with node [Thodoris Greasidis]
  • BREAKING billing: Make the organization parameter fist & required [Thodoris Greasidis]

v14.8.0

(2020-07-15)

  • DeviceWithServiceDetails: preserve the image_install & gateway_downloads [Thodoris Greasidis]
  • typings: Deprecate DeviceWithImageInstalls in favor of the Device type [Thodoris Greasidis]

v14.7.1

(2020-07-14)

  • Fix is_private typings for device type [Stevche Radevski]

v14.7.0

(2020-07-14)

  • Add an organization parameter to all billing methods [Thodoris Greasidis]

v14.6.0

(2020-07-13)

  • typings: Add ApplicationHostedOnApplication [Thodoris Greasidis]
  • typings Add RecoveryTwoFactor [Thodoris Greasidis]

v14.5.1

(2020-07-10)

  • Tests: remove bluebird usage [Pagan Gazzard]

v14.5.0

(2020-07-09)

  • tests/integration/setup: Convert to TypeScript [Thodoris Greasidis]
  • typings/ImageInstall: Deprecate the image field [Thodoris Greasidis]
  • typings/ImageInstall: Add the installs__image field [Thodoris Greasidis]
  • typings: Add typings for the ReleaseImage [Thodoris Greasidis]
  • typings/ImageInstall: Add the missing device property [Thodoris Greasidis]
  • Convert all remaining tests away from coffeescript [Pagan Gazzard]

v14.4.2

(2020-07-09)

  • Tests: improve typing for access to private SDK os methods [Pagan Gazzard]
  • Tests: improve typing of tag helpers [Pagan Gazzard]
  • Tests: import BalenaSDK types directly [Pagan Gazzard]

v14.4.1

(2020-07-08)

  • Tests: merge multiple application deletions into a single call [Pagan Gazzard]

v14.4.0

(2020-07-08)

  • Improve typings for sdk.pine.post [Pagan Gazzard]
  • Improve typings for sdk.request [Pagan Gazzard]
  • Improve typings for models.device.getOsVersion [Pagan Gazzard]
  • Improve typings for models.device.lastOnline [Pagan Gazzard]
  • Fix typings for models.device.getMACAddresses [Pagan Gazzard]
  • Fix typings for models.device.getLocalIPAddresses [Pagan Gazzard]
  • Add typings for models.application.getDashboardUrl [Pagan Gazzard]
  • Device model: last_connectivity_event and os_version can be null [Pagan Gazzard]
  • Improve typings for models.device.getLocalModeSupport [Pagan Gazzard]

v14.3.3

(2020-07-07)

  • Minimize bluebird sugar usage [Pagan Gazzard]

v14.3.2

(2020-07-07)

  • Add type checking for tests [Pagan Gazzard]

v14.3.1

(2020-07-07)

  • Tests: cache device type lookup [Pagan Gazzard]

v14.3.0

(2020-07-07)

  • typings: Export pine variant w/ a mandatory $select on get requests [Thodoris Greasidis]

v14.2.9

(2020-07-07)

  • Remove this.skip usage as a faster workaround to afterEach skipping [Pagan Gazzard]

v14.2.8

(2020-07-06)

  • Improve internal typings by avoiding some any cases [Pagan Gazzard]

v14.2.7

(2020-07-06)

  • Include typings for all lazy loaded requires [Pagan Gazzard]

v14.2.6

(2020-07-06)

  • Simplify balena-request custom typings [Pagan Gazzard]
  • Use import type for declaration imports [Pagan Gazzard]
  • Simplify balena-pine custom typings [Pagan Gazzard]
  • Import balena-sdk type declarations via import type and not direct path [Pagan Gazzard]

v14.2.5

(2020-07-06)

  • Use typescript import helpers [Pagan Gazzard]

v14.2.4

(2020-07-03)

  • Drop dtslint in favor of plain @ts-expect-error [Thodoris Greasidis]
  • Enable strict checks for the typing tests [Thodoris Greasidis]

v14.2.3

(2020-07-03)

  • Standardize bluebird naming as Bluebird [Pagan Gazzard]

v14.2.2

(2020-07-03)

  • Avoid $ExpectType b/c of issues with TS 3.9.6 [Thodoris Greasidis]

v14.2.1

(2020-07-01)

  • model: Add build_environment_variable [Rich Bayliss]

v14.2.0

(2020-07-01)

  • Add typings for plans & subscriptions [Thodoris Greasidis]

v14.1.0

(2020-06-29)

  • Generate optional build for es2018 as well as the default es2015 [Pagan Gazzard]

v14.0.2

(2020-06-28)

  • typings: Split the DeviceState namespace types to a different file [Thodoris Greasidis]
  • typings: Split the DeviceTypeJson namespace types to a different file [Thodoris Greasidis]
  • typings: Split the SBVR model types to a different file [Thodoris Greasidis]

v14.0.1

(2020-06-15)

  • appveyor: Increase the node space size [Thodoris Greasidis]
  • Bump balena-config-karma to v3 [Thodoris Greasidis]

v14.0.0

(2020-06-11)

  • typings: Drop the has_dependent field from the Device [Thodoris Greasidis]
  • typings: Drop the app_name field from the Device [Thodoris Greasidis]
  • Bump minimum supported Typescript to v3.9.3 [Thodoris Greasidis]
  • Add tests for arbitary pine requests [Thodoris Greasidis]
  • Add methods for the organization model [Thodoris Greasidis]
  • utils: Add overloaded typing for the mergePineOptions helper [Thodoris Greasidis]
  • typings: Add a PineOptionsWithSelect variant [Thodoris Greasidis]
  • tests: Add some $selects to make the tests faster [Thodoris Greasidis]
  • typings: Add a PineOptionsWithFilter variant [Thodoris Greasidis]
  • tests: Update to work with the required $filter change [Thodoris Greasidis]
  • BREAKING Make $filter or id required in pine DELETE & PATCH [Thodoris Greasidis]
  • BREAKING Drop the apiKey constructor option [Thodoris Greasidis]
  • BREAKING typings: Drop the "For" suffix on all exported Pine typings [Thodoris Greasidis]
  • typings/pinejs-client-core: Drop the nongeneric PineOptions & PineParams [Thodoris Greasidis]
  • BREAKING typings: Change PineParams & PineOptions to be generic [Thodoris Greasidis]
  • typings/pinejs-client-core: Support AnyObject in PineOptionsFor<T> [Thodoris Greasidis]
  • typings: Use a separate OptionalNavigationResource type in the models [Thodoris Greasidis]
  • typings: Improve the NavigationResource type [Thodoris Greasidis]
  • BREAKING typings: Drop duplicate service prop from ServiceInstall [Thodoris Greasidis]
  • BREAKING Change the device_type of all models to resource references [Thodoris Greasidis]
  • Add typings for the DeviceType resource [Thodoris Greasidis]
  • BREAKING Create a DeviceTypeJson namespace with all related typings [Thodoris Greasidis]
  • BREAKING Change application and device commit to release references [Thodoris Greasidis]
  • BREAKING Require an organization when creating applications [Thodoris Greasidis]
  • Clarify that application.getAppByOwner now accepts organization handles [Thodoris Greasidis]
  • Support creating applications for a specific organization [Thodoris Greasidis]
  • Add team & team_membership resources [Thodoris Greasidis]
  • BREAKING typings: Rename ApplicationMember to ApplicationMembership [Thodoris Greasidis]
  • BREAKING Drop user.application navigation property [Thodoris Greasidis]
  • BREAKING: Change application.user to application.organization [Thodoris Greasidis]
  • Add user.organization_membership [Thodoris Greasidis]
  • Add organization & organization_membership resources [Thodoris Greasidis]
  • Use pine.upsert() for setting tags & envars [Thodoris Greasidis]
  • Add support for pine.upsert(), requires Pinejs ^10.19.1 [Thodoris Greasidis]
  • BREAKING Expect a 409 status on unique constraint errors [Thodoris Greasidis]
  • BREAKING Use the /v6 API endpoint [Thodoris Greasidis]

v13.8.0

(2020-06-10)

  • models/device: Add a getMACAddresses() method [Thodoris Greasidis]
  • typings: Add the mac_address field to the device [Thodoris Greasidis]

v13.7.0

(2020-06-09)

  • typings: Add device last_vpn_event [Tom Granot-Scalosub]

v13.6.0

(2020-06-04)

  • Switch to generating es2015 as that is already the minimum we support [Pagan Gazzard]

v13.5.0

(2020-05-18)

  • Add SDK method to invite application members [Amit Solanki]

v13.4.3

(2020-05-08)

  • README: Clarify the deprecation policy [Thodoris Greasidis]

v13.4.2

(2020-05-04)

  • Avoid unnecessary cloneDeep usage [Pagan Gazzard]

v13.4.1

(2020-05-01)

  • Avoid moment v2.25.0 that's missing published files [Thodoris Greasidis]

v13.4.0

(2020-04-30)

  • auth.isLoggedIn: Change to always confirm with the API [Thodoris Greasidis]
  • Properly handle caching for concurrent auth method calls [Thodoris Greasidis]

v13.3.8

(2020-04-29)

  • karma.conf: Convert to JavaScript [Thodoris Greasidis]
  • gulpfile: Convert to JavaScript [Thodoris Greasidis]
  • tests/util: Convert to TypeScript [Thodoris Greasidis]

v13.3.7

(2020-04-29)

  • models/os: Lazy load the deviceTypeUtils [Thodoris Greasidis]
  • models/device: Allow lazy loading balena-register-device [Thodoris Greasidis]

v13.3.6

(2020-04-28)

  • Split util function imports and lazy load them [Thodoris Greasidis]

v13.3.5

(2020-04-28)

  • Fix callback support on methods for dependent resources [Thodoris Greasidis]

v13.3.4

(2020-04-28)

  • Release: Lazy load the BuilderHelper [Thodoris Greasidis]
  • Device: Lazy load balena-register-device [Thodoris Greasidis]

v13.3.3

(2020-04-28)

  • Bump balena-register-device to v6.1.1 to send the api key as a header [Thodoris Greasidis]

v13.3.2

(2020-04-27)

  • README: Update appveyor badge to point to the new balena-sdk project [Thodoris Greasidis]

v13.3.1

(2020-04-27)

  • Stop using the Function TypeScript type [Thodoris Greasidis]
  • Fix the typings to work with upstream memoizee declarations [Thodoris Greasidis]

v13.3.0

(2020-04-24)

  • Change README to ## sections [Thodoris Greasidis]
  • Add a deprecation policy [Thodoris Greasidis]

v13.2.7

(2020-04-23)

  • Document setSharedOptions & fromSharedOptions as static methods [Thodoris Greasidis]
  • Document the exported factory function [Thodoris Greasidis]

v13.2.6

(2020-04-23)

  • Refactor api-key tests to be faster [Thodoris Greasidis]

v13.2.5

(2020-04-22)

  • Move to balena-lint v5 [Thodoris Greasidis]

v13.2.4

(2020-04-22)

  • Abstract callback support out of the method implementations [Thodoris Greasidis]

v13.2.3

(2020-04-21)

  • Fix the auth module lazy loading in device & key modules [Thodoris Greasidis]

v13.2.2

(2020-04-21)

  • Update dependencies [Pagan Gazzard]

v13.2.1

(2020-04-20)

  • Remove lodash/pick usage [Pagan Gazzard]
  • Remove lodash/omit usage [Pagan Gazzard]
  • Switch to native equivalent of lodash/without [Pagan Gazzard]

v13.2.0

(2020-04-17)

  • Add a device.getProgress convenience method [Thodoris Greasidis]

v13.1.1

(2020-04-17)

  • Update dependencies [Pagan Gazzard]

v13.1.0

(2020-04-16)

  • Add created_at typings to Application resource [Stevche Radevski]

v13.0.2

(2020-04-16)

  • Properly define the arguments of setSharedOptions in the docs [Thodoris Greasidis]
  • Fix the docs fromSharedOptions to not accept any argument [Thodoris Greasidis]

v13.0.1

(2020-04-13)

  • tests: Fix the mock image install incosnistencies [Thodoris Greasidis]

v13.0.0

(2020-04-10)

  • BREAKING: Change the device.getStatus() to expect a uuid or id arg [Thodoris Greasidis]
  • BREAKING Drop the imageMakerUrl constructor option [Thodoris Greasidis]
  • BREAKING typings: Drop Application properties not part of the model [Thodoris Greasidis]
  • BREAKING: Stop actively supporting node 6 & 8 [Thodoris Greasidis]
  • Bump minimum supported Typescript to v3.8.2 [Thodoris Greasidis]
  • Make sure the config & os tests start unauthenticated [Thodoris Greasidis]
  • BREAKING Update to balena-pine 11.0.0 [Thodoris Greasidis]

v12.33.0

(2020-04-10)

  • Fix the url encoded error message expectations [Thodoris Greasidis]
  • osUpdate: add missing HUP status typings [Matthew McGinn]
  • osUpdate: remove deprecated update_done HUP status from typings [Matthew McGinn]

v12.32.0

(2020-04-08)

  • Add is_archived to Application typings [Stevche Radevski]

v12.31.13

(2020-04-07)

  • Improve application typings [Pagan Gazzard]
  • Improve config typings [Pagan Gazzard]
  • Improve device typings [Pagan Gazzard]
  • Improve settings typings [Pagan Gazzard]
  • Improve logs typings [Pagan Gazzard]

v12.31.12

(2020-04-06)

  • Add lodash back to the import blacklist [Pagan Gazzard]

v12.31.11

(2020-04-06)

  • Convert lib/balena.coffee to javascript [Pagan Gazzard]

v12.31.10

(2020-04-06)

  • Convert lib/models/device.coffee to javascript [Pagan Gazzard]

v12.31.9

(2020-04-05)

  • Remove promise wrapping for private ensureSupervisorCompatibility [Pagan Gazzard]

v12.31.8

(2020-04-04)

  • Convert lib/models/application.coffee to javascript [Pagan Gazzard]

v12.31.7

(2020-04-04)

  • Stop passing unused ResourceNotFoundError parameter [Pagan Gazzard]

v12.31.6

(2020-04-04)

  • Convert lib/models/config.coffee to javascript [Pagan Gazzard]
  • Convert lib/logs.coffee to javascript [Pagan Gazzard]
  • Convert lib/settings.coffee to javascript [Pagan Gazzard]

v12.31.5

(2020-04-04)

  • util/index: Refactor & fix convertExpandToObject typings [Thodoris Greasidis]

v12.31.4

(2020-04-03)

  • Switch to using native version of defaults [Pagan Gazzard]
  • Switch to using native some [Pagan Gazzard]
  • Switch to using native map [Pagan Gazzard]
  • Switch to native number type check [Pagan Gazzard]
  • Switch to using native find [Pagan Gazzard]
  • Switch to using native version of isEmpty [Pagan Gazzard]
  • Switch to using native version of size [Pagan Gazzard]
  • Switch to using native version of reject [Pagan Gazzard]
  • Switch to using native version of first [Pagan Gazzard]
  • Switch to using native includes [Pagan Gazzard]
  • Convert final isString to a native type check [Pagan Gazzard]
  • Switch to using native Object.assign [Pagan Gazzard]

v12.31.3

(2020-04-03)

  • Convert lib/util/dependent-resource.coffee to javascript [Pagan Gazzard]

v12.31.2

(2020-04-02)

  • Use native function type check [Pagan Gazzard]
  • Use native array type check [Pagan Gazzard]
  • Use native string type check [Pagan Gazzard]

v12.31.1

(2020-03-31)

  • Update to balena-lint 4.x [Pagan Gazzard]

v12.31.0

(2020-03-26)

  • Add is_invalidated field typings to the Release resource [Stevche Radevski]

v12.30.6

(2020-03-26)

  • Convert lib/auth to TypeScript [Thodoris Greasidis]
  • Convert lib/2fa to TypeScript [Thodoris Greasidis]

v12.30.5

(2020-03-26)

  • Convert the Key model to TypeScript [Thodoris Greasidis]
  • Fix the key model documentation & typings [Thodoris Greasidis]

v12.30.4

(2020-03-25)

  • Convert the Release model to TypeScript [Thodoris Greasidis]
  • Bump balena-errors to 4.3.0 [Thodoris Greasidis]
  • Fix the release.getWithImageDetails typings [Thodoris Greasidis]

v12.30.3

(2020-03-25)

  • device.getStatus: Suggest selecting the overall_status field directly [Thodoris Greasidis]
  • Better document the device.getStatus() method [Thodoris Greasidis]

v12.30.2

(2020-03-24)

  • Document the device overall_status and overall_progress fields [Thodoris Greasidis]
  • Add device overall_status & overall_progress tests [Thodoris Greasidis]

v12.30.1

(2020-03-23)

  • Make the unique application name test less strict [Thodoris Greasidis]

12.30.0 - 2020-03-10

  • Balena-action-hup-utils: bump to 4.0.0 to allow dev upgrades [Matthew McGinn]

12.29.3 - 2020-03-09

  • Change the error filters to functions [Thodoris Greasidis]

12.29.2 - 2020-03-09

  • Switch to a team for the CODEOWNERS file [Thodoris Greasidis]

12.29.1 - 2020-03-09

  • Tests: Improve the dependent application test case [Thodoris Greasidis]

12.29.0 - 2020-03-09

  • Typings: Add the contract field to the Image [Thodoris Greasidis]
  • Typings: Add is_of__actor on the ApiKey [Thodoris Greasidis]
  • Typings: Add is_public to the application model [Thodoris Greasidis]

12.28.2 - 2020-03-06

  • Unify the way that the models get exported [Thodoris Greasidis]

12.28.1 - 2020-03-05

  • Convert OS model to typescript [Stevche Radevski]

12.28.0 - 2020-03-04

  • Typings: Add DeviceType logoUrl property [Thodoris Greasidis]

12.27.1 - 2020-03-04

  • Update dependencies [Pagan Gazzard]

12.27.0 - 2020-03-03

  • Add missing deviceType typings to ImgConfigOptions [Stevche Radevski]

12.26.7 - 2020-02-29

  • Lazy-load the models props [Pagan Gazzard]
  • Lazy-load the sdk template props [Pagan Gazzard]

12.26.6 - 2020-02-28

  • Remove unnecessary lodash/forEach usage [Pagan Gazzard]

12.26.5 - 2020-02-28

  • Convert the billing model to typescript [Stevche Radevski]

12.26.4 - 2020-02-27

  • Convert image model to typescript [Stevche Radevski]

12.26.3 - 2020-02-26

  • Update dtslint to v3.1.0 [Thodoris Greasidis]

12.26.2 - 2020-02-26

  • Typings_tests/pine-options: Update to work with TypeScript v3.8 [Thodoris Greasidis]
  • Bump TypeScript version to ^3.8.2, so that's used in tests [Thodoris Greasidis]

12.26.1 - 2020-02-26

  • Application: Fix linter warning [Thodoris Greasidis]

12.26.0 - 2020-02-24

  • Add overall_progress typings to device model [Stevche Radevski]

12.25.1 - 2020-02-21

  • Convert service model to typescript [Stevche Radevski]

12.25.0 - 2020-02-19

  • Add device statuses enum to device resource [Stevche Radevski]
  • Add device status enum and typings [Stevche Radevski]

12.24.4 - 2020-02-17

  • Fix a test case name typo for auth.whoami() [Thodoris Greasidis]

12.24.3 - 2020-02-17

  • Auth.getEmail: Fix confusing call expression [Thodoris Greasidis]

12.24.2 - 2020-02-17

  • Fix concealing network errors in auth.whoami() and auth.isLoggedIn() [Thodoris Greasidis]

12.24.1 - 2020-02-15

  • .gitignore: .idea directory generated by JetBrains IDE [Thomas Manning]

12.24.0 - 2020-02-14

  • Update application.getDashboardUrl example with application.get call to get application id [Thomas Manning]
  • Added getDashboardUrl(id) to application model [Thomas Manning]

12.23.9 - 2020-02-12

  • Appveyor: Run node & browser tests in parallel [Thodoris Greasidis]

12.23.8 - 2020-02-11

  • Appveyor: Set to test against node 8 [Thodoris Greasidis]

12.23.7 - 2020-02-07

  • Update balena-register-device to 6.0.1 [Pagan Gazzard]

12.23.6 - 2020-02-07

  • Re-enable balenaCI autoRebase [Thodoris Greasidis]

12.23.5 - 2020-02-07

  • Fix the tag tests failing b/c of public apps [Thodoris Greasidis]
  • Fix the dependent app test randomly failing b/c of public apps [Thodoris Greasidis]

12.23.4 - 2020-02-07

  • Fix the build failing on node v12 [Thodoris Greasidis]

12.23.3 - 2020-02-06

  • Disable balenaCI auto rebase [Thodoris Greasidis]

12.23.2 - 2020-02-06

  • Switch to resin-lint for linting [Pagan Gazzard]

12.23.1 - 2020-02-06

  • Remove unused code [Pagan Gazzard]

12.23.0 - 2020-01-28

  • App.getWithDeviceServiceDetails: Add the release commit in the services [Thodoris Greasidis]
  • Device.getWithServiceDetails: Remove unused 'id' selection [Thodoris Greasidis]

12.22.0 - 2020-01-27

  • Allow retrieving applications by application case insensitive slug [Thodoris Greasidis]

12.21.3 - 2020-01-25

  • Release.createFromUrl: Fix the non tar url error handling [Thodoris Greasidis]

12.21.2 - 2020-01-24

  • Convert some of the tests to TypeScript [Thodoris Greasidis]
  • Properly type billing.downloadInvoice result [Thodoris Greasidis]
  • Properly type os.download result [Thodoris Greasidis]
  • Add typings for balena-request stream [Thodoris Greasidis]

12.21.1 - 2020-01-24

  • Improve logs typings [Pagan Gazzard]

12.21.0 - 2020-01-22

  • Change EXPERIMENTAL device type name normalization to NEW [Thodoris Greasidis]
  • Remove .only from tests [Thodoris Greasidis]
  • Update dependencies [Pagan Gazzard]

12.20.4 - 2020-01-21

  • Unpin Bluebird typings version [Thodoris Greasidis]
  • Fix device.getWithServiceDetails to properly handle all service names [Thodoris Greasidis]

12.20.3 - 2020-01-16

  • Update dependencies [Pagan Gazzard]

12.20.2 - 2020-01-15

  • Update device type typings to match the returned data [Stevche Radevski]

12.20.1 - 2020-01-13

  • Drop the internal common-types in favor of the exported typings [Thodoris Greasidis]
  • Typings: Add missing props in DeviceType [Thodoris Greasidis]

12.20.0 - 2019-12-26

  • Add missing typings to device type options [Stevche Radevski]

12.19.0 - 2019-12-11

  • Typings: Add is_host field to the Application [Thodoris Greasidis]

12.18.0 - 2019-12-03

  • Add the SDK's version in the request headers [Thodoris Greasidis]
  • Package.json: Add test:fast variant [Thodoris Greasidis]
  • Add a version field on the SDK instance [Thodoris Greasidis]
  • Remove redundant coffee rebuild on npm run build [Thodoris Greasidis]

12.17.6 - 2019-11-29

  • Typings: Add more missing BillingPlanInfo fields & fix inaccurate one [Thodoris Greasidis]

12.17.5 - 2019-11-29

  • Typings: Add missing BillingPlanInfo fields [Thodoris Greasidis]

12.17.4 - 2019-11-28

  • Split the startOsUpdate method to improve testability [Stevche Radevski]

12.17.3 - 2019-11-28

  • Tests: Use RPi2 for the device.getDisplayName() tests [Thodoris Greasidis]

12.17.2 - 2019-11-26

  • Tighten the types of the JWT's social_service_account entry [Pagan Gazzard]

12.17.1 - 2019-11-24

  • Typings: Add device startService, stopService & restartService [Thodoris Greasidis]
  • Add missing bracket in application.create() example [Thodoris Greasidis]

12.17.0 - 2019-11-13

  • Typings: Remove no longer existing fields from the Release [Thodoris Greasidis]
  • Typings: Add the api_heartbeat_state field to the Device resource [Thodoris Greasidis]

12.16.4 - 2019-11-06

  • Add typings tests for the pine options [Thodoris Greasidis]

12.16.3 - 2019-10-31

  • Make callbacks optional for api key model [Stevche Radevski]
  • Convert utils index Coffeescript to Typescript [Stevche Radevski]
  • Move utils index file from .coffee to .ts [Stevche Radevski]

12.16.2 - 2019-10-31

  • Update blink to the newer api for device actions [Pagan Gazzard]

12.16.1 - 2019-10-30

  • Test: Fix os.getConfig tests w/ invalid version [Thodoris Greasidis]
  • Tests/device: Update the expected RPi1 DT display name [Thodoris Greasidis]
  • Tests/logs: Improve the logged details when the lengths do not match [Thodoris Greasidis]

12.16.0 - 2019-10-16

  • Support downloading unconfigured private device type images [Thodoris Greasidis]

12.15.3 - 2019-10-15

  • Fix running the builder tests on a different balena deployment [Thodoris Greasidis]

12.15.2 - 2019-10-14

  • Drop promise-memoize in favor of memoizee [Thodoris Greasidis]

12.15.1 - 2019-10-14

  • .lintstagedrc: Auto commit the prettier & tslint changes [Thodoris Greasidis]
  • Bump husky lint-staged versions [Thodoris Greasidis]

12.15.0 - 2019-10-14

  • Support retrieving private device types [Thodoris Greasidis]
  • Clear the device type caches when the user changes [Thodoris Greasidis]
  • Use the same auth instance in all modules of the sdk instance [Thodoris Greasidis]
  • Models/application: Drop unused auth module import [Thodoris Greasidis]
  • Unify the caching for all device type endpoints [Thodoris Greasidis]

12.14.0 - 2019-10-07

  • Add release.createFromUrl method [Thodoris Greasidis]

12.13.0 - 2019-10-07

  • Optimize the app & device methods that fill service details [Thodoris Greasidis]

12.12.1 - 2019-10-01

  • Convert the device service details utils to TypeScript [Thodoris Greasidis]

12.12.0 - 2019-09-28

  • Deprecate the imageMakerUrl constructor option [Thodoris Greasidis]
  • Drop the image maker helper [Thodoris Greasidis]
  • Use the cloud API endpoint for downloading unconfigured images [Thodoris Greasidis]

12.11.1 - 2019-09-25

  • Tests/config: Update the mixpanelToken expected value [Thodoris Greasidis]

12.11.0 - 2019-09-19

  • Allow mixing armv7 & aarch64 devices in RPi 1 / zero apps [Thodoris Greasidis]

12.10.2 - 2019-09-18

  • Revert "tests/logs.spec: Increase the delay of logs.subscribe()" [Thodoris Greasidis]

12.10.1 - 2019-09-17

  • Tests/logs.spec: Increase the delay of logs.subscribe() [Thodoris Greasidis]
  • Tests/logs.spec: Refactor to use the same app for all test cases [Thodoris Greasidis]
  • Typings/balena-request: Add the missing sendToken option [Thodoris Greasidis]

12.10.0 - 2019-09-02

  • Add local mode related methods [Thodoris Greasidis]

12.9.0 - 2019-08-21

  • Add typings & docs for the captcha parameters [Thodoris Greasidis]

12.8.0 - 2019-07-31

  • Allow moving aarch64 devices to armv7hf applications [Thodoris Greasidis]
  • Add os.isArchitectureCompatibleWith method [Thodoris Greasidis]

12.7.1 - 2019-07-30

  • Typings: Fix return type of os.getMaxSatisfyingVersion [Thodoris Greasidis]
  • Typings: Fix return type of device.getDisplayName & device.getDeviceSlug [Thodoris Greasidis]

12.7.0 - 2019-07-15

  • Support retrieving releases & managing release tags by commit [Thodoris Greasidis]

12.6.0 - 2019-07-04

  • Rename "currently online" to "online" for device lastOnline status [Stevche Radevski]

12.5.0 - 2019-06-26

  • Pinejs-client-code.d.ts: Restrict the selectable & expandable properties [Thodoris Greasidis]

12.4.2 - 2019-06-25

  • Docs: fix up broken self-referential links [Matthew McGinn]

12.4.1 - 2019-06-25

  • Add machine-readable changelog [Gergely Imreh]

12.4.0 - 2019-06-24

  • Upgrade hup-action-utils to 3.0.0 [Gergely Imreh]

12.3.0 - 2019-06-24

  • Upgrade balena-hup-action-utils to 2.0.0 [Gergely Imreh]

12.2.0 - 2019-06-21

  • Fully type nested $expands & improve nested $filter checks [Thodoris Greasidis]

12.1.4 - 2019-06-21

  • Util/device-os-version: Make compatible w/ newer typings [Thodoris Greasidis]

12.1.3 - 2019-06-20

  • Normalize Release.contains__image typings [Thodoris Greasidis]

12.1.2 - 2019-06-10

  • Test the typings against the min TS supported version [Thodoris Greasidis]
  • Fix downstream typing errors due to Dictionary helper [Thodoris Greasidis]

12.1.1 - 2019-06-10

  • Fix Release "getLatestByApplication" typings [Stevche Radevski]

12.1.0 - 2019-06-07

  • Typings: Add is_host_os to the application type model [Thodoris Greasidis]

12.0.1 - 2019-06-07

  • Fix the billing.updateBillingInfo tests [Thodoris Greasidis]

12.0.0 - 2019-06-05

  • BREAKING Drop the commit from application ServiceDetail results [Thodoris Greasidis]
  • GetCurrentServiceDetailsPineOptions: Drop $tolower to make it faster [Thodoris Greasidis]
  • Util/device-os-version: Convert to TypeScript [Thodoris Greasidis]
  • BREAKING: Drop resin-device-status in favor of balena-device-status [Thodoris Greasidis]
  • Util: Create a generic upsert pine helper method [Thodoris Greasidis]
  • BREAKING Drop pine 6 emulated upsert logic on dependent resources [Thodoris Greasidis]
  • Use more up-to-date Omit typings [Thodoris Greasidis]
  • Fully type the body of post & patch requests [Thodoris Greasidis]
  • Upgrade Typescript to v3.4.5 [Thodoris Greasidis]

11.18.2 - 2019-06-03

  • Temporarily skip the auth.register() tests [Thodoris Greasidis]

11.18.1 - 2019-06-03

  • Fix device.getStatus() return type typings [Thodoris Greasidis]

11.18.0 - 2019-06-03

  • Add device.getOsVersion() that returns the complete os release version [Thodoris Greasidis]

11.17.1 - 2019-05-21

  • Application.getAll(): Drop unnecessary getUserId() call [Thodoris Greasidis]

11.17.0 - 2019-05-14

  • Add caching to requests to the device types endpoint [Thodoris Greasidis]
  • Use the open-balena-api endpoints for device type & version info [Thodoris Greasidis]

11.16.1 - 2019-05-14

  • Drop osVersionRCompare tests [Thodoris Greasidis]

11.16.0 - 2019-05-08

  • Use balena-semver insteat of the custom osVersionRCompare [Thodoris Greasidis]

11.15.0 - 2019-05-08

  • Bump balena-hup-action-utils to remove resin-semver child dependency [Thodoris Greasidis]
  • Upgrade resin-semver to balena-semver [Thodoris Greasidis]

11.14.3 - 2019-05-03

  • Tests: Bump npm to v6 on travis & appveyor to make npm i faster [Thodoris Greasidis]
  • Tests: Batch device tests re-creating a multicontainer app [Thodoris Greasidis]
  • Tests: Batch tag test cases, to make them faster [Thodoris Greasidis]
  • Fix envvar getAllByX tests throwing on missing envvars [Thodoris Greasidis]
  • Tests: Batch test case states, to make the tests faster [Thodoris Greasidis]

11.14.2 - 2019-04-25

  • Fix the tests for pine translated resources [Thodoris Greasidis]

11.14.1 - 2019-04-22

  • Fix getSupportedVersions tests when using unstable sorting [Thodoris Greasidis]
  • Improve the verbosity of os.getSupportedVersions tests [Thodoris Greasidis]

11.14.0 - 2019-04-13

  • Diagnostics: add getSupervisorTargetState support [Matthew McGinn]

11.13.0 - 2019-04-13

  • Use balena-register-device instead of resin-register-device [Thodoris Greasidis]

11.12.0 - 2019-04-13

  • Add "build_log" field to "Release" model typings [Stevche Radevski]

11.11.2 - 2019-04-11

  • Tests: Add a missing the orderby on a pine request [Thodoris Greasidis]

11.11.1 - 2019-04-10

  • Remove @todos from the generated docs [Thodoris Greasidis]

11.11.0 - 2019-04-02

  • Host os updates: vendor latest utils with new device types [Gergely Imreh]

11.10.0 - 2019-03-20

  • Add getSupervisorState device method [Matthew McGinn]

11.9.1 - 2019-03-19

  • Add GitHub CODEOWNERS & issue & PR TEMPLATE files [Thodoris Greasidis]
  • README: Add note about using .only & .skip [Thodoris Greasidis]

11.9.0 - 2019-03-18

  • Add OS update methods [Thodoris Greasidis]
  • Add generic result typings for balena-request send() [Thodoris Greasidis]

11.8.0 - 2019-03-05

  • Add community to the device type typings [Thodoris Greasidis]
  • Add private to the device type typings [Thodoris Greasidis]

11.7.1 - 2019-03-05

  • Pin @types/lodash to 4.14.121 as the last TS 2.6 compatible release [Thodoris Greasidis]

11.7.0 - 2019-02-07

  • Device: Add lock override methods [Kakhaber]

11.6.4 - 2019-02-04

  • Fix incorrect use of Promise.props [Pagan Gazzard]

11.6.3 - 2019-01-29

  • Import lodash methods independently to reduce bundle size [Thodoris Greasidis]

11.6.2 - 2019-01-21

  • Lazy-load the sdk code, so only setting shared options can be faster [Pagan Gazzard]

11.6.1 - 2019-01-18

  • Tests/tags: Enable skipped test about setting io.balena tags [Thodoris Greasidis]

11.6.0 - 2019-01-17

  • Add missing typings for Image compared to the SBVR definition [Stevche Radevski]

11.5.0 - 2019-01-16

  • Support tags on the open-balena-api [Thodoris Greasidis]

11.4.0 - 2019-01-10

  • Application.spec: Added test cases for apps with service details [Kakhaber]

11.3.0 - 2018-12-27

  • Sdk.models.application: getAllWithDeviceServiceDetails method added [Kakhaber]

11.2.1 - 2018-12-10

  • Tests: Update the latest raspberry-pi v1 OS release [Kakhaber]

11.2.0 - 2018-11-19

  • Typings: Make base types valid as Filter array values [Thodoris Greasidis]
  • Extend filter typings to include more comparator functions [Thodoris Greasidis]

11.1.1 - 2018-11-15

  • Tests/config: Fix PubNub key tests now after we stop using it [Thodoris Greasidis]

v11.1.0 - 2018-11-01

  • Add release tracking methods [Thodoris Greasidis]
  • Tests/integration/setup: Fix release creation race condition [Thodoris Greasidis]

v11.0.0 - 2018-10-29

  • Typings: Add typings for the application_membership_role resource [Thodoris Greasidis]
  • Use the v5 api endpoint [Thodoris Greasidis]
  • Typings: Drop application.git_repository [Thodoris Greasidis]
  • App.getAppByOwner: Use the slug for filtering [Thodoris Greasidis]
  • Typings: Add application.slug [Thodoris Greasidis]
  • Rename everything 'resin' in the SDK to 'balena' [Tim Perry]
  • Application.getAll: Use the my_application endpoint [Thodoris Greasidis]
  • Use the Opensource API endpoints for fetching the device types [Thodoris Greasidis]

v10.1.1 - 2018-10-29

  • Print a deprecation warning message when using the unrenamed SDK [Tim Perry]

v10.1.0 - 2018-10-26

  • Tests: Replace eventually.match checks to work in newer chai version [Thodoris Greasidis]
  • Tests: Convert image spec to TypeScript [Thodoris Greasidis]
  • Tests: Add support for TypeScript test cases [Thodoris Greasidis]
  • Chore: Upgrade to balena-config-karma to v2.3.1 to support TS tests [Thodoris Greasidis]

v10.0.9 - 2018-10-24

  • Application.spec: Fix failing app creation test w/ too short name [Thodoris Greasidis]

v10.0.8 - 2018-09-27

  • Chore: Rely only on ResinCI for publishing to npm [Thodoris Greasidis]
  • Chore: Do not run tests on prepack, to be compliant with resinCI [Thodoris Greasidis]
  • Tests-billing: Update paid billing tests for the dynamic billing era [Thodoris Greasidis]

v10.0.7 - 2018-08-20

  • Change name and logic of normalizeAuthError method #566 [amdomanska]
  • Report authentication errors more accurately #566 [Tim Perry]

v10.0.6 - 2018-08-17

  • Add support for 'all' in logs requests #556 [Tim Perry]

v10.0.5 - 2018-08-17

  • Typings: Allow numeric parameters to models.application.has() #570 [Thodoris Greasidis]
  • Update logs tests to match the new API subscribe behaviour #570 [Tim Perry]

v10.0.4 - 2018-08-10

  • Update test command in readme #565 [Aga Domanska]

v10.0.3 - 2018-08-09

  • Fix bug in log stream setup error reporting #560 [Tim Perry]

v10.0.2 - 2018-08-07

  • Typings: Properly type User to Application navigation #562 [Thodoris Greasidis]

v10.0.1 - 2018-08-06

  • Restore disabled key generation tests for not found app/device #558 [Thodoris Greasidis]

v10.0.0 - 2018-08-02

  • BREAKING: Remove sdk.models.environmentVariables #554 [Tim Perry]
  • Typings: Update to be compatible with TS 2.9 #554 [Thodoris Greasidis]
  • Mark application.generateApiKey as deprecated #554 [Tim Perry]
  • Support device service var overrides as models.device.serviceVar #554 [Tim Perry]
  • Support service variables as models.service.var #554 [Tim Perry]
  • Support device environment variables as models.device.envVar #554 [Tim Perry]
  • Support device config variables as models.device.configVar #554 [Tim Perry]
  • Support application environment vars as models.application.envVar #554 [Tim Perry]
  • Support application config variables as models.application.configVar #554 [Tim Perry]
  • Document getConfig's limitations when using API keys #554 [Tim Perry]
  • BREAKING: The version option in os.getConfig() is now required #554 [Tim Perry]
  • Allow moving devices to applications of the same arch type #554 [Thodoris Greasidis]
  • Add transitional support for the name field on app & device env vars #554 [Thodoris Greasidis]
  • Add device.start/stop/restartService methods #554 [Tim Perry]
  • Deprecate device.stop/startApplication & getApplicationInfo #554 [Tim Perry]
  • BREAKING: Remove (previously deprecated) application.getById #554 [Tim Perry]
  • BREAKING: Remove device.enable/disableTcpPing #554 [Tim Perry]
  • Add new properties to InvoiceInfo interface #554 [Dimitrios Lytras]
  • Add support for release tags as models.release.tags #554 [Thodoris Greasidis]
  • BREAKING: Return collaborator apps with models.applications.getAll #554 [Cameron Diver]
  • BREAKING: Properly type resin-request to return Bluebird Promises #554 [Thodoris Greasidis]
  • BREAKING: Update to resin-pine 7. Options are now $-prefixed ($filter) #554 [Tim Perry]
  • BREAKING: Remove config.getMixpanelToken & config.getPubNubKeys #554 [Tim Perry]
  • Add getAllByApplication lookup for services #554 [Tim Perry]
  • BREAKING: Change device.name to device.device_name everywhere #554 [Tim Perry]
  • Add models.image methods to look up individual image builds #554 [Tim Perry]
  • Add release.getWithImageDetails to easily get full release details #554 [Tim Perry]
  • BREAKING: Change models.build to models.release #554 [Tim Perry]
  • Create device.getWithServiceDetails(), to show multicontainer state #554 [Tim Perry]
  • BREAKING: Move to API v4 ('multicontainer') #554 [Tim Perry]

v9.0.4 - 2018-07-20

  • Add logs history & subscribe options to the TS typings #549 [Tim Perry]

v9.0.3 - 2018-07-20

  • Narrow the LogMessage typings to match the new API format #548 [Tim Perry]
  • Support the count option in logs.subscribe #548 [Tim Perry]

v9.0.2 - 2018-07-18

  • Use a new npm token to fix travis deploys #545 [Thodoris Greasidis]

v9.0.1 - 2018-07-18

  • Pin bluebird typings to the latest working version #543 [Thodoris Greasidis]

v9.0.0 - 2018-07-09

  • Resin.logs.subscribe() now uses the API's streaming endpoint #529 [Ariel Flesler]
  • Resin.logs.history() now uses the new API's custom endpoint #529 [Ariel Flesler]
  • BREAKING: Remove log clearing methods (logs.clear & logs.historySinceClear) #529 [Ariel Flesler]

v8.2.4 - 2018-07-09

  • Print a 'please update' warning if any legacy logs methods are used, as they'll soon stop working #537 [Tim Perry]

v8.2.3 - 2018-07-02

  • Upgrade uglify & include (now-supported) streaming dependencies #534 [Tim Perry]

v8.2.2 - 2018-06-25

  • Disable half the builds (node 8 on appveyor, 6 on travis) to reduce API load #528 [Tim Perry]
  • Delete an outdated test #528 [Ariel Flesler]
  • Mark resin.logs.clear() & resin.logs.historySinceClear() as deprecated #528 [Ariel Flesler]

v8.2.1 - 2018-05-09

  • Fix ResourceNotFound detection on tag upserts for newer pine #503 [Thodoris Greasidis]

v8.2.0 - 2018-02-14

  • Include createApiKey in type definitions #470 [MoranF]

v8.1.5 - 2018-02-14

  • Make small corrections to typings for device.register #472 [Tim Perry]

v8.1.4 - 2018-02-13

  • Update tests to stop using various recently removed device types #473 [Tim Perry]

v8.1.3 - 2018-01-29

  • Fix bug when merging expand options #459 [Lucian Buzzo]

v8.1.2 - 2018-01-26

  • Update resin-register-device to ^5.0.0 #466 [Alexis Svinartchouk]

v8.1.1 - 2018-01-18

  • Deprecate passing an api key to the SDK constructor #460 [Tim Perry]

v8.1.0 - 2018-01-18

  • Export a method for generating a new API key #457 [MoranF]

v8.0.3 - 2018-01-17

  • Never internally select:[], since that not valid #461 [Tim Perry]

v8.0.2 - 2018-01-11

  • Add typings for application info #455 [Tim Perry]
  • Ensure options params are optional in the typings #455 [Tim Perry]
  • Ensure optional properties are included in log message types #455 [Tim Perry]

v8.0.1 - 2018-01-10

  • Upgrade typescript to 2.6 #454 [Tim Perry]

v8.0.0 - 2018-01-08

  • BREAKING: Stop exposing sdk.token object. #449 [MoranF]
  • Change the getDashboardUrl to use the device UUID #449 [Thodoris Greasidis]

v7.2.4 - 2018-01-05

  • Fix tag updating when the build get's minified #451 [Thodoris Greasidis]

v7.2.3 - 2017-12-22

  • Include resin-request typings too #448 [Tim Perry]
  • Expand the type definitions further to cover all remaining methods #448 [Tim Perry]

v7.2.2 - 2017-12-21

  • Prettify on build, to help run it locally, and ensure it's caught in CI #446 [Tim Perry]

v7.2.1 - 2017-12-20

  • Make sure types are published correctly #447 [Tim Perry]
  • Type lots of extra previously untyped methods & features #447 [Tim Perry]

v7.2.0 - 2017-12-19

  • Include SDK typescript types in the SDK itself #445 [Tim Perry]

v7.1.0 - 2017-11-29

  • Add Application & Device Tag methods #433 [Thodoris Greasidis]

v7.0.3 - 2017-11-29

  • Start using Typescript #438 [Thodoris Greasidis]

v7.0.2 - 2017-11-28

  • Stop requiring tests to be configured with the test user id #437 [Tim Perry]
  • Ensure browser console.logs appear in test output, to help debugging #437 [Tim Perry]

v7.0.1 - 2017-10-17

  • Ensure os.getMaxSatisfyingVersion returns exact results for exact matches #423 [Tim Perry]

v7.0.0 - 2017-10-12

  • BREAKING: Remove device.ensureSupervisorCompatibility - use semver directly instead #420 [Tim Perry]
  • Fix breaking bugs in device.enable/disableTcpPing #420 [Tim Perry]
  • Make device.update options optional #420 [Tim Perry]
  • BREAKING: Upgrade to API v3. Main change is that all relationships & result properties now include verbs (e.g. device.application is now device.belongs_to__application). #420 [Tim Perry]
  • BREAKING: Tie the SDK to a specific API version (removing apiVersion option) #420 [Tim Perry]
  • BREAKING: Stop actively supporting node 4. #420 [Tim Perry]
  • Change device registration to use a provisioning key #420 [Tim Perry]
  • BREAKING: Remove (already deprecated) models.application.getApiKey() #420 [Tim Perry]
  • BREAKING: Rename getAppWithOwner to getAppByOwner #420 [Tim Perry]
  • BREAKING: Don't allow creating applications with discontinued device types #420 [Tim Perry]
  • Make device.move throw ResinInvalidDeviceType for incompatible device types (not just Error) #420 [Tim Perry]
  • BREAKING: Don't expand relationships by default. Pass { expand: '...' } options to opt in instead. #420 [Tim Perry]
  • BREAKING: Remove device.application_name and device.dashboard_url #420 [Tim Perry]
  • BREAKING: Remove application.online_devices and application.device_length #420 [Tim Perry]

v6.15.0 - 2017-10-12

  • Add application.generateProvisioningKey() #419 [Tim Perry]

v6.14.8 - 2017-10-06

  • Stop requests that don't need auth from failing if you have an invalid token #414 [Tim Perry]

v6.14.7 - 2017-09-29

  • Change GLOBAL to global to avoid deprecation warning with shared options #406 [Tim Perry]

v6.14.6 - 2017-09-28

  • Ensure that npm published files are always built afresh first #404 [Tim Perry]

v6.14.5 - 2017-09-27

  • Explicitly include build output in packaged releases #403 [Tim Perry]

v6.14.4 - 2017-09-26

  • Uncommit (though still publish) generated browser files #401 [Tim Perry]

v6.14.3 - 2017-09-26

  • Fix command PING to work properly #387 [Horia Delicoti]

v6.14.2 - 2017-09-21

  • Improve performance by select only the fields required where possible #396 [Tim Perry]

v6.14.1 - 2017-09-18

  • Update tests to use v2 instead of ewa #360 [Pagan Gazzard]

v6.14.0 - 2017-09-12

  • Add lastOnline() method to device model #373 [Lucian Buzzo]

v6.13.0 - 2017-09-12

  • Add methods for generating an sdk instance using shared options #370 [Lucian Buzzo]

v6.12.1 - 2017-09-11

  • Update to resin-errors v2.9.0 #386 [Thodoris Greasidis]

v6.12.0 - 2017-09-08

  • Add reboot, shutdown and purge methods to application model and throw ResinSupervisorLockedError #379 [MoranF]

v6.11.1 - 2017-09-06

  • Change the Free tier plan title to Personal #375 [Thodoris Greasidis]

v6.11.0 - 2017-09-06

  • Detect Resin OS v1.0.0-pre devices and fill the os_version field #368 [Thodoris Greasidis]

v6.10.1 - 2017-09-06

  • Limit AppVeyor on npm v5.3 #381 [Thodoris Greasidis]

v6.10.0 - 2017-08-31

  • Expose resin-errors directly from the SDK as .errors #366 [Tim Perry]

v6.9.0 - 2017-08-11

  • Add function to allow looking up app based on name and owner username #352 [Cameron Diver]

v6.8.0 - 2017-08-01

  • Add self-billing related methods [Thodoris Greasidis]

v6.7.1 - 2017-07-27

  • Fix keys test after API update [Thodoris Greasidis]

v6.7.0 - 2017-07-20

  • Add the source property to builds [Thodoris Greasidis]

v6.6.1 - 2017-07-10

  • Validate env var names [Tim Perry]

v6.6.0 - 2017-07-05

Added

  • A new method models.application.grantSupportAccess that allows resin.io support staff to access all devices in an application.
  • A new method models.application.revokeSupportAccess that resin.io support staff access on all devices in an application.
  • A new method models.device.grantSupportAccess that allows resin.io support staff to access a device.
  • A new method models.device.revokeSupportAccess that revokes resin.io support staff access to a device.

v6.5.0 - 2017-06-30

Added

  • A new method models.application.enableDeviceUrls that enables URLs for all devices in an application.
  • A new method models.application.disableDeviceUrls that disables URLs for all devices in an application.

v6.4.1 - 2017-05-24

Fixed

  • Don't include .env when publishing to npm
  • Fix condition for travis to publish to npm

v6.4.0 - 2017-05-23

Added

  • Document log subscriptions in detail

Fixed

  • Always choose a production image as the recommended version.
  • Consistently order image versions.

v6.3.1 - 2017-05-11

Fixed

  • Don't refresh tokens when making requests to the image maker

v6.3.0 - 2017-05-11

Fixed

  • Fix documentation for device.getDashboardUrl()
  • Stop config.* methods from refreshing the token (as they don't use it)

Added

  • The method models.os.getConfig() now accepts image configuration options.

v6.2.0 - 2017-05-02

Added

  • Augment returned device object with device dashboard url property (device.dashboard_url)
  • A new method models.os.getConfig() that retrieves an applications configuration as a json object.

Changed

  • Travis now runs builds against commits on master, in addition to PRs, to solve #309

v6.1.0 - 2017-04-26

Added

  • Added a device.generateDeviceKey that can generate a device specific key for use by a device

Changed

  • Tagged commits are now automatically published to npm

v6.0.1 - 2017-04-12

Changed

  • Sort OS versions taking their rev into account, if present

v6.0.0 - 2017-04-07

Changed

  • imageMakerUrl is now set by default when used in the browser

Cumulative recap of previous changes (see betas below) since 5.4.0

Breaking changes

  • Ensure all environmentVariables.device methods return names as .name, never .env_var_name
  • Removed the (already deprecated) resin.models.device.restart() method, in favor of resin.models.device.restartApplication()
  • Changed register() to work with the new device registration flow. register() now returns device registration information ({ id: "...", uuid: "...", api_key: "..." }), but not the full device object.
  • Changed generateUUID() to generateUniqueKey() to reflect that it should now be used for both generating a uuid and an api key.
  • The error message on timeout has changed from "timeout" to "operation timed out". In addition the error thrown is now a Bluebird Promise.TimeoutError, instead of a raw Error.
  • Deprecated resin.models.application.getApiKey() (use .generateApiKey() instead).

Additions

  • Add device.setCustomLocation and device.unsetCustomLocation
  • Expose .pine to more easily allow requests to unsupported resources
  • Add support for the versioned OS downloads, see resin.models.os.{getSupportedVersions, getMaxSatisfyingVersion}.
  • resin.models.os.{getLastModified, download} now support the version param.
  • Add resin.models.os.getDownloadSize.
  • Add device.getAllByParentDevice to allow querying for dependent devices by parent
  • Add an optional parent id to application.create
  • Include update_timestamp in builds from resin.models.build.getAllByApplication()
  • Add resin.models.build.get() to load individual build data
  • Allow arbitrary extra pinejs options in key.getAll, and all build.get*, application.get* and device.get* methods.
  • Update the logs module to provide historySinceLastClear and clear methods.
  • Add resin.models.environmentVariables.device.getAllByApplication
  • Expose the internal resin-request and resin-token instances
  • Add support for hooks to intercept requests, responses, and errors.
  • Allow device & application ids for all methods, in addition to device uuids & application names, if the argument is a number instead of a string.
  • Resin-SDK now works in a browser environment
  • UMD and UMD-minified builds are now available at build/resin-browser.js and build/resin-browser.min.js

Fixes

  • Encode plus symbols in version numbers when estimating the size of OS images
  • Encode plus symbols in version numbers when downloading OS images
  • Add placeholder support for new ResinOS version format to fix resin-cli issues.
  • Fix resin.models.os.getLastModified which was returning invalid dates due to improper usage of the response headers.
  • Fix potential issue with invalid dependencies by requiring resin-pine 5.0.2
  • Ensure passwords are always submitted as strings when authenticating to make this more reliable in real world usage
  • Ensure device/application.get (and related methods) return a clear error if given an undefined argument
  • Ensure device/application.has returns false if passed undefined
  • Corrected environmentVariables.getAll in documentation to .getAllByApplication

v6.0.0-beta10 - 2017-04-06

Changed

  • Encode plus symbols in version numbers when estimating the size of OS images

v6.0.0-beta9 - 2017-04-04

Changed

  • Encode plus symbols in version numbers when downloading OS images

v6.0.0-beta8 - 2017-04-03

Changed

  • Add basic support for new ResinOS version format to fix resin-cli issues.
  • Breaking! Upgrade resin-token to 4.0.0. This changes the browser token key to resin-token, and will drop all browser sessions.
  • Add device.setCustomLocation and device.unsetCustomLocation
  • Expose .pine to more easily allow requests to unsupported resources

v6.0.0-beta7 - 2017-03-23

Changed

  • Fix resin.models.os.getLastModified which was returning invalid dates due to improper usage of the response headers.
  • Add support for the versioned OS downloads, see resin.models.os.{getSupportedVersions, getMaxSatisfyingVersion}.
  • resin.models.os.{getLastModified, download} now support the version param.
  • Add resin.models.os.getDownloadSize.
  • Fix potential issue with invalid dependencies by requiring resin-pine 5.0.2

v6.0.0-beta6 - 2017-03-21

Changed

  • Fix bug that broke device.reboot and device.shutdown with _ is not defined
  • Add device.getAllByParentDevice to allow querying for dependent devices by parent
  • Add an optional parent id to application.create
  • Include update_timestamp in builds from resin.models.build.getAllByApplication()
  • Add resin.models.build.get() to load individual build data
  • Allow arbitrary extra pinejs options in key.getAll, and all build.get*, application.get* and device.get* methods.
  • Ensure passwords are always submitted as strings when authenticating

v6.0.0-beta5 - 2017-03-10

Changed

  • Update the logs module to provide historySinceLastClear and clear methods.
  • Ensure device/application.get (and related methods) return a clear error if given an undefined argument
  • Ensure device/application.has returns false if passed undefined

v6.0.0-beta4 - 2017-02-27

Changed

  • Add resin.models.environmentVariables.device.getAllByApplication
  • Breaking! Ensure all environmentVariables.device methods return names as .name, never .env_var_name

v6.0.0-beta3 - 2017-02-24

Changed

  • Expose the internal resin-request and resin-token instances
  • Corrected environmentVariables.getAll in documentation to .getAllByApplication
  • Add support for hooks to intercept requests, responses, and errors.
  • Deprecated resin.models.application.getApiKey() (use .generateApiKey() instead).
  • Breaking! Removed the (already deprecated) resin.models.device.restart() method, in favor of resin.models.device.restartApplication()
  • Add factory function defaults so all options are optional. Example: require('resin-sdk')();
  • Allow device & application ids for all methods, in addition to device uuids & application names, if the argument is a number instead of a string.

v6.0.0-beta2 - 2017-01-13

Changed

  • Fixed the issue with resin-settings-client not being installed in Node.js
  • Fixed the issue with where the settings.get('apiUrl') was used instead of the provided option.

v6.0.0-beta1 - 2017-01-11

Changed

  • Breaking! Changed register() to work with the new device registration flow. register() now return device registration information ({ id: "...", uuid: "...", api_key: "..." }), but not the full device object.
  • Breaking! Changed generateUUID() to generateUniqueKey() to reflect that it should now be used for both generating a uuid and an api key.
  • Breaking! The error message on timeout has changed from "timeout" to "operation timed out". In addition the error thrown is now a Bluebird Promise.TimeoutError, instead of a raw Error.
  • Resin-SDK now works in a browser environment (experimental)
  • UMD and UMD-minified builds are now available at build/resin-browser.js and build/resin-browser.min.js

v5.4.0 - 2016-10-27

Added

  • Allow passing an optional force option to resin.models.device.reboot() and resin.models.device.shutdown().

v5.3.6 - 2016-09-26

Changed

  • Update pine filter expressions to avoid deprecation warnings.
  • Return full uuid in resin.models.device.getDeviceUrl().

v5.3.5 - 2016-07-26

Changed

  • Upgrade resin-device-logs to v3.0.0.

v5.3.4 - 2016-07-06

Changed

  • Make sure device functions expand shorter UUIDs before passing then to pine.

v5.3.3 - 2016-06-15

Changed

  • Fix bug that caused resin.models.device.move() to not move devices referenced with shorter uuids.

v5.3.2 - 2016-06-09

Changed

  • Increase HTTP timeout for requests that result in container actions.

v5.3.1 - 2016-05-17

Changed

  • Fix a semver issue when checking the supervisor version on supervisor endpoints.

v5.3.0 - 2016-04-26

Added

  • Implement resin.models.device.getApplicationInfo().
  • Implement resin.models.device.startApplication().
  • Implement resin.models.device.stopApplication().
  • Implement resin.models.device.ping().
  • Implement resin.models.device.update().
  • Implement resin.models.device.shutdown().
  • Implement resin.models.device.purge().
  • Implement resin.models.device.enableTcpPing().
  • Implement resin.models.device.disableTcpPing().

Changed

  • Rename resin.models.device.restart() to resin.models.device.restartApplication().
  • Deprecate resin.models.device.restart().

v5.2.0 - 2016-02-29

Added

  • Support device type aliases.
  • Implement resin.models.build.getAllByApplication().
  • Implement resin.models.device.reboot().

Changed

  • Upgraded oudated dependencies.

v5.1.0 - 2016-01-26

Added

  • Implement resin.models.os.getLastModified().
  • Implement resin.models.device.getStatus().

Changed

  • Patch device types to be marked as ALPHA and BETA instead of PREVIEW and EXPERIMENTAL.
  • Fix exception when fetching a device whose uuid only contains numbers.

v5.0.1 - 2016-01-21

Changed

  • Upgrade resin-request to v4.0.0.

v5.0.0 - 2016-01-20

Added

  • Implement integration tests.
  • Support shorter uuids in all device functions.

Changed

  • Only return applications that belong to current user.
  • Change license to Apache 2.0.
  • Serve static unconfigured images.
  • Ensure environment variable values are strings.

v4.1.3 - 2015-11-24

  • Upgrade resin-device-logs to v2.0.1.

v4.1.2 - 2015-11-15

Changed

  • Fix bug in resin.settings.getAll() that caused the function to throw an error.

v4.1.1 - 2015-11-12

Changed

  • Validate application device type before moving a device.

v4.1.0 - 2015-11-11

Added

  • Implement resin.models.device.move().

Changed

  • Port all documentation examples to JavaScript.

v4.0.0 - 2015-10-21

Added

  • Implement resin.auth.twoFactor.isEnabled().
  • Implement resin.auth.twoFactor.isPassed().
  • Implement resin.auth.twoFactor.challenge().

Changed

  • Require an email instead of username in resin.auth.login() and resin.auth.authenticate().
  • Support searching a device type slug by a slug.

v3.0.0 - 2015-10-12

Changed

  • Make resin.models.device.generateUUID() async.

v2.8.1 - 2015-10-12

Changed

  • Make resin.models.config.getPubNubKeys() and resin.models.config.getMixpanelToken() private.
  • Fix resin.models.device.generateUUID() examples.

v2.8.0 - 2015-09-24

Added

  • Implement resin.models.device.restart().

v2.7.3 - 2015-09-07

Changed

  • Upgrade Resin Settings Client to v3.1.0.

v2.7.2 - 2015-09-07

Changed

  • Upgrade Resin Token to v2.4.2.

v2.7.1 - 2015-09-07

Changed

  • Upgrade Resin Settings Client to v3.0.0.

v2.7.0 - 2015-09-01

Added

  • Implement resin.models.config.getMixpanelToken().

Changed

  • Reuse resin-register-device to provide device registration and uuid generation.

v2.6.2 - 2015-08-28

Changed

  • Update Resin Request to v2.3.1.
  • Fix bug that caused authenticate() to fail even with valid credentials.

v2.6.1 - 2015-08-25

Changed

  • Update Resin Request to v2.3.0.

v2.6.0 - 2015-08-25

Added

  • Implement resin.models.config.getDeviceOptions().

Changed

  • Improve resin.models.application.create() documentation.

v2.5.0 - 2015-08-24

Added

  • Set RESIN and USER as system environment variables.
  • Make use of @fulfil and @reject JSDoc tags to document promises.

Changed

  • Upgrade Resin Request to v2.2.4.

v2.4.1 - 2015-08-17

Changed

  • Upgrade Resin Settings Client to v2.1.0.
  • Request GET /whoami to determine if a user is logged in resin.auth.isLoggedIn().
  • Fix bug that caused device environment variables to not have a name property.

v2.4.0 - 2015-08-10

Added

  • Implement resin.models.device.getManifestByApplication().
  • Implement resin.models.device.register().
  • Check that device/application exists before attempting to remove.

Changed

  • Fix environment variables documentation.
  • Fix resin.models.key.get() undefined issue.
  • Fix resin.models.key.create() bug that caused no key to be created.
  • Fix resin.models.application.create() example issue with device slugs.
  • Upgrade resin-errors to v2.0.0.
  • Upgrade resin-request to v2.2.3.
  • Upgrade resin-token to v2.4.1.

v2.3.1 - 2015-07-29

Changed

  • Fix undefined Authorization header issue.
  • Fix HTTP request body issue in auth module.

v2.3.0 - 2015-07-27

Added

  • Refresh token in an interval.

Removed

  • Remove deprecated device.register().

v2.2.0 - 2015-07-03

Added

  • Implement resin.models.device.getLocalIPAddresses().

v2.1.0 - 2015-07-01

Changed

  • Upgrade resin-settings-client to v1.4.0.

v2.0.0 - 2015-06-29

Added

  • Implement resin.logs.history().
  • Implement resin.models.device.register().
  • Implement resin.settings.
  • Start making use of a CHANGELOG.
  • Improve unit testing.
  • Add promise support.
  • Check that a device exists before attempting rename operation.
  • Reference devices by uuid instead of by name.
  • Markdown JSDoc documentation in DOCUMENTATION.md.

Changed

  • Change interface and internal workings of resin.logs.subscribe().
  • "get all" functions now return an empty array if no resources instead of yielding an error.
  • Update JSDoc annotations to use promises.

Removed

  • Remove HTML generated JSDoc documentation.