@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.
Files changed (82) hide show
  1. package/README.md +1 -1
  2. package/dist/access.html +16371 -0
  3. package/dist/api.html +1503 -0
  4. package/dist/auth.html +8455 -0
  5. package/dist/cache.html +1135 -0
  6. package/dist/content.html +10067 -0
  7. package/dist/files.html +3415 -0
  8. package/dist/filter.html +4973 -0
  9. package/dist/geo.html +3851 -0
  10. package/dist/global.html +328 -0
  11. package/dist/index.html +96 -0
  12. package/dist/main.js +1100 -1126
  13. package/dist/module-QikStorage-CookieStorageAdapter.html +1177 -0
  14. package/dist/module-QikStorage-LocalStorageAdapter.html +329 -0
  15. package/dist/module-QikStorage-StorageAdapter.html +3457 -0
  16. package/dist/module-QikStorage.html +1445 -0
  17. package/dist/qik.access.js.html +904 -0
  18. package/dist/qik.api.js.html +409 -0
  19. package/dist/{docs/qik.auth.js.html → qik.auth.js.html} +142 -104
  20. package/dist/qik.cache.js.html +125 -0
  21. package/dist/qik.content.js.html +967 -0
  22. package/dist/qik.core.js.html +322 -0
  23. package/dist/qik.files.js.html +249 -0
  24. package/dist/{docs/qik.filter.js.html → qik.filter.js.html} +2 -2
  25. package/dist/qik.geo.js.html +963 -0
  26. package/dist/qik.socket.js.html +451 -0
  27. package/dist/qik.storage.js.html +375 -0
  28. package/dist/qik.system.js.html +117 -0
  29. package/dist/qik.utils.js.html +1542 -0
  30. package/dist/socket.html +2975 -0
  31. package/dist/{docs/styles → styles}/jsdoc.css +2 -2
  32. package/dist/system.html +523 -0
  33. package/package.json +2 -2
  34. package/src/api/qik.access.js +2 -53
  35. package/src/api/qik.socket.js +51 -10
  36. package/src/version.js +1 -1
  37. package/dist/docs/access.html +0 -3826
  38. package/dist/docs/api.html +0 -1356
  39. package/dist/docs/auth.html +0 -2180
  40. package/dist/docs/cache.html +0 -351
  41. package/dist/docs/content.html +0 -2560
  42. package/dist/docs/files.html +0 -779
  43. package/dist/docs/filter.html +0 -1355
  44. package/dist/docs/index.html +0 -96
  45. package/dist/docs/qik.access.js.html +0 -790
  46. package/dist/docs/qik.api.js.html +0 -511
  47. package/dist/docs/qik.cache.js.html +0 -131
  48. package/dist/docs/qik.content.js.html +0 -918
  49. package/dist/docs/qik.core.js.html +0 -301
  50. package/dist/docs/qik.files.js.html +0 -219
  51. package/dist/docs/qik.socket.js.html +0 -416
  52. package/dist/docs/qik.system.js.html +0 -117
  53. package/dist/docs/qik.utils.js.html +0 -1467
  54. package/dist/docs/socket.html +0 -810
  55. package/dist/docs/system.html +0 -197
  56. /package/dist/{docs/fonts → fonts}/Montserrat/Montserrat-Bold.eot +0 -0
  57. /package/dist/{docs/fonts → fonts}/Montserrat/Montserrat-Bold.ttf +0 -0
  58. /package/dist/{docs/fonts → fonts}/Montserrat/Montserrat-Bold.woff +0 -0
  59. /package/dist/{docs/fonts → fonts}/Montserrat/Montserrat-Bold.woff2 +0 -0
  60. /package/dist/{docs/fonts → fonts}/Montserrat/Montserrat-Regular.eot +0 -0
  61. /package/dist/{docs/fonts → fonts}/Montserrat/Montserrat-Regular.ttf +0 -0
  62. /package/dist/{docs/fonts → fonts}/Montserrat/Montserrat-Regular.woff +0 -0
  63. /package/dist/{docs/fonts → fonts}/Montserrat/Montserrat-Regular.woff2 +0 -0
  64. /package/dist/{docs/fonts → fonts}/Source-Sans-Pro/sourcesanspro-light-webfont.eot +0 -0
  65. /package/dist/{docs/fonts → fonts}/Source-Sans-Pro/sourcesanspro-light-webfont.svg +0 -0
  66. /package/dist/{docs/fonts → fonts}/Source-Sans-Pro/sourcesanspro-light-webfont.ttf +0 -0
  67. /package/dist/{docs/fonts → fonts}/Source-Sans-Pro/sourcesanspro-light-webfont.woff +0 -0
  68. /package/dist/{docs/fonts → fonts}/Source-Sans-Pro/sourcesanspro-light-webfont.woff2 +0 -0
  69. /package/dist/{docs/fonts → fonts}/Source-Sans-Pro/sourcesanspro-regular-webfont.eot +0 -0
  70. /package/dist/{docs/fonts → fonts}/Source-Sans-Pro/sourcesanspro-regular-webfont.svg +0 -0
  71. /package/dist/{docs/fonts → fonts}/Source-Sans-Pro/sourcesanspro-regular-webfont.ttf +0 -0
  72. /package/dist/{docs/fonts → fonts}/Source-Sans-Pro/sourcesanspro-regular-webfont.woff +0 -0
  73. /package/dist/{docs/fonts → fonts}/Source-Sans-Pro/sourcesanspro-regular-webfont.woff2 +0 -0
  74. /package/dist/{docs/scripts → scripts}/collapse.js +0 -0
  75. /package/dist/{docs/scripts → scripts}/linenumber.js +0 -0
  76. /package/dist/{docs/scripts → scripts}/nav.js +0 -0
  77. /package/dist/{docs/scripts → scripts}/polyfill.js +0 -0
  78. /package/dist/{docs/scripts → scripts}/prettify/Apache-License-2.0.txt +0 -0
  79. /package/dist/{docs/scripts → scripts}/prettify/lang-css.js +0 -0
  80. /package/dist/{docs/scripts → scripts}/prettify/prettify.js +0 -0
  81. /package/dist/{docs/scripts → scripts}/search.js +0 -0
  82. /package/dist/{docs/styles → styles}/prettify.css +0 -0
