@strivacity/sdk-core 3.0.3 → 4.0.0-beta.0

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 (327) hide show
  1. package/README.md +1873 -340
  2. package/dist/assets/oidc.cjs +2 -0
  3. package/dist/assets/oidc.cjs.map +1 -0
  4. package/dist/assets/oidc.mjs +2 -0
  5. package/dist/assets/oidc.mjs.map +1 -0
  6. package/dist/assets/server.cjs +2 -0
  7. package/dist/assets/server.cjs.map +1 -0
  8. package/dist/assets/server.mjs +2 -0
  9. package/dist/assets/server.mjs.map +1 -0
  10. package/dist/flows/base.cjs +2 -0
  11. package/dist/flows/base.cjs.map +1 -0
  12. package/dist/flows/base.d.ts +26 -0
  13. package/dist/flows/base.mjs +2 -0
  14. package/dist/flows/base.mjs.map +1 -0
  15. package/dist/flows/embedded.cjs +2 -0
  16. package/dist/flows/embedded.cjs.map +1 -0
  17. package/dist/flows/embedded.d.ts +9 -0
  18. package/dist/flows/embedded.mjs +2 -0
  19. package/dist/flows/embedded.mjs.map +1 -0
  20. package/dist/flows/index.cjs +1 -0
  21. package/dist/flows/index.d.ts +5 -0
  22. package/dist/flows/index.mjs +1 -0
  23. package/dist/flows/native.cjs +2 -0
  24. package/dist/flows/native.cjs.map +1 -0
  25. package/dist/flows/native.d.ts +9 -0
  26. package/dist/flows/native.mjs +2 -0
  27. package/dist/flows/native.mjs.map +1 -0
  28. package/dist/flows/popup.cjs +2 -0
  29. package/dist/flows/popup.cjs.map +1 -0
  30. package/dist/flows/popup.d.ts +9 -0
  31. package/dist/flows/popup.mjs +2 -0
  32. package/dist/flows/popup.mjs.map +1 -0
  33. package/dist/flows/redirect.cjs +2 -0
  34. package/dist/flows/redirect.cjs.map +1 -0
  35. package/dist/flows/redirect.d.ts +9 -0
  36. package/dist/flows/redirect.mjs +2 -0
  37. package/dist/flows/redirect.mjs.map +1 -0
  38. package/dist/handlers/embedded.cjs +2 -0
  39. package/dist/handlers/embedded.cjs.map +1 -0
  40. package/dist/handlers/embedded.d.ts +37 -0
  41. package/dist/handlers/embedded.mjs +2 -0
  42. package/dist/handlers/embedded.mjs.map +1 -0
  43. package/dist/handlers/index.cjs +1 -0
  44. package/dist/handlers/index.d.ts +2 -0
  45. package/dist/handlers/index.mjs +1 -0
  46. package/dist/handlers/native.cjs +2 -0
  47. package/dist/handlers/native.cjs.map +1 -0
  48. package/dist/handlers/native.d.ts +56 -0
  49. package/dist/handlers/native.mjs +2 -0
  50. package/dist/handlers/native.mjs.map +1 -0
  51. package/dist/handlers/popup.cjs +2 -0
  52. package/dist/handlers/popup.cjs.map +1 -0
  53. package/dist/handlers/popup.d.ts +21 -0
  54. package/dist/handlers/popup.mjs +2 -0
  55. package/dist/handlers/popup.mjs.map +1 -0
  56. package/dist/handlers/redirect.cjs +2 -0
  57. package/dist/handlers/redirect.cjs.map +1 -0
  58. package/dist/handlers/redirect.d.ts +18 -0
  59. package/dist/handlers/redirect.mjs +2 -0
  60. package/dist/handlers/redirect.mjs.map +1 -0
  61. package/dist/index.cjs +2 -2
  62. package/dist/index.cjs.map +1 -1
  63. package/dist/index.d.ts +16 -21
  64. package/dist/index.mjs +2 -2
  65. package/dist/index.mjs.map +1 -1
  66. package/dist/server/base.cjs +2 -0
  67. package/dist/server/base.cjs.map +1 -0
  68. package/dist/server/base.d.ts +15 -0
  69. package/dist/server/base.mjs +2 -0
  70. package/dist/server/base.mjs.map +1 -0
  71. package/dist/server/index.cjs +1 -0
  72. package/dist/server/index.d.ts +1 -0
  73. package/dist/server/index.mjs +1 -0
  74. package/dist/storages/cache.cjs +2 -0
  75. package/dist/storages/cache.cjs.map +1 -0
  76. package/dist/storages/cache.d.ts +11 -0
  77. package/dist/storages/cache.mjs +2 -0
  78. package/dist/storages/cache.mjs.map +1 -0
  79. package/dist/storages/index.cjs +1 -0
  80. package/dist/storages/index.d.ts +7 -0
  81. package/dist/storages/index.mjs +1 -0
  82. package/dist/storages/indexeddb.cjs +2 -0
  83. package/dist/storages/indexeddb.cjs.map +1 -0
  84. package/dist/storages/indexeddb.d.ts +10 -0
  85. package/dist/storages/indexeddb.mjs +2 -0
  86. package/dist/storages/indexeddb.mjs.map +1 -0
  87. package/dist/storages/local.cjs +2 -0
  88. package/dist/storages/local.cjs.map +1 -0
  89. package/dist/storages/local.d.ts +7 -0
  90. package/dist/storages/local.mjs +2 -0
  91. package/dist/storages/local.mjs.map +1 -0
  92. package/dist/storages/memory.cjs +2 -0
  93. package/dist/storages/memory.cjs.map +1 -0
  94. package/dist/storages/memory.d.ts +8 -0
  95. package/dist/storages/memory.mjs +2 -0
  96. package/dist/storages/memory.mjs.map +1 -0
  97. package/dist/storages/server.cjs +1 -0
  98. package/dist/storages/server.d.ts +39 -0
  99. package/dist/storages/server.mjs +1 -0
  100. package/dist/storages/session.cjs +2 -0
  101. package/dist/storages/session.cjs.map +1 -0
  102. package/dist/storages/session.d.ts +7 -0
  103. package/dist/storages/session.mjs +2 -0
  104. package/dist/storages/session.mjs.map +1 -0
  105. package/dist/storages/worker.cjs +2 -0
  106. package/dist/storages/worker.cjs.map +1 -0
  107. package/dist/storages/worker.d.ts +46 -0
  108. package/dist/storages/worker.mjs +2 -0
  109. package/dist/storages/worker.mjs.map +1 -0
  110. package/dist/types/common.cjs +0 -0
  111. package/dist/types/common.d.ts +145 -0
  112. package/dist/types/common.mjs +0 -0
  113. package/dist/types/embedded.cjs +0 -0
  114. package/dist/types/embedded.d.ts +103 -0
  115. package/dist/types/embedded.mjs +0 -0
  116. package/dist/types/index.cjs +1 -0
  117. package/dist/types/index.d.ts +7 -0
  118. package/dist/types/index.mjs +1 -0
  119. package/dist/types/native.cjs +0 -0
  120. package/dist/types/native.d.ts +385 -0
  121. package/dist/types/native.mjs +0 -0
  122. package/dist/types/oidc.cjs +2 -0
  123. package/dist/types/oidc.cjs.map +1 -0
  124. package/dist/types/oidc.d.ts +768 -0
  125. package/dist/types/oidc.mjs +2 -0
  126. package/dist/types/oidc.mjs.map +1 -0
  127. package/dist/types/popup.cjs +0 -0
  128. package/dist/types/popup.d.ts +69 -0
  129. package/dist/types/popup.mjs +0 -0
  130. package/dist/types/redirect.cjs +0 -0
  131. package/dist/types/redirect.d.ts +21 -0
  132. package/dist/types/redirect.mjs +0 -0
  133. package/dist/types/server.cjs +0 -0
  134. package/dist/types/server.d.ts +200 -0
  135. package/dist/types/server.mjs +0 -0
  136. package/dist/utils/base64url.cjs +2 -0
  137. package/dist/utils/base64url.cjs.map +1 -0
  138. package/dist/utils/base64url.d.ts +14 -0
  139. package/dist/utils/base64url.mjs +2 -0
  140. package/dist/utils/base64url.mjs.map +1 -0
  141. package/dist/utils/common.cjs +2 -0
  142. package/dist/utils/common.cjs.map +1 -0
  143. package/dist/utils/common.d.ts +23 -0
  144. package/dist/utils/common.mjs +2 -0
  145. package/dist/utils/common.mjs.map +1 -0
  146. package/dist/utils/credentials.cjs +2 -2
  147. package/dist/utils/credentials.cjs.map +1 -1
  148. package/dist/utils/credentials.d.ts +19 -3
  149. package/dist/utils/credentials.mjs +2 -2
  150. package/dist/utils/credentials.mjs.map +1 -1
  151. package/dist/utils/crypto.cjs +2 -2
  152. package/dist/utils/crypto.cjs.map +1 -1
  153. package/dist/utils/crypto.d.ts +16 -26
  154. package/dist/utils/crypto.mjs +2 -2
  155. package/dist/utils/crypto.mjs.map +1 -1
  156. package/dist/utils/dom.cjs +2 -0
  157. package/dist/utils/dom.cjs.map +1 -0
  158. package/dist/utils/dom.d.ts +7 -0
  159. package/dist/utils/dom.mjs +2 -0
  160. package/dist/utils/dom.mjs.map +1 -0
  161. package/dist/utils/errors.cjs +2 -2
  162. package/dist/utils/errors.cjs.map +1 -1
  163. package/dist/utils/errors.d.ts +62 -1
  164. package/dist/utils/errors.mjs +2 -2
  165. package/dist/utils/errors.mjs.map +1 -1
  166. package/dist/utils/httpClient.cjs +2 -0
  167. package/dist/utils/httpClient.cjs.map +1 -0
  168. package/dist/utils/httpClient.d.ts +2 -0
  169. package/dist/utils/httpClient.mjs +2 -0
  170. package/dist/utils/httpClient.mjs.map +1 -0
  171. package/dist/utils/index.cjs +1 -0
  172. package/dist/utils/index.d.ts +12 -0
  173. package/dist/utils/index.mjs +1 -0
  174. package/dist/utils/logging.cjs +2 -0
  175. package/dist/utils/logging.cjs.map +1 -0
  176. package/dist/utils/logging.d.ts +2 -0
  177. package/dist/utils/logging.mjs +2 -0
  178. package/dist/utils/logging.mjs.map +1 -0
  179. package/dist/utils/oidc.cjs +1 -0
  180. package/dist/utils/oidc.d.ts +264 -0
  181. package/dist/utils/oidc.mjs +1 -0
  182. package/dist/utils/server.cjs +1 -0
  183. package/dist/utils/server.d.ts +72 -0
  184. package/dist/utils/server.mjs +1 -0
  185. package/dist/utils/session.cjs +2 -0
  186. package/dist/utils/session.cjs.map +1 -0
  187. package/dist/utils/session.d.ts +29 -0
  188. package/dist/utils/session.mjs +2 -0
  189. package/dist/utils/session.mjs.map +1 -0
  190. package/dist/utils/state.cjs +1 -0
  191. package/dist/utils/state.d.ts +23 -0
  192. package/dist/utils/state.mjs +1 -0
  193. package/package.json +53 -1
  194. package/testing/tests/flows/base.spec.ts +1030 -0
  195. package/testing/tests/flows/embedded.spec.ts +443 -0
  196. package/testing/tests/flows/index.spec.ts +8 -0
  197. package/testing/tests/flows/native.spec.ts +487 -0
  198. package/testing/tests/flows/popup.spec.ts +400 -0
  199. package/testing/tests/flows/redirect.spec.ts +369 -0
  200. package/testing/tests/handlers/embedded.spec.ts +199 -0
  201. package/testing/tests/handlers/index.spec.ts +8 -0
  202. package/testing/tests/handlers/native.spec.ts +283 -0
  203. package/testing/tests/handlers/popup.spec.ts +206 -0
  204. package/testing/tests/handlers/redirect.spec.ts +70 -0
  205. package/testing/tests/index.spec.ts +78 -0
  206. package/testing/tests/server/base.spec.ts +846 -0
  207. package/testing/tests/server/index.spec.ts +15 -0
  208. package/testing/tests/storages/cache.spec.ts +107 -0
  209. package/testing/tests/storages/index.spec.ts +22 -0
  210. package/testing/tests/storages/indexeddb.spec.ts +113 -0
  211. package/testing/tests/storages/local.spec.ts +46 -0
  212. package/testing/tests/storages/memory.spec.ts +51 -0
  213. package/testing/tests/storages/server.spec.ts +435 -0
  214. package/testing/tests/storages/session.spec.ts +46 -0
  215. package/testing/tests/storages/worker.spec.ts +106 -0
  216. package/testing/tests/utils/common.spec.ts +77 -0
  217. package/testing/tests/utils/credentials.spec.ts +195 -0
  218. package/testing/tests/utils/dom.spec.ts +37 -0
  219. package/testing/tests/utils/index.spec.ts +71 -0
  220. package/testing/tests/utils/logging.spec.ts +82 -0
  221. package/testing/tests/utils/oidc.spec.ts +744 -0
  222. package/testing/tests/utils/server.spec.ts +235 -0
  223. package/dist/flows/BaseFlow.cjs +0 -2
  224. package/dist/flows/BaseFlow.cjs.map +0 -1
  225. package/dist/flows/BaseFlow.d.ts +0 -191
  226. package/dist/flows/BaseFlow.mjs +0 -2
  227. package/dist/flows/BaseFlow.mjs.map +0 -1
  228. package/dist/flows/EmbeddedFlow.cjs +0 -2
  229. package/dist/flows/EmbeddedFlow.cjs.map +0 -1
  230. package/dist/flows/EmbeddedFlow.d.ts +0 -26
  231. package/dist/flows/EmbeddedFlow.mjs +0 -2
  232. package/dist/flows/EmbeddedFlow.mjs.map +0 -1
  233. package/dist/flows/NativeFlow.cjs +0 -2
  234. package/dist/flows/NativeFlow.cjs.map +0 -1
  235. package/dist/flows/NativeFlow.d.ts +0 -34
  236. package/dist/flows/NativeFlow.mjs +0 -2
  237. package/dist/flows/NativeFlow.mjs.map +0 -1
  238. package/dist/flows/PopupFlow.cjs +0 -2
  239. package/dist/flows/PopupFlow.cjs.map +0 -1
  240. package/dist/flows/PopupFlow.d.ts +0 -36
  241. package/dist/flows/PopupFlow.mjs +0 -2
  242. package/dist/flows/PopupFlow.mjs.map +0 -1
  243. package/dist/flows/RedirectFlow.cjs +0 -2
  244. package/dist/flows/RedirectFlow.cjs.map +0 -1
  245. package/dist/flows/RedirectFlow.d.ts +0 -38
  246. package/dist/flows/RedirectFlow.mjs +0 -2
  247. package/dist/flows/RedirectFlow.mjs.map +0 -1
  248. package/dist/handlers/BaseFlowHandler.cjs +0 -2
  249. package/dist/handlers/BaseFlowHandler.cjs.map +0 -1
  250. package/dist/handlers/BaseFlowHandler.d.ts +0 -61
  251. package/dist/handlers/BaseFlowHandler.mjs +0 -2
  252. package/dist/handlers/BaseFlowHandler.mjs.map +0 -1
  253. package/dist/handlers/EmbeddedFlowHandler.cjs +0 -2
  254. package/dist/handlers/EmbeddedFlowHandler.cjs.map +0 -1
  255. package/dist/handlers/EmbeddedFlowHandler.d.ts +0 -28
  256. package/dist/handlers/EmbeddedFlowHandler.mjs +0 -2
  257. package/dist/handlers/EmbeddedFlowHandler.mjs.map +0 -1
  258. package/dist/handlers/NativeFlowHandler.cjs +0 -2
  259. package/dist/handlers/NativeFlowHandler.cjs.map +0 -1
  260. package/dist/handlers/NativeFlowHandler.d.ts +0 -31
  261. package/dist/handlers/NativeFlowHandler.mjs +0 -2
  262. package/dist/handlers/NativeFlowHandler.mjs.map +0 -1
  263. package/dist/storages/LocalStorage.cjs +0 -2
  264. package/dist/storages/LocalStorage.cjs.map +0 -1
  265. package/dist/storages/LocalStorage.d.ts +0 -23
  266. package/dist/storages/LocalStorage.mjs +0 -2
  267. package/dist/storages/LocalStorage.mjs.map +0 -1
  268. package/dist/storages/SessionStorage.cjs +0 -2
  269. package/dist/storages/SessionStorage.cjs.map +0 -1
  270. package/dist/storages/SessionStorage.d.ts +0 -23
  271. package/dist/storages/SessionStorage.mjs +0 -2
  272. package/dist/storages/SessionStorage.mjs.map +0 -1
  273. package/dist/types.cjs +0 -2
  274. package/dist/types.cjs.map +0 -1
  275. package/dist/types.d.ts +0 -1263
  276. package/dist/types.mjs +0 -2
  277. package/dist/types.mjs.map +0 -1
  278. package/dist/utils/HttpClient.cjs +0 -2
  279. package/dist/utils/HttpClient.cjs.map +0 -1
  280. package/dist/utils/HttpClient.d.ts +0 -4
  281. package/dist/utils/HttpClient.mjs +0 -2
  282. package/dist/utils/HttpClient.mjs.map +0 -1
  283. package/dist/utils/Logging.cjs +0 -2
  284. package/dist/utils/Logging.cjs.map +0 -1
  285. package/dist/utils/Logging.d.ts +0 -8
  286. package/dist/utils/Logging.mjs +0 -2
  287. package/dist/utils/Logging.mjs.map +0 -1
  288. package/dist/utils/Metadata.cjs +0 -2
  289. package/dist/utils/Metadata.cjs.map +0 -1
  290. package/dist/utils/Metadata.d.ts +0 -98
  291. package/dist/utils/Metadata.mjs +0 -2
  292. package/dist/utils/Metadata.mjs.map +0 -1
  293. package/dist/utils/Session.cjs +0 -2
  294. package/dist/utils/Session.cjs.map +0 -1
  295. package/dist/utils/Session.d.ts +0 -82
  296. package/dist/utils/Session.mjs +0 -2
  297. package/dist/utils/Session.mjs.map +0 -1
  298. package/dist/utils/State.cjs +0 -2
  299. package/dist/utils/State.cjs.map +0 -1
  300. package/dist/utils/State.d.ts +0 -43
  301. package/dist/utils/State.mjs +0 -2
  302. package/dist/utils/State.mjs.map +0 -1
  303. package/dist/utils/base64Url.cjs +0 -2
  304. package/dist/utils/base64Url.cjs.map +0 -1
  305. package/dist/utils/base64Url.d.ts +0 -27
  306. package/dist/utils/base64Url.mjs +0 -2
  307. package/dist/utils/base64Url.mjs.map +0 -1
  308. package/dist/utils/date.cjs +0 -2
  309. package/dist/utils/date.cjs.map +0 -1
  310. package/dist/utils/date.d.ts +0 -6
  311. package/dist/utils/date.mjs +0 -2
  312. package/dist/utils/date.mjs.map +0 -1
  313. package/dist/utils/handlers.cjs +0 -2
  314. package/dist/utils/handlers.cjs.map +0 -1
  315. package/dist/utils/handlers.d.ts +0 -35
  316. package/dist/utils/handlers.mjs +0 -2
  317. package/dist/utils/handlers.mjs.map +0 -1
  318. package/dist/utils/jwt.cjs +0 -2
  319. package/dist/utils/jwt.cjs.map +0 -1
  320. package/dist/utils/jwt.d.ts +0 -34
  321. package/dist/utils/jwt.mjs +0 -2
  322. package/dist/utils/jwt.mjs.map +0 -1
  323. package/dist/utils/object.cjs +0 -2
  324. package/dist/utils/object.cjs.map +0 -1
  325. package/dist/utils/object.d.ts +0 -1
  326. package/dist/utils/object.mjs +0 -2
  327. package/dist/utils/object.mjs.map +0 -1
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("./base64Url.cjs");function t(){return crypto.randomUUID().replace(/-/g,"")}function n(){return crypto.randomUUID().replace(/-/g,"")}function o(){return`${crypto.randomUUID()}${crypto.randomUUID()}`.replace(/-/g,"")}async function c(e){return r.Base64Url.encode(await crypto.subtle.digest("SHA-256",new TextEncoder().encode(e)))}const a={generateState:t,generateNonce:n,generateCodeVerifier:o,generateCodeChallenge:c};exports.Crypto=a;
2
- //# sourceMappingURL=crypto.cjs.map
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./base64url.cjs");async function t(e,t,n){let r=await globalThis.crypto.subtle.importKey(`raw`,new TextEncoder().encode(e),`HKDF`,!1,[`deriveBits`]),i=await globalThis.crypto.subtle.deriveBits({name:`HKDF`,hash:`SHA-256`,salt:t.buffer,info:new TextEncoder().encode(n)},r,256);return globalThis.crypto.subtle.importKey(`raw`,i,{name:`AES-GCM`},!1,[`encrypt`,`decrypt`])}async function n(n,r,i){let a=globalThis.crypto.getRandomValues(new Uint8Array(16)),o=globalThis.crypto.getRandomValues(new Uint8Array(12)),s=await t(r,a,i),c=new TextEncoder().encode(n),l=await globalThis.crypto.subtle.encrypt({name:`AES-GCM`,iv:o},s,c),u=new Uint8Array(a.byteLength+o.byteLength+l.byteLength);return u.set(a,0),u.set(o,a.byteLength),u.set(new Uint8Array(l),a.byteLength+o.byteLength),e.encodeBase64URL(u.buffer)}async function r(n,r,i){try{let a=new Uint8Array(e.decodeBase64URL(n)),o=a.slice(0,16),s=a.slice(16,28),c=a.slice(28),l=await t(r,o,i),u=await globalThis.crypto.subtle.decrypt({name:`AES-GCM`,iv:s},l,c);return new TextDecoder().decode(u)}catch{return null}}exports.decryptString=r,exports.encryptString=n;
2
+ //# sourceMappingURL=crypto.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"crypto.cjs","sources":["../../src/utils/crypto.ts"],"sourcesContent":["import { Base64Url } from './base64Url';\n\n/**\n * Generates a unique state string using UUID, suitable for OAuth flows.\n *\n * @returns {string} A randomly generated state string.\n */\nfunction generateState(): string {\n\treturn crypto.randomUUID().replace(/-/g, '');\n}\n\n/**\n * Generates a unique nonce using UUID, suitable for security in OAuth flows.\n *\n * @returns {string} A randomly generated nonce string.\n */\nfunction generateNonce(): string {\n\treturn crypto.randomUUID().replace(/-/g, '');\n}\n\n/**\n * Generates a code verifier for PKCE (Proof Key for Code Exchange).\n *\n * @returns {string} A randomly generated code verifier string.\n */\nfunction generateCodeVerifier(): string {\n\treturn `${crypto.randomUUID()}${crypto.randomUUID()}`.replace(/-/g, '');\n}\n\n/**\n * Generates a code challenge from a code verifier using SHA-256 hashing.\n *\n * @param {string} codeVerifier The code verifier string.\n * @returns {Promise<string>} A promise that resolves to the generated code challenge.\n */\nasync function generateCodeChallenge(codeVerifier: string): Promise<string> {\n\treturn Base64Url.encode(await crypto.subtle.digest('SHA-256', new TextEncoder().encode(codeVerifier)));\n}\n\nexport const Crypto = {\n\tgenerateState,\n\tgenerateNonce,\n\tgenerateCodeVerifier,\n\tgenerateCodeChallenge,\n};\n"],"names":["generateState","generateNonce","generateCodeVerifier","generateCodeChallenge","codeVerifier","Base64Url","Crypto"],"mappings":"mHAOA,SAASA,GAAwB,CAChC,OAAO,OAAO,WAAA,EAAa,QAAQ,KAAM,EAAE,CAC5C,CAOA,SAASC,GAAwB,CAChC,OAAO,OAAO,WAAA,EAAa,QAAQ,KAAM,EAAE,CAC5C,CAOA,SAASC,GAA+B,CACvC,MAAO,GAAG,OAAO,WAAA,CAAY,GAAG,OAAO,WAAA,CAAY,GAAG,QAAQ,KAAM,EAAE,CACvE,CAQA,eAAeC,EAAsBC,EAAuC,CAC3E,OAAOC,YAAU,OAAO,MAAM,OAAO,OAAO,OAAO,UAAW,IAAI,YAAA,EAAc,OAAOD,CAAY,CAAC,CAAC,CACtG,CAEO,MAAME,EAAS,CACrB,cAAAN,EACA,cAAAC,EACA,qBAAAC,EACA,sBAAAC,CACD"}
1
+ {"version":3,"file":"crypto.cjs","names":[],"sources":["../../src/utils/crypto.ts"],"sourcesContent":["import { decodeBase64URL, encodeBase64URL } from './base64url';\n\n/**\n * Derives a cryptographic key from the provided secret, salt, and context using the HKDF (HMAC-based Extract-and-Expand Key Derivation Function) algorithm.\n *\n * @param {string} secret - The input key material (IKM).\n * @param {Uint8Array} salt - A random salt (should be stored alongside the ciphertext).\n * @param {string} context - A context string that binds the key to its intended purpose (e.g. 'session', 'transaction').\n * @returns {Promise<CryptoKey>} A promise that resolves to the derived AES-GCM CryptoKey.\n */\nasync function deriveKey(secret: string, salt: Uint8Array, context: string): Promise<CryptoKey> {\n\tconst ikm = await globalThis.crypto.subtle.importKey('raw', new TextEncoder().encode(secret), 'HKDF', false, ['deriveBits']);\n\n\tconst keyBits = await globalThis.crypto.subtle.deriveBits(\n\t\t{\n\t\t\tname: 'HKDF',\n\t\t\thash: 'SHA-256',\n\t\t\tsalt: salt.buffer as ArrayBuffer,\n\t\t\tinfo: new TextEncoder().encode(context),\n\t\t},\n\t\tikm,\n\t\t32 << 3, // 256 bits\n\t);\n\n\treturn globalThis.crypto.subtle.importKey('raw', keyBits, { name: 'AES-GCM' }, false, ['encrypt', 'decrypt']);\n}\n\n/**\n * Encrypts a plaintext string using AES-GCM with a per-operation salt and IV.\n * The output format is Base64URL( salt(16) + iv(12) + ciphertext ).\n * A fresh HKDF key is derived for each encryption using the provided secret and context.\n *\n * @param {string} plaintext - The plaintext string to be encrypted.\n * @param {string} secret - The input key material.\n * @param {string} context - A context string that binds the key to its intended purpose.\n * @returns {Promise<string>} A promise that resolves to the Base64URL-encoded payload.\n */\nexport async function encryptString(plaintext: string, secret: string, context: string): Promise<string> {\n\tconst salt = globalThis.crypto.getRandomValues(new Uint8Array(16));\n\tconst iv = globalThis.crypto.getRandomValues(new Uint8Array(12));\n\tconst cryptoKey = await deriveKey(secret, salt, context);\n\tconst encoded = new TextEncoder().encode(plaintext);\n\tconst ciphertext = await globalThis.crypto.subtle.encrypt({ name: 'AES-GCM', iv }, cryptoKey, encoded);\n\tconst combined = new Uint8Array(salt.byteLength + iv.byteLength + ciphertext.byteLength);\n\n\tcombined.set(salt, 0);\n\tcombined.set(iv, salt.byteLength);\n\tcombined.set(new Uint8Array(ciphertext), salt.byteLength + iv.byteLength);\n\n\treturn encodeBase64URL(combined.buffer);\n}\n\n/**\n * Decrypts a Base64URL-encoded payload produced by {@link encryptString}.\n * Expects the format: salt(16) + iv(12) + ciphertext.\n * If decryption fails (e.g., due to tampering or incorrect key), the function returns null.\n *\n * @param {string} encoded - The Base64URL-encoded payload to be decrypted.\n * @param {string} secret - The input key material.\n * @param {string} context - The context string used during encryption.\n * @returns {Promise<string | null>} A promise that resolves to the decrypted plaintext string, or null if decryption fails.\n */\nexport async function decryptString(encoded: string, secret: string, context: string): Promise<string | null> {\n\ttry {\n\t\tconst combined = new Uint8Array(decodeBase64URL(encoded));\n\t\tconst salt = combined.slice(0, 16);\n\t\tconst iv = combined.slice(16, 28);\n\t\tconst ciphertext = combined.slice(28);\n\t\tconst cryptoKey = await deriveKey(secret, salt, context);\n\t\tconst plaintext = await globalThis.crypto.subtle.decrypt({ name: 'AES-GCM', iv }, cryptoKey, ciphertext);\n\n\t\treturn new TextDecoder().decode(plaintext);\n\t} catch {\n\t\treturn null;\n\t}\n}\n"],"mappings":"sGAUA,eAAe,EAAU,EAAgB,EAAkB,EAAqC,CAC/F,IAAM,EAAM,MAAM,WAAW,OAAO,OAAO,UAAU,MAAO,IAAI,YAAY,CAAC,CAAC,OAAO,CAAM,EAAG,OAAQ,GAAO,CAAC,YAAY,CAAC,EAErH,EAAU,MAAM,WAAW,OAAO,OAAO,WAC9C,CACC,KAAM,OACN,KAAM,UACN,KAAM,EAAK,OACX,KAAM,IAAI,YAAY,CAAC,CAAC,OAAO,CAAO,CACvC,EACA,EACA,GACD,EAEA,OAAO,WAAW,OAAO,OAAO,UAAU,MAAO,EAAS,CAAE,KAAM,SAAU,EAAG,GAAO,CAAC,UAAW,SAAS,CAAC,CAC7G,CAYA,eAAsB,EAAc,EAAmB,EAAgB,EAAkC,CACxG,IAAM,EAAO,WAAW,OAAO,gBAAgB,IAAI,WAAW,EAAE,CAAC,EAC3D,EAAK,WAAW,OAAO,gBAAgB,IAAI,WAAW,EAAE,CAAC,EACzD,EAAY,MAAM,EAAU,EAAQ,EAAM,CAAO,EACjD,EAAU,IAAI,YAAY,CAAC,CAAC,OAAO,CAAS,EAC5C,EAAa,MAAM,WAAW,OAAO,OAAO,QAAQ,CAAE,KAAM,UAAW,IAAG,EAAG,EAAW,CAAO,EAC/F,EAAW,IAAI,WAAW,EAAK,WAAa,EAAG,WAAa,EAAW,UAAU,EAMvF,OAJA,EAAS,IAAI,EAAM,CAAC,EACpB,EAAS,IAAI,EAAI,EAAK,UAAU,EAChC,EAAS,IAAI,IAAI,WAAW,CAAU,EAAG,EAAK,WAAa,EAAG,UAAU,EAEjE,EAAA,gBAAgB,EAAS,MAAM,CACvC,CAYA,eAAsB,EAAc,EAAiB,EAAgB,EAAyC,CAC7G,GAAI,CACH,IAAM,EAAW,IAAI,WAAW,EAAA,gBAAgB,CAAO,CAAC,EAClD,EAAO,EAAS,MAAM,EAAG,EAAE,EAC3B,EAAK,EAAS,MAAM,GAAI,EAAE,EAC1B,EAAa,EAAS,MAAM,EAAE,EAC9B,EAAY,MAAM,EAAU,EAAQ,EAAM,CAAO,EACjD,EAAY,MAAM,WAAW,OAAO,OAAO,QAAQ,CAAE,KAAM,UAAW,IAAG,EAAG,EAAW,CAAU,EAEvG,OAAO,IAAI,YAAY,CAAC,CAAC,OAAO,CAAS,CAC1C,MAAQ,CACP,OAAO,IACR,CACD"}
@@ -1,32 +1,22 @@
1
1
  /**
2
- * Generates a unique state string using UUID, suitable for OAuth flows.
2
+ * Encrypts a plaintext string using AES-GCM with a per-operation salt and IV.
3
+ * The output format is Base64URL( salt(16) + iv(12) + ciphertext ).
4
+ * A fresh HKDF key is derived for each encryption using the provided secret and context.
3
5
  *
4
- * @returns {string} A randomly generated state string.
6
+ * @param {string} plaintext - The plaintext string to be encrypted.
7
+ * @param {string} secret - The input key material.
8
+ * @param {string} context - A context string that binds the key to its intended purpose.
9
+ * @returns {Promise<string>} A promise that resolves to the Base64URL-encoded payload.
5
10
  */
