@fedify/fedify 2.0.7 → 2.0.9

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 (203) hide show
  1. package/dist/{assert-MZs1qjMx.js → assert-ddO5KLpe.mjs} +5 -9
  2. package/dist/{assert_equals-DSbWqCm3.js → assert_equals-Ew3jOFa3.mjs} +55 -69
  3. package/dist/{assert_instance_of-DHz7EHNU.js → assert_instance_of-C4Ri6VuN.mjs} +5 -9
  4. package/dist/{assert_not_equals-C80BG-_5.js → assert_not_equals--wG9hV7u.mjs} +6 -13
  5. package/dist/{assert_rejects-Ce45JcFg.js → assert_rejects-B-qJtC9Z.mjs} +6 -11
  6. package/dist/{assert_throws-BNXdRGWP.js → assert_throws-4NwKEy2q.mjs} +5 -10
  7. package/dist/{builder-DA7Qgx_F.js → builder-DDoQaGOu.mjs} +32 -41
  8. package/dist/{chunk-CGaQZ11T.cjs → chunk-DDcVe30Y.cjs} +23 -24
  9. package/dist/{chunk-DJNbSFdH.js → chunk-nlSIicah.js} +8 -8
  10. package/dist/{client-CoCIaTNO.js → client-A1UrnX6I.mjs} +9 -13
  11. package/dist/{client-BxMZiQaD.d.ts → client-AtlibPOU.d.ts} +1 -1
  12. package/dist/{client-C97KOq3x.d.cts → client-z-8dc-e1.d.cts} +1 -1
  13. package/dist/{collection-CcnIw1qY.js → collection-ChgDTHLz.mjs} +7 -12
  14. package/dist/compat/mod.cjs +5 -8
  15. package/dist/compat/mod.d.cts +78 -6
  16. package/dist/compat/mod.d.ts +78 -6
  17. package/dist/compat/mod.js +4 -8
  18. package/dist/compat/transformers.test.mjs +62 -0
  19. package/dist/{context-D3QkEtZd.d.cts → context-CNIt-Qn7.d.cts} +9 -18
  20. package/dist/{context-DZJhUmzF.d.ts → context-Dyg7P1qW.d.ts} +9 -18
  21. package/dist/{context-pa9aIrwp.js → context-Juj6bdHC.mjs} +7 -11
  22. package/dist/deno-CuVDEdyj.mjs +8 -0
  23. package/dist/{docloader-CJeSPcS_.js → docloader-BPq9yzC_.mjs} +8 -14
  24. package/dist/{esm-nLm00z9V.js → esm-DVILvP5e.mjs} +50 -89
  25. package/dist/federation/builder.test.d.mts +2 -0
  26. package/dist/federation/{builder.test.js → builder.test.mjs} +19 -38
  27. package/dist/federation/collection.test.d.mts +2 -0
  28. package/dist/federation/collection.test.mjs +21 -0
  29. package/dist/federation/handler.test.d.mts +2 -0
  30. package/dist/federation/{handler.test.js → handler.test.mjs} +26 -56
  31. package/dist/federation/idempotency.test.d.mts +2 -0
  32. package/dist/federation/{idempotency.test.js → idempotency.test.mjs} +31 -62
  33. package/dist/federation/inbox.test.d.mts +2 -0
  34. package/dist/federation/{inbox.test.js → inbox.test.mjs} +8 -12
  35. package/dist/federation/keycache.test.d.mts +2 -0
  36. package/dist/federation/{keycache.test.js → keycache.test.mjs} +13 -13
  37. package/dist/federation/kv.test.d.mts +2 -0
  38. package/dist/federation/{kv.test.js → kv.test.mjs} +11 -22
  39. package/dist/federation/middleware.test.d.mts +2 -0
  40. package/dist/federation/{middleware.test.js → middleware.test.mjs} +146 -225
  41. package/dist/federation/mod.cjs +327 -16
  42. package/dist/federation/mod.d.cts +3 -6
  43. package/dist/federation/mod.d.ts +3 -6
  44. package/dist/federation/mod.js +322 -13
  45. package/dist/federation/mq.test.d.mts +2 -0
  46. package/dist/federation/{mq.test.js → mq.test.mjs} +21 -35
  47. package/dist/federation/negotiation.test.d.mts +2 -0
  48. package/dist/federation/{negotiation.test.js → negotiation.test.mjs} +9 -16
  49. package/dist/federation/retry.test.d.mts +2 -0
  50. package/dist/federation/{retry.test.js → retry.test.mjs} +8 -11
  51. package/dist/federation/router.test.d.mts +2 -0
  52. package/dist/federation/{router.test.js → router.test.mjs} +11 -16
  53. package/dist/federation/send.test.d.mts +2 -0
  54. package/dist/federation/{send.test.js → send.test.mjs} +22 -29
  55. package/dist/federation/webfinger.test.d.mts +2 -0
  56. package/dist/federation/{webfinger.test.js → webfinger.test.mjs} +22 -55
  57. package/dist/{http-DkHdFfrc.d.ts → http-B2wiNmSo.d.ts} +1 -6
  58. package/dist/{http-B3vAjAtl.js → http-Bz7avX57.js} +39 -159
  59. package/dist/{http-Cz3MlXAZ.d.cts → http-C_tEAiZj.d.cts} +1 -6
  60. package/dist/{http-CjaLjnRN.js → http-DI213UHg.mjs} +31 -35
  61. package/dist/{http-CQ7TiYUI.cjs → http-DKBDoudA.cjs} +119 -233
  62. package/dist/{inbox-B33isX44.js → inbox-Bdn-CSRd.mjs} +18 -26
  63. package/dist/{key-Cga1p73u.js → key-DzJf84o7.mjs} +12 -19
  64. package/dist/{keycache-DRxpZ5r9.js → keycache-DaQ3ndaJ.mjs} +15 -10
  65. package/dist/{keys-ZbcByPg9.js → keys-CtZLJq76.mjs} +5 -9
  66. package/dist/{kv-QzKcOQgP.js → kv-BrZHNugx.mjs} +6 -10
  67. package/dist/{kv-BL4nlICN.d.cts → kv-CbLNp3zQ.d.cts} +1 -1
  68. package/dist/{kv-DXEUEP6z.d.ts → kv-GFYnFoOl.d.ts} +1 -1
  69. package/dist/{kv-cache-CFdy0BpZ.js → kv-cache-DBd7BezJ.js} +6 -13
  70. package/dist/{kv-cache--qyREO7e.cjs → kv-cache-Dj1Q7TiW.cjs} +27 -34
  71. package/dist/{kv-cache-El7We5sy.js → kv-cache-OWmRLHir.mjs} +4 -8
  72. package/dist/{ld-BWSOukKj.js → ld-DczS1fLK.mjs} +17 -31
  73. package/dist/middleware-B5CiOImA.mjs +5 -0
  74. package/dist/{middleware-CP7JdsGq.js → middleware-BKNu57ZI.js} +331 -365
  75. package/dist/middleware-C36TOX-2.cjs +4 -0
  76. package/dist/{middleware-Scz2k9eL.cjs → middleware-CyjmpK70.cjs} +523 -565
  77. package/dist/{middleware-BI1VCuPT.js → middleware-DoHz9oIo.mjs} +260 -292
  78. package/dist/{mod-DPkRU3EK.d.cts → mod-1xhgsHef.d.cts} +2 -2
  79. package/dist/{mod-DUWcVv49.d.ts → mod-BGtYJZKu.d.ts} +2 -2
  80. package/dist/{mod-DXsQakeS.d.cts → mod-Bld7oeqf.d.cts} +3 -3
  81. package/dist/{mod-DnSsduJF.d.ts → mod-BnAKGh2w.d.ts} +2 -2
  82. package/dist/{mod-CwZXZJ9d.d.ts → mod-DTOUyCce.d.ts} +3 -3
  83. package/dist/{mod-Di3W5OdP.d.cts → mod-DWoQffTD.d.cts} +2 -2
  84. package/dist/mod.cjs +29 -68
  85. package/dist/mod.d.cts +11 -14
  86. package/dist/mod.d.ts +11 -15
  87. package/dist/mod.js +17 -65
  88. package/dist/{negotiation-5NPJL6zp.js → negotiation-BehA2uul.mjs} +7 -11
  89. package/dist/nodeinfo/client.test.d.mts +2 -0
  90. package/dist/nodeinfo/{client.test.js → client.test.mjs} +22 -40
  91. package/dist/nodeinfo/handler.test.d.mts +2 -0
  92. package/dist/nodeinfo/{handler.test.js → handler.test.mjs} +13 -42
  93. package/dist/nodeinfo/mod.cjs +5 -8
  94. package/dist/nodeinfo/mod.d.cts +2 -3
  95. package/dist/nodeinfo/mod.d.ts +2 -3
  96. package/dist/nodeinfo/mod.js +4 -8
  97. package/dist/nodeinfo/types.test.d.mts +2 -0
  98. package/dist/nodeinfo/{types.test.js → types.test.mjs} +9 -16
  99. package/dist/otel/exporter.test.d.mts +2 -0
  100. package/dist/otel/{exporter.test.js → exporter.test.mjs} +117 -169
  101. package/dist/otel/mod.cjs +15 -20
  102. package/dist/otel/mod.d.cts +2 -2
  103. package/dist/otel/mod.d.ts +2 -2
  104. package/dist/otel/mod.js +8 -14
  105. package/dist/{owner-gd0Q9FuU.d.ts → owner-74ARJ5TL.d.ts} +1 -1
  106. package/dist/{owner-1AbPBOOZ.d.cts → owner-CptqhsOy.d.cts} +1 -1
  107. package/dist/{owner-HASxJJP1.js → owner-DXMGUEOr.mjs} +11 -16
  108. package/dist/{proof-BwfRl5J4.js → proof-C-7NljBU.js} +33 -59
  109. package/dist/{proof-BXt2Oi8t.js → proof-CEOujj0L.mjs} +21 -33
  110. package/dist/{proof-BYZ4hcgN.cjs → proof-DMu-6A_w.cjs} +133 -157
  111. package/dist/{retry-D4GJ670a.js → retry-Ddbq3AcK.mjs} +4 -7
  112. package/dist/{router-D9eI0s4b.js → router-CrMLXoOr.mjs} +4 -8
  113. package/dist/runtime/mod.cjs +11 -13
  114. package/dist/runtime/mod.d.cts +6 -2
  115. package/dist/runtime/mod.d.ts +0 -1
  116. package/dist/runtime/mod.js +4 -7
  117. package/dist/{send-BF3omx5-.js → send-DIfrLTB_.mjs} +8 -13
  118. package/dist/sig/http.test.d.mts +2 -0
  119. package/dist/sig/{http.test.js → http.test.mjs} +160 -199
  120. package/dist/sig/key.test.d.mts +2 -0
  121. package/dist/sig/{key.test.js → key.test.mjs} +11 -18
  122. package/dist/sig/ld.test.d.mts +2 -0
  123. package/dist/sig/{ld.test.js → ld.test.mjs} +22 -35
  124. package/dist/sig/mod.cjs +6 -9
  125. package/dist/sig/mod.d.cts +3 -3
  126. package/dist/sig/mod.d.ts +3 -3
  127. package/dist/sig/mod.js +5 -9
  128. package/dist/sig/owner.test.d.mts +2 -0
  129. package/dist/sig/{owner.test.js → owner.test.mjs} +19 -34
  130. package/dist/sig/proof.test.d.mts +2 -0
  131. package/dist/sig/{proof.test.js → proof.test.mjs} +16 -27
  132. package/dist/{std__assert-DWivtrGR.js → std__assert-Duiq_YC9.mjs} +12 -24
  133. package/dist/testing/{mod.d.ts → mod.d.mts} +26 -78
  134. package/dist/testing/mod.mjs +6 -0
  135. package/dist/{transformers-3g8GZwkZ.cjs → transformers-NeAONrAq.cjs} +20 -25
  136. package/dist/{transformers-C3FLHUd6.js → transformers-ve6e2xcg.js} +3 -7
  137. package/dist/{types-CPz01LGH.js → types-C37hquWI.mjs} +4 -7
  138. package/dist/{types-Cd_hszr_.cjs → types-KC4QAoxe.cjs} +29 -34
  139. package/dist/{types-C93Ob9cU.js → types-hvL8ElAs.js} +8 -13
  140. package/dist/utils/docloader.test.d.mts +2 -0
  141. package/dist/utils/{docloader.test.js → docloader.test.mjs} +14 -24
  142. package/dist/utils/kv-cache.test.d.mts +2 -0
  143. package/dist/utils/{kv-cache.test.js → kv-cache.test.mjs} +25 -40
  144. package/dist/utils/mod.cjs +5 -9
  145. package/dist/utils/mod.d.cts +1 -3
  146. package/dist/utils/mod.d.ts +1 -3
  147. package/dist/utils/mod.js +4 -9
  148. package/dist/vocab/cjs.test.d.mts +2 -0
  149. package/dist/vocab/cjs.test.mjs +14 -0
  150. package/dist/vocab/mod.cjs +10 -12
  151. package/dist/vocab/mod.js +3 -5
  152. package/package.json +7 -7
  153. package/dist/compat/transformers.test.d.ts +0 -3
  154. package/dist/compat/transformers.test.js +0 -87
  155. package/dist/compat-Bb4NuTUO.js +0 -4
  156. package/dist/compat-DmDDELst.cjs +0 -4
  157. package/dist/deno-CbQK8e-e.js +0 -121
  158. package/dist/federation/builder.test.d.ts +0 -3
  159. package/dist/federation/collection.test.d.ts +0 -3
  160. package/dist/federation/collection.test.js +0 -32
  161. package/dist/federation/handler.test.d.ts +0 -3
  162. package/dist/federation/idempotency.test.d.ts +0 -3
  163. package/dist/federation/inbox.test.d.ts +0 -3
  164. package/dist/federation/keycache.test.d.ts +0 -3
  165. package/dist/federation/kv.test.d.ts +0 -3
  166. package/dist/federation/middleware.test.d.ts +0 -3
  167. package/dist/federation/mq.test.d.ts +0 -3
  168. package/dist/federation/negotiation.test.d.ts +0 -3
  169. package/dist/federation/retry.test.d.ts +0 -3
  170. package/dist/federation/router.test.d.ts +0 -3
  171. package/dist/federation/send.test.d.ts +0 -3
  172. package/dist/federation/webfinger.test.d.ts +0 -3
  173. package/dist/federation-Bp3HI26G.cjs +0 -350
  174. package/dist/federation-DaMfqRm4.js +0 -332
  175. package/dist/middleware-CcXQzfn8.cjs +0 -12
  176. package/dist/middleware-CoeaBowW.js +0 -12
  177. package/dist/middleware-vH2jFwC6.js +0 -26
  178. package/dist/mod-Bh8mqlYw.d.cts +0 -9
  179. package/dist/mod-D6HodEq7.d.ts +0 -7
  180. package/dist/mod-DVwHUI_x.d.cts +0 -80
  181. package/dist/mod-DosD6NsG.d.ts +0 -82
  182. package/dist/mod-gq_Xfdz8.d.cts +0 -1
  183. package/dist/nodeinfo/client.test.d.ts +0 -3
  184. package/dist/nodeinfo/handler.test.d.ts +0 -3
  185. package/dist/nodeinfo/types.test.d.ts +0 -3
  186. package/dist/nodeinfo-DoESQxq5.js +0 -4
  187. package/dist/nodeinfo-DuMYTpbZ.cjs +0 -4
  188. package/dist/otel/exporter.test.d.ts +0 -3
  189. package/dist/runtime-c2Njxsry.cjs +0 -17
  190. package/dist/runtime-poamPCMb.js +0 -13
  191. package/dist/sig/http.test.d.ts +0 -3
  192. package/dist/sig/key.test.d.ts +0 -3
  193. package/dist/sig/ld.test.d.ts +0 -3
  194. package/dist/sig/owner.test.d.ts +0 -3
  195. package/dist/sig/proof.test.d.ts +0 -3
  196. package/dist/sig-BNhspNOf.js +0 -4
  197. package/dist/sig-vX39WyWI.cjs +0 -4
  198. package/dist/testing/mod.js +0 -10
  199. package/dist/utils/docloader.test.d.ts +0 -3
  200. package/dist/utils/kv-cache.test.d.ts +0 -3
  201. package/dist/utils-BQ9KqEK9.cjs +0 -4
  202. package/dist/utils-Dn5OPdSW.js +0 -4
  203. /package/dist/{mod-AGjRfPjT.d.ts → compat/transformers.test.d.mts} +0 -0
