@udibo/oauth2 0.14.0 → 0.15.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 (411) hide show
  1. package/README.md +45 -24
  2. package/{esm → dist}/adapters/hono/_common.d.ts +5 -5
  3. package/{esm → dist}/adapters/hono/_common.js +1 -1
  4. package/{esm → dist}/adapters/hono/authorization-server.d.ts +6 -7
  5. package/{esm → dist}/adapters/hono/authorization-server.js +0 -1
  6. package/{esm → dist}/adapters/hono/bff/auth-request-store.d.ts +2 -2
  7. package/{esm → dist}/adapters/hono/bff/auth-request-store.js +2 -2
  8. package/{esm → dist}/adapters/hono/bff/bff.d.ts +22 -12
  9. package/{esm → dist}/adapters/hono/bff/bff.js +35 -29
  10. package/{esm → dist}/adapters/hono/bff/cookie-prefix.js +1 -2
  11. package/{esm → dist}/adapters/hono/bff/mod.d.ts +5 -6
  12. package/{esm → dist}/adapters/hono/bff/mod.js +1 -2
  13. package/{esm → dist}/adapters/hono/bff/proxy.js +2 -1
  14. package/{esm → dist}/adapters/hono/bff/session-store.d.ts +2 -2
  15. package/{esm → dist}/adapters/hono/bff/session-store.js +7 -6
  16. package/{esm → dist}/adapters/hono/bff/testing.d.ts +7 -8
  17. package/{esm → dist}/adapters/hono/bff/testing.js +19 -22
  18. package/{esm → dist}/adapters/hono/identity.d.ts +1 -2
  19. package/{esm → dist}/adapters/hono/identity.js +10 -10
  20. package/{esm → dist}/adapters/hono/log.d.ts +0 -1
  21. package/{esm → dist}/adapters/hono/log.js +0 -6
  22. package/{esm → dist}/adapters/hono/resource-server.d.ts +5 -6
  23. package/{esm → dist}/adapters/hono/resource-server.js +0 -1
  24. package/dist/cli/bin.d.ts +2 -0
  25. package/dist/cli/bin.js +3 -0
  26. package/dist/cli/idp/config.d.ts +110 -0
  27. package/dist/cli/idp/config.js +269 -0
  28. package/dist/cli/idp/mod.d.ts +20 -0
  29. package/dist/cli/idp/mod.js +175 -0
  30. package/dist/cli/idp/pages.d.ts +56 -0
  31. package/dist/cli/idp/pages.js +190 -0
  32. package/dist/cli/idp/server.d.ts +93 -0
  33. package/dist/cli/idp/server.js +559 -0
  34. package/dist/cli/keygen.d.ts +13 -0
  35. package/dist/cli/keygen.js +30 -0
  36. package/dist/cli/mod.d.ts +34 -0
  37. package/dist/cli/mod.js +94 -0
  38. package/{esm → dist}/client/_http.d.ts +1 -1
  39. package/{esm → dist}/client/base.d.ts +1 -1
  40. package/{esm → dist}/client/bff-client.d.ts +1 -1
  41. package/{esm → dist}/client/bff-client.js +7 -6
  42. package/{esm → dist}/client/browser-storage.d.ts +1 -1
  43. package/{esm → dist}/client/check.js +1 -1
  44. package/{esm → dist}/client/direct-client.d.ts +6 -6
  45. package/{esm → dist}/client/direct-client.js +11 -13
  46. package/{esm → dist}/client/discovery-cache.d.ts +1 -1
  47. package/{esm → dist}/client/discovery-cache.js +2 -2
  48. package/{esm → dist}/client/events.d.ts +1 -1
  49. package/{esm → dist}/client/mod.d.ts +11 -12
  50. package/{esm → dist}/client/mod.js +1 -1
  51. package/{esm → dist}/errors.d.ts +1 -1
  52. package/{esm → dist}/errors.js +1 -1
  53. package/{esm → dist}/identity/events.d.ts +1 -1
  54. package/{esm → dist}/identity/external/_shared.d.ts +1 -1
  55. package/{esm → dist}/identity/external/_shared.js +1 -2
  56. package/{esm → dist}/identity/external/apple-client-secret.d.ts +1 -1
  57. package/{esm → dist}/identity/external/apple-client-secret.js +6 -7
  58. package/{esm → dist}/identity/external/apple.d.ts +5 -5
  59. package/{esm → dist}/identity/external/apple.js +10 -11
  60. package/{esm → dist}/identity/external/discord.d.ts +3 -3
  61. package/{esm → dist}/identity/external/discord.js +2 -2
  62. package/{esm → dist}/identity/external/flow.d.ts +1 -1
  63. package/{esm → dist}/identity/external/flow.js +2 -2
  64. package/{esm → dist}/identity/external/github.d.ts +3 -3
  65. package/{esm → dist}/identity/external/github.js +12 -17
  66. package/{esm → dist}/identity/external/google.d.ts +5 -5
  67. package/{esm → dist}/identity/external/google.js +2 -2
  68. package/{esm → dist}/identity/external/mod.d.ts +12 -13
  69. package/{esm → dist}/identity/external/mod.js +0 -1
  70. package/{esm → dist}/identity/external/oauth2.d.ts +1 -1
  71. package/{esm → dist}/identity/external/oauth2.js +8 -8
  72. package/{esm → dist}/identity/external/oidc.d.ts +4 -4
  73. package/{esm → dist}/identity/external/oidc.js +9 -8
  74. package/{esm → dist}/identity/hibp.d.ts +1 -1
  75. package/{esm → dist}/identity/hibp.js +1 -1
  76. package/{esm → dist}/identity/lockout.js +1 -2
  77. package/{esm → dist}/identity/mfa/mod.d.ts +4 -5
  78. package/{esm → dist}/identity/mfa/mod.js +1 -2
  79. package/{esm → dist}/identity/mfa/service.d.ts +3 -3
  80. package/{esm → dist}/identity/mfa/service.js +4 -3
  81. package/{esm → dist}/identity/mfa/totp.d.ts +1 -1
  82. package/{esm → dist}/identity/mfa/totp.js +2 -2
  83. package/{esm → dist}/identity/migration.d.ts +2 -3
  84. package/{esm → dist}/identity/migration.js +3 -4
  85. package/{esm → dist}/identity/mod.d.ts +14 -15
  86. package/{esm → dist}/identity/mod.js +0 -1
  87. package/{esm → dist}/identity/otp.d.ts +1 -1
  88. package/{esm → dist}/identity/otp.js +4 -2
  89. package/{esm → dist}/identity/password.js +8 -5
  90. package/{esm → dist}/identity/rate-limit.d.ts +1 -1
  91. package/{esm → dist}/identity/service.d.ts +10 -10
  92. package/{esm → dist}/identity/service.js +17 -18
  93. package/{esm → dist}/identity/session.js +2 -2
  94. package/{esm → dist}/identity/token-flow.js +3 -2
  95. package/{esm → dist}/models/authorization-code.d.ts +3 -3
  96. package/{esm → dist}/models/authorization.d.ts +1 -1
  97. package/{esm → dist}/models/authorization.js +1 -2
  98. package/{esm → dist}/models/device-authorization.d.ts +2 -2
  99. package/{esm → dist}/models/token.d.ts +3 -3
  100. package/{esm → dist}/react/callback.d.ts +1 -1
  101. package/{esm → dist}/react/callback.js +0 -1
  102. package/{esm → dist}/react/components/class-names.d.ts +1 -1
  103. package/{esm → dist}/react/components/class-names.js +3 -2
  104. package/{esm → dist}/react/components/internal.d.ts +2 -2
  105. package/{esm → dist}/react/components/internal.js +5 -11
  106. package/{esm → dist}/react/components/mfa-challenge-form.d.ts +2 -2
  107. package/{esm → dist}/react/components/mfa-challenge-form.js +4 -6
  108. package/{esm → dist}/react/components/mfa-enrollment-form.d.ts +2 -2
  109. package/{esm → dist}/react/components/mfa-enrollment-form.js +2 -6
  110. package/{esm → dist}/react/components/mod.d.ts +20 -21
  111. package/{esm → dist}/react/components/mod.js +1 -2
  112. package/{esm → dist}/react/components/request-password-reset-form.d.ts +2 -2
  113. package/{esm → dist}/react/components/request-password-reset-form.js +1 -3
  114. package/{esm → dist}/react/components/reset-password-form.d.ts +2 -2
  115. package/{esm → dist}/react/components/reset-password-form.js +2 -2
  116. package/{esm → dist}/react/components/sign-in-form.d.ts +2 -2
  117. package/{esm → dist}/react/components/sign-in-form.js +1 -5
  118. package/{esm → dist}/react/components/sign-up-form.d.ts +2 -2
  119. package/{esm → dist}/react/components/sign-up-form.js +4 -10
  120. package/{esm → dist}/react/components/types.d.ts +2 -2
  121. package/{esm → dist}/react/components/use-auth-form.d.ts +3 -3
  122. package/{esm → dist}/react/components/use-auth-form.js +4 -7
  123. package/{esm → dist}/react/components/user-menu.d.ts +2 -2
  124. package/{esm → dist}/react/components/user-menu.js +9 -14
  125. package/{esm → dist}/react/context.d.ts +1 -1
  126. package/{esm → dist}/react/mod.d.ts +6 -7
  127. package/{esm → dist}/react/mod.js +0 -1
  128. package/{esm → dist}/react/provider.d.ts +2 -2
  129. package/{esm → dist}/react/require-auth.js +1 -3
  130. package/{esm → dist}/react/testing.d.ts +2 -3
  131. package/{esm → dist}/react/testing.js +1 -2
  132. package/{esm → dist}/react/use-authorization.d.ts +1 -1
  133. package/{esm → dist}/react/use-oauth2.d.ts +8 -1
  134. package/{esm → dist}/react/use-oauth2.js +0 -1
  135. package/{esm → dist}/server/_clock-skew.js +2 -1
  136. package/{esm → dist}/server/authorization-server.d.ts +40 -41
  137. package/{esm → dist}/server/authorization-server.js +32 -42
  138. package/{esm → dist}/server/client-authentication.d.ts +2 -2
  139. package/{esm → dist}/server/grants/authorization-code.d.ts +9 -9
  140. package/{esm → dist}/server/grants/authorization-code.js +5 -6
  141. package/{esm → dist}/server/grants/client-credentials.d.ts +4 -4
  142. package/{esm → dist}/server/grants/device-authorization.d.ts +6 -6
  143. package/{esm → dist}/server/grants/device-authorization.js +4 -4
  144. package/{esm → dist}/server/grants/grant.d.ts +7 -7
  145. package/{esm → dist}/server/grants/grant.js +7 -7
  146. package/{esm → dist}/server/grants/password.d.ts +5 -5
  147. package/{esm → dist}/server/grants/refresh-token.d.ts +4 -4
  148. package/{esm → dist}/server/grants/refresh-token.js +5 -6
  149. package/{esm → dist}/server/introspection-token-reader.d.ts +5 -5
  150. package/{esm → dist}/server/introspection-token-reader.js +4 -4
  151. package/{esm → dist}/server/jwks-token-reader.d.ts +5 -5
  152. package/{esm → dist}/server/jwks-token-reader.js +4 -4
  153. package/{esm → dist}/server/mod.d.ts +12 -13
  154. package/{esm → dist}/server/mod.js +0 -1
  155. package/{esm → dist}/server/public-suffix/mod.d.ts +2 -3
  156. package/{esm → dist}/server/public-suffix/mod.js +1 -2
  157. package/{esm → dist}/server/public-suffix/rules.d.ts +1 -1
  158. package/{esm → dist}/server/public-suffix/rules.js +1 -1
  159. package/{esm → dist}/server/redirect-uri.js +5 -4
  160. package/{esm → dist}/server/resource-server.d.ts +11 -12
  161. package/{esm → dist}/server/resource-server.js +12 -14
  162. package/{esm → dist}/server/services/authorization-code.d.ts +5 -5
  163. package/{esm → dist}/server/services/client.d.ts +1 -1
  164. package/{esm → dist}/server/services/device-authorization.d.ts +3 -3
  165. package/{esm → dist}/server/services/token.d.ts +6 -6
  166. package/{esm → dist}/server/services/token.js +3 -1
  167. package/{esm → dist}/server/services/user.d.ts +1 -1
  168. package/{esm → dist}/server/signing-keys.d.ts +1 -1
  169. package/{esm → dist}/server/signing-keys.js +8 -2
  170. package/{esm → dist}/server/utils/hash.js +1 -1
  171. package/{esm → dist}/testing/contract/auth-request-storage.d.ts +1 -1
  172. package/{esm → dist}/testing/contract/auth-request-storage.js +24 -29
  173. package/{esm → dist}/testing/contract/authorization-code.d.ts +6 -6
  174. package/{esm → dist}/testing/contract/authorization-code.js +16 -17
  175. package/{esm → dist}/testing/contract/client.d.ts +4 -4
  176. package/{esm → dist}/testing/contract/client.js +14 -15
  177. package/{esm → dist}/testing/contract/device-authorization.d.ts +6 -6
  178. package/{esm → dist}/testing/contract/device-authorization.js +37 -39
  179. package/{esm → dist}/testing/contract/identity-session.d.ts +6 -1
  180. package/{esm → dist}/testing/contract/identity-session.js +44 -36
  181. package/{esm → dist}/testing/contract/identity-user-store.d.ts +8 -2
  182. package/{esm → dist}/testing/contract/identity-user-store.js +48 -46
  183. package/{esm → dist}/testing/contract/lockout-store.d.ts +1 -1
  184. package/{esm → dist}/testing/contract/lockout-store.js +23 -24
  185. package/{esm → dist}/testing/contract/mfa-store.d.ts +1 -1
  186. package/{esm → dist}/testing/contract/mfa-store.js +53 -54
  187. package/{esm → dist}/testing/contract/mod.d.ts +15 -16
  188. package/{esm → dist}/testing/contract/mod.js +0 -1
  189. package/{esm → dist}/testing/contract/otp-store.d.ts +1 -1
  190. package/{esm → dist}/testing/contract/otp-store.js +33 -34
  191. package/{esm → dist}/testing/contract/rate-limit-store.d.ts +1 -1
  192. package/{esm → dist}/testing/contract/rate-limit-store.js +15 -16
  193. package/{esm → dist}/testing/contract/tenant.js +361 -330
  194. package/{esm → dist}/testing/contract/token-flow-store.d.ts +1 -1
  195. package/{esm → dist}/testing/contract/token-flow-store.js +27 -32
  196. package/{esm → dist}/testing/contract/token-reader.d.ts +3 -3
  197. package/{esm → dist}/testing/contract/token-reader.js +6 -7
  198. package/{esm → dist}/testing/contract/token.d.ts +7 -7
  199. package/{esm → dist}/testing/contract/token.js +48 -53
  200. package/{esm → dist}/testing/contract/user.d.ts +2 -2
  201. package/{esm → dist}/testing/contract/user.js +8 -9
  202. package/{esm → dist}/testing/mod.d.ts +5 -6
  203. package/{esm → dist}/testing/mod.js +2 -3
  204. package/{esm → dist}/testing/server.d.ts +7 -6
  205. package/{esm → dist}/testing/server.js +2 -1
  206. package/{esm → dist}/testing/services.d.ts +11 -11
  207. package/{esm → dist}/testing/services.js +8 -8
  208. package/{esm → dist}/testing/tenant.d.ts +11 -7
  209. package/{esm → dist}/testing/tenant.js +109 -94
  210. package/dist/utils/_constant-time.d.ts +12 -0
  211. package/dist/utils/_constant-time.js +19 -0
  212. package/{esm → dist}/utils/_default-fetch.js +4 -1
  213. package/dist/utils/_delay.d.ts +13 -0
  214. package/dist/utils/_delay.js +28 -0
  215. package/dist/utils/_encoding.d.ts +39 -0
  216. package/dist/utils/_encoding.js +126 -0
  217. package/{esm → dist}/utils/authentication-context.d.ts +1 -1
  218. package/{esm → dist}/utils/crypto.d.ts +2 -3
  219. package/{esm → dist}/utils/crypto.js +3 -4
  220. package/{esm → dist}/utils/pkce.js +1 -1
  221. package/{esm → dist}/utils/text.js +1 -1
  222. package/{esm → dist}/utils/url.d.ts +0 -1
  223. package/{esm → dist}/utils/url.js +0 -1
  224. package/package.json +156 -33
  225. package/esm/_dnt.polyfills.d.ts +0 -31
  226. package/esm/_dnt.polyfills.js +0 -26
  227. package/esm/deps/jsr.io/@std/assert/1.0.19/almost_equals.d.ts +0 -29
  228. package/esm/deps/jsr.io/@std/assert/1.0.19/almost_equals.js +0 -47
  229. package/esm/deps/jsr.io/@std/assert/1.0.19/array_includes.d.ts +0 -28
  230. package/esm/deps/jsr.io/@std/assert/1.0.19/array_includes.js +0 -65
  231. package/esm/deps/jsr.io/@std/assert/1.0.19/assert.d.ts +0 -16
  232. package/esm/deps/jsr.io/@std/assert/1.0.19/assert.js +0 -23
  233. package/esm/deps/jsr.io/@std/assert/1.0.19/assertion_error.d.ts +0 -25
  234. package/esm/deps/jsr.io/@std/assert/1.0.19/assertion_error.js +0 -30
  235. package/esm/deps/jsr.io/@std/assert/1.0.19/equal.d.ts +0 -24
  236. package/esm/deps/jsr.io/@std/assert/1.0.19/equal.js +0 -193
  237. package/esm/deps/jsr.io/@std/assert/1.0.19/equals.d.ts +0 -36
  238. package/esm/deps/jsr.io/@std/assert/1.0.19/equals.js +0 -61
  239. package/esm/deps/jsr.io/@std/assert/1.0.19/exists.d.ts +0 -17
  240. package/esm/deps/jsr.io/@std/assert/1.0.19/exists.js +0 -27
  241. package/esm/deps/jsr.io/@std/assert/1.0.19/fail.d.ts +0 -14
  242. package/esm/deps/jsr.io/@std/assert/1.0.19/fail.js +0 -20
  243. package/esm/deps/jsr.io/@std/assert/1.0.19/false.d.ts +0 -18
  244. package/esm/deps/jsr.io/@std/assert/1.0.19/false.js +0 -23
  245. package/esm/deps/jsr.io/@std/assert/1.0.19/greater.d.ts +0 -19
  246. package/esm/deps/jsr.io/@std/assert/1.0.19/greater.js +0 -29
  247. package/esm/deps/jsr.io/@std/assert/1.0.19/greater_or_equal.d.ts +0 -19
  248. package/esm/deps/jsr.io/@std/assert/1.0.19/greater_or_equal.js +0 -29
  249. package/esm/deps/jsr.io/@std/assert/1.0.19/instance_of.d.ts +0 -22
  250. package/esm/deps/jsr.io/@std/assert/1.0.19/instance_of.js +0 -52
  251. package/esm/deps/jsr.io/@std/assert/1.0.19/is_error.d.ts +0 -24
  252. package/esm/deps/jsr.io/@std/assert/1.0.19/is_error.js +0 -53
  253. package/esm/deps/jsr.io/@std/assert/1.0.19/less.d.ts +0 -18
  254. package/esm/deps/jsr.io/@std/assert/1.0.19/less.js +0 -28
  255. package/esm/deps/jsr.io/@std/assert/1.0.19/less_or_equal.d.ts +0 -19
  256. package/esm/deps/jsr.io/@std/assert/1.0.19/less_or_equal.js +0 -29
  257. package/esm/deps/jsr.io/@std/assert/1.0.19/match.d.ts +0 -17
  258. package/esm/deps/jsr.io/@std/assert/1.0.19/match.js +0 -26
  259. package/esm/deps/jsr.io/@std/assert/1.0.19/mod.d.ts +0 -43
  260. package/esm/deps/jsr.io/@std/assert/1.0.19/mod.js +0 -45
  261. package/esm/deps/jsr.io/@std/assert/1.0.19/not_equals.d.ts +0 -26
  262. package/esm/deps/jsr.io/@std/assert/1.0.19/not_equals.js +0 -39
  263. package/esm/deps/jsr.io/@std/assert/1.0.19/not_instance_of.d.ts +0 -19
  264. package/esm/deps/jsr.io/@std/assert/1.0.19/not_instance_of.js +0 -29
  265. package/esm/deps/jsr.io/@std/assert/1.0.19/not_match.d.ts +0 -17
  266. package/esm/deps/jsr.io/@std/assert/1.0.19/not_match.js +0 -26
  267. package/esm/deps/jsr.io/@std/assert/1.0.19/not_strict_equals.d.ts +0 -22
  268. package/esm/deps/jsr.io/@std/assert/1.0.19/not_strict_equals.js +0 -32
  269. package/esm/deps/jsr.io/@std/assert/1.0.19/object_match.d.ts +0 -28
  270. package/esm/deps/jsr.io/@std/assert/1.0.19/object_match.js +0 -177
  271. package/esm/deps/jsr.io/@std/assert/1.0.19/rejects.d.ts +0 -41
  272. package/esm/deps/jsr.io/@std/assert/1.0.19/rejects.js +0 -53
  273. package/esm/deps/jsr.io/@std/assert/1.0.19/strict_equals.d.ts +0 -23
  274. package/esm/deps/jsr.io/@std/assert/1.0.19/strict_equals.js +0 -58
  275. package/esm/deps/jsr.io/@std/assert/1.0.19/string_includes.d.ts +0 -17
  276. package/esm/deps/jsr.io/@std/assert/1.0.19/string_includes.js +0 -26
  277. package/esm/deps/jsr.io/@std/assert/1.0.19/throws.d.ts +0 -44
  278. package/esm/deps/jsr.io/@std/assert/1.0.19/throws.js +0 -44
  279. package/esm/deps/jsr.io/@std/assert/1.0.19/unimplemented.d.ts +0 -14
  280. package/esm/deps/jsr.io/@std/assert/1.0.19/unimplemented.js +0 -20
  281. package/esm/deps/jsr.io/@std/assert/1.0.19/unreachable.d.ts +0 -14
  282. package/esm/deps/jsr.io/@std/assert/1.0.19/unreachable.js +0 -20
  283. package/esm/deps/jsr.io/@std/async/1.5.0/delay.d.ts +0 -44
  284. package/esm/deps/jsr.io/@std/async/1.5.0/delay.js +0 -84
  285. package/esm/deps/jsr.io/@std/crypto/1.1.0/timing_safe_equal.d.ts +0 -39
  286. package/esm/deps/jsr.io/@std/crypto/1.1.0/timing_safe_equal.js +0 -61
  287. package/esm/deps/jsr.io/@std/encoding/1.0.11/_common16.d.ts +0 -22
  288. package/esm/deps/jsr.io/@std/encoding/1.0.11/_common16.js +0 -51
  289. package/esm/deps/jsr.io/@std/encoding/1.0.11/_common32.d.ts +0 -34
  290. package/esm/deps/jsr.io/@std/encoding/1.0.11/_common32.js +0 -192
  291. package/esm/deps/jsr.io/@std/encoding/1.0.11/_common64.d.ts +0 -34
  292. package/esm/deps/jsr.io/@std/encoding/1.0.11/_common64.js +0 -113
  293. package/esm/deps/jsr.io/@std/encoding/1.0.11/_common_detach.d.ts +0 -3
  294. package/esm/deps/jsr.io/@std/encoding/1.0.11/_common_detach.js +0 -13
  295. package/esm/deps/jsr.io/@std/encoding/1.0.11/_types.d.ts +0 -8
  296. package/esm/deps/jsr.io/@std/encoding/1.0.11/_types.js +0 -2
  297. package/esm/deps/jsr.io/@std/encoding/1.0.11/_validate_binary_like.d.ts +0 -1
  298. package/esm/deps/jsr.io/@std/encoding/1.0.11/_validate_binary_like.js +0 -26
  299. package/esm/deps/jsr.io/@std/encoding/1.0.11/ascii85.d.ts +0 -60
  300. package/esm/deps/jsr.io/@std/encoding/1.0.11/ascii85.js +0 -152
  301. package/esm/deps/jsr.io/@std/encoding/1.0.11/base32.d.ts +0 -39
  302. package/esm/deps/jsr.io/@std/encoding/1.0.11/base32.js +0 -87
  303. package/esm/deps/jsr.io/@std/encoding/1.0.11/base58.d.ts +0 -39
  304. package/esm/deps/jsr.io/@std/encoding/1.0.11/base58.js +0 -131
  305. package/esm/deps/jsr.io/@std/encoding/1.0.11/base64.d.ts +0 -39
  306. package/esm/deps/jsr.io/@std/encoding/1.0.11/base64.js +0 -82
  307. package/esm/deps/jsr.io/@std/encoding/1.0.11/base64url.d.ts +0 -39
  308. package/esm/deps/jsr.io/@std/encoding/1.0.11/base64url.js +0 -72
  309. package/esm/deps/jsr.io/@std/encoding/1.0.11/hex.d.ts +0 -38
  310. package/esm/deps/jsr.io/@std/encoding/1.0.11/hex.js +0 -87
  311. package/esm/deps/jsr.io/@std/encoding/1.0.11/mod.d.ts +0 -97
  312. package/esm/deps/jsr.io/@std/encoding/1.0.11/mod.js +0 -99
  313. package/esm/deps/jsr.io/@std/encoding/1.0.11/varint.d.ts +0 -119
  314. package/esm/deps/jsr.io/@std/encoding/1.0.11/varint.js +0 -209
  315. package/esm/deps/jsr.io/@std/http/1.1.3/status.d.ts +0 -343
  316. package/esm/deps/jsr.io/@std/http/1.1.3/status.js +0 -343
  317. package/esm/deps/jsr.io/@std/internal/1.0.14/assertion_state.d.ts +0 -159
  318. package/esm/deps/jsr.io/@std/internal/1.0.14/assertion_state.js +0 -223
  319. package/esm/deps/jsr.io/@std/internal/1.0.14/build_message.d.ts +0 -79
  320. package/esm/deps/jsr.io/@std/internal/1.0.14/build_message.js +0 -116
  321. package/esm/deps/jsr.io/@std/internal/1.0.14/diff.d.ts +0 -139
  322. package/esm/deps/jsr.io/@std/internal/1.0.14/diff.js +0 -277
  323. package/esm/deps/jsr.io/@std/internal/1.0.14/diff_str.d.ts +0 -98
  324. package/esm/deps/jsr.io/@std/internal/1.0.14/diff_str.js +0 -181
  325. package/esm/deps/jsr.io/@std/internal/1.0.14/format.d.ts +0 -29
  326. package/esm/deps/jsr.io/@std/internal/1.0.14/format.js +0 -68
  327. package/esm/deps/jsr.io/@std/internal/1.0.14/styles.d.ts +0 -158
  328. package/esm/deps/jsr.io/@std/internal/1.0.14/styles.js +0 -206
  329. package/esm/deps/jsr.io/@std/internal/1.0.14/types.d.ts +0 -24
  330. package/esm/deps/jsr.io/@std/internal/1.0.14/types.js +0 -3
  331. package/esm/deps/jsr.io/@std/testing/1.0.20/_test_suite.d.ts +0 -91
  332. package/esm/deps/jsr.io/@std/testing/1.0.20/_test_suite.js +0 -347
  333. package/esm/deps/jsr.io/@std/testing/1.0.20/bdd.d.ts +0 -382
  334. package/esm/deps/jsr.io/@std/testing/1.0.20/bdd.js +0 -1110
  335. package/esm/deps/jsr.io/@udibo/http-error/0.11.1/mod.d.ts +0 -363
  336. package/esm/deps/jsr.io/@udibo/http-error/0.11.1/mod.js +0 -616
  337. package/esm/package.json +0 -3
  338. /package/{esm → dist}/adapters/hono/bff/cookie-prefix.d.ts +0 -0
  339. /package/{esm → dist}/adapters/hono/bff/proxy.d.ts +0 -0
  340. /package/{esm → dist}/client/_http.js +0 -0
  341. /package/{esm → dist}/client/base.js +0 -0
  342. /package/{esm → dist}/client/browser-storage.js +0 -0
  343. /package/{esm → dist}/client/check.d.ts +0 -0
  344. /package/{esm → dist}/client/events.js +0 -0
  345. /package/{esm → dist}/client/storage.d.ts +0 -0
  346. /package/{esm → dist}/client/storage.js +0 -0
  347. /package/{esm → dist}/identity/captcha.d.ts +0 -0
  348. /package/{esm → dist}/identity/captcha.js +0 -0
  349. /package/{esm → dist}/identity/delivery.d.ts +0 -0
  350. /package/{esm → dist}/identity/delivery.js +0 -0
  351. /package/{esm → dist}/identity/errors.d.ts +0 -0
  352. /package/{esm → dist}/identity/errors.js +0 -0
  353. /package/{esm → dist}/identity/events.js +0 -0
  354. /package/{esm → dist}/identity/external/_token-exchange.d.ts +0 -0
  355. /package/{esm → dist}/identity/external/_token-exchange.js +0 -0
  356. /package/{esm → dist}/identity/external/errors.d.ts +0 -0
  357. /package/{esm → dist}/identity/external/errors.js +0 -0
  358. /package/{esm → dist}/identity/external/provider.d.ts +0 -0
  359. /package/{esm → dist}/identity/external/provider.js +0 -0
  360. /package/{esm → dist}/identity/identifier.d.ts +0 -0
  361. /package/{esm → dist}/identity/identifier.js +0 -0
  362. /package/{esm → dist}/identity/lockout.d.ts +0 -0
  363. /package/{esm → dist}/identity/mfa/recovery-codes.d.ts +0 -0
  364. /package/{esm → dist}/identity/mfa/recovery-codes.js +0 -0
  365. /package/{esm → dist}/identity/password-policy.d.ts +0 -0
  366. /package/{esm → dist}/identity/password-policy.js +0 -0
  367. /package/{esm → dist}/identity/password.d.ts +0 -0
  368. /package/{esm → dist}/identity/rate-limit.js +0 -0
  369. /package/{esm → dist}/identity/session.d.ts +0 -0
  370. /package/{esm → dist}/identity/token-flow.d.ts +0 -0
  371. /package/{esm → dist}/models/authentication.d.ts +0 -0
  372. /package/{esm → dist}/models/authentication.js +0 -0
  373. /package/{esm → dist}/models/authorization-code.js +0 -0
  374. /package/{esm → dist}/models/client.d.ts +0 -0
  375. /package/{esm → dist}/models/client.js +0 -0
  376. /package/{esm → dist}/models/device-authorization.js +0 -0
  377. /package/{esm → dist}/models/responses.d.ts +0 -0
  378. /package/{esm → dist}/models/responses.js +0 -0
  379. /package/{esm → dist}/models/scope.d.ts +0 -0
  380. /package/{esm → dist}/models/scope.js +0 -0
  381. /package/{esm → dist}/models/token.js +0 -0
  382. /package/{esm → dist}/react/components/types.js +0 -0
  383. /package/{esm → dist}/react/context.js +0 -0
  384. /package/{esm → dist}/react/provider.js +0 -0
  385. /package/{esm → dist}/react/require-auth.d.ts +0 -0
  386. /package/{esm → dist}/react/use-authorization.js +0 -0
  387. /package/{esm → dist}/server/_clock-skew.d.ts +0 -0
  388. /package/{esm → dist}/server/client-authentication.js +0 -0
  389. /package/{esm → dist}/server/grants/client-credentials.js +0 -0
  390. /package/{esm → dist}/server/grants/password.js +0 -0
  391. /package/{esm → dist}/server/redirect-uri.d.ts +0 -0
  392. /package/{esm → dist}/server/services/authorization-code.js +0 -0
  393. /package/{esm → dist}/server/services/client.js +0 -0
  394. /package/{esm → dist}/server/services/device-authorization.js +0 -0
  395. /package/{esm → dist}/server/services/user.js +0 -0
  396. /package/{esm → dist}/server/utils/hash.d.ts +0 -0
  397. /package/{esm → dist}/testing/contract/_race.d.ts +0 -0
  398. /package/{esm → dist}/testing/contract/_race.js +0 -0
  399. /package/{esm → dist}/testing/contract/tenant.d.ts +0 -0
  400. /package/{esm → dist}/utils/_body.d.ts +0 -0
  401. /package/{esm → dist}/utils/_body.js +0 -0
  402. /package/{esm → dist}/utils/_buffer.d.ts +0 -0
  403. /package/{esm → dist}/utils/_buffer.js +0 -0
  404. /package/{esm → dist}/utils/_default-fetch.d.ts +0 -0
  405. /package/{esm → dist}/utils/_timing-safe.d.ts +0 -0
  406. /package/{esm → dist}/utils/_timing-safe.js +0 -0
  407. /package/{esm → dist}/utils/authentication-context.js +0 -0
  408. /package/{esm → dist}/utils/basic-auth.d.ts +0 -0
  409. /package/{esm → dist}/utils/basic-auth.js +0 -0
  410. /package/{esm → dist}/utils/pkce.d.ts +0 -0
  411. /package/{esm → dist}/utils/text.d.ts +0 -0