6
- declare function generateState(): string;
11
+ export declare function encryptString(plaintext: string, secret: string, context: string): Promise<string>;
7
12
  /**
8
- * Generates a unique nonce using UUID, suitable for security in OAuth flows.
13
+ * Decrypts a Base64URL-encoded payload produced by {@link encryptString}.
14
+ * Expects the format: salt(16) + iv(12) + ciphertext.
15
+ * If decryption fails (e.g., due to tampering or incorrect key), the function returns null.
9
16
  *
10
- * @returns {string} A randomly generated nonce string.
17
+ * @param {string} encoded - The Base64URL-encoded payload to be decrypted.
18
+ * @param {string} secret - The input key material.
19
+ * @param {string} context - The context string used during encryption.
20
+ * @returns {Promise<string | null>} A promise that resolves to the decrypted plaintext string, or null if decryption fails.
11
21
  */
12
- declare function generateNonce(): string;
13
- /**
14
- * Generates a code verifier for PKCE (Proof Key for Code Exchange).
15
- *
16
- * @returns {string} A randomly generated code verifier string.
17
- */
18
- declare function generateCodeVerifier(): string;
19
- /**
20
- * Generates a code challenge from a code verifier using SHA-256 hashing.
21
- *
22
- * @param {string} codeVerifier The code verifier string.
23
- * @returns {Promise<string>} A promise that resolves to the generated code challenge.
24
- */
25
- declare function generateCodeChallenge(codeVerifier: string): Promise<string>;
26
- export declare const Crypto: {
27
- generateState: typeof generateState;
28
- generateNonce: typeof generateNonce;
29
- generateCodeVerifier: typeof generateCodeVerifier;
30
- generateCodeChallenge: typeof generateCodeChallenge;
31
- };
32
- export {};
22
+ export declare function decryptString(encoded: string, secret: string, context: string): Promise<string | null>;
@@ -1,2 +1,2 @@
1
- import{Base64Url as r}from"./base64Url.mjs";function n(){return crypto.randomUUID().replace(/-/g,"")}function t(){return crypto.randomUUID().replace(/-/g,"")}function o(){return`${crypto.randomUUID()}${crypto.randomUUID()}`.replace(/-/g,"")}async function c(e){return r.encode(await crypto.subtle.digest("SHA-256",new TextEncoder().encode(e)))}const p={generateState:n,generateNonce:t,generateCodeVerifier:o,generateCodeChallenge:c};export{p as Crypto};
2
- //# sourceMappingURL=crypto.mjs.map
1
+ import{decodeBase64URL as e,encodeBase64URL as t}from"./base64url.mjs";async function n(e,t,n){let r=await globalThis.crypto.subtle.importKey(`raw`,new TextEncoder().encode(e),`HKDF`,!1,[`deriveBits`]),i=await globalThis.crypto.subtle.deriveBits({name:`HKDF`,hash:`SHA-256`,salt:t.buffer,info:new TextEncoder().encode(n)},r,256);return globalThis.crypto.subtle.importKey(`raw`,i,{name:`AES-GCM`},!1,[`encrypt`,`decrypt`])}async function r(e,r,i){let a=globalThis.crypto.getRandomValues(new Uint8Array(16)),o=globalThis.crypto.getRandomValues(new Uint8Array(12)),s=await n(r,a,i),c=new TextEncoder().encode(e),l=await globalThis.crypto.subtle.encrypt({name:`AES-GCM`,iv:o},s,c),u=new Uint8Array(a.byteLength+o.byteLength+l.byteLength);return u.set(a,0),u.set(o,a.byteLength),u.set(new Uint8Array(l),a.byteLength+o.byteLength),t(u.buffer)}async function i(t,r,i){try{let a=new Uint8Array(e(t)),o=a.slice(0,16),s=a.slice(16,28),c=a.slice(28),l=await n(r,o,i),u=await globalThis.crypto.subtle.decrypt({name:`AES-GCM`,iv:s},l,c);return new TextDecoder().decode(u)}catch{return null}}export{i as decryptString,r as encryptString};
2
+ //# sourceMappingURL=crypto.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"crypto.mjs","sources":["../../src/utils/crypto.ts"],"sourcesContent":["import { Base64Url } from './base64Url';\n\n/**\n * Generates a unique state string using UUID, suitable for OAuth flows.\n *\n * @returns {string} A randomly generated state string.\n */\nfunction generateState(): string {\n\treturn crypto.randomUUID().replace(/-/g, '');\n}\n\n/**\n * Generates a unique nonce using UUID, suitable for security in OAuth flows.\n *\n * @returns {string} A randomly generated nonce string.\n */\nfunction generateNonce(): string {\n\treturn crypto.randomUUID().replace(/-/g, '');\n}\n\n/**\n * Generates a code verifier for PKCE (Proof Key for Code Exchange).\n *\n * @returns {string} A randomly generated code verifier string.\n */\nfunction generateCodeVerifier(): string {\n\treturn `${crypto.randomUUID()}${crypto.randomUUID()}`.replace(/-/g, '');\n}\n\n/**\n * Generates a code challenge from a code verifier using SHA-256 hashing.\n *\n * @param {string} codeVerifier The code verifier string.\n * @returns {Promise<string>} A promise that resolves to the generated code challenge.\n */\nasync function generateCodeChallenge(codeVerifier: string): Promise<string> {\n\treturn Base64Url.encode(await crypto.subtle.digest('SHA-256', new TextEncoder().encode(codeVerifier)));\n}\n\nexport const Crypto = {\n\tgenerateState,\n\tgenerateNonce,\n\tgenerateCodeVerifier,\n\tgenerateCodeChallenge,\n};\n"],"names":["generateState","generateNonce","generateCodeVerifier","generateCodeChallenge","codeVerifier","Base64Url","Crypto"],"mappings":"4CAOA,SAASA,GAAwB,CAChC,OAAO,OAAO,WAAA,EAAa,QAAQ,KAAM,EAAE,CAC5C,CAOA,SAASC,GAAwB,CAChC,OAAO,OAAO,WAAA,EAAa,QAAQ,KAAM,EAAE,CAC5C,CAOA,SAASC,GAA+B,CACvC,MAAO,GAAG,OAAO,WAAA,CAAY,GAAG,OAAO,WAAA,CAAY,GAAG,QAAQ,KAAM,EAAE,CACvE,CAQA,eAAeC,EAAsBC,EAAuC,CAC3E,OAAOC,EAAU,OAAO,MAAM,OAAO,OAAO,OAAO,UAAW,IAAI,YAAA,EAAc,OAAOD,CAAY,CAAC,CAAC,CACtG,CAEO,MAAME,EAAS,CACrB,cAAAN,EACA,cAAAC,EACA,qBAAAC,EACA,sBAAAC,CACD"}
1
+ {"version":3,"file":"crypto.mjs","names":[],"sources":["../../src/utils/crypto.ts"],"sourcesContent":["import { decodeBase64URL, encodeBase64URL } from './base64url';\n\n/**\n * Derives a cryptographic key from the provided secret, salt, and context using the HKDF (HMAC-based Extract-and-Expand Key Derivation Function) algorithm.\n *\n * @param {string} secret - The input key material (IKM).\n * @param {Uint8Array} salt - A random salt (should be stored alongside the ciphertext).\n * @param {string} context - A context string that binds the key to its intended purpose (e.g. 'session', 'transaction').\n * @returns {Promise<CryptoKey>} A promise that resolves to the derived AES-GCM CryptoKey.\n */\nasync function deriveKey(secret: string, salt: Uint8Array, context: string): Promise<CryptoKey> {\n\tconst ikm = await globalThis.crypto.subtle.importKey('raw', new TextEncoder().encode(secret), 'HKDF', false, ['deriveBits']);\n\n\tconst keyBits = await globalThis.crypto.subtle.deriveBits(\n\t\t{\n\t\t\tname: 'HKDF',\n\t\t\thash: 'SHA-256',\n\t\t\tsalt: salt.buffer as ArrayBuffer,\n\t\t\tinfo: new TextEncoder().encode(context),\n\t\t},\n\t\tikm,\n\t\t32 << 3, // 256 bits\n\t);\n\n\treturn globalThis.crypto.subtle.importKey('raw', keyBits, { name: 'AES-GCM' }, false, ['encrypt', 'decrypt']);\n}\n\n/**\n * Encrypts a plaintext string using AES-GCM with a per-operation salt and IV.\n * The output format is Base64URL( salt(16) + iv(12) + ciphertext ).\n * A fresh HKDF key is derived for each encryption using the provided secret and context.\n *\n * @param {string} plaintext - The plaintext string to be encrypted.\n * @param {string} secret - The input key material.\n * @param {string} context - A context string that binds the key to its intended purpose.\n * @returns {Promise<string>} A promise that resolves to the Base64URL-encoded payload.\n */\nexport async function encryptString(plaintext: string, secret: string, context: string): Promise<string> {\n\tconst salt = globalThis.crypto.getRandomValues(new Uint8Array(16));\n\tconst iv = globalThis.crypto.getRandomValues(new Uint8Array(12));\n\tconst cryptoKey = await deriveKey(secret, salt, context);\n\tconst encoded = new TextEncoder().encode(plaintext);\n\tconst ciphertext = await globalThis.crypto.subtle.encrypt({ name: 'AES-GCM', iv }, cryptoKey, encoded);\n\tconst combined = new Uint8Array(salt.byteLength + iv.byteLength + ciphertext.byteLength);\n\n\tcombined.set(salt, 0);\n\tcombined.set(iv, salt.byteLength);\n\tcombined.set(new Uint8Array(ciphertext), salt.byteLength + iv.byteLength);\n\n\treturn encodeBase64URL(combined.buffer);\n}\n\n/**\n * Decrypts a Base64URL-encoded payload produced by {@link encryptString}.\n * Expects the format: salt(16) + iv(12) + ciphertext.\n * If decryption fails (e.g., due to tampering or incorrect key), the function returns null.\n *\n * @param {string} encoded - The Base64URL-encoded payload to be decrypted.\n * @param {string} secret - The input key material.\n * @param {string} context - The context string used during encryption.\n * @returns {Promise<string | null>} A promise that resolves to the decrypted plaintext string, or null if decryption fails.\n */\nexport async function decryptString(encoded: string, secret: string, context: string): Promise<string | null> {\n\ttry {\n\t\tconst combined = new Uint8Array(decodeBase64URL(encoded));\n\t\tconst salt = combined.slice(0, 16);\n\t\tconst iv = combined.slice(16, 28);\n\t\tconst ciphertext = combined.slice(28);\n\t\tconst cryptoKey = await deriveKey(secret, salt, context);\n\t\tconst plaintext = await globalThis.crypto.subtle.decrypt({ name: 'AES-GCM', iv }, cryptoKey, ciphertext);\n\n\t\treturn new TextDecoder().decode(plaintext);\n\t} catch {\n\t\treturn null;\n\t}\n}\n"],"mappings":"uEAUA,eAAe,EAAU,EAAgB,EAAkB,EAAqC,CAC/F,IAAM,EAAM,MAAM,WAAW,OAAO,OAAO,UAAU,MAAO,IAAI,YAAY,CAAC,CAAC,OAAO,CAAM,EAAG,OAAQ,GAAO,CAAC,YAAY,CAAC,EAErH,EAAU,MAAM,WAAW,OAAO,OAAO,WAC9C,CACC,KAAM,OACN,KAAM,UACN,KAAM,EAAK,OACX,KAAM,IAAI,YAAY,CAAC,CAAC,OAAO,CAAO,CACvC,EACA,EACA,GACD,EAEA,OAAO,WAAW,OAAO,OAAO,UAAU,MAAO,EAAS,CAAE,KAAM,SAAU,EAAG,GAAO,CAAC,UAAW,SAAS,CAAC,CAC7G,CAYA,eAAsB,EAAc,EAAmB,EAAgB,EAAkC,CACxG,IAAM,EAAO,WAAW,OAAO,gBAAgB,IAAI,WAAW,EAAE,CAAC,EAC3D,EAAK,WAAW,OAAO,gBAAgB,IAAI,WAAW,EAAE,CAAC,EACzD,EAAY,MAAM,EAAU,EAAQ,EAAM,CAAO,EACjD,EAAU,IAAI,YAAY,CAAC,CAAC,OAAO,CAAS,EAC5C,EAAa,MAAM,WAAW,OAAO,OAAO,QAAQ,CAAE,KAAM,UAAW,IAAG,EAAG,EAAW,CAAO,EAC/F,EAAW,IAAI,WAAW,EAAK,WAAa,EAAG,WAAa,EAAW,UAAU,EAMvF,OAJA,EAAS,IAAI,EAAM,CAAC,EACpB,EAAS,IAAI,EAAI,EAAK,UAAU,EAChC,EAAS,IAAI,IAAI,WAAW,CAAU,EAAG,EAAK,WAAa,EAAG,UAAU,EAEjE,EAAgB,EAAS,MAAM,CACvC,CAYA,eAAsB,EAAc,EAAiB,EAAgB,EAAyC,CAC7G,GAAI,CACH,IAAM,EAAW,IAAI,WAAW,EAAgB,CAAO,CAAC,EAClD,EAAO,EAAS,MAAM,EAAG,EAAE,EAC3B,EAAK,EAAS,MAAM,GAAI,EAAE,EAC1B,EAAa,EAAS,MAAM,EAAE,EAC9B,EAAY,MAAM,EAAU,EAAQ,EAAM,CAAO,EACjD,EAAY,MAAM,WAAW,OAAO,OAAO,QAAQ,CAAE,KAAM,UAAW,IAAG,EAAG,EAAW,CAAU,EAEvG,OAAO,IAAI,YAAY,CAAC,CAAC,OAAO,CAAS,CAC1C,MAAQ,CACP,OAAO,IACR,CACD"}
@@ -0,0 +1,2 @@
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});function e(e,t){if(typeof document>`u`||document.getElementById(e))return;let n=document.createElement(`script`);n.id=e,n.src=t,n.async=!0,n.type=`module`,document.body.appendChild(n)}exports.injectScript=e;
2
+ //# sourceMappingURL=dom.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dom.cjs","names":[],"sources":["../../src/utils/dom.ts"],"sourcesContent":["/**\n * Injects an async ES module script, deduplicating by id.\n *\n * @param {string} id - A unique identifier for the script element.\n * @param {string} src - The URL of the script to inject.\n */\nexport function injectScript(id: string, src: string): void {\n\tif (typeof document === 'undefined' || document.getElementById(id)) {\n\t\treturn;\n\t}\n\n\tconst script = document.createElement('script');\n\n\tscript.id = id;\n\tscript.src = src;\n\tscript.async = true;\n\tscript.type = 'module';\n\n\tdocument.body.appendChild(script);\n}\n"],"mappings":"mEAMA,SAAgB,EAAa,EAAY,EAAmB,CAC3D,GAAI,OAAO,SAAa,KAAe,SAAS,eAAe,CAAE,EAChE,OAGD,IAAM,EAAS,SAAS,cAAc,QAAQ,EAE9C,EAAO,GAAK,EACZ,EAAO,IAAM,EACb,EAAO,MAAQ,GACf,EAAO,KAAO,SAEd,SAAS,KAAK,YAAY,CAAM,CACjC"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Injects an async ES module script, deduplicating by id.
3
+ *
4
+ * @param {string} id - A unique identifier for the script element.
5
+ * @param {string} src - The URL of the script to inject.
6
+ */
7
+ export declare function injectScript(id: string, src: string): void;
@@ -0,0 +1,2 @@
1
+ function e(e,t){if(typeof document>`u`||document.getElementById(e))return;let n=document.createElement(`script`);n.id=e,n.src=t,n.async=!0,n.type=`module`,document.body.appendChild(n)}export{e as injectScript};
2
+ //# sourceMappingURL=dom.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dom.mjs","names":[],"sources":["../../src/utils/dom.ts"],"sourcesContent":["/**\n * Injects an async ES module script, deduplicating by id.\n *\n * @param {string} id - A unique identifier for the script element.\n * @param {string} src - The URL of the script to inject.\n */\nexport function injectScript(id: string, src: string): void {\n\tif (typeof document === 'undefined' || document.getElementById(id)) {\n\t\treturn;\n\t}\n\n\tconst script = document.createElement('script');\n\n\tscript.id = id;\n\tscript.src = src;\n\tscript.async = true;\n\tscript.type = 'module';\n\n\tdocument.body.appendChild(script);\n}\n"],"mappings":"AAMA,SAAgB,EAAa,EAAY,EAAmB,CAC3D,GAAI,OAAO,SAAa,KAAe,SAAS,eAAe,CAAE,EAChE,OAGD,IAAM,EAAS,SAAS,cAAc,QAAQ,EAE9C,EAAO,GAAK,EACZ,EAAO,IAAM,EACb,EAAO,MAAQ,GACf,EAAO,KAAO,SAEd,SAAS,KAAK,YAAY,CAAM,CACjC"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});class t extends Error{constructor(r){super("Fallback occurred"),this.url=r,this.name="FallbackError"}}class o extends Error{constructor(r="Popup window blocked"){super(r),this.name="PopupBlockedError",Object.setPrototypeOf(this,o.prototype)}}class e extends Error{constructor(r="Popup closed by user"){super(r),this.name="PopupClosedError",Object.setPrototypeOf(this,e.prototype)}}exports.FallbackError=t;exports.PopupBlockedError=o;exports.PopupClosedError=e;
2
- //# sourceMappingURL=errors.cjs.map
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});var e=class extends Error{constructor(e,t){super(`Fallback occurred`),this.url=e,this.name=`FallbackError`,this.message=t?`Fallback occurred: ${t}`:`Fallback occurred`}},t=class e extends Error{constructor(t=`Popup window blocked`){super(t),this.name=`PopupBlockedError`,Object.setPrototypeOf(this,e.prototype)}},n=class e extends Error{constructor(t=`Popup closed by user`){super(t),this.name=`PopupClosedError`,Object.setPrototypeOf(this,e.prototype)}},r=class e extends Error{constructor(t=`Unsupported flow mode`){super(t),this.name=`UnsupportedFlowError`,Object.setPrototypeOf(this,e.prototype)}},i=class e extends Error{constructor(t=`Session expired`){super(t),this.name=`SessionExpiredError`,Object.setPrototypeOf(this,e.prototype)}},a=class e extends Error{constructor(t=`Network request failed`){super(t),this.category=`Network`,this.recoverable=!0,this.name=`NetworkError`,Object.setPrototypeOf(this,e.prototype)}},o=class e extends Error{constructor(t,n){super(t),this.status=n,this.category=`Server`,this.recoverable=!0,this.name=`ServerError`,Object.setPrototypeOf(this,e.prototype)}},s=class e extends Error{constructor(t,n,r){super(n?`${t}: ${n}`:t),this.error=t,this.errorDescription=n,this.errorUri=r,this.category=`Oidc`,this.recoverable=!1,this.name=`OidcError`,Object.setPrototypeOf(this,e.prototype)}},c=class e extends Error{constructor(t){super(t),this.category=`Protocol`,this.recoverable=!1,this.name=`ProtocolError`,Object.setPrototypeOf(this,e.prototype)}},l=class e extends Error{constructor(t){super(t),this.category=`InvalidRequest`,this.recoverable=!1,this.name=`ConfigurationError`,Object.setPrototypeOf(this,e.prototype)}},u=class e extends Error{constructor(t){super(t),this.category=`Internal`,this.recoverable=!1,this.name=`InternalError`,Object.setPrototypeOf(this,e.prototype)}};async function d(e){if(e.status===429||e.status>=500)throw new o(`Token endpoint returned HTTP ${e.status}`,e.status);let t;try{t=await e.json()}catch{throw new c(`Non-JSON error response from token endpoint`)}throw typeof t.error==`string`?new s(t.error,t.error_description,t.error_uri):new c(`Malformed error response from token endpoint`)}function f(e,t){throw e===429||e>=500?new o(t,e):new c(t)}exports.ConfigurationError=l,exports.FallbackError=e,exports.InternalError=u,exports.NetworkError=a,exports.OidcError=s,exports.PopupBlockedError=t,exports.PopupClosedError=n,exports.ProtocolError=c,exports.ServerError=o,exports.SessionExpiredError=i,exports.UnsupportedFlowError=r,exports.throwHttpError=f,exports.throwTokenEndpointError=d;
2
+ //# sourceMappingURL=errors.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"errors.cjs","sources":["../../src/utils/errors.ts"],"sourcesContent":["export class FallbackError extends Error {\n\tconstructor(public url: URL) {\n\t\tsuper('Fallback occurred');\n\t\tthis.name = 'FallbackError';\n\t}\n}\n\n/**\n * Error thrown when a popup window is blocked by the browser.\n */\nexport class PopupBlockedError extends Error {\n\tconstructor(message = 'Popup window blocked') {\n\t\tsuper(message);\n\t\tthis.name = 'PopupBlockedError';\n\t\tObject.setPrototypeOf(this, PopupBlockedError.prototype);\n\t}\n}\n\n/**\n * Error thrown when a popup window is closed by the user before completion.\n */\nexport class PopupClosedError extends Error {\n\tconstructor(message = 'Popup closed by user') {\n\t\tsuper(message);\n\t\tthis.name = 'PopupClosedError';\n\t\tObject.setPrototypeOf(this, PopupClosedError.prototype);\n\t}\n}\n"],"names":["FallbackError","url","PopupBlockedError","message","PopupClosedError"],"mappings":"gFAAO,MAAMA,UAAsB,KAAM,CACxC,YAAmBC,EAAU,CAC5B,MAAM,mBAAmB,EADP,KAAA,IAAAA,EAElB,KAAK,KAAO,eACb,CACD,CAKO,MAAMC,UAA0B,KAAM,CAC5C,YAAYC,EAAU,uBAAwB,CAC7C,MAAMA,CAAO,EACb,KAAK,KAAO,oBACZ,OAAO,eAAe,KAAMD,EAAkB,SAAS,CACxD,CACD,CAKO,MAAME,UAAyB,KAAM,CAC3C,YAAYD,EAAU,uBAAwB,CAC7C,MAAMA,CAAO,EACb,KAAK,KAAO,mBACZ,OAAO,eAAe,KAAMC,EAAiB,SAAS,CACvD,CACD"}
1
+ {"version":3,"file":"errors.cjs","names":[],"sources":["../../src/utils/errors.ts"],"sourcesContent":["export type FailureCategory = 'Network' | 'Server' | 'Oidc' | 'Protocol' | 'InvalidRequest' | 'Internal' | 'Unknown';\n\nexport class FallbackError extends Error {\n\tconstructor(\n\t\tpublic url: URL,\n\t\tmessage?: string,\n\t) {\n\t\tsuper('Fallback occurred');\n\t\tthis.name = 'FallbackError';\n\t\tthis.message = message ? `Fallback occurred: ${message}` : 'Fallback occurred';\n\t}\n}\n\n/**\n * Error thrown when a popup window is blocked by the browser.\n */\nexport class PopupBlockedError extends Error {\n\tconstructor(message = 'Popup window blocked') {\n\t\tsuper(message);\n\t\tthis.name = 'PopupBlockedError';\n\t\tObject.setPrototypeOf(this, PopupBlockedError.prototype);\n\t}\n}\n\n/**\n * Error thrown when a popup window is closed by the user before completion.\n */\nexport class PopupClosedError extends Error {\n\tconstructor(message = 'Popup closed by user') {\n\t\tsuper(message);\n\t\tthis.name = 'PopupClosedError';\n\t\tObject.setPrototypeOf(this, PopupClosedError.prototype);\n\t}\n}\n\nexport class UnsupportedFlowError extends Error {\n\tconstructor(message = 'Unsupported flow mode') {\n\t\tsuper(message);\n\t\tthis.name = 'UnsupportedFlowError';\n\t\tObject.setPrototypeOf(this, UnsupportedFlowError.prototype);\n\t}\n}\n\nexport class SessionExpiredError extends Error {\n\tconstructor(message = 'Session expired') {\n\t\tsuper(message);\n\t\tthis.name = 'SessionExpiredError';\n\t\tObject.setPrototypeOf(this, SessionExpiredError.prototype);\n\t}\n}\n\nexport class NetworkError extends Error {\n\treadonly category: FailureCategory = 'Network';\n\treadonly recoverable = true;\n\n\tconstructor(message = 'Network request failed') {\n\t\tsuper(message);\n\t\tthis.name = 'NetworkError';\n\t\tObject.setPrototypeOf(this, NetworkError.prototype);\n\t}\n}\n\nexport class ServerError extends Error {\n\treadonly category: FailureCategory = 'Server';\n\treadonly recoverable = true;\n\n\tconstructor(\n\t\tmessage: string,\n\t\tpublic status?: number,\n\t) {\n\t\tsuper(message);\n\t\tthis.name = 'ServerError';\n\t\tObject.setPrototypeOf(this, ServerError.prototype);\n\t}\n}\n\nexport class OidcError extends Error {\n\treadonly category: FailureCategory = 'Oidc';\n\treadonly recoverable = false;\n\n\tconstructor(\n\t\tpublic error: string,\n\t\tpublic errorDescription?: string | null,\n\t\tpublic errorUri?: string | null,\n\t) {\n\t\tsuper(errorDescription ? `${error}: ${errorDescription}` : error);\n\t\tthis.name = 'OidcError';\n\t\tObject.setPrototypeOf(this, OidcError.prototype);\n\t}\n}\n\nexport class ProtocolError extends Error {\n\treadonly category: FailureCategory = 'Protocol';\n\treadonly recoverable = false;\n\n\tconstructor(message: string) {\n\t\tsuper(message);\n\t\tthis.name = 'ProtocolError';\n\t\tObject.setPrototypeOf(this, ProtocolError.prototype);\n\t}\n}\n\nexport class ConfigurationError extends Error {\n\treadonly category: FailureCategory = 'InvalidRequest';\n\treadonly recoverable = false;\n\n\tconstructor(message: string) {\n\t\tsuper(message);\n\t\tthis.name = 'ConfigurationError';\n\t\tObject.setPrototypeOf(this, ConfigurationError.prototype);\n\t}\n}\n\nexport class InternalError extends Error {\n\treadonly category: FailureCategory = 'Internal';\n\treadonly recoverable = false;\n\n\tconstructor(message: string) {\n\t\tsuper(message);\n\t\tthis.name = 'InternalError';\n\t\tObject.setPrototypeOf(this, InternalError.prototype);\n\t}\n}\n\n/**\n * Throws the appropriate structured error for a non-OK token/revocation endpoint response:\n * `ServerError` for 5xx/429, `OidcError` for a well-formed `{error, ...}` body, `ProtocolError` otherwise.\n *\n * @param {Object} response - The non-OK HTTP response from a token/revocation endpoint.\n * @throws {ServerError | OidcError | ProtocolError} Always throws.\n */\nexport async function throwTokenEndpointError(response: { status: number; json: () => Promise<Record<string, string>> }): Promise<never> {\n\tif (response.status === 429 || response.status >= 500) {\n\t\tthrow new ServerError(`Token endpoint returned HTTP ${response.status}`, response.status);\n\t}\n\n\tlet body: Record<string, string>;\n\n\ttry {\n\t\tbody = await response.json();\n\t} catch {\n\t\tthrow new ProtocolError(`Non-JSON error response from token endpoint`);\n\t}\n\n\tif (typeof body.error !== 'string') {\n\t\tthrow new ProtocolError(`Malformed error response from token endpoint`);\n\t}\n\n\tthrow new OidcError(body.error, body.error_description, body.error_uri);\n}\n\n/**\n * Throws the appropriate structured error for a non-OK HTTP response that has no OAuth-style `{error, ...}` body:\n * `ServerError` for 5xx/429, `ProtocolError` otherwise.\n *\n * @param {number} status - The HTTP status code of the failed response.\n * @param {string} message - The error message to use.\n * @throws {ServerError | ProtocolError} Always throws.\n */\nexport function throwHttpError(status: number, message: string): never {\n\tif (status === 429 || status >= 500) {\n\t\tthrow new ServerError(message, status);\n\t}\n\n\tthrow new ProtocolError(message);\n}\n"],"mappings":"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"}
@@ -1,6 +1,7 @@
1
+ export type FailureCategory = 'Network' | 'Server' | 'Oidc' | 'Protocol' | 'InvalidRequest' | 'Internal' | 'Unknown';
1
2
  export declare class FallbackError extends Error {
2
3
  url: URL;
3
- constructor(url: URL);
4
+ constructor(url: URL, message?: string);
4
5
  }