@@ -1,131 +1,17 @@
1
-
2
- const { Temporal } = require("@js-temporal/polyfill");
3
- const { URLPattern } = require("urlpattern-polyfill");
4
-
5
- const require_chunk = require('./chunk-CGaQZ11T.cjs');
6
- const __logtape_logtape = require_chunk.__toESM(require("@logtape/logtape"));
7
- const __fedify_vocab = require_chunk.__toESM(require("@fedify/vocab"));
8
- const __opentelemetry_api = require_chunk.__toESM(require("@opentelemetry/api"));
9
- const byte_encodings_hex = require_chunk.__toESM(require("byte-encodings/hex"));
10
- const __opentelemetry_semantic_conventions = require_chunk.__toESM(require("@opentelemetry/semantic-conventions"));
11
- const byte_encodings_base64 = require_chunk.__toESM(require("byte-encodings/base64"));
12
- const structured_field_values = require_chunk.__toESM(require("structured-field-values"));
13
- const __fedify_vocab_runtime = require_chunk.__toESM(require("@fedify/vocab-runtime"));
14
-
1
+ const { Temporal } = require("@js-temporal/polyfill");
2
+ const { URLPattern } = require("urlpattern-polyfill");
3
+ require("./chunk-DDcVe30Y.cjs");
4
+ let _logtape_logtape = require("@logtape/logtape");
5
+ let _fedify_vocab = require("@fedify/vocab");
6
+ let _opentelemetry_api = require("@opentelemetry/api");
7
+ let byte_encodings_hex = require("byte-encodings/hex");
8
+ let _fedify_vocab_runtime = require("@fedify/vocab-runtime");
9
+ let _opentelemetry_semantic_conventions = require("@opentelemetry/semantic-conventions");
10
+ let byte_encodings_base64 = require("byte-encodings/base64");
11
+ let structured_field_values = require("structured-field-values");
15
12
  //#region deno.json
