All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog and this project adheres to Semantic Versioning.
6.0.0 (2021-07-30)
- Introduce MFA functionality. #593
- Improve the login process. #592
- Change the default API version to 6. #602
- Implement async SessionStore API. #598
- Do not use the authToken in
me()
method. #596 - Remove the option to set active user on signup. #616
5.1.1 (2021-04-12)
- The pull function returns an error with Auto store when called with autoPagination: true and there are no items. #590
5.1.0 (2021-04-08)
- Auto DataStore disregards "skip" and "limit" and fetches up to 10000 items per call. #581
5.0.1 (2020-07-22)
- Multi Insert validations #569
5.0.0 (2020-07-10)
- Introducing the Multi Insert functionality
- Update the default KCS api version to 5 #566
- Add
lastLoginTime
to Kinvey metadata #562
4.2.3 (2019-07-22)
- Add validation for User
signup()
. #430 - Add
signup()
as an instance function for theUser
class. #431
4.2.2 (2019-07-05)
- Change auto protocol from
https
tohttps:
. #423 - Resume live services after network connection is resolved on NativeScript. #429
- Verify arguments for
query.ascending()
andquery.descending()
. #424 - Verify arguments for
query.exists()
. #425 - Verify arguments for
query.notContainedId()
. #426 - Verify arguments for
query.notEqualTo()
. #427 - Verify arguments for
query.or()
,query.and()
, andquery.nor()
. #428
4.2.1 (2019-06-19)
- Add default version to all MIC API requests. #415
- Use tarball to install forked PubNub package. #419
- Make
kinvey-nativescript-sdk
hooks compatible with NativeScript 6.0 release. #418 - Add definition files for autocomplete on IDEs and type information. #416
4.2.0 (2019-06-07)
- Changed the error timeout message to match the message from v3.x.
- Added support for multi-insert to the
Network
datastore type. #414
4.1.0 (2019-05-31)
init()
returns some missing properties that were returned in v3.x. #411
- Add
Auto
datastore type. This new datastore type prioritzes using the network first. If a network connection is not available then it will fall back to using the local cache until a network connection is re-established. #409
- We have removed the necessary configuration needed to make push notifications work on NativeScript iOS. This should be added manually on a as needed basis by following the NativeScript Firebase plugin setup guide. #413
- We have deprecated the
Cache
datastore type. You should now use theAuto
datastore type to instead. - We have deprecated the use of
initialize()
to initialize the SDK. You should useinit()
instead.
3.12.4 (2019-02-12)
- MLIBZ-2732: Prevent duplicate Live Service messages. #389
3.12.3 (2018-11-05)
- MLIBZ-2712: Reconnect to Live Service on NativeScript whenever an application resumes or regains a network connection. #379
3.12.2 (2018-11-02)
-
Allow
loginWithMIC()
to work properly when viewing a NativeScript application with the NativeScript Preview App. #377 -
Add new notification callback handler for NativeScript push notifications. #378
-
MLIBZ-2712: Reconnect to Live Service on NativeScript whenever an application resumes or regains a network connection. #376
-
MLIBZ-2496: Use default
AuthorizationGrant
ifnull
is provded tologinWithMIC()
. #372 -
MLIBZ-2656 and MLIBZ-2690: Merge
_socialIdentity
properly with response from/me
endpoint. #374 #375 -
MLIBZ-2497: Return the correct error message if
Files.findById()
is called without a file id. #373 -
MLIBZ-2712: Reconnect to Live Service on NativeScript whenever an application resumes or regains a network connection. #376
3.12.1 (2018-10-04)
- MLIBZ-2695: Updated
webpack.config.ios.js
andwebpack.config.android.js
to treat anytns-core-module
imported by the SDK as an external import to prevent the bundle from including thetns-core-module
package. #363 - MLIBZ-2671: Fixed MIC on Microsoft Edge and IE browsers. #364
- Removed the use of
tns-core-modules/connectivity
. #365
3.12.0 (2018-10-03)
- MLIBZ-2366: Update MIC for NativeScript to use
SFSafariViewController
on iOS andChrome Custom Tabs
on Android. Register the custom scheme used by the app as theredirectUri
for MIC in theAndroidManifest.xml
on Android and theInfo.plist
on iOS. #305 #362
- MLIBZ-2665: Send custom properties to the backend using the
x-kinvey-custom-request-properties
header when creating an entity. #360 - MLIBZ-2660: Fix TypeScript definitions for
Push.unregister()
on NativeScript to allow the passing of options. Fix the boolean logic inPush.register()
to allow interactive settings for push notifications to be registered for iOS on NativeScript. #359 - MLIBZ-2543: Fix encoding issue when downloading files via the NativeScript SDK. #361
3.11.7 (2018-09-20)
- MLIBZ-2466: Add new defice info header information. #343
- MLIBZ-649: Add encryption for NativeScript. #351
- MLIBZ-2684: Fix NativeScript TypeScript definitions for Push. #352
- MLIBZ-2502: Update rxjs to 6.x. #353
3.11.6 (2018-08-02)
3.11.5 (2018-07-25)
- MLIBZ-2532: Add
instanceId?: string
toClientConfig
TypeScript definition. #341 - MLIBZ-2630: Return response from backend when calling
datastore.find()
. #342
3.11.4 (2018-07-09)
- MLIBZ-2580: Use correct Authorization header value when sending a request to refresh a MIC access token. #315
- MLIBZ-2585: Queue network requests while in the middle of refreshing a MIC access token. #321
- MLIBZ-2586: Use PubNub fork to fix Live Service on Android for NativeScript. #326
3.11.3 (2018-06-29)
- MLIBZ-2575: Validate file size before uploading. MLIBZ-2443 and MLIBZ-2444 are related. #313
- MLIBZ-2552: Don't try to access undefined. #312
- MLIBZ-2450: Prevent the active user from being removed when clearing the DataStore cache and local storage is used as the storage adapter. #311
- MLIBZ-2526: Remove
_kmd.local
property before sending entity to the backend. #310
3.11.2 (2018-06-15)
- MLIBZ-2528: Handle MIC OAuth errors in redirect uri responses #307
- Fixed file tests #304
3.11.1 (2018-06-01)
- MLIBZ-2303:
User.me()
does not delete empty fields #299 - MLIBZ-2455: Fix incorrect TypeScript definition for
User.lookup()
#301 - MLIBZ-2452: NativeScript Android File Uploads throw an Error #300
- MLIBZ-2323: Don't swallow error when using observable #302
- Add back execution of integration file tests for NativeScript #303
3.11.0 (2018-05-23)
- QA-196: Add integration tests for files. #293
- Add push bundle for iOS and Android to files property in
package.json
for the Kinvey NativeScript SDK. #296 - MLIBZ-2316: Server Side Delta Set #270
- MLIBZ-2517: Delete mutiple entities properply with Server Side Delta Set #297
- MLIBZ-2520: Delete entities properly with Auto Pagination #298
3.10.3 (2018-05-08)
- MLIBZ-2422: Add validation that checks if a
redirectUri
provided tomic.login()
is a string. If theredirectUri
is not a string then anError
will be thrown. #283 - Conforms the use of the iOS keychain to use the same settings as our Swift SDK. #257
- MLIBZ-2429: Don't include the
Push
module by default in the SDK bundle. #282 - Update the
Push
module to use the latest version of the NativeScript Push Plugin.onMessageReceived()
callback for Android was deprecated and added some new config options for iOS. #285 - MLIBZ-2307: Use the correct config options to unregister push on iOS and Android. #284
- MLIBZ=2446: Add support for
kinveyFileTTL
andkinveyFileTLS
query parameters for KinveyFile references on a DataStore collection. #289
var dataStore = Kinvey.DataStore.collection('pets');
dataStore.findById('3f583e9f-d064-4a25-a953-6cf0a3dc2ff1', { kinveyFileTTL: 3600, kinveyFileTLS: true })
.subscribe(function(pet) {
/*
{
"_id": "3f583e9f-d064-4a25-a953-6cf0a3dc2ff1",
"_acl": {...},
"dogName": "Bob",
"furColor": "brown with black spots",
"pawPrintPicture": {
"_type": "KinveyFile",
"_id": "325620e4-93dd-4a26-9f84-8a5e62c0db11",
"_filename": "bobsPawPrint.png",
"_acl": { ... },
"_downloadURL": <Google Cloud Storage download URL>,
"_expiresAt": "2018-06-18T23:07:23.394Z"
}
}
*/
}, function(error) {
// ...
});
3.10.2 (2018-03-29)
- MLIBZ-2399: Use the long form Mobile Identity Connect
clientID
in the auth header for KAS endpoints. #263 - MLIBZ-2131: Remove implicit
push()
calls from datastore. #276 - MLIBZ-2332: Add support for
instanceId
config option. #278 - Add default entitlements plist file to NativeScript SDK. #281
- Check that value is an object before calling
Object.keys
inQuery.isSupportedOffline()
. #245 - MLIBZ-2133: Use
es6-promise
for promises in live service related files instead of the native promise. #272 - MLIBZ-2393: Fix NativeScript Files #280
- MLIBZ-2410: Expose data access classes from core SDK. #274
- Refactor IndexedDB and WebSQL persisters. #277
- QA-176: Add integration tests for Mobile Identity Connect #279
3.10.0 (2018-02-26)
- DataStore Redesign #251
- MLIBZ-2350: Revert removal of caching db connections in WebSQL. #241
- Added polyfill for
Number.isNaN()
. #243 - MLIBZ-2314: Update typescript definitions to allow anonymouse user signup. #242
- Export
LiveServiceFacade
instead ofLiveService
. #254
- Update the package-lock.json to use the new test runner. #240
3.9.10 (2018-02-09)
- Use correct config property for setting storage providers #228
- MLIBZ-2159: Add missing
version
property toRequestOptions
in the TypeScript definition file #235 - MLIBZ-2159:
_id
field not returned when specifying fields for a query #233 - MLIBZ-2351: Use
WebView
events to capture redirect on NativeScript #237
- Added integration tests in travis.yml #230
3.9.9 (2018-01-26)
- MLIBZ-2162: Allow multiple independent datastores on a single collection #220
- MLIBZ-2120: Add support for specifying a storage adapter #213
- MLIBZ-2313 and MLIBZ-2315: Export the
Client
class. Don't export theProperties
class twice. #221 - MLIBZ-2156: Correctly sort fields that have a
null
orundefined
value. #205 - MLIBZ-2296: Add polyfill for
Object.prototype.assign()
. #225
- MLIBZ-2232: Validate Deploys #206
- Fix
files
to include correct filenames for kinvey-angular2-sdk package. Commit - Fix
webpack.config.js
for the kinvey-html5-sdk package. Commit - Use seperate
webpack.config.js
files for building the iOS and Android vesions for the kinvey-nativescript-sdk package. Commit
3.9.6 (2018-01-12)
- MLIBZ-2213: Subscribe for messages sent to user's personal collections channel #172
- MLIBZ-2157: Add filter for a
$ne
query properly #201 - MLIBZ-2154: Remove fileds when processing query after sorting data #202
3.9.3 (2017-12-14)
We have moved all the code from our JavaScript SDKs spread across mutiple repositories into this repository. We have adopted the Mono Repo approach.
None
None
- Cannot find module
kinvey-nativescript-sdk/push
#28
- MLIBZ-2247: Add
rxjs
as a dependency to use in the TypeScript definitions file #197 - MLIBZ-2150: Fix setting active user in NativeScript SDK #196
- Update
webpack.config.js
for each SDK package #195 - Remove
nativescript-push-notifications
as a dependency ofkinvey-nativescript-sdk
#194 - Use updated PubNub version that supports NativeScript #193
- MLIBZ-2234: Export the Kinvey namespace as a module for new bundles created from Mono repo #185
- MLIBZ-2225:
datastore.findById()
should throw aNotFoundError
if the id does not exist #184 - MLIBZ-2129: TypeScript definitions update #183
- QA-120: Mono Repo #181
- MLIBZ-2150: Fix return value of ActiveUserStorage.set() for NativeScript #173
- Mono Repo #171
3.8.1 (2017-08-25)
None
None
- Resolve
Kinvey.initialize()
with an instance ofKinvey.User
ornull
.
- Fix Initialize #148
None
3.8.0 (2017-08-23)
- Log requests made by the SDK
- Allow a
micId
to be added to theclient_id
value sent for a Mobile Identity Connect request. See #140. - Replace native node modules with npm packages. This allows us to support platforms that do not run in a Node or Web environment such as NativeScript and React Native.
- Deprecated
Kinvey.initialize()
. Please useKinvey.init()
instead. If you useKinvey.init()
you might not have an active user even though you had already logged in. To fix this, useKinvey.initialize()
to move the active user to the correct storage. From then on you will be able to useKinvey.init()
and retrieve your active user.Kinvey.init()
does not return a promise and is synchronous.
// Will return the shared client instance
Kinvey.init({
appKey: '<appKey>',
appSecret: '<appSecret>'
});
- SDK shims can now override the way an active user is stored. This allows the SDK shim to use the preferred storage for that platform.
- Default to removing a user with
hard
equal tofalse
. - SDK shims can now override file uploads.
- Queries will properly be encoding.
- NativeScript #132
- SDK on Windows OS #137
- Fix Storage API #139
- Add micId to client_id used for MIC #140
- Changes to handle active user storage as a sync or async operation #143
- Fix for URL / query encoding issues #145
None
3.5.2 (2017-07-07)
None
None
- Allow special characters
['.', '$', '~', '>', '<', '!', '@']
to be used in an_id
for an entity. - Import
es6-promise
to fix errors caused by environments that do not provide a promise implementation natively. - Fix error inheritance to correctly display error message in
console.log
statements.
- Fix URL formation on Windows and URL symbols in custom ID breaking cache storage #134
- Fix Promise Undefined Bug #135
- Fix Error Inheritance #136
None
3.5.1 (2017-06-30)
None
None
https:
will automatically be used when a custom hostname is missing a protocol.- Prevent the active user from being
null
for a short period of time when setting the active user.
None
3.5.0 (2017-04-20)
usePopupClass()
as a static function to theUser
class for registering a popup class to be used for MIC authentication.- Tests to increase code coverage to 90%.
init()
static function onKinvey
namespace. This was deprecated with v3.3.3.baseUrl
,protocol
, andhost
properties on aclient
instance. These were deprecated with v3.0.0.syncCount()
andpurge()
onCacheStore
andSyncStore
instances. These were deprecated with v3.2.0.
restore()
static function from theUser
class to throw an error whenever it is called. This function required an end user to supply their master secret for their application. We strongly advise not to do this in your application.- All
toJSON()
functions have now been replaced bytoPlainObject()
. The returned result is the exact same. save()
,create()
, andupdate()
on datastore instances no longer accepts an array of entities. This is to help with reporting errors that may occur when saving an entity.remove()
andremoveById()
on datastore instances now returns the count of entities removed and not the actual entity removed.- Results returned when pushing sync items to the backend contain a new property called
operation
. This property will either beKinvey.SyncOperation.Create
,Kinvey.SyncOperation.Update
, orKinvey.SyncOperation.Delete
.
None
3.4.5 (2017-04-13)
Changes
- Share authentication information for active user with 1.x SDK.
- Use query to push a subset of sync entities to the backend. #120
- Add more tests for query. #121
- Allow multiple sync push operations to be in progress at the same time for difference collections.. Only one sync push operation is allowed to be in progress for the same collection. This fixes an issue caused with #117 that only allowed one sync push operation to be in progress regardless of the collection. #123
3.4.4 (2017-03-27)
Changes
- Don't perform a sync push operation while one is already in progress. #117
- Use
tls: true
by default when fetching files. #118 - Catch a
NotFoundError
thrown when trying to store an active user in the cache. #119
3.4.3 (2017-03-16)
Changes
- Clone body of
CacheRequest
. #112 - Add back
es6-promise
. #113 - Add method to remove user by id. #114
- Update package dependencies.
3.4.2 (2017-02-23)
Changes
- Move mocked classes to the test directory. Fixes a bug that would cause the package to not work when installed from NPM.
3.4.1 (2017-02-23)
Changes
- Correctly refresh MIC sessions. #104
- Add missing error objects. #105
- Fix bug that prevented files from being uploaded to GCS. #106
- Remove es6-promise dependency. #107
- Remove core http middleware. #109
- Add more unit tests for user logout. #110
- Rename package name and update README. #111
3.4.0 (2017-02-08)
Changes
- Refactor source to export all modules, expose Rack API, and to clean up code. #94
- Remove password hash from stored user object. #102
- Fix errors with using
Kinvey.ACL
on an entity that does not contain an_acl
property. #103
3.3.5 (2017-01-25)
Changes
- Add
User.lookup()
API to be able to perform user discovery. #96 - Fix a bug that causes any requests sent to the backend after updating a user to respond with a
401
status code. #101
3.3.4 (2017-01-12)
Changes
- Improved test coverage. #92
- Fixed a bug that would produce a
TypeError
for a failed login or any network request that resulted in anInvalidCredentialsError
#95
3.3.3 (2016-12-16)
Changes
- Added
error.kinveyRequestId
as a property to error objects. This property is set to theX-Kinvey-Request-Id
header value of a Kinvey API response. It isundefined
by default. #84 - Added a global get/set default timeout property on the client. The library sets the default timeout to a value of 60 seconds. You can change this value by passing a default timeout when you initialize the SDK. #85
Kinvey.initialize({
appKey: '<appKey>',
appSecret: '<appSecret>',
defaultTimeout: 30000 // 30 seconds in ms
});
- Delta fetch requests now works with queries. #83
- Fixed a check with
instanceof
in Mobile Identity Connect that caused aTypeError
to be thrown. #87 - Entities will now be persisted when calling
store.sync
on a data store instance. #88 - Fixed issues that caused inconsistencies with Error objects. #89
- Sort, limit, and skip now work correctly when querying the local cache. #90
3.3.2 (2016-12-03)
Bug fixes:
- Add missing semicolon in aggregation count function.
- Fix how aggregations are process.
Unit Tests:
- Add unit tests for aggregations.
3.3.1 (2016-12-02)
Bug fixes:
- Fix aggregations.
- Merge
user._socialIdentity
recuresively when using an identity to login a user. - Fix typo of
complete
inNetworkStore
.
3.3.0 (2016-11-22)
Enhancements:
- Expose all the error objects on the
Kinvey
namespace.
Bug fixes:
- Fix name property on
Error
objects. - Merge
user._socialIdentity
when using an identity to login a user. - Do not disconnect identities on user logout.
- Support private browser mode for Safari and Firefox.
Deprecated:
Kinvey.initialize
should be used instead ofKinvey.init
.
3.2.2 (2016-10-25)
Bug fixes:
- Import
UserStore
from the correct path. - Add missing group function to data stores.
3.2.1 (2016-10-06)
Implemented enhancements:
- Default apiHostname protocol to
https:
if it is not provided.
Bug fixes:
- Removed
async
/await
syntax. - Prevent delta fetch from loading all entities when they are not needed.
3.2.0 (2016-09-27)
Implemented enhancements:
- Removed
Popup
,Device
, and rack implementations. - Updated
kinvey-javascript-sdk-core
dependency.