evrythng
Version:
Official Javascript SDK for the EVRYTHNG API.
342 lines (193 loc) • 10.6 kB
Markdown
# v6.0.0 (08-12-2020)
## Features
- **Setup**: Add `apiVersion:2` as default and add URL configuration based on apiVersion and region
- **Scopes**: Add `Operator` and `AccessToken` scopes for `apiVersion:2`
- **Access Policies**: Add `accessPolicies()` for access policies API to Operator and AccessToken scopes for `apiVersion:2`
- **Operator Accesses**: Add `operatorAccess()` for operator accesses API to Operator and AccessToken scopes for `apiVersion:2`
- **Me**: Add `me()` for me API to Operator and AccessToken scopes for `apiVersion:2`
- **Access Tokens**: Add `accessToken()` for access tokens API to Operator and AccessToken scopes for `apiVersion:2`
# v5.9.0 (1-7-2020)
## Features
- **Files**: Add `files()` resources to User scope for creating and reading by file ID.
# v5.8.0 (3-2-2020)
## Features
- **ActionApp**: Allow `createAction()` to target a `thng` or `product` by including an ID in the `data` parameter.
- **ActionApp**: All `getAnonymousUser()` to allow usage of the managed anonymous Application User.
## Fixes
- **ActionApp**: Fix bug preventing use of built-in action types.
# v5.7.1 (14-1-2020)
## Features
- **Pagination**: Add `streamPages()` to all resources to allow asynchronously streaming pages of resources.
# v5.6.0 (27-9-2019)
## Features
- **Purchase Orders**: Add `purchaseOrder()` for purchase orders API to Operator scope.
- **Shipment Notices**: Add `shipmentNotice()` and `shipmentNotice().container()` for shipment notices API to Operator scope.
## Fixes
- **Scopes**: Prevent scopes from reading access twice when using `init()`.
# v5.5.0 (29-8-2019)
## Features
- **ADI Orders**: Added `adiOrder()` resources to Operator scope for creating and reading ADI Orders. Also includes `event()` for creating ADI Order events.
# v5.4.0 (7-8-2019)
## Changes
- **redirections**:`redirection()` resource now allows nominating the `shortDomain` in that call, and no longer requires some templating (`{shortId}`/`{productId}`) as part of the URL submitted.
- **redirections**: `settings` now includes `defaultShortDomain` to allow setting the default short domain used for `redirection()` requests.
## Fixes
- **api**: Better handle parts of the API that return non-standard empty response bodies.
# v5.3.0 (29-7-2019)
## Features
- **entities**: Export `Entity` through the plugin `api`.
- **files**: Add `upload()` method for files to upload file data.
- **upsert**: `upsert()` can now be performed by `name` in addition to an identifier object where a resource supports filtering by `name`.
## Fixes
- **param setters**: Add missing `setIds()` param setter.
- **permissions**: Support referring to permission by name, such as `permission('global_read')`
# v5.1.0 (30-5-2019)
## Features
- **plugins**: Added the `use()` method in order to support plugins. See `src/use.js` for API details.
# v5.0.0 (23-5-2019)
## Breaking Changes
> If you are updating from a previous version, please see the
> [Migration Guide](https://developers.evrythng.com/docs/evrythngjs-v500).
- **evrythng-extended.js**: `evrythng-extended.js` is no longer required as a separate dependency.
- **Browser global**: The `EVT` browser global is now `evrythng`.
- **Scope names**: The `App` and `TrustedApp` scopes are now `Application` and `TrustedApplication`.
- **User scope**: Manual creation of a `User` scope using a pre-existing API key now only requires the key as a parameter.
- **$init**: The `$init` promise property has been formalised as the `init()` method, and behaves the same way.
- **Request options**: The `authorization` parameter for `api()` is now `apiKey`.
- **Iterators**: The `EVT.Utils.forEachAsync()` and `iterator()` resource method is now `pages()`, and is an [async generator](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/function*).
## Features
- **Redirections**: The `thng()` and `product()` resources now have a `redirection()` resource for managing redirections.
- **Accounts**: Added a `sharedAccount()` resource with `access()` sub-resource for reading and updating accounts.
- **Domains**: The `sharedAccount()` resource also includes `shortDomain()` and `domain()` resources for reading available short domains and domains.
- **Secret key**: The `application()` resource now has a `secretKey()` resource for reading its Trusted Application API Key as an `Operator`.
- **Redirector**: The `Operator` scope and `application()` resource now have a `redirector()` resource for reading and updating Redirector rules.
- **Resource aliases**: The `alias()` method allows simple aliasing of existing resource types to better suit a use-case or environment, such as naming collections 'pallets'.
- **Parameter setters**: Instead of creating a `params` object, chainable setters such as `setPerPage()` are available on most resources to easily build complex requests.
- **Resource methods**: The `rescope()`, `upsert()`, and `find()` methods have been added to most resources to allow easier _changing of project/user scopes_, _updating by key else creating_, and _finding by identifiers_ as common operations.
# v4.7.2 (11-15-2017)
## Bug fixes
-**Places**: Do not geolocate place with id
# v4.7.1 (30-06-2017)
## Features
-**Policies**: Allow single Policy access.
# v4.7.0 (29-06-2017)
## Features
-**Policies**: Add Policy resource to Roles.
# v4.6.0 (09-06-2017)
## Features
-**Schemas**: Add Schema resource in Operator scope.
# v4.5.1 (30-05-2017)
## Bug fixes
-**Permissions**: Add support for old Permission API.
# v4.5.0 (25-04-2017)
## Features
-**Permissions**: Add Permission resource to Roles.
# v4.4.1 (25-04-2017)
## Bug fixes
- **HTTP**: Fix incorrect Content-Type header check in Node.
# v4.4.0 (03-04-2017)
## Features
-**Roles**: Add Role resource in Operator and User scope.
# v4.3.0 (30-01-2017)
## Features
- **Files**: CRD access in the Operator scope.
# v4.2.0 (10-01-2017)
## Features
- **Scopes**: Read data from any scope on creation via `$init`.
# v4.1.0 (12-10-2016)
## Features
- **Reactor scripts**: Add nested reactor script status
resource `app.reactor.script().status()`.
# v4.0.1 (11-10-2016)
## Bug fixes
- **Auth**: Allow to pass FB initialization settings
- **Auth**: Read user details when login in application
# v4.0.0 (04-10-2016)
## Breaking changes
- **Reactor logs**: Move `app.reactorLog()` resource within the `app.reactor.log()` namespace
(only available in **evrythng-extended.js**).
- **Search**: Global `.search()` has been removed to match API. Use filters instead.
- **Multimedia**: Multimedia resource has been removed to match API.
## Features
- **Reactor schedules**: Add Reactor schedules resource in the `app.reactor.schedule()` namespace
(only available in **evrythng-extended.js**).
- **Reactor scripts**: Add Reactor scripts resource in the `app.reactor.script()` namespace
(only available in **evrythng-extended.js**).
# v3.7.0 (16-06-2016)
## Features
- **Collections**: Add nested collection resource `operator.collection('id').collection()`.
# v3.6.1 (09-06-2016)
## Bug fixes
- **Iterator API**: Use `sortOrder=DESCENDING` param by default.
- **Application**: Reject `application.$init` promise if app does not exist.
- **AJAX Headers**: Fix response headers not being handled correctly.
# v3.6.0 (02-06-2016)
## Features
- **Batches**: CRUD access in the Operator scope.
- **Batch tasks**: CR access in the Batch resource.
# v3.5.0 (12-05-2016)
## Features
- **Iterator API**: Async generator `iterator()` added to every Resource, supporting looping
through the new pagination links.
- **Utils**: Added `forEachAsync()` utility to loop through async generator values.
- **Utils**: Added `spawn()` utility to run through generator function.
## Breaking changes
- **Count**: `count()` method on the Resource has been removed.
## Bug fixes
- **AJAX Headers**: Header values were being lowercased.
# v3.4.4 (26-04-2016)
## Bug fixes
- **Request interceptors**: Added Promise support for request interceptors.
# v3.4.3 (26-01-2016)
## Changes
- **Callback API**: Make deprecation warning mutable.
# v3.4.2 (22-12-2015)
## Changes
- **Errors**: Added `code` and `moreInfo` and removed `message` and `type` to/from EVT.js errors.
- **Callback API**: Added deprecation when callbacks are executed.
# v3.4.1 (14-12-2015)
## Changes
- **Transport**: Common transport module for Node.js and Browser.
# v3.4.0 (02-12-2015)
## Features
- **Projects**: CRUD access in the Operator scope.
- **Applications**: CRUD access in the Project resource.
- **Reactor Logs**: RD access in the Operator scope.
- **Actions**: allow to override global Geolocation setting per request.
# v3.3.2 (27-10-2015)
## Bug fixes
- **Resource path**: newly created entities have wrong resource path [#37].
# v3.3.1 (09-09-2015)
## Bug fixes
- **Properties**: normalize arguments with falsy values (e.g. `0`, `false`) on property creation or update.
# v3.3.0 (07-09-2015)
## Features
- **Trusted App**: updated permissions for TrustedApp scope.
- **Custom headers**: allow to setup custom headers with **headers** object option.
- **Action Types**: CRUD access like other entities.
- **Filters**: escape special characters for filter param when using object notation.
## Bug fixes
- **Properties**: normalize arguments on creation, just like updates. Read properties with special characters.
- **Empty fields**: empty fields not being sent to API request.
- **Encoding**: nested params objects (e.g. filters) are only encoded once.
# v3.2.0 (10-08-2015)
## Features
- **Trusted App**: scope to use with you **Application Secret Key**, mainly used in Reactor scripts
(only available in **evrythng-extended.js**).
## Breaking changes
- **plugins**: `EVT.use()` to install plugin is now synchronous. Callback has been removed. Required dependencies
now use `$inject` property instead of `requires`.
# v3.1.2 (25-06-2015)
## Features
- **documentation**: clearer usage and installation steps. Consistent format from other libs.
# v3.1.1 (19-06-2015)
## Bug fixes
- **package.json**: Github url with `git://` protocol.
# v3.1.0 (17-06-2015)
## Bug fixes
- **xhr**: responses without headers were being ignored.
## Features
- **interceptors**: setup request and response interceptors globally or as a one-off request settings.
- **plugins**: ability to install/use plugins for additional functionality.
## Breaking changes
- **synchronous requests**: sync option removed for Node.js vs Browser consistency and to promote best practices.