16
13
  var name = "@fedify/fedify";
17
- var version = "2.0.7";
18
- var license = "MIT";
19
- var exports$1 = {
20
- ".": "./src/mod.ts",
21
- "./compat": "./src/compat/mod.ts",
22
- "./federation": "./src/federation/mod.ts",
23
- "./nodeinfo": "./src/nodeinfo/mod.ts",
24
- "./otel": "./src/otel/mod.ts",
25
- "./runtime": "./src/runtime/mod.ts",
26
- "./sig": "./src/sig/mod.ts",
27
- "./utils": "./src/utils/mod.ts",
28
- "./vocab": "./src/vocab/mod.ts"
29
- };
30
- var imports = {
31
- "@multiformats/base-x": "npm:@multiformats/base-x@^4.0.1",
32
- "@std/assert": "jsr:@std/assert@^0.226.0",
33
- "@std/url": "jsr:@std/url@^0.225.1",
34
- "asn1js": "npm:asn1js@^3.0.7",
35
- "fast-check": "npm:fast-check@^3.22.0",
36
- "fetch-mock": "npm:fetch-mock@^12.5.2",
37
- "json-canon": "npm:json-canon@^1.0.1",
38
- "jsonld": "npm:jsonld@^9.0.0",
39
- "pkijs": "npm:pkijs@^3.3.3",
40
- "structured-field-values": "npm:structured-field-values@^2.0.4",
41
- "uri-template-router": "npm:uri-template-router@^1.0.0",
42
- "url-template": "npm:url-template@^3.1.1"
43
- };
44
- var exclude = [
45
- ".test-report.xml",
46
- "apidoc/",
47
- "dist/",
48
- "node_modules/",
49
- "npm/",
50
- "pnpm-lock.yaml",
51
- "src/cfworkers/dist/",
52
- "src/cfworkers/fixtures/",
53
- "src/cfworkers/imports.ts",
54
- "src/cfworkers/README.md",
55
- "src/cfworkers/server.ts",
56
- "src/cfworkers/server.js",
57
- "src/cfworkers/server.js.map"
58
- ];
59
- var publish = { "exclude": [
60
- "**/*.test.ts",
61
- "src/testing/",
62
- "tsdown.config.ts",
63
- "scripts/",
64
- "wrangler.toml"
65
- ] };
66
- var tasks = {
67
- "codegen": "deno task -f @fedify/vocab compile",
68
- "cache": {
69
- "command": "deno cache src/mod.ts",
70
- "dependencies": ["codegen"]
71
- },
72
- "check": {
73
- "command": "deno fmt --check && deno lint && deno check src/**/*.ts",
74
- "dependencies": ["codegen"]
75
- },
76
- "test": {
77
- "command": "deno test --check --doc --allow-read --allow-write --allow-env --unstable-kv --trace-leaks --parallel",
78
- "dependencies": ["codegen"]
79
- },
80
- "coverage": "deno task test --clean --coverage && deno coverage --html coverage",
81
- "bench": {
82
- "command": "deno bench --allow-read --allow-write --allow-net --allow-env --allow-run --unstable-kv",
83
- "dependencies": ["codegen"]
84
- },
85
- "apidoc": {
86
- "command": "deno doc --html --name=Fedify --output=apidoc/ src/mod.ts",
87
- "dependencies": ["codegen"]
88
- },
89
- "publish": {
90
- "command": "deno publish",
91
- "dependencies": ["codegen"]
92
- },
93
- "pnpm:install": "pnpm install --silent",
94
- "pnpm:build": {
95
- "command": "pnpm exec tsdown",
96
- "dependencies": ["pnpm:build-vocab"]
97
- },
98
- "test:node": {
99
- "command": "cd dist/ && node --test",
100
- "dependencies": ["pnpm:build"]
101
- },
102
- "test:bun": {
103
- "command": "cd dist/ && bun test --timeout 60000",
104
- "dependencies": ["pnpm:build"]
105
- },
106
- "test:cfworkers": {
107
- "command": "pnpm exec wrangler deploy --dry-run --outdir src/cfworkers && node --import=tsx src/cfworkers/client.ts",
108
- "dependencies": ["pnpm:build"]
109
- },
110
- "test-all": { "dependencies": [
111
- "check",
112
- "test",
113
- "test:node",
114
- "test:bun",
115
- "test:cfworkers"
116
- ] }
117
- };
118
- var deno_default = {
119
- name,
120
- version,
121
- license,
122
- exports: exports$1,
123
- imports,
124
- exclude,
125
- publish,
126
- tasks
127
- };
128
-
14
+ var version = "2.0.9";
129
15
  //#endregion
