@croct/sdk 0.17.7 → 0.17.8

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 (409) hide show
  1. package/activeRecord.cjs.map +1 -0
  2. package/activeRecord.d.ts +8 -4
  3. package/activeRecord.js +115 -106
  4. package/activeRecord.js.map +1 -1
  5. package/apiKey.cjs.map +1 -0
  6. package/apiKey.d.ts +4 -2
  7. package/apiKey.js +152 -141
  8. package/apiKey.js.map +1 -1
  9. package/base64Url.cjs.map +1 -0
  10. package/base64Url.d.ts +4 -2
  11. package/base64Url.js +8 -15
  12. package/base64Url.js.map +1 -1
  13. package/cache/cache.cjs.map +1 -0
  14. package/cache/cache.d.ts +6 -4
  15. package/cache/cache.js +9 -10
  16. package/cache/cache.js.map +1 -1
  17. package/cache/cookieCache.cjs.map +1 -0
  18. package/cache/cookieCache.d.ts +6 -3
  19. package/cache/cookieCache.js +52 -54
  20. package/cache/cookieCache.js.map +1 -1
  21. package/cache/fallbackCache.cjs.map +1 -0
  22. package/cache/fallbackCache.d.ts +5 -2
  23. package/cache/fallbackCache.js +20 -21
  24. package/cache/fallbackCache.js.map +1 -1
  25. package/cache/inMemoryCache.cjs.map +1 -0
  26. package/cache/inMemoryCache.d.ts +5 -2
  27. package/cache/inMemoryCache.js +15 -17
  28. package/cache/inMemoryCache.js.map +1 -1
  29. package/cache/index.cjs.map +1 -0
  30. package/cache/index.d.ts +4 -4
  31. package/cache/index.js +9 -11
  32. package/cache/index.js.map +1 -1
  33. package/cache/localStorageCache.cjs.map +1 -0
  34. package/cache/localStorageCache.d.ts +5 -2
  35. package/cache/localStorageCache.js +55 -63
  36. package/cache/localStorageCache.js.map +1 -1
  37. package/channel/channel.cjs.map +1 -0
  38. package/channel/channel.d.ts +8 -6
  39. package/channel/channel.js +21 -22
  40. package/channel/channel.js.map +1 -1
  41. package/channel/encodedChannel.cjs.map +1 -0
  42. package/channel/encodedChannel.d.ts +6 -3
  43. package/channel/encodedChannel.js +13 -14
  44. package/channel/encodedChannel.js.map +1 -1
  45. package/channel/guaranteedChannel.cjs.map +1 -0
  46. package/channel/guaranteedChannel.d.ts +9 -7
  47. package/channel/guaranteedChannel.js +74 -73
  48. package/channel/guaranteedChannel.js.map +1 -1
  49. package/channel/httpBeaconChannel.cjs.map +1 -0
  50. package/channel/httpBeaconChannel.d.ts +9 -6
  51. package/channel/httpBeaconChannel.js +82 -83
  52. package/channel/httpBeaconChannel.js.map +1 -1
  53. package/channel/index.cjs.map +1 -0
  54. package/channel/index.d.ts +12 -7
  55. package/channel/index.js +15 -17
  56. package/channel/index.js.map +1 -1
  57. package/channel/queuedChannel.cjs.map +1 -0
  58. package/channel/queuedChannel.d.ts +7 -4
  59. package/channel/queuedChannel.js +87 -97
  60. package/channel/queuedChannel.js.map +1 -1
  61. package/channel/retryChannel.cjs.map +1 -0
  62. package/channel/retryChannel.d.ts +7 -5
  63. package/channel/retryChannel.js +58 -57
  64. package/channel/retryChannel.js.map +1 -1
  65. package/channel/sandboxChannel.cjs.map +1 -0
  66. package/channel/sandboxChannel.d.ts +5 -2
  67. package/channel/sandboxChannel.js +34 -35
  68. package/channel/sandboxChannel.js.map +1 -1
  69. package/cid/assigner.cjs.map +1 -0
  70. package/cid/assigner.d.ts +3 -1
  71. package/cid/assigner.js +0 -2
  72. package/cid/assigner.js.map +1 -1
  73. package/cid/cachedAssigner.cjs.map +1 -0
  74. package/cid/cachedAssigner.d.ts +7 -5
  75. package/cid/cachedAssigner.js +37 -43
  76. package/cid/cachedAssigner.js.map +1 -1
  77. package/cid/fixedAssigner.cjs.map +1 -0
  78. package/cid/fixedAssigner.d.ts +5 -2
  79. package/cid/fixedAssigner.js +9 -10
  80. package/cid/fixedAssigner.js.map +1 -1
  81. package/cid/index.cjs.map +1 -0
  82. package/cid/index.d.ts +6 -4
  83. package/cid/index.js +9 -11
  84. package/cid/index.js.map +1 -1
  85. package/cid/remoteAssigner.cjs.map +1 -0
  86. package/cid/remoteAssigner.d.ts +6 -3
  87. package/cid/remoteAssigner.js +36 -37
  88. package/cid/remoteAssigner.js.map +1 -1
  89. package/constants.cjs.map +1 -0
  90. package/constants.d.ts +6 -4
  91. package/constants.js +10 -7
  92. package/constants.js.map +1 -1
  93. package/container.cjs.map +1 -0
  94. package/container.d.ts +28 -15
  95. package/container.js +269 -252
  96. package/container.js.map +1 -1
  97. package/contentFetcher.cjs.map +1 -0
  98. package/contentFetcher.d.ts +17 -14
  99. package/contentFetcher.js +156 -163
  100. package/contentFetcher.js.map +1 -1
  101. package/context.cjs.map +1 -0
  102. package/context.d.ts +13 -9
  103. package/context.js +80 -81
  104. package/context.js.map +1 -1
  105. package/error.cjs.map +1 -0
  106. package/error.d.ts +4 -2
  107. package/error.js +21 -21
  108. package/error.js.map +1 -1
  109. package/evaluator.cjs.map +1 -0
  110. package/evaluator.d.ts +18 -16
  111. package/evaluator.js +179 -179
  112. package/evaluator.js.map +1 -1
  113. package/eventManager.cjs.map +1 -0
  114. package/eventManager.d.ts +8 -6
  115. package/eventManager.js +24 -26
  116. package/eventManager.js.map +1 -1
  117. package/eventSubjectProcessor.cjs.map +1 -0
  118. package/eventSubjectProcessor.d.ts +16 -3
  119. package/eventSubjectProcessor.js +53 -59
  120. package/eventSubjectProcessor.js.map +1 -1
  121. package/facade/contentFetcherFacade.cjs.map +1 -0
  122. package/facade/contentFetcherFacade.d.ts +16 -7
  123. package/facade/contentFetcherFacade.js +32 -35
  124. package/facade/contentFetcherFacade.js.map +1 -1
  125. package/facade/evaluatorFacade.cjs.map +1 -0
  126. package/facade/evaluatorFacade.d.ts +17 -10
  127. package/facade/evaluatorFacade.js +56 -60
  128. package/facade/evaluatorFacade.js.map +1 -1
  129. package/facade/index.cjs.map +1 -0
  130. package/facade/index.d.ts +29 -7
  131. package/facade/index.js +19 -19
  132. package/facade/index.js.map +1 -1
  133. package/facade/sdkFacade.cjs.map +1 -0
  134. package/facade/sdkFacade.d.ts +33 -15
  135. package/facade/sdkFacade.js +201 -214
  136. package/facade/sdkFacade.js.map +1 -1
  137. package/facade/sessionFacade.cjs.map +1 -0
  138. package/facade/sessionFacade.d.ts +18 -3
  139. package/facade/sessionFacade.js +10 -11
  140. package/facade/sessionFacade.js.map +1 -1
  141. package/facade/sessionPatch.cjs.map +1 -0
  142. package/facade/sessionPatch.d.ts +17 -4
  143. package/facade/sessionPatch.js +22 -24
  144. package/facade/sessionPatch.js.map +1 -1
  145. package/facade/trackerFacade.cjs.map +1 -0
  146. package/facade/trackerFacade.d.ts +17 -4
  147. package/facade/trackerFacade.js +67 -57
  148. package/facade/trackerFacade.js.map +1 -1
  149. package/facade/userFacade.cjs.map +1 -0
  150. package/facade/userFacade.d.ts +21 -4
  151. package/facade/userFacade.js +17 -18
  152. package/facade/userFacade.js.map +1 -1
  153. package/facade/userPatch.cjs.map +1 -0
  154. package/facade/userPatch.d.ts +17 -4
  155. package/facade/userPatch.js +22 -24
  156. package/facade/userPatch.js.map +1 -1
  157. package/help.cjs.map +1 -0
  158. package/help.d.ts +3 -1
  159. package/help.js +19 -23
  160. package/help.js.map +1 -1
  161. package/index.cjs.map +1 -0
  162. package/index.d.ts +25 -3
  163. package/index.js +7 -7
  164. package/index.js.map +1 -1
  165. package/logging/consoleLogger.cjs.map +1 -0
  166. package/logging/consoleLogger.d.ts +5 -2
  167. package/logging/consoleLogger.js +23 -24
  168. package/logging/consoleLogger.js.map +1 -1
  169. package/logging/filteredLogger.cjs.map +1 -0
  170. package/logging/filteredLogger.d.ts +8 -5
  171. package/logging/filteredLogger.js +36 -37
  172. package/logging/filteredLogger.js.map +1 -1
  173. package/logging/index.cjs.map +1 -0
  174. package/logging/index.d.ts +5 -5
  175. package/logging/index.js +11 -13
  176. package/logging/index.js.map +1 -1
  177. package/logging/logger.cjs.map +1 -0
  178. package/logging/logger.d.ts +4 -2
  179. package/logging/logger.js +0 -2
  180. package/logging/logger.js.map +1 -1
  181. package/logging/namespacedLogger.cjs.map +1 -0
  182. package/logging/namespacedLogger.d.ts +5 -2
  183. package/logging/namespacedLogger.js +22 -23
  184. package/logging/namespacedLogger.js.map +1 -1
  185. package/logging/nullLogger.cjs.map +1 -0
  186. package/logging/nullLogger.d.ts +5 -2
  187. package/logging/nullLogger.js +11 -16
  188. package/logging/nullLogger.js.map +1 -1
  189. package/namespacedStorage.cjs.map +1 -0
  190. package/namespacedStorage.d.ts +3 -1
  191. package/namespacedStorage.js +51 -52
  192. package/namespacedStorage.js.map +1 -1
  193. package/package.json +60 -6
  194. package/patch.cjs.map +1 -0
  195. package/patch.d.ts +6 -4
  196. package/patch.js +0 -2
  197. package/patch.js.map +1 -1
  198. package/queue/capacityRestrictedQueue.cjs.map +1 -0
  199. package/queue/capacityRestrictedQueue.d.ts +5 -2
  200. package/queue/capacityRestrictedQueue.js +31 -32
  201. package/queue/capacityRestrictedQueue.js.map +1 -1
  202. package/queue/inMemoryQueue.cjs.map +1 -0
  203. package/queue/inMemoryQueue.d.ts +5 -2
  204. package/queue/inMemoryQueue.js +32 -34
  205. package/queue/inMemoryQueue.js.map +1 -1
  206. package/queue/index.cjs.map +1 -0
  207. package/queue/index.d.ts +6 -5
  208. package/queue/index.js +11 -13
  209. package/queue/index.js.map +1 -1
  210. package/queue/monitoredQueue.cjs.map +1 -0
  211. package/queue/monitoredQueue.d.ts +8 -5
  212. package/queue/monitoredQueue.js +104 -110
  213. package/queue/monitoredQueue.js.map +1 -1
  214. package/queue/persistentQueue.cjs.map +1 -0
  215. package/queue/persistentQueue.d.ts +5 -2
  216. package/queue/persistentQueue.js +52 -54
  217. package/queue/persistentQueue.js.map +1 -1
  218. package/queue/queue.cjs.map +1 -0
  219. package/queue/queue.d.ts +3 -1
  220. package/queue/queue.js +0 -2
  221. package/queue/queue.js.map +1 -1
  222. package/retry/arbitraryPolicy.cjs.map +1 -0
  223. package/retry/arbitraryPolicy.d.ts +5 -2
  224. package/retry/arbitraryPolicy.js +14 -15
  225. package/retry/arbitraryPolicy.js.map +1 -1
  226. package/retry/backoffPolicy.cjs.map +1 -0
  227. package/retry/backoffPolicy.d.ts +5 -3
  228. package/retry/backoffPolicy.js +52 -50
  229. package/retry/backoffPolicy.js.map +1 -1
  230. package/retry/index.cjs.map +1 -0
  231. package/retry/index.d.ts +5 -5
  232. package/retry/index.js +11 -13
  233. package/retry/index.js.map +1 -1
  234. package/retry/maxAttemptsPolicy.cjs.map +1 -0
  235. package/retry/maxAttemptsPolicy.d.ts +5 -2
  236. package/retry/maxAttemptsPolicy.js +17 -18
  237. package/retry/maxAttemptsPolicy.js.map +1 -1
  238. package/retry/neverPolicy.cjs.map +1 -0
  239. package/retry/neverPolicy.d.ts +5 -2
  240. package/retry/neverPolicy.js +9 -10
  241. package/retry/neverPolicy.js.map +1 -1
  242. package/retry/policy.cjs.map +1 -0
  243. package/retry/policy.d.ts +3 -1
  244. package/retry/policy.js +0 -2
  245. package/retry/policy.js.map +1 -1
  246. package/schema/attributeSchema.cjs.map +1 -0
  247. package/schema/attributeSchema.d.ts +6 -2
  248. package/schema/attributeSchema.js +7 -7
  249. package/schema/attributeSchema.js.map +1 -1
  250. package/schema/contentFetcherSchemas.cjs.map +1 -0
  251. package/schema/contentFetcherSchemas.d.ts +6 -2
  252. package/schema/contentFetcherSchemas.js +24 -21
  253. package/schema/contentFetcherSchemas.js.map +1 -1
  254. package/schema/contentSchemas.cjs.map +1 -0
  255. package/schema/contentSchemas.d.ts +6 -2
  256. package/schema/contentSchemas.js +45 -45
  257. package/schema/contentSchemas.js.map +1 -1
  258. package/schema/contextSchemas.cjs.map +1 -0
  259. package/schema/contextSchemas.d.ts +6 -2
  260. package/schema/contextSchemas.js +6 -6
  261. package/schema/contextSchemas.js.map +1 -1
  262. package/schema/ecommerceSchemas.cjs.map +1 -0
  263. package/schema/ecommerceSchemas.d.ts +10 -6
  264. package/schema/ecommerceSchemas.js +176 -172
  265. package/schema/ecommerceSchemas.js.map +1 -1
  266. package/schema/evaluatorSchemas.cjs.map +1 -0
  267. package/schema/evaluatorSchemas.d.ts +6 -2
  268. package/schema/evaluatorSchemas.js +46 -30
  269. package/schema/evaluatorSchemas.js.map +1 -1
  270. package/schema/eventSchemas.cjs.map +1 -0
  271. package/schema/eventSchemas.d.ts +16 -12
  272. package/schema/eventSchemas.js +125 -102
  273. package/schema/eventSchemas.js.map +1 -1
  274. package/schema/index.cjs.map +1 -0
  275. package/schema/index.d.ts +14 -11
  276. package/schema/index.js +11 -14
  277. package/schema/index.js.map +1 -1
  278. package/schema/loggerSchema.cjs.map +1 -0
  279. package/schema/loggerSchema.d.ts +6 -2
  280. package/schema/loggerSchema.js +13 -13
  281. package/schema/loggerSchema.js.map +1 -1
  282. package/schema/operationSchemas.cjs.map +1 -0
  283. package/schema/operationSchemas.d.ts +14 -10
  284. package/schema/operationSchemas.js +85 -69
  285. package/schema/operationSchemas.js.map +1 -1
  286. package/schema/sdkFacadeSchemas.cjs.map +1 -0
  287. package/schema/sdkFacadeSchemas.d.ts +6 -2
  288. package/schema/sdkFacadeSchemas.js +65 -51
  289. package/schema/sdkFacadeSchemas.js.map +1 -1
  290. package/schema/sdkSchemas.cjs.map +1 -0
  291. package/schema/sdkSchemas.d.ts +8 -4
  292. package/schema/sdkSchemas.js +80 -78
  293. package/schema/sdkSchemas.js.map +1 -1
  294. package/schema/tokenSchema.cjs.map +1 -0
  295. package/schema/tokenSchema.d.ts +6 -2
  296. package/schema/tokenSchema.js +41 -38
  297. package/schema/tokenSchema.js.map +1 -1
  298. package/schema/userSchema.cjs.map +1 -0
  299. package/schema/userSchema.d.ts +6 -2
  300. package/schema/userSchema.js +183 -134
  301. package/schema/userSchema.js.map +1 -1
  302. package/sdk.cjs.map +1 -0
  303. package/sdk.d.ts +28 -14
  304. package/sdk.js +106 -108
  305. package/sdk.js.map +1 -1
  306. package/sdkEvents.cjs.map +1 -0
  307. package/sdkEvents.d.ts +10 -5
  308. package/sdkEvents.js +0 -2
  309. package/sdkEvents.js.map +1 -1
  310. package/sourceLocation.cjs.map +1 -0
  311. package/sourceLocation.d.ts +7 -5
  312. package/sourceLocation.js +56 -57
  313. package/sourceLocation.js.map +1 -1
  314. package/tab.cjs.map +1 -0
  315. package/tab.d.ts +9 -7
  316. package/tab.js +93 -90
  317. package/tab.js.map +1 -1
  318. package/token/cachedTokenStore.cjs.map +1 -0
  319. package/token/cachedTokenStore.d.ts +8 -3
  320. package/token/cachedTokenStore.js +22 -24
  321. package/token/cachedTokenStore.js.map +1 -1
  322. package/token/inMemoryTokenStore.cjs.map +1 -0
  323. package/token/inMemoryTokenStore.d.ts +7 -2
  324. package/token/inMemoryTokenStore.js +12 -13
  325. package/token/inMemoryTokenStore.js.map +1 -1
  326. package/token/index.cjs.map +1 -0
  327. package/token/index.d.ts +7 -4
  328. package/token/index.js +9 -11
  329. package/token/index.js.map +1 -1
  330. package/token/replicatedTokenStore.cjs.map +1 -0
  331. package/token/replicatedTokenStore.d.ts +7 -2
  332. package/token/replicatedTokenStore.js +14 -15
  333. package/token/replicatedTokenStore.js.map +1 -1
  334. package/token/token.cjs.map +1 -0
  335. package/token/token.d.ts +11 -8
  336. package/token/token.js +212 -195
  337. package/token/token.js.map +1 -1
  338. package/tracker.cjs.map +1 -0
  339. package/tracker.d.ts +20 -13
  340. package/tracker.js +307 -307
  341. package/tracker.js.map +1 -1
  342. package/trackingEvents.cjs.map +1 -0
  343. package/trackingEvents.d.ts +65 -62
  344. package/trackingEvents.js +57 -56
  345. package/trackingEvents.js.map +1 -1
  346. package/transformer.cjs.map +1 -0
  347. package/transformer.d.ts +4 -2
  348. package/transformer.js +5 -6
  349. package/transformer.js.map +1 -1
  350. package/utilityTypes.cjs.map +1 -0
  351. package/utilityTypes.d.ts +4 -2
  352. package/utilityTypes.js +0 -2
  353. package/utilityTypes.js.map +1 -1
  354. package/uuid.cjs.map +1 -0
  355. package/uuid.d.ts +3 -1
  356. package/uuid.js +27 -32
  357. package/uuid.js.map +1 -1
  358. package/validation/arrayType.cjs.map +1 -0
  359. package/validation/arrayType.d.ts +5 -3
  360. package/validation/arrayType.js +45 -41
  361. package/validation/arrayType.js.map +1 -1
  362. package/validation/booleanType.cjs.map +1 -0
  363. package/validation/booleanType.d.ts +5 -2
  364. package/validation/booleanType.js +19 -16
  365. package/validation/booleanType.js.map +1 -1
  366. package/validation/functionType.cjs.map +1 -0
  367. package/validation/functionType.d.ts +5 -2
  368. package/validation/functionType.js +19 -16
  369. package/validation/functionType.js.map +1 -1
  370. package/validation/index.cjs.map +1 -0
  371. package/validation/index.d.ts +12 -12
  372. package/validation/index.js +27 -29
  373. package/validation/index.js.map +1 -1
  374. package/validation/jsonType.cjs.map +1 -0
  375. package/validation/jsonType.d.ts +8 -6
  376. package/validation/jsonType.js +89 -82
  377. package/validation/jsonType.js.map +1 -1
  378. package/validation/mixedSchema.cjs.map +1 -0
  379. package/validation/mixedSchema.d.ts +5 -2
  380. package/validation/mixedSchema.js +5 -7
  381. package/validation/mixedSchema.js.map +1 -1
  382. package/validation/nullType.cjs.map +1 -0
  383. package/validation/nullType.d.ts +5 -2
  384. package/validation/nullType.js +19 -16
  385. package/validation/nullType.js.map +1 -1
  386. package/validation/numberType.cjs.map +1 -0
  387. package/validation/numberType.d.ts +5 -3
  388. package/validation/numberType.js +40 -32
  389. package/validation/numberType.js.map +1 -1
  390. package/validation/objectType.cjs.map +1 -0
  391. package/validation/objectType.d.ts +5 -3
  392. package/validation/objectType.js +84 -85
  393. package/validation/objectType.js.map +1 -1
  394. package/validation/schema.cjs.map +1 -0
  395. package/validation/schema.d.ts +5 -3
  396. package/validation/schema.js +8 -9
  397. package/validation/schema.js.map +1 -1
  398. package/validation/stringType.cjs.map +1 -0
  399. package/validation/stringType.d.ts +5 -3
  400. package/validation/stringType.js +74 -70
  401. package/validation/stringType.js.map +1 -1
  402. package/validation/unionType.cjs.map +1 -0
  403. package/validation/unionType.d.ts +5 -2
  404. package/validation/unionType.js +37 -35
  405. package/validation/unionType.js.map +1 -1
  406. package/validation/violation.cjs.map +1 -0
  407. package/validation/violation.d.ts +4 -2
  408. package/validation/violation.js +18 -18
  409. package/validation/violation.js.map +1 -1
