@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/context.js CHANGED
@@ -1,92 +1,91 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Context = void 0;
4
- const token_1 = require("./token");
5
- const tab_1 = require("./tab");
6
- const uuid_1 = require("./uuid");
7
- const cache_1 = require("./cache");
1
+ import { CachedTokenStore, ReplicatedTokenStore, InMemoryTokenStore } from "./token";
2
+ import { Tab } from "./tab";
3
+ import { uuid4 } from "./uuid";
4
+ import { ObservableCache } from "./cache";
8
5
  function tokenEquals(left, right) {
9
- return left === right || (left !== null && right !== null && left.toString() === right.toString());
6
+ return left === right || left !== null && right !== null && left.toString() === right.toString();
10
7
  }
11
8
  class Context {
12
- constructor(tab, tokenStore, eventDispatcher) {
13
- this.tab = tab;
14
- this.tokenStore = tokenStore;
15
- this.eventDispatcher = eventDispatcher;
16
- this.lastToken = tokenStore.getToken();
17
- this.syncToken = this.syncToken.bind(this);
9
+ constructor(tab, tokenStore, eventDispatcher) {
10
+ this.tab = tab;
11
+ this.tokenStore = tokenStore;
12
+ this.eventDispatcher = eventDispatcher;
13
+ this.lastToken = tokenStore.getToken();
14
+ this.syncToken = this.syncToken.bind(this);
15
+ }
16
+ static load({ cache, tokenScope, eventDispatcher, urlSanitizer }) {
17
+ let tabId = cache.tabId.get();
18
+ let newTab = false;
19
+ if (tabId === null) {
20
+ tabId = uuid4(true);
21
+ newTab = true;
18
22
  }
19
- static load({ cache, tokenScope, eventDispatcher, urlSanitizer }) {
20
- let tabId = cache.tabId.get();
21
- let newTab = false;
22
- if (tabId === null) {
23
- tabId = (0, uuid_1.uuid4)(true);
24
- newTab = true;
23
+ const tab = new Tab(tabId, newTab, urlSanitizer);
24
+ cache.tabId.clear();
25
+ tab.addListener("unload", () => cache.tabId.put(tab.id));
26
+ switch (tokenScope) {
27
+ case "isolated":
28
+ return new Context(tab, new InMemoryTokenStore(), eventDispatcher);
29
+ case "global": {
30
+ const context = new Context(tab, new CachedTokenStore(cache.browserToken), eventDispatcher);
31
+ if (ObservableCache.isObservable(cache.browserToken)) {
32
+ cache.browserToken.addListener(context.syncToken);
25
33
  }
26
- const tab = new tab_1.Tab(tabId, newTab, urlSanitizer);
27
- cache.tabId.clear();
28
- tab.addListener('unload', () => cache.tabId.put(tab.id));
29
- switch (tokenScope) {
30
- case 'isolated':
31
- return new Context(tab, new token_1.InMemoryTokenStore(), eventDispatcher);
32
- case 'global': {
33
- const context = new Context(tab, new token_1.CachedTokenStore(cache.browserToken), eventDispatcher);
34
- if (cache_1.ObservableCache.isObservable(cache.browserToken)) {
35
- cache.browserToken.addListener(context.syncToken);
36
- }
37
- return context;
38
- }
39
- case 'contextual': {
40
- const primaryStorage = new token_1.CachedTokenStore(cache.tabToken);
41
- const secondaryStorage = new token_1.CachedTokenStore(cache.browserToken);
42
- if (tab.isNew) {
43
- primaryStorage.setToken(secondaryStorage.getToken());
44
- }
45
- tab.addListener('visibilityChange', event => {
46
- if (event.detail.visible) {
47
- secondaryStorage.setToken(primaryStorage.getToken());
48
- }
49
- });
50
- return new Context(tab, new token_1.ReplicatedTokenStore(primaryStorage, secondaryStorage), eventDispatcher);
51
- }
34
+ return context;
35
+ }
36
+ case "contextual": {
37
+ const primaryStorage = new CachedTokenStore(cache.tabToken);
38
+ const secondaryStorage = new CachedTokenStore(cache.browserToken);
39
+ if (tab.isNew) {
40
+ primaryStorage.setToken(secondaryStorage.getToken());
52
41
  }
42
+ tab.addListener("visibilityChange", (event) => {
43
+ if (event.detail.visible) {
44
+ secondaryStorage.setToken(primaryStorage.getToken());
45
+ }
46
+ });
47
+ return new Context(tab, new ReplicatedTokenStore(primaryStorage, secondaryStorage), eventDispatcher);
48
+ }
53
49
  }
54
- getTab() {
55
- return this.tab;
50
+ }
51
+ getTab() {
52
+ return this.tab;
53
+ }
54
+ isAnonymous() {
55
+ const token = this.getToken();
56
+ return token == null || token.isAnonymous();
57
+ }
58
+ getUser() {
59
+ const token = this.getToken();
60
+ return token == null ? null : token.getSubject();
61
+ }
62
+ getToken() {
63
+ return this.tokenStore.getToken();
64
+ }
65
+ setToken(token) {
66
+ const oldToken = this.lastToken;
67
+ this.lastToken = token;
68
+ this.tokenStore.setToken(token);
69
+ if (!tokenEquals(oldToken, token)) {
70
+ this.eventDispatcher.dispatch("tokenChanged", {
71
+ oldToken,
72
+ newToken: token
73
+ });
56
74
  }
57
- isAnonymous() {
58
- const token = this.getToken();
59
- return token == null || token.isAnonymous();
60
- }
61
- getUser() {
62
- const token = this.getToken();
63
- return token == null ? null : token.getSubject();
64
- }
65
- getToken() {
66
- return this.tokenStore.getToken();
67
- }
68
- setToken(token) {
69
- const oldToken = this.lastToken;
70
- this.lastToken = token;
71
- this.tokenStore.setToken(token);
72
- if (!tokenEquals(oldToken, token)) {
73
- this.eventDispatcher.dispatch('tokenChanged', {
74
- oldToken: oldToken,
75
- newToken: token,
76
- });
77
- }
78
- }
79
- syncToken() {
80
- const newToken = this.tokenStore.getToken();
81
- const oldToken = this.lastToken;
82
- if (!tokenEquals(oldToken, newToken)) {
83
- this.lastToken = newToken;
84
- this.eventDispatcher.dispatch('tokenChanged', {
85
- oldToken: oldToken,
86
- newToken: newToken,
87
- });
88
- }
75
+ }
76
+ syncToken() {
77
+ const newToken = this.tokenStore.getToken();
78
+ const oldToken = this.lastToken;
79
+ if (!tokenEquals(oldToken, newToken)) {
80
+ this.lastToken = newToken;
81
+ this.eventDispatcher.dispatch("tokenChanged", {
82
+ oldToken,
83
+ newToken
84
+ });
89
85
  }
86
+ }
90
87
  }
91
- exports.Context = Context;
88
+ export {
89
+ Context
90
+ };
92
91
  //# sourceMappingURL=context.js.map
package/context.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"context.js","sourceRoot":"","sources":["src/context.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"sources":["src/context.ts"],"sourcesContent":["import {Token, TokenStore, CachedTokenStore, ReplicatedTokenStore, InMemoryTokenStore} from './token';\nimport {Tab, UrlSanitizer} from './tab';\nimport {uuid4} from './uuid';\nimport {EventDispatcher} from './eventManager';\nimport {SdkEventMap} from './sdkEvents';\nimport {Cache, ObservableCache} from './cache';\n\nexport type TokenScope = 'isolated' | 'global' | 'contextual';\n\nexport type Configuration = {\n tokenScope: TokenScope,\n urlSanitizer?: UrlSanitizer,\n eventDispatcher: ContextEventDispatcher,\n cache: {\n tabId: Cache,\n tabToken: Cache,\n browserToken: Cache,\n },\n};\n\ntype ContextEventDispatcher = EventDispatcher<Pick<SdkEventMap, 'tokenChanged'>>;\n\nfunction tokenEquals(left: Token|null, right: Token|null): boolean {\n return left === right || (left !== null && right !== null && left.toString() === right.toString());\n}\n\nexport class Context {\n private readonly tab: Tab;\n\n private readonly tokenStore: TokenStore;\n\n private readonly eventDispatcher: ContextEventDispatcher;\n\n private lastToken: Token|null;\n\n private constructor(tab: Tab, tokenStore: TokenStore, eventDispatcher: ContextEventDispatcher) {\n this.tab = tab;\n this.tokenStore = tokenStore;\n this.eventDispatcher = eventDispatcher;\n this.lastToken = tokenStore.getToken();\n this.syncToken = this.syncToken.bind(this);\n }\n\n public static load({cache, tokenScope, eventDispatcher, urlSanitizer}: Configuration): Context {\n let tabId: string | null = cache.tabId.get();\n let newTab = false;\n\n if (tabId === null) {\n tabId = uuid4(true);\n newTab = true;\n }\n\n const tab = new Tab(tabId, newTab, urlSanitizer);\n\n cache.tabId.clear();\n\n tab.addListener('unload', () => cache.tabId.put(tab.id));\n\n switch (tokenScope) {\n case 'isolated':\n return new Context(tab, new InMemoryTokenStore(), eventDispatcher);\n\n case 'global': {\n const context = new Context(tab, new CachedTokenStore(cache.browserToken), eventDispatcher);\n\n if (ObservableCache.isObservable(cache.browserToken)) {\n cache.browserToken.addListener(context.syncToken);\n }\n\n return context;\n }\n\n case 'contextual': {\n const primaryStorage = new CachedTokenStore(cache.tabToken);\n const secondaryStorage = new CachedTokenStore(cache.browserToken);\n\n if (tab.isNew) {\n primaryStorage.setToken(secondaryStorage.getToken());\n }\n\n tab.addListener('visibilityChange', event => {\n if (event.detail.visible) {\n secondaryStorage.setToken(primaryStorage.getToken());\n }\n });\n\n return new Context(tab, new ReplicatedTokenStore(primaryStorage, secondaryStorage), eventDispatcher);\n }\n }\n }\n\n public getTab(): Tab {\n return this.tab;\n }\n\n public isAnonymous(): boolean {\n const token = this.getToken();\n\n return token == null || token.isAnonymous();\n }\n\n public getUser(): string | null {\n const token = this.getToken();\n\n return token == null ? null : token.getSubject();\n }\n\n public getToken(): Token | null {\n return this.tokenStore.getToken();\n }\n\n public setToken(token: Token | null): void {\n const oldToken = this.lastToken;\n\n this.lastToken = token;\n this.tokenStore.setToken(token);\n\n if (!tokenEquals(oldToken, token)) {\n this.eventDispatcher.dispatch('tokenChanged', {\n oldToken: oldToken,\n newToken: token,\n });\n }\n }\n\n private syncToken(): void {\n const newToken = this.tokenStore.getToken();\n const oldToken = this.lastToken;\n\n if (!tokenEquals(oldToken, newToken)) {\n this.lastToken = newToken;\n\n this.eventDispatcher.dispatch('tokenChanged', {\n oldToken: oldToken,\n newToken: newToken,\n });\n }\n }\n}\n"],"mappings":"AAAA,SAA2B,kBAAkB,sBAAsB,0BAAyB;AAC5F,SAAQ,WAAwB;AAChC,SAAQ,aAAY;AAGpB,SAAe,uBAAsB;AAiBrC,SAAS,YAAY,MAAkB,OAA4B;AAC/D,SAAO,SAAS,SAAU,SAAS,QAAQ,UAAU,QAAQ,KAAK,SAAS,MAAM,MAAM,SAAS;AACpG;AAEO,MAAM,QAAQ;AAAA,EAST,YAAY,KAAU,YAAwB,iBAAyC;AAC3F,SAAK,MAAM;AACX,SAAK,aAAa;AAClB,SAAK,kBAAkB;AACvB,SAAK,YAAY,WAAW,SAAS;AACrC,SAAK,YAAY,KAAK,UAAU,KAAK,IAAI;AAAA,EAC7C;AAAA,EAEA,OAAc,KAAK,EAAC,OAAO,YAAY,iBAAiB,aAAY,GAA2B;AAC3F,QAAI,QAAuB,MAAM,MAAM,IAAI;AAC3C,QAAI,SAAS;AAEb,QAAI,UAAU,MAAM;AAChB,cAAQ,MAAM,IAAI;AAClB,eAAS;AAAA,IACb;AAEA,UAAM,MAAM,IAAI,IAAI,OAAO,QAAQ,YAAY;AAE/C,UAAM,MAAM,MAAM;AAElB,QAAI,YAAY,UAAU,MAAM,MAAM,MAAM,IAAI,IAAI,EAAE,CAAC;AAEvD,YAAQ,YAAY;AAAA,MAChB,KAAK;AACD,eAAO,IAAI,QAAQ,KAAK,IAAI,mBAAmB,GAAG,eAAe;AAAA,MAErE,KAAK,UAAU;AACX,cAAM,UAAU,IAAI,QAAQ,KAAK,IAAI,iBAAiB,MAAM,YAAY,GAAG,eAAe;AAE1F,YAAI,gBAAgB,aAAa,MAAM,YAAY,GAAG;AAClD,gBAAM,aAAa,YAAY,QAAQ,SAAS;AAAA,QACpD;AAEA,eAAO;AAAA,MACX;AAAA,MAEA,KAAK,cAAc;AACf,cAAM,iBAAiB,IAAI,iBAAiB,MAAM,QAAQ;AAC1D,cAAM,mBAAmB,IAAI,iBAAiB,MAAM,YAAY;AAEhE,YAAI,IAAI,OAAO;AACX,yBAAe,SAAS,iBAAiB,SAAS,CAAC;AAAA,QACvD;AAEA,YAAI,YAAY,oBAAoB,WAAS;AACzC,cAAI,MAAM,OAAO,SAAS;AACtB,6BAAiB,SAAS,eAAe,SAAS,CAAC;AAAA,UACvD;AAAA,QACJ,CAAC;AAED,eAAO,IAAI,QAAQ,KAAK,IAAI,qBAAqB,gBAAgB,gBAAgB,GAAG,eAAe;AAAA,MACvG;AAAA,IACJ;AAAA,EACJ;AAAA,EAEO,SAAc;AACjB,WAAO,KAAK;AAAA,EAChB;AAAA,EAEO,cAAuB;AAC1B,UAAM,QAAQ,KAAK,SAAS;AAE5B,WAAO,SAAS,QAAQ,MAAM,YAAY;AAAA,EAC9C;AAAA,EAEO,UAAyB;AAC5B,UAAM,QAAQ,KAAK,SAAS;AAE5B,WAAO,SAAS,OAAO,OAAO,MAAM,WAAW;AAAA,EACnD;AAAA,EAEO,WAAyB;AAC5B,WAAO,KAAK,WAAW,SAAS;AAAA,EACpC;AAAA,EAEO,SAAS,OAA2B;AACvC,UAAM,WAAW,KAAK;AAEtB,SAAK,YAAY;AACjB,SAAK,WAAW,SAAS,KAAK;AAE9B,QAAI,CAAC,YAAY,UAAU,KAAK,GAAG;AAC/B,WAAK,gBAAgB,SAAS,gBAAgB;AAAA,QAC1C;AAAA,QACA,UAAU;AAAA,MACd,CAAC;AAAA,IACL;AAAA,EACJ;AAAA,EAEQ,YAAkB;AACtB,UAAM,WAAW,KAAK,WAAW,SAAS;AAC1C,UAAM,WAAW,KAAK;AAEtB,QAAI,CAAC,YAAY,UAAU,QAAQ,GAAG;AAClC,WAAK,YAAY;AAEjB,WAAK,gBAAgB,SAAS,gBAAgB;AAAA,QAC1C;AAAA,QACA;AAAA,MACJ,CAAC;AAAA,IACL;AAAA,EACJ;AACJ;","names":[]}
package/error.cjs.map ADDED
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/error.ts"],"sourcesContent":["function extractMessage(error: unknown): string {\n if (error instanceof Error) {\n return error.message;\n }\n\n if (typeof error === 'string' && error !== '') {\n return error;\n }\n\n return 'unknown error';\n}\n\nexport function formatMessage(error: unknown): string {\n const message = extractMessage(error);\n\n if (message.length === 0) {\n return message;\n }\n\n return message.charAt(0).toUpperCase() + message.slice(1);\n}\n\nexport function formatCause(error: unknown): string {\n const message = formatMessage(error);\n\n if (message.length === 0) {\n return message;\n }\n\n return message.charAt(0).toLowerCase() + message.slice(1);\n}\n"],"mappings":";;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,SAAS,eAAe,OAAwB;AAC5C,MAAI,iBAAiB,OAAO;AACxB,WAAO,MAAM;AAAA,EACjB;AAEA,MAAI,OAAO,UAAU,YAAY,UAAU,IAAI;AAC3C,WAAO;AAAA,EACX;AAEA,SAAO;AACX;AAEO,SAAS,cAAc,OAAwB;AAClD,QAAM,UAAU,eAAe,KAAK;AAEpC,MAAI,QAAQ,WAAW,GAAG;AACtB,WAAO;AAAA,EACX;AAEA,SAAO,QAAQ,OAAO,CAAC,EAAE,YAAY,IAAI,QAAQ,MAAM,CAAC;AAC5D;AAEO,SAAS,YAAY,OAAwB;AAChD,QAAM,UAAU,cAAc,KAAK;AAEnC,MAAI,QAAQ,WAAW,GAAG;AACtB,WAAO;AAAA,EACX;AAEA,SAAO,QAAQ,OAAO,CAAC,EAAE,YAAY,IAAI,QAAQ,MAAM,CAAC;AAC5D;","names":[]}
package/error.d.ts CHANGED
@@ -1,2 +1,4 @@
1
- export declare function formatMessage(error: unknown): string;
2
- export declare function formatCause(error: unknown): string;
1
+ declare function formatMessage(error: unknown): string;
2
+ declare function formatCause(error: unknown): string;
3
+
4
+ export { formatCause, formatMessage };
package/error.js CHANGED
@@ -1,28 +1,28 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.formatMessage = formatMessage;
4
- exports.formatCause = formatCause;
5
1
  function extractMessage(error) {
6
- if (error instanceof Error) {
7
- return error.message;
8
- }
9
- if (typeof error === 'string' && error !== '') {
10
- return error;
11
- }
12
- return 'unknown error';
2
+ if (error instanceof Error) {
3
+ return error.message;
4
+ }
5
+ if (typeof error === "string" && error !== "") {
6
+ return error;
7
+ }
8
+ return "unknown error";
13
9
  }
14
10
  function formatMessage(error) {
15
- const message = extractMessage(error);
16
- if (message.length === 0) {
17
- return message;
18
- }
19
- return message.charAt(0).toUpperCase() + message.slice(1);
11
+ const message = extractMessage(error);
12
+ if (message.length === 0) {
13
+ return message;
14
+ }
15
+ return message.charAt(0).toUpperCase() + message.slice(1);
20
16
  }
21
17
  function formatCause(error) {
22
- const message = formatMessage(error);
23
- if (message.length === 0) {
24
- return message;
25
- }
26
- return message.charAt(0).toLowerCase() + message.slice(1);
18
+ const message = formatMessage(error);
19
+ if (message.length === 0) {
20
+ return message;
21
+ }
22
+ return message.charAt(0).toLowerCase() + message.slice(1);
27
23
  }
24
+ export {
25
+ formatCause,
26
+ formatMessage
27
+ };
28
28
  //# sourceMappingURL=error.js.map
package/error.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"error.js","sourceRoot":"","sources":["src/error.ts"],"names":[],"mappings":";;AAYA,sCAQC;AAED,kCAQC;AA9BD,SAAS,cAAc,CAAC,KAAc;IAClC,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;QACzB,OAAO,KAAK,CAAC,OAAO,CAAC;IACzB,CAAC;IAED,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,EAAE,EAAE,CAAC;QAC5C,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,OAAO,eAAe,CAAC;AAC3B,CAAC;AAED,SAAgB,aAAa,CAAC,KAAc;IACxC,MAAM,OAAO,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC;IAEtC,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,OAAO,OAAO,CAAC;IACnB,CAAC;IAED,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAC9D,CAAC;AAED,SAAgB,WAAW,CAAC,KAAc;IACtC,MAAM,OAAO,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC;IAErC,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,OAAO,OAAO,CAAC;IACnB,CAAC;IAED,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAC9D,CAAC"}
1
+ {"version":3,"sources":["src/error.ts"],"sourcesContent":["function extractMessage(error: unknown): string {\n if (error instanceof Error) {\n return error.message;\n }\n\n if (typeof error === 'string' && error !== '') {\n return error;\n }\n\n return 'unknown error';\n}\n\nexport function formatMessage(error: unknown): string {\n const message = extractMessage(error);\n\n if (message.length === 0) {\n return message;\n }\n\n return message.charAt(0).toUpperCase() + message.slice(1);\n}\n\nexport function formatCause(error: unknown): string {\n const message = formatMessage(error);\n\n if (message.length === 0) {\n return message;\n }\n\n return message.charAt(0).toLowerCase() + message.slice(1);\n}\n"],"mappings":"AAAA,SAAS,eAAe,OAAwB;AAC5C,MAAI,iBAAiB,OAAO;AACxB,WAAO,MAAM;AAAA,EACjB;AAEA,MAAI,OAAO,UAAU,YAAY,UAAU,IAAI;AAC3C,WAAO;AAAA,EACX;AAEA,SAAO;AACX;AAEO,SAAS,cAAc,OAAwB;AAClD,QAAM,UAAU,eAAe,KAAK;AAEpC,MAAI,QAAQ,WAAW,GAAG;AACtB,WAAO;AAAA,EACX;AAEA,SAAO,QAAQ,OAAO,CAAC,EAAE,YAAY,IAAI,QAAQ,MAAM,CAAC;AAC5D;AAEO,SAAS,YAAY,OAAwB;AAChD,QAAM,UAAU,cAAc,KAAK;AAEnC,MAAI,QAAQ,WAAW,GAAG;AACtB,WAAO;AAAA,EACX;AAEA,SAAO,QAAQ,OAAO,CAAC,EAAE,YAAY,IAAI,QAAQ,MAAM,CAAC;AAC5D;","names":[]}
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/evaluator.ts"],"sourcesContent":["import {JsonObject, JsonValue} from '@croct/json';\nimport {Token} from './token';\nimport {BASE_ENDPOINT_URL, CLIENT_LIBRARY, MAX_QUERY_LENGTH} from './constants';\nimport {formatMessage} from './error';\nimport {getLength, getLocation, Location} from './sourceLocation';\nimport {Logger, NullLogger} from './logging';\nimport type {ApiKey} from './apiKey';\nimport {Help} from './help';\n\nexport type Campaign = {\n name?: string,\n source?: string,\n medium?: string,\n term?: string,\n content?: string,\n};\n\nexport type Page = {\n url: string,\n title?: string,\n referrer?: string,\n};\n\nexport type EvaluationContext = {\n timeZone?: string,\n campaign?: Campaign,\n page?: Page,\n attributes?: JsonObject,\n};\n\ntype AllowedFetchOptions = Exclude<keyof RequestInit, 'method' | 'body' | 'headers' | 'signal'>;\n\ntype ExtraFetchOptions<T extends keyof RequestInit = AllowedFetchOptions> = Pick<RequestInit, T>\n & {[key in Exclude<keyof RequestInit, T>]?: never}\n & Record<string, any>;\n\nexport type EvaluationOptions = {\n clientId?: string,\n clientIp?: string,\n clientAgent?: string,\n userToken?: Token|string,\n timeout?: number,\n context?: EvaluationContext,\n extra?: ExtraFetchOptions,\n};\n\nexport enum EvaluationErrorType {\n TIMEOUT = 'https://croct.help/api/evaluation#timeout',\n UNEXPECTED_ERROR = 'https://croct.help/api/evaluation#unexpected-error',\n INVALID_QUERY = 'https://croct.help/api/evaluation#invalid-query',\n TOO_COMPLEX_QUERY = 'https://croct.help/api/evaluation#too-complex-query',\n EVALUATION_FAILED = 'https://croct.help/api/evaluation#evaluation-failed',\n UNALLOWED_RESULT = 'https://croct.help/api/evaluation#unallowed-result',\n UNSERIALIZABLE_RESULT = 'https://croct.help/api/evaluation#unserializable-result',\n}\n\nexport type ErrorResponse = {\n type: EvaluationErrorType,\n title: string,\n status: number,\n detail?: string,\n};\n\nexport class EvaluationError<T extends ErrorResponse = ErrorResponse> extends Error {\n public readonly response: T;\n\n public constructor(response: T) {\n super(response.title);\n\n this.response = response;\n\n Object.setPrototypeOf(this, EvaluationError.prototype);\n }\n}\n\ntype QueryErrorDetail = {\n cause: string,\n location: Location,\n};\n\nexport type QueryErrorResponse = ErrorResponse & {\n errors: QueryErrorDetail[],\n};\n\nexport class QueryError extends EvaluationError<QueryErrorResponse> {\n public constructor(response: QueryErrorResponse) {\n super(response);\n\n Object.setPrototypeOf(this, QueryError.prototype);\n }\n}\n\nexport type Configuration = {\n appId?: string,\n apiKey?: string|ApiKey,\n baseEndpointUrl?: string,\n logger?: Logger,\n defaultTimeout?: number,\n};\n\ntype InternalConfiguration = {\n appId?: string,\n apiKey?: string,\n defaultTimeout?: number,\n};\n\nexport class Evaluator {\n public static readonly MAX_QUERY_LENGTH = MAX_QUERY_LENGTH;\n\n private readonly configuration: InternalConfiguration;\n\n private readonly endpoint: string;\n\n private readonly logger: Logger;\n\n public constructor(configuration: Configuration) {\n if ((configuration.appId === undefined) === (configuration.apiKey === undefined)) {\n throw new Error('Either the application ID or the API key must be provided.');\n }\n\n const {baseEndpointUrl} = configuration;\n const apiKey = typeof configuration.apiKey === 'object'\n ? configuration.apiKey.getIdentifier()\n : configuration.apiKey;\n\n // eslint-disable-next-line prefer-template -- Better readability\n this.endpoint = (baseEndpointUrl ?? BASE_ENDPOINT_URL).replace(/\\/+$/, '')\n + (apiKey === undefined ? '/client' : '/external')\n + '/web/evaluate';\n this.logger = configuration.logger ?? new NullLogger();\n this.configuration = {\n appId: configuration.appId,\n apiKey: apiKey,\n defaultTimeout: configuration.defaultTimeout,\n };\n }\n\n public evaluate(query: string, options: EvaluationOptions = {}): Promise<JsonValue> {\n const length = getLength(query);\n const reference = query.length > 20 ? `${query.slice(0, 20)}...` : query;\n\n if (length > Evaluator.MAX_QUERY_LENGTH) {\n const response: QueryErrorResponse = {\n title: 'The query is too complex.',\n status: 422, // Unprocessable Entity\n type: EvaluationErrorType.TOO_COMPLEX_QUERY,\n detail: `The query \"${reference}\" must be at most ${Evaluator.MAX_QUERY_LENGTH} characters long, `\n + `but it is ${length} characters long.`,\n errors: [{\n cause: 'The query is longer than expected.',\n location: getLocation(query, 0, Math.max(length - 1, 0)),\n }],\n };\n\n return Promise.reject(new QueryError(response));\n }\n\n const payload: JsonObject = {\n query: query,\n };\n\n if (options.context !== undefined) {\n payload.context = options.context;\n }\n\n return new Promise((resolve, reject) => {\n const abortController = new AbortController();\n const timeout = options.timeout ?? this.configuration.defaultTimeout;\n\n let timer: number | NodeJS.Timeout | undefined;\n\n if (timeout !== undefined) {\n timer = setTimeout(\n () => {\n const response: ErrorResponse = {\n title: `Evaluation could not be completed in time for query \"${reference}\".`,\n type: EvaluationErrorType.TIMEOUT,\n detail: `The evaluation took more than ${timeout}ms to complete.`,\n status: 408, // Request Timeout\n };\n\n abortController.abort();\n\n this.logHelp(response.status);\n\n reject(new EvaluationError(response));\n },\n timeout,\n );\n }\n\n this.fetch(payload, abortController.signal, options)\n .finally(() => clearTimeout(timer))\n .then(\n response => {\n const region = response.headers.get('X-Croct-Region');\n const timing = response.headers.get('X-Croct-Timing');\n\n this.logger.debug(\n `Evaluation of the query \"${reference}\" processed by region ${region} in ${timing}.`,\n );\n\n return response.json()\n .then(body => {\n if (response.ok) {\n return resolve(body);\n }\n\n this.logHelp(response.status);\n\n const problem: ErrorResponse = body;\n\n switch (problem.type) {\n case EvaluationErrorType.INVALID_QUERY:\n case EvaluationErrorType.EVALUATION_FAILED:\n case EvaluationErrorType.TOO_COMPLEX_QUERY:\n reject(new QueryError(problem as QueryErrorResponse));\n\n break;\n\n default:\n reject(new EvaluationError(problem));\n\n break;\n }\n })\n .catch(error => {\n if (!response.ok) {\n throw new Error(`Error ${response.status} - ${response.statusText}`);\n }\n\n throw error;\n });\n },\n )\n .catch(\n error => {\n if (!abortController.signal.aborted) {\n reject(\n new EvaluationError({\n title: formatMessage(error),\n type: EvaluationErrorType.UNEXPECTED_ERROR,\n detail: 'Please try again or contact Croct support if the error persists.',\n status: 500, // Internal Server Error\n }),\n );\n }\n },\n );\n });\n }\n\n private fetch(body: JsonObject, signal: AbortSignal, options: EvaluationOptions): Promise<Response> {\n const {appId, apiKey} = this.configuration;\n const {clientId, clientIp, userToken, clientAgent} = options;\n\n const headers: Record<string, string> = {\n 'Content-Type': 'application/json',\n };\n\n headers['X-Client-Library'] = CLIENT_LIBRARY;\n\n if (apiKey !== undefined) {\n headers['X-Api-Key'] = apiKey;\n } else if (appId !== undefined) {\n headers['X-App-Id'] = appId;\n }\n\n if (clientId !== undefined) {\n headers['X-Client-Id'] = clientId;\n }\n\n if (clientIp !== undefined) {\n headers['X-Client-Ip'] = clientIp;\n }\n\n if (userToken !== undefined) {\n headers['X-Token'] = userToken.toString();\n }\n\n if (clientAgent !== undefined) {\n headers['X-Client-Agent'] = clientAgent;\n }\n\n return fetch(this.endpoint, {\n // Set the request mode to 'cors' when running in the browser.\n // By default, the request mode is computed based on the referrer policy\n // and response-tainting rules applied to the script that ultimately\n // initiated the fetch, make this prone to errors due to unrelated\n // configurations on the page.\n // https://fetch.spec.whatwg.org/#origin-header\n mode: typeof window === 'undefined' ? undefined : 'cors',\n credentials: 'omit',\n ...options.extra,\n method: 'POST',\n headers: headers,\n signal: signal,\n body: JSON.stringify(body),\n });\n }\n\n private logHelp(statusCode: number): void {\n const help = Help.forStatusCode(statusCode);\n\n if (help !== undefined) {\n this.logger.error(help);\n }\n }\n\n public toJSON(): never {\n // Prevent sensitive configuration from being serialized\n throw new Error('Unserializable value.');\n }\n}\n"],"mappings":"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","names":["EvaluationErrorType"]}
package/evaluator.d.ts CHANGED
@@ -1,21 +1,22 @@
1
1
  import { JsonObject, JsonValue } from '@croct/json';
2
- import { Token } from './token';
3
- import { Location } from './sourceLocation';
4
- import { Logger } from './logging';
5
- import type { ApiKey } from './apiKey';
6
- export type Campaign = {
2
+ import { Token } from './token/token.js';
3
+ import { Location } from './sourceLocation.js';
4
+ import { Logger } from './logging/logger.js';
5
+ import { ApiKey } from './apiKey.js';
6
+
7
+ type Campaign = {
7
8
  name?: string;
8
9
  source?: string;
9
10
  medium?: string;
10
11
  term?: string;
11
12
  content?: string;
12
13
  };
13
- export type Page = {
14
+ type Page = {
14
15
  url: string;
15
16
  title?: string;
16
17
  referrer?: string;
17
18
  };
18
- export type EvaluationContext = {
19
+ type EvaluationContext = {
19
20
  timeZone?: string;
20
21
  campaign?: Campaign;
21
22
  page?: Page;
@@ -25,7 +26,7 @@ type AllowedFetchOptions = Exclude<keyof RequestInit, 'method' | 'body' | 'heade
25
26
  type ExtraFetchOptions<T extends keyof RequestInit = AllowedFetchOptions> = Pick<RequestInit, T> & {
26
27
  [key in Exclude<keyof RequestInit, T>]?: never;
27
28
  } & Record<string, any>;
28
- export type EvaluationOptions = {
29
+ type EvaluationOptions = {
29
30
  clientId?: string;
30
31
  clientIp?: string;
31
32
  clientAgent?: string;
@@ -34,7 +35,7 @@ export type EvaluationOptions = {
34
35
  context?: EvaluationContext;
35
36
  extra?: ExtraFetchOptions;
36
37
  };
37
- export declare enum EvaluationErrorType {
38
+ declare enum EvaluationErrorType {
38
39
  TIMEOUT = "https://croct.help/api/evaluation#timeout",
39
40
  UNEXPECTED_ERROR = "https://croct.help/api/evaluation#unexpected-error",
40
41
  INVALID_QUERY = "https://croct.help/api/evaluation#invalid-query",
@@ -43,13 +44,13 @@ export declare enum EvaluationErrorType {
43
44
  UNALLOWED_RESULT = "https://croct.help/api/evaluation#unallowed-result",
44
45
  UNSERIALIZABLE_RESULT = "https://croct.help/api/evaluation#unserializable-result"
45
46
  }
46
- export type ErrorResponse = {
47
+ type ErrorResponse = {
47
48
  type: EvaluationErrorType;
48
49
  title: string;
49
50
  status: number;
50
51
  detail?: string;
51
52
  };
52
- export declare class EvaluationError<T extends ErrorResponse = ErrorResponse> extends Error {
53
+ declare class EvaluationError<T extends ErrorResponse = ErrorResponse> extends Error {
53
54
  readonly response: T;
54
55
  constructor(response: T);
55
56
  }
@@ -57,20 +58,20 @@ type QueryErrorDetail = {
57
58
  cause: string;
58
59
  location: Location;
59
60
  };
60
- export type QueryErrorResponse = ErrorResponse & {
61
+ type QueryErrorResponse = ErrorResponse & {
61
62
  errors: QueryErrorDetail[];
62
63
  };
63
- export declare class QueryError extends EvaluationError<QueryErrorResponse> {
64
+ declare class QueryError extends EvaluationError<QueryErrorResponse> {
64
65
  constructor(response: QueryErrorResponse);
65
66
  }
66
- export type Configuration = {
67
+ type Configuration = {
67
68
  appId?: string;
68
69
  apiKey?: string | ApiKey;
69
70
  baseEndpointUrl?: string;
70
71
  logger?: Logger;
71
72
  defaultTimeout?: number;
72
73
  };
73
- export declare class Evaluator {
74
+ declare class Evaluator {
74
75
  static readonly MAX_QUERY_LENGTH: number;
75
76
  private readonly configuration;
76
77
  private readonly endpoint;
@@ -81,4 +82,5 @@ export declare class Evaluator {
81
82
  private logHelp;
82
83
  toJSON(): never;
83
84
  }
84
- export {};
85
+
86
+ export { type Campaign, type Configuration, type ErrorResponse, type EvaluationContext, EvaluationError, EvaluationErrorType, type EvaluationOptions, Evaluator, type Page, QueryError, type QueryErrorResponse };