130
16
  //#region src/sig/key.ts
131
17
  /**
@@ -141,8 +27,7 @@ function validateCryptoKey(key, type) {
141
27
  if (!key.extractable) throw new TypeError("The key is not extractable.");
142
28
  if (key.algorithm.name !== "RSASSA-PKCS1-v1_5" && key.algorithm.name !== "Ed25519") throw new TypeError("Currently only RSASSA-PKCS1-v1_5 and Ed25519 keys are supported. More algorithms will be added in the future!");
143
29
  if (key.algorithm.name === "RSASSA-PKCS1-v1_5") {
144
- const algorithm = key.algorithm;
145
- if (algorithm.hash.name !== "SHA-256") throw new TypeError("For compatibility with the existing Fediverse software (e.g., Mastodon), hash algorithm for RSASSA-PKCS1-v1_5 keys must be SHA-256.");
30
+ if (key.algorithm.hash.name !== "SHA-256") throw new TypeError("For compatibility with the existing Fediverse software (e.g., Mastodon), hash algorithm for RSASSA-PKCS1-v1_5 keys must be SHA-256.");
146
31
  }
147
32
  }
148
33
  /**
@@ -153,7 +38,7 @@ function validateCryptoKey(key, type) {
153
38
  * @throws {TypeError} If the algorithm is unsupported.
154
39
  */
