was-teaching-server 0.9.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 (295) hide show
  1. package/CHANGELOG.md +1432 -0
  2. package/LICENSE +661 -0
  3. package/README.md +305 -0
  4. package/common/css/materialize.1.0.0.min.css +13 -0
  5. package/dist/auth-header-hooks.d.ts +84 -0
  6. package/dist/auth-header-hooks.d.ts.map +1 -0
  7. package/dist/auth-header-hooks.js +136 -0
  8. package/dist/auth-header-hooks.js.map +1 -0
  9. package/dist/authorize.d.ts +45 -0
  10. package/dist/authorize.d.ts.map +1 -0
  11. package/dist/authorize.js +76 -0
  12. package/dist/authorize.js.map +1 -0
  13. package/dist/backends/filesystem.d.ts +1179 -0
  14. package/dist/backends/filesystem.d.ts.map +1 -0
  15. package/dist/backends/filesystem.js +2727 -0
  16. package/dist/backends/filesystem.js.map +1 -0
  17. package/dist/backends/postgres.d.ts +833 -0
  18. package/dist/backends/postgres.d.ts.map +1 -0
  19. package/dist/backends/postgres.js +2164 -0
  20. package/dist/backends/postgres.js.map +1 -0
  21. package/dist/backends/postgresSchema.d.ts +36 -0
  22. package/dist/backends/postgresSchema.d.ts.map +1 -0
  23. package/dist/backends/postgresSchema.js +203 -0
  24. package/dist/backends/postgresSchema.js.map +1 -0
  25. package/dist/config.default.d.ts +360 -0
  26. package/dist/config.default.d.ts.map +1 -0
  27. package/dist/config.default.js +493 -0
  28. package/dist/config.default.js.map +1 -0
  29. package/dist/corsProxy.d.ts +45 -0
  30. package/dist/corsProxy.d.ts.map +1 -0
  31. package/dist/corsProxy.js +278 -0
  32. package/dist/corsProxy.js.map +1 -0
  33. package/dist/digest.d.ts +45 -0
  34. package/dist/digest.d.ts.map +1 -0
  35. package/dist/digest.js +174 -0
  36. package/dist/digest.js.map +1 -0
  37. package/dist/errors.d.ts +654 -0
  38. package/dist/errors.d.ts.map +1 -0
  39. package/dist/errors.js +960 -0
  40. package/dist/errors.js.map +1 -0
  41. package/dist/index.d.ts +22 -0
  42. package/dist/index.d.ts.map +1 -0
  43. package/dist/index.js +21 -0
  44. package/dist/index.js.map +1 -0
  45. package/dist/lib/atomicFile.d.ts +61 -0
  46. package/dist/lib/atomicFile.d.ts.map +1 -0
  47. package/dist/lib/atomicFile.js +150 -0
  48. package/dist/lib/atomicFile.js.map +1 -0
  49. package/dist/lib/backendRegistry.d.ts +59 -0
  50. package/dist/lib/backendRegistry.d.ts.map +1 -0
  51. package/dist/lib/backendRegistry.js +92 -0
  52. package/dist/lib/backendRegistry.js.map +1 -0
  53. package/dist/lib/backendUsage.d.ts +28 -0
  54. package/dist/lib/backendUsage.d.ts.map +1 -0
  55. package/dist/lib/backendUsage.js +55 -0
  56. package/dist/lib/backendUsage.js.map +1 -0
  57. package/dist/lib/backends.d.ts +142 -0
  58. package/dist/lib/backends.d.ts.map +1 -0
  59. package/dist/lib/backends.js +272 -0
  60. package/dist/lib/backends.js.map +1 -0
  61. package/dist/lib/blindedIndex.d.ts +156 -0
  62. package/dist/lib/blindedIndex.d.ts.map +1 -0
  63. package/dist/lib/blindedIndex.js +338 -0
  64. package/dist/lib/blindedIndex.js.map +1 -0
  65. package/dist/lib/collectionDescription.d.ts +33 -0
  66. package/dist/lib/collectionDescription.d.ts.map +1 -0
  67. package/dist/lib/collectionDescription.js +21 -0
  68. package/dist/lib/collectionDescription.js.map +1 -0
  69. package/dist/lib/cursor.d.ts +18 -0
  70. package/dist/lib/cursor.d.ts.map +1 -0
  71. package/dist/lib/cursor.js +50 -0
  72. package/dist/lib/cursor.js.map +1 -0
  73. package/dist/lib/edvEnvelope.d.ts +50 -0
  74. package/dist/lib/edvEnvelope.d.ts.map +1 -0
  75. package/dist/lib/edvEnvelope.js +106 -0
  76. package/dist/lib/edvEnvelope.js.map +1 -0
  77. package/dist/lib/encryption.d.ts +192 -0
  78. package/dist/lib/encryption.d.ts.map +1 -0
  79. package/dist/lib/encryption.js +383 -0
  80. package/dist/lib/encryption.js.map +1 -0
  81. package/dist/lib/etag.d.ts +33 -0
  82. package/dist/lib/etag.d.ts.map +1 -0
  83. package/dist/lib/etag.js +36 -0
  84. package/dist/lib/etag.js.map +1 -0
  85. package/dist/lib/exportManifest.d.ts +29 -0
  86. package/dist/lib/exportManifest.d.ts.map +1 -0
  87. package/dist/lib/exportManifest.js +77 -0
  88. package/dist/lib/exportManifest.js.map +1 -0
  89. package/dist/lib/importTar.d.ts +81 -0
  90. package/dist/lib/importTar.d.ts.map +1 -0
  91. package/dist/lib/importTar.js +301 -0
  92. package/dist/lib/importTar.js.map +1 -0
  93. package/dist/lib/isJson.d.ts +16 -0
  94. package/dist/lib/isJson.d.ts.map +1 -0
  95. package/dist/lib/isJson.js +17 -0
  96. package/dist/lib/isJson.js.map +1 -0
  97. package/dist/lib/keyEpoch.d.ts +38 -0
  98. package/dist/lib/keyEpoch.d.ts.map +1 -0
  99. package/dist/lib/keyEpoch.js +75 -0
  100. package/dist/lib/keyEpoch.js.map +1 -0
  101. package/dist/lib/keyedMutex.d.ts +28 -0
  102. package/dist/lib/keyedMutex.d.ts.map +1 -0
  103. package/dist/lib/keyedMutex.js +45 -0
  104. package/dist/lib/keyedMutex.js.map +1 -0
  105. package/dist/lib/kmsModule.d.ts +62 -0
  106. package/dist/lib/kmsModule.d.ts.map +1 -0
  107. package/dist/lib/kmsModule.js +327 -0
  108. package/dist/lib/kmsModule.js.map +1 -0
  109. package/dist/lib/kmsRecordCipher.d.ts +82 -0
  110. package/dist/lib/kmsRecordCipher.d.ts.map +1 -0
  111. package/dist/lib/kmsRecordCipher.js +226 -0
  112. package/dist/lib/kmsRecordCipher.js.map +1 -0
  113. package/dist/lib/pagination.d.ts +19 -0
  114. package/dist/lib/pagination.d.ts.map +1 -0
  115. package/dist/lib/pagination.js +21 -0
  116. package/dist/lib/pagination.js.map +1 -0
  117. package/dist/lib/paths.d.ts +273 -0
  118. package/dist/lib/paths.d.ts.map +1 -0
  119. package/dist/lib/paths.js +270 -0
  120. package/dist/lib/paths.js.map +1 -0
  121. package/dist/lib/preconditions.d.ts +65 -0
  122. package/dist/lib/preconditions.d.ts.map +1 -0
  123. package/dist/lib/preconditions.js +112 -0
  124. package/dist/lib/preconditions.js.map +1 -0
  125. package/dist/lib/resourceFileName.d.ts +41 -0
  126. package/dist/lib/resourceFileName.d.ts.map +1 -0
  127. package/dist/lib/resourceFileName.js +58 -0
  128. package/dist/lib/resourceFileName.js.map +1 -0
  129. package/dist/lib/revocations.d.ts +49 -0
  130. package/dist/lib/revocations.d.ts.map +1 -0
  131. package/dist/lib/revocations.js +86 -0
  132. package/dist/lib/revocations.js.map +1 -0
  133. package/dist/lib/validateDid.d.ts +19 -0
  134. package/dist/lib/validateDid.d.ts.map +1 -0
  135. package/dist/lib/validateDid.js +35 -0
  136. package/dist/lib/validateDid.js.map +1 -0
  137. package/dist/lib/validateId.d.ts +66 -0
  138. package/dist/lib/validateId.d.ts.map +1 -0
  139. package/dist/lib/validateId.js +126 -0
  140. package/dist/lib/validateId.js.map +1 -0
  141. package/dist/plugin.d.ts +115 -0
  142. package/dist/plugin.d.ts.map +1 -0
  143. package/dist/plugin.js +134 -0
  144. package/dist/plugin.js.map +1 -0
  145. package/dist/policy.d.ts +78 -0
  146. package/dist/policy.d.ts.map +1 -0
  147. package/dist/policy.js +115 -0
  148. package/dist/policy.js.map +1 -0
  149. package/dist/provisioning.d.ts +38 -0
  150. package/dist/provisioning.d.ts.map +1 -0
  151. package/dist/provisioning.js +72 -0
  152. package/dist/provisioning.js.map +1 -0
  153. package/dist/requests/BackendRequest.d.ts +61 -0
  154. package/dist/requests/BackendRequest.d.ts.map +1 -0
  155. package/dist/requests/BackendRequest.js +152 -0
  156. package/dist/requests/BackendRequest.js.map +1 -0
  157. package/dist/requests/CollectionRequest.d.ts +234 -0
  158. package/dist/requests/CollectionRequest.d.ts.map +1 -0
  159. package/dist/requests/CollectionRequest.js +705 -0
  160. package/dist/requests/CollectionRequest.js.map +1 -0
  161. package/dist/requests/KeyRequest.d.ts +115 -0
  162. package/dist/requests/KeyRequest.d.ts.map +1 -0
  163. package/dist/requests/KeyRequest.js +468 -0
  164. package/dist/requests/KeyRequest.js.map +1 -0
  165. package/dist/requests/KeystoreRequest.d.ts +99 -0
  166. package/dist/requests/KeystoreRequest.d.ts.map +1 -0
  167. package/dist/requests/KeystoreRequest.js +247 -0
  168. package/dist/requests/KeystoreRequest.js.map +1 -0
  169. package/dist/requests/PolicyRequest.d.ts +53 -0
  170. package/dist/requests/PolicyRequest.d.ts.map +1 -0
  171. package/dist/requests/PolicyRequest.js +124 -0
  172. package/dist/requests/PolicyRequest.js.map +1 -0
  173. package/dist/requests/ResourceRequest.d.ts +134 -0
  174. package/dist/requests/ResourceRequest.d.ts.map +1 -0
  175. package/dist/requests/ResourceRequest.js +548 -0
  176. package/dist/requests/ResourceRequest.js.map +1 -0
  177. package/dist/requests/RevocationRequest.d.ts +67 -0
  178. package/dist/requests/RevocationRequest.d.ts.map +1 -0
  179. package/dist/requests/RevocationRequest.js +187 -0
  180. package/dist/requests/RevocationRequest.js.map +1 -0
  181. package/dist/requests/SpaceRequest.d.ts +204 -0
  182. package/dist/requests/SpaceRequest.d.ts.map +1 -0
  183. package/dist/requests/SpaceRequest.js +520 -0
  184. package/dist/requests/SpaceRequest.js.map +1 -0
  185. package/dist/requests/SpacesRepositoryRequest.d.ts +50 -0
  186. package/dist/requests/SpacesRepositoryRequest.d.ts.map +1 -0
  187. package/dist/requests/SpacesRepositoryRequest.js +159 -0
  188. package/dist/requests/SpacesRepositoryRequest.js.map +1 -0
  189. package/dist/requests/collectionContext.d.ts +21 -0
  190. package/dist/requests/collectionContext.d.ts.map +1 -0
  191. package/dist/requests/collectionContext.js +30 -0
  192. package/dist/requests/collectionContext.js.map +1 -0
  193. package/dist/requests/controllerConsent.d.ts +58 -0
  194. package/dist/requests/controllerConsent.d.ts.map +1 -0
  195. package/dist/requests/controllerConsent.js +73 -0
  196. package/dist/requests/controllerConsent.js.map +1 -0
  197. package/dist/requests/keystoreContext.d.ts +68 -0
  198. package/dist/requests/keystoreContext.d.ts.map +1 -0
  199. package/dist/requests/keystoreContext.js +87 -0
  200. package/dist/requests/keystoreContext.js.map +1 -0
  201. package/dist/requests/resourceInput.d.ts +19 -0
  202. package/dist/requests/resourceInput.d.ts.map +1 -0
  203. package/dist/requests/resourceInput.js +102 -0
  204. package/dist/requests/resourceInput.js.map +1 -0
  205. package/dist/requests/spaceContext.d.ts +127 -0
  206. package/dist/requests/spaceContext.d.ts.map +1 -0
  207. package/dist/requests/spaceContext.js +201 -0
  208. package/dist/requests/spaceContext.js.map +1 -0
  209. package/dist/routes.d.ts +55 -0
  210. package/dist/routes.d.ts.map +1 -0
  211. package/dist/routes.js +306 -0
  212. package/dist/routes.js.map +1 -0
  213. package/dist/server.d.ts +20 -0
  214. package/dist/server.d.ts.map +1 -0
  215. package/dist/server.js +60 -0
  216. package/dist/server.js.map +1 -0
  217. package/dist/start.d.ts +7 -0
  218. package/dist/start.d.ts.map +1 -0
  219. package/dist/start.js +61 -0
  220. package/dist/start.js.map +1 -0
  221. package/dist/storage.d.ts +29 -0
  222. package/dist/storage.d.ts.map +1 -0
  223. package/dist/storage.js +47 -0
  224. package/dist/storage.js.map +1 -0
  225. package/dist/types.d.ts +915 -0
  226. package/dist/types.d.ts.map +1 -0
  227. package/dist/types.js +2 -0
  228. package/dist/types.js.map +1 -0
  229. package/dist/views/home.hbs +9 -0
  230. package/dist/views/templates/main.hbs +12 -0
  231. package/dist/zcap.d.ts +267 -0
  232. package/dist/zcap.d.ts.map +1 -0
  233. package/dist/zcap.js +478 -0
  234. package/dist/zcap.js.map +1 -0
  235. package/package.json +109 -0
  236. package/src/auth-header-hooks.ts +163 -0
  237. package/src/authorize.ts +117 -0
  238. package/src/backends/filesystem.ts +3626 -0
  239. package/src/backends/postgres.ts +3073 -0
  240. package/src/backends/postgresSchema.ts +231 -0
  241. package/src/config.default.ts +657 -0
  242. package/src/corsProxy.ts +326 -0
  243. package/src/declarations.d.ts +28 -0
  244. package/src/digest.ts +223 -0
  245. package/src/errors.ts +1122 -0
  246. package/src/index.ts +21 -0
  247. package/src/lib/atomicFile.ts +176 -0
  248. package/src/lib/backendRegistry.ts +139 -0
  249. package/src/lib/backendUsage.ts +79 -0
  250. package/src/lib/backends.ts +351 -0
  251. package/src/lib/blindedIndex.ts +466 -0
  252. package/src/lib/collectionDescription.ts +43 -0
  253. package/src/lib/cursor.ts +52 -0
  254. package/src/lib/edvEnvelope.ts +120 -0
  255. package/src/lib/encryption.ts +472 -0
  256. package/src/lib/etag.ts +40 -0
  257. package/src/lib/exportManifest.ts +115 -0
  258. package/src/lib/importTar.ts +381 -0
  259. package/src/lib/isJson.ts +18 -0
  260. package/src/lib/keyEpoch.ts +89 -0
  261. package/src/lib/keyedMutex.ts +45 -0
  262. package/src/lib/kmsModule.ts +451 -0
  263. package/src/lib/kmsRecordCipher.ts +292 -0
  264. package/src/lib/pagination.ts +22 -0
  265. package/src/lib/paths.ts +382 -0
  266. package/src/lib/preconditions.ts +145 -0
  267. package/src/lib/resourceFileName.ts +69 -0
  268. package/src/lib/revocations.ts +116 -0
  269. package/src/lib/validateDid.ts +41 -0
  270. package/src/lib/validateId.ts +148 -0
  271. package/src/plugin.ts +288 -0
  272. package/src/policy.ts +176 -0
  273. package/src/provisioning.ts +98 -0
  274. package/src/requests/BackendRequest.ts +219 -0
  275. package/src/requests/CollectionRequest.ts +899 -0
  276. package/src/requests/KeyRequest.ts +617 -0
  277. package/src/requests/KeystoreRequest.ts +325 -0
  278. package/src/requests/PolicyRequest.ts +169 -0
  279. package/src/requests/ResourceRequest.ts +649 -0
  280. package/src/requests/RevocationRequest.ts +267 -0
  281. package/src/requests/SpaceRequest.ts +686 -0
  282. package/src/requests/SpacesRepositoryRequest.ts +194 -0
  283. package/src/requests/collectionContext.ts +41 -0
  284. package/src/requests/controllerConsent.ts +108 -0
  285. package/src/requests/keystoreContext.ts +124 -0
  286. package/src/requests/resourceInput.ts +118 -0
  287. package/src/requests/spaceContext.ts +311 -0
  288. package/src/routes.ts +420 -0
  289. package/src/server.ts +69 -0
  290. package/src/start.ts +71 -0
  291. package/src/storage.ts +60 -0
  292. package/src/types.ts +1016 -0
  293. package/src/views/home.hbs +9 -0
  294. package/src/views/templates/main.hbs +12 -0
  295. package/src/zcap.ts +657 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ResourceRequest.js","sourceRoot":"","sources":["../../src/requests/ResourceRequest.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,67 @@