package/tab.js CHANGED
@@ -1,96 +1,99 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Tab = void 0;
4
- const eventManager_1 = require("./eventManager");
1
+ import { SynchronousEventManager } from "./eventManager";
5
2
  const EventMap = {
6
- focus: 'focus',
7
- blur: 'blur',
8
- beforeunload: 'unload',
9
- DOMContentLoaded: 'load',
10
- visibilitychange: 'visibilityChange',
3
+ focus: "focus",
4
+ blur: "blur",
5
+ beforeunload: "unload",
6
+ DOMContentLoaded: "load",
7
+ visibilitychange: "visibilityChange"
11
8
  };
12
9
  class Tab {
13
- constructor(id, isNew, urlSanitizer) {
14
- this.eventManager = new eventManager_1.SynchronousEventManager();
15
- this.id = id;
16
- this.isNew = isNew;
17
- this.urlSanitizer = urlSanitizer;
18
- this.initialize();
19
- }
20
- initialize() {
21
- const listener = (event) => {
22
- this.emit(EventMap[event.type], new CustomEvent(EventMap[event.type], { detail: { tab: this } }));
23
- };
24
- window.addEventListener('focus', listener, true);
25
- window.addEventListener('blur', listener, true);
26
- window.addEventListener('beforeunload', listener, true);
27
- window.addEventListener('DOMContentLoaded', listener, true);
28
- document.addEventListener('visibilitychange', () => {
29
- this.emit('visibilityChange', new CustomEvent('visibilityChange', {
30
- detail: {
31
- tab: this,
32
- visible: this.isVisible,
33
- },
34
- }));
35
- }, true);
36
- Tab.addUrlChangeListener(url => {
37
- this.emit('urlChange', new CustomEvent('urlChange', { detail: { tab: this, url: this.sanitizeUrl(url) } }));
38
- });
39
- }
40
- get url() {
41
- return this.sanitizeUrl(window.location.href);
42
- }
43
- get title() {
44
- return document.title;
45
- }
46
- get referrer() {
47
- return document.referrer === '' ? '' : this.sanitizeUrl(document.referrer);
48
- }
49
- get isVisible() {
50
- return document.visibilityState === 'visible';
51
- }
52
- get document() {
53
- return document;
54
- }
55
- addListener(type, listener) {
56
- this.eventManager.addListener(type, listener);
57
- }
58
- removeListener(type, listener) {
59
- this.eventManager.removeListener(type, listener);
60
- }
61
- sanitizeUrl(url) {
62
- const normalized = window.encodeURI(window.decodeURI(url));
63
- if (this.urlSanitizer !== undefined) {
64
- return this.urlSanitizer(normalized).toString();
65
- }
66
- return normalized;
67
- }
68
- emit(type, event) {
69
- this.eventManager.dispatch(type, event);
70
- }
71
- static addUrlChangeListener(listener) {
72
- let url = window.location.href;
73
- const updateUrl = () => {
74
- const currentUrl = window.location.href;
75
- if (url !== currentUrl) {
76
- listener(currentUrl);
77
- url = currentUrl;
78
- }
79
- };
80
- const { pushState } = window.history;
81
- window.history.pushState = function interceptPushState(...args) {
82
- const result = pushState.apply(window.history, args);
83
- updateUrl();
84
- return result;
85
- };
86
- const { replaceState } = window.history;
87
- window.history.replaceState = function interceptReplaceState(...args) {
88
- const result = replaceState.apply(window.history, args);
89
- updateUrl();
90
- return result;
91
- };
92
- window.addEventListener('popstate', updateUrl, true);
10
+ constructor(id, isNew, urlSanitizer) {
11
+ this.eventManager = new SynchronousEventManager();
12
+ this.id = id;
13
+ this.isNew = isNew;
14
+ this.urlSanitizer = urlSanitizer;
15
+ this.initialize();
16
+ }
17
+ initialize() {
18
+ const listener = (event) => {
19
+ this.emit(EventMap[event.type], new CustomEvent(EventMap[event.type], { detail: { tab: this } }));
20
+ };
21
+ window.addEventListener("focus", listener, true);
22
+ window.addEventListener("blur", listener, true);
23
+ window.addEventListener("beforeunload", listener, true);
24
+ window.addEventListener("DOMContentLoaded", listener, true);
25
+ document.addEventListener(
26
+ "visibilitychange",
27
+ () => {
28
+ this.emit("visibilityChange", new CustomEvent("visibilityChange", {
29
+ detail: {
30
+ tab: this,
31
+ visible: this.isVisible
32
+ }
33
+ }));
34
+ },
35
+ true
36
+ );
37
+ Tab.addUrlChangeListener((url) => {
38
+ this.emit("urlChange", new CustomEvent("urlChange", { detail: { tab: this, url: this.sanitizeUrl(url) } }));
39
+ });
40
+ }
41
+ get url() {
42
+ return this.sanitizeUrl(window.location.href);
43
+ }
44
+ get title() {
45
+ return document.title;
46
+ }
47
+ get referrer() {
48
+ return document.referrer === "" ? "" : this.sanitizeUrl(document.referrer);
49
+ }
50
+ get isVisible() {
51
+ return document.visibilityState === "visible";
52
+ }
53
+ get document() {
54
+ return document;
55
+ }
56
+ addListener(type, listener) {
57
+ this.eventManager.addListener(type, listener);
58
+ }
59
+ removeListener(type, listener) {
60
+ this.eventManager.removeListener(type, listener);
61
+ }
62
+ sanitizeUrl(url) {
63
+ const normalized = window.encodeURI(window.decodeURI(url));
64
+ if (this.urlSanitizer !== void 0) {
65
+ return this.urlSanitizer(normalized).toString();
93
66
  }
67
+ return normalized;
68
+ }
69
+ emit(type, event) {
70
+ this.eventManager.dispatch(type, event);
71
+ }
72
+ static addUrlChangeListener(listener) {
73
+ let url = window.location.href;
74
+ const updateUrl = () => {
75
+ const currentUrl = window.location.href;
76
+ if (url !== currentUrl) {
77
+ listener(currentUrl);
78
+ url = currentUrl;
79
+ }
80
+ };
81
+ const { pushState } = window.history;
82
+ window.history.pushState = function interceptPushState(...args) {
83
+ const result = pushState.apply(window.history, args);
84
+ updateUrl();
85
+ return result;
86
+ };
87
+ const { replaceState } = window.history;
88
+ window.history.replaceState = function interceptReplaceState(...args) {
89
+ const result = replaceState.apply(window.history, args);
90
+ updateUrl();
91
+ return result;
92
+ };
93
+ window.addEventListener("popstate", updateUrl, true);
94
+ }
94
95
  }
95
- exports.Tab = Tab;
96
+ export {
97
+ Tab
98
+ };
96
99
  //# sourceMappingURL=tab.js.map
package/tab.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"tab.js","sourceRoot":"","sources":["src/tab.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"sources":["src/tab.ts"],"sourcesContent":["import {SynchronousEventManager, EventListener} from './eventManager';\n\nexport type TabEvent<T = Record<string, unknown>> = CustomEvent<{tab: Tab} & T>;\nexport type TabVisibilityChangeEvent = TabEvent<{visible: boolean}>;\nexport type TabUrlChangeEvent = TabEvent<{url: string}>;\n\nexport type UrlSanitizer = (url: string) => URL;\n\ntype TabEventMap = {\n focus: TabEvent,\n blur: TabEvent,\n load: TabEvent,\n unload: TabEvent,\n visibilityChange: TabVisibilityChangeEvent,\n urlChange: TabUrlChangeEvent,\n};\n\nconst EventMap: {[key: string]: keyof TabEventMap} = {\n focus: 'focus',\n blur: 'blur',\n beforeunload: 'unload',\n DOMContentLoaded: 'load',\n visibilitychange: 'visibilityChange',\n};\n\nexport class Tab {\n public readonly id: string;\n\n public readonly isNew: boolean;\n\n public readonly urlSanitizer?: UrlSanitizer;\n\n private readonly eventManager = new SynchronousEventManager<TabEventMap>();\n\n public constructor(id: string, isNew: boolean, urlSanitizer?: UrlSanitizer) {\n this.id = id;\n this.isNew = isNew;\n this.urlSanitizer = urlSanitizer;\n\n this.initialize();\n }\n\n private initialize(): void {\n const listener = (event: Event): void => {\n this.emit(EventMap[event.type], new CustomEvent(EventMap[event.type], {detail: {tab: this}}));\n };\n\n window.addEventListener('focus', listener, true);\n window.addEventListener('blur', listener, true);\n window.addEventListener('beforeunload', listener, true);\n window.addEventListener('DOMContentLoaded', listener, true);\n\n document.addEventListener(\n 'visibilitychange',\n () => {\n this.emit('visibilityChange', new CustomEvent('visibilityChange', {\n detail: {\n tab: this,\n visible: this.isVisible,\n },\n }));\n },\n true,\n );\n\n Tab.addUrlChangeListener(url => {\n this.emit('urlChange', new CustomEvent('urlChange', {detail: {tab: this, url: this.sanitizeUrl(url)}}));\n });\n }\n\n public get url(): string {\n return this.sanitizeUrl(window.location.href);\n }\n\n public get title(): string {\n return document.title;\n }\n\n public get referrer(): string {\n return document.referrer === '' ? '' : this.sanitizeUrl(document.referrer);\n }\n\n public get isVisible(): boolean {\n return document.visibilityState === 'visible';\n }\n\n public get document(): Document {\n return document;\n }\n\n public addListener<T extends keyof TabEventMap>(type: T, listener: EventListener<TabEventMap[T]>): void {\n this.eventManager.addListener(type, listener);\n }\n\n public removeListener<T extends keyof TabEventMap>(type: T, listener: EventListener<TabEventMap[T]>): void {\n this.eventManager.removeListener(type, listener);\n }\n\n private sanitizeUrl(url: string): string {\n const normalized = window.encodeURI(window.decodeURI(url));\n\n if (this.urlSanitizer !== undefined) {\n return this.urlSanitizer(normalized).toString();\n }\n\n return normalized;\n }\n\n private emit<T extends keyof TabEventMap>(type: T, event: TabEventMap[T]): void {\n this.eventManager.dispatch(type, event);\n }\n\n private static addUrlChangeListener(listener: {(url: string): void}): void {\n let url = window.location.href;\n\n const updateUrl = (): void => {\n const currentUrl = window.location.href;\n\n if (url !== currentUrl) {\n listener(currentUrl);\n\n url = currentUrl;\n }\n };\n\n const {pushState} = window.history;\n\n window.history.pushState = function interceptPushState(...args): any {\n const result = pushState.apply(window.history, args);\n\n updateUrl();\n\n return result;\n };\n\n const {replaceState} = window.history;\n\n window.history.replaceState = function interceptReplaceState(...args): any {\n const result = replaceState.apply(window.history, args);\n\n updateUrl();\n\n return result;\n };\n\n window.addEventListener('popstate', updateUrl, true);\n }\n}\n"],"mappings":"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","names":[]}
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/token/cachedTokenStore.ts"],"sourcesContent":["import {Token, TokenStore} from './token';\nimport {Cache} from '../cache';\n\nexport class CachedTokenStore implements TokenStore {\n private readonly cache: Cache;\n\n public constructor(cache: Cache) {\n this.cache = cache;\n }\n\n public getToken(): Token | null {\n const data: string | null = this.cache.get();\n\n if (data === null) {\n return null;\n }\n\n try {\n return Token.parse(data);\n } catch (error) {\n return null;\n }\n }\n\n public setToken(token: Token | null): void {\n if (token === null) {\n this.cache.clear();\n\n return;\n }\n\n this.cache.put(token.toString());\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,mBAAgC;AAGzB,MAAM,iBAAuC;AAAA,EAGzC,YAAY,OAAc;AAC7B,SAAK,QAAQ;AAAA,EACjB;AAAA,EAEO,WAAyB;AAC5B,UAAM,OAAsB,KAAK,MAAM,IAAI;AAE3C,QAAI,SAAS,MAAM;AACf,aAAO;AAAA,IACX;AAEA,QAAI;AACA,aAAO,mBAAM,MAAM,IAAI;AAAA,IAC3B,SAAS,OAAO;AACZ,aAAO;AAAA,IACX;AAAA,EACJ;AAAA,EAEO,SAAS,OAA2B;AACvC,QAAI,UAAU,MAAM;AAChB,WAAK,MAAM,MAAM;AAEjB;AAAA,IACJ;AAEA,SAAK,MAAM,IAAI,MAAM,SAAS,CAAC;AAAA,EACnC;AACJ;","names":[]}
@@ -1,8 +1,13 @@
1
- import { Token, TokenStore } from './token';
2
- import { Cache } from '../cache';
3
- export declare class CachedTokenStore implements TokenStore {
1
+ import { TokenStore, Token } from './token.js';
2
+ import { Cache } from '../cache/cache.js';
3
+ import '@croct/json';
4
+ import '../apiKey.js';
5
+
6
+ declare class CachedTokenStore implements TokenStore {
4
7
  private readonly cache;
5
8
  constructor(cache: Cache);
6
9
  getToken(): Token | null;
7
10
  setToken(token: Token | null): void;
8
11
  }
12
+
13
+ export { CachedTokenStore };
@@ -1,30 +1,28 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.CachedTokenStore = void 0;
4
- const token_1 = require("./token");
1
+ import { Token } from "./token";
5
2
  class CachedTokenStore {
6
- constructor(cache) {
7
- this.cache = cache;
3
+ constructor(cache) {
4
+ this.cache = cache;
5
+ }
6
+ getToken() {
7
+ const data = this.cache.get();
8
+ if (data === null) {
9
+ return null;
8
10
  }
9
- getToken() {
10
- const data = this.cache.get();
11
- if (data === null) {
12
- return null;
13
- }
14
- try {
15
- return token_1.Token.parse(data);
16
- }
17
- catch (error) {
18
- return null;
19
- }
11
+ try {
12
+ return Token.parse(data);
13
+ } catch (error) {
14
+ return null;
20
15
  }
21
- setToken(token) {
22
- if (token === null) {
23
- this.cache.clear();
24
- return;
25
- }
26
- this.cache.put(token.toString());
16
+ }
17
+ setToken(token) {
18
+ if (token === null) {
19
+ this.cache.clear();
20
+ return;
27
21
  }
22
+ this.cache.put(token.toString());
23
+ }
28
24
  }
29
- exports.CachedTokenStore = CachedTokenStore;
25
+ export {
26
+ CachedTokenStore
27
+ };
30
28
  //# sourceMappingURL=cachedTokenStore.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"cachedTokenStore.js","sourceRoot":"","sources":["../src/token/cachedTokenStore.ts"],"names":[],"mappings":";;;AAAA,mCAA0C;AAG1C,MAAa,gBAAgB;IAGzB,YAAmB,KAAY;QAC3B,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACvB,CAAC;IAEM,QAAQ;QACX,MAAM,IAAI,GAAkB,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;QAE7C,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;YAChB,OAAO,IAAI,CAAC;QAChB,CAAC;QAED,IAAI,CAAC;YACD,OAAO,aAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC7B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,OAAO,IAAI,CAAC;QAChB,CAAC;IACL,CAAC;IAEM,QAAQ,CAAC,KAAmB;QAC/B,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;YACjB,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;YAEnB,OAAO;QACX,CAAC;QAED,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;IACrC,CAAC;CACJ;AA9BD,4CA8BC"}
1
+ {"version":3,"sources":["../src/token/cachedTokenStore.ts"],"sourcesContent":["import {Token, TokenStore} from './token';\nimport {Cache} from '../cache';\n\nexport class CachedTokenStore implements TokenStore {\n private readonly cache: Cache;\n\n public constructor(cache: Cache) {\n this.cache = cache;\n }\n\n public getToken(): Token | null {\n const data: string | null = this.cache.get();\n\n if (data === null) {\n return null;\n }\n\n try {\n return Token.parse(data);\n } catch (error) {\n return null;\n }\n }\n\n public setToken(token: Token | null): void {\n if (token === null) {\n this.cache.clear();\n\n return;\n }\n\n this.cache.put(token.toString());\n }\n}\n"],"mappings":"AAAA,SAAQ,aAAwB;AAGzB,MAAM,iBAAuC;AAAA,EAGzC,YAAY,OAAc;AAC7B,SAAK,QAAQ;AAAA,EACjB;AAAA,EAEO,WAAyB;AAC5B,UAAM,OAAsB,KAAK,MAAM,IAAI;AAE3C,QAAI,SAAS,MAAM;AACf,aAAO;AAAA,IACX;AAEA,QAAI;AACA,aAAO,MAAM,MAAM,IAAI;AAAA,IAC3B,SAAS,OAAO;AACZ,aAAO;AAAA,IACX;AAAA,EACJ;AAAA,EAEO,SAAS,OAA2B;AACvC,QAAI,UAAU,MAAM;AAChB,WAAK,MAAM,MAAM;AAEjB;AAAA,IACJ;AAEA,SAAK,MAAM,IAAI,MAAM,SAAS,CAAC;AAAA,EACnC;AACJ;","names":[]}
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/token/inMemoryTokenStore.ts"],"sourcesContent":["import {Token, TokenStore} from './token';\n\nexport class InMemoryTokenStore implements TokenStore {\n private token: Token | null = null;\n\n public getToken(): Token | null {\n return this.token;\n }\n\n public setToken(token: Token | null): void {\n this.token = token;\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAEO,MAAM,mBAAyC;AAAA,EAA/C;AACH,SAAQ,QAAsB;AAAA;AAAA,EAEvB,WAAyB;AAC5B,WAAO,KAAK;AAAA,EAChB;AAAA,EAEO,SAAS,OAA2B;AACvC,SAAK,QAAQ;AAAA,EACjB;AACJ;","names":[]}
@@ -1,6 +1,11 @@
1
- import { Token, TokenStore } from './token';
2
- export declare class InMemoryTokenStore implements TokenStore {
1
+ import { TokenStore, Token } from './token.js';
2
+ import '@croct/json';
3
+ import '../apiKey.js';
4
+
5
+ declare class InMemoryTokenStore implements TokenStore {
3
6
  private token;
4
7
  getToken(): Token | null;
5
8
  setToken(token: Token | null): void;
6
9
  }
10
+
11
+ export { InMemoryTokenStore };
@@ -1,16 +1,15 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.InMemoryTokenStore = void 0;
4
1
  class InMemoryTokenStore {
5
- constructor() {
6
- this.token = null;
7
- }
8
- getToken() {
9
- return this.token;
10
- }
11
- setToken(token) {
12
- this.token = token;
13
- }
2
+ constructor() {
3
+ this.token = null;
4
+ }
5
+ getToken() {
6
+ return this.token;
7
+ }
8
+ setToken(token) {
9
+ this.token = token;
10
+ }
14
11
  }
15
- exports.InMemoryTokenStore = InMemoryTokenStore;
12
+ export {
13
+ InMemoryTokenStore
14
+ };
16
15
  //# sourceMappingURL=inMemoryTokenStore.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"inMemoryTokenStore.js","sourceRoot":"","sources":["../src/token/inMemoryTokenStore.ts"],"names":[],"mappings":";;;AAEA,MAAa,kBAAkB;IAA/B;QACY,UAAK,GAAiB,IAAI,CAAC;IASvC,CAAC;IAPU,QAAQ;QACX,OAAO,IAAI,CAAC,KAAK,CAAC;IACtB,CAAC;IAEM,QAAQ,CAAC,KAAmB;QAC/B,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACvB,CAAC;CACJ;AAVD,gDAUC"}
1
+ {"version":3,"sources":["../src/token/inMemoryTokenStore.ts"],"sourcesContent":["import {Token, TokenStore} from './token';\n\nexport class InMemoryTokenStore implements TokenStore {\n private token: Token | null = null;\n\n public getToken(): Token | null {\n return this.token;\n }\n\n public setToken(token: Token | null): void {\n this.token = token;\n }\n}\n"],"mappings":"AAEO,MAAM,mBAAyC;AAAA,EAA/C;AACH,SAAQ,QAAsB;AAAA;AAAA,EAEvB,WAAyB;AAC5B,WAAO,KAAK;AAAA,EAChB;AAAA,EAEO,SAAS,OAA2B;AACvC,SAAK,QAAQ;AAAA,EACjB;AACJ;","names":[]}
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/token/index.ts"],"sourcesContent":["export * from './token';\nexport {CachedTokenStore} from './cachedTokenStore';\nexport {InMemoryTokenStore} from './inMemoryTokenStore';\nexport {ReplicatedTokenStore} from './replicatedTokenStore';\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,0BAAc,oBAAd;AACA,8BAA+B;AAC/B,gCAAiC;AACjC,kCAAmC;","names":[]}
package/token/index.d.ts CHANGED
@@ -1,4 +1,7 @@
1
- export * from './token';
2
- export { CachedTokenStore } from './cachedTokenStore';
3
- export { InMemoryTokenStore } from './inMemoryTokenStore';
4
- export { ReplicatedTokenStore } from './replicatedTokenStore';
1
+ export { FixedTokenProvider, Token, TokenClaims, TokenHeaders, TokenPayload, TokenProvider, TokenStore } from './token.js';
2
+ export { CachedTokenStore } from './cachedTokenStore.js';
3
+ export { InMemoryTokenStore } from './inMemoryTokenStore.js';
4
+ export { ReplicatedTokenStore } from './replicatedTokenStore.js';
5
+ import '@croct/json';
6
+ import '../apiKey.js';
7
+ import '../cache/cache.js';
package/token/index.js CHANGED
@@ -1,12 +1,10 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ReplicatedTokenStore = exports.InMemoryTokenStore = exports.CachedTokenStore = void 0;
4
- const tslib_1 = require("tslib");
5
- tslib_1.__exportStar(require("./token"), exports);
6
- var cachedTokenStore_1 = require("./cachedTokenStore");
7
- Object.defineProperty(exports, "CachedTokenStore", { enumerable: true, get: function () { return cachedTokenStore_1.CachedTokenStore; } });
8
- var inMemoryTokenStore_1 = require("./inMemoryTokenStore");
9
- Object.defineProperty(exports, "InMemoryTokenStore", { enumerable: true, get: function () { return inMemoryTokenStore_1.InMemoryTokenStore; } });
10
- var replicatedTokenStore_1 = require("./replicatedTokenStore");
11
- Object.defineProperty(exports, "ReplicatedTokenStore", { enumerable: true, get: function () { return replicatedTokenStore_1.ReplicatedTokenStore; } });
1
+ export * from "./token";
2
+ import { CachedTokenStore } from "./cachedTokenStore";
3
+ import { InMemoryTokenStore } from "./inMemoryTokenStore";
4
+ import { ReplicatedTokenStore } from "./replicatedTokenStore";
5
+ export {
6
+ CachedTokenStore,
7
+ InMemoryTokenStore,
8
+ ReplicatedTokenStore
9
+ };
12
10
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/token/index.ts"],"names":[],"mappings":";;;;AAAA,kDAAwB;AACxB,uDAAoD;AAA5C,oHAAA,gBAAgB,OAAA;AACxB,2DAAwD;AAAhD,wHAAA,kBAAkB,OAAA;AAC1B,+DAA4D;AAApD,4HAAA,oBAAoB,OAAA"}
1
+ {"version":3,"sources":["../src/token/index.ts"],"sourcesContent":["export * from './token';\nexport {CachedTokenStore} from './cachedTokenStore';\nexport {InMemoryTokenStore} from './inMemoryTokenStore';\nexport {ReplicatedTokenStore} from './replicatedTokenStore';\n"],"mappings":"AAAA,cAAc;AACd,SAAQ,wBAAuB;AAC/B,SAAQ,0BAAyB;AACjC,SAAQ,4BAA2B;","names":[]}
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/token/replicatedTokenStore.ts"],"sourcesContent":["import {Token, TokenStore} from './token';\n\nexport class ReplicatedTokenStore implements TokenStore {\n private primary: TokenStore;\n\n private secondary: TokenStore;\n\n public constructor(primary: TokenStore, secondary: TokenStore) {\n this.primary = primary;\n this.secondary = secondary;\n }\n\n public getToken(): Token | null {\n return this.primary.getToken();\n }\n\n public setToken(token: Token | null): void {\n this.primary.setToken(token);\n this.secondary.setToken(token);\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAEO,MAAM,qBAA2C;AAAA,EAK7C,YAAY,SAAqB,WAAuB;AAC3D,SAAK,UAAU;AACf,SAAK,YAAY;AAAA,EACrB;AAAA,EAEO,WAAyB;AAC5B,WAAO,KAAK,QAAQ,SAAS;AAAA,EACjC;AAAA,EAEO,SAAS,OAA2B;AACvC,SAAK,QAAQ,SAAS,KAAK;AAC3B,SAAK,UAAU,SAAS,KAAK;AAAA,EACjC;AACJ;","names":[]}
@@ -1,8 +1,13 @@
1
- import { Token, TokenStore } from './token';
2
- export declare class ReplicatedTokenStore implements TokenStore {
1
+ import { TokenStore, Token } from './token.js';
2
+ import '@croct/json';
3
+ import '../apiKey.js';
4
+
5
+ declare class ReplicatedTokenStore implements TokenStore {
3
6
  private primary;
4
7
  private secondary;
5
8
  constructor(primary: TokenStore, secondary: TokenStore);
6
9
  getToken(): Token | null;
7
10
  setToken(token: Token | null): void;
8
11
  }
12
+
13
+ export { ReplicatedTokenStore };
@@ -1,18 +1,17 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ReplicatedTokenStore = void 0;
4
1
  class ReplicatedTokenStore {
5
- constructor(primary, secondary) {
6
- this.primary = primary;
7
- this.secondary = secondary;
8
- }
9
- getToken() {
10
- return this.primary.getToken();
11
- }
12
- setToken(token) {
13
- this.primary.setToken(token);
14
- this.secondary.setToken(token);
15
- }
2
+ constructor(primary, secondary) {
3
+ this.primary = primary;
4
+ this.secondary = secondary;
5
+ }
6
+ getToken() {
7
+ return this.primary.getToken();
8
+ }
9
+ setToken(token) {
10
+ this.primary.setToken(token);
11
+ this.secondary.setToken(token);
12
+ }
16
13
  }
17
- exports.ReplicatedTokenStore = ReplicatedTokenStore;
14
+ export {
15
+ ReplicatedTokenStore
16
+ };
18
17
  //# sourceMappingURL=replicatedTokenStore.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"replicatedTokenStore.js","sourceRoot":"","sources":["../src/token/replicatedTokenStore.ts"],"names":[],"mappings":";;;AAEA,MAAa,oBAAoB;IAK7B,YAAmB,OAAmB,EAAE,SAAqB;QACzD,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC/B,CAAC;IAEM,QAAQ;QACX,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;IACnC,CAAC;IAEM,QAAQ,CAAC,KAAmB;QAC/B,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QAC7B,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IACnC,CAAC;CACJ;AAlBD,oDAkBC"}
1
+ {"version":3,"sources":["../src/token/replicatedTokenStore.ts"],"sourcesContent":["import {Token, TokenStore} from './token';\n\nexport class ReplicatedTokenStore implements TokenStore {\n private primary: TokenStore;\n\n private secondary: TokenStore;\n\n public constructor(primary: TokenStore, secondary: TokenStore) {\n this.primary = primary;\n this.secondary = secondary;\n }\n\n public getToken(): Token | null {\n return this.primary.getToken();\n }\n\n public setToken(token: Token | null): void {\n this.primary.setToken(token);\n this.secondary.setToken(token);\n }\n}\n"],"mappings":"AAEO,MAAM,qBAA2C;AAAA,EAK7C,YAAY,SAAqB,WAAuB;AAC3D,SAAK,UAAU;AACf,SAAK,YAAY;AAAA,EACrB;AAAA,EAEO,WAAyB;AAC5B,WAAO,KAAK,QAAQ,SAAS;AAAA,EACjC;AAAA,EAEO,SAAS,OAA2B;AACvC,SAAK,QAAQ,SAAS,KAAK;AAC3B,SAAK,UAAU,SAAS,KAAK;AAAA,EACjC;AACJ;","names":[]}
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/token/token.ts"],"sourcesContent":["import {JsonObject} from '@croct/json';\nimport {tokenSchema} from '../schema';\nimport {formatCause} from '../error';\nimport {ApiKey} from '../apiKey';\nimport {base64UrlDecode, base64UrlEncode} from '../base64Url';\n\nexport type TokenHeaders = {\n typ: string,\n alg: string,\n kid?: string,\n appId?: string,\n};\n\nexport type TokenClaims = {\n iss: string,\n aud: string|string[],\n iat: number,\n exp?: number,\n sub?: string,\n jti?: string,\n};\n\nexport type TokenPayload = JsonObject & TokenClaims;\n\nexport class Token {\n private static readonly UUID_PATTERN = /^[a-f0-9]{8}-([a-f0-9]{4}-){3}[a-f0-9]{12}$/;\n\n private readonly headers: TokenHeaders;\n\n private readonly payload: TokenPayload;\n\n private readonly signature: string;\n\n private constructor(headers: TokenHeaders, payload: TokenPayload, signature = '') {\n this.headers = headers;\n this.payload = payload;\n this.signature = signature;\n }\n\n public static issue(\n appId: string,\n subject: string|null = null,\n timestamp: number = Math.floor(Date.now() / 1000),\n ): Token {\n if (timestamp < 0) {\n throw new Error('The timestamp must be non-negative.');\n }\n\n if (subject === '') {\n throw new Error('The subject must be non-empty.');\n }\n\n return new Token(\n {\n typ: 'JWT',\n alg: 'none',\n appId: appId,\n },\n {\n iss: 'croct.io',\n aud: 'croct.io',\n iat: timestamp,\n ...(subject !== null ? {sub: subject} : null),\n },\n );\n }\n\n public static parse(token: string): Token {\n if (token === '') {\n throw new Error('The token cannot be empty.');\n }\n\n const parts = token.split('.', 3);\n\n // This token is invalid\n if (parts.length < 2) {\n throw new Error('The token is malformed.');\n }\n\n let headers;\n let payload;\n\n try {\n headers = JSON.parse(base64UrlDecode(parts[0], true));\n payload = JSON.parse(base64UrlDecode(parts[1], true));\n } catch (error) {\n throw new Error('The token is corrupted.');\n }\n\n return Token.of(headers, payload, parts[2]);\n }\n\n public static of(headers: TokenHeaders, payload: TokenPayload, signature = ''): Token {\n try {\n tokenSchema.validate({\n headers: headers,\n payload: payload,\n signature: signature,\n });\n } catch (violation) {\n throw new Error(`The token is invalid: ${formatCause(violation)}`);\n }\n\n return new Token(headers as TokenHeaders, payload as TokenPayload, signature as string);\n }\n\n public async signedWith(apiKey: ApiKey): Promise<Token> {\n const keyId = await apiKey.getIdentifierHash();\n const headers: TokenHeaders = {\n ...this.headers,\n kid: keyId,\n alg: apiKey.getSigningAlgorithm(),\n };\n\n const encodedHeader = base64UrlEncode(JSON.stringify(headers), true);\n const encodedPayload = base64UrlEncode(JSON.stringify(this.payload), true);\n const signature = await apiKey.sign(`${encodedHeader}.${encodedPayload}`);\n\n return new Token(headers, this.payload, base64UrlEncode(signature, false));\n }\n\n public isSigned(): boolean {\n return this.headers.alg !== 'none' && this.signature !== '';\n }\n\n public isSubject(subject: string): boolean {\n return this.getSubject() === subject;\n }\n\n public isAnonymous(): boolean {\n return this.payload.sub === undefined;\n }\n\n public isValidNow(now: number = Math.floor(Date.now() / 1000)): boolean {\n const {exp, iat} = this.payload;\n\n return (exp === undefined || exp >= now) && iat <= now;\n }\n\n public isNewerThan(token: Token): boolean {\n return this.payload.iat > token.payload.iat;\n }\n\n public async matchesKeyId(apiKey: ApiKey): Promise<boolean> {\n return this.headers.kid === await apiKey.getIdentifierHash();\n }\n\n public getHeaders(): TokenHeaders {\n return {...this.headers};\n }\n\n public getPayload(): TokenPayload {\n return {...this.payload};\n }\n\n public getSignature(): string {\n return this.signature;\n }\n\n public getApplicationId(): string | null {\n return this.headers.appId ?? null;\n }\n\n public getAlgorithm(): string {\n return this.headers.alg;\n }\n\n public getType(): string {\n return this.headers.typ;\n }\n\n public getKeyId(): string | null {\n return this.headers.kid ?? null;\n }\n\n public getSubject(): string | null {\n return this.payload.sub ?? null;\n }\n\n public getIssueTime(): number {\n return this.payload.iat;\n }\n\n public getExpirationTime(): number | null {\n return this.payload.exp ?? null;\n }\n\n public getTokenId(): string | null {\n return this.payload.jti ?? null;\n }\n\n public getAudience(): string | string[] {\n return this.payload.aud;\n }\n\n public getIssuer(): string {\n return this.payload.iss;\n }\n\n public withTokenId(tokenId: string): Token {\n if (tokenId === '' || !Token.UUID_PATTERN.test(tokenId)) {\n throw new Error('The token ID must be a valid UUID.');\n }\n\n return new Token(\n this.headers,\n {\n ...this.payload,\n jti: tokenId,\n },\n this.signature,\n );\n }\n\n public withDuration(duration: number, now: number = Math.floor(Date.now() / 1000)): Token {\n return new Token(\n this.headers,\n {\n ...this.payload,\n iat: now,\n exp: now + duration,\n },\n this.signature,\n );\n }\n\n public withAddedHeaders(headers: Partial<TokenHeaders>): Token {\n return this.withHeaders({\n ...this.headers,\n ...Object.fromEntries(\n Object.entries(headers)\n .filter(([, value]) => value !== undefined),\n ),\n });\n }\n\n public withAddedClaims(claims: Partial<TokenClaims>): Token {\n return this.withPayload({\n ...this.payload,\n ...Object.fromEntries(\n Object.entries(claims)\n .filter(([, value]) => value !== undefined),\n ),\n });\n }\n\n public withHeaders(headers: TokenHeaders): Token {\n return new Token(\n headers,\n this.payload,\n this.signature,\n );\n }\n\n public withPayload(payload: TokenPayload): Token {\n return new Token(\n this.headers,\n payload,\n this.signature,\n );\n }\n\n public withSignature(signature: string): Token {\n return new Token(\n this.headers,\n this.payload,\n signature,\n );\n }\n\n public toJSON(): string {\n return this.toString();\n }\n\n public toString(): string {\n const headers = base64UrlEncode(JSON.stringify(this.headers), true);\n const payload = base64UrlEncode(JSON.stringify(this.payload), true);\n\n return `${headers}.${payload}.${this.signature}`;\n }\n}\n\nexport interface TokenProvider {\n getToken(): Token | null;\n}\n\nexport interface TokenStore extends TokenProvider {\n setToken(token: Token | null): void;\n}\n\nexport class FixedTokenProvider implements TokenProvider {\n private readonly token: Token | null;\n\n public constructor(token: Token | null) {\n this.token = token;\n }\n\n public getToken(): Token | null {\n return this.token;\n }\n}\n"],"mappings":"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","names":[]}
package/token/token.d.ts CHANGED
@@ -1,12 +1,13 @@
1
1
  import { JsonObject } from '@croct/json';
2
- import { ApiKey } from '../apiKey';
3
- export type TokenHeaders = {
2
+ import { ApiKey } from '../apiKey.js';
3
+
4
+ type TokenHeaders = {
4
5
  typ: string;
5
6
  alg: string;
6
7
  kid?: string;
7
8
  appId?: string;
8
9
  };
9
- export type TokenClaims = {
10
+ type TokenClaims = {
10
11
  iss: string;
11
12
  aud: string | string[];
12
13
  iat: number;
@@ -14,8 +15,8 @@ export type TokenClaims = {
14
15
  sub?: string;
15
16
  jti?: string;
16
17
  };
17
- export type TokenPayload = JsonObject & TokenClaims;
18
- export declare class Token {
18
+ type TokenPayload = JsonObject & TokenClaims;
19
+ declare class Token {
19
20
  private static readonly UUID_PATTERN;
20
21
  private readonly headers;
21
22
  private readonly payload;
@@ -54,14 +55,16 @@ export declare class Token {
54
55
  toJSON(): string;
55
56
  toString(): string;
56
57
  }
57
- export interface TokenProvider {
58
+ interface TokenProvider {
58
59
  getToken(): Token | null;
59
60
  }
60
- export interface TokenStore extends TokenProvider {
61
+ interface TokenStore extends TokenProvider {
61
62
  setToken(token: Token | null): void;
62
63
  }
63
- export declare class FixedTokenProvider implements TokenProvider {
64
+ declare class FixedTokenProvider implements TokenProvider {
64
65
  private readonly token;
65
66
  constructor(token: Token | null);
66
67
  getToken(): Token | null;
67
68
  }
69
+
70
+ export { FixedTokenProvider, Token, type TokenClaims, type TokenHeaders, type TokenPayload, type TokenProvider, type TokenStore };