155
40
  function generateCryptoKeyPair(algorithm) {
156
- if (algorithm == null) (0, __logtape_logtape.getLogger)([
41
+ if (algorithm == null) (0, _logtape_logtape.getLogger)([
157
42
  "fedify",
158
43
  "sig",
159
44
  "key"
@@ -221,11 +106,10 @@ async function importJwk(jwk, type) {
221
106
  * @since 1.3.0
222
107
  */
223
108
  function fetchKey(keyId, cls, options = {}) {
224
- const tracerProvider = options.tracerProvider ?? __opentelemetry_api.trace.getTracerProvider();
225
- const tracer = tracerProvider.getTracer(deno_default.name, deno_default.version);
109
+ const tracer = (options.tracerProvider ?? _opentelemetry_api.trace.getTracerProvider()).getTracer(name, version);
226
110
  keyId = typeof keyId === "string" ? new URL(keyId) : keyId;
227
111
  return tracer.startActiveSpan("activitypub.fetch_key", {
228
- kind: __opentelemetry_api.SpanKind.CLIENT,
112
+ kind: _opentelemetry_api.SpanKind.CLIENT,
229
113
  attributes: {
230
114
  "http.method": "GET",
231
115
  "url.full": keyId.href,
@@ -242,7 +126,7 @@ function fetchKey(keyId, cls, options = {}) {
242
126
  return result;
243
127
  } catch (e) {
244
128
  span.setStatus({
245
- code: __opentelemetry_api.SpanStatusCode.ERROR,
129
+ code: _opentelemetry_api.SpanStatusCode.ERROR,
246
130
  message: String(e)
247
131
  });
248
132
  throw e;
@@ -252,7 +136,7 @@ function fetchKey(keyId, cls, options = {}) {
252
136
  });
253
137
  }
254
138
  async function fetchKeyInternal(keyId, cls, { documentLoader, contextLoader, keyCache, tracerProvider } = {}) {
255
- const logger = (0, __logtape_logtape.getLogger)([
139
+ const logger = (0, _logtape_logtape.getLogger)([
256
140
  "fedify",
257
141
  "sig",
258
142
  "key"
@@ -278,8 +162,7 @@ async function fetchKeyInternal(keyId, cls, { documentLoader, contextLoader, key
278
162
  logger.debug("Fetching key {keyId} to verify signature...", { keyId });
279
163
  let document;
280
164
  try {
281
- const remoteDocument = await (documentLoader ?? (0, __fedify_vocab_runtime.getDocumentLoader)())(keyId);
282
- document = remoteDocument.document;
165
+ document = (await (documentLoader ?? (0, _fedify_vocab_runtime.getDocumentLoader)())(keyId)).document;
283
166
  } catch (_) {
284
167
  logger.debug("Failed to fetch key {keyId}.", { keyId });
285
168
  await keyCache?.set(cacheKey, null);
@@ -290,7 +173,7 @@ async function fetchKeyInternal(keyId, cls, { documentLoader, contextLoader, key
290
173
  }
291
174
  let object;
292
175
  try {
293
- object = await __fedify_vocab.Object.fromJsonLd(document, {
176
+ object = await _fedify_vocab.Object.fromJsonLd(document, {
294
177
  documentLoader,
295
178
  contextLoader,
296
179
  tracerProvider
@@ -303,8 +186,8 @@ async function fetchKeyInternal(keyId, cls, { documentLoader, contextLoader, key
303
186
  contextLoader,
304
187
  tracerProvider
305
188
  });
306
- } catch (e$1) {
307
- if (e$1 instanceof TypeError) {
189
+ } catch (e) {
190
+ if (e instanceof TypeError) {
308
191
  logger.debug("Failed to verify; key {keyId} returned an invalid object.", { keyId });
309
192
  await keyCache?.set(cacheKey, null);
310
193
  return {
@@ -312,13 +195,13 @@ async function fetchKeyInternal(keyId, cls, { documentLoader, contextLoader, key
312
195
  cached: false
313
196
  };
314
197
  }
315
- throw e$1;
198
+ throw e;
316
199
  }
317
200
  }
318
201
  let key = null;
319
202
  if (object instanceof cls) key = object;
320
- else if ((0, __fedify_vocab.isActor)(object)) {
321
- const keys = cls === __fedify_vocab.CryptographicKey ? object.getPublicKeys({
203
+ else if ((0, _fedify_vocab.isActor)(object)) {
204
+ const keys = cls === _fedify_vocab.CryptographicKey ? object.getPublicKeys({
322
205
  documentLoader,
323
206
  contextLoader,
324
207
  tracerProvider
@@ -375,9 +258,9 @@ async function fetchKeyInternal(keyId, cls, { documentLoader, contextLoader, key
375
258
  cached: false
376
259
  };
377
260
  }
378
-
379
261
  //#endregion
380
262
  //#region src/sig/http.ts
263
+ const DEFAULT_MAX_REDIRECTION = 20;
381
264
  /**
382
265
  * Signs a request using the given private key.
383
266
  * @param request The request to sign.
@@ -389,24 +272,22 @@ async function fetchKeyInternal(keyId, cls, { documentLoader, contextLoader, key
389
272
  */
390
273
  async function signRequest(request, privateKey, keyId, options = {}) {
391
274
  validateCryptoKey(privateKey, "private");
392
- const tracerProvider = options.tracerProvider ?? __opentelemetry_api.trace.getTracerProvider();
393
- const tracer = tracerProvider.getTracer(deno_default.name, deno_default.version);
394
- return await tracer.startActiveSpan("http_signatures.sign", async (span) => {
275
+ return await (options.tracerProvider ?? _opentelemetry_api.trace.getTracerProvider()).getTracer(name, version).startActiveSpan("http_signatures.sign", async (span) => {
395
276
  try {
396
277
  const spec = options.spec ?? "draft-cavage-http-signatures-12";
397
278
  let signed;
398
279
  if (spec === "rfc9421") signed = await signRequestRfc9421(request, privateKey, keyId, span, options.currentTime, options.body);
399
280
  else signed = await signRequestDraft(request, privateKey, keyId, span, options.currentTime, options.body);
400
281
  if (span.isRecording()) {
401
- span.setAttribute(__opentelemetry_semantic_conventions.ATTR_HTTP_REQUEST_METHOD, signed.method);
402
- span.setAttribute(__opentelemetry_semantic_conventions.ATTR_URL_FULL, signed.url);
403
- for (const [name$1, value] of signed.headers) span.setAttribute((0, __opentelemetry_semantic_conventions.ATTR_HTTP_REQUEST_HEADER)(name$1), value);
282
+ span.setAttribute(_opentelemetry_semantic_conventions.ATTR_HTTP_REQUEST_METHOD, signed.method);
283
+ span.setAttribute(_opentelemetry_semantic_conventions.ATTR_URL_FULL, signed.url);
284
+ for (const [name, value] of signed.headers) span.setAttribute((0, _opentelemetry_semantic_conventions.ATTR_HTTP_REQUEST_HEADER)(name), value);
404
285
  span.setAttribute("http_signatures.key_id", keyId.href);
405
286
  }
406
287
  return signed;
407
288
  } catch (error) {
408
289
  span.setStatus({
409
- code: __opentelemetry_api.SpanStatusCode.ERROR,
290
+ code: _opentelemetry_api.SpanStatusCode.ERROR,
410
291
  message: String(error)
411
292
  });
412
293
  throw error;
@@ -428,8 +309,8 @@ async function signRequestDraft(request, privateKey, keyId, span, currentTime, b
428
309
  }
429
310
  if (!headers.has("Date")) headers.set("Date", currentTime == null ? (/* @__PURE__ */ new Date()).toUTCString() : new Date(currentTime.toString()).toUTCString());
430
311
  const serialized = [["(request-target)", `${request.method.toLowerCase()} ${url.pathname}`], ...headers];
431
- const headerNames = serialized.map(([name$1]) => name$1);
432
- const message = serialized.map(([name$1, value]) => `${name$1}: ${value.trim()}`).join("\n");
312
+ const headerNames = serialized.map(([name]) => name);
313
+ const message = serialized.map(([name, value]) => `${name}: ${value.trim()}`).join("\n");
433
314
  const signature = await crypto.subtle.sign("RSASSA-PKCS1-v1_5", privateKey, new TextEncoder().encode(message));
434
315
  const sigHeader = `keyId="${keyId.href}",algorithm="rsa-sha256",headers="${headerNames.join(" ")}",signature="${(0, byte_encodings_base64.encodeBase64)(signature)}"`;
435
316
  headers.set("Signature", sigHeader);
@@ -486,9 +367,7 @@ function createRfc9421SignatureBase(request, components, parameters) {
486
367
  * @returns The formatted signature string.
487
368
  */
488
369
  function formatRfc9421Signature(signature, components, parameters) {
489
- const signatureInputValue = `sig1=("${components.join("\" \"")}");${parameters}`;
490
- const signatureValue = `sig1=:${(0, byte_encodings_base64.encodeBase64)(signature)}:`;
491
- return [signatureInputValue, signatureValue];
370
+ return [`sig1=("${components.join("\" \"")}");${parameters}`, `sig1=:${(0, byte_encodings_base64.encodeBase64)(signature)}:`];
492
371
  }
493
372
  /**
494
373
  * Parse RFC 9421 Signature-Input header.
@@ -500,7 +379,7 @@ function parseRfc9421SignatureInput(signatureInput) {
500
379
  try {
501
380
  dict = (0, structured_field_values.decodeDict)(signatureInput);
502
381
  } catch (error) {
503
- (0, __logtape_logtape.getLogger)([
382
+ (0, _logtape_logtape.getLogger)([
504
383
  "fedify",
505
384
  "sig",
506
385
  "http"
@@ -535,7 +414,7 @@ function parseRfc9421Signature(signature) {
535
414
  try {
536
415
  dict = (0, structured_field_values.decodeDict)(signature);
537
416
  } catch (error) {
538
- (0, __logtape_logtape.getLogger)([
417
+ (0, _logtape_logtape.getLogger)([
539
418
  "fedify",
540
419
  "sig",
541
420
  "http"
@@ -618,13 +497,11 @@ const supportedHashAlgorithms = {
618
497
  * could not be verified.
619
498
  */
620
499
  async function verifyRequest(request, options = {}) {
621
- const tracerProvider = options.tracerProvider ?? __opentelemetry_api.trace.getTracerProvider();
622
- const tracer = tracerProvider.getTracer(deno_default.name, deno_default.version);
623
- return await tracer.startActiveSpan("http_signatures.verify", async (span) => {
500
+ return await (options.tracerProvider ?? _opentelemetry_api.trace.getTracerProvider()).getTracer(name, version).startActiveSpan("http_signatures.verify", async (span) => {
624
501
  if (span.isRecording()) {
625
- span.setAttribute(__opentelemetry_semantic_conventions.ATTR_HTTP_REQUEST_METHOD, request.method);
626
- span.setAttribute(__opentelemetry_semantic_conventions.ATTR_URL_FULL, request.url);
627
- for (const [name$1, value] of request.headers) span.setAttribute((0, __opentelemetry_semantic_conventions.ATTR_HTTP_REQUEST_HEADER)(name$1), value);
502
+ span.setAttribute(_opentelemetry_semantic_conventions.ATTR_HTTP_REQUEST_METHOD, request.method);
503
+ span.setAttribute(_opentelemetry_semantic_conventions.ATTR_URL_FULL, request.url);
504
+ for (const [name, value] of request.headers) span.setAttribute((0, _opentelemetry_semantic_conventions.ATTR_HTTP_REQUEST_HEADER)(name), value);
628
505
  }
629
506
  try {
630
507
  let spec = options.spec;
@@ -632,11 +509,11 @@ async function verifyRequest(request, options = {}) {
632
509
  let key;
633
510
  if (spec === "rfc9421") key = await verifyRequestRfc9421(request, span, options);
634
511
  else key = await verifyRequestDraft(request, span, options);
635
- if (key == null) span.setStatus({ code: __opentelemetry_api.SpanStatusCode.ERROR });
512
+ if (key == null) span.setStatus({ code: _opentelemetry_api.SpanStatusCode.ERROR });
636
513
  return key;
637
514
  } catch (error) {
638
515
  span.setStatus({
639
- code: __opentelemetry_api.SpanStatusCode.ERROR,
516
+ code: _opentelemetry_api.SpanStatusCode.ERROR,
640
517
  message: String(error)
641
518
  });
642
519
  throw error;
@@ -646,7 +523,7 @@ async function verifyRequest(request, options = {}) {
646
523
  });
647
524
  }
648
525
  async function verifyRequestDraft(request, span, { documentLoader, contextLoader, timeWindow, currentTime, keyCache, tracerProvider } = {}) {
649
- const logger = (0, __logtape_logtape.getLogger)([
526
+ const logger = (0, _logtape_logtape.getLogger)([
650
527
  "fedify",
651
528
  "sig",
652
529
  "http"
@@ -791,7 +668,7 @@ async function verifyRequestDraft(request, span, { documentLoader, contextLoader
791
668
  const { keyId, headers, signature } = sigValues;
792
669
  span?.setAttribute("http_signatures.key_id", keyId);
793
670
  if ("algorithm" in sigValues) span?.setAttribute("http_signatures.algorithm", sigValues.algorithm);
794
- const { key, cached } = await fetchKey(new URL(keyId), __fedify_vocab.CryptographicKey, {
671
+ const { key, cached } = await fetchKey(new URL(keyId), _fedify_vocab.CryptographicKey, {
795
672
  documentLoader,
796
673
  contextLoader,
797
674
  keyCache,
@@ -807,11 +684,10 @@ async function verifyRequestDraft(request, span, { documentLoader, contextLoader
807
684
  logger.debug("Failed to verify; required headers missing in the Signature header: {headers}.", { headers });
808
685
  return null;
809
686
  }
810
- const message = headerNames.map((name$1) => `${name$1}: ` + (name$1 === "(request-target)" ? `${request.method.toLowerCase()} ${new URL(request.url).pathname}` : name$1 === "(created)" ? sigValues.created ?? "" : name$1 === "(expires)" ? sigValues.expires ?? "" : name$1 === "host" ? request.headers.get("host") ?? new URL(request.url).host : request.headers.get(name$1))).join("\n");
687
+ const message = headerNames.map((name) => `${name}: ` + (name === "(request-target)" ? `${request.method.toLowerCase()} ${new URL(request.url).pathname}` : name === "(created)" ? sigValues.created ?? "" : name === "(expires)" ? sigValues.expires ?? "" : name === "host" ? request.headers.get("host") ?? new URL(request.url).host : request.headers.get(name))).join("\n");
811
688
  const sig = (0, byte_encodings_base64.decodeBase64)(signature);
812
689
  span?.setAttribute("http_signatures.signature", (0, byte_encodings_hex.encodeHex)(sig));
813
- const verified = await crypto.subtle.verify("RSASSA-PKCS1-v1_5", key.publicKey, sig, new TextEncoder().encode(message));
814
- if (!verified) {
690
+ if (!await crypto.subtle.verify("RSASSA-PKCS1-v1_5", key.publicKey, sig, new TextEncoder().encode(message))) {
815
691
  if (cached) {
816
692
  logger.debug("Failed to verify with the cached key {keyId}; signature {signature} is invalid. Retrying with the freshly fetched key...", {
817
693
  keyId,
@@ -825,7 +701,7 @@ async function verifyRequestDraft(request, span, { documentLoader, contextLoader
825
701
  currentTime,
826
702
  keyCache: {
827
703
  get: () => Promise.resolve(void 0),
828
- set: async (keyId$1, key$1) => await keyCache?.set(keyId$1, key$1)
704
+ set: async (keyId, key) => await keyCache?.set(keyId, key)
829
705
  }
830
706
  });
831
707
  }
@@ -900,7 +776,7 @@ async function verifyRfc9421ContentDigest(digestHeader, body) {
900
776
  return false;
901
777
  }
902
778
  async function verifyRequestRfc9421(request, span, { documentLoader, contextLoader, timeWindow, currentTime, keyCache, tracerProvider } = {}) {
903
- const logger = (0, __logtape_logtape.getLogger)([
779
+ const logger = (0, _logtape_logtape.getLogger)([
904
780
  "fedify",
905
781
  "sig",
906
782
  "http"
@@ -975,16 +851,14 @@ async function verifyRequestRfc9421(request, span, { documentLoader, contextLoad
975
851
  logger.debug("Failed to verify; Content-Digest header required but not found.", { components: sigInput.components });
976
852
  continue;
977
853
  }
978
- const body = await request.arrayBuffer();
979
- const digestValid = await verifyRfc9421ContentDigest(contentDigestHeader, body);
980
- if (!digestValid) {
854
+ if (!await verifyRfc9421ContentDigest(contentDigestHeader, await request.arrayBuffer())) {
981
855
  logger.debug("Failed to verify; Content-Digest verification failed.", { contentDigest: contentDigestHeader });
982
856
  continue;
983
857
  }
984
858
  }
985
859
  span?.setAttribute("http_signatures.key_id", sigInput.keyId);
986
860
  span?.setAttribute("http_signatures.created", sigInput.created.toString());
987
- const { key, cached } = await fetchKey(new URL(sigInput.keyId), __fedify_vocab.CryptographicKey, {
861
+ const { key, cached } = await fetchKey(new URL(sigInput.keyId), _fedify_vocab.CryptographicKey, {
988
862
  documentLoader,
989
863
  contextLoader,
990
864
  keyCache,
@@ -1023,8 +897,7 @@ async function verifyRequestRfc9421(request, span, { documentLoader, contextLoad
1023
897
  const signatureBaseBytes = new TextEncoder().encode(signatureBase);
1024
898
  span?.setAttribute("http_signatures.signature", (0, byte_encodings_hex.encodeHex)(sigBytes));
1025
899
  try {
1026
- const verified = await crypto.subtle.verify(algorithm, key.publicKey, sigBytes.slice(), signatureBaseBytes);
1027
- if (verified) {
900
+ if (await crypto.subtle.verify(algorithm, key.publicKey, sigBytes.slice(), signatureBaseBytes)) {
1028
901
  validKey = key;
1029
902
  break;
1030
903
  } else if (cached) {
@@ -1036,7 +909,7 @@ async function verifyRequestRfc9421(request, span, { documentLoader, contextLoad
1036
909
  currentTime,
1037
910
  keyCache: {
1038
911
  get: () => Promise.resolve(void 0),
1039
- set: async (keyId, key$1) => await keyCache?.set(keyId, key$1)
912
+ set: async (keyId, key) => await keyCache?.set(keyId, key)
1040
913
  },
1041
914
  spec: "rfc9421"
1042
915
  });
@@ -1089,7 +962,11 @@ function createRedirectRequest(request, location, body) {
1089
962
  * @since 1.6.0
1090
963
  */
1091
964
  async function doubleKnock(request, identity, options = {}) {
965
+ return await doubleKnockInternal(request, identity, options);
966
+ }
967
+ async function doubleKnockInternal(request, identity, options, redirected = 0, visited = /* @__PURE__ */ new Set()) {
1092
968
  const { specDeterminer, log, tracerProvider, signal } = options;
969
+ visited.add(request.url);
1093
970
  const origin = new URL(request.url).origin;
1094
971
  const firstTrySpec = specDeterminer == null ? "rfc9421" : await specDeterminer.determineSpec(origin);
1095
972
  const body = options.body !== void 0 ? options.body : request.method !== "GET" && request.method !== "HEAD" ? await request.clone().arrayBuffer() : null;
@@ -1104,14 +981,16 @@ async function doubleKnock(request, identity, options = {}) {
1104
981
  signal
1105
982
  });
1106
983
  if (response.status >= 300 && response.status < 400 && response.headers.has("Location")) {
1107
- const location = response.headers.get("Location");
1108
- return doubleKnock(createRedirectRequest(request, location, body), identity, {
984
+ if (redirected >= DEFAULT_MAX_REDIRECTION) throw new _fedify_vocab_runtime.FetchError(request.url, `Too many redirections (${redirected + 1})`);
985
+ const redirectRequest = createRedirectRequest(request, response.headers.get("Location"), body);
986
+ if (visited.has(redirectRequest.url)) throw new _fedify_vocab_runtime.FetchError(request.url, `Redirect loop detected: ${redirectRequest.url}`);
987
+ return doubleKnockInternal(redirectRequest, identity, {
1109
988
  ...options,
1110
989
  body
1111
- });
990
+ }, redirected + 1, visited);
1112
991
  } else if (response.status === 400 || response.status === 401 || response.status > 401) {
1113
992
  const spec = firstTrySpec === "draft-cavage-http-signatures-12" ? "rfc9421" : "draft-cavage-http-signatures-12";
1114
- (0, __logtape_logtape.getLogger)([
993
+ (0, _logtape_logtape.getLogger)([
1115
994
  "fedify",
1116
995
  "sig",
1117
996
  "http"
@@ -1132,11 +1011,13 @@ async function doubleKnock(request, identity, options = {}) {
1132
1011
  signal
1133
1012
  });
1134
1013
  if (response.status >= 300 && response.status < 400 && response.headers.has("Location")) {
1135
- const location = response.headers.get("Location");
1136
- return doubleKnock(createRedirectRequest(request, location, body), identity, {
1014
+ if (redirected >= DEFAULT_MAX_REDIRECTION) throw new _fedify_vocab_runtime.FetchError(request.url, `Too many redirections (${redirected + 1})`);
1015
+ const redirectRequest = createRedirectRequest(request, response.headers.get("Location"), body);
1016
+ if (visited.has(redirectRequest.url)) throw new _fedify_vocab_runtime.FetchError(request.url, `Redirect loop detected: ${redirectRequest.url}`);
1017
+ return doubleKnockInternal(redirectRequest, identity, {
1137
1018
  ...options,
1138
1019
  body
1139
- });
1020
+ }, redirected + 1, visited);
1140
1021
  } else if (response.status !== 400 && response.status !== 401) await specDeterminer?.rememberSpec(origin, spec);
1141
1022
  } else await specDeterminer?.rememberSpec(origin, firstTrySpec);
1142
1023
  return response;
@@ -1168,59 +1049,64 @@ function timingSafeEqual(a, b) {
1168
1049
  result |= lenA ^ lenB;
1169
1050
  return result === 0;
1170
1051
  }
1171
-
1172
1052
  //#endregion
1173
- Object.defineProperty(exports, 'deno_default', {
1174
- enumerable: true,
1175
- get: function () {
1176
- return deno_default;
1177
- }
1053
+ Object.defineProperty(exports, "doubleKnock", {
1054
+ enumerable: true,
1055
+ get: function() {
1056
+ return doubleKnock;
1057
+ }
1178
1058
  });
1179
- Object.defineProperty(exports, 'doubleKnock', {
1180
- enumerable: true,
1181
- get: function () {
1182
- return doubleKnock;
1183
- }
1059
+ Object.defineProperty(exports, "exportJwk", {
1060
+ enumerable: true,
1061
+ get: function() {
1062
+ return exportJwk;
1063
+ }
1184
1064
  });
1185
- Object.defineProperty(exports, 'exportJwk', {
1186
- enumerable: true,
1187
- get: function () {
1188
- return exportJwk;
1189
- }
1065
+ Object.defineProperty(exports, "fetchKey", {
1066
+ enumerable: true,
1067
+ get: function() {
1068
+ return fetchKey;
1069
+ }
1190
1070
  });
1191
- Object.defineProperty(exports, 'fetchKey', {
1192
- enumerable: true,
1193
- get: function () {
1194
- return fetchKey;
1195
- }
1071
+ Object.defineProperty(exports, "generateCryptoKeyPair", {
1072
+ enumerable: true,
1073
+ get: function() {
1074
+ return generateCryptoKeyPair;
1075
+ }
1196
1076
  });
1197
- Object.defineProperty(exports, 'generateCryptoKeyPair', {
1198
- enumerable: true,
1199
- get: function () {
1200
- return generateCryptoKeyPair;
1201
- }
1077
+ Object.defineProperty(exports, "importJwk", {
1078
+ enumerable: true,
1079
+ get: function() {
1080
+ return importJwk;
1081
+ }
1202
1082
  });
1203
- Object.defineProperty(exports, 'importJwk', {
1204
- enumerable: true,
1205
- get: function () {
1206
- return importJwk;
1207
- }
1083
+ Object.defineProperty(exports, "name", {
1084
+ enumerable: true,
1085
+ get: function() {
1086
+ return name;
1087
+ }
1088
+ });
1089
+ Object.defineProperty(exports, "signRequest", {
1090
+ enumerable: true,
1091
+ get: function() {
1092
+ return signRequest;
1093
+ }
1208
1094
  });
1209
- Object.defineProperty(exports, 'signRequest', {
1210
- enumerable: true,
1211
- get: function () {
1212
- return signRequest;
1213
- }
1095
+ Object.defineProperty(exports, "validateCryptoKey", {
1096
+ enumerable: true,
1097
+ get: function() {
1098
+ return validateCryptoKey;
1099
+ }
1214
1100
  });
1215
- Object.defineProperty(exports, 'validateCryptoKey', {
1216
- enumerable: true,
1217
- get: function () {
1218
- return validateCryptoKey;
1219
- }
1101
+ Object.defineProperty(exports, "verifyRequest", {
1102
+ enumerable: true,
1103
+ get: function() {
1104
+ return verifyRequest;
1105
+ }
1106
+ });
1107
+ Object.defineProperty(exports, "version", {
1108
+ enumerable: true,
1109
+ get: function() {
1110
+ return version;
1111
+ }
1220
1112
  });
1221
- Object.defineProperty(exports, 'verifyRequest', {
1222
- enumerable: true,
1223
- get: function () {
1224
- return verifyRequest;
1225
- }
1226
- });