1
+ /**
2
+ * Request handlers for zcap revocation, one per route family:
3
+ * - POST /kms/keystores/:keystoreId/zcaps/revocations/:revocationId
4
+ * - POST /space/:spaceId/zcaps/revocations/:revocationId
5
+ *
6
+ * Both share one submission flow (`submitRevocation`), differing only in the
7
+ * scope the revocation aggregates under -- a keystore or a Space -- the action
8
+ * the invocation must carry (the webkms `write` vs the WAS route families'
9
+ * HTTP verb), and the `/kms` delegation policy the WAS families do not impose.
10
+ *
11
+ * The wire contract is protocol-fixed by ezcap-express's
12
+ * `authorizeZcapRevocation` / `@interop/webkms-client` (the conformance
13
+ * suite): `:revocationId` is the to-be-revoked capability's id, URL-encoded;
14
+ * the body is that capability, verbatim; success is 204 with no body. The
15
+ * submission is authorized under the dual-root rule -- an invocation rooted
16
+ * in the scope, or in the revocation URL itself, whose synthesized root is
17
+ * controlled by every controller in the to-be-revoked capability's (fully
18
+ * verified) chain -- so a delegee can revoke its own zcap without holding a
19
+ * separate capability. Root zcaps cannot be revoked. The stored revocation is
20
+ * consulted by the chain-inspection hook on every subsequent verification
21
+ * rooted in that scope (`lib/revocations.ts`).
22
+ */
23
+ import type { FastifyReply, FastifyRequest } from 'fastify';
24
+ export declare class RevocationRequest {
25
+ /**
26
+ * POST /kms/keystores/:keystoreId/zcaps/revocations/:revocationId
27
+ * Revoke a capability delegated from a keystore. Carries the unified `/kms`
28
+ * delegation policy, and the webkms `write` action. Responds 204, no body; a
29
+ * concurrent duplicate insert is the 409 `DuplicateRevocationError`.
30
+ *
31
+ * @param request {import('fastify').FastifyRequest}
32
+ * @param reply {import('fastify').FastifyReply}
33
+ * @returns {Promise<FastifyReply>}
34
+ */
35
+ static post(request: FastifyRequest<{
36
+ Params: {
37
+ keystoreId: string;
38
+ revocationId: string;
39
+ };
40
+ Body: Record<string, unknown>;
41
+ }>, reply: FastifyReply): Promise<FastifyReply>;
42
+ /**
43
+ * POST /space/:spaceId/zcaps/revocations/:revocationId
44
+ * Revoke a capability delegated from a Space -- the WAS-route sibling of
45
+ * `post`, scoped to the Space rather than a keystore. The revoked capability
46
+ * is rejected from then on wherever a Space-rooted chain is verified: the
47
+ * write/privileged routes (`fetchSpaceAndVerify`) and the capability leg of
48
+ * the read routes (`authorize`). The invoked action is the HTTP verb, since
49
+ * WAS capabilities are scoped by HTTP method. No delegation-policy caps
50
+ * apply, matching the rest of the WAS route families.
51
+ *
52
+ * Responds 204, no body; a concurrent duplicate insert is the 409
53
+ * `DuplicateRevocationError`.
54
+ *
55
+ * @param request {import('fastify').FastifyRequest}
56
+ * @param reply {import('fastify').FastifyReply}
57
+ * @returns {Promise<FastifyReply>}
58
+ */
59
+ static postSpace(request: FastifyRequest<{
60
+ Params: {
61
+ spaceId: string;
62
+ revocationId: string;
63
+ };
64
+ Body: Record<string, unknown>;
65
+ }>, reply: FastifyReply): Promise<FastifyReply>;
66
+ }
67
+ //# sourceMappingURL=RevocationRequest.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RevocationRequest.d.ts","sourceRoot":"","sources":["../../src/requests/RevocationRequest.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,OAAO,KAAK,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AAkK3D,qBAAa,iBAAiB;IAC5B;;;;;;;;;OASG;WACU,IAAI,CACf,OAAO,EAAE,cAAc,CAAC;QACtB,MAAM,EAAE;YAAE,UAAU,EAAE,MAAM,CAAC;YAAC,YAAY,EAAE,MAAM,CAAA;SAAE,CAAA;QACpD,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAC9B,CAAC,EACF,KAAK,EAAE,YAAY,GAClB,OAAO,CAAC,YAAY,CAAC;IAsBxB;;;;;;;;;;;;;;;;OAgBG;WACU,SAAS,CACpB,OAAO,EAAE,cAAc,CAAC;QACtB,MAAM,EAAE;YAAE,OAAO,EAAE,MAAM,CAAC;YAAC,YAAY,EAAE,MAAM,CAAA;SAAE,CAAA;QACjD,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAC9B,CAAC,EACF,KAAK,EAAE,YAAY,GAClB,OAAO,CAAC,YAAY,CAAC;CAoBzB"}
@@ -0,0 +1,187 @@
1
+ import { handleRevocationInvocationVerify, verifyRevocationChain } from '../zcap.js';
2
+ import { revocationChainInspector } from '../lib/revocations.js';
3
+ import { spacePath } from '../lib/paths.js';
4
+ import { KMS_MAX_CHAIN_LENGTH, KMS_MAX_DELEGATION_TTL } from '../config.default.js';
5
+ import { InvalidRevocationError } from '../errors.js';
6
+ import { fetchKeystore } from './keystoreContext.js';
7
+ import { fetchSpace } from './spaceContext.js';
8
+ /** One day in milliseconds -- the revocation record's GC margin. */
9
+ const ONE_DAY = 24 * 60 * 60 * 1000;
10
+ /**
11
+ * The scope-agnostic revocation submission: validate the body capability,
12
+ * verify its delegation chain (it must root in `rootTarget`), which yields
13
+ * the chain's controllers for the dual-root invocation check, then -- only
14
+ * once the invocation is authorized -- reject a chain containing an
15
+ * already-revoked link (resubmissions included) with the 400
16
+ * `InvalidRevocationError`, per ezcap-express, and store the record. The
17
+ * store check runs strictly AFTER the 404-masking authorization so an
18
+ * unauthorized caller cannot probe whether a capability is revoked (a
19
+ * 400-vs-404 oracle otherwise). The record expires one day after the
20
+ * capability itself does (from then on the capability is rejected on expiry
21
+ * alone; the margin covers clock-skew grace periods).
22
+ *
23
+ * @param options {object}
24
+ * @param options.request {FastifyRequest} supplies url, method, headers,
25
+ * logger, and `request.server` for serverUrl + storage
26
+ * @param options.revocationId {string} the URL's revocation id (the
27
+ * to-be-revoked capability's id, already URL-decoded by the router)
28
+ * @param options.scope {RevocationScope} the keystore or Space the record is
29
+ * stored under
30
+ * @param options.rootTarget {string} the scope's full URL (the required root
31
+ * of the revoked capability's chain, and one of the two accepted invocation
32
+ * roots)
33
+ * @param options.rootController {IDID} the scope's controller
34
+ * @param options.expectedAction {string} the action the invocation must
35
+ * carry (`write` on `/kms`, `POST` on the WAS route families)
36
+ * @param options.requestName {string} human-readable request name, used in
37
+ * error titles
38
+ * @param [options.maxChainLength] {number} max chain length, root included
39
+ * @param [options.maxDelegationTtl] {number} max delegated-zcap TTL (ms)
40
+ * @returns {Promise<void>}
41
+ */
42
+ async function submitRevocation({ request, revocationId, scope, rootTarget, rootController, expectedAction, requestName, maxChainLength, maxDelegationTtl }) {
43
+ const { url, method, headers, body } = request;
44
+ const { serverUrl, storage } = request.server;
45
+ if (typeof body !== 'object' ||
46
+ body === null ||
47
+ Array.isArray(body) ||
48
+ typeof body.id !== 'string') {
49
+ throw new InvalidRevocationError({
50
+ detail: 'The revocation body must be a capability with a string "id".'
51
+ });
52
+ }
53
+ const capabilityBody = body;
54
+ if (capabilityBody.id.startsWith('urn:zcap:root:')) {
55
+ throw new InvalidRevocationError({
56
+ detail: 'A root capability cannot be revoked.'
57
+ });
58
+ }
59
+ // The submitted capability must be the one the URL names (the client
60
+ // frames the id with `encodeURIComponent` into the final path segment).
61
+ if (capabilityBody.id !== revocationId) {
62
+ throw new InvalidRevocationError({
63
+ detail: 'The capability "id" does not match the revocation URL.'
64
+ });
65
+ }
66
+ // Verify the to-be-revoked capability's own delegation chain (400 when
67
+ // invalid); its controllers feed the dual-root invocation check below.
68
+ // Structural only -- the revocation store is not consulted until after
69
+ // authorization (see below).
70
+ const { delegator, chainControllers, capabilities } = await verifyRevocationChain({
71
+ capability: capabilityBody,
72
+ rootTarget,
73
+ rootController,
74
+ maxChainLength,
75
+ maxDelegationTtl
76
+ });
77
+ await handleRevocationInvocationVerify({
78
+ url,
79
+ method,
80
+ headers,
81
+ serverUrl,
82
+ rootTarget,
83
+ rootController,
84
+ chainControllers,
85
+ expectedAction,
86
+ // The *invoking* chain is checked against the store as on every other
87
+ // route: a revoked capability cannot authorize a revocation.
88
+ inspectCapabilityChain: revocationChainInspector({ storage, scope }),
89
+ maxChainLength,
90
+ maxDelegationTtl,
91
+ requestName,
92
+ logger: request.log
93
+ });
94
+ // The caller is authorized; NOW consult the store for the to-be-revoked
95
+ // chain. A chain containing an already-revoked link (resubmissions
96
+ // included) is the 400, per ezcap-express; the 409 duplicate stays
97
+ // reserved for a write race at the store. Running this after the masked
98
+ // authorization keeps revocation state undisclosed to unauthorized callers.
99
+ if (await storage.isRevoked({ scope, capabilities })) {
100
+ throw new InvalidRevocationError({
101
+ detail: 'The capability (or a capability in its chain) is already revoked.'
102
+ });
103
+ }
104
+ const capability = capabilityBody;
105
+ // Compute the record's GC expiry only from a parseable `expires`; an
106
+ // unparseable one yields `NaN`, and `new Date(NaN).toISOString()` would
107
+ // throw a `RangeError` (500). Omitting `expires` here just drops the GC
108
+ // margin -- the capability is still rejected on its own expiry.
109
+ const expiresMs = capability.expires ? Date.parse(capability.expires) : NaN;
110
+ const record = {
111
+ capability,
112
+ meta: {
113
+ delegator,
114
+ rootTarget,
115
+ created: new Date().toISOString(),
116
+ ...(Number.isFinite(expiresMs) && {
117
+ expires: new Date(expiresMs + ONE_DAY).toISOString()
118
+ })
119
+ }
120
+ };
121
+ await storage.insertRevocation({ scope, record });
122
+ }
123
+ export class RevocationRequest {
124
+ /**
125
+ * POST /kms/keystores/:keystoreId/zcaps/revocations/:revocationId
126
+ * Revoke a capability delegated from a keystore. Carries the unified `/kms`
127
+ * delegation policy, and the webkms `write` action. Responds 204, no body; a
128
+ * concurrent duplicate insert is the 409 `DuplicateRevocationError`.
129
+ *
130
+ * @param request {import('fastify').FastifyRequest}
131
+ * @param reply {import('fastify').FastifyReply}
132
+ * @returns {Promise<FastifyReply>}
133
+ */
134
+ static async post(request, reply) {
135
+ const requestName = 'Revoke Capability';
136
+ const { keystoreId, revocationId } = request.params;
137
+ // 404-masks an unknown keystore before any verification work.
138
+ const config = await fetchKeystore({ request, keystoreId, requestName });
139
+ await submitRevocation({
140
+ request,
141
+ revocationId,
142
+ scope: { keystoreId },
143
+ rootTarget: config.id,
144
+ rootController: config.controller,
145
+ expectedAction: 'write',
146
+ requestName,
147
+ maxChainLength: KMS_MAX_CHAIN_LENGTH,
148
+ maxDelegationTtl: KMS_MAX_DELEGATION_TTL
149
+ });
150
+ return reply.status(204).send();
151
+ }
152
+ /**
153
+ * POST /space/:spaceId/zcaps/revocations/:revocationId
154
+ * Revoke a capability delegated from a Space -- the WAS-route sibling of
155
+ * `post`, scoped to the Space rather than a keystore. The revoked capability
156
+ * is rejected from then on wherever a Space-rooted chain is verified: the
157
+ * write/privileged routes (`fetchSpaceAndVerify`) and the capability leg of
158
+ * the read routes (`authorize`). The invoked action is the HTTP verb, since
159
+ * WAS capabilities are scoped by HTTP method. No delegation-policy caps
160
+ * apply, matching the rest of the WAS route families.
161
+ *
162
+ * Responds 204, no body; a concurrent duplicate insert is the 409
163
+ * `DuplicateRevocationError`.
164
+ *
165
+ * @param request {import('fastify').FastifyRequest}
166
+ * @param reply {import('fastify').FastifyReply}
167
+ * @returns {Promise<FastifyReply>}
168
+ */
169
+ static async postSpace(request, reply) {
170
+ const requestName = 'Revoke Capability';
171
+ const { spaceId, revocationId } = request.params;
172
+ const { serverUrl } = request.server;
173
+ // 404-masks an unknown Space before any verification work.
174
+ const spaceDescription = await fetchSpace({ request, spaceId, requestName });
175
+ await submitRevocation({
176
+ request,
177
+ revocationId,
178
+ scope: { spaceId },
179
+ rootTarget: new URL(spacePath({ spaceId }), serverUrl).toString(),
180
+ rootController: spaceDescription.controller,
181
+ expectedAction: request.method,
182
+ requestName
183
+ });
184
+ return reply.status(204).send();
185
+ }
186
+ }
187
+ //# sourceMappingURL=RevocationRequest.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RevocationRequest.js","sourceRoot":"","sources":["../../src/requests/RevocationRequest.ts"],"names":[],"mappings":"AAuBA,OAAO,EACL,gCAAgC,EAChC,qBAAqB,EACtB,MAAM,YAAY,CAAA;AACnB,OAAO,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAA;AAChE,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAC3C,OAAO,EACL,oBAAoB,EACpB,sBAAsB,EACvB,MAAM,sBAAsB,CAAA;AAC7B,OAAO,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAA;AAErD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAA;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AAE9C,oEAAoE;AACpE,MAAM,OAAO,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAA;AAEnC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,KAAK,UAAU,gBAAgB,CAAC,EAC9B,OAAO,EACP,YAAY,EACZ,KAAK,EACL,UAAU,EACV,cAAc,EACd,cAAc,EACd,WAAW,EACX,cAAc,EACd,gBAAgB,EAWjB;IACC,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,OAAO,CAAA;IAC9C,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,MAAM,CAAA;IAE7C,IACE,OAAO,IAAI,KAAK,QAAQ;QACxB,IAAI,KAAK,IAAI;QACb,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;QACnB,OAAQ,IAAgC,CAAC,EAAE,KAAK,QAAQ,EACxD,CAAC;QACD,MAAM,IAAI,sBAAsB,CAAC;YAC/B,MAAM,EAAE,8DAA8D;SACvE,CAAC,CAAA;IACJ,CAAC;IACD,MAAM,cAAc,GAAG,IAAgD,CAAA;IACvE,IAAI,cAAc,CAAC,EAAE,CAAC,UAAU,CAAC,gBAAgB,CAAC,EAAE,CAAC;QACnD,MAAM,IAAI,sBAAsB,CAAC;YAC/B,MAAM,EAAE,sCAAsC;SAC/C,CAAC,CAAA;IACJ,CAAC;IACD,qEAAqE;IACrE,wEAAwE;IACxE,IAAI,cAAc,CAAC,EAAE,KAAK,YAAY,EAAE,CAAC;QACvC,MAAM,IAAI,sBAAsB,CAAC;YAC/B,MAAM,EAAE,wDAAwD;SACjE,CAAC,CAAA;IACJ,CAAC;IAED,uEAAuE;IACvE,uEAAuE;IACvE,uEAAuE;IACvE,6BAA6B;IAC7B,MAAM,EAAE,SAAS,EAAE,gBAAgB,EAAE,YAAY,EAAE,GACjD,MAAM,qBAAqB,CAAC;QAC1B,UAAU,EAAE,cAAc;QAC1B,UAAU;QACV,cAAc;QACd,cAAc;QACd,gBAAgB;KACjB,CAAC,CAAA;IAEJ,MAAM,gCAAgC,CAAC;QACrC,GAAG;QACH,MAAM;QACN,OAAO;QACP,SAAS;QACT,UAAU;QACV,cAAc;QACd,gBAAgB;QAChB,cAAc;QACd,sEAAsE;QACtE,6DAA6D;QAC7D,sBAAsB,EAAE,wBAAwB,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;QACpE,cAAc;QACd,gBAAgB;QAChB,WAAW;QACX,MAAM,EAAE,OAAO,CAAC,GAAG;KACpB,CAAC,CAAA;IAEF,wEAAwE;IACxE,mEAAmE;IACnE,mEAAmE;IACnE,wEAAwE;IACxE,4EAA4E;IAC5E,IAAI,MAAM,OAAO,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,YAAY,EAAE,CAAC,EAAE,CAAC;QACrD,MAAM,IAAI,sBAAsB,CAAC;YAC/B,MAAM,EACJ,mEAAmE;SACtE,CAAC,CAAA;IACJ,CAAC;IAED,MAAM,UAAU,GAAG,cAAgD,CAAA;IACnE,qEAAqE;IACrE,wEAAwE;IACxE,wEAAwE;IACxE,gEAAgE;IAChE,MAAM,SAAS,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAA;IAC3E,MAAM,MAAM,GAAqB;QAC/B,UAAU;QACV,IAAI,EAAE;YACJ,SAAS;YACT,UAAU;YACV,OAAO,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YACjC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI;gBAChC,OAAO,EAAE,IAAI,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,CAAC,WAAW,EAAE;aACrD,CAAC;SACH;KACF,CAAA;IACD,MAAM,OAAO,CAAC,gBAAgB,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAA;AACnD,CAAC;AAED,MAAM,OAAO,iBAAiB;IAC5B;;;;;;;;;OASG;IACH,MAAM,CAAC,KAAK,CAAC,IAAI,CACf,OAGE,EACF,KAAmB;QAEnB,MAAM,WAAW,GAAG,mBAAmB,CAAA;QACvC,MAAM,EAAE,UAAU,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC,MAAM,CAAA;QAEnD,8DAA8D;QAC9D,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,CAAC,CAAA;QAExE,MAAM,gBAAgB,CAAC;YACrB,OAAO;YACP,YAAY;YACZ,KAAK,EAAE,EAAE,UAAU,EAAE;YACrB,UAAU,EAAE,MAAM,CAAC,EAAE;YACrB,cAAc,EAAE,MAAM,CAAC,UAAU;YACjC,cAAc,EAAE,OAAO;YACvB,WAAW;YACX,cAAc,EAAE,oBAAoB;YACpC,gBAAgB,EAAE,sBAAsB;SACzC,CAAC,CAAA;QAEF,OAAO,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAA;IACjC,CAAC;IAED;;;;;;;;;;;;;;;;OAgBG;IACH,MAAM,CAAC,KAAK,CAAC,SAAS,CACpB,OAGE,EACF,KAAmB;QAEnB,MAAM,WAAW,GAAG,mBAAmB,CAAA;QACvC,MAAM,EAAE,OAAO,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC,MAAM,CAAA;QAChD,MAAM,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC,MAAM,CAAA;QAEpC,2DAA2D;QAC3D,MAAM,gBAAgB,GAAG,MAAM,UAAU,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC,CAAA;QAE5E,MAAM,gBAAgB,CAAC;YACrB,OAAO;YACP,YAAY;YACZ,KAAK,EAAE,EAAE,OAAO,EAAE;YAClB,UAAU,EAAE,IAAI,GAAG,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,SAAS,CAAC,CAAC,QAAQ,EAAE;YACjE,cAAc,EAAE,gBAAgB,CAAC,UAAU;YAC3C,cAAc,EAAE,OAAO,CAAC,MAAM;YAC9B,WAAW;SACZ,CAAC,CAAA;QAEF,OAAO,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAA;IACjC,CAAC;CACF"}
@@ -0,0 +1,204 @@
1
+ /**
2
+ * Request handlers for Space operations: get/update/delete a Space, add a
3
+ * Collection to it, list its Collections, and export it.
4
+ */
5
+ import type { FastifyReply, FastifyRequest } from 'fastify';
6
+ import type { Readable } from 'node:stream';
7
+ import type { IDID } from '../types.js';
8
+ export declare class SpaceRequest {
9
+ /**
10
+ * GET /space/:spaceId
11
+ * Request handler for "Read Space" request
12
+ * Before this, `parseAuthHeaders()` hook executed, resulting in:
13
+ * request.zcap: {
14
+ * keyId, headers, signature, created, expires, invocation, digest
15
+ * }
16
+ *
17
+ * Example Space Description Object:
18
+ * {
19
+ * "id": "6b5be748-5f39-4936-a895-409e393c399c",
20
+ * "type": ["Space"],
21
+ * "name": "Alice's space",
22
+ * "controller": "did:key:z6MkpBMbMaRSv5nsgifRAwEKvHHoiKDMhiAHShTFNmkJNdVW"
23
+ * }
24
+ *
25
+ * @param request {import('fastify').FastifyRequest}
26
+ * @param reply {import('fastify').FastifyReply}
27
+ * @returns {Promise<FastifyReply>}
28
+ */
29
+ static get(request: FastifyRequest<{
30
+ Params: {
31
+ spaceId: string;
32
+ };
33
+ }>, reply: FastifyReply): Promise<FastifyReply>;
34
+ /**
35
+ * GET /space/:spaceId/linkset
36
+ * Request handler for the Space's linkset (RFC9264): advertises the Space's
37
+ * access-control `policy` resource for discovery. Readable by whoever may read
38
+ * the Space (capability or fallback policy).
39
+ *
40
+ * @param request {import('fastify').FastifyRequest}
41
+ * @param reply {import('fastify').FastifyReply}
42
+ * @returns {Promise<FastifyReply>}
43
+ */
44
+ static linkset(request: FastifyRequest<{
45
+ Params: {
46
+ spaceId: string;
47
+ };
48
+ }>, reply: FastifyReply): Promise<FastifyReply>;
49
+ /**
50
+ * PUT /space/:spaceId
51
+ * Request handler for "Update or Create Space by Id" request
52
+ * Before this, `parseAuthHeaders()` hook executed, resulting in:
53
+ * request.zcap: {
54
+ * keyId, headers, signature, created, expires, invocation, digest
55
+ * }
56
+ *
57
+ * @param request {import('fastify').FastifyRequest}
58
+ * @param reply {import('fastify').FastifyReply}
59
+ * @returns {Promise<FastifyReply>}
60
+ */
61
+ static put(request: FastifyRequest<{
62
+ Params: {
63
+ spaceId: string;
64
+ };
65
+ Body: {
66
+ id?: string;
67
+ name?: string;
68
+ controller: IDID;
69
+ };
70
+ }>, reply: FastifyReply): Promise<FastifyReply>;
71
+ /**
72
+ * POST /space/:spaceId/
73
+ * Request handler for "Create Collection" request
74
+ * Before this, `parseAuthHeaders()` hook executed, resulting in:
75
+ * request.zcap: {
76
+ * keyId, headers, signature, created, expires, invocation, digest
77
+ * }
78
+ *
79
+ * @param request {import('fastify').FastifyRequest}
80
+ * @param reply {import('fastify').FastifyReply}
81
+ * @returns {Promise<FastifyReply>}
82
+ */
83
+ static post(request: FastifyRequest<{
84
+ Params: {
85
+ spaceId: string;
86
+ };
87
+ Body: {
88
+ id?: string;
89
+ name?: string;
90
+ backend?: unknown;
91
+ encryption?: unknown;
92
+ };
93
+ }>, reply: FastifyReply): Promise<FastifyReply>;
94
+ /**
95
+ * DELETE /space/:spaceId
96
+ * Request handler for "Delete Space" request
97
+ * Before this, `parseAuthHeaders()` hook executed, resulting in:
98
+ * request.zcap: {
99
+ * keyId, headers, signature, created, expires, invocation, digest
100
+ * }
101
+ *
102
+ * @param request {import('fastify').FastifyRequest}
103
+ * @param reply {import('fastify').FastifyReply}
104
+ * @returns {Promise<FastifyReply>}
105
+ */
106
+ static delete(request: FastifyRequest<{
107
+ Params: {
108
+ spaceId: string;
109
+ };
110
+ }>, reply: FastifyReply): Promise<FastifyReply>;
111
+ /**
112
+ * POST /space/:spaceId/export
113
+ * Request handler for "Export Space" request
114
+ *
115
+ * @param request {import('fastify').FastifyRequest}
116
+ * @param reply {import('fastify').FastifyReply}
117
+ * @returns {Promise<FastifyReply>}
118
+ */
119
+ static export(request: FastifyRequest<{
120
+ Params: {
121
+ spaceId: string;
122
+ };
123
+ }>, reply: FastifyReply): Promise<FastifyReply>;
124
+ /**
125
+ * POST /space/:spaceId/import
126
+ * Request handler for "Import Space" request (merge from tarball)
127
+ *
128
+ * @param request {import('fastify').FastifyRequest}
129
+ * @param reply {import('fastify').FastifyReply}
130
+ * @returns {Promise<FastifyReply>}
131
+ */
132
+ static import(request: FastifyRequest<{
133
+ Params: {
134
+ spaceId: string;
135
+ };
136
+ Body: Readable;
137
+ }>, reply: FastifyReply): Promise<FastifyReply>;
138
+ /**
139
+ * GET /space/:spaceId/collections/
140
+ * Request handler for "List Collections" request
141
+ *
142
+ * @param request {import('fastify').FastifyRequest}
143
+ * @param reply {import('fastify').FastifyReply}
144
+ * @returns {Promise<FastifyReply>}
145
+ */
146
+ static listCollections(request: FastifyRequest<{
147
+ Params: {
148
+ spaceId: string;
149
+ };
150
+ }>, reply: FastifyReply): Promise<FastifyReply>;
151
+ /**
152
+ * GET /space/:spaceId/backends
153
+ * Request handler for the "Space Backends Available" request: the list of
154
+ * storage backends registered for the Space. This reference server ships a
155
+ * single server-configured backend (registered as `default`), so the list has
156
+ * one entry, derived from the active backend's own `describe()`.
157
+ *
158
+ * Authorization is capability-or-policy, the same as List Collections: the
159
+ * backends list is no more sensitive than the Space description, so a
160
+ * public-readable Space may also list its backends.
161
+ *
162
+ * @param request {import('fastify').FastifyRequest}
163
+ * @param reply {import('fastify').FastifyReply}
164
+ * @returns {Promise<FastifyReply>}
165
+ */
166
+ static listBackends(request: FastifyRequest<{
167
+ Params: {
168
+ spaceId: string;
169
+ };
170
+ }>, reply: FastifyReply): Promise<FastifyReply>;
171
+ /**
172
+ * GET /space/:spaceId/quotas
173
+ * Request handler for the "Quotas" request: the Space's storage report,
174
+ * grouped by backend (spec "Quotas"). This reference server ships a single
175
+ * server-configured backend, so the `backends` array has one entry, measured
176
+ * from the active backend's `reportUsage()`.
177
+ *
178
+ * The per-Collection `usageByCollection` breakdown is opt-in via the spec's
179
+ * `?include=collections` query parameter (omitted otherwise, to keep the
180
+ * hot-path payload lean). Reading that query string on a capability-signed
181
+ * request requires `allowTargetQuery` on the authorization call -- the spec's
182
+ * "Quotas" / "Pagination parameters and authorization" rule that a query
183
+ * parameter selecting a representation does not change the target a capability
184
+ * must match (see `verifyZcap`).
185
+ *
186
+ * Authorization is capability-or-policy, the same as List Collections and the
187
+ * backends list: a caller not authorized to read the report receives a 404
188
+ * (the spec's maximum-privacy invariant), and a public-readable Space may read
189
+ * its quota report. Authorization runs before the query is consulted.
190
+ *
191
+ * @param request {import('fastify').FastifyRequest}
192
+ * @param reply {import('fastify').FastifyReply}
193
+ * @returns {Promise<FastifyReply>}
194
+ */
195
+ static quotas(request: FastifyRequest<{
196
+ Params: {
197
+ spaceId: string;
198
+ };
199
+ Querystring: {
200
+ include?: string | string[];
201
+ };
202
+ }>, reply: FastifyReply): Promise<FastifyReply>;
203
+ }
204
+ //# sourceMappingURL=SpaceRequest.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SpaceRequest.d.ts","sourceRoot":"","sources":["../../src/requests/SpaceRequest.ts"],"names":[],"mappings":"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"}