@@ -73,6 +73,26 @@ const QikSocket = function(qik, mode) {
73
73
  }
74
74
 
75
75
  const bucket = new EventDispatcher();
76
+
77
+ function dispatchMessage(message) {
78
+ bucket.dispatch('message', message);
79
+ }
80
+
81
+ // Destroy this channel - stop receiving its events and tell the
82
+ // server to unsubscribe. Only touches this channel's own listeners,
83
+ // leaving every other channel (and connection-level listeners) intact.
84
+ bucket.destroy = function() {
85
+ service.removeEventListener(key, dispatchMessage);
86
+ service.unsubscribe(key);
87
+ bucket.removeAllListeners();
88
+ delete buckets[key];
89
+ }
90
+
91
+ // Cache the fully-formed bucket (with destroy attached) BEFORE the
92
+ // connect() await below. A concurrent channel(key) call can hit the
93
+ // early return above while we're suspended awaiting connect(); if we
94
+ // registered the bucket before assigning destroy, that caller would
95
+ // receive a bucket whose destroy() is missing and throw on teardown.
76
96
  buckets[key] = bucket;
77
97
 
78
98
  if (!service.connected) {
@@ -86,16 +106,6 @@ const QikSocket = function(qik, mode) {
86
106
  // Listen for all relevant events
87
107
  service.addEventListener(key, dispatchMessage);
88
108
 
89
- function dispatchMessage(message) {
90
- bucket.dispatch('message', message);
91
- }
92
-
93
- // Destroy the service
94
- bucket.destroy = function() {
95
- service.removeAllListeners();
96
- buckets[key] = null;
97
- }
98
-
99
109
  return buckets[key];
100
110
  }
101
111
 
@@ -340,6 +350,37 @@ const QikSocket = function(qik, mode) {
340
350
 
341
351
  ///////////////////////////////////////////////////
342
352
 
353
+ // Reconnect the socket whenever the authenticated organisation changes.
354
+ // The WebSocket authenticates with an access token at connect time, so the
355
+ // connection stays bound to whichever organisation was active when it
356
+ // opened. Switching organisations issues a new token but leaves the socket
357
+ // untouched, so without this it keeps streaming the previous
358
+ // organisation's events. Reconnecting re-authenticates with the new token.
359
+ let currentOrganisationID = qik.utils.id(qik.auth.getCurrentUser()?.organisation);
360
+
361
+ qik.auth.addEventListener('change', async function(user) {
362
+ const organisationID = qik.utils.id(user?.organisation);
363
+
364
+ // Ignore auth changes that don't change the organisation (e.g. routine
365
+ // access token refreshes) so we don't churn the connection needlessly.
366
+ if (organisationID === currentOrganisationID) {
367
+ return;
368
+ }
369
+
370
+ currentOrganisationID = organisationID;
371
+
372
+ // Nothing to reconnect if the socket was never opened.
373
+ if (!socket) {
374
+ return;
375
+ }
376
+
377
+ service.debug ? console.log('[socket] - organisation changed, reconnecting') : null;
378
+ await service.close();
379
+ await service.reconnect();
380
+ });
381
+
382
+ ///////////////////////////////////////////////////
383
+
343
384
  return service;
344
385
 
345
386
  }
package/src/version.js CHANGED
@@ -1 +1 @@
1
- export const version = "1.0.1";
1
+ export const version = "1.0.4";