@toa.io/extensions.exposition 1.0.0-alpha.302 → 1.0.0-alpha.304

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 (106) hide show
  1. package/components/identity.basic/types/toa.d.ts +1 -1
  2. package/components/identity.clients/types/toa.d.ts +1 -1
  3. package/components/identity.federation/types/toa.d.ts +1 -1
  4. package/components/identity.grants/manifest.toa.yaml +3 -1
  5. package/components/identity.grants/types/toa.d.ts +1 -1
  6. package/components/identity.otp/types/toa.d.ts +1 -1
  7. package/components/identity.passkeys/types/toa.d.ts +1 -1
  8. package/components/identity.tokens/operations/decrypt.js +106 -60
  9. package/components/identity.tokens/operations/lib/jose.js +5 -2
  10. package/components/identity.tokens/source/decrypt.ts +136 -65
  11. package/components/identity.tokens/source/lib/jose.js +5 -1
  12. package/components/identity.tokens/types/index.d.ts +1 -0
  13. package/components/identity.tokens/types/toa.d.ts +1 -1
  14. package/package.json +7 -7
  15. package/transpiled/Directive.d.ts +11 -4
  16. package/transpiled/Directive.js +50 -14
  17. package/transpiled/Directive.js.map +1 -1
  18. package/transpiled/Endpoint.js +13 -11
  19. package/transpiled/Endpoint.js.map +1 -1
  20. package/transpiled/Gateway.js +4 -0
  21. package/transpiled/Gateway.js.map +1 -1
  22. package/transpiled/HTTP/Context.d.ts +17 -0
  23. package/transpiled/HTTP/Context.js +17 -0
  24. package/transpiled/HTTP/Context.js.map +1 -1
  25. package/transpiled/HTTP/Server.js +12 -6
  26. package/transpiled/HTTP/Server.js.map +1 -1
  27. package/transpiled/HTTP/messages.d.ts +9 -7
  28. package/transpiled/HTTP/messages.js +15 -2
  29. package/transpiled/HTTP/messages.js.map +1 -1
  30. package/transpiled/HTTP/types.d.ts +1 -0
  31. package/transpiled/MCP/tools.js +66 -31
  32. package/transpiled/MCP/tools.js.map +1 -1
  33. package/transpiled/Query.js +2 -0
  34. package/transpiled/Query.js.map +1 -1
  35. package/transpiled/RTD/Directives.d.ts +26 -8
  36. package/transpiled/RTD/Match.d.ts +6 -0
  37. package/transpiled/RTD/Method.d.ts +12 -0
  38. package/transpiled/RTD/Method.js +21 -1
  39. package/transpiled/RTD/Method.js.map +1 -1
  40. package/transpiled/RTD/Node.d.ts +3 -1
  41. package/transpiled/RTD/Node.js +5 -3
  42. package/transpiled/RTD/Node.js.map +1 -1
  43. package/transpiled/RTD/Route.d.ts +1 -1
  44. package/transpiled/RTD/Route.js +8 -5
  45. package/transpiled/RTD/Route.js.map +1 -1
  46. package/transpiled/RTD/Tree.d.ts +12 -0
  47. package/transpiled/RTD/Tree.js +19 -1
  48. package/transpiled/RTD/Tree.js.map +1 -1
  49. package/transpiled/RTD/segment.d.ts +2 -0
  50. package/transpiled/RTD/segment.js +15 -0
  51. package/transpiled/RTD/segment.js.map +1 -1
  52. package/transpiled/directives/auth/Authorization.d.ts +9 -7
  53. package/transpiled/directives/auth/Authorization.js +17 -16
  54. package/transpiled/directives/auth/Authorization.js.map +1 -1
  55. package/transpiled/directives/cache/Cache.d.ts +11 -0
  56. package/transpiled/directives/cache/Cache.js +23 -24
  57. package/transpiled/directives/cache/Cache.js.map +1 -1
  58. package/transpiled/directives/cache/etag.d.ts +10 -7
  59. package/transpiled/directives/cache/etag.js +13 -10
  60. package/transpiled/directives/cache/etag.js.map +1 -1
  61. package/transpiled/directives/cors/CORS.js +1 -1
  62. package/transpiled/directives/cors/CORS.js.map +1 -1
  63. package/transpiled/directives/flow/Compose.js +2 -0
  64. package/transpiled/directives/flow/Compose.js.map +1 -1
  65. package/transpiled/directives/help/Family.d.ts +1 -2
  66. package/transpiled/directives/help/Family.js +1 -1
  67. package/transpiled/directives/help/Family.js.map +1 -1
  68. package/transpiled/directives/io/IO.d.ts +1 -1
  69. package/transpiled/directives/io/IO.js +1 -1
  70. package/transpiled/directives/io/IO.js.map +1 -1
  71. package/transpiled/directives/io/Output.d.ts +5 -3
  72. package/transpiled/directives/io/Output.js +11 -35
  73. package/transpiled/directives/io/Output.js.map +1 -1
  74. package/transpiled/directives/io/Status.d.ts +1 -1
  75. package/transpiled/directives/io/Status.js +4 -2
  76. package/transpiled/directives/io/Status.js.map +1 -1
  77. package/transpiled/directives/map/Map.d.ts +1 -1
  78. package/transpiled/directives/map/Map.js +1 -1
  79. package/transpiled/directives/map/Map.js.map +1 -1
  80. package/transpiled/directives/mcp/MCP.d.ts +1 -2
  81. package/transpiled/directives/mcp/MCP.js +1 -1
  82. package/transpiled/directives/mcp/MCP.js.map +1 -1
  83. package/transpiled/directives/octets/Octets.d.ts +1 -1
  84. package/transpiled/directives/octets/Octets.js +1 -1
  85. package/transpiled/directives/octets/Octets.js.map +1 -1
  86. package/transpiled/measurements.d.ts +22 -0
  87. package/transpiled/measurements.js +37 -0
  88. package/transpiled/measurements.js.map +1 -0
  89. package/transpiled/service.js +22 -2
  90. package/transpiled/service.js.map +1 -1
  91. package/ui/dist/_app/immutable/chunks/{Wl536IQX.js → BI21DxGX.js} +1 -1
  92. package/ui/dist/_app/immutable/chunks/{CyQvDdUS.js → B_XBOx9b.js} +1 -1
  93. package/ui/dist/_app/immutable/chunks/{BNmwbB_m.js → D9-CL3SX.js} +2 -2
  94. package/ui/dist/_app/immutable/chunks/{D8WVrjO4.js → DfeVAkjY.js} +1 -1
  95. package/ui/dist/_app/immutable/entry/{app.BnIDHdVY.js → app.BG2uapp5.js} +2 -2
  96. package/ui/dist/_app/immutable/entry/start.Bnttjc6A.js +1 -0
  97. package/ui/dist/_app/immutable/nodes/{0.DV2orh1u.js → 0.CAhVptPP.js} +1 -1
  98. package/ui/dist/_app/immutable/nodes/{1.Bgonurdo.js → 1.CymYf6vY.js} +1 -1
  99. package/ui/dist/_app/immutable/nodes/{2.C0ZHj2rR.js → 2.DtwEKRzb.js} +1 -1
  100. package/ui/dist/_app/immutable/nodes/{3.DOixCoug.js → 3.BgfGYNeS.js} +1 -1
  101. package/ui/dist/_app/immutable/nodes/{4.fXuZ_LUX.js → 4.B7W24tJ1.js} +1 -1
  102. package/ui/dist/_app/immutable/nodes/{5.BN65yDZR.js → 5.FCfJU5jO.js} +1 -1
  103. package/ui/dist/_app/immutable/nodes/{6.gez_DiIA.js → 6.B9oqMcPQ.js} +1 -1
  104. package/ui/dist/_app/version.json +1 -1
  105. package/ui/dist/index.html +10 -10
  106. package/ui/dist/_app/immutable/entry/start.BhKXzsOH.js +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"messages.js","sourceRoot":"","sources":["../../source/HTTP/messages.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"messages.js","sourceRoot":"","sources":["../../source/HTTP/messages.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AACtC,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AACtC,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAA;AAC/C,OAAO,KAAK,WAAW,MAAM,cAAc,CAAA;AAC3C,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAA;AAClC,OAAO,EAAe,QAAQ,EAAE,MAAM,oBAAoB,CAAA;AAC1D,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAA;AACjF,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAA;AAC7C,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AAItC,MAAM,OAAO,GAAG,WAAW,CAAC,GAAG,CAAC,aAAa,CAAC,CAAA;AAC9C,MAAM,GAAG,GAAG,WAAW,CAAC,GAAG,CAAC,SAAS,CAAC,CAAA;AAEtC;;;;;;GAMG;AACH,MAAM,UAAU,GACd,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,GAAG,CAAC,oBAAoB,EAAE,OAAO,IAAI,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,OAAO,EAAE;IAC7F,CAAC,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,OAAO,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,GAAG,EAAE,CAAC,CAAC,CAAA;AAEvF;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,KAAK,CAAC,OAAgB,EAAE,OAAwB;IACpE,KAAK,MAAM,SAAS,IAAI,OAAO,CAAC,SAAS,CAAC,QAAQ;QAAE,MAAM,SAAS,CAAC,OAAO,CAAC,CAAA;AAC9E,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,KAAK,CACzB,OAAgB,EAChB,QAAwB,EACxB,OAAwB;IAExB,MAAM,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;IAE7B,IAAI,OAAO,EAAE,MAAM,KAAK,SAAS;QAAE,QAAQ,CAAC,UAAU,GAAG,OAAO,CAAC,MAAM,CAAA;IAEvE,QAAQ,CAAC,SAAS,CAAC,YAAY,EAAE,UAAU,CAAC,CAAA;IAC5C,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAAA;IACxE,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAA;IAE/B,IAAI,QAAQ,CAAC,SAAS,EAAE,CAAC;QACvB,OAAO,CAAC,IAAI,CAAC,+BAA+B,EAAE,EAAE,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAA;QAE7E,OAAM;IACR,CAAC;IAED,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,SAAgB,EAAE,EAAE,CACxC,OAAO,CAAC,IAAI,CAAC,qBAAqB,EAAE,EAAE,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,SAAS,EAAE,CAAC,CAC/E,CAAA;IAED,IAAI,OAAO,CAAC,IAAI,YAAY,QAAQ;QAAE,MAAM,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAA;;QACnE,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAA;AACvC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,IAAI,CAAC,OAAgB;IACzC,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,cAAc,CAAC,CAAA;IAEtD,IAAI,MAAM,KAAK,SAAS;QAAE,OAAO,SAAS,CAAA;IAE1C,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,WAAW,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;IAEtD,IAAI,CAAC,CAAC,IAAI,IAAI,QAAQ,CAAC;QAAE,MAAM,IAAI,oBAAoB,EAAE,CAAA;IAEzD,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAA;IAC7B,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,MAAM,EAAE,CAAA;IAElC,IAAI,CAAC;QACH,OAAO,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,UAAU,CAAC,OAAO,CAAC,CAAA;IAC/C,CAAC;IAAC,OAAO,KAAc,EAAE,CAAC;QACxB,OAAO,CAAC,KAAK,CAAC,0BAA0B,EAAE;YACxC,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,QAAQ;YAC1B,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE;SAC3B,CAAC,CAAA;QAEF,MAAM,IAAI,UAAU,EAAE,CAAA;IACxB,CAAC;AACH,CAAC;AAED,SAAS,IAAI,CACX,OAAwB,EACxB,OAAgB,EAChB,QAAwB;IAExB,IAAI,OAAO,CAAC,IAAI,KAAK,SAAS,IAAI,OAAO,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;QACxD,4EAA4E;QAC5E,sEAAsE;QACtE,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,gBAAgB,CAAC;YAAE,QAAQ,CAAC,SAAS,CAAC,gBAAgB,EAAE,GAAG,CAAC,CAAA;QAEpF,QAAQ,CAAC,GAAG,EAAE,CAAA;QAEd,OAAM;IACR,CAAC;IAED,IAAI,OAAO,CAAC,OAAO,KAAK,IAAI;QAAE,MAAM,IAAI,aAAa,EAAE,CAAA;IAEvD,MAAM,OAAO,GAAG,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;IACxC,MAAM,GAAG,GAAG,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;IAC/E,MAAM,IAAI,GAAG,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAA;IAE/D,MAAM,UAAU,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC,GAAG,CAAC,CAAA;IAE1C,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;QAC7B,QAAQ,CAAC,SAAS,CAAC,MAAM,EAAE,UAAU,CAAC,IAAI,CAAC,CAAA;QAE3C,IAAI,UAAU,CAAC,IAAI,EAAE,CAAC;YACpB,kFAAkF;YAClF,QAAQ,CAAC,UAAU,GAAG,GAAG,CAAA;YACzB,QAAQ,CAAC,GAAG,EAAE,CAAA;YAEd,OAAM;QACR,CAAC;IACH,CAAC;IAED,QAAQ,CAAC,SAAS,CAAC,cAAc,EAAE,IAAI,CAAC,CAAA;IACxC,QAAQ,CAAC,SAAS,CAAC,gBAAgB,EAAE,GAAG,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAA;IAC3D,QAAQ,CAAC,YAAY,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAA;IACvC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;AACnB,CAAC;AAED,SAAS,MAAM,CACb,OAAwB,EACxB,OAAgB,EAChB,QAAwB;IAExB,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,KAAK,SAAS,IAAI,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAA;IACpF,MAAM,MAAM,GAAa,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAA;IAEvF,yFAAyF;IACzF,oEAAoE;IACpE,EAAE;IACF,4FAA4F;IAC5F,uFAAuF;IACvF,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,KAAK,CAAC,CAAC,SAAgC,EAAE,EAAE;QACpE,kEAAkE;QAClE,IAAI,SAAS,CAAC,IAAI,KAAK,4BAA4B;YAAE,OAAM;QAE3D,OAAO,CAAC,IAAI,CAAC,sBAAsB,EAAE,EAAE,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,SAAS,EAAE,CAAC,CAAA;IACjF,CAAC,CAAC,CAAA;AACJ,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,SAAS,CACvB,OAAwB,EACxB,OAAgB,EAChB,QAAwB;IAExB,IAAI,OAAO,CAAC,OAAO,KAAK,IAAI;QAAE,MAAM,IAAI,aAAa,EAAE,CAAA;IAEvD,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAA;IAE/B,QAAQ,CAAC,SAAS,CAAC,cAAc,EAAE,GAAG,OAAO,CAAC,SAAS,cAAc,QAAQ,EAAE,CAAC,CAAA;IAEhF,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC,IAAgB,EAAE,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,CAAA;AACvE,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,OAAQ,SAAQ,QAAQ;IACX,IAAI,CAAU;IACd,KAAK,CAAwB;IAC7B,OAAO,CAAQ;IACf,MAAM,CAAa;IAC5B,OAAO,GAAG,KAAK,CAAA;IACf,QAAQ,GAAG,KAAK,CAAA;IAChB,QAAQ,GAAG,KAAK,CAAA;IAExB,YAAmB,IAAc,EAAE,OAAe,EAAE,MAAmB;QACrE,KAAK,EAAE,CAAA;QAEP,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;QAChB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;QACtB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;QACpB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,CAAA;QAEzC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,CAAA;QAEvE,IAAI,MAAM,CAAC,OAAO;YAAE,IAAI,CAAC,IAAI,EAAE,CAAA;;YAC1B,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAA;IAClE,CAAC;IAEe,KAAK;QACnB,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,QAAQ;YAAE,OAAM;QAEzC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAA;QAEnB,IAAI,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,KAAY,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAA;IAC1D,CAAC;IAEe,QAAQ,CACtB,KAAmB,EACnB,QAAwC;QAExC,IAAI,CAAC,MAAM,CAAC,mBAAmB,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,CAAA;QACnD,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAA;QAEnB,QAAQ,CAAC,KAAK,CAAC,CAAA;IACjB,CAAC;IAEO,KAAK,CAAC,IAAI;QAChB,IAAI,MAA+B,CAAA;QAEnC,IAAI,CAAC;YACH,MAAM,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAA;QAClC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,2EAA2E;YAC3E,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;gBAClB,IAAI,CAAC,MAAM,EAAE,CAAA;gBAEb,OAAM;YACR,CAAC;YAED,MAAM,KAAK,CAAA;QACb,CAAC;gBAAS,CAAC;YACT,IAAI,CAAC,OAAO,GAAG,KAAK,CAAA;QACtB,CAAC;QAED,IAAI,MAAM,CAAC,IAAI,KAAK,IAAI,IAAI,IAAI,CAAC,QAAQ;YAAE,IAAI,CAAC,MAAM,EAAE,CAAA;;YAEtD,IAAI,CAAC,IAAI,CACP,MAAM,CAAC,MAAM,CAAC;gBACZ,IAAI,CAAC,mCAAmC;gBACxC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC;gBACjC,IAAI;gBACJ,GAAG;aACJ,CAAC,CACH,CAAA;IACL,CAAC;IAEgB,IAAI,GAAG,GAAS,EAAE;QACjC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAA;QACpB,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAA;QAEnB,6DAA6D;QAC7D,IAAI,CAAC,IAAI,CAAC,OAAO;YAAE,IAAI,CAAC,MAAM,EAAE,CAAA;IAClC,CAAC,CAAA;IAEO,MAAM;QACZ,IAAI,IAAI,CAAC,QAAQ;YAAE,OAAM;QAEzB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAA;QACpB,IAAI,CAAC,MAAM,CAAC,mBAAmB,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,CAAA;QAEnD,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAA;QAC5E,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IACjB,CAAC;CACF;AAED,MAAM,QAAQ,GAAG,KAAK,CAAA;AACtB,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,QAAQ,MAAM,CAAC,CAAA;AAC5C,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;AAChC,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,QAAQ,IAAI,CAAC,CAAA"}
@@ -26,6 +26,7 @@ export interface ServerResponse extends Writable {
26
26
  setHeader: (name: string, value: number | string | string[]) => void;
27
27
  appendHeader: (name: string, value: string | string[]) => void;
28
28
  hasHeader: (name: string) => boolean;
29
+ getHeader: (name: string) => number | string | string[] | undefined;
29
30
  writeHead: (status: number, headers?: OutgoingHttpHeaders) => ServerResponse;
30
31
  }
31
32
  /**
@@ -19,39 +19,62 @@ import { variables } from '../RTD/segment.js';
19
19
  * Sorted, because the revision asks for an order a client can cache on.
20
20
  */
21
21
  export async function list(tree, request) {
22
- const tools = [];
23
22
  /*
24
23
  * A description, not the request asking. What refuses a credentialed request at an
25
24
  * `anonymous` route does not refuse the call a tool makes, and a list that says otherwise
26
25
  * disagrees with what `tools/call` then does.
27
26
  */
28
27
  const context = describing(request);
29
- for (const { segments, verb, method } of tree.walk()) {
30
- if (!MCP.published(method.directives.declared(FAMILY)))
31
- continue;
32
- const named = name(segments, verb);
33
- // a route a name cannot spell is a route nothing addresses, here or at `/.rpc`
34
- if (named === null)
35
- continue;
36
- const params = variables(segments);
37
- const introspection = await method.explain(context, params);
38
- if (introspection === null)
28
+ const tools = [];
29
+ for (const { node, method, tool } of await published(tree)) {
30
+ // a branch that has expired is not walked, and what it published is not served either
31
+ if (Date.now() >= node.expiration)
39
32
  continue;
40
- const described = introspection.description;
41
- const schema = output(introspection);
42
- const hints = annotations(verb);
43
- // in the order the revision documents one, which is the order it is read in
44
- const tool = {
45
- name: named,
46
- ...(introspection.title === undefined ? {} : { title: introspection.title }),
47
- ...(described === undefined ? {} : { description: described }),
48
- inputSchema: input(introspection, params.map((param) => param.name), method.endpoint?.selection() ?? null),
49
- ...(schema === undefined ? {} : { outputSchema: schema }),
50
- ...(hints === undefined ? {} : { annotations: hints })
51
- };
52
- tools.push(tool);
33
+ if (await method.directives.admits(context))
34
+ tools.push(tool);
53
35
  }
54
- return tools.sort((one, other) => (one.name < other.name ? -1 : 1));
36
+ return tools;
37
+ }
38
+ /**
39
+ * What the tree publishes, in the order a client reads it, whoever is asking: what a tool is
40
+ * said to be is the route's and not the caller's, and the only thing a caller decides is
41
+ * whether it is told of one at all.
42
+ *
43
+ * Built once per tree — a merged branch drops it — so a `tools/list` describes the tree once
44
+ * and then answers from what it described.
45
+ */
46
+ async function published(tree) {
47
+ return await tree.derived(TOOLS, async () => {
48
+ const tools = [];
49
+ for (const { segments, verb, method, node } of tree.walk()) {
50
+ if (!MCP.published(method.directives.declared(FAMILY)))
51
+ continue;
52
+ const named = name(segments, verb);
53
+ // a route a name cannot spell is a route nothing addresses, here or at `/.rpc`
54
+ if (named === null)
55
+ continue;
56
+ const params = variables(segments);
57
+ const introspection = await method.describe(params);
58
+ // a method hidden is hidden from every answer, this one included
59
+ if (introspection === null)
60
+ continue;
61
+ const described = introspection.description;
62
+ const schema = output(introspection);
63
+ const hints = annotations(verb);
64
+ // in the order the revision documents one, which is the order it is read in
65
+ const tool = {
66
+ name: named,
67
+ ...(introspection.title === undefined ? {} : { title: introspection.title }),
68
+ ...(described === undefined ? {} : { description: described }),
69
+ inputSchema: input(introspection, params.map((param) => param.name), method.endpoint?.selection() ?? null),
70
+ ...(schema === undefined ? {} : { outputSchema: schema }),
71
+ ...(hints === undefined ? {} : { annotations: hints })
72
+ };
73
+ tools.push({ node, method, tool });
74
+ }
75
+ // sorted, because the revision asks for an order a client can cache on
76
+ return tools.sort((one, other) => (one.tool.name < other.tool.name ? -1 : 1));
77
+ });
55
78
  }
56
79
  /**
57
80
  * The call the tool is. Its arguments are the procedure's parameters, taken apart the way a
@@ -62,7 +85,7 @@ export async function list(tree, request) {
62
85
  * its name. What the caller may then do with one that is published is still `auth`'s to say.
63
86
  */
64
87
  export async function call(scope, named, args) {
65
- if (!published(scope.tree, named))
88
+ if (!serves(scope.tree, named))
66
89
  throw new http.NotFound(response(null, failure(METHOD_NOT_FOUND, `'${named}' is not a tool this server publishes`)));
67
90
  const { path, verb, variables } = address(named, args);
68
91
  const { query, input: body } = split(args, variables);
@@ -92,11 +115,21 @@ export async function call(scope, named, args) {
92
115
  * asked here — the declaration is the route's and does not vary by who is calling, and the
93
116
  * call that follows is authorized as any request to that route is.
94
117
  */
95
- function published(tree, named) {
96
- for (const { segments, verb, method } of tree.walk())
97
- if (name(segments, verb) === named)
98
- return MCP.published(method.directives.declared(FAMILY));
99
- return false;
118
+ function serves(tree, named) {
119
+ const names = tree.derived(NAMES, () => {
120
+ const names = new Map();
121
+ for (const { segments, verb, method, node } of tree.walk()) {
122
+ const tool = name(segments, verb);
123
+ // the first mount of a name is the one a call would reach, as `match` tries them;
124
+ // one that publishes nothing takes the name all the same
125
+ if (tool !== null && !names.has(tool))
126
+ names.set(tool, MCP.published(method.directives.declared(FAMILY)) ? node : null);
127
+ }
128
+ return names;
129
+ });
130
+ const node = names.get(named);
131
+ // a branch that has expired publishes nothing, as it answers nothing
132
+ return node !== undefined && node !== null && Date.now() < node.expiration;
100
133
  }
101
134
  function result(body) {
102
135
  if (body === undefined || body === null)
@@ -106,4 +139,6 @@ function result(body) {
106
139
  structuredContent: body
107
140
  };
108
141
  }
142
+ const TOOLS = 'mcp:tools';
143
+ const NAMES = 'mcp:names';
109
144
  //# sourceMappingURL=tools.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"tools.js","sourceRoot":"","sources":["../../source/MCP/tools.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tools.js","sourceRoot":"","sources":["../../source/MCP/tools.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,kBAAkB,CAAA;AACxC,OAAO,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAA;AACxC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAA;AACtD,OAAO,EAAE,gBAAgB,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AAC1E,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AACxD,OAAO,EAAE,MAAM,EAAE,GAAG,EAA4B,MAAM,4BAA4B,CAAA;AAClF,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAA;AAChD,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAA;AAK7C;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,KAAK,UAAU,IAAI,CAAC,IAAU,EAAE,OAAqB;IAC1D;;;;OAIG;IACH,MAAM,OAAO,GAAG,UAAU,CAAC,OAAO,CAAC,CAAA;IACnC,MAAM,KAAK,GAAW,EAAE,CAAA;IAExB,KAAK,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,MAAM,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC;QAC3D,sFAAsF;QACtF,IAAI,IAAI,CAAC,GAAG,EAAE,IAAI,IAAI,CAAC,UAAU;YAAE,SAAQ;QAE3C,IAAI,MAAM,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,OAAO,CAAC;YAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IAC/D,CAAC;IAED,OAAO,KAAK,CAAA;AACd,CAAC;AAED;;;;;;;GAOG;AACH,KAAK,UAAU,SAAS,CAAC,IAAU;IACjC,OAAO,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,IAAI,EAAE;QAC1C,MAAM,KAAK,GAAgB,EAAE,CAAA;QAE7B,KAAK,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC;YAC3D,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAc,MAAM,CAAC,CAAC;gBAAE,SAAQ;YAE7E,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAA;YAElC,+EAA+E;YAC/E,IAAI,KAAK,KAAK,IAAI;gBAAE,SAAQ;YAE5B,MAAM,MAAM,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAA;YAClC,MAAM,aAAa,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAA;YAEnD,iEAAiE;YACjE,IAAI,aAAa,KAAK,IAAI;gBAAE,SAAQ;YAEpC,MAAM,SAAS,GAAG,aAAa,CAAC,WAAW,CAAA;YAC3C,MAAM,MAAM,GAAG,MAAM,CAAC,aAAa,CAAC,CAAA;YACpC,MAAM,KAAK,GAAG,WAAW,CAAC,IAAI,CAAC,CAAA;YAE/B,4EAA4E;YAC5E,MAAM,IAAI,GAAS;gBACjB,IAAI,EAAE,KAAK;gBACX,GAAG,CAAC,aAAa,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,aAAa,CAAC,KAAK,EAAE,CAAC;gBAC5E,GAAG,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,SAAS,EAAE,CAAC;gBAC9D,WAAW,EAAE,KAAK,CAChB,aAAa,EACb,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,EACjC,MAAM,CAAC,QAAQ,EAAE,SAAS,EAAE,IAAI,IAAI,CACrC;gBACD,GAAG,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,MAAM,EAAE,CAAC;gBACzD,GAAG,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC;aACvD,CAAA;YAED,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAA;QACpC,CAAC;QAED,uEAAuE;QACvE,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;IAC/E,CAAC,CAAC,CAAA;AACJ,CAAC;AAQD;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,IAAI,CAAC,KAAY,EAAE,KAAa,EAAE,IAAY;IAClE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC;QAC5B,MAAM,IAAI,IAAI,CAAC,QAAQ,CACrB,QAAQ,CACN,IAAI,EACJ,OAAO,CAAC,gBAAgB,EAAE,IAAI,KAAK,uCAAuC,CAAC,CAC5E,CACF,CAAA;IAEH,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,CAAA;IACtD,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,CAAA;IACrD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,CAAA;IAE1D,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,MAAM,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;QAExC,8EAA8E;QAC9E,MAAM,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,OAAO,CAAC,CAAA;QAEhC,OAAO,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;IAC7B,CAAC;IAAC,OAAO,SAAS,EAAE,CAAC;QACnB;;;;;;WAMG;QACH,IACE,SAAS,YAAY,IAAI,CAAC,WAAW;YACrC,CAAC,CAAC,SAAS,YAAY,IAAI,CAAC,YAAY,CAAC;YAEzC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAA;QAEjF,MAAM,SAAS,CAAA;IACjB,CAAC;AACH,CAAC;AASD;;;;GAIG;AACH,SAAS,MAAM,CAAC,IAAU,EAAE,KAAa;IACvC,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,EAAE;QACrC,MAAM,KAAK,GAAG,IAAI,GAAG,EAA2B,CAAA;QAEhD,KAAK,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC;YAC3D,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAA;YAEjC,kFAAkF;YAClF,yDAAyD;YACzD,IAAI,IAAI,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC;gBACnC,KAAK,CAAC,GAAG,CACP,IAAI,EACJ,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAc,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAC7E,CAAA;QACL,CAAC;QAED,OAAO,KAAK,CAAA;IACd,CAAC,CAAC,CAAA;IAEF,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;IAE7B,qEAAqE;IACrE,OAAO,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,UAAU,CAAA;AAC5E,CAAC;AAED,SAAS,MAAM,CAAC,IAAa;IAC3B,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,IAAI;QAAE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,CAAA;IAE/D,OAAO;QACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC;QACvD,iBAAiB,EAAE,IAAI;KACxB,CAAA;AACH,CAAC;AAED,MAAM,KAAK,GAAG,WAAW,CAAA;AACzB,MAAM,KAAK,GAAG,WAAW,CAAA"}
@@ -51,6 +51,8 @@ export class Query {
51
51
  this.fitSort(qs.query);
52
52
  if (this.query.deleted !== undefined)
53
53
  qs.query.deleted = this.query.deleted;
54
+ if (this.query.projection !== undefined)
55
+ qs.query.projection = this.query.projection;
54
56
  }
55
57
  return {
56
58
  query: qs.query,
@@ -1 +1 @@
1
- {"version":3,"file":"Query.js","sourceRoot":"","sources":["../source/Query.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Query.js","sourceRoot":"","sources":["../source/Query.ts"],"names":[],"mappings":"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"}
@@ -13,8 +13,17 @@ export interface Directives {
13
13
  */
14
14
  declared: <T>(family: string) => T[] | undefined;
15
15
  precall: (context: Context, parameters: Parameter[]) => Promise<Output>;
16
- /** What this route's directives make of what its method says about itself. */
17
- explain: (context: Context, introspection: Introspection) => Promise<Introspection | null>;
16
+ /**
17
+ * Whether this caller is told of the method at all. Asked per request, which is the one
18
+ * thing about a description that depends on who is asking.
19
+ */
20
+ admits: (context: Context) => Promise<boolean>;
21
+ /**
22
+ * What this route's directives make of what its method says about itself. No caller: what
23
+ * a family describes is what the route declares, so the answer is the same for everyone
24
+ * who is admitted, and is built once.
25
+ */
26
+ describe: (introspection: Introspection) => Introspection | null;
18
27
  settle: (context: Context, response: OutgoingMessage) => Promise<void>;
19
28
  dispose: () => void;
20
29
  }
@@ -64,16 +73,25 @@ export interface DirectiveFamily<TDirective = any, TExtension = any> {
64
73
  preflight?: (request: Context & TExtension) => void | Promise<void>;
65
74
  /** Call-scoped, with what the node declares. Runs once per call. */
66
75
  precall?: (directives: TDirective[], request: Context & TExtension, parameters: Parameter[]) => Output | Promise<Output>;
76
+ /**
77
+ * Whether this caller is told of the method at all — `auth` alone has anything to say
78
+ * here. A family that does not implement it admits everyone; `false` takes the method
79
+ * out of every answer that describes it.
80
+ *
81
+ * Apart from `explain` because it is the one part of describing a method that depends on
82
+ * the caller: what is described is then built once and answered to all of them.
83
+ */
84
+ admits?: (directives: TDirective[], request: Context & TExtension) => Promise<boolean>;
67
85
  /**
68
86
  * What this family's directives make of what the method says about itself, which is
69
- * what `OPTIONS` answers and what a tool is described by. `null` refuses: the method
70
- * is not reachable by this caller, and is not described at all.
87
+ * what `OPTIONS` answers and what a tool is described by. `null` hides it: the method is
88
+ * described to nobody, whoever asks.
71
89
  *
72
- * There is no request here — no route variable has a value and no body has arrived, which
73
- * is why no parameters are passed — so a directive that can only tell from one hands back
74
- * what it was given.
90
+ * There is no request here — no route variable has a value, no body has arrived, and no
91
+ * caller is known — so a directive that can only tell from one hands back what it was
92
+ * given.
75
93
  */
76
- explain?: (directives: TDirective[], request: Context & TExtension, introspection: Introspection) => Introspection | null | Promise<Introspection | null>;
94
+ explain?: (directives: TDirective[], introspection: Introspection) => Introspection | null;
77
95
  /** Call-scoped, on the message that call produced. */
78
96
  settle?: (directives: TDirective[], request: Context & TExtension, response: OutgoingMessage) => void | Promise<void>;
79
97
  /**
@@ -2,6 +2,12 @@ import { type Node } from './Node.ts';
2
2
  export interface Match {
3
3
  node: Node;
4
4
  parameters: Parameter[];
5
+ /**
6
+ * The path that was matched, with placeholders as declared — `/users/:id/` and not
7
+ * `/users/42/`. A metric labels a request by it, because a URL is unbounded and a series per
8
+ * URL is a series per caller.
9
+ */
10
+ route: string;
5
11
  }
6
12
  export interface Parameter {
7
13
  name: string;
@@ -4,6 +4,7 @@ import type { Directives } from './Directives.ts';
4
4
  import type { Context } from '../HTTP/index.ts';
5
5
  import type { Introspection } from '../Introspection.ts';
6
6
  export declare class Method {
7
+ #private;
7
8
  readonly endpoint: Endpoint | null;
8
9
  readonly directives: Directives;
9
10
  constructor(endpoint: Endpoint | null, directives: Directives);
@@ -13,6 +14,17 @@ export declare class Method {
13
14
  * states nothing of its own, and its directives still have their say.
14
15
  */
15
16
  explain(context: Context, parameters: Parameter[]): Promise<Introspection | null>;
17
+ /**
18
+ * What the method is, which is the route's and not the caller's: the operation's own
19
+ * description, what the directives fill in, and what a hidden method answers instead,
20
+ * which is nothing. Built once and answered to everyone admitted, so whoever reads it
21
+ * reads it and leaves it as it is.
22
+ *
23
+ * Under no key: a branch that changes is merged as methods of its own, and this one is
24
+ * dropped with the node that holds it.
25
+ */
26
+ describe(parameters: Parameter[]): Promise<Introspection | null>;
27
+ private build;
16
28
  close(): Promise<void>;
17
29
  }
18
30
  export type Methods = Record<string, Method>;
@@ -2,6 +2,8 @@ import { order } from '../Introspection.js';
2
2
  export class Method {
3
3
  endpoint;
4
4
  directives;
5
+ /** What this method is, built on the first answer that describes it. See `described`. */
6
+ #description;
5
7
  constructor(endpoint, directives) {
6
8
  this.endpoint = endpoint;
7
9
  this.directives = directives;
@@ -12,8 +14,26 @@ export class Method {
12
14
  * states nothing of its own, and its directives still have their say.
13
15
  */
14
16
  async explain(context, parameters) {
17
+ if (!(await this.directives.admits(context)))
18
+ return null;
19
+ return await this.describe(parameters);
20
+ }
21
+ /**
22
+ * What the method is, which is the route's and not the caller's: the operation's own
23
+ * description, what the directives fill in, and what a hidden method answers instead,
24
+ * which is nothing. Built once and answered to everyone admitted, so whoever reads it
25
+ * reads it and leaves it as it is.
26
+ *
27
+ * Under no key: a branch that changes is merged as methods of its own, and this one is
28
+ * dropped with the node that holds it.
29
+ */
30
+ async describe(parameters) {
31
+ this.#description ??= this.build(parameters);
32
+ return await this.#description;
33
+ }
34
+ async build(parameters) {
15
35
  const introspection = this.endpoint === null ? {} : await this.endpoint.explain(parameters);
16
- const described = await this.directives.explain(context, introspection);
36
+ const described = this.directives.describe(introspection);
17
37
  return described === null ? null : order(described);
18
38
  }
19
39
  async close() {
@@ -1 +1 @@
1
- {"version":3,"file":"Method.js","sourceRoot":"","sources":["../../source/RTD/Method.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAA;AAG3C,MAAM,OAAO,MAAM;IACD,QAAQ,CAAiB;IACzB,UAAU,CAAY;IAEtC,YAAmB,QAAyB,EAAE,UAAsB;QAClE,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAA;QACxB,IAAI,CAAC,UAAU,GAAG,UAAU,CAAA;IAC9B,CAAC;IAED;;;;OAIG;IACI,KAAK,CAAC,OAAO,CAClB,OAAgB,EAChB,UAAuB;QAEvB,MAAM,aAAa,GACjB,IAAI,CAAC,QAAQ,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,UAAU,CAAC,CAAA;QAEvE,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,OAAO,EAAE,aAAa,CAAC,CAAA;QAEvE,OAAO,SAAS,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAA;IACrD,CAAC;IAEM,KAAK,CAAC,KAAK;QAChB,MAAM,IAAI,CAAC,QAAQ,EAAE,KAAK,EAAE,CAAA;IAC9B,CAAC;CACF"}
1
+ {"version":3,"file":"Method.js","sourceRoot":"","sources":["../../source/RTD/Method.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAA;AAG3C,MAAM,OAAO,MAAM;IACD,QAAQ,CAAiB;IACzB,UAAU,CAAY;IAEtC,yFAAyF;IACzF,YAAY,CAAgC;IAE5C,YAAmB,QAAyB,EAAE,UAAsB;QAClE,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAA;QACxB,IAAI,CAAC,UAAU,GAAG,UAAU,CAAA;IAC9B,CAAC;IAED;;;;OAIG;IACI,KAAK,CAAC,OAAO,CAClB,OAAgB,EAChB,UAAuB;QAEvB,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;YAAE,OAAO,IAAI,CAAA;QAEzD,OAAO,MAAM,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAA;IACxC,CAAC;IAED;;;;;;;;OAQG;IACI,KAAK,CAAC,QAAQ,CAAC,UAAuB;QAC3C,IAAI,CAAC,YAAY,KAAK,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAA;QAE5C,OAAO,MAAM,IAAI,CAAC,YAAY,CAAA;IAChC,CAAC;IAEO,KAAK,CAAC,KAAK,CAAC,UAAuB;QACzC,MAAM,aAAa,GACjB,IAAI,CAAC,QAAQ,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,UAAU,CAAC,CAAA;QAEvE,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAA;QAEzD,OAAO,SAAS,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAA;IACrD,CAAC;IAEM,KAAK,CAAC,KAAK;QAChB,MAAM,IAAI,CAAC,QAAQ,EAAE,KAAK,EAAE,CAAA;IAC9B,CAAC;CACF"}
@@ -13,7 +13,7 @@ export declare class Node {
13
13
  private readonly protected;
14
14
  private routes;
15
15
  constructor(routes: Route[], methods: Methods, properties: Properties);
16
- match(fragments: string[], parameters?: Parameter[]): Match | null;
16
+ match(fragments: string[], parameters?: Parameter[], segments?: Segment[]): Match | null;
17
17
  /**
18
18
  * Returns the nodes the merged branch has landed on, so that its expiration
19
19
  * can later be extended without rebuilding anything.
@@ -49,6 +49,8 @@ export interface Mount {
49
49
  segments: Segment[];
50
50
  verb: string;
51
51
  method: Method;
52
+ /** what the method is mounted on, which is what says whether it is still served */
53
+ node: Node;
52
54
  }
53
55
  export interface Properties {
54
56
  protected: boolean;
@@ -15,14 +15,16 @@ export class Node {
15
15
  this.intermediate = this.routes.findIndex((route) => route.root) !== -1;
16
16
  this.sort();
17
17
  }
18
- match(fragments, parameters = []) {
18
+ match(fragments, parameters = [], segments = []) {
19
19
  // a route only pushes, so what a failed one added is cut off rather than the array copied
20
20
  const mark = parameters.length;
21
+ const pieces = segments.length;
21
22
  for (const route of this.routes) {
22
- const match = route.match(fragments, parameters);
23
+ const match = route.match(fragments, parameters, segments);
23
24
  if (match !== null)
24
25
  return match;
25
26
  parameters.length = mark;
27
+ segments.length = pieces;
26
28
  }
27
29
  return null;
28
30
  }
@@ -50,7 +52,7 @@ export class Node {
50
52
  *walk(segments, trunk = false) {
51
53
  if (trunk || !this.intermediate)
52
54
  for (const [verb, method] of Object.entries(this.methods))
53
- yield { segments, verb, method };
55
+ yield { segments, verb, method, node: this };
54
56
  for (const route of this.routes)
55
57
  yield* route.walk(segments);
56
58
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Node.js","sourceRoot":"","sources":["../../source/RTD/Node.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Node.js","sourceRoot":"","sources":["../../source/RTD/Node.ts"],"names":[],"mappings":"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"}
@@ -8,7 +8,7 @@ export declare class Route {
8
8
  readonly node: Node;
9
9
  private readonly wildcard;
10
10
  constructor(segments: Segment[], node: Node);
11
- match(fragments: string[], parameters: Parameter[]): Match | null;
11
+ match(fragments: string[], parameters: Parameter[], segments: Segment[]): Match | null;
12
12
  walk(prefix: Segment[]): Generator<Mount>;
13
13
  equals(route: Route): boolean;
14
14
  merge(route: Route): Node[];
@@ -1,3 +1,4 @@
1
+ import { template } from './segment.js';
1
2
  export class Route {
2
3
  root;
3
4
  variables = 0;
@@ -14,9 +15,11 @@ export class Route {
14
15
  this.wildcard ||= segment.wildcard === true;
15
16
  }
16
17
  }
17
- match(fragments, parameters) {
18
+ match(fragments, parameters, segments) {
18
19
  if (Date.now() >= this.node.expiration)
19
20
  return null;
21
+ // what a request matched is a template, and the pieces of it are these
22
+ segments.push(...this.segments);
20
23
  for (let i = 0; i < this.segments.length; i++) {
21
24
  const segment = this.segments[i];
22
25
  if (segment.fragment !== null && segment.fragment !== fragments[i])
@@ -34,9 +37,9 @@ export class Route {
34
37
  }
35
38
  const exact = this.segments.length === fragments.length;
36
39
  if ((exact && !this.node.intermediate) || this.wildcard)
37
- return { node: this.node, parameters };
40
+ return { node: this.node, parameters, route: template(segments) };
38
41
  else
39
- return this.matchNested(fragments, parameters);
42
+ return this.matchNested(fragments, parameters, segments);
40
43
  }
41
44
  *walk(prefix) {
42
45
  // an expired branch is not matched, so nothing under it is reachable to name
@@ -55,9 +58,9 @@ export class Route {
55
58
  merge(route) {
56
59
  return this.node.merge(route.node);
57
60
  }
58
- matchNested(fragments, parameters) {
61
+ matchNested(fragments, parameters, segments) {
59
62
  fragments = fragments.slice(this.segments.length);
60
- return this.node.match(fragments, parameters);
63
+ return this.node.match(fragments, parameters, segments);
61
64
  }
62
65
  }
63
66
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"Route.js","sourceRoot":"","sources":["../../source/RTD/Route.ts"],"names":[],"mappings":"AAIA,MAAM,OAAO,KAAK;IACA,IAAI,CAAS;IACb,SAAS,GAAW,CAAC,CAAA;IACrB,QAAQ,CAAW;IACnB,IAAI,CAAM;IACT,QAAQ,GAAY,KAAK,CAAA;IAE1C,YAAmB,QAAmB,EAAE,IAAU;QAChD,IAAI,CAAC,IAAI,GAAG,QAAQ,CAAC,MAAM,KAAK,CAAC,CAAA;QACjC,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAA;QACxB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;QAEhB,KAAK,MAAM,OAAO,IAAI,QAAQ;YAC5B,IAAI,OAAO,CAAC,QAAQ,KAAK,IAAI,EAAE,CAAC;gBAC9B,IAAI,CAAC,SAAS,EAAE,CAAA;gBAChB,IAAI,CAAC,QAAQ,KAAK,OAAO,CAAC,QAAQ,KAAK,IAAI,CAAA;YAC7C,CAAC;IACL,CAAC;IAEM,KAAK,CAAC,SAAmB,EAAE,UAAuB;QACvD,IAAI,IAAI,CAAC,GAAG,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU;YAAE,OAAO,IAAI,CAAA;QAEnD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAC9C,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAA;YAEhC,IAAI,OAAO,CAAC,QAAQ,KAAK,IAAI,IAAI,OAAO,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC;gBAAE,OAAO,IAAI,CAAA;YAE/E,IAAI,OAAO,CAAC,QAAQ,KAAK,IAAI,IAAI,OAAO,CAAC,WAAW,KAAK,IAAI;gBAC3D,UAAU,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,WAAW,EAAE,KAAK,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAA;YAE7E,IAAI,OAAO,CAAC,QAAQ,KAAK,IAAI,IAAI,OAAO,CAAC,QAAQ,KAAK,IAAI;gBACxD,UAAU,CAAC,IAAI,CAAC;oBACd,IAAI,EAAE,IAAI;oBACV,KAAK,EAAE,SAAS;yBACb,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC;yBAC/B,GAAG,CAAC,MAAM,CAAC;yBACX,IAAI,CAAC,GAAG,CAAC;iBACb,CAAC,CAAA;QACN,CAAC;QAED,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,KAAK,SAAS,CAAC,MAAM,CAAA;QAEvD,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,IAAI,CAAC,QAAQ;YACrD,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,UAAU,EAAE,CAAA;;YACnC,OAAO,IAAI,CAAC,WAAW,CAAC,SAAS,EAAE,UAAU,CAAC,CAAA;IACrD,CAAC;IAEM,CAAC,IAAI,CAAC,MAAiB;QAC5B,6EAA6E;QAC7E,IAAI,IAAI,CAAC,GAAG,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU;YAAE,OAAM;QAE9C,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAA;IACrD,CAAC;IAEM,MAAM,CAAC,KAAY;QACxB,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,KAAK,IAAI,CAAC,QAAQ,CAAC,MAAM;YAAE,OAAO,KAAK,CAAA;QAEhE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE;YAC3C,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,KAAK,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ;gBAAE,OAAO,KAAK,CAAA;QAE5E,OAAO,IAAI,CAAA;IACb,CAAC;IAEM,KAAK,CAAC,KAAY;QACvB,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;IACpC,CAAC;IAEO,WAAW,CAAC,SAAmB,EAAE,UAAuB;QAC9D,SAAS,GAAG,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAA;QAEjD,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,UAAU,CAAC,CAAA;IAC/C,CAAC;CACF;AAED;;;;;;;GAOG;AACH,SAAS,MAAM,CAAC,QAAgB;IAC9B,IAAI,CAAC;QACH,OAAO,kBAAkB,CAAC,QAAQ,CAAC,CAAA;IACrC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,QAAQ,CAAA;IACjB,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"Route.js","sourceRoot":"","sources":["../../source/RTD/Route.ts"],"names":[],"mappings":"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"}
@@ -8,10 +8,22 @@ export declare class Tree {
8
8
  private readonly trunk;
9
9
  private readonly endpoints;
10
10
  private readonly directives;
11
+ /** What has been read off the whole tree. See `derived`. */
12
+ private readonly memo;
11
13
  constructor(node: syntax.Node, endpoints: EndpointsFactory, directives: DirectiveFactory);
12
14
  match(path: string): Match | null;
13
15
  /** Every method in the tree, with the template it answers at. */
14
16
  walk(): Generator<Mount>;
17
+ /**
18
+ * What is read off the whole tree rather than off one route — the tools it publishes, the
19
+ * page that lists it — built on demand and dropped whole when a branch is merged. A merge
20
+ * is the only thing that changes what the tree holds; a branch that expires stops being
21
+ * walked, so what is derived from it says so by carrying the node it came from.
22
+ *
23
+ * Nothing that depends on the caller belongs here: the tree is one, and its callers are
24
+ * not.
25
+ */
26
+ derived<T>(key: string, build: () => T): T;
15
27
  merge(node: syntax.Node, extension: unknown): Node[];
16
28
  /**
17
29
  * Extends the expiration of an already merged branch, leaving its endpoints
@@ -8,6 +8,8 @@ export class Tree {
8
8
  trunk;
9
9
  endpoints;
10
10
  directives;
11
+ /** What has been read off the whole tree. See `derived`. */
12
+ memo = new Map();
11
13
  constructor(node, endpoints, directives) {
12
14
  this.endpoints = endpoints;
13
15
  this.directives = directives;
@@ -19,7 +21,8 @@ export class Tree {
19
21
  if (path === '/')
20
22
  return {
21
23
  node: this.trunk,
22
- parameters: []
24
+ parameters: [],
25
+ route: '/'
23
26
  };
24
27
  const fragments = fragment(path);
25
28
  return this.trunk.match(fragments);
@@ -28,9 +31,24 @@ export class Tree {
28
31
  walk() {
29
32
  return this.trunk.walk([], TRUNK);
30
33
  }
34
+ /**
35
+ * What is read off the whole tree rather than off one route — the tools it publishes, the
36
+ * page that lists it — built on demand and dropped whole when a branch is merged. A merge
37
+ * is the only thing that changes what the tree holds; a branch that expires stops being
38
+ * walked, so what is derived from it says so by carrying the node it came from.
39
+ *
40
+ * Nothing that depends on the caller belongs here: the tree is one, and its callers are
41
+ * not.
42
+ */
43
+ derived(key, build) {
44
+ if (!this.memo.has(key))
45
+ this.memo.set(key, build());
46
+ return this.memo.get(key);
47
+ }
31
48
  merge(node, extension) {
32
49
  const branch = this.createNode(node, !PROTECTED, extension);
33
50
  announce(branch);
51
+ this.memo.clear();
34
52
  return this.trunk.merge(branch);
35
53
  }
36
54
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"Tree.js","sourceRoot":"","sources":["../../source/RTD/Tree.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAA;AAClC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAA;AACnD,OAAO,EAAE,SAAS,EAAE,MAAM,2CAA2C,CAAA;AACrE,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AACpD,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAA;AAQvC,MAAM,OAAO,IAAI;IACE,IAAI,CAAa;IACjB,KAAK,CAAM;IACX,SAAS,CAAkB;IAC3B,UAAU,CAAkB;IAE7C,YACE,IAAiB,EACjB,SAA2B,EAC3B,UAA4B;QAE5B,IAAI,CAAC,SAAS,GAAG,SAAS,CAAA;QAC1B,IAAI,CAAC,UAAU,GAAG,UAAU,CAAA;QAC5B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;QAChB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,SAAS,CAAC,CAAA;QAE7C,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IACtB,CAAC;IAEM,KAAK,CAAC,IAAY;QACvB,IAAI,IAAI,KAAK,GAAG;YACd,OAAO;gBACL,IAAI,EAAE,IAAI,CAAC,KAAK;gBAChB,UAAU,EAAE,EAAE;aACf,CAAA;QAEH,MAAM,SAAS,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAA;QAEhC,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,CAAA;IACpC,CAAC;IAED,iEAAiE;IAC1D,IAAI;QACT,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,KAAK,CAAC,CAAA;IACnC,CAAC;IAEM,KAAK,CAAC,IAAiB,EAAE,SAAkB;QAChD,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC,SAAS,EAAE,SAAS,CAAC,CAAA;QAE3D,QAAQ,CAAC,MAAM,CAAC,CAAA;QAEhB,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;IACjC,CAAC;IAED;;;OAGG;IACI,OAAO,CAAC,KAAa;QAC1B,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,EAAE,CAAA;QAE3C,KAAK,MAAM,IAAI,IAAI,KAAK;YAAE,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAA;IAClD,CAAC;IAEM,OAAO;QACZ,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAA;IAC3B,CAAC;IAEO,UAAU,CAAC,IAAiB,EAAE,OAAgB,EAAE,SAAmB;QACzE,MAAM,OAAO,GAAY;YACvB,SAAS,EAAE,OAAO;YAClB,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,UAAU,EAAE;gBACV,OAAO,EAAE,IAAI,CAAC,UAAU;gBACxB,uEAAuE;gBACvE,sEAAsE;gBACtE,6DAA6D;gBAC7D,KAAK,EAAE,IAAI,KAAK,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,IAAI,EAAE,CAAC;aAC9D;YACD,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC;YACtB,SAAS;SACV,CAAA;QAED,OAAO,UAAU,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;IAClC,CAAC;CACF;AAED;;;GAGG;AACH,SAAS,QAAQ,CAAC,IAAU;IAC1B,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAA;IAE9B,KAAK,MAAM,EAAE,QAAQ,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,KAAK,CAAC,EAAE,CAAC;QAChD,MAAM,KAAK,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAA;QAEhC,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC;YAAE,SAAQ;QAE7B,0EAA0E;QAC1E,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,CAAC,UAAU,CAAC,SAAS,GAAG,GAAG,CAAC,EAAE,CAAC;YAC7D,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;YAEf,OAAO,CAAC,IAAI,CAAC,6CAA6C,EAAE,EAAE,KAAK,EAAE,CAAC,CAAA;YAEtE,SAAQ;QACV,CAAC;QAED,MAAM,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAA;QAEjC,IAAI,OAAO,KAAK,IAAI;YAAE,SAAQ;QAE9B,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;QAEf,OAAO,CAAC,IAAI,CAAC,0CAA0C,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAA;IAC9E,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,SAAS,KAAK,CAAC,SAAkB;IAC/B,IAAI,SAAS,KAAK,IAAI,IAAI,OAAO,SAAS,KAAK,QAAQ;QAAE,OAAO,EAAE,CAAA;IAElE,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,GAAG,SAAoC,CAAA;IAErE,OAAO,OAAO,SAAS,KAAK,QAAQ,IAAI,OAAO,SAAS,KAAK,QAAQ;QACnE,CAAC,CAAC,GAAG,SAAS,IAAI,SAAS,EAAE;QAC7B,CAAC,CAAC,EAAE,CAAA;AACR,CAAC;AAED,MAAM,SAAS,GAAG,IAAI,CAAA;AACtB,MAAM,KAAK,GAAG,IAAI,CAAA"}
1
+ {"version":3,"file":"Tree.js","sourceRoot":"","sources":["../../source/RTD/Tree.ts"],"names":[],"mappings":"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"}
@@ -14,3 +14,5 @@ export type Segment = {
14
14
  * for a segment the caller cannot name, so there is nothing to substitute.
15
15
  */
16
16
  export declare function variables(segments: Segment[]): Parameter[];
17
+ /** What the segments a request matched read as: a path with its placeholders, not its values. */
18
+ export declare function template(segments: Segment[]): string;