@qikdev/sdk 1.0.1 → 1.0.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/dist/access.html +16371 -0
- package/dist/api.html +1503 -0
- package/dist/auth.html +8455 -0
- package/dist/cache.html +1135 -0
- package/dist/content.html +10067 -0
- package/dist/files.html +3415 -0
- package/dist/filter.html +4973 -0
- package/dist/geo.html +3851 -0
- package/dist/global.html +328 -0
- package/dist/index.html +96 -0
- package/dist/main.js +1100 -1126
- package/dist/module-QikStorage-CookieStorageAdapter.html +1177 -0
- package/dist/module-QikStorage-LocalStorageAdapter.html +329 -0
- package/dist/module-QikStorage-StorageAdapter.html +3457 -0
- package/dist/module-QikStorage.html +1445 -0
- package/dist/qik.access.js.html +904 -0
- package/dist/qik.api.js.html +409 -0
- package/dist/{docs/qik.auth.js.html → qik.auth.js.html} +142 -104
- package/dist/qik.cache.js.html +125 -0
- package/dist/qik.content.js.html +967 -0
- package/dist/qik.core.js.html +322 -0
- package/dist/qik.files.js.html +249 -0
- package/dist/{docs/qik.filter.js.html → qik.filter.js.html} +2 -2
- package/dist/qik.geo.js.html +963 -0
- package/dist/qik.socket.js.html +451 -0
- package/dist/qik.storage.js.html +375 -0
- package/dist/qik.system.js.html +117 -0
- package/dist/qik.utils.js.html +1542 -0
- package/dist/socket.html +2975 -0
- package/dist/{docs/styles → styles}/jsdoc.css +2 -2
- package/dist/system.html +523 -0
- package/package.json +2 -2
- package/src/api/qik.access.js +2 -53
- package/src/api/qik.socket.js +51 -10
- package/src/version.js +1 -1
- package/dist/docs/access.html +0 -3826
- package/dist/docs/api.html +0 -1356
- package/dist/docs/auth.html +0 -2180
- package/dist/docs/cache.html +0 -351
- package/dist/docs/content.html +0 -2560
- package/dist/docs/files.html +0 -779
- package/dist/docs/filter.html +0 -1355
- package/dist/docs/index.html +0 -96
- package/dist/docs/qik.access.js.html +0 -790
- package/dist/docs/qik.api.js.html +0 -511
- package/dist/docs/qik.cache.js.html +0 -131
- package/dist/docs/qik.content.js.html +0 -918
- package/dist/docs/qik.core.js.html +0 -301
- package/dist/docs/qik.files.js.html +0 -219
- package/dist/docs/qik.socket.js.html +0 -416
- package/dist/docs/qik.system.js.html +0 -117
- package/dist/docs/qik.utils.js.html +0 -1467
- package/dist/docs/socket.html +0 -810
- package/dist/docs/system.html +0 -197
- /package/dist/{docs/fonts → fonts}/Montserrat/Montserrat-Bold.eot +0 -0
- /package/dist/{docs/fonts → fonts}/Montserrat/Montserrat-Bold.ttf +0 -0
- /package/dist/{docs/fonts → fonts}/Montserrat/Montserrat-Bold.woff +0 -0
- /package/dist/{docs/fonts → fonts}/Montserrat/Montserrat-Bold.woff2 +0 -0
- /package/dist/{docs/fonts → fonts}/Montserrat/Montserrat-Regular.eot +0 -0
- /package/dist/{docs/fonts → fonts}/Montserrat/Montserrat-Regular.ttf +0 -0
- /package/dist/{docs/fonts → fonts}/Montserrat/Montserrat-Regular.woff +0 -0
- /package/dist/{docs/fonts → fonts}/Montserrat/Montserrat-Regular.woff2 +0 -0
- /package/dist/{docs/fonts → fonts}/Source-Sans-Pro/sourcesanspro-light-webfont.eot +0 -0
- /package/dist/{docs/fonts → fonts}/Source-Sans-Pro/sourcesanspro-light-webfont.svg +0 -0
- /package/dist/{docs/fonts → fonts}/Source-Sans-Pro/sourcesanspro-light-webfont.ttf +0 -0
- /package/dist/{docs/fonts → fonts}/Source-Sans-Pro/sourcesanspro-light-webfont.woff +0 -0
- /package/dist/{docs/fonts → fonts}/Source-Sans-Pro/sourcesanspro-light-webfont.woff2 +0 -0
- /package/dist/{docs/fonts → fonts}/Source-Sans-Pro/sourcesanspro-regular-webfont.eot +0 -0
- /package/dist/{docs/fonts → fonts}/Source-Sans-Pro/sourcesanspro-regular-webfont.svg +0 -0
- /package/dist/{docs/fonts → fonts}/Source-Sans-Pro/sourcesanspro-regular-webfont.ttf +0 -0
- /package/dist/{docs/fonts → fonts}/Source-Sans-Pro/sourcesanspro-regular-webfont.woff +0 -0
- /package/dist/{docs/fonts → fonts}/Source-Sans-Pro/sourcesanspro-regular-webfont.woff2 +0 -0
- /package/dist/{docs/scripts → scripts}/collapse.js +0 -0
- /package/dist/{docs/scripts → scripts}/linenumber.js +0 -0
- /package/dist/{docs/scripts → scripts}/nav.js +0 -0
- /package/dist/{docs/scripts → scripts}/polyfill.js +0 -0
- /package/dist/{docs/scripts → scripts}/prettify/Apache-License-2.0.txt +0 -0
- /package/dist/{docs/scripts → scripts}/prettify/lang-css.js +0 -0
- /package/dist/{docs/scripts → scripts}/prettify/prettify.js +0 -0
- /package/dist/{docs/scripts → scripts}/search.js +0 -0
- /package/dist/{docs/styles → styles}/prettify.css +0 -0
|
@@ -27,7 +27,7 @@
|
|
|
27
27
|
|
|
28
28
|
<nav >
|
|
29
29
|
|
|
30
|
-
<h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="access.html">access</a><ul class='methods'><li data-type='method'><a href="access.html#.actionableScopes">actionableScopes</a></li><li data-type='method'><a href="access.html#.allPermissions">allPermissions</a></li><li data-type='method'><a href="access.html#.allPermissionTypes">allPermissionTypes</a></li><li data-type='method'><a href="access.html#.allUserScopes">allUserScopes</a></li><li data-type='method'><a href="access.html#.canCreate">canCreate</a></li><li data-type='method'><a href="access.html#.canDeleteItem">canDeleteItem</a></li><li data-type='method'><a href="access.html#.canEditItem">canEditItem</a></li><li data-type='method'><a href="access.html#.canEraseItem">canEraseItem</a></li><li data-type='method'><a href="access.html#.canKnowOf">canKnowOf</a></li><li data-type='method'><a href="access.html#.canListItem">canListItem</a></li><li data-type='method'><a href="access.html#.canRestoreItem">canRestoreItem</a></li><li data-type='method'><a href="access.html#.canViewItem">canViewItem</a></li><li data-type='method'><a href="access.html#.checkActionAccess">checkActionAccess</a></li><li data-type='method'><a href="access.html#.getAllDescendants">getAllDescendants</a></li><li data-type='method'><a href="access.html#.has">has</a></li><li data-type='method'><a href="access.html#.hashPermissions">hashPermissions</a></li><li data-type='method'><a href="access.html#.isAdministrator">isAdministrator</a></li><li data-type='method'><a href="access.html#.isOwner">isOwner</a></li></ul></li><li><a href="api.html">api</a><ul class='methods'><li data-type='method'><a href="api.html#.delete">delete</a></li><li data-type='method'><a href="api.html#.generateEndpointURL">generateEndpointURL</a></li><li data-type='method'><a href="api.html#.get">get</a></li><li data-type='method'><a href="api.html#.patch">patch</a></li><li data-type='method'><a href="api.html#.post">post</a></li><li data-type='method'><a href="api.html#.put">put</a></li></ul></li><li><a href="auth.html">auth</a><ul class='methods'><li data-type='method'><a href="auth.html#.changeOrganisation">changeOrganisation</a></li><li data-type='method'><a href="auth.html#.ensureValidToken">ensureValidToken</a></li><li data-type='method'><a href="auth.html#.getCurrentToken">getCurrentToken</a></li><li data-type='method'><a href="auth.html#.getCurrentUser">getCurrentUser</a></li><li data-type='method'><a href="auth.html#.impersonate">impersonate</a></li><li data-type='method'><a href="auth.html#.login">login</a></li><li data-type='method'><a href="auth.html#.logout">logout</a></li><li data-type='method'><a href="auth.html#.retrieveUserFromResetToken">retrieveUserFromResetToken</a></li><li data-type='method'><a href="auth.html#.sendResetPasswordRequest">sendResetPasswordRequest</a></li><li data-type='method'><a href="auth.html#.set">set</a></li><li data-type='method'><a href="auth.html#.sync">sync</a></li><li data-type='method'><a href="auth.html#.updateUserWithToken">updateUserWithToken</a></li></ul></li><li><a href="cache.html">cache</a><ul class='methods'><li data-type='method'><a href="cache.html#.get">get</a></li><li data-type='method'><a href="cache.html#.reset">reset</a></li></ul></li><li><a href="content.html">content</a><ul class='methods'><li data-type='method'><a href="content.html#.create">create</a></li><li data-type='method'><a href="content.html#.delete">delete</a></li><li data-type='method'><a href="content.html#.get">get</a></li><li data-type='method'><a href="content.html#.getFromSlug">getFromSlug</a></li><li data-type='method'><a href="content.html#.glossary">glossary</a></li><li data-type='method'><a href="content.html#.list">list</a></li><li data-type='method'><a href="content.html#.patch">patch</a></li><li data-type='method'><a href="content.html#.restore">restore</a></li><li data-type='method'><a href="content.html#.scopeGlossary">scopeGlossary</a></li><li data-type='method'><a href="content.html#.update">update</a></li><li data-type='method'><a href="content.html#.validateField">validateField</a></li><li data-type='method'><a href="content.html#.variables">variables</a></li></ul></li><li><a href="files.html">files</a><ul class='methods'><li data-type='method'><a href="files.html#.downloadUrl">downloadUrl</a></li><li data-type='method'><a href="files.html#.filesize">filesize</a></li><li data-type='method'><a href="files.html#.getBinaryTypeFromMime">getBinaryTypeFromMime</a></li><li data-type='method'><a href="files.html#.mediaUrl">mediaUrl</a></li></ul></li><li><a href="filter.html">filter</a><ul class='methods'><li data-type='method'><a href="filter.html#.activeFilterKeys">activeFilterKeys</a></li><li data-type='method'><a href="filter.html#.activeFilterKeys">activeFilterKeys</a></li><li data-type='method'><a href="filter.html#.activeFilterOperators">activeFilterOperators</a></li><li data-type='method'><a href="filter.html#.activeFilters">activeFilters</a></li><li data-type='method'><a href="filter.html#.activeFilterValues">activeFilterValues</a></li><li data-type='method'><a href="filter.html#.filterChangeString">filterChangeString</a></li><li data-type='method'><a href="filter.html#.isValidFilter">isValidFilter</a></li></ul></li><li><a href="socket.html">socket</a><ul class='methods'><li data-type='method'><a href="socket.html#.channel">channel</a></li><li data-type='method'><a href="socket.html#.close">close</a></li><li data-type='method'><a href="socket.html#.connect">connect</a></li><li data-type='method'><a href="socket.html#.reconnect">reconnect</a></li><li data-type='method'><a href="socket.html#.subscribe">subscribe</a></li><li data-type='method'><a href="socket.html#.unsubscribe">unsubscribe</a></li></ul></li><li><a href="system.html">system</a><ul class='methods'><li data-type='method'><a href="system.html#.countries">countries</a></li></ul></li></ul>
|
|
30
|
+
<h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="access.html">access</a><ul class='methods'><li data-type='method'><a href="access.html#.actionableScopes">actionableScopes</a></li><li data-type='method'><a href="access.html#.actionableScopes">actionableScopes</a></li><li data-type='method'><a href="access.html#.allPermissions">allPermissions</a></li><li data-type='method'><a href="access.html#.allPermissions">allPermissions</a></li><li data-type='method'><a href="access.html#.allPermissionTypes">allPermissionTypes</a></li><li data-type='method'><a href="access.html#.allPermissionTypes">allPermissionTypes</a></li><li data-type='method'><a href="access.html#.allUserScopes">allUserScopes</a></li><li data-type='method'><a href="access.html#.allUserScopes">allUserScopes</a></li><li data-type='method'><a href="access.html#.canCreate">canCreate</a></li><li data-type='method'><a href="access.html#.canCreate">canCreate</a></li><li data-type='method'><a href="access.html#.canDeleteItem">canDeleteItem</a></li><li data-type='method'><a href="access.html#.canDeleteItem">canDeleteItem</a></li><li data-type='method'><a href="access.html#.canEditItem">canEditItem</a></li><li data-type='method'><a href="access.html#.canEditItem">canEditItem</a></li><li data-type='method'><a href="access.html#.canEraseItem">canEraseItem</a></li><li data-type='method'><a href="access.html#.canEraseItem">canEraseItem</a></li><li data-type='method'><a href="access.html#.canKnowOf">canKnowOf</a></li><li data-type='method'><a href="access.html#.canKnowOf">canKnowOf</a></li><li data-type='method'><a href="access.html#.canListItem">canListItem</a></li><li data-type='method'><a href="access.html#.canListItem">canListItem</a></li><li data-type='method'><a href="access.html#.canRestoreItem">canRestoreItem</a></li><li data-type='method'><a href="access.html#.canRestoreItem">canRestoreItem</a></li><li data-type='method'><a href="access.html#.canViewItem">canViewItem</a></li><li data-type='method'><a href="access.html#.canViewItem">canViewItem</a></li><li data-type='method'><a href="access.html#.checkActionAccess">checkActionAccess</a></li><li data-type='method'><a href="access.html#.checkActionAccess">checkActionAccess</a></li><li data-type='method'><a href="access.html#.getAllDescendants">getAllDescendants</a></li><li data-type='method'><a href="access.html#.getAllDescendants">getAllDescendants</a></li><li data-type='method'><a href="access.html#.has">has</a></li><li data-type='method'><a href="access.html#.has">has</a></li><li data-type='method'><a href="access.html#.hasFeature">hasFeature</a></li><li data-type='method'><a href="access.html#.hasFeature">hasFeature</a></li><li data-type='method'><a href="access.html#.hashPermissions">hashPermissions</a></li><li data-type='method'><a href="access.html#.hashPermissions">hashPermissions</a></li><li data-type='method'><a href="access.html#.isAdministrator">isAdministrator</a></li><li data-type='method'><a href="access.html#.isAdministrator">isAdministrator</a></li><li data-type='method'><a href="access.html#.isAssignee">isAssignee</a></li><li data-type='method'><a href="access.html#.isAssignee">isAssignee</a></li><li data-type='method'><a href="access.html#.isOwner">isOwner</a></li><li data-type='method'><a href="access.html#.isOwner">isOwner</a></li></ul></li><li></li><li><a href="api.html">api</a><ul class='methods'><li data-type='method'><a href="api.html#.generateEndpointURL">generateEndpointURL</a></li><li data-type='method'><a href="api.html#.generateEndpointURL">generateEndpointURL</a></li></ul></li><li></li><li><a href="auth.html">auth</a><ul class='methods'><li data-type='method'><a href="auth.html#.changeOrganisation">changeOrganisation</a></li><li data-type='method'><a href="auth.html#.changeOrganisation">changeOrganisation</a></li><li data-type='method'><a href="auth.html#.ensureValidToken">ensureValidToken</a></li><li data-type='method'><a href="auth.html#.ensureValidToken">ensureValidToken</a></li><li data-type='method'><a href="auth.html#.getCurrentToken">getCurrentToken</a></li><li data-type='method'><a href="auth.html#.getCurrentToken">getCurrentToken</a></li><li data-type='method'><a href="auth.html#.getCurrentUser">getCurrentUser</a></li><li data-type='method'><a href="auth.html#.getCurrentUser">getCurrentUser</a></li><li data-type='method'><a href="auth.html#.impersonate">impersonate</a></li><li data-type='method'><a href="auth.html#.impersonate">impersonate</a></li><li data-type='method'><a href="auth.html#.login">login</a></li><li data-type='method'><a href="auth.html#.login">login</a></li><li data-type='method'><a href="auth.html#.logout">logout</a></li><li data-type='method'><a href="auth.html#.logout">logout</a></li><li data-type='method'><a href="auth.html#.retrieveUserFromResetToken">retrieveUserFromResetToken</a></li><li data-type='method'><a href="auth.html#.retrieveUserFromResetToken">retrieveUserFromResetToken</a></li><li data-type='method'><a href="auth.html#.sendResetPasswordRequest">sendResetPasswordRequest</a></li><li data-type='method'><a href="auth.html#.sendResetPasswordRequest">sendResetPasswordRequest</a></li><li data-type='method'><a href="auth.html#.set">set</a></li><li data-type='method'><a href="auth.html#.set">set</a></li><li data-type='method'><a href="auth.html#.sync">sync</a></li><li data-type='method'><a href="auth.html#.sync">sync</a></li><li data-type='method'><a href="auth.html#.updateUserWithToken">updateUserWithToken</a></li><li data-type='method'><a href="auth.html#.updateUserWithToken">updateUserWithToken</a></li></ul></li><li></li><li><a href="cache.html">cache</a><ul class='methods'><li data-type='method'><a href="cache.html#.get">get</a></li><li data-type='method'><a href="cache.html#.get">get</a></li><li data-type='method'><a href="cache.html#.reset">reset</a></li><li data-type='method'><a href="cache.html#.reset">reset</a></li></ul></li><li></li><li><a href="content.html">content</a><ul class='methods'><li data-type='method'><a href="content.html#.create">create</a></li><li data-type='method'><a href="content.html#.create">create</a></li><li data-type='method'><a href="content.html#.delete">delete</a></li><li data-type='method'><a href="content.html#.delete">delete</a></li><li data-type='method'><a href="content.html#.get">get</a></li><li data-type='method'><a href="content.html#.get">get</a></li><li data-type='method'><a href="content.html#.getFromSlug">getFromSlug</a></li><li data-type='method'><a href="content.html#.getFromSlug">getFromSlug</a></li><li data-type='method'><a href="content.html#.glossary">glossary</a></li><li data-type='method'><a href="content.html#.glossary">glossary</a></li><li data-type='method'><a href="content.html#.list">list</a></li><li data-type='method'><a href="content.html#.list">list</a></li><li data-type='method'><a href="content.html#.patch">patch</a></li><li data-type='method'><a href="content.html#.patch">patch</a></li><li data-type='method'><a href="content.html#.restore">restore</a></li><li data-type='method'><a href="content.html#.restore">restore</a></li><li data-type='method'><a href="content.html#.scopeGlossary">scopeGlossary</a></li><li data-type='method'><a href="content.html#.scopeGlossary">scopeGlossary</a></li><li data-type='method'><a href="content.html#.update">update</a></li><li data-type='method'><a href="content.html#.update">update</a></li><li data-type='method'><a href="content.html#.validateField">validateField</a></li><li data-type='method'><a href="content.html#.validateField">validateField</a></li><li data-type='method'><a href="content.html#.variables">variables</a></li><li data-type='method'><a href="content.html#.variables">variables</a></li></ul></li><li></li><li><a href="files.html">files</a><ul class='methods'><li data-type='method'><a href="files.html#.downloadUrl">downloadUrl</a></li><li data-type='method'><a href="files.html#.downloadUrl">downloadUrl</a></li><li data-type='method'><a href="files.html#.duration">duration</a></li><li data-type='method'><a href="files.html#.duration">duration</a></li><li data-type='method'><a href="files.html#.filesize">filesize</a></li><li data-type='method'><a href="files.html#.filesize">filesize</a></li><li data-type='method'><a href="files.html#.getBinaryTypeFromMime">getBinaryTypeFromMime</a></li><li data-type='method'><a href="files.html#.getBinaryTypeFromMime">getBinaryTypeFromMime</a></li><li data-type='method'><a href="files.html#.mediaUrl">mediaUrl</a></li><li data-type='method'><a href="files.html#.mediaUrl">mediaUrl</a></li></ul></li><li></li><li><a href="filter.html">filter</a><ul class='methods'><li data-type='method'><a href="filter.html#.activeFilterKeys">activeFilterKeys</a></li><li data-type='method'><a href="filter.html#.activeFilterKeys">activeFilterKeys</a></li><li data-type='method'><a href="filter.html#.activeFilterKeys">activeFilterKeys</a></li><li data-type='method'><a href="filter.html#.activeFilterKeys">activeFilterKeys</a></li><li data-type='method'><a href="filter.html#.activeFilterOperators">activeFilterOperators</a></li><li data-type='method'><a href="filter.html#.activeFilterOperators">activeFilterOperators</a></li><li data-type='method'><a href="filter.html#.activeFilters">activeFilters</a></li><li data-type='method'><a href="filter.html#.activeFilters">activeFilters</a></li><li data-type='method'><a href="filter.html#.activeFilterValues">activeFilterValues</a></li><li data-type='method'><a href="filter.html#.activeFilterValues">activeFilterValues</a></li><li data-type='method'><a href="filter.html#.filterChangeString">filterChangeString</a></li><li data-type='method'><a href="filter.html#.filterChangeString">filterChangeString</a></li><li data-type='method'><a href="filter.html#.isValidFilter">isValidFilter</a></li><li data-type='method'><a href="filter.html#.isValidFilter">isValidFilter</a></li></ul></li><li></li><li><a href="geo.html">geo</a><ul class='methods'><li data-type='method'><a href="geo.html#.distance">distance</a></li><li data-type='method'><a href="geo.html#.distance">distance</a></li><li data-type='method'><a href="geo.html#.getDefaultCountry">getDefaultCountry</a></li><li data-type='method'><a href="geo.html#.getDefaultCountry">getDefaultCountry</a></li><li data-type='method'><a href="geo.html#.getDefaultTimezone">getDefaultTimezone</a></li><li data-type='method'><a href="geo.html#.getDefaultTimezone">getDefaultTimezone</a></li><li data-type='method'><a href="geo.html#.getPosition">getPosition</a></li><li data-type='method'><a href="geo.html#.getPosition">getPosition</a></li><li data-type='method'><a href="geo.html#.stopWatchPosition">stopWatchPosition</a></li><li data-type='method'><a href="geo.html#.stopWatchPosition">stopWatchPosition</a></li><li data-type='method'><a href="geo.html#.stopWatchPosition">stopWatchPosition</a></li><li data-type='method'><a href="geo.html#.stopWatchPosition">stopWatchPosition</a></li></ul></li><li></li><li><a href="module-QikStorage-CookieStorageAdapter.html">CookieStorageAdapter</a><ul class='methods'><li data-type='method'><a href="module-QikStorage-CookieStorageAdapter.html#getCookieOptions">getCookieOptions</a></li><li data-type='method'><a href="module-QikStorage-CookieStorageAdapter.html#getCookieOptions">getCookieOptions</a></li><li data-type='method'><a href="module-QikStorage-CookieStorageAdapter.html#isCookieMode">isCookieMode</a></li><li data-type='method'><a href="module-QikStorage-CookieStorageAdapter.html#isCookieMode">isCookieMode</a></li></ul></li><li></li><li><a href="module-QikStorage-LocalStorageAdapter.html">LocalStorageAdapter</a></li><li></li><li><a href="module-QikStorage-StorageAdapter.html">StorageAdapter</a><ul class='methods'><li data-type='method'><a href="module-QikStorage-StorageAdapter.html#clearUser">clearUser</a></li><li data-type='method'><a href="module-QikStorage-StorageAdapter.html#clearUser">clearUser</a></li><li data-type='method'><a href="module-QikStorage-StorageAdapter.html#getAccessToken">getAccessToken</a></li><li data-type='method'><a href="module-QikStorage-StorageAdapter.html#getAccessToken">getAccessToken</a></li><li data-type='method'><a href="module-QikStorage-StorageAdapter.html#getRefreshToken">getRefreshToken</a></li><li data-type='method'><a href="module-QikStorage-StorageAdapter.html#getRefreshToken">getRefreshToken</a></li><li data-type='method'><a href="module-QikStorage-StorageAdapter.html#getTokenExpiry">getTokenExpiry</a></li><li data-type='method'><a href="module-QikStorage-StorageAdapter.html#getTokenExpiry">getTokenExpiry</a></li><li data-type='method'><a href="module-QikStorage-StorageAdapter.html#getUser">getUser</a></li><li data-type='method'><a href="module-QikStorage-StorageAdapter.html#getUser">getUser</a></li><li data-type='method'><a href="module-QikStorage-StorageAdapter.html#isAvailable">isAvailable</a></li><li data-type='method'><a href="module-QikStorage-StorageAdapter.html#isAvailable">isAvailable</a></li><li data-type='method'><a href="module-QikStorage-StorageAdapter.html#setUser">setUser</a></li><li data-type='method'><a href="module-QikStorage-StorageAdapter.html#setUser">setUser</a></li></ul></li><li></li><li><a href="socket.html">socket</a><ul class='methods'><li data-type='method'><a href="socket.html#.channel">channel</a></li><li data-type='method'><a href="socket.html#.channel">channel</a></li><li data-type='method'><a href="socket.html#.close">close</a></li><li data-type='method'><a href="socket.html#.close">close</a></li><li data-type='method'><a href="socket.html#.connect">connect</a></li><li data-type='method'><a href="socket.html#.connect">connect</a></li><li data-type='method'><a href="socket.html#.reconnect">reconnect</a></li><li data-type='method'><a href="socket.html#.reconnect">reconnect</a></li><li data-type='method'><a href="socket.html#.subscribe">subscribe</a></li><li data-type='method'><a href="socket.html#.subscribe">subscribe</a></li><li data-type='method'><a href="socket.html#.unsubscribe">unsubscribe</a></li><li data-type='method'><a href="socket.html#.unsubscribe">unsubscribe</a></li></ul></li><li></li><li><a href="system.html">system</a><ul class='methods'><li data-type='method'><a href="system.html#.countries">countries</a></li><li data-type='method'><a href="system.html#.countries">countries</a></li></ul></li><li></li></ul><h3>Modules</h3><ul><li><a href="module-QikStorage.html">QikStorage</a><ul class='methods'><li data-type='method'><a href="module-QikStorage.html#.createStorageAdapter">createStorageAdapter</a></li><li data-type='method'><a href="module-QikStorage.html#.createStorageAdapter">createStorageAdapter</a></li></ul></li><li></li></ul><h3>Global</h3><ul><li><a href="global.html#EventDispatcher">EventDispatcher</a></li></ul>
|
|
31
31
|
</nav>
|
|
32
32
|
|
|
33
33
|
<div id="main">
|
|
@@ -42,8 +42,8 @@
|
|
|
42
42
|
|
|
43
43
|
<section>
|
|
44
44
|
<article>
|
|
45
|
-
<pre class="prettyprint source linenums"><code>import
|
|
46
|
-
import {
|
|
45
|
+
<pre class="prettyprint source linenums"><code>import { EventDispatcher } from './qik.utils.js';
|
|
46
|
+
import { createStorageAdapter } from './qik.storage.js';
|
|
47
47
|
|
|
48
48
|
///////////////////////////////////////////////////
|
|
49
49
|
|
|
@@ -67,19 +67,27 @@ var QikAuth = function(qik) {
|
|
|
67
67
|
|
|
68
68
|
///////////////////////////////////////////////////
|
|
69
69
|
|
|
70
|
-
|
|
71
|
-
|
|
70
|
+
// Create storage adapter based on configuration
|
|
71
|
+
const storageAdapter = createStorageAdapter({
|
|
72
|
+
useHttpOnlyCookies: qik.useHttpOnlyCookies,
|
|
73
|
+
cookieConfig: qik.cookieConfig
|
|
74
|
+
});
|
|
75
|
+
|
|
72
76
|
const tokenBufferSeconds = 10;
|
|
73
77
|
|
|
74
78
|
///////////////////////////////////////////////////
|
|
75
79
|
|
|
76
80
|
const service = {
|
|
77
81
|
debug: false,
|
|
82
|
+
storageAdapter: storageAdapter,
|
|
78
83
|
}
|
|
79
84
|
|
|
85
|
+
// Backwards compatibility - keep store reference
|
|
80
86
|
Object.defineProperty(service, 'store', {
|
|
81
|
-
|
|
82
|
-
|
|
87
|
+
get: function() {
|
|
88
|
+
return { user: storageAdapter.getUser() };
|
|
89
|
+
},
|
|
90
|
+
enumerable: true
|
|
83
91
|
});
|
|
84
92
|
|
|
85
93
|
//Create a new dispatcher
|
|
@@ -91,7 +99,7 @@ var QikAuth = function(qik) {
|
|
|
91
99
|
function dispatch(parameters) {
|
|
92
100
|
|
|
93
101
|
//Get the current user
|
|
94
|
-
var user =
|
|
102
|
+
var user = storageAdapter.getUser();
|
|
95
103
|
|
|
96
104
|
//Dispatch the change to the listeners
|
|
97
105
|
if (service.onChange) {
|
|
@@ -119,8 +127,9 @@ var QikAuth = function(qik) {
|
|
|
119
127
|
|
|
120
128
|
service.set = function(user, parameters, stopDispatch) {
|
|
121
129
|
|
|
122
|
-
|
|
123
|
-
|
|
130
|
+
const currentUser = storageAdapter.getUser();
|
|
131
|
+
if (JSON.stringify(currentUser) != JSON.stringify(user)) {
|
|
132
|
+
storageAdapter.setUser(user);
|
|
124
133
|
if (!stopDispatch) {
|
|
125
134
|
return dispatch(parameters)
|
|
126
135
|
}
|
|
@@ -139,7 +148,7 @@ var QikAuth = function(qik) {
|
|
|
139
148
|
*/
|
|
140
149
|
|
|
141
150
|
service.logout = function() {
|
|
142
|
-
|
|
151
|
+
storageAdapter.clearUser();
|
|
143
152
|
qik.cache.reset();
|
|
144
153
|
return dispatch()
|
|
145
154
|
}
|
|
@@ -310,19 +319,19 @@ var QikAuth = function(qik) {
|
|
|
310
319
|
|
|
311
320
|
if (!credentials) {
|
|
312
321
|
return reject({
|
|
313
|
-
message: '
|
|
322
|
+
message: 'Login requires an email and password',
|
|
314
323
|
})
|
|
315
324
|
}
|
|
316
325
|
|
|
317
326
|
if (!credentials.email || !credentials.email.length) {
|
|
318
327
|
return reject({
|
|
319
|
-
message: '
|
|
328
|
+
message: 'An email address is required to log in',
|
|
320
329
|
})
|
|
321
330
|
}
|
|
322
331
|
|
|
323
332
|
if (!credentials.password || !credentials.password.length) {
|
|
324
333
|
return reject({
|
|
325
|
-
message: '
|
|
334
|
+
message: 'A password is required to log in',
|
|
326
335
|
})
|
|
327
336
|
}
|
|
328
337
|
|
|
@@ -332,6 +341,15 @@ var QikAuth = function(qik) {
|
|
|
332
341
|
bypassInterceptor: true
|
|
333
342
|
}
|
|
334
343
|
|
|
344
|
+
// Check if we're in cookie mode
|
|
345
|
+
const isCookieMode = storageAdapter.isCookieMode && storageAdapter.isCookieMode();
|
|
346
|
+
|
|
347
|
+
if (isCookieMode) {
|
|
348
|
+
// Signal to backend that we want cookie-based auth
|
|
349
|
+
credentials.useCookies = true;
|
|
350
|
+
postOptions.withCredentials = true;
|
|
351
|
+
}
|
|
352
|
+
|
|
335
353
|
/////////////////////////////////////////////
|
|
336
354
|
|
|
337
355
|
var url = `${qik.apiURL}/user/login`;
|
|
@@ -349,7 +367,6 @@ var QikAuth = function(qik) {
|
|
|
349
367
|
|
|
350
368
|
if (autoAuthenticate) {
|
|
351
369
|
service.set(res.data);
|
|
352
|
-
|
|
353
370
|
}
|
|
354
371
|
|
|
355
372
|
resolve(res);
|
|
@@ -388,44 +405,44 @@ var QikAuth = function(qik) {
|
|
|
388
405
|
|
|
389
406
|
if (!credentials) {
|
|
390
407
|
return reject({
|
|
391
|
-
message: '
|
|
408
|
+
message: 'Signup details are required',
|
|
392
409
|
})
|
|
393
410
|
}
|
|
394
411
|
|
|
395
412
|
if (!credentials.firstName || !credentials.firstName.length) {
|
|
396
413
|
return reject({
|
|
397
|
-
message: '
|
|
414
|
+
message: 'Please provide a first name',
|
|
398
415
|
})
|
|
399
416
|
}
|
|
400
417
|
|
|
401
418
|
if (!credentials.lastName || !credentials.lastName.length) {
|
|
402
419
|
return reject({
|
|
403
|
-
message: '
|
|
420
|
+
message: 'Please provide a last name',
|
|
404
421
|
})
|
|
405
422
|
}
|
|
406
423
|
|
|
407
424
|
if (!credentials.email || !credentials.email.length) {
|
|
408
425
|
return reject({
|
|
409
|
-
message: '
|
|
426
|
+
message: 'An email address is required to sign up',
|
|
410
427
|
})
|
|
411
428
|
}
|
|
412
429
|
|
|
413
430
|
|
|
414
431
|
if (!credentials.password || !credentials.password.length) {
|
|
415
432
|
return reject({
|
|
416
|
-
message: '
|
|
433
|
+
message: 'A password is required to sign up',
|
|
417
434
|
})
|
|
418
435
|
}
|
|
419
436
|
|
|
420
437
|
if (!credentials.confirmPassword || !credentials.confirmPassword.length) {
|
|
421
438
|
return reject({
|
|
422
|
-
message: '
|
|
439
|
+
message: 'Please confirm your password',
|
|
423
440
|
})
|
|
424
441
|
}
|
|
425
442
|
|
|
426
443
|
if (credentials.confirmPassword != credentials.password) {
|
|
427
444
|
return reject({
|
|
428
|
-
message: '
|
|
445
|
+
message: 'Password and confirmation do not match',
|
|
429
446
|
})
|
|
430
447
|
}
|
|
431
448
|
|
|
@@ -435,6 +452,15 @@ var QikAuth = function(qik) {
|
|
|
435
452
|
bypassInterceptor: true
|
|
436
453
|
}
|
|
437
454
|
|
|
455
|
+
// Check if we're in cookie mode
|
|
456
|
+
const isCookieMode = storageAdapter.isCookieMode && storageAdapter.isCookieMode();
|
|
457
|
+
|
|
458
|
+
if (isCookieMode) {
|
|
459
|
+
// Signal to backend that we want cookie-based auth
|
|
460
|
+
credentials.useCookies = true;
|
|
461
|
+
postOptions.withCredentials = true;
|
|
462
|
+
}
|
|
463
|
+
|
|
438
464
|
/////////////////////////////////////////////
|
|
439
465
|
|
|
440
466
|
var url = `${qik.apiURL}/user/signup`;
|
|
@@ -585,13 +611,13 @@ var QikAuth = function(qik) {
|
|
|
585
611
|
|
|
586
612
|
if (!details) {
|
|
587
613
|
return Promise.reject({
|
|
588
|
-
message: '
|
|
614
|
+
message: 'Please provide your account details to reset your password',
|
|
589
615
|
})
|
|
590
616
|
}
|
|
591
617
|
|
|
592
618
|
if (!details.email || !details.email.length) {
|
|
593
619
|
return Promise.reject({
|
|
594
|
-
message: '
|
|
620
|
+
message: 'An email address is required for password reset',
|
|
595
621
|
})
|
|
596
622
|
}
|
|
597
623
|
|
|
@@ -625,18 +651,29 @@ var QikAuth = function(qik) {
|
|
|
625
651
|
|
|
626
652
|
var currentUser = service.getCurrentUser();
|
|
627
653
|
if (!currentUser) {
|
|
628
|
-
|
|
629
654
|
return Promise.reject('No user');
|
|
630
655
|
}
|
|
631
656
|
|
|
657
|
+
// Check if we're in cookie mode
|
|
658
|
+
const isCookieMode = storageAdapter.isCookieMode && storageAdapter.isCookieMode();
|
|
659
|
+
|
|
660
|
+
if (isCookieMode) {
|
|
661
|
+
// In cookie mode, we can't check token expiry from JavaScript
|
|
662
|
+
// Just attempt a refresh if forced, otherwise let the server handle it
|
|
663
|
+
if (forceRefresh) {
|
|
664
|
+
return await service.refreshAccessToken();
|
|
665
|
+
} else {
|
|
666
|
+
// Return a placeholder - server will handle token validation
|
|
667
|
+
return 'cookie_mode_token';
|
|
668
|
+
}
|
|
669
|
+
}
|
|
670
|
+
|
|
671
|
+
// localStorage mode - existing token validation logic
|
|
632
672
|
var { token } = currentUser;
|
|
633
673
|
if (!token) {
|
|
634
|
-
|
|
635
674
|
return Promise.reject('No token');
|
|
636
675
|
}
|
|
637
676
|
|
|
638
|
-
/////////////////////////////////////////////////////
|
|
639
|
-
|
|
640
677
|
//Check our date
|
|
641
678
|
var now = new Date();
|
|
642
679
|
|
|
@@ -644,25 +681,18 @@ var QikAuth = function(qik) {
|
|
|
644
681
|
//retiring the token
|
|
645
682
|
now.setSeconds(now.getSeconds() + tokenBufferSeconds);
|
|
646
683
|
|
|
647
|
-
/////////////////////////////////////////////////////
|
|
648
|
-
|
|
649
684
|
var expires = new Date(token.expires);
|
|
650
685
|
|
|
651
686
|
if (forceRefresh) {
|
|
652
|
-
console.log('force refresh valid token', token.refreshToken)
|
|
653
687
|
return await service.refreshAccessToken(token.refreshToken);
|
|
654
688
|
}
|
|
655
689
|
|
|
656
690
|
//If the token is still fresh
|
|
657
691
|
if (now < expires) {
|
|
658
|
-
|
|
659
692
|
return token;
|
|
660
693
|
} else {
|
|
661
|
-
|
|
662
694
|
return await service.refreshAccessToken(token.refreshToken);
|
|
663
695
|
}
|
|
664
|
-
|
|
665
|
-
|
|
666
696
|
}
|
|
667
697
|
|
|
668
698
|
///////////////////////////////////////////////////
|
|
@@ -671,78 +701,77 @@ var QikAuth = function(qik) {
|
|
|
671
701
|
|
|
672
702
|
service.refreshAccessToken = async function(refreshToken) {
|
|
673
703
|
|
|
674
|
-
// /////////////////////////////////////////////
|
|
675
|
-
|
|
676
|
-
// if (appContext) {
|
|
677
|
-
|
|
678
|
-
// } else {
|
|
679
|
-
|
|
680
|
-
// }
|
|
681
|
-
|
|
682
|
-
// /////////////////////////////////////////////
|
|
683
|
-
|
|
684
704
|
//If there is already a request in progress
|
|
685
705
|
if (refreshContext.inflightRefreshRequest) {
|
|
686
|
-
|
|
687
706
|
return refreshContext.inflightRefreshRequest;
|
|
688
707
|
}
|
|
689
708
|
|
|
690
709
|
/////////////////////////////////////////////////////
|
|
691
710
|
|
|
692
|
-
//
|
|
711
|
+
// Check if we're in cookie mode
|
|
712
|
+
const isCookieMode = storageAdapter.isCookieMode && storageAdapter.isCookieMode();
|
|
693
713
|
|
|
714
|
+
//Create a refresh request
|
|
694
715
|
refreshContext.inflightRefreshRequest = new Promise(function(resolve, reject) {
|
|
695
716
|
|
|
696
|
-
|
|
697
|
-
|
|
717
|
+
let requestBody = {};
|
|
718
|
+
let requestOptions = {
|
|
719
|
+
bypassInterceptor: true,
|
|
720
|
+
withoutToken: true,
|
|
721
|
+
};
|
|
698
722
|
|
|
699
|
-
|
|
700
|
-
|
|
701
|
-
|
|
702
|
-
|
|
703
|
-
|
|
704
|
-
|
|
723
|
+
if (isCookieMode) {
|
|
724
|
+
// In cookie mode, refresh token is sent via httpOnly cookie
|
|
725
|
+
// No need to include it in the request body
|
|
726
|
+
requestOptions.withCredentials = true;
|
|
727
|
+
} else {
|
|
728
|
+
// In localStorage mode, send refresh token in request body
|
|
729
|
+
if (!refreshToken) {
|
|
730
|
+
refreshContext.inflightRefreshRequest = null;
|
|
731
|
+
return reject(new Error('No refresh token provided for localStorage mode'));
|
|
732
|
+
}
|
|
733
|
+
requestBody.refreshToken = refreshToken;
|
|
734
|
+
}
|
|
735
|
+
|
|
736
|
+
qik.api.post(`/user/refresh`, requestBody, requestOptions)
|
|
705
737
|
.then(function tokenRefreshComplete(res) {
|
|
706
738
|
|
|
707
739
|
//Update the user with any changes
|
|
708
740
|
//returned back from the refresh request
|
|
709
|
-
if (!res) {
|
|
710
|
-
|
|
741
|
+
if (!res || !res.data) {
|
|
711
742
|
refreshContext.inflightRefreshRequest = null;
|
|
712
|
-
return reject();
|
|
713
|
-
|
|
714
|
-
} else {
|
|
715
|
-
//Update with our new session
|
|
716
|
-
service.set(res.data);
|
|
743
|
+
return reject(new Error('Invalid refresh response'));
|
|
744
|
+
}
|
|
717
745
|
|
|
746
|
+
//Update with our new session
|
|
747
|
+
service.set(res.data);
|
|
748
|
+
dispatch();
|
|
718
749
|
|
|
719
|
-
|
|
750
|
+
// Return appropriate response based on mode
|
|
751
|
+
if (isCookieMode) {
|
|
752
|
+
// In cookie mode, just indicate success - tokens are in cookies
|
|
753
|
+
resolve('cookie_token_refreshed');
|
|
754
|
+
} else {
|
|
755
|
+
// In localStorage mode, return the actual access token
|
|
756
|
+
const newToken = res.data.token?.accessToken;
|
|
757
|
+
if (newToken) {
|
|
758
|
+
resolve(newToken);
|
|
759
|
+
} else {
|
|
760
|
+
reject(new Error('No access token in refresh response'));
|
|
761
|
+
}
|
|
720
762
|
}
|
|
721
763
|
|
|
722
|
-
//Resolve with the new token
|
|
723
|
-
resolve(res.data.token);
|
|
724
|
-
|
|
725
764
|
//Remove the inflight request
|
|
726
765
|
setTimeout(function() {
|
|
727
766
|
refreshContext.inflightRefreshRequest = null;
|
|
728
|
-
})
|
|
729
|
-
|
|
767
|
+
});
|
|
730
768
|
|
|
731
769
|
})
|
|
732
770
|
.catch(function(err) {
|
|
733
|
-
|
|
734
|
-
|
|
735
|
-
//TODO Check if invalid_refresh_token
|
|
736
|
-
|
|
737
|
-
|
|
738
|
-
|
|
739
771
|
setTimeout(function() {
|
|
740
772
|
refreshContext.inflightRefreshRequest = null;
|
|
741
773
|
});
|
|
742
774
|
reject(err);
|
|
743
|
-
|
|
744
|
-
|
|
745
|
-
|
|
746
775
|
});
|
|
747
776
|
});
|
|
748
777
|
|
|
@@ -752,8 +781,6 @@ var QikAuth = function(qik) {
|
|
|
752
781
|
|
|
753
782
|
///////////////////////////////////////////////////
|
|
754
783
|
|
|
755
|
-
var retryCount = 0;
|
|
756
|
-
|
|
757
784
|
/**
|
|
758
785
|
* @alias auth.sync
|
|
759
786
|
* @description A useful function to sync the current user session with the server.
|
|
@@ -767,33 +794,28 @@ var QikAuth = function(qik) {
|
|
|
767
794
|
return qik.api.get('/user')
|
|
768
795
|
.then(function(res) {
|
|
769
796
|
|
|
770
|
-
|
|
771
797
|
if (res.data) {
|
|
772
|
-
|
|
773
|
-
|
|
798
|
+
const currentUser = storageAdapter.getUser();
|
|
799
|
+
if (currentUser) {
|
|
800
|
+
const updatedUser = { ...currentUser };
|
|
801
|
+
if (updatedUser.session) {
|
|
802
|
+
Object.assign(updatedUser.session, res.data);
|
|
803
|
+
} else {
|
|
804
|
+
updatedUser.session = res.data;
|
|
805
|
+
}
|
|
806
|
+
service.set(updatedUser);
|
|
807
|
+
} else {
|
|
808
|
+
service.set(res.data);
|
|
774
809
|
}
|
|
775
810
|
} else {
|
|
776
811
|
service.set(null);
|
|
777
812
|
}
|
|
778
813
|
|
|
779
|
-
|
|
780
|
-
retryCount = 0;
|
|
781
|
-
|
|
782
814
|
dispatch();
|
|
783
815
|
})
|
|
784
816
|
.catch(function(err) {
|
|
785
|
-
|
|
786
|
-
// if (retryCount > 2) {
|
|
787
817
|
service.set(null);
|
|
788
|
-
retryCount = 0;
|
|
789
818
|
dispatch();
|
|
790
|
-
// } else {
|
|
791
|
-
|
|
792
|
-
// retryCount++;
|
|
793
|
-
// service.sync();
|
|
794
|
-
// }
|
|
795
|
-
|
|
796
|
-
|
|
797
819
|
});
|
|
798
820
|
}
|
|
799
821
|
|
|
@@ -807,7 +829,7 @@ var QikAuth = function(qik) {
|
|
|
807
829
|
* const me = sdk.auth.getCurrentUser();
|
|
808
830
|
*/
|
|
809
831
|
service.getCurrentUser = function() {
|
|
810
|
-
return
|
|
832
|
+
return storageAdapter.getUser();
|
|
811
833
|
}
|
|
812
834
|
|
|
813
835
|
|
|
@@ -821,7 +843,13 @@ var QikAuth = function(qik) {
|
|
|
821
843
|
*/
|
|
822
844
|
service.getCurrentToken = function() {
|
|
823
845
|
|
|
846
|
+
// First try to get token from storage adapter
|
|
847
|
+
var accessToken = storageAdapter.getAccessToken();
|
|
848
|
+
if (accessToken) {
|
|
849
|
+
return accessToken;
|
|
850
|
+
}
|
|
824
851
|
|
|
852
|
+
// For localStorage mode, check user object for token
|
|
825
853
|
var user = service.getCurrentUser();
|
|
826
854
|
|
|
827
855
|
//User is not logged in
|
|
@@ -863,7 +891,21 @@ var QikAuth = function(qik) {
|
|
|
863
891
|
|
|
864
892
|
//////////////////////////////
|
|
865
893
|
|
|
866
|
-
|
|
894
|
+
// Check if we're in cookie mode
|
|
895
|
+
const isCookieMode = storageAdapter.isCookieMode && storageAdapter.isCookieMode();
|
|
896
|
+
|
|
897
|
+
if (isCookieMode) {
|
|
898
|
+
// In cookie mode, browser automatically includes httpOnly cookies
|
|
899
|
+
// We don't need to manually add Authorization headers or handle token refresh
|
|
900
|
+
// Just ensure withCredentials is set for cross-origin requests
|
|
901
|
+
if (!originalRequest.withCredentials) {
|
|
902
|
+
originalRequest.withCredentials = true;
|
|
903
|
+
}
|
|
904
|
+
return originalRequest;
|
|
905
|
+
}
|
|
906
|
+
|
|
907
|
+
// localStorage mode - existing logic for manual token management
|
|
908
|
+
var userDetails = service.getCurrentUser();
|
|
867
909
|
var accessToken;
|
|
868
910
|
var refreshToken;
|
|
869
911
|
var expiryDate;
|
|
@@ -883,11 +925,8 @@ var QikAuth = function(qik) {
|
|
|
883
925
|
if (accessToken) {
|
|
884
926
|
//Set the token of the request as the user's access token
|
|
885
927
|
originalRequest.headers['Authorization'] = `Bearer ${accessToken}`;
|
|
886
|
-
|
|
887
|
-
|
|
888
928
|
} else {
|
|
889
929
|
//Return the original request without a token
|
|
890
|
-
|
|
891
930
|
return originalRequest;
|
|
892
931
|
}
|
|
893
932
|
|
|
@@ -895,8 +934,6 @@ var QikAuth = function(qik) {
|
|
|
895
934
|
|
|
896
935
|
//If no refresh token
|
|
897
936
|
if (!refreshToken) {
|
|
898
|
-
|
|
899
|
-
|
|
900
937
|
//Continue with the original request
|
|
901
938
|
return originalRequest;
|
|
902
939
|
}
|
|
@@ -979,7 +1016,8 @@ var QikAuth = function(qik) {
|
|
|
979
1016
|
}
|
|
980
1017
|
|
|
981
1018
|
|
|
982
|
-
export default QikAuth
|
|
1019
|
+
export default QikAuth;
|
|
1020
|
+
</code></pre>
|
|
983
1021
|
</article>
|
|
984
1022
|
</section>
|
|
985
1023
|
|
|
@@ -993,7 +1031,7 @@ export default QikAuth;</code></pre>
|
|
|
993
1031
|
<br class="clear">
|
|
994
1032
|
|
|
995
1033
|
<footer>
|
|
996
|
-
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.11</a> on
|
|
1034
|
+
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.11</a> on Mon Jun 01 2026 23:37:17 GMT+1000 (Australian Eastern Standard Time) using the <a href="https://github.com/clenemt/docdash">docdash</a> theme.
|
|
997
1035
|
</footer>
|
|
998
1036
|
|
|
999
1037
|
<script>prettyPrint();</script>
|