5
6
  /**
6
7
  * Error thrown when a popup window is blocked by the browser.
@@ -14,3 +15,63 @@ export declare class PopupBlockedError extends Error {
14
15
  export declare class PopupClosedError extends Error {
15
16
  constructor(message?: string);
16
17
  }
18
+ export declare class UnsupportedFlowError extends Error {
19
+ constructor(message?: string);
20
+ }
21
+ export declare class SessionExpiredError extends Error {
22
+ constructor(message?: string);
23
+ }
24
+ export declare class NetworkError extends Error {
25
+ readonly category: FailureCategory;
26
+ readonly recoverable = true;
27
+ constructor(message?: string);
28
+ }
29
+ export declare class ServerError extends Error {
30
+ status?: number | undefined;
31
+ readonly category: FailureCategory;
32
+ readonly recoverable = true;
33
+ constructor(message: string, status?: number | undefined);
34
+ }
35
+ export declare class OidcError extends Error {
36
+ error: string;
37
+ errorDescription?: string | null | undefined;
38
+ errorUri?: string | null | undefined;
39
+ readonly category: FailureCategory;
40
+ readonly recoverable = false;
41
+ constructor(error: string, errorDescription?: string | null | undefined, errorUri?: string | null | undefined);
42
+ }
43
+ export declare class ProtocolError extends Error {
44
+ readonly category: FailureCategory;
45
+ readonly recoverable = false;
46
+ constructor(message: string);
47
+ }
48
+ export declare class ConfigurationError extends Error {
49
+ readonly category: FailureCategory;
50
+ readonly recoverable = false;
51
+ constructor(message: string);
52
+ }
53
+ export declare class InternalError extends Error {
54
+ readonly category: FailureCategory;
55
+ readonly recoverable = false;
56
+ constructor(message: string);
57
+ }
58
+ /**
59
+ * Throws the appropriate structured error for a non-OK token/revocation endpoint response:
60
+ * `ServerError` for 5xx/429, `OidcError` for a well-formed `{error, ...}` body, `ProtocolError` otherwise.
61
+ *
62
+ * @param {Object} response - The non-OK HTTP response from a token/revocation endpoint.
63
+ * @throws {ServerError | OidcError | ProtocolError} Always throws.
64
+ */
65
+ export declare function throwTokenEndpointError(response: {
66
+ status: number;
67
+ json: () => Promise<Record<string, string>>;
68
+ }): Promise<never>;
69
+ /**
70
+ * Throws the appropriate structured error for a non-OK HTTP response that has no OAuth-style `{error, ...}` body:
71
+ * `ServerError` for 5xx/429, `ProtocolError` otherwise.
72
+ *
73
+ * @param {number} status - The HTTP status code of the failed response.
74
+ * @param {string} message - The error message to use.
75
+ * @throws {ServerError | ProtocolError} Always throws.
76
+ */
77
+ export declare function throwHttpError(status: number, message: string): never;
@@ -1,2 +1,2 @@
1
- class s extends Error{constructor(r){super("Fallback occurred"),this.url=r,this.name="FallbackError"}}class o extends Error{constructor(r="Popup window blocked"){super(r),this.name="PopupBlockedError",Object.setPrototypeOf(this,o.prototype)}}class t extends Error{constructor(r="Popup closed by user"){super(r),this.name="PopupClosedError",Object.setPrototypeOf(this,t.prototype)}}export{s as FallbackError,o as PopupBlockedError,t as PopupClosedError};
2
- //# sourceMappingURL=errors.mjs.map
1
+ var e=class extends Error{constructor(e,t){super(`Fallback occurred`),this.url=e,this.name=`FallbackError`,this.message=t?`Fallback occurred: ${t}`:`Fallback occurred`}},t=class e extends Error{constructor(t=`Popup window blocked`){super(t),this.name=`PopupBlockedError`,Object.setPrototypeOf(this,e.prototype)}},n=class e extends Error{constructor(t=`Popup closed by user`){super(t),this.name=`PopupClosedError`,Object.setPrototypeOf(this,e.prototype)}},r=class e extends Error{constructor(t=`Unsupported flow mode`){super(t),this.name=`UnsupportedFlowError`,Object.setPrototypeOf(this,e.prototype)}},i=class e extends Error{constructor(t=`Session expired`){super(t),this.name=`SessionExpiredError`,Object.setPrototypeOf(this,e.prototype)}},a=class e extends Error{constructor(t=`Network request failed`){super(t),this.category=`Network`,this.recoverable=!0,this.name=`NetworkError`,Object.setPrototypeOf(this,e.prototype)}},o=class e extends Error{constructor(t,n){super(t),this.status=n,this.category=`Server`,this.recoverable=!0,this.name=`ServerError`,Object.setPrototypeOf(this,e.prototype)}},s=class e extends Error{constructor(t,n,r){super(n?`${t}: ${n}`:t),this.error=t,this.errorDescription=n,this.errorUri=r,this.category=`Oidc`,this.recoverable=!1,this.name=`OidcError`,Object.setPrototypeOf(this,e.prototype)}},c=class e extends Error{constructor(t){super(t),this.category=`Protocol`,this.recoverable=!1,this.name=`ProtocolError`,Object.setPrototypeOf(this,e.prototype)}},l=class e extends Error{constructor(t){super(t),this.category=`InvalidRequest`,this.recoverable=!1,this.name=`ConfigurationError`,Object.setPrototypeOf(this,e.prototype)}},u=class e extends Error{constructor(t){super(t),this.category=`Internal`,this.recoverable=!1,this.name=`InternalError`,Object.setPrototypeOf(this,e.prototype)}};async function d(e){if(e.status===429||e.status>=500)throw new o(`Token endpoint returned HTTP ${e.status}`,e.status);let t;try{t=await e.json()}catch{throw new c(`Non-JSON error response from token endpoint`)}throw typeof t.error==`string`?new s(t.error,t.error_description,t.error_uri):new c(`Malformed error response from token endpoint`)}function f(e,t){throw e===429||e>=500?new o(t,e):new c(t)}export{l as ConfigurationError,e as FallbackError,u as InternalError,a as NetworkError,s as OidcError,t as PopupBlockedError,n as PopupClosedError,c as ProtocolError,o as ServerError,i as SessionExpiredError,r as UnsupportedFlowError,f as throwHttpError,d as throwTokenEndpointError};
2
+ //# sourceMappingURL=errors.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"errors.mjs","sources":["../../src/utils/errors.ts"],"sourcesContent":["export class FallbackError extends Error {\n\tconstructor(public url: URL) {\n\t\tsuper('Fallback occurred');\n\t\tthis.name = 'FallbackError';\n\t}\n}\n\n/**\n * Error thrown when a popup window is blocked by the browser.\n */\nexport class PopupBlockedError extends Error {\n\tconstructor(message = 'Popup window blocked') {\n\t\tsuper(message);\n\t\tthis.name = 'PopupBlockedError';\n\t\tObject.setPrototypeOf(this, PopupBlockedError.prototype);\n\t}\n}\n\n/**\n * Error thrown when a popup window is closed by the user before completion.\n */\nexport class PopupClosedError extends Error {\n\tconstructor(message = 'Popup closed by user') {\n\t\tsuper(message);\n\t\tthis.name = 'PopupClosedError';\n\t\tObject.setPrototypeOf(this, PopupClosedError.prototype);\n\t}\n}\n"],"names":["FallbackError","url","PopupBlockedError","message","PopupClosedError"],"mappings":"AAAO,MAAMA,UAAsB,KAAM,CACxC,YAAmBC,EAAU,CAC5B,MAAM,mBAAmB,EADP,KAAA,IAAAA,EAElB,KAAK,KAAO,eACb,CACD,CAKO,MAAMC,UAA0B,KAAM,CAC5C,YAAYC,EAAU,uBAAwB,CAC7C,MAAMA,CAAO,EACb,KAAK,KAAO,oBACZ,OAAO,eAAe,KAAMD,EAAkB,SAAS,CACxD,CACD,CAKO,MAAME,UAAyB,KAAM,CAC3C,YAAYD,EAAU,uBAAwB,CAC7C,MAAMA,CAAO,EACb,KAAK,KAAO,mBACZ,OAAO,eAAe,KAAMC,EAAiB,SAAS,CACvD,CACD"}
1
+ {"version":3,"file":"errors.mjs","names":[],"sources":["../../src/utils/errors.ts"],"sourcesContent":["export type FailureCategory = 'Network' | 'Server' | 'Oidc' | 'Protocol' | 'InvalidRequest' | 'Internal' | 'Unknown';\n\nexport class FallbackError extends Error {\n\tconstructor(\n\t\tpublic url: URL,\n\t\tmessage?: string,\n\t) {\n\t\tsuper('Fallback occurred');\n\t\tthis.name = 'FallbackError';\n\t\tthis.message = message ? `Fallback occurred: ${message}` : 'Fallback occurred';\n\t}\n}\n\n/**\n * Error thrown when a popup window is blocked by the browser.\n */\nexport class PopupBlockedError extends Error {\n\tconstructor(message = 'Popup window blocked') {\n\t\tsuper(message);\n\t\tthis.name = 'PopupBlockedError';\n\t\tObject.setPrototypeOf(this, PopupBlockedError.prototype);\n\t}\n}\n\n/**\n * Error thrown when a popup window is closed by the user before completion.\n */\nexport class PopupClosedError extends Error {\n\tconstructor(message = 'Popup closed by user') {\n\t\tsuper(message);\n\t\tthis.name = 'PopupClosedError';\n\t\tObject.setPrototypeOf(this, PopupClosedError.prototype);\n\t}\n}\n\nexport class UnsupportedFlowError extends Error {\n\tconstructor(message = 'Unsupported flow mode') {\n\t\tsuper(message);\n\t\tthis.name = 'UnsupportedFlowError';\n\t\tObject.setPrototypeOf(this, UnsupportedFlowError.prototype);\n\t}\n}\n\nexport class SessionExpiredError extends Error {\n\tconstructor(message = 'Session expired') {\n\t\tsuper(message);\n\t\tthis.name = 'SessionExpiredError';\n\t\tObject.setPrototypeOf(this, SessionExpiredError.prototype);\n\t}\n}\n\nexport class NetworkError extends Error {\n\treadonly category: FailureCategory = 'Network';\n\treadonly recoverable = true;\n\n\tconstructor(message = 'Network request failed') {\n\t\tsuper(message);\n\t\tthis.name = 'NetworkError';\n\t\tObject.setPrototypeOf(this, NetworkError.prototype);\n\t}\n}\n\nexport class ServerError extends Error {\n\treadonly category: FailureCategory = 'Server';\n\treadonly recoverable = true;\n\n\tconstructor(\n\t\tmessage: string,\n\t\tpublic status?: number,\n\t) {\n\t\tsuper(message);\n\t\tthis.name = 'ServerError';\n\t\tObject.setPrototypeOf(this, ServerError.prototype);\n\t}\n}\n\nexport class OidcError extends Error {\n\treadonly category: FailureCategory = 'Oidc';\n\treadonly recoverable = false;\n\n\tconstructor(\n\t\tpublic error: string,\n\t\tpublic errorDescription?: string | null,\n\t\tpublic errorUri?: string | null,\n\t) {\n\t\tsuper(errorDescription ? `${error}: ${errorDescription}` : error);\n\t\tthis.name = 'OidcError';\n\t\tObject.setPrototypeOf(this, OidcError.prototype);\n\t}\n}\n\nexport class ProtocolError extends Error {\n\treadonly category: FailureCategory = 'Protocol';\n\treadonly recoverable = false;\n\n\tconstructor(message: string) {\n\t\tsuper(message);\n\t\tthis.name = 'ProtocolError';\n\t\tObject.setPrototypeOf(this, ProtocolError.prototype);\n\t}\n}\n\nexport class ConfigurationError extends Error {\n\treadonly category: FailureCategory = 'InvalidRequest';\n\treadonly recoverable = false;\n\n\tconstructor(message: string) {\n\t\tsuper(message);\n\t\tthis.name = 'ConfigurationError';\n\t\tObject.setPrototypeOf(this, ConfigurationError.prototype);\n\t}\n}\n\nexport class InternalError extends Error {\n\treadonly category: FailureCategory = 'Internal';\n\treadonly recoverable = false;\n\n\tconstructor(message: string) {\n\t\tsuper(message);\n\t\tthis.name = 'InternalError';\n\t\tObject.setPrototypeOf(this, InternalError.prototype);\n\t}\n}\n\n/**\n * Throws the appropriate structured error for a non-OK token/revocation endpoint response:\n * `ServerError` for 5xx/429, `OidcError` for a well-formed `{error, ...}` body, `ProtocolError` otherwise.\n *\n * @param {Object} response - The non-OK HTTP response from a token/revocation endpoint.\n * @throws {ServerError | OidcError | ProtocolError} Always throws.\n */\nexport async function throwTokenEndpointError(response: { status: number; json: () => Promise<Record<string, string>> }): Promise<never> {\n\tif (response.status === 429 || response.status >= 500) {\n\t\tthrow new ServerError(`Token endpoint returned HTTP ${response.status}`, response.status);\n\t}\n\n\tlet body: Record<string, string>;\n\n\ttry {\n\t\tbody = await response.json();\n\t} catch {\n\t\tthrow new ProtocolError(`Non-JSON error response from token endpoint`);\n\t}\n\n\tif (typeof body.error !== 'string') {\n\t\tthrow new ProtocolError(`Malformed error response from token endpoint`);\n\t}\n\n\tthrow new OidcError(body.error, body.error_description, body.error_uri);\n}\n\n/**\n * Throws the appropriate structured error for a non-OK HTTP response that has no OAuth-style `{error, ...}` body:\n * `ServerError` for 5xx/429, `ProtocolError` otherwise.\n *\n * @param {number} status - The HTTP status code of the failed response.\n * @param {string} message - The error message to use.\n * @throws {ServerError | ProtocolError} Always throws.\n */\nexport function throwHttpError(status: number, message: string): never {\n\tif (status === 429 || status >= 500) {\n\t\tthrow new ServerError(message, status);\n\t}\n\n\tthrow new ProtocolError(message);\n}\n"],"mappings":"AAEA,IAAa,EAAb,cAAmC,KAAM,CACxC,YACC,EACA,EACC,CACD,MAAM,mBAAmB,EAHlB,KAAA,IAAA,EAIP,KAAK,KAAO,gBACZ,KAAK,QAAU,EAAU,sBAAsB,IAAY,mBAC5D,CACD,EAKa,EAAb,MAAa,UAA0B,KAAM,CAC5C,YAAY,EAAU,uBAAwB,CAC7C,MAAM,CAAO,EACb,KAAK,KAAO,oBACZ,OAAO,eAAe,KAAM,EAAkB,SAAS,CACxD,CACD,EAKa,EAAb,MAAa,UAAyB,KAAM,CAC3C,YAAY,EAAU,uBAAwB,CAC7C,MAAM,CAAO,EACb,KAAK,KAAO,mBACZ,OAAO,eAAe,KAAM,EAAiB,SAAS,CACvD,CACD,EAEa,EAAb,MAAa,UAA6B,KAAM,CAC/C,YAAY,EAAU,wBAAyB,CAC9C,MAAM,CAAO,EACb,KAAK,KAAO,uBACZ,OAAO,eAAe,KAAM,EAAqB,SAAS,CAC3D,CACD,EAEa,EAAb,MAAa,UAA4B,KAAM,CAC9C,YAAY,EAAU,kBAAmB,CACxC,MAAM,CAAO,EACb,KAAK,KAAO,sBACZ,OAAO,eAAe,KAAM,EAAoB,SAAS,CAC1D,CACD,EAEa,EAAb,MAAa,UAAqB,KAAM,CAIvC,YAAY,EAAU,yBAA0B,CAC/C,MAAM,CAAO,EAJuB,KAAA,SAAA,UACd,KAAA,YAAA,GAItB,KAAK,KAAO,eACZ,OAAO,eAAe,KAAM,EAAa,SAAS,CACnD,CACD,EAEa,EAAb,MAAa,UAAoB,KAAM,CAItC,YACC,EACA,EACC,CACD,MAAM,CAAO,EAFN,KAAA,OAAA,EAL6B,KAAA,SAAA,SACd,KAAA,YAAA,GAOtB,KAAK,KAAO,cACZ,OAAO,eAAe,KAAM,EAAY,SAAS,CAClD,CACD,EAEa,EAAb,MAAa,UAAkB,KAAM,CAIpC,YACC,EACA,EACA,EACC,CACD,MAAM,EAAmB,GAAG,EAAM,IAAI,IAAqB,CAAK,EAJzD,KAAA,MAAA,EACA,KAAA,iBAAA,EACA,KAAA,SAAA,EAN6B,KAAA,SAAA,OACd,KAAA,YAAA,GAQtB,KAAK,KAAO,YACZ,OAAO,eAAe,KAAM,EAAU,SAAS,CAChD,CACD,EAEa,EAAb,MAAa,UAAsB,KAAM,CAIxC,YAAY,EAAiB,CAC5B,MAAM,CAAO,EAJuB,KAAA,SAAA,WACd,KAAA,YAAA,GAItB,KAAK,KAAO,gBACZ,OAAO,eAAe,KAAM,EAAc,SAAS,CACpD,CACD,EAEa,EAAb,MAAa,UAA2B,KAAM,CAI7C,YAAY,EAAiB,CAC5B,MAAM,CAAO,EAJuB,KAAA,SAAA,iBACd,KAAA,YAAA,GAItB,KAAK,KAAO,qBACZ,OAAO,eAAe,KAAM,EAAmB,SAAS,CACzD,CACD,EAEa,EAAb,MAAa,UAAsB,KAAM,CAIxC,YAAY,EAAiB,CAC5B,MAAM,CAAO,EAJuB,KAAA,SAAA,WACd,KAAA,YAAA,GAItB,KAAK,KAAO,gBACZ,OAAO,eAAe,KAAM,EAAc,SAAS,CACpD,CACD,EASA,eAAsB,EAAwB,EAA2F,CACxI,GAAI,EAAS,SAAW,KAAO,EAAS,QAAU,IACjD,MAAM,IAAI,EAAY,gCAAgC,EAAS,SAAU,EAAS,MAAM,EAGzF,IAAI,EAEJ,GAAI,CACH,EAAO,MAAM,EAAS,KAAK,CAC5B,MAAQ,CACP,MAAM,IAAI,EAAc,6CAA6C,CACtE,CAMA,MAJI,OAAO,EAAK,OAAU,SAIpB,IAAI,EAAU,EAAK,MAAO,EAAK,kBAAmB,EAAK,SAAS,EAH/D,IAAI,EAAc,8CAA8C,CAIxE,CAUA,SAAgB,EAAe,EAAgB,EAAwB,CAKtE,MAJI,IAAW,KAAO,GAAU,IACzB,IAAI,EAAY,EAAS,CAAM,EAGhC,IAAI,EAAc,CAAO,CAChC"}
@@ -0,0 +1,2 @@
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./errors.cjs");function t(t){let n={logger:t,async request(t,r){t=new URL(t,globalThis.location?.origin),n.logger?.debug(`REQUEST [${r?.method||`GET`}]: ${t.origin}${t.pathname}`);let i;try{i=await fetch(t,r)}catch{throw new e.NetworkError(`Network request failed: ${t.origin}${t.pathname}`)}if(n.logger&&i.headers.has(`x-event-id`)){let e=i.headers.get(`x-event-id`);n.logger.xEventId!==e&&(n.logger.xEventId=e,n.logger.debug(`X-Event-ID updated: ${n.logger.xEventId}`))}return{headers:i.headers,ok:i.ok,status:i.status,statusText:i.statusText,url:i.url,body:i.body,json:async()=>await i.json(),text:async()=>await i.text()}},sendTokenRequest(e,t){return n.request(e,{method:`POST`,headers:{"Content-Type":`application/x-www-form-urlencoded`},body:new URLSearchParams(t).toString()})}};return n}exports.createHttpClient=t;
2
+ //# sourceMappingURL=httpClient.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"httpClient.cjs","names":[],"sources":["../../src/utils/httpClient.ts"],"sourcesContent":["import type { SDKLogging, HttpClientResponse, SDKHttpClient } from '../types/common';\nimport { NetworkError } from './errors';\n\nexport function createHttpClient(logging?: SDKLogging): SDKHttpClient {\n\tconst client: SDKHttpClient = {\n\t\tlogger: logging,\n\t\tasync request<T>(url: string | URL, options?: RequestInit): Promise<HttpClientResponse<T>> {\n\t\t\turl = new URL(url, globalThis.location?.origin);\n\n\t\t\tclient.logger?.debug(`REQUEST [${options?.method || 'GET'}]: ${url.origin}${url.pathname}`);\n\n\t\t\tlet response: Response;\n\n\t\t\ttry {\n\t\t\t\tresponse = await fetch(url, options);\n\t\t\t} catch {\n\t\t\t\tthrow new NetworkError(`Network request failed: ${url.origin}${url.pathname}`);\n\t\t\t}\n\n\t\t\tif (client.logger && response.headers.has('x-event-id')) {\n\t\t\t\tconst xEventId = response.headers.get('x-event-id') as string;\n\n\t\t\t\tif (client.logger.xEventId !== xEventId) {\n\t\t\t\t\tclient.logger.xEventId = xEventId;\n\t\t\t\t\tclient.logger.debug(`X-Event-ID updated: ${client.logger.xEventId}`);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\theaders: response.headers,\n\t\t\t\tok: response.ok,\n\t\t\t\tstatus: response.status,\n\t\t\t\tstatusText: response.statusText,\n\t\t\t\turl: response.url,\n\t\t\t\tbody: response.body,\n\t\t\t\tjson: async () => (await response.json()) as T,\n\t\t\t\ttext: async () => await response.text(),\n\t\t\t\t// NOTE: Only json and text methods are supported in native platforms.\n\t\t\t};\n\t\t},\n\t\tsendTokenRequest<T>(url: string | URL, data: Record<string, string>): Promise<HttpClientResponse<T>> {\n\t\t\treturn client.request<T>(url, {\n\t\t\t\tmethod: 'POST',\n\t\t\t\theaders: { 'Content-Type': 'application/x-www-form-urlencoded' },\n\t\t\t\tbody: new URLSearchParams(data).toString(),\n\t\t\t});\n\t\t},\n\t};\n\n\treturn client;\n}\n"],"mappings":"mGAGA,SAAgB,EAAiB,EAAqC,CACrE,IAAM,EAAwB,CAC7B,OAAQ,EACR,MAAM,QAAW,EAAmB,EAAuD,CAC1F,EAAM,IAAI,IAAI,EAAK,WAAW,UAAU,MAAM,EAE9C,EAAO,QAAQ,MAAM,YAAY,GAAS,QAAU,MAAM,KAAK,EAAI,SAAS,EAAI,UAAU,EAE1F,IAAI,EAEJ,GAAI,CACH,EAAW,MAAM,MAAM,EAAK,CAAO,CACpC,MAAQ,CACP,MAAM,IAAI,EAAA,aAAa,2BAA2B,EAAI,SAAS,EAAI,UAAU,CAC9E,CAEA,GAAI,EAAO,QAAU,EAAS,QAAQ,IAAI,YAAY,EAAG,CACxD,IAAM,EAAW,EAAS,QAAQ,IAAI,YAAY,EAE9C,EAAO,OAAO,WAAa,IAC9B,EAAO,OAAO,SAAW,EACzB,EAAO,OAAO,MAAM,uBAAuB,EAAO,OAAO,UAAU,EAErE,CAEA,MAAO,CACN,QAAS,EAAS,QAClB,GAAI,EAAS,GACb,OAAQ,EAAS,OACjB,WAAY,EAAS,WACrB,IAAK,EAAS,IACd,KAAM,EAAS,KACf,KAAM,SAAa,MAAM,EAAS,KAAK,EACvC,KAAM,SAAY,MAAM,EAAS,KAAK,CAEvC,CACD,EACA,iBAAoB,EAAmB,EAA8D,CACpG,OAAO,EAAO,QAAW,EAAK,CAC7B,OAAQ,OACR,QAAS,CAAE,eAAgB,mCAAoC,EAC/D,KAAM,IAAI,gBAAgB,CAAI,CAAC,CAAC,SAAS,CAC1C,CAAC,CACF,CACD,EAEA,OAAO,CACR"}
@@ -0,0 +1,2 @@
1
+ import { SDKLogging, SDKHttpClient } from '../types/common';
2
+ export declare function createHttpClient(logging?: SDKLogging): SDKHttpClient;
@@ -0,0 +1,2 @@
1
+ import{NetworkError as e}from"./errors.mjs";function t(t){let n={logger:t,async request(t,r){t=new URL(t,globalThis.location?.origin),n.logger?.debug(`REQUEST [${r?.method||`GET`}]: ${t.origin}${t.pathname}`);let i;try{i=await fetch(t,r)}catch{throw new e(`Network request failed: ${t.origin}${t.pathname}`)}if(n.logger&&i.headers.has(`x-event-id`)){let e=i.headers.get(`x-event-id`);n.logger.xEventId!==e&&(n.logger.xEventId=e,n.logger.debug(`X-Event-ID updated: ${n.logger.xEventId}`))}return{headers:i.headers,ok:i.ok,status:i.status,statusText:i.statusText,url:i.url,body:i.body,json:async()=>await i.json(),text:async()=>await i.text()}},sendTokenRequest(e,t){return n.request(e,{method:`POST`,headers:{"Content-Type":`application/x-www-form-urlencoded`},body:new URLSearchParams(t).toString()})}};return n}export{t as createHttpClient};
2
+ //# sourceMappingURL=httpClient.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"httpClient.mjs","names":[],"sources":["../../src/utils/httpClient.ts"],"sourcesContent":["import type { SDKLogging, HttpClientResponse, SDKHttpClient } from '../types/common';\nimport { NetworkError } from './errors';\n\nexport function createHttpClient(logging?: SDKLogging): SDKHttpClient {\n\tconst client: SDKHttpClient = {\n\t\tlogger: logging,\n\t\tasync request<T>(url: string | URL, options?: RequestInit): Promise<HttpClientResponse<T>> {\n\t\t\turl = new URL(url, globalThis.location?.origin);\n\n\t\t\tclient.logger?.debug(`REQUEST [${options?.method || 'GET'}]: ${url.origin}${url.pathname}`);\n\n\t\t\tlet response: Response;\n\n\t\t\ttry {\n\t\t\t\tresponse = await fetch(url, options);\n\t\t\t} catch {\n\t\t\t\tthrow new NetworkError(`Network request failed: ${url.origin}${url.pathname}`);\n\t\t\t}\n\n\t\t\tif (client.logger && response.headers.has('x-event-id')) {\n\t\t\t\tconst xEventId = response.headers.get('x-event-id') as string;\n\n\t\t\t\tif (client.logger.xEventId !== xEventId) {\n\t\t\t\t\tclient.logger.xEventId = xEventId;\n\t\t\t\t\tclient.logger.debug(`X-Event-ID updated: ${client.logger.xEventId}`);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\theaders: response.headers,\n\t\t\t\tok: response.ok,\n\t\t\t\tstatus: response.status,\n\t\t\t\tstatusText: response.statusText,\n\t\t\t\turl: response.url,\n\t\t\t\tbody: response.body,\n\t\t\t\tjson: async () => (await response.json()) as T,\n\t\t\t\ttext: async () => await response.text(),\n\t\t\t\t// NOTE: Only json and text methods are supported in native platforms.\n\t\t\t};\n\t\t},\n\t\tsendTokenRequest<T>(url: string | URL, data: Record<string, string>): Promise<HttpClientResponse<T>> {\n\t\t\treturn client.request<T>(url, {\n\t\t\t\tmethod: 'POST',\n\t\t\t\theaders: { 'Content-Type': 'application/x-www-form-urlencoded' },\n\t\t\t\tbody: new URLSearchParams(data).toString(),\n\t\t\t});\n\t\t},\n\t};\n\n\treturn client;\n}\n"],"mappings":"4CAGA,SAAgB,EAAiB,EAAqC,CACrE,IAAM,EAAwB,CAC7B,OAAQ,EACR,MAAM,QAAW,EAAmB,EAAuD,CAC1F,EAAM,IAAI,IAAI,EAAK,WAAW,UAAU,MAAM,EAE9C,EAAO,QAAQ,MAAM,YAAY,GAAS,QAAU,MAAM,KAAK,EAAI,SAAS,EAAI,UAAU,EAE1F,IAAI,EAEJ,GAAI,CACH,EAAW,MAAM,MAAM,EAAK,CAAO,CACpC,MAAQ,CACP,MAAM,IAAI,EAAa,2BAA2B,EAAI,SAAS,EAAI,UAAU,CAC9E,CAEA,GAAI,EAAO,QAAU,EAAS,QAAQ,IAAI,YAAY,EAAG,CACxD,IAAM,EAAW,EAAS,QAAQ,IAAI,YAAY,EAE9C,EAAO,OAAO,WAAa,IAC9B,EAAO,OAAO,SAAW,EACzB,EAAO,OAAO,MAAM,uBAAuB,EAAO,OAAO,UAAU,EAErE,CAEA,MAAO,CACN,QAAS,EAAS,QAClB,GAAI,EAAS,GACb,OAAQ,EAAS,OACjB,WAAY,EAAS,WACrB,IAAK,EAAS,IACd,KAAM,EAAS,KACf,KAAM,SAAa,MAAM,EAAS,KAAK,EACvC,KAAM,SAAY,MAAM,EAAS,KAAK,CAEvC,CACD,EACA,iBAAoB,EAAmB,EAA8D,CACpG,OAAO,EAAO,QAAW,EAAK,CAC7B,OAAQ,OACR,QAAS,CAAE,eAAgB,mCAAoC,EAC/D,KAAM,IAAI,gBAAgB,CAAI,CAAC,CAAC,SAAS,CAC1C,CAAC,CACF,CACD,EAEA,OAAO,CACR"}
@@ -0,0 +1 @@
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./errors.cjs"),t=require("./base64url.cjs"),n=require("./httpClient.cjs"),r=require("./common.cjs"),i=require("./session.cjs"),a=require("../assets/oidc.cjs"),o=require("./credentials.cjs"),s=require("./crypto.cjs"),c=require("./dom.cjs"),l=require("./logging.cjs"),u=require("../assets/server.cjs");exports.BACKCHANNEL_LOGOUT_EVENT=u.t,exports.ConfigurationError=e.ConfigurationError,exports.DEFAULT_COOKIE_MAX_AGE=u.n,exports.DISALLOWED_PROXY_HEADERS=u.r,exports.FallbackError=e.FallbackError,exports.InternalError=e.InternalError,exports.NetworkError=e.NetworkError,exports.OidcError=e.OidcError,exports.PopupBlockedError=e.PopupBlockedError,exports.PopupClosedError=e.PopupClosedError,exports.ProtocolError=e.ProtocolError,exports.RETURN_TO_COOKIE=u.i,exports.ServerError=e.ServerError,exports.SessionExpiredError=e.SessionExpiredError,exports.UnsupportedFlowError=e.UnsupportedFlowError,exports.assertWebAuthnCredential=o.assertWebAuthnCredential,exports.buildAuthorizationUrl=a.t,exports.buildCookieString=r.buildCookieString,exports.buildEndSessionUrl=a.n,exports.createDefaultLogging=l.createDefaultLogging,exports.createHttpClient=n.createHttpClient,exports.createSession=i.createSession,exports.createState=a.b,exports.createWebAuthnCredential=o.createWebAuthnCredential,exports.decodeBase64URL=t.decodeBase64URL,exports.decodeJwt=a.r,exports.decryptString=s.decryptString,exports.defaultOptions=a.i,exports.encodeBase64URL=t.encodeBase64URL,exports.encryptString=s.encryptString,exports.exchangeCode=a.a,exports.fetchFlowEntry=a.o,exports.finalizeLoginSession=a.s,exports.flushSetCookies=u.a,exports.generateCodeChallenge=a.c,exports.generateCodeVerifier=a.l,exports.generateJwt=a.u,exports.generateRandomHex=a.d,exports.getDefaultFlowState=a.f,exports.getDiscoveryDocument=a.p,exports.getSDKOptions=a.m,exports.getServerSDKOptions=u.o,exports.injectScript=c.injectScript,exports.isSessionExpired=i.isSessionExpired,exports.loadSession=i.loadSession,exports.parseCookieHeader=u.s,exports.parseState=a.x,exports.proxyResponse=u.c,exports.pushSetCookie=u.l,exports.refreshToken=a.h,exports.revokeToken=a.g,exports.serializeCookie=u.u,exports.serializeSession=i.serializeSession,exports.serializeState=a.S,exports.submitLoginForm=a._,exports.throwHttpError=e.throwHttpError,exports.throwTokenEndpointError=e.throwTokenEndpointError,exports.timestamp=r.timestamp,exports.toSafeRedirect=u.d,exports.unflattenObject=r.unflattenObject,exports.verifyIdToken=a.v,exports.verifyJwt=a.y;
@@ -0,0 +1,12 @@
1
+ export * from './base64url';
2
+ export * from './common';
3
+ export * from './credentials';
4
+ export * from './crypto';
5
+ export * from './dom';
6
+ export * from './errors';
7
+ export * from './httpClient';
8
+ export * from './logging';
9
+ export * from './oidc';
10
+ export * from './server';
11
+ export * from './session';
12
+ export * from './state';
@@ -0,0 +1 @@
1
+ import{ConfigurationError as e,FallbackError as t,InternalError as n,NetworkError as r,OidcError as i,PopupBlockedError as a,PopupClosedError as o,ProtocolError as s,ServerError as c,SessionExpiredError as l,UnsupportedFlowError as u,throwHttpError as d,throwTokenEndpointError as f}from"./errors.mjs";import{decodeBase64URL as p,encodeBase64URL as m}from"./base64url.mjs";import{createHttpClient as h}from"./httpClient.mjs";import{buildCookieString as g,timestamp as _,unflattenObject as v}from"./common.mjs";import{createSession as y,isSessionExpired as b,loadSession as x,serializeSession as S}from"./session.mjs";import{S as C,_ as w,a as T,b as E,c as D,d as O,f as k,g as A,h as j,i as M,l as N,m as P,n as F,o as I,p as L,r as R,s as z,t as B,u as V,v as H,x as U,y as W}from"../assets/oidc.mjs";import{assertWebAuthnCredential as G,createWebAuthnCredential as K}from"./credentials.mjs";import{decryptString as q,encryptString as J}from"./crypto.mjs";import{injectScript as Y}from"./dom.mjs";import{createDefaultLogging as X}from"./logging.mjs";import{a as Z,c as Q,d as $,i as ee,l as te,n as ne,o as re,r as ie,s as ae,t as oe,u as se}from"../assets/server.mjs";export{oe as BACKCHANNEL_LOGOUT_EVENT,e as ConfigurationError,ne as DEFAULT_COOKIE_MAX_AGE,ie as DISALLOWED_PROXY_HEADERS,t as FallbackError,n as InternalError,r as NetworkError,i as OidcError,a as PopupBlockedError,o as PopupClosedError,s as ProtocolError,ee as RETURN_TO_COOKIE,c as ServerError,l as SessionExpiredError,u as UnsupportedFlowError,G as assertWebAuthnCredential,B as buildAuthorizationUrl,g as buildCookieString,F as buildEndSessionUrl,X as createDefaultLogging,h as createHttpClient,y as createSession,E as createState,K as createWebAuthnCredential,p as decodeBase64URL,R as decodeJwt,q as decryptString,M as defaultOptions,m as encodeBase64URL,J as encryptString,T as exchangeCode,I as fetchFlowEntry,z as finalizeLoginSession,Z as flushSetCookies,D as generateCodeChallenge,N as generateCodeVerifier,V as generateJwt,O as generateRandomHex,k as getDefaultFlowState,L as getDiscoveryDocument,P as getSDKOptions,re as getServerSDKOptions,Y as injectScript,b as isSessionExpired,x as loadSession,ae as parseCookieHeader,U as parseState,Q as proxyResponse,te as pushSetCookie,j as refreshToken,A as revokeToken,se as serializeCookie,S as serializeSession,C as serializeState,w as submitLoginForm,d as throwHttpError,f as throwTokenEndpointError,_ as timestamp,$ as toSafeRedirect,v as unflattenObject,H as verifyIdToken,W as verifyJwt};
@@ -0,0 +1,2 @@
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});function e(){let e={xEventId:void 0,debug(t){let n=e.xEventId?`(${e.xEventId}) ${t}`:t;console.log(n)},info(t){let n=e.xEventId?`(${e.xEventId}) ${t}`:t;console.info(n)},warn(t){let n=e.xEventId?`(${e.xEventId}) ${t}`:t;console.warn(n)},error(t,n){let r=e.xEventId?`(${e.xEventId}) ${t}`:t;console.error(`${r} - ${n}`)}};return e}exports.createDefaultLogging=e;
2
+ //# sourceMappingURL=logging.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logging.cjs","names":[],"sources":["../../src/utils/logging.ts"],"sourcesContent":["/* eslint-disable no-console */\nimport type { SDKLogging } from '../types/common';\n\nexport function createDefaultLogging(): SDKLogging {\n\tconst logger: SDKLogging = {\n\t\txEventId: undefined,\n\t\tdebug(message: string): void {\n\t\t\tconst msg = logger.xEventId ? `(${logger.xEventId}) ${message}` : message;\n\t\t\tconsole.log(msg);\n\t\t},\n\t\tinfo(message: string): void {\n\t\t\tconst msg = logger.xEventId ? `(${logger.xEventId}) ${message}` : message;\n\t\t\tconsole.info(msg);\n\t\t},\n\t\twarn(message: string): void {\n\t\t\tconst msg = logger.xEventId ? `(${logger.xEventId}) ${message}` : message;\n\t\t\tconsole.warn(msg);\n\t\t},\n\t\terror(message: string, error: Error): void {\n\t\t\tconst msg = logger.xEventId ? `(${logger.xEventId}) ${message}` : message;\n\t\t\tconsole.error(`${msg} - ${error}`);\n\t\t},\n\t};\n\n\treturn logger;\n}\n"],"mappings":"mEAGA,SAAgB,GAAmC,CAClD,IAAM,EAAqB,CAC1B,SAAU,IAAA,GACV,MAAM,EAAuB,CAC5B,IAAM,EAAM,EAAO,SAAW,IAAI,EAAO,SAAS,IAAI,IAAY,EAClE,QAAQ,IAAI,CAAG,CAChB,EACA,KAAK,EAAuB,CAC3B,IAAM,EAAM,EAAO,SAAW,IAAI,EAAO,SAAS,IAAI,IAAY,EAClE,QAAQ,KAAK,CAAG,CACjB,EACA,KAAK,EAAuB,CAC3B,IAAM,EAAM,EAAO,SAAW,IAAI,EAAO,SAAS,IAAI,IAAY,EAClE,QAAQ,KAAK,CAAG,CACjB,EACA,MAAM,EAAiB,EAAoB,CAC1C,IAAM,EAAM,EAAO,SAAW,IAAI,EAAO,SAAS,IAAI,IAAY,EAClE,QAAQ,MAAM,GAAG,EAAI,KAAK,GAAO,CAClC,CACD,EAEA,OAAO,CACR"}
@@ -0,0 +1,2 @@
1
+ import { SDKLogging } from '../types/common';
2
+ export declare function createDefaultLogging(): SDKLogging;
@@ -0,0 +1,2 @@
1
+ function e(){let e={xEventId:void 0,debug(t){let n=e.xEventId?`(${e.xEventId}) ${t}`:t;console.log(n)},info(t){let n=e.xEventId?`(${e.xEventId}) ${t}`:t;console.info(n)},warn(t){let n=e.xEventId?`(${e.xEventId}) ${t}`:t;console.warn(n)},error(t,n){let r=e.xEventId?`(${e.xEventId}) ${t}`:t;console.error(`${r} - ${n}`)}};return e}export{e as createDefaultLogging};
2
+ //# sourceMappingURL=logging.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logging.mjs","names":[],"sources":["../../src/utils/logging.ts"],"sourcesContent":["/* eslint-disable no-console */\nimport type { SDKLogging } from '../types/common';\n\nexport function createDefaultLogging(): SDKLogging {\n\tconst logger: SDKLogging = {\n\t\txEventId: undefined,\n\t\tdebug(message: string): void {\n\t\t\tconst msg = logger.xEventId ? `(${logger.xEventId}) ${message}` : message;\n\t\t\tconsole.log(msg);\n\t\t},\n\t\tinfo(message: string): void {\n\t\t\tconst msg = logger.xEventId ? `(${logger.xEventId}) ${message}` : message;\n\t\t\tconsole.info(msg);\n\t\t},\n\t\twarn(message: string): void {\n\t\t\tconst msg = logger.xEventId ? `(${logger.xEventId}) ${message}` : message;\n\t\t\tconsole.warn(msg);\n\t\t},\n\t\terror(message: string, error: Error): void {\n\t\t\tconst msg = logger.xEventId ? `(${logger.xEventId}) ${message}` : message;\n\t\t\tconsole.error(`${msg} - ${error}`);\n\t\t},\n\t};\n\n\treturn logger;\n}\n"],"mappings":"AAGA,SAAgB,GAAmC,CAClD,IAAM,EAAqB,CAC1B,SAAU,IAAA,GACV,MAAM,EAAuB,CAC5B,IAAM,EAAM,EAAO,SAAW,IAAI,EAAO,SAAS,IAAI,IAAY,EAClE,QAAQ,IAAI,CAAG,CAChB,EACA,KAAK,EAAuB,CAC3B,IAAM,EAAM,EAAO,SAAW,IAAI,EAAO,SAAS,IAAI,IAAY,EAClE,QAAQ,KAAK,CAAG,CACjB,EACA,KAAK,EAAuB,CAC3B,IAAM,EAAM,EAAO,SAAW,IAAI,EAAO,SAAS,IAAI,IAAY,EAClE,QAAQ,KAAK,CAAG,CACjB,EACA,MAAM,EAAiB,EAAoB,CAC1C,IAAM,EAAM,EAAO,SAAW,IAAI,EAAO,SAAS,IAAI,IAAY,EAClE,QAAQ,MAAM,GAAG,EAAI,KAAK,GAAO,CAClC,CACD,EAEA,OAAO,CACR"}
@@ -0,0 +1 @@
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../assets/oidc.cjs");exports.buildAuthorizationUrl=e.t,exports.buildEndSessionUrl=e.n,exports.decodeJwt=e.r,exports.defaultOptions=e.i,exports.exchangeCode=e.a,exports.fetchFlowEntry=e.o,exports.finalizeLoginSession=e.s,exports.generateCodeChallenge=e.c,exports.generateCodeVerifier=e.l,exports.generateJwt=e.u,exports.generateRandomHex=e.d,exports.getDefaultFlowState=e.f,exports.getDiscoveryDocument=e.p,exports.getSDKOptions=e.m,exports.refreshToken=e.h,exports.revokeToken=e.g,exports.submitLoginForm=e._,exports.verifyIdToken=e.v,exports.verifyJwt=e.y;