@@ -1,13 +0,0 @@
1
- // Copyright 2018-2026 the Deno authors. MIT license.
2
- export function detach(buffer, maxSize) {
3
- const originalSize = buffer.length;
4
- if (buffer.byteOffset) {
5
- const b = new Uint8Array(buffer.buffer);
6
- b.set(buffer);
7
- buffer = b.subarray(0, originalSize);
8
- }
9
- // deno-lint-ignore no-explicit-any
10
- buffer = new Uint8Array(buffer.buffer.transfer(maxSize));
11
- buffer.set(buffer.subarray(0, originalSize), maxSize - originalSize);
12
- return [buffer, maxSize - originalSize];
13
- }
@@ -1,8 +0,0 @@
1
- /**
2
- * Proxy type of {@code Uint8Array<ArrayBuffer>} or {@code Uint8Array} in TypeScript 5.7 or below respectively.
3
- *
4
- * This type is internal utility type and should not be used directly.
5
- *
6
- * @internal @private
7
- */
8
- export type Uint8Array_ = ReturnType<Uint8Array["slice"]>;
@@ -1,2 +0,0 @@
1
- // Copyright 2018-2026 the Deno authors. MIT license.
2
- export {};
@@ -1 +0,0 @@
1
- export declare function validateBinaryLike(source: unknown): Uint8Array;
@@ -1,26 +0,0 @@
1
- // Copyright 2018-2026 the Deno authors. MIT license.
2
- const encoder = new TextEncoder();
3
- function getTypeName(value) {
4
- const type = typeof value;
5
- if (type !== "object") {
6
- return type;
7
- }
8
- else if (value === null) {
9
- return "null";
10
- }
11
- else {
12
- return value?.constructor?.name ?? "object";
13
- }
14
- }
15
- export function validateBinaryLike(source) {
16
- if (typeof source === "string") {
17
- return encoder.encode(source);
18
- }
19
- else if (source instanceof Uint8Array) {
20
- return source;
21
- }
22
- else if (source instanceof ArrayBuffer) {
23
- return new Uint8Array(source);
24
- }
25
- throw new TypeError(`Cannot validate the input as it must be a Uint8Array, a string, or an ArrayBuffer: received a value of the type ${getTypeName(source)}`);
26
- }
@@ -1,60 +0,0 @@
1
- import type { Uint8Array_ } from "./_types.js";
2
- export type { Uint8Array_ };
3
- /**
4
- * Supported ascii85 standards for {@linkcode EncodeAscii85Options} and
5
- * {@linkcode DecodeAscii85Options}.
6
- */
7
- export type Ascii85Standard = "Adobe" | "btoa" | "RFC 1924" | "Z85";
8
- /** Options for {@linkcode encodeAscii85}. */
9
- export interface EncodeAscii85Options {
10
- /**
11
- * Character set and delimiter (if supported and used).
12
- *
13
- * @default {"Adobe"}
14
- */
15
- standard?: Ascii85Standard;
16
- /**
17
- * Whether to use a delimiter (if supported).
18
- *
19
- * @default {false}
20
- */
21
- delimiter?: boolean;
22
- }
23
- /**
24
- * Converts data into an ascii85-encoded string.
25
- *
26
- * @param data The data to encode.
27
- * @param options Options for encoding.
28
- *
29
- * @returns The ascii85-encoded string.
30
- *
31
- * @example Usage
32
- * ```ts
33
- * import { encodeAscii85 } from "@std/encoding/ascii85";
34
- * import { assertEquals } from "@std/assert";
35
- *
36
- * assertEquals(encodeAscii85("Hello world!"), "87cURD]j7BEbo80");
37
- * ```
38
- */
39
- export declare function encodeAscii85(data: ArrayBuffer | Uint8Array | string, options?: EncodeAscii85Options): string;
40
- /** Options for {@linkcode decodeAscii85}. */
41
- export type DecodeAscii85Options = Omit<EncodeAscii85Options, "delimiter">;
42
- /**
43
- * Decodes a ascii85-encoded string.
44
- *
45
- * @param ascii85 The ascii85-encoded string to decode.
46
- * @param options Options for decoding.
47
- * @returns The decoded data.
48
- *
49
- * @example Usage
50
- * ```ts
51
- * import { decodeAscii85 } from "@std/encoding/ascii85";
52
- * import { assertEquals } from "@std/assert";
53
- *
54
- * assertEquals(
55
- * decodeAscii85("87cURD]j7BEbo80"),
56
- * new TextEncoder().encode("Hello world!"),
57
- * );
58
- * ```
59
- */
60
- export declare function decodeAscii85(ascii85: string, options?: DecodeAscii85Options): Uint8Array_;
@@ -1,152 +0,0 @@
1
- // Copyright 2018-2026 the Deno authors. MIT license.
2
- // This module is browser compatible.
3
- /**
4
- * Utilities for working with {@link https://en.wikipedia.org/wiki/Ascii85 | ascii85} encoding.
5
- *
6
- * ## Specifying a standard and delimiter
7
- *
8
- * By default, all functions are using the most popular Adobe version of ascii85
9
- * and not adding any delimiter. However, there are three more standards
10
- * supported - btoa (different delimiter and additional compression of 4 bytes
11
- * equal to 32), {@link https://rfc.zeromq.org/spec/32/ | Z85} and
12
- * {@link https://www.rfc-editor.org/rfc/rfc1924.html | RFC 1924}. It's possible to use a
13
- * different encoding by specifying it in `options` object as a second parameter.
14
- *
15
- * Similarly, it's possible to make `encode` add a delimiter (`<~` and `~>` for
16
- * Adobe, `xbtoa Begin` and `xbtoa End` with newlines between the delimiters and
17
- * encoded data for btoa. Checksums for btoa are not supported. Delimiters are not
18
- * supported by other encodings.)
19
- *
20
- * @module
21
- */
22
- import { validateBinaryLike } from "./_validate_binary_like.js";
23
- const rfc1924 = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz!#$%&()*+-;<=>?@^_`{|}~";
24
- const Z85 = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ.-:+=^!/*?&<>()[]{}@%$#";
25
- /**
26
- * Converts data into an ascii85-encoded string.
27
- *
28
- * @param data The data to encode.
29
- * @param options Options for encoding.
30
- *
31
- * @returns The ascii85-encoded string.
32
- *
33
- * @example Usage
34
- * ```ts
35
- * import { encodeAscii85 } from "@std/encoding/ascii85";
36
- * import { assertEquals } from "@std/assert";
37
- *
38
- * assertEquals(encodeAscii85("Hello world!"), "87cURD]j7BEbo80");
39
- * ```
40
- */
41
- export function encodeAscii85(data, options = {}) {
42
- let uint8 = validateBinaryLike(data);
43
- const { standard = "Adobe" } = options;
44
- let output = [];
45
- let v;
46
- let n = 0;
47
- let difference = 0;
48
- if (uint8.length % 4 !== 0) {
49
- const tmp = uint8;
50
- difference = 4 - (tmp.length % 4);
51
- uint8 = new Uint8Array(tmp.length + difference);
52
- uint8.set(tmp);
53
- }
54
- const view = new DataView(uint8.buffer, uint8.byteOffset, uint8.byteLength);
55
- for (let i = 0; i < uint8.length; i += 4) {
56
- v = view.getUint32(i);
57
- // Adobe and btoa standards compress 4 zeroes to single "z" character
58
- if ((standard === "Adobe" || standard === "btoa") &&
59
- v === 0 &&
60
- i < uint8.length - difference - 3) {
61
- output[n++] = "z";
62
- continue;
63
- }
64
- // btoa compresses 4 spaces - that is, bytes equal to 32 - into single "y" character
65
- if (standard === "btoa" && v === 538976288) {
66
- output[n++] = "y";
67
- continue;
68
- }
69
- for (let j = 4; j >= 0; j--) {
70
- output[n + j] = String.fromCharCode((v % 85) + 33);
71
- v = Math.trunc(v / 85);
72
- }
73
- n += 5;
74
- }
75
- switch (standard) {
76
- case "Adobe":
77
- if (options?.delimiter) {
78
- return `<~${output.slice(0, output.length - difference).join("")}~>`;
79
- }
80
- break;
81
- case "btoa":
82
- if (options?.delimiter) {
83
- return `xbtoa Begin\n${output
84
- .slice(0, output.length - difference)
85
- .join("")}\nxbtoa End`;
86
- }
87
- break;
88
- case "RFC 1924":
89
- output = output.map((val) => rfc1924[val.charCodeAt(0) - 33]);
90
- break;
91
- case "Z85":
92
- output = output.map((val) => Z85[val.charCodeAt(0) - 33]);
93
- break;
94
- }
95
- return output.slice(0, output.length - difference).join("");
96
- }
97
- /**
98
- * Decodes a ascii85-encoded string.
99
- *
100
- * @param ascii85 The ascii85-encoded string to decode.
101
- * @param options Options for decoding.
102
- * @returns The decoded data.
103
- *
104
- * @example Usage
105
- * ```ts
106
- * import { decodeAscii85 } from "@std/encoding/ascii85";
107
- * import { assertEquals } from "@std/assert";
108
- *
109
- * assertEquals(
110
- * decodeAscii85("87cURD]j7BEbo80"),
111
- * new TextEncoder().encode("Hello world!"),
112
- * );
113
- * ```
114
- */
115
- export function decodeAscii85(ascii85, options = {}) {
116
- const { standard = "Adobe" } = options;
117
- // translate all encodings to most basic adobe/btoa one and decompress some special characters ("z" and "y")
118
- switch (standard) {
119
- case "Adobe":
120
- ascii85 = ascii85.replaceAll(/(<~|~>)/g, "").replaceAll("z", "!!!!!");
121
- break;
122
- case "btoa":
123
- ascii85 = ascii85
124
- .replaceAll(/(xbtoa Begin|xbtoa End|\n)/g, "")
125
- .replaceAll("z", "!!!!!")
126
- .replaceAll("y", "+<VdL");
127
- break;
128
- case "RFC 1924":
129
- ascii85 = ascii85.replaceAll(/./g, (match) => String.fromCharCode(rfc1924.indexOf(match) + 33));
130
- break;
131
- case "Z85":
132
- ascii85 = ascii85.replaceAll(/./g, (match) => String.fromCharCode(Z85.indexOf(match) + 33));
133
- break;
134
- }
135
- // remove all invalid characters
136
- ascii85 = ascii85.replaceAll(/[^!-u]/g, "");
137
- const len = ascii85.length;
138
- const output = new Uint8Array(len + 4 - (len % 4));
139
- const view = new DataView(output.buffer);
140
- let v = 0;
141
- let n = 0;
142
- let max = 0;
143
- for (let i = 0; i < len;) {
144
- for (max += 5; i < max; i++) {
145
- v = v * 85 + (i < len ? ascii85.charCodeAt(i) : 117) - 33;
146
- }
147
- view.setUint32(n, v);
148
- v = 0;
149
- n += 4;
150
- }
151
- return output.slice(0, Math.trunc(len * 0.8));
152
- }
@@ -1,39 +0,0 @@
1
- import type { Uint8Array_ } from "./_types.js";
2
- export type { Uint8Array_ };
3
- /**
4
- * Converts data into a base32-encoded string.
5
- *
6
- * @see {@link https://www.rfc-editor.org/rfc/rfc4648.html#section-6}
7
- *
8
- * @param data The data to encode.
9
- * @returns The base32-encoded string.
10
- *
11
- * @example Usage
12
- * ```ts
13
- * import { encodeBase32 } from "@std/encoding/base32";
14
- * import { assertEquals } from "@std/assert";
15
- *
16
- * assertEquals(encodeBase32("6c60c0"), "GZRTMMDDGA======");
17
- * ```
18
- */
19
- export declare function encodeBase32(data: ArrayBuffer | Uint8Array | string): string;
20
- /**
21
- * Decodes a base32-encoded string.
22
- *
23
- * @see {@link https://www.rfc-editor.org/rfc/rfc4648.html#section-6}
24
- *
25
- * @param b32 The base32-encoded string to decode.
26
- * @returns The decoded data.
27
- *
28
- * @example Usage
29
- * ```ts
30
- * import { decodeBase32 } from "@std/encoding/base32";
31
- * import { assertEquals } from "@std/assert";
32
- *
33
- * assertEquals(
34
- * decodeBase32("GZRTMMDDGA======"),
35
- * new TextEncoder().encode("6c60c0"),
36
- * );
37
- * ```
38
- */
39
- export declare function decodeBase32(b32: string): Uint8Array_;
@@ -1,87 +0,0 @@
1
- // Copyright 2018-2026 the Deno authors. MIT license.
2
- // Copyright (c) 2014 Jameson Little. MIT License.
3
- // This module is browser compatible.
4
- /**
5
- * Utilities for
6
- * {@link https://www.rfc-editor.org/rfc/rfc4648.html#section-6 | base32}
7
- * encoding and decoding.
8
- *
9
- * Modified from {@link https://github.com/beatgammit/base64-js}.
10
- *
11
- * ```ts
12
- * import { encodeBase32, decodeBase32 } from "@std/encoding/base32";
13
- * import { assertEquals } from "@std/assert";
14
- *
15
- * assertEquals(encodeBase32("foobar"), "MZXW6YTBOI======");
16
- *
17
- * assertEquals(
18
- * decodeBase32("MZXW6YTBOI======"),
19
- * new TextEncoder().encode("foobar")
20
- * );
21
- * ```
22
- *
23
- * @module
24
- */
25
- import { calcSizeBase32, decode, encode } from "./_common32.js";
26
- import { detach } from "./_common_detach.js";
27
- const padding = "=".charCodeAt(0);
28
- const alphabet = new TextEncoder()
29
- .encode("ABCDEFGHIJKLMNOPQRSTUVWXYZ234567");
30
- const rAlphabet = new Uint8Array(128).fill(32); //alphabet.length
31
- alphabet.forEach((byte, i) => rAlphabet[byte] = i);
32
- /**
33
- * Converts data into a base32-encoded string.
34
- *
35
- * @see {@link https://www.rfc-editor.org/rfc/rfc4648.html#section-6}
36
- *
37
- * @param data The data to encode.
38
- * @returns The base32-encoded string.
39
- *
40
- * @example Usage
41
- * ```ts
42
- * import { encodeBase32 } from "@std/encoding/base32";
43
- * import { assertEquals } from "@std/assert";
44
- *
45
- * assertEquals(encodeBase32("6c60c0"), "GZRTMMDDGA======");
46
- * ```
47
- */
48
- export function encodeBase32(data) {
49
- if (typeof data === "string") {
50
- data = new TextEncoder().encode(data);
51
- }
52
- else if (data instanceof ArrayBuffer)
53
- data = new Uint8Array(data).slice();
54
- else
55
- data = data.slice();
56
- const [output, i] = detach(data, calcSizeBase32(data.length));
57
- encode(output, i, 0, alphabet, padding);
58
- return new TextDecoder().decode(output);
59
- }
60
- /**
61
- * Decodes a base32-encoded string.
62
- *
63
- * @see {@link https://www.rfc-editor.org/rfc/rfc4648.html#section-6}
64
- *
65
- * @param b32 The base32-encoded string to decode.
66
- * @returns The decoded data.
67
- *
68
- * @example Usage
69
- * ```ts
70
- * import { decodeBase32 } from "@std/encoding/base32";
71
- * import { assertEquals } from "@std/assert";
72
- *
73
- * assertEquals(
74
- * decodeBase32("GZRTMMDDGA======"),
75
- * new TextEncoder().encode("6c60c0"),
76
- * );
77
- * ```
78
- */
79
- export function decodeBase32(b32) {
80
- const output = new TextEncoder().encode(b32);
81
- if (output.length % 8) {
82
- throw new TypeError(`Invalid base32 string: length (${output.length}) must be a multiple of 8`);
83
- }
84
- // deno-lint-ignore no-explicit-any
85
- return new Uint8Array(output.buffer
86
- .transfer(decode(output, 0, 0, rAlphabet, padding)));
87
- }
@@ -1,39 +0,0 @@
1
- import type { Uint8Array_ } from "./_types.js";
2
- export type { Uint8Array_ };
3
- /**
4
- * Converts data into a base58-encoded string.
5
- *
6
- * @see {@link https://datatracker.ietf.org/doc/html/draft-msporny-base58-03#section-3}
7
- *
8
- * @param data The data to encode.
9
- * @returns The base58-encoded string.
10
- *
11
- * @example Usage
12
- * ```ts
13
- * import { encodeBase58 } from "@std/encoding/base58";
14
- * import { assertEquals } from "@std/assert";
15
- *
16
- * assertEquals(encodeBase58("Hello World!"), "2NEpo7TZRRrLZSi2U");
17
- * ```
18
- */
19
- export declare function encodeBase58(data: ArrayBuffer | Uint8Array | string): string;
20
- /**
21
- * Decodes a base58-encoded string.
22
- *
23
- * @see {@link https://datatracker.ietf.org/doc/html/draft-msporny-base58-03#section-4}
24
- *
25
- * @param b58 The base58-encoded string to decode.
26
- * @returns The decoded data.
27
- *
28
- * @example Usage
29
- * ```ts
30
- * import { decodeBase58 } from "@std/encoding/base58";
31
- * import { assertEquals } from "@std/assert";
32
- *
33
- * assertEquals(
34
- * decodeBase58("2NEpo7TZRRrLZSi2U"),
35
- * new TextEncoder().encode("Hello World!")
36
- * );
37
- * ```
38
- */
39
- export declare function decodeBase58(b58: string): Uint8Array_;
@@ -1,131 +0,0 @@
1
- // Copyright 2018-2026 the Deno authors. MIT license.
2
- // This module is browser compatible.
3
- /**
4
- * Utilities for
5
- * {@link https://datatracker.ietf.org/doc/html/draft-msporny-base58-03 | base58}
6
- * encoding and decoding.
7
- *
8
- * ```ts
9
- * import { encodeBase58, decodeBase58 } from "@std/encoding/base58";
10
- * import { assertEquals } from "@std/assert";
11
- *
12
- * const hello = new TextEncoder().encode("Hello World!");
13
- *
14
- * assertEquals(encodeBase58(hello), "2NEpo7TZRRrLZSi2U");
15
- *
16
- * assertEquals(decodeBase58("2NEpo7TZRRrLZSi2U"), hello);
17
- * ```
18
- *
19
- * @module
20
- */
21
- import { validateBinaryLike } from "./_validate_binary_like.js";
22
- // deno-fmt-ignore
23
- const mapBase58 = {
24
- "1": 0, "2": 1, "3": 2, "4": 3, "5": 4, "6": 5, "7": 6, "8": 7, "9": 8, A: 9,
25
- B: 10, C: 11, D: 12, E: 13, F: 14, G: 15, H: 16, J: 17, K: 18, L: 19, M: 20,
26
- N: 21, P: 22, Q: 23, R: 24, S: 25, T: 26, U: 27, V: 28, W: 29, X: 30, Y: 31,
27
- Z: 32, a: 33, b: 34, c: 35, d: 36, e: 37, f: 38, g: 39, h: 40, i: 41, j: 42,
28
- k: 43, m: 44, n: 45, o: 46, p: 47, q: 48, r: 49, s: 50, t: 51, u: 52, v: 53,
29
- w: 54, x: 55, y: 56, z: 57
30
- };
31
- const base58alphabet = "123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz".split("");
32
- /**
33
- * Converts data into a base58-encoded string.
34
- *
35
- * @see {@link https://datatracker.ietf.org/doc/html/draft-msporny-base58-03#section-3}
36
- *
37
- * @param data The data to encode.
38
- * @returns The base58-encoded string.
39
- *
40
- * @example Usage
41
- * ```ts
42
- * import { encodeBase58 } from "@std/encoding/base58";
43
- * import { assertEquals } from "@std/assert";
44
- *
45
- * assertEquals(encodeBase58("Hello World!"), "2NEpo7TZRRrLZSi2U");
46
- * ```
47
- */
48
- export function encodeBase58(data) {
49
- const uint8tData = validateBinaryLike(data);
50
- let length = 0;
51
- let zeroes = 0;
52
- // Counting leading zeroes
53
- let index = 0;
54
- while (uint8tData[index] === 0) {
55
- zeroes++;
56
- index++;
57
- }
58
- const notZeroUint8Data = uint8tData.slice(index);
59
- const size = Math.round((uint8tData.length * 138) / 100 + 1);
60
- const b58Encoding = [];
61
- notZeroUint8Data.forEach((byte) => {
62
- let i = 0;
63
- let carry = byte;
64
- for (let reverseIterator = size - 1; (carry > 0 || i < length) && reverseIterator !== -1; reverseIterator--, i++) {
65
- carry += (b58Encoding[reverseIterator] ?? 0) * 256;
66
- b58Encoding[reverseIterator] = Math.round(carry % 58);
67
- carry = Math.floor(carry / 58);
68
- }
69
- length = i;
70
- });
71
- const strResult = Array.from({
72
- length: b58Encoding.length + zeroes,
73
- });
74
- if (zeroes > 0) {
75
- strResult.fill("1", 0, zeroes);
76
- }
77
- b58Encoding.forEach((byteValue) => strResult.push(base58alphabet[byteValue]));
78
- return strResult.join("");
79
- }
80
- /**
81
- * Decodes a base58-encoded string.
82
- *
83
- * @see {@link https://datatracker.ietf.org/doc/html/draft-msporny-base58-03#section-4}
84
- *
85
- * @param b58 The base58-encoded string to decode.
86
- * @returns The decoded data.
87
- *
88
- * @example Usage
89
- * ```ts
90
- * import { decodeBase58 } from "@std/encoding/base58";
91
- * import { assertEquals } from "@std/assert";
92
- *
93
- * assertEquals(
94
- * decodeBase58("2NEpo7TZRRrLZSi2U"),
95
- * new TextEncoder().encode("Hello World!")
96
- * );
97
- * ```
98
- */
99
- export function decodeBase58(b58) {
100
- const splitInput = b58.trim().split("");
101
- let length = 0;
102
- let ones = 0;
103
- // Counting leading ones
104
- let index = 0;
105
- while (splitInput[index] === "1") {
106
- ones++;
107
- index++;
108
- }
109
- const notZeroData = splitInput.slice(index);
110
- const size = Math.round((b58.length * 733) / 1000 + 1);
111
- const output = [];
112
- notZeroData.forEach((char, idx) => {
113
- let carry = mapBase58[char];
114
- let i = 0;
115
- if (carry === undefined) {
116
- throw new TypeError(`Invalid base58 char at index ${idx} with value ${char}`);
117
- }
118
- for (let reverseIterator = size - 1; (carry > 0 || i < length) && reverseIterator !== -1; reverseIterator--, i++) {
119
- carry += 58 * (output[reverseIterator] ?? 0);
120
- output[reverseIterator] = Math.round(carry % 256);
121
- carry = Math.floor(carry / 256);
122
- }
123
- length = i;
124
- });
125
- const validOutput = output.filter((item) => item !== undefined);
126
- if (ones > 0) {
127
- const onesResult = Array.from({ length: ones }).fill(0, 0, ones);
128
- return new Uint8Array([...onesResult, ...validOutput]);
129
- }
130
- return new Uint8Array(validOutput);
131
- }
@@ -1,39 +0,0 @@
1
- import type { Uint8Array_ } from "./_types.js";
2
- export type { Uint8Array_ };
3
- /**
4
- * Converts data into a base64-encoded string.
5
- *
6
- * @see {@link https://www.rfc-editor.org/rfc/rfc4648.html#section-4}
7
- *
8
- * @param data The data to encode.
9
- * @returns The base64-encoded string.
10
- *
11
- * @example Usage
12
- * ```ts
13
- * import { encodeBase64 } from "@std/encoding/base64";
14
- * import { assertEquals } from "@std/assert";
15
- *
16
- * assertEquals(encodeBase64("foobar"), "Zm9vYmFy");
17
- * ```
18
- */
19
- export declare function encodeBase64(data: ArrayBuffer | Uint8Array | string): string;
20
- /**
21
- * Decodes a base64-encoded string.
22
- *
23
- * @see {@link https://www.rfc-editor.org/rfc/rfc4648.html#section-4}
24
- *
25
- * @param b64 The base64-encoded string to decode.
26
- * @returns The decoded data.
27
- *
28
- * @example Usage
29
- * ```ts
30
- * import { decodeBase64 } from "@std/encoding/base64";
31
- * import { assertEquals } from "@std/assert";
32
- *
33
- * assertEquals(
34
- * decodeBase64("Zm9vYmFy"),
35
- * new TextEncoder().encode("foobar")
36
- * );
37
- * ```
38
- */
39
- export declare function decodeBase64(b64: string): Uint8Array_;
@@ -1,82 +0,0 @@
1
- // Copyright 2018-2026 the Deno authors. MIT license.
2
- // This module is browser compatible.
3
- /**
4
- * Utilities for
5
- * {@link https://www.rfc-editor.org/rfc/rfc4648.html#section-4 | base64}
6
- * encoding and decoding.
7
- *
8
- * ```ts
9
- * import {
10
- * encodeBase64,
11
- * decodeBase64,
12
- * } from "@std/encoding/base64";
13
- * import { assertEquals } from "@std/assert";
14
- *
15
- * const foobar = new TextEncoder().encode("foobar");
16
- *
17
- * assertEquals(encodeBase64(foobar), "Zm9vYmFy");
18
- * assertEquals(decodeBase64("Zm9vYmFy"), foobar);
19
- * ```
20
- *
21
- * @module
22
- */
23
- import { calcSizeBase64, decode, encode } from "./_common64.js";
24
- import { detach } from "./_common_detach.js";
25
- const padding = "=".charCodeAt(0);
26
- const alphabet = new TextEncoder()
27
- .encode("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/");
28
- const rAlphabet = new Uint8Array(128).fill(64); // alphabet.length
29
- alphabet.forEach((byte, i) => rAlphabet[byte] = i);
30
- /**
31
- * Converts data into a base64-encoded string.
32
- *
33
- * @see {@link https://www.rfc-editor.org/rfc/rfc4648.html#section-4}
34
- *
35
- * @param data The data to encode.
36
- * @returns The base64-encoded string.
37
- *
38
- * @example Usage
39
- * ```ts
40
- * import { encodeBase64 } from "@std/encoding/base64";
41
- * import { assertEquals } from "@std/assert";
42
- *
43
- * assertEquals(encodeBase64("foobar"), "Zm9vYmFy");
44
- * ```
45
- */
46
- export function encodeBase64(data) {
47
- if (typeof data === "string") {
48
- data = new TextEncoder().encode(data);
49
- }
50
- else if (data instanceof ArrayBuffer)
51
- data = new Uint8Array(data).slice();
52
- else
53
- data = data.slice();
54
- const [output, i] = detach(data, calcSizeBase64(data.length));
55
- encode(output, i, 0, alphabet, padding);
56
- return new TextDecoder().decode(output);
57
- }
58
- /**
59
- * Decodes a base64-encoded string.
60
- *
61
- * @see {@link https://www.rfc-editor.org/rfc/rfc4648.html#section-4}
62
- *
63
- * @param b64 The base64-encoded string to decode.
64
- * @returns The decoded data.
65
- *
66
- * @example Usage
67
- * ```ts
68
- * import { decodeBase64 } from "@std/encoding/base64";
69
- * import { assertEquals } from "@std/assert";
70
- *
71
- * assertEquals(
72
- * decodeBase64("Zm9vYmFy"),
73
- * new TextEncoder().encode("foobar")
74
- * );
75
- * ```
76
- */
77
- export function decodeBase64(b64) {
78
- const output = new TextEncoder().encode(b64);
79
- // deno-lint-ignore no-explicit-any
80
- return new Uint8Array(output.buffer
81
- .transfer(decode(output, 0, 0, rAlphabet, padding)));
82
- }