@bradford-tech/supabase-integrity-attest 0.2.1

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 (89) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +87 -0
  3. package/esm/_dnt.test_shims.d.ts.map +1 -0
  4. package/esm/deps/jsr.io/@std/assert/1.0.19/almost_equals.d.ts.map +1 -0
  5. package/esm/deps/jsr.io/@std/assert/1.0.19/array_includes.d.ts.map +1 -0
  6. package/esm/deps/jsr.io/@std/assert/1.0.19/assert.d.ts.map +1 -0
  7. package/esm/deps/jsr.io/@std/assert/1.0.19/assertion_error.d.ts.map +1 -0
  8. package/esm/deps/jsr.io/@std/assert/1.0.19/equal.d.ts.map +1 -0
  9. package/esm/deps/jsr.io/@std/assert/1.0.19/equals.d.ts.map +1 -0
  10. package/esm/deps/jsr.io/@std/assert/1.0.19/exists.d.ts.map +1 -0
  11. package/esm/deps/jsr.io/@std/assert/1.0.19/fail.d.ts.map +1 -0
  12. package/esm/deps/jsr.io/@std/assert/1.0.19/false.d.ts.map +1 -0
  13. package/esm/deps/jsr.io/@std/assert/1.0.19/greater.d.ts.map +1 -0
  14. package/esm/deps/jsr.io/@std/assert/1.0.19/greater_or_equal.d.ts.map +1 -0
  15. package/esm/deps/jsr.io/@std/assert/1.0.19/instance_of.d.ts.map +1 -0
  16. package/esm/deps/jsr.io/@std/assert/1.0.19/is_error.d.ts.map +1 -0
  17. package/esm/deps/jsr.io/@std/assert/1.0.19/less.d.ts.map +1 -0
  18. package/esm/deps/jsr.io/@std/assert/1.0.19/less_or_equal.d.ts.map +1 -0
  19. package/esm/deps/jsr.io/@std/assert/1.0.19/match.d.ts.map +1 -0
  20. package/esm/deps/jsr.io/@std/assert/1.0.19/mod.d.ts.map +1 -0
  21. package/esm/deps/jsr.io/@std/assert/1.0.19/not_equals.d.ts.map +1 -0
  22. package/esm/deps/jsr.io/@std/assert/1.0.19/not_instance_of.d.ts.map +1 -0
  23. package/esm/deps/jsr.io/@std/assert/1.0.19/not_match.d.ts.map +1 -0
  24. package/esm/deps/jsr.io/@std/assert/1.0.19/not_strict_equals.d.ts.map +1 -0
  25. package/esm/deps/jsr.io/@std/assert/1.0.19/object_match.d.ts.map +1 -0
  26. package/esm/deps/jsr.io/@std/assert/1.0.19/rejects.d.ts.map +1 -0
  27. package/esm/deps/jsr.io/@std/assert/1.0.19/strict_equals.d.ts.map +1 -0
  28. package/esm/deps/jsr.io/@std/assert/1.0.19/string_includes.d.ts.map +1 -0
  29. package/esm/deps/jsr.io/@std/assert/1.0.19/throws.d.ts.map +1 -0
  30. package/esm/deps/jsr.io/@std/assert/1.0.19/unimplemented.d.ts.map +1 -0
  31. package/esm/deps/jsr.io/@std/assert/1.0.19/unreachable.d.ts.map +1 -0
  32. package/esm/deps/jsr.io/@std/encoding/1.0.10/_common64.d.ts +35 -0
  33. package/esm/deps/jsr.io/@std/encoding/1.0.10/_common64.d.ts.map +1 -0
  34. package/esm/deps/jsr.io/@std/encoding/1.0.10/_common64.js +113 -0
  35. package/esm/deps/jsr.io/@std/encoding/1.0.10/_common_detach.d.ts +4 -0
  36. package/esm/deps/jsr.io/@std/encoding/1.0.10/_common_detach.d.ts.map +1 -0
  37. package/esm/deps/jsr.io/@std/encoding/1.0.10/_common_detach.js +13 -0
  38. package/esm/deps/jsr.io/@std/encoding/1.0.10/_types.d.ts +9 -0
  39. package/esm/deps/jsr.io/@std/encoding/1.0.10/_types.d.ts.map +1 -0
  40. package/esm/deps/jsr.io/@std/encoding/1.0.10/_types.js +2 -0
  41. package/esm/deps/jsr.io/@std/encoding/1.0.10/base64.d.ts +40 -0
  42. package/esm/deps/jsr.io/@std/encoding/1.0.10/base64.d.ts.map +1 -0
  43. package/esm/deps/jsr.io/@std/encoding/1.0.10/base64.js +82 -0
  44. package/esm/deps/jsr.io/@std/internal/1.0.12/build_message.d.ts.map +1 -0
  45. package/esm/deps/jsr.io/@std/internal/1.0.12/diff.d.ts.map +1 -0
  46. package/esm/deps/jsr.io/@std/internal/1.0.12/diff_str.d.ts.map +1 -0
  47. package/esm/deps/jsr.io/@std/internal/1.0.12/format.d.ts.map +1 -0
  48. package/esm/deps/jsr.io/@std/internal/1.0.12/styles.d.ts.map +1 -0
  49. package/esm/deps/jsr.io/@std/internal/1.0.12/types.d.ts.map +1 -0
  50. package/esm/mod.d.ts +6 -0
  51. package/esm/mod.d.ts.map +1 -0
  52. package/esm/mod.js +4 -0
  53. package/esm/package.json +3 -0
  54. package/esm/src/assertion.d.ts +9 -0
  55. package/esm/src/assertion.d.ts.map +1 -0
  56. package/esm/src/assertion.js +64 -0
  57. package/esm/src/attestation.d.ts +37 -0
  58. package/esm/src/attestation.d.ts.map +1 -0
  59. package/esm/src/attestation.js +242 -0
  60. package/esm/src/authdata.d.ts +13 -0
  61. package/esm/src/authdata.d.ts.map +1 -0
  62. package/esm/src/authdata.js +29 -0
  63. package/esm/src/certificate.d.ts +25 -0
  64. package/esm/src/certificate.d.ts.map +1 -0
  65. package/esm/src/certificate.js +86 -0
  66. package/esm/src/constants.d.ts +9 -0
  67. package/esm/src/constants.d.ts.map +1 -0
  68. package/esm/src/constants.js +56 -0
  69. package/esm/src/cose.d.ts.map +1 -0
  70. package/esm/src/der.d.ts +3 -0
  71. package/esm/src/der.d.ts.map +1 -0
  72. package/esm/src/der.js +72 -0
  73. package/esm/src/errors.d.ts +26 -0
  74. package/esm/src/errors.d.ts.map +1 -0
  75. package/esm/src/errors.js +52 -0
  76. package/esm/src/utils.d.ts +13 -0
  77. package/esm/src/utils.d.ts.map +1 -0
  78. package/esm/src/utils.js +52 -0
  79. package/esm/tests/assertion.test.d.ts.map +1 -0
  80. package/esm/tests/attestation.test.d.ts.map +1 -0
  81. package/esm/tests/authdata.test.d.ts.map +1 -0
  82. package/esm/tests/certificate.test.d.ts.map +1 -0
  83. package/esm/tests/cose.test.d.ts.map +1 -0
  84. package/esm/tests/der.test.d.ts.map +1 -0
  85. package/esm/tests/errors.test.d.ts.map +1 -0
  86. package/esm/tests/fixtures/apple-attestation.d.ts.map +1 -0
  87. package/esm/tests/fixtures/generate-assertion.d.ts.map +1 -0
  88. package/esm/tests/utils.test.d.ts.map +1 -0
  89. package/package.json +33 -0
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Bradford Technologies
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md ADDED
@@ -0,0 +1,87 @@
1
+ # supabase-integrity-attest
2
+
3
+ Server-side TypeScript library for verifying Apple App Attest attestations and
4
+ assertions using the WebCrypto API. Built for Deno and Supabase Edge Functions.
5
+
6
+ ## Installation
7
+
8
+ ```bash
9
+ # Deno
10
+ deno add jsr:@bradford-tech/supabase-integrity-attest
11
+
12
+ # npm
13
+ npx jsr add @bradford-tech/supabase-integrity-attest
14
+ ```
15
+
16
+ ## Usage
17
+
18
+ ### Attestation (one-time per device)
19
+
20
+ ```typescript
21
+ import { verifyAttestation } from "@bradford-tech/supabase-integrity-attest";
22
+
23
+ const result = await verifyAttestation(
24
+ { appId: "TEAMID.com.your.bundleid" },
25
+ keyId, // base64 from client
26
+ challenge, // the challenge you issued
27
+ attestation, // base64 CBOR from client
28
+ );
29
+
30
+ // Store result.publicKeyPem and signCount (0) for this device
31
+ ```
32
+
33
+ ### Assertion (every protected request)
34
+
35
+ ```typescript
36
+ import { verifyAssertion } from "@bradford-tech/supabase-integrity-attest";
37
+
38
+ const result = await verifyAssertion(
39
+ { appId: "TEAMID.com.your.bundleid" },
40
+ assertion, // base64 CBOR from client
41
+ clientData, // the request payload that was signed
42
+ storedPublicKeyPem, // from attestation
43
+ storedSignCount, // last known counter
44
+ );
45
+
46
+ // Update stored signCount to result.signCount
47
+ ```
48
+
49
+ ### Error handling
50
+
51
+ ```typescript
52
+ import {
53
+ AttestationError,
54
+ AttestationErrorCode,
55
+ AssertionError,
56
+ AssertionErrorCode,
57
+ } from "@bradford-tech/supabase-integrity-attest";
58
+
59
+ try {
60
+ await verifyAttestation(appInfo, keyId, challenge, attestation);
61
+ } catch (e) {
62
+ if (e instanceof AttestationError) {
63
+ console.log(e.code); // e.g. "NONCE_MISMATCH", "INVALID_CERTIFICATE_CHAIN"
64
+ }
65
+ }
66
+ ```
67
+
68
+ ## Development environment
69
+
70
+ For apps using Apple's development App Attest environment:
71
+
72
+ ```typescript
73
+ await verifyAttestation(
74
+ { appId: "TEAMID.com.your.bundleid", developmentEnv: true },
75
+ keyId,
76
+ challenge,
77
+ attestation,
78
+ );
79
+ ```
80
+
81
+ ## Security
82
+
83
+ See [SECURITY.md](./SECURITY.md) for vulnerability reporting.
84
+
85
+ ## License
86
+
87
+ MIT
@@ -0,0 +1 @@
1
+ {"version":3,"file":"_dnt.test_shims.d.ts","sourceRoot":"","sources":["../src/_dnt.test_shims.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AAC5C,OAAO,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AAK5C,eAAO,MAAM,aAAa;;CAA2C,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"almost_equals.d.ts","sourceRoot":"","sources":["../../../../../../src/deps/jsr.io/@std/assert/1.0.19/almost_equals.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,EAChB,SAAS,CAAC,EAAE,MAAM,EAClB,GAAG,CAAC,EAAE,MAAM,QAmBb"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"array_includes.d.ts","sourceRoot":"","sources":["../../../../../../src/deps/jsr.io/@std/assert/1.0.19/array_includes.ts"],"names":[],"mappings":"AAMA,0FAA0F;AAC1F,MAAM,MAAM,YAAY,CAAC,CAAC,IAAI,SAAS,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC;AAOpD;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,mBAAmB,CAAC,CAAC,EACnC,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC,EACvB,QAAQ,EAAE,YAAY,CAAC,CAAC,CAAC,EACzB,GAAG,CAAC,EAAE,MAAM,GACX,IAAI,CAgCN"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"assert.d.ts","sourceRoot":"","sources":["../../../../../../src/deps/jsr.io/@std/assert/1.0.19/assert.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,MAAM,CAAC,IAAI,EAAE,OAAO,EAAE,GAAG,SAAK,GAAG,OAAO,CAAC,IAAI,CAI5D"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"assertion_error.d.ts","sourceRoot":"","sources":["../../../../../../src/deps/jsr.io/@std/assert/1.0.19/assertion_error.ts"],"names":[],"mappings":"AAGA;;;;;;;;;;;;;;;;GAgBG;AACH,qBAAa,cAAe,SAAQ,KAAK;IACvC;;;;OAIG;gBACS,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,YAAY;CAIpD"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"equal.d.ts","sourceRoot":"","sources":["../../../../../../src/deps/jsr.io/@std/assert/1.0.19/equal.ts"],"names":[],"mappings":"AA0FA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,KAAK,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,GAAG,OAAO,CAgHrD"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"equals.d.ts","sourceRoot":"","sources":["../../../../../../src/deps/jsr.io/@std/assert/1.0.19/equals.ts"],"names":[],"mappings":"AAUA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,wBAAgB,YAAY,CAAC,CAAC,EAC5B,MAAM,EAAE,CAAC,EACT,QAAQ,EAAE,CAAC,EACX,GAAG,CAAC,EAAE,MAAM,QAmBb"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"exists.d.ts","sourceRoot":"","sources":["../../../../../../src/deps/jsr.io/@std/assert/1.0.19/exists.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,YAAY,CAAC,CAAC,EAC5B,MAAM,EAAE,CAAC,EACT,GAAG,CAAC,EAAE,MAAM,GACX,OAAO,CAAC,MAAM,IAAI,WAAW,CAAC,CAAC,CAAC,CAOlC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fail.d.ts","sourceRoot":"","sources":["../../../../../../src/deps/jsr.io/@std/assert/1.0.19/fail.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;;;GAYG;AACH,wBAAgB,IAAI,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,KAAK,CAGxC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"false.d.ts","sourceRoot":"","sources":["../../../../../../src/deps/jsr.io/@std/assert/1.0.19/false.ts"],"names":[],"mappings":"AAIA,uDAAuD;AACvD,MAAM,MAAM,KAAK,GAAG,KAAK,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,GAAG,SAAS,CAAC;AAE3D;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,OAAO,EAAE,GAAG,SAAK,GAAG,OAAO,CAAC,IAAI,IAAI,KAAK,CAI1E"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"greater.d.ts","sourceRoot":"","sources":["../../../../../../src/deps/jsr.io/@std/assert/1.0.19/greater.ts"],"names":[],"mappings":"AAKA;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,aAAa,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,GAAG,CAAC,EAAE,MAAM,QAMpE"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"greater_or_equal.d.ts","sourceRoot":"","sources":["../../../../../../src/deps/jsr.io/@std/assert/1.0.19/greater_or_equal.ts"],"names":[],"mappings":"AAKA;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,oBAAoB,CAAC,CAAC,EACpC,MAAM,EAAE,CAAC,EACT,QAAQ,EAAE,CAAC,EACX,GAAG,CAAC,EAAE,MAAM,QASb"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"instance_of.d.ts","sourceRoot":"","sources":["../../../../../../src/deps/jsr.io/@std/assert/1.0.19/instance_of.ts"],"names":[],"mappings":"AAIA,sBAAsB;AAEtB,MAAM,MAAM,cAAc,GAAG,KAAK,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,CAAC;AACzD,4BAA4B;AAC5B,MAAM,MAAM,kBAAkB,CAAC,CAAC,SAAS,cAAc,IAAI,YAAY,CAAC,CAAC,CAAC,CAAC;AAE3E;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,gBAAgB,CAE9B,CAAC,SAAS,QAAQ,MAAM,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,EAE9C,MAAM,EAAE,OAAO,EACf,YAAY,EAAE,CAAC,EACf,GAAG,SAAK,GACP,OAAO,CAAC,MAAM,IAAI,YAAY,CAAC,CAAC,CAAC,CA6BnC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"is_error.d.ts","sourceRoot":"","sources":["../../../../../../src/deps/jsr.io/@std/assert/1.0.19/is_error.ts"],"names":[],"mappings":"AAKA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,aAAa,CAAC,CAAC,SAAS,KAAK,GAAG,KAAK,EACnD,KAAK,EAAE,OAAO,EAEd,UAAU,CAAC,EAAE,QAAQ,MAAM,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,EAC/C,UAAU,CAAC,EAAE,MAAM,GAAG,MAAM,EAC5B,GAAG,CAAC,EAAE,MAAM,GACX,OAAO,CAAC,KAAK,IAAI,CAAC,CA8BpB"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"less.d.ts","sourceRoot":"","sources":["../../../../../../src/deps/jsr.io/@std/assert/1.0.19/less.ts"],"names":[],"mappings":"AAKA;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,UAAU,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,GAAG,CAAC,EAAE,MAAM,QAMjE"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"less_or_equal.d.ts","sourceRoot":"","sources":["../../../../../../src/deps/jsr.io/@std/assert/1.0.19/less_or_equal.ts"],"names":[],"mappings":"AAKA;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,iBAAiB,CAAC,CAAC,EACjC,MAAM,EAAE,CAAC,EACT,QAAQ,EAAE,CAAC,EACX,GAAG,CAAC,EAAE,MAAM,QASb"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"match.d.ts","sourceRoot":"","sources":["../../../../../../src/deps/jsr.io/@std/assert/1.0.19/match.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,WAAW,CACzB,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,EAChB,GAAG,CAAC,EAAE,MAAM,QAMb"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mod.d.ts","sourceRoot":"","sources":["../../../../../../src/deps/jsr.io/@std/assert/1.0.19/mod.ts"],"names":[],"mappings":"AAGA;;;;;;;;;;;;;;;GAeG;AAEH,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,uBAAuB,CAAC;AACtC,cAAc,cAAc,CAAC;AAC7B,cAAc,kBAAkB,CAAC;AACjC,cAAc,eAAe,CAAC;AAC9B,cAAc,oBAAoB,CAAC;AACnC,cAAc,WAAW,CAAC;AAC1B,cAAc,YAAY,CAAC;AAC3B,cAAc,iBAAiB,CAAC;AAChC,cAAc,sBAAsB,CAAC;AACrC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,wBAAwB,CAAC;AACvC,cAAc,mBAAmB,CAAC;AAClC,cAAc,cAAc,CAAC;AAC7B,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC;AACrC,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,sBAAsB,CAAC;AACrC,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC;AAC1B,cAAc,oBAAoB,CAAC;AACnC,cAAc,kBAAkB,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"not_equals.d.ts","sourceRoot":"","sources":["../../../../../../src/deps/jsr.io/@std/assert/1.0.19/not_equals.ts"],"names":[],"mappings":"AAOA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,eAAe,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,GAAG,CAAC,EAAE,MAAM,QAUtE"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"not_instance_of.d.ts","sourceRoot":"","sources":["../../../../../../src/deps/jsr.io/@std/assert/1.0.19/not_instance_of.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,mBAAmB,CAAC,CAAC,EAAE,CAAC,EACtC,MAAM,EAAE,CAAC,EAET,cAAc,EAAE,QAAQ,MAAM,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,EAClD,GAAG,CAAC,EAAE,MAAM,GACX,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAKjC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"not_match.d.ts","sourceRoot":"","sources":["../../../../../../src/deps/jsr.io/@std/assert/1.0.19/not_match.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,cAAc,CAC5B,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,EAChB,GAAG,CAAC,EAAE,MAAM,QAMb"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"not_strict_equals.d.ts","sourceRoot":"","sources":["../../../../../../src/deps/jsr.io/@std/assert/1.0.19/not_strict_equals.ts"],"names":[],"mappings":"AAKA;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,qBAAqB,CAAC,CAAC,EACrC,MAAM,EAAE,CAAC,EACT,QAAQ,EAAE,CAAC,EACX,GAAG,CAAC,EAAE,MAAM,QAYb"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"object_match.d.ts","sourceRoot":"","sources":["../../../../../../src/deps/jsr.io/@std/assert/1.0.19/object_match.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,wBAAgB,iBAAiB,CAE/B,MAAM,EAAE,MAAM,CAAC,WAAW,EAAE,GAAG,CAAC,EAChC,QAAQ,EAAE,MAAM,CAAC,WAAW,EAAE,OAAO,CAAC,EACtC,GAAG,CAAC,EAAE,MAAM,GACX,IAAI,CAUN"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rejects.d.ts","sourceRoot":"","sources":["../../../../../../src/deps/jsr.io/@std/assert/1.0.19/rejects.ts"],"names":[],"mappings":"AAKA;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,aAAa,CAC3B,EAAE,EAAE,MAAM,WAAW,CAAC,OAAO,CAAC,EAC9B,GAAG,CAAC,EAAE,MAAM,GACX,OAAO,CAAC,OAAO,CAAC,CAAC;AACpB;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,aAAa,CAAC,CAAC,SAAS,KAAK,GAAG,KAAK,EACnD,EAAE,EAAE,MAAM,WAAW,CAAC,OAAO,CAAC,EAE9B,UAAU,EAAE,QAAQ,MAAM,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,EAC9C,WAAW,CAAC,EAAE,MAAM,EACpB,GAAG,CAAC,EAAE,MAAM,GACX,OAAO,CAAC,CAAC,CAAC,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"strict_equals.d.ts","sourceRoot":"","sources":["../../../../../../src/deps/jsr.io/@std/assert/1.0.19/strict_equals.ts"],"names":[],"mappings":"AASA;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,kBAAkB,CAAC,CAAC,EAClC,MAAM,EAAE,OAAO,EACf,QAAQ,EAAE,CAAC,EACX,GAAG,CAAC,EAAE,MAAM,GACX,OAAO,CAAC,MAAM,IAAI,CAAC,CAgCrB"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"string_includes.d.ts","sourceRoot":"","sources":["../../../../../../src/deps/jsr.io/@std/assert/1.0.19/string_includes.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,EAChB,GAAG,CAAC,EAAE,MAAM,QAMb"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"throws.d.ts","sourceRoot":"","sources":["../../../../../../src/deps/jsr.io/@std/assert/1.0.19/throws.ts"],"names":[],"mappings":"AAKA;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,YAAY,CAC1B,EAAE,EAAE,MAAM,OAAO,EACjB,GAAG,CAAC,EAAE,MAAM,GACX,OAAO,CAAC;AACX;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,YAAY,CAAC,CAAC,SAAS,KAAK,GAAG,KAAK,EAClD,EAAE,EAAE,MAAM,OAAO,EAEjB,UAAU,EAAE,QAAQ,MAAM,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,EAC9C,WAAW,CAAC,EAAE,MAAM,EACpB,GAAG,CAAC,EAAE,MAAM,GACX,CAAC,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"unimplemented.d.ts","sourceRoot":"","sources":["../../../../../../src/deps/jsr.io/@std/assert/1.0.19/unimplemented.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;;;GAYG;AACH,wBAAgB,aAAa,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,KAAK,CAGjD"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"unreachable.d.ts","sourceRoot":"","sources":["../../../../../../src/deps/jsr.io/@std/assert/1.0.19/unreachable.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;;;GAYG;AACH,wBAAgB,WAAW,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,KAAK,CAG/C"}
@@ -0,0 +1,35 @@
1
+ import type { Uint8Array_ } from "./_types.js";
2
+ export type { Uint8Array_ };
3
+ export declare const padding: number;
4
+ export declare const alphabet: Record<Base64Alphabet, Uint8Array>;
5
+ export declare const rAlphabet: Record<Base64Alphabet, Uint8Array>;
6
+ /**
7
+ * Options for encoding and decoding base64 strings.
8
+ */
9
+ export interface Base64Options {
10
+ /** The base64 alphabet. Defaults to "base64" */
11
+ alphabet?: Base64Alphabet;
12
+ }
13
+ /**
14
+ * The base64 alphabets.
15
+ */
16
+ export type Base64Alphabet = "base64" | "base64url";
17
+ /**
18
+ * Calculate the output size needed to encode a given input size for
19
+ * {@linkcode encodeIntoBase64}.
20
+ *
21
+ * @param originalSize The size of the input buffer.
22
+ * @returns The size of the output buffer.
23
+ *
24
+ * @example Basic Usage
25
+ * ```ts
26
+ * import { assertEquals } from "@std/assert";
27
+ * import { calcSizeBase64 } from "@std/encoding/unstable-base64";
28
+ *
29
+ * assertEquals(calcSizeBase64(1), 4);
30
+ * ```
31
+ */
32
+ export declare function calcSizeBase64(originalSize: number): number;
33
+ export declare function encode(buffer: Uint8Array_, i: number, o: number, alphabet: Uint8Array, padding: number): number;
34
+ export declare function decode(buffer: Uint8Array_, i: number, o: number, alphabet: Uint8Array, padding: number): number;
35
+ //# sourceMappingURL=_common64.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"_common64.d.ts","sourceRoot":"","sources":["../../../../../../src/deps/jsr.io/@std/encoding/1.0.10/_common64.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC/C,YAAY,EAAE,WAAW,EAAE,CAAC;AAE5B,eAAO,MAAM,OAAO,QAAoB,CAAC;AACzC,eAAO,MAAM,QAAQ,EAAE,MAAM,CAAC,cAAc,EAAE,UAAU,CAKvD,CAAC;AACF,eAAO,MAAM,SAAS,EAAE,MAAM,CAAC,cAAc,EAAE,UAAU,CAGxD,CAAC;AAMF;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,gDAAgD;IAChD,QAAQ,CAAC,EAAE,cAAc,CAAC;CAC3B;AAED;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG,QAAQ,GAAG,WAAW,CAAC;AAEpD;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,cAAc,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,CAE3D;AAED,wBAAgB,MAAM,CACpB,MAAM,EAAE,WAAW,EACnB,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,EACT,QAAQ,EAAE,UAAU,EACpB,OAAO,EAAE,MAAM,GACd,MAAM,CA4BR;AAED,wBAAgB,MAAM,CACpB,MAAM,EAAE,WAAW,EACnB,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,EACT,QAAQ,EAAE,UAAU,EACpB,OAAO,EAAE,MAAM,GACd,MAAM,CAmDR"}
@@ -0,0 +1,113 @@
1
+ // Copyright 2018-2025 the Deno authors. MIT license.
2
+ export const padding = "=".charCodeAt(0);
3
+ export const alphabet = {
4
+ base64: new TextEncoder()
5
+ .encode("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"),
6
+ base64url: new TextEncoder()
7
+ .encode("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_"),
8
+ };
9
+ export const rAlphabet = {
10
+ base64: new Uint8Array(128).fill(64), // alphabet.base64.length
11
+ base64url: new Uint8Array(128).fill(64),
12
+ };
13
+ alphabet.base64
14
+ .forEach((byte, i) => rAlphabet.base64[byte] = i);
15
+ alphabet.base64url
16
+ .forEach((byte, i) => rAlphabet.base64url[byte] = i);
17
+ /**
18
+ * Calculate the output size needed to encode a given input size for
19
+ * {@linkcode encodeIntoBase64}.
20
+ *
21
+ * @param originalSize The size of the input buffer.
22
+ * @returns The size of the output buffer.
23
+ *
24
+ * @example Basic Usage
25
+ * ```ts
26
+ * import { assertEquals } from "@std/assert";
27
+ * import { calcSizeBase64 } from "@std/encoding/unstable-base64";
28
+ *
29
+ * assertEquals(calcSizeBase64(1), 4);
30
+ * ```
31
+ */
32
+ export function calcSizeBase64(originalSize) {
33
+ return ((originalSize + 2) / 3 | 0) * 4;
34
+ }
35
+ export function encode(buffer, i, o, alphabet, padding) {
36
+ i += 2;
37
+ for (; i < buffer.length; i += 3) {
38
+ const x = (buffer[i - 2] << 16) | (buffer[i - 1] << 8) | buffer[i];
39
+ buffer[o++] = alphabet[x >> 18];
40
+ buffer[o++] = alphabet[x >> 12 & 0x3F];
41
+ buffer[o++] = alphabet[x >> 6 & 0x3F];
42
+ buffer[o++] = alphabet[x & 0x3F];
43
+ }
44
+ switch (i) {
45
+ case buffer.length + 1: {
46
+ const x = buffer[i - 2] << 16;
47
+ buffer[o++] = alphabet[x >> 18];
48
+ buffer[o++] = alphabet[x >> 12 & 0x3F];
49
+ buffer[o++] = padding;
50
+ buffer[o++] = padding;
51
+ break;
52
+ }
53
+ case buffer.length: {
54
+ const x = (buffer[i - 2] << 16) | (buffer[i - 1] << 8);
55
+ buffer[o++] = alphabet[x >> 18];
56
+ buffer[o++] = alphabet[x >> 12 & 0x3F];
57
+ buffer[o++] = alphabet[x >> 6 & 0x3F];
58
+ buffer[o++] = padding;
59
+ break;
60
+ }
61
+ }
62
+ return o;
63
+ }
64
+ export function decode(buffer, i, o, alphabet, padding) {
65
+ for (let x = buffer.length - 2; x < buffer.length; ++x) {
66
+ if (buffer[x] === padding) {
67
+ for (let y = x + 1; y < buffer.length; ++y) {
68
+ if (buffer[y] !== padding) {
69
+ throw new TypeError(`Cannot decode input as base64: Invalid character (${String.fromCharCode(buffer[y])})`);
70
+ }
71
+ }
72
+ buffer = buffer.subarray(0, x);
73
+ break;
74
+ }
75
+ }
76
+ if ((buffer.length - o) % 4 === 1) {
77
+ throw new RangeError(`Cannot decode input as base64: Length (${buffer.length - o}), excluding padding, must not have a remainder of 1 when divided by 4`);
78
+ }
79
+ i += 3;
80
+ for (; i < buffer.length; i += 4) {
81
+ const x = (getByte(buffer[i - 3], alphabet) << 18) |
82
+ (getByte(buffer[i - 2], alphabet) << 12) |
83
+ (getByte(buffer[i - 1], alphabet) << 6) |
84
+ getByte(buffer[i], alphabet);
85
+ buffer[o++] = x >> 16;
86
+ buffer[o++] = x >> 8 & 0xFF;
87
+ buffer[o++] = x & 0xFF;
88
+ }
89
+ switch (i) {
90
+ case buffer.length + 1: {
91
+ const x = (getByte(buffer[i - 3], alphabet) << 18) |
92
+ (getByte(buffer[i - 2], alphabet) << 12);
93
+ buffer[o++] = x >> 16;
94
+ break;
95
+ }
96
+ case buffer.length: {
97
+ const x = (getByte(buffer[i - 3], alphabet) << 18) |
98
+ (getByte(buffer[i - 2], alphabet) << 12) |
99
+ (getByte(buffer[i - 1], alphabet) << 6);
100
+ buffer[o++] = x >> 16;
101
+ buffer[o++] = x >> 8 & 0xFF;
102
+ break;
103
+ }
104
+ }
105
+ return o;
106
+ }
107
+ function getByte(char, alphabet) {
108
+ const byte = alphabet[char] ?? 64;
109
+ if (byte === 64) { // alphabet.Base64.length
110
+ throw new TypeError(`Cannot decode input as base64: Invalid character (${String.fromCharCode(char)})`);
111
+ }
112
+ return byte;
113
+ }
@@ -0,0 +1,4 @@
1
+ import type { Uint8Array_ } from "./_types.js";
2
+ export type { Uint8Array_ };
3
+ export declare function detach(buffer: Uint8Array_, maxSize: number): [Uint8Array_, number];
4
+ //# sourceMappingURL=_common_detach.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"_common_detach.d.ts","sourceRoot":"","sources":["../../../../../../src/deps/jsr.io/@std/encoding/1.0.10/_common_detach.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC/C,YAAY,EAAE,WAAW,EAAE,CAAC;AAE5B,wBAAgB,MAAM,CACpB,MAAM,EAAE,WAAW,EACnB,OAAO,EAAE,MAAM,GACd,CAAC,WAAW,EAAE,MAAM,CAAC,CAWvB"}
@@ -0,0 +1,13 @@
1
+ // Copyright 2018-2025 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
+ }
@@ -0,0 +1,9 @@
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"]>;
9
+ //# sourceMappingURL=_types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"_types.d.ts","sourceRoot":"","sources":["../../../../../../src/deps/jsr.io/@std/encoding/1.0.10/_types.ts"],"names":[],"mappings":"AAEA;;;;;;GAMG;AAEH,MAAM,MAAM,WAAW,GAAG,UAAU,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ // Copyright 2018-2025 the Deno authors. MIT license.
2
+ export {};
@@ -0,0 +1,40 @@
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_;
40
+ //# sourceMappingURL=base64.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base64.d.ts","sourceRoot":"","sources":["../../../../../../src/deps/jsr.io/@std/encoding/1.0.10/base64.ts"],"names":[],"mappings":"AA0BA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC/C,YAAY,EAAE,WAAW,EAAE,CAAC;AAQ5B;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,WAAW,GAAG,UAAU,GAAG,MAAM,GAAG,MAAM,CAW5E;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,WAAW,CAKrD"}
@@ -0,0 +1,82 @@
1
+ // Copyright 2018-2025 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
+ }
@@ -0,0 +1 @@
1
+ {"version":3,"file":"build_message.d.ts","sourceRoot":"","sources":["../../../../../../src/deps/jsr.io/@std/internal/1.0.12/build_message.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEvD;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,WAAW,CACzB,QAAQ,EAAE,QAAQ;AAClB;;;GAGG;AACH,UAAU,UAAQ,GACjB,CAAC,CAAC,EAAE,MAAM,KAAK,MAAM,CAWvB;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,UAAU,CAAC,QAAQ,EAAE,QAAQ,GAAG,MAAM,CASrD;AAED,4CAA4C;AAC5C,MAAM,WAAW,mBAAmB;IAClC;;;OAGG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAgB,YAAY,CAC1B,UAAU,EAAE,aAAa,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,EAC7C,OAAO,GAAE,mBAAwB,EACjC,YAAY,CAAC,EAAE,CACb,UAAU,EAAE,aAAa,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,EAC7C,UAAU,EAAE,OAAO,EACnB,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,KAC1B,aAAa,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,GACrC,MAAM,EAAE,CA8BV"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"diff.d.ts","sourceRoot":"","sources":["../../../../../../src/deps/jsr.io/@std/internal/1.0.12/diff.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEvD,2DAA2D;AAC3D,MAAM,WAAW,aAAa;IAC5B,qCAAqC;IACrC,CAAC,EAAE,MAAM,CAAC;IACV,2BAA2B;IAC3B,EAAE,EAAE,MAAM,CAAC;CACZ;AAMD;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,YAAY,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,EAAE,CAanD;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,KAAK,IAAI,aAAa,CAWvE;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,SAAS,CAAC,CAAC,EACzB,CAAC,EAAE,CAAC,EAAE,EACN,CAAC,EAAE,CAAC,EAAE,EACN,OAAO,EAAE,aAAa,EACtB,OAAO,EAAE,OAAO,EAChB,MAAM,EAAE,WAAW,EACnB,kBAAkB,EAAE,MAAM,GACzB,KAAK,CAAC;IACP,IAAI,EAAE,QAAQ,CAAC;IACf,KAAK,EAAE,CAAC,CAAC;CACV,CAAC,CAgCD;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,wBAAgB,QAAQ,CACtB,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,EACT,MAAM,EAAE,WAAW,EACnB,kBAAkB,EAAE,MAAM,EAC1B,GAAG,EAAE,MAAM,EACX,KAAK,CAAC,EAAE,aAAa,EACrB,IAAI,CAAC,EAAE,aAAa,GACnB,aAAa,CAsBf;AAED;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAgB,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,UAAU,CAAC,CAAC,CAAC,EAAE,CAwEvD"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"diff_str.d.ts","sourceRoot":"","sources":["../../../../../../src/deps/jsr.io/@std/internal/1.0.12/diff_str.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAqB,UAAU,EAAE,MAAM,YAAY,CAAC;AAGhE;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAY/C;AAKD;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,UAAQ,GAAG,MAAM,EAAE,CAiBnE;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,aAAa,CAC3B,IAAI,EAAE,UAAU,CAAC,MAAM,CAAC,EACxB,MAAM,EAAE,UAAU,CAAC,MAAM,CAAC,EAAE,GAC3B,UAAU,CAAC,MAAM,CAAC,EAAE,CAetB;AAID;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,wBAAgB,OAAO,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC,EAAE,CAkDlE"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"format.d.ts","sourceRoot":"","sources":["../../../../../../src/deps/jsr.io/@std/internal/1.0.12/format.ts"],"names":[],"mappings":"AAMA,MAAM,MAAM,SAAS,GAAG,CACtB,CAAC,EAAE,OAAO,EACV,OAAO,EAAE;IACP,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,OAAO,CAAC;IAChB,aAAa,EAAE,OAAO,CAAC;IACvB,OAAO,EAAE,OAAO,CAAC;IACjB,aAAa,EAAE,MAAM,CAAC;IACtB,OAAO,EAAE,OAAO,CAAC;IACjB,iBAAiB,EAAE,MAAM,CAAC;CAC3B,KACE,MAAM,CAAC;AAEZ;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,MAAM,CAAC,CAAC,EAAE,OAAO,GAAG,MAAM,CAmBzC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"styles.d.ts","sourceRoot":"","sources":["../../../../../../src/deps/jsr.io/@std/internal/1.0.12/styles.ts"],"names":[],"mappings":"AAqCA;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAExC;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAEvC;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,KAAK,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAEzC;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAE1C;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,KAAK,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAEzC;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAExC;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAE/C;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,KAAK,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAEzC;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAE3C;AAWD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAEpD"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../../src/deps/jsr.io/@std/internal/1.0.12/types.ts"],"names":[],"mappings":"AAGA,kDAAkD;AAClD,MAAM,MAAM,QAAQ,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC;AAEnD;;;GAGG;AACH,MAAM,MAAM,UAAU,CAAC,CAAC,IAAI,iBAAiB,CAAC,CAAC,CAAC,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAC;AAEvE;;;GAGG;AACH,MAAM,MAAM,gBAAgB,CAAC,CAAC,IAAI;IAChC,IAAI,EAAE,QAAQ,GAAG,YAAY,CAAC;IAC9B,KAAK,EAAE,CAAC,CAAC;CACV,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,iBAAiB,CAAC,CAAC,IAAI;IACjC,IAAI,EAAE,SAAS,GAAG,OAAO,CAAC;IAC1B,KAAK,EAAE,CAAC,CAAC;IACT,OAAO,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC;CAC3B,CAAC"}
package/esm/mod.d.ts ADDED
@@ -0,0 +1,6 @@
1
+ export type { AppInfo, AttestationResult, VerifyAttestationOptions, } from "./src/attestation.js";
2
+ export type { AssertionResult } from "./src/assertion.js";
3
+ export { verifyAttestation } from "./src/attestation.js";
4
+ export { verifyAssertion } from "./src/assertion.js";
5
+ export { AssertionError, AssertionErrorCode, AttestationError, AttestationErrorCode, } from "./src/errors.js";
6
+ //# sourceMappingURL=mod.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mod.d.ts","sourceRoot":"","sources":["../src/mod.ts"],"names":[],"mappings":"AAEA,YAAY,EACV,OAAO,EACP,iBAAiB,EACjB,wBAAwB,GACzB,MAAM,sBAAsB,CAAC;AAC9B,YAAY,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EACL,cAAc,EACd,kBAAkB,EAClB,gBAAgB,EAChB,oBAAoB,GACrB,MAAM,iBAAiB,CAAC"}
package/esm/mod.js ADDED
@@ -0,0 +1,4 @@
1
+ // mod.ts — public API surface
2
+ export { verifyAttestation } from "./src/attestation.js";
3
+ export { verifyAssertion } from "./src/assertion.js";
4
+ export { AssertionError, AssertionErrorCode, AttestationError, AttestationErrorCode, } from "./src/errors.js";
@@ -0,0 +1,3 @@
1
+ {
2
+ "type": "module"
3
+ }
@@ -0,0 +1,9 @@
1
+ export interface AppInfo {
2
+ appId: string;
3
+ developmentEnv?: boolean;
4
+ }
5
+ export interface AssertionResult {
6
+ signCount: number;
7
+ }
8
+ export declare function verifyAssertion(appInfo: AppInfo, assertion: Uint8Array | string, clientData: Uint8Array | string, publicKeyPem: string, previousSignCount: number): Promise<AssertionResult>;
9
+ //# sourceMappingURL=assertion.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"assertion.d.ts","sourceRoot":"","sources":["../../src/src/assertion.ts"],"names":[],"mappings":"AAaA,MAAM,WAAW,OAAO;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED,MAAM,WAAW,eAAe;IAC9B,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,wBAAsB,eAAe,CACnC,OAAO,EAAE,OAAO,EAChB,SAAS,EAAE,UAAU,GAAG,MAAM,EAC9B,UAAU,EAAE,UAAU,GAAG,MAAM,EAC/B,YAAY,EAAE,MAAM,EACpB,iBAAiB,EAAE,MAAM,GACxB,OAAO,CAAC,eAAe,CAAC,CAqG1B"}