@procedures/client 0.13.2 → 0.14.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 (92) hide show
  1. package/CHANGELOG.md +71 -0
  2. package/README.md +12 -3
  3. package/dist/.tsbuildinfo +1 -1
  4. package/dist/adapters/http/server/body.d.ts +17 -0
  5. package/dist/adapters/http/server/body.d.ts.map +1 -0
  6. package/dist/adapters/http/server/body.js +44 -0
  7. package/dist/adapters/http/server/body.js.map +1 -0
  8. package/dist/adapters/http/server/cors.d.ts +24 -1
  9. package/dist/adapters/http/server/cors.d.ts.map +1 -1
  10. package/dist/adapters/http/server/cors.js +33 -1
  11. package/dist/adapters/http/server/cors.js.map +1 -1
  12. package/dist/adapters/http/server/handler.d.ts +3 -1
  13. package/dist/adapters/http/server/handler.d.ts.map +1 -1
  14. package/dist/adapters/http/server/handler.js +9 -34
  15. package/dist/adapters/http/server/handler.js.map +1 -1
  16. package/dist/browser.d.ts +4 -3
  17. package/dist/browser.d.ts.map +1 -1
  18. package/dist/browser.js +4 -1
  19. package/dist/browser.js.map +1 -1
  20. package/dist/events/publisher.d.ts.map +1 -1
  21. package/dist/events/publisher.js +10 -5
  22. package/dist/events/publisher.js.map +1 -1
  23. package/dist/events/rows.d.ts +12 -4
  24. package/dist/events/rows.d.ts.map +1 -1
  25. package/dist/events/rows.js +13 -16
  26. package/dist/events/rows.js.map +1 -1
  27. package/dist/index.d.ts +5 -2
  28. package/dist/index.d.ts.map +1 -1
  29. package/dist/index.js +8 -2
  30. package/dist/index.js.map +1 -1
  31. package/dist/node.d.ts +10 -1
  32. package/dist/node.d.ts.map +1 -1
  33. package/dist/node.js +11 -0
  34. package/dist/node.js.map +1 -1
  35. package/dist/procedures/collection/admission.d.ts +77 -0
  36. package/dist/procedures/collection/admission.d.ts.map +1 -0
  37. package/dist/procedures/collection/admission.js +204 -0
  38. package/dist/procedures/collection/admission.js.map +1 -0
  39. package/dist/procedures/collection/changes.d.ts +3 -1
  40. package/dist/procedures/collection/changes.d.ts.map +1 -1
  41. package/dist/procedures/collection/changes.js +10 -6
  42. package/dist/procedures/collection/changes.js.map +1 -1
  43. package/dist/procedures/collection/index.d.ts +2 -0
  44. package/dist/procedures/collection/index.d.ts.map +1 -1
  45. package/dist/procedures/collection/index.js +2 -0
  46. package/dist/procedures/collection/index.js.map +1 -1
  47. package/dist/procedures/collection/patch-in-parts.d.ts +15 -0
  48. package/dist/procedures/collection/patch-in-parts.d.ts.map +1 -0
  49. package/dist/procedures/collection/patch-in-parts.js +47 -0
  50. package/dist/procedures/collection/patch-in-parts.js.map +1 -0
  51. package/dist/procedures/collection/procedures.d.ts +8 -0
  52. package/dist/procedures/collection/procedures.d.ts.map +1 -1
  53. package/dist/procedures/collection/procedures.js +54 -77
  54. package/dist/procedures/collection/procedures.js.map +1 -1
  55. package/dist/procedures/index.d.ts +2 -2
  56. package/dist/procedures/index.d.ts.map +1 -1
  57. package/dist/procedures/index.js +3 -1
  58. package/dist/procedures/index.js.map +1 -1
  59. package/dist/procedures/invoke.d.ts +5 -2
  60. package/dist/procedures/invoke.d.ts.map +1 -1
  61. package/dist/procedures/invoke.js +5 -1
  62. package/dist/procedures/invoke.js.map +1 -1
  63. package/dist/procedures/types.d.ts +7 -0
  64. package/dist/procedures/types.d.ts.map +1 -1
  65. package/dist/procedures/types.js.map +1 -1
  66. package/dist/server/index.d.ts +70 -5
  67. package/dist/server/index.d.ts.map +1 -1
  68. package/dist/server/index.js +26 -3
  69. package/dist/server/index.js.map +1 -1
  70. package/dist/server/procedure-server.d.ts +1 -0
  71. package/dist/server/procedure-server.d.ts.map +1 -1
  72. package/dist/server/procedure-server.js +6 -3
  73. package/dist/server/procedure-server.js.map +1 -1
  74. package/package.json +12 -1
  75. package/src/adapters/http/server/body.ts +43 -0
  76. package/src/adapters/http/server/cors.ts +42 -1
  77. package/src/adapters/http/server/handler.ts +11 -32
  78. package/src/browser.ts +9 -1
  79. package/src/events/publisher.ts +8 -5
  80. package/src/events/rows.ts +19 -6
  81. package/src/index.ts +9 -6
  82. package/src/node.ts +13 -1
  83. package/src/procedures/collection/admission.ts +243 -0
  84. package/src/procedures/collection/changes.ts +11 -5
  85. package/src/procedures/collection/index.ts +4 -0
  86. package/src/procedures/collection/patch-in-parts.ts +56 -0
  87. package/src/procedures/collection/procedures.ts +58 -80
  88. package/src/procedures/index.ts +7 -0
  89. package/src/procedures/invoke.ts +7 -2
  90. package/src/procedures/types.ts +8 -0
  91. package/src/server/index.ts +94 -17
  92. package/src/server/procedure-server.ts +6 -3
@@ -1 +1 @@
1
- {"version":3,"file":"publisher.js","sourceRoot":"","sources":["../../src/events/publisher.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"publisher.js","sourceRoot":"","sources":["../../src/events/publisher.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAE,eAAe,EAAmB,MAAM,yBAAyB,CAAC;AAC3E,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,MAAM,qCAAqC,CAAC;AAClG,OAAO,EAAE,qBAAqB,EAAE,eAAe,EAAE,MAAM,uCAAuC,CAAC;AAI/F,OAAO,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAC7C,OAAO,EAAE,qBAAqB,EAAuC,MAAM,aAAa,CAAC;AACzF,OAAO,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAElD,2DAA2D;AAC3D,MAAM,CAAC,MAAM,uBAAuB,GAAG,EAAE,CAAC;AAE1C,gDAAgD;AAChD,MAAM,CAAC,MAAM,gBAAgB,GAAG,GAAG,CAAC;AAkDpC,yFAAyF;AACzF,SAAS,WAAW,CAAC,KAAwB;IAC3C,OAAO,EAAE,IAAI,EAAE,CAAC,GAAG,qBAAqB,CAAC,EAAE,QAAQ,EAAE,EAAE,OAAO,EAAE,EAAE,KAAK,EAAE,CAAC,GAAG,KAAK,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,EAA6B,CAAC;AACnI,CAAC;AAED,oDAAoD;AACpD,MAAM,UAAU,YAAY,CAAC,IAAe;IAC1C,IAAI,OAAO,IAAI,KAAK,UAAU;QAAE,OAAO,IAAI,CAAC;IAC5C,MAAM,KAAK,GAAG,IAAI,GAAG,EAAU,CAAC;IAChC,MAAM,QAAQ,GAAa,EAAE,CAAC;IAC9B,IAAI,GAAG,GAAG,KAAK,CAAC;IAChB,KAAK,MAAM,OAAO,IAAI,IAAI,EAAE,CAAC;QAC3B,IAAI,OAAO,KAAK,GAAG;YAAE,GAAG,GAAG,IAAI,CAAC;aAC3B,IAAI,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC;YAAE,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;;YAC/D,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IAC1B,CAAC;IACD,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,GAAG,IAAI,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC;AACnG,CAAC;AAED,mDAAmD;AACnD,MAAM,kBAAmB,SAAQ,KAAK;IAClB,IAAI,GAAG,oBAAoB,CAAC;IACrC,IAAI,GAAG,iBAAiB,CAAC;IACzB,SAAS,GAAG,KAAK,CAAC;CAC5B;AAED,uGAAuG;AACvG,SAAS,YAAY;IACnB,OAAO,MAAM,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,mCAAmC,CAAC,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;AACjH,CAAC;AAED;;;GAGG;AACH,SAAS,YAAY,CAAC,KAAa;IACjC,OAAO,MAAM,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,+BAA+B,KAAK,6BAA6B,CAAC,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC;AAClJ,CAAC;AAED,MAAM,WAAW,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;AAE5D,MAAM,cAAc,GAAG,CAAC,CAAC,MAAM,CAAC;IAC9B,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC,QAAQ,CAAC,gCAAgC,CAAC;CAC5G,CAAC,CAAC;AAEH,MAAM,eAAe,GAAG,CAAC,CAAC,kBAAkB,CAAC,MAAM,EAAE;IACnD,CAAC,CAAC,MAAM,CAAC;QACP,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC;QAC7B,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,CAAC,gEAAgE,CAAC;KACvG,CAAC;IACF,CAAC,CAAC,MAAM,CAAC;QACP,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC;QACxB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;QACjB,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE;QACjB,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,qDAAqD,CAAC;QACrF,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,mEAAmE,CAAC;KACnH,CAAC;CACH,CAAC,CAAC;AAEH;;;;;GAKG;AACH,MAAM,iBAAiB;IAgBF,MAAM;IACN,MAAM;IACN,OAAO;IAEP,KAAK;IAEL,UAAU;IArBrB,YAAY,CAAwB;IAC3B,KAAK,GAAiD,EAAE,CAAC;IAClE,GAAG,GAAG,CAAC,CAAC;IACR,OAAO,GAAG,CAAC,CAAC;IACZ,MAAM,CAEA;IACN,MAAM,GAAG,KAAK,CAAC;IACf,OAAO,CAAU;IACR,YAAY,CAAgB;IAE7C,YACE,GAAa;IACb,sFAAsF;IACtF,MAAiE,EAChD,MAAc,EACd,MAA+B,EAC/B,OAAkD;IACnE,uFAAuF;IACtE,KAAwD;IACzE,mGAAmG;IAClF,UAAmC;sBANnC,MAAM;sBACN,MAAM;uBACN,OAAO;qBAEP,KAAK;0BAEL,UAAU;QAE3B,IAAI,CAAC,YAAY,GAAG,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC;QACnF,mFAAmF;QACnF,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,QAAQ,CAAC,EAAE,EAAE,CACnD,GAAG,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,CAC3H,CAAC;QACF,MAAM,EAAE,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;IAClE,CAAC;IAED,gFAAgF;IAChF,cAAc;QACZ,IAAI,IAAI,CAAC,MAAM,EAAE,OAAO;YAAE,IAAI,CAAC,KAAK,EAAE,CAAC;QACvC,OAAO,IAAI,CAAC;IACd,CAAC;IAEgB,OAAO,GAAG,GAAS,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;IAEpD,gEAAgE;IACxD,IAAI,CAAC,KAAa,EAAE,IAAa;QACvC,IAAI,IAAI,CAAC,MAAM;YAAE,OAAO;QACxB,MAAM,KAAK,GAAG,EAAE,IAAI,EAAE,OAAgB,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC;QACvE,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAC3B,IAAI,MAAM,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACtC,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC;YACxB,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;YACpC,OAAO;QACT,CAAC;QACD,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YACrC,8EAA8E;YAC9E,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;YACnB,IAAI,CAAC,OAAO,EAAE,CAAC;QACjB,CAAC;QACD,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACzB,CAAC;IAED;;;OAGG;IACK,OAAO,CAAC,KAA4C;QAC1D,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAA0C,CAAC;QAC9E,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC/B,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;YAAE,OAAO,OAAO,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;QAChG,OAAO,aAAa,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAA6B,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;IACtJ,CAAC;IAED,gFAAgF;IACxE,WAAW,CAAC,KAA4C;QAC9D,IAAI,IAAI,CAAC,OAAO,KAAK,CAAC;YAAE,OAAO,KAAK,CAAC;QACrC,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;QAC7B,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC;QACjB,OAAO,EAAE,GAAG,KAAK,EAAE,OAAO,EAAE,CAAC;IAC/B,CAAC;IAED,IAAI;QACF,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YACtB,MAAM,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;YACvC,IAAI,CAAC,YAAY,GAAG,SAAS,CAAC;YAC9B,OAAO,OAAO,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,YAAY,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;QAC/D,CAAC;QACD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;QACjC,IAAI,KAAK;YAAE,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QACtC,IAAI,IAAI,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;YAC/B,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;YAC7B,IAAI,CAAC,OAAO,GAAG,SAAS,CAAC;YACzB,OAAO,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACjC,CAAC;QACD,IAAI,IAAI,CAAC,MAAM;YAAE,OAAO,OAAO,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;QAC1E,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrC,IAAI,CAAC,MAAM,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC;QACpC,CAAC,CAAC,CAAC;IACL,CAAC;IAED,MAAM;QACJ,IAAI,CAAC,KAAK,EAAE,CAAC;QACb,OAAO,OAAO,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;IAC3D,CAAC;IAED,CAAC,MAAM,CAAC,aAAa,CAAC;QACpB,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;OAGG;IACH,IAAI,CAAC,KAAc,EAAE,OAAO,GAA4B,EAAE;QACxD,IAAI,IAAI,CAAC,MAAM;YAAE,OAAO;QACxB,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAC3B,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC;QACxB,IAAI,CAAC,OAAO,EAAE,CAAC;QACf,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC;YACvB,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;YACtB,IAAI,CAAC,YAAY,GAAG,SAAS,CAAC;QAChC,CAAC;QACD,IAAI,MAAM;YAAE,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;;YAC5B,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;IAC5B,CAAC;IAED,4DAA4D;IAC5D,KAAK;QACH,IAAI,IAAI,CAAC,MAAM;YAAE,OAAO;QACxB,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAC3B,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC;QACxB,IAAI,CAAC,OAAO,EAAE,CAAC;QACf,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;QACtB,IAAI,CAAC,YAAY,GAAG,SAAS,CAAC;QAC9B,MAAM,EAAE,OAAO,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;IACpD,CAAC;IAED,4EAA4E;IACpE,OAAO;QACb,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QACnB,KAAK,MAAM,WAAW,IAAI,IAAI,CAAC,YAAY;YAAE,WAAW,EAAE,CAAC;QAC3D,IAAI,CAAC,MAAM,EAAE,mBAAmB,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QACxD,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IACrB,CAAC;CACF;AAED;;;;;;;;;;GAUG;AACH,MAAM,OAAO,cAAc;IACzB,2CAA2C;IAClC,GAAG,CAAW;IACvB,gGAAgG;IACvF,SAAS,CAAe;IAChB,KAAK,CAA6B;IAClC,KAAK,CAAiC;IACtC,KAAK,CAAuC;IAC7D,0FAA0F;IACzE,YAAY,CAAU;IACtB,MAAM,CAAS;IACf,IAAI,GAAG,IAAI,GAAG,EAAqB,CAAC;IAErD,YAAY,OAA8B;QACxC,IAAI,CAAC,GAAG,GAAG,OAAO,CAAC,GAAG,IAAI,iBAAiB,EAAE,CAAC;QAC9C,IAAI,CAAC,KAAK,GAAG,YAAY,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAC1C,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;QAC3B,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,oBAAoB,CAAC;QACnD,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC,KAAK,KAAK,SAAS,CAAC;QAChD,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,IAAI,IAAI,CAAC,CAAC,CAAC;QAC9D,IAAI,CAAC,SAAS,GAAG,eAAe,EAAE;aAC/B,IAAI,CAAC,CAAC,GAAG,qBAAqB,CAAC,CAAC;aAChC,KAAK,CAAC,cAAc,CAAC;aACrB,MAAM,CAAC,eAAe,CAAC;aACvB,IAAI,CAAC;YACJ,WAAW,EAAE,8GAA8G;YAC3H,OAAO,EAAE,EAAE,KAAK,EAAE,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE;YAC1C,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE;SAC5B,CAAC;aACD,OAAO,CAAC,CAAC,KAAK,EAAE,KAAqB,EAAE,GAAqB,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,EAAE,GAAG,CAAC,CAAU,CAAC;aAC7G,KAAK,EAAkB,CAAC;IAC7B,CAAC;IAED,2FAA2F;IAC3F,OAAO,CAAI,KAAa,EAAE,IAAO;QAC/B,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IAC7B,CAAC;IAED,wCAAwC;IACxC,IAAI,aAAa;QACf,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;IACxB,CAAC;IAED;;;OAGG;IACH,GAAG;QACD,KAAK,MAAM,YAAY,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC;YAAE,YAAY,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC;IAC/E,CAAC;IAED;;;;;OAKG;IACK,KAAK,CAAC,QAAQ,CAAC,KAAa,EAAE,GAAqB;QACzD,MAAM,MAAM,GAAG,qBAAqB,CAAC,KAAK,EAAE,GAAG,CAAC,UAAU,CAAC,CAAC;QAC5D,IAAI,CAAC,MAAM;YAAE,OAAO,KAAK,CAAC;QAC1B,MAAM,SAAS,GAAG,MAAM,eAAe,CAAC,GAAG,EAAE,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC;QAClF,OAAO,qBAAqB,CAAC,MAAM,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;IAC7D,CAAC;IAED;;;;OAIG;IACK,OAAO,CAAC,KAAa,EAAE,GAAqB;QAClD,IAAI,CAAC,IAAI,CAAC,YAAY;YAAE,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACjD,MAAM,MAAM,GAAG,qBAAqB,CAAC,KAAK,EAAE,GAAG,CAAC,UAAU,CAAC,CAAC;QAC5D,OAAO,MAAM,CAAC,CAAC,CAAC,CAAC,cAAc,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAC3D,CAAC;IAED;;;OAGG;IACK,KAAK,CAAC,SAAS,CAAC,MAAyB,EAAE,GAAqB;QACtE,MAAM,MAAM,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;QACpC,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YAC3B,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;gBAAE,MAAM,IAAI,kBAAkB,CAAC,0BAA0B,KAAK,GAAG,CAAC,CAAC;QAC3F,CAAC;QACD,2FAA2F;QAC3F,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YAC3B,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;YACvC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;gBAAE,SAAS;YACjC,MAAM,OAAO,GAAG,iBAAiB,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC,UAAU,CAAC,CAAC;YACtE,IAAI,OAAO;gBAAE,MAAM,IAAI,eAAe,CAAC,WAAW,EAAE,cAAc,KAAK,MAAM,OAAO,CAAC,OAAO,EAAE,EAAE,GAAG,CAAC,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;QAC5H,CAAC;QACD,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,GAAc,EAAE,UAAU,EAAE,GAAG,CAAC,UAAU,EAAE,QAAQ,EAAE,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,GAAG,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;YACvI,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;gBAC3B,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,EAAE,CAAC;oBAC7B,MAAM,IAAI,eAAe,CAAC,WAAW,EAAE,yDAAyD,KAAK,GAAG,EAAE,GAAG,CAAC,IAAI,EAAE,mBAAmB,CAAC,CAAC;gBAC3I,CAAC;YACH,CAAC;QACH,CAAC;QACD,MAAM,MAAM,GAAqC,EAAE,CAAC;QACpD,KAAK,MAAM,KAAK,IAAI,MAAM;YAAE,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;QAClF,MAAM,YAAY,GAAG,IAAI,iBAAiB,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,UAAU,CAAC,CAAC;QACvJ,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;QAC5B,OAAO,YAAY,CAAC,cAAc,EAAE,CAAC;IACvC,CAAC;CACF"}
@@ -7,13 +7,20 @@
7
7
  * reaches a subscriber only through the same filter as a read.
8
8
  *
9
9
  * The rows are on a symbol key, so they stay in this process: JSON does not take them.
10
+ *
11
+ * The rows can have a rule of their own too (`admit`): the rule of the rows of a collection
12
+ * (roadmap CLI-41). Each subscriber applies it after the filter of the host, with the invocation
13
+ * of its subscription.
10
14
  */
15
+ import type { AdmitItem, Invocation } from "../procedures/invoke.js";
11
16
  /** The rows of a published value, and the function that makes the value of the admitted rows. */
12
17
  export interface PublishedRows {
13
18
  /** The rows that the output filter examines, one at a time. */
14
19
  readonly rows: readonly unknown[];
15
20
  /** This function gives the value for a subscriber: `admitted[i]` tells if row `i` stays. */
16
21
  keep(admitted: readonly boolean[]): unknown;
22
+ /** The rule of the rows themselves, with the invocation of the subscription. A row stays only when it gives true. */
23
+ readonly admit?: AdmitItem | undefined;
17
24
  }
18
25
  /**
19
26
  * This function gives the value with its rows, for the filter of each subscriber. The rows are not
@@ -23,9 +30,10 @@ export declare function withRows<T extends object>(value: T, rows: PublishedRows
23
30
  /** The rows of a published value, or undefined for a value without rows. */
24
31
  export declare function rowsOf(value: unknown): PublishedRows | undefined;
25
32
  /**
26
- * The value of a published value for one subscriber: each row passes the filter, and the value
27
- * keeps the admitted rows. An error of the filter refuses the row. Without rows or a filter, the
28
- * value stays as it is.
33
+ * The value of a published value for one subscriber: each row passes the filter of the host and
34
+ * the rule of the rows, and the value keeps the admitted rows. An error of a filter refuses the
35
+ * row. A rule of the rows refuses each row of a subscription without an invocation. Without rows,
36
+ * or without a filter and a rule, the value stays as it is.
29
37
  */
30
- export declare function admittedValue(value: unknown, admit: ((item: unknown) => Promise<boolean>) | undefined): Promise<unknown>;
38
+ export declare function admittedValue(value: unknown, admit: ((item: unknown) => Promise<boolean>) | undefined, invocation?: Invocation): Promise<unknown>;
31
39
  //# sourceMappingURL=rows.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"rows.d.ts","sourceRoot":"","sources":["../../src/events/rows.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,iGAAiG;AACjG,MAAM,WAAW,aAAa;IAC5B,+DAA+D;IAC/D,QAAQ,CAAC,IAAI,EAAE,SAAS,OAAO,EAAE,CAAC;IAClC,4FAA4F;IAC5F,IAAI,CAAC,QAAQ,EAAE,SAAS,OAAO,EAAE,GAAG,OAAO,CAAC;CAC7C;AAKD;;;GAGG;AACH,wBAAgB,QAAQ,CAAC,CAAC,SAAS,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,aAAa,GAAG,CAAC,CAE3E;AAED,4EAA4E;AAC5E,wBAAgB,MAAM,CAAC,KAAK,EAAE,OAAO,GAAG,aAAa,GAAG,SAAS,CAIhE;AAED;;;;GAIG;AACH,wBAAsB,aAAa,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC,IAAI,EAAE,OAAO,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC,GAAG,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC,CAK9H"}
1
+ {"version":3,"file":"rows.d.ts","sourceRoot":"","sources":["../../src/events/rows.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAErE,iGAAiG;AACjG,MAAM,WAAW,aAAa;IAC5B,+DAA+D;IAC/D,QAAQ,CAAC,IAAI,EAAE,SAAS,OAAO,EAAE,CAAC;IAClC,4FAA4F;IAC5F,IAAI,CAAC,QAAQ,EAAE,SAAS,OAAO,EAAE,GAAG,OAAO,CAAC;IAC5C,qHAAqH;IACrH,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,GAAG,SAAS,CAAC;CACxC;AAKD;;;GAGG;AACH,wBAAgB,QAAQ,CAAC,CAAC,SAAS,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,aAAa,GAAG,CAAC,CAE3E;AAED,4EAA4E;AAC5E,wBAAgB,MAAM,CAAC,KAAK,EAAE,OAAO,GAAG,aAAa,GAAG,SAAS,CAIhE;AAED;;;;;GAKG;AACH,wBAAsB,aAAa,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC,IAAI,EAAE,OAAO,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC,GAAG,SAAS,EAAE,UAAU,CAAC,EAAE,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC,CAUvJ"}
@@ -1,13 +1,3 @@
1
- /**
2
- * The rows of a published value (roadmap CLI-15).
3
- *
4
- * A value on the bus can hold rows of data: the values of a collection change event, for example.
5
- * The publisher of the remote events gives each row to the output filter of the host (`admitItem`)
6
- * for each subscriber, and each subscriber gets only the rows that its filter admits. Thus a row
7
- * reaches a subscriber only through the same filter as a read.
8
- *
9
- * The rows are on a symbol key, so they stay in this process: JSON does not take them.
10
- */
11
1
  /** The key of the rows of a published value. */
12
2
  const ROWS = Symbol.for("procedures.publishedRows");
13
3
  /**
@@ -25,15 +15,22 @@ export function rowsOf(value) {
25
15
  return typeof rows === "object" && rows !== null ? rows : undefined;
26
16
  }
27
17
  /**
28
- * The value of a published value for one subscriber: each row passes the filter, and the value
29
- * keeps the admitted rows. An error of the filter refuses the row. Without rows or a filter, the
30
- * value stays as it is.
18
+ * The value of a published value for one subscriber: each row passes the filter of the host and
19
+ * the rule of the rows, and the value keeps the admitted rows. An error of a filter refuses the
20
+ * row. A rule of the rows refuses each row of a subscription without an invocation. Without rows,
21
+ * or without a filter and a rule, the value stays as it is.
31
22
  */
32
- export async function admittedValue(value, admit) {
23
+ export async function admittedValue(value, admit, invocation) {
33
24
  const rows = rowsOf(value);
34
- if (!rows || !admit)
25
+ const own = rows?.admit;
26
+ if (!rows || (!admit && !own))
35
27
  return value;
36
- const admitted = await Promise.all(rows.rows.map((row) => admit(row).catch(() => false)));
28
+ const admits = async (row) => {
29
+ if (admit && !(await admit(row)))
30
+ return false;
31
+ return !own || (invocation !== undefined && (await own(row, invocation)) === true);
32
+ };
33
+ const admitted = await Promise.all(rows.rows.map((row) => admits(row).catch(() => false)));
37
34
  return rows.keep(admitted);
38
35
  }
39
36
  //# sourceMappingURL=rows.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"rows.js","sourceRoot":"","sources":["../../src/events/rows.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAUH,gDAAgD;AAChD,MAAM,IAAI,GAAkB,MAAM,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAC;AAEnE;;;GAGG;AACH,MAAM,UAAU,QAAQ,CAAmB,KAAQ,EAAE,IAAmB;IACtE,OAAO,MAAM,CAAC,cAAc,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC,CAAC;AAChF,CAAC;AAED,4EAA4E;AAC5E,MAAM,UAAU,MAAM,CAAC,KAAc;IACnC,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI;QAAE,OAAO,SAAS,CAAC;IAClE,MAAM,IAAI,GAAI,KAA8B,CAAC,IAAI,CAAC,CAAC;IACnD,OAAO,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,IAAI,CAAC,CAAC,CAAE,IAAsB,CAAC,CAAC,CAAC,SAAS,CAAC;AACzF,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,KAAc,EAAE,KAAwD;IAC1G,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IAC3B,IAAI,CAAC,IAAI,IAAI,CAAC,KAAK;QAAE,OAAO,KAAK,CAAC;IAClC,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAC1F,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AAC7B,CAAC"}
1
+ {"version":3,"file":"rows.js","sourceRoot":"","sources":["../../src/events/rows.ts"],"names":[],"mappings":"AA0BA,gDAAgD;AAChD,MAAM,IAAI,GAAkB,MAAM,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAC;AAEnE;;;GAGG;AACH,MAAM,UAAU,QAAQ,CAAmB,KAAQ,EAAE,IAAmB;IACtE,OAAO,MAAM,CAAC,cAAc,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC,CAAC;AAChF,CAAC;AAED,4EAA4E;AAC5E,MAAM,UAAU,MAAM,CAAC,KAAc;IACnC,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI;QAAE,OAAO,SAAS,CAAC;IAClE,MAAM,IAAI,GAAI,KAA8B,CAAC,IAAI,CAAC,CAAC;IACnD,OAAO,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,IAAI,CAAC,CAAC,CAAE,IAAsB,CAAC,CAAC,CAAC,SAAS,CAAC;AACzF,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,KAAc,EAAE,KAAwD,EAAE,UAAuB;IACnI,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IAC3B,MAAM,GAAG,GAAG,IAAI,EAAE,KAAK,CAAC;IACxB,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC,KAAK,IAAI,CAAC,GAAG,CAAC;QAAE,OAAO,KAAK,CAAC;IAC5C,MAAM,MAAM,GAAG,KAAK,EAAE,GAAY,EAAoB,EAAE;QACtD,IAAI,KAAK,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,GAAG,CAAC,CAAC;YAAE,OAAO,KAAK,CAAC;QAC/C,OAAO,CAAC,GAAG,IAAI,CAAC,UAAU,KAAK,SAAS,IAAI,CAAC,MAAM,GAAG,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC;IACrF,CAAC,CAAC;IACF,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAC3F,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AAC7B,CAAC"}
package/dist/index.d.ts CHANGED
@@ -5,14 +5,17 @@
5
5
  * and transport adapters.
6
6
  *
7
7
  * This entry point is for Node. It exports the browser-safe entry point
8
- * ("@procedures/client/browser") and the server transports, which use `http` and `ws`.
8
+ * ("@procedures/client/browser"). It also exports the server transports, which use `http` and
9
+ * `ws`, but these exports are deprecated (CLI-6 step 1). Their entry is "@procedures/client/node".
10
+ * The next MINOR removes them from this entry, so the root imports no `http` and no `ws`.
9
11
  *
10
12
  * The `WebSocketTransport` of this entry uses the global `WebSocket`, because some applications
11
13
  * bundle this entry for a browser. The Node entry "@procedures/client/node" has a
12
14
  * `WebSocketTransport` whose sockets are of the `ws` package: a drop ends them at once.
13
15
  */
14
16
  export * from "./browser.js";
15
- export { HttpServerTransport, defaultServerUrlStrategy, rpcServerUrlStrategy, } from "./server/index.js";
17
+ export { defaultServerUrlStrategy, rpcServerUrlStrategy } from "./adapters/http/server/strategies.js";
18
+ export { HttpServerTransport } from "./server/index.js";
16
19
  export type { HttpServerTransportOptions, HttpUrlStrategy, } from "./server/index.js";
17
20
  export { WebSocketServerTransport } from "./server/index.js";
18
21
  export { checkBrowserRequest, hasAmbientCredentials, isLoopbackHost, isLoopbackAddress, hostNameOf } from "./server/browser-guard.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,cAAc,cAAc,CAAC;AAK7B,OAAO,EACL,mBAAmB,EACnB,wBAAwB,EACxB,oBAAoB,GACrB,MAAM,mBAAmB,CAAC;AAC3B,YAAY,EACV,0BAA0B,EAC1B,eAAe,GAChB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,wBAAwB,EAAE,MAAM,mBAAmB,CAAC;AAC7D,OAAO,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,cAAc,EAAE,iBAAiB,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AACtI,YAAY,EAAE,mBAAmB,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAClG,YAAY,EACV,+BAA+B,EAC/B,oBAAoB,EACpB,0BAA0B,EAC1B,gBAAgB,GACjB,MAAM,mBAAmB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,cAAc,cAAc,CAAC;AAK7B,OAAO,EAAE,wBAAwB,EAAE,oBAAoB,EAAE,MAAM,sCAAsC,CAAC;AAItG,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,YAAY,EACV,0BAA0B,EAC1B,eAAe,GAChB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,wBAAwB,EAAE,MAAM,mBAAmB,CAAC;AAC7D,OAAO,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,cAAc,EAAE,iBAAiB,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AACtI,YAAY,EAAE,mBAAmB,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAElG,YAAY,EACV,+BAA+B,EAC/B,oBAAoB,EACpB,0BAA0B,EAC1B,gBAAgB,GACjB,MAAM,mBAAmB,CAAC"}
package/dist/index.js CHANGED
@@ -5,7 +5,9 @@
5
5
  * and transport adapters.
6
6
  *
7
7
  * This entry point is for Node. It exports the browser-safe entry point
8
- * ("@procedures/client/browser") and the server transports, which use `http` and `ws`.
8
+ * ("@procedures/client/browser"). It also exports the server transports, which use `http` and
9
+ * `ws`, but these exports are deprecated (CLI-6 step 1). Their entry is "@procedures/client/node".
10
+ * The next MINOR removes them from this entry, so the root imports no `http` and no `ws`.
9
11
  *
10
12
  * The `WebSocketTransport` of this entry uses the global `WebSocket`, because some applications
11
13
  * bundle this entry for a browser. The Node entry "@procedures/client/node" has a
@@ -15,7 +17,11 @@ export * from "./browser.js";
15
17
  // ============================================================================
16
18
  // Server Transports (Node only)
17
19
  // ============================================================================
18
- export { HttpServerTransport, defaultServerUrlStrategy, rpcServerUrlStrategy, } from "./server/index.js";
20
+ export { defaultServerUrlStrategy, rpcServerUrlStrategy } from "./adapters/http/server/strategies.js";
21
+ // Deprecated (CLI-6 step 1): import these from "@procedures/client/node". The next MINOR removes
22
+ // them from the root. ./server/index.ts holds the deprecated aliases, so an editor marks each old
23
+ // import, and each alias is the same class or type as the export of ./node.
24
+ export { HttpServerTransport } from "./server/index.js";
19
25
  export { WebSocketServerTransport } from "./server/index.js";
20
26
  export { checkBrowserRequest, hasAmbientCredentials, isLoopbackHost, isLoopbackAddress, hostNameOf } from "./server/browser-guard.js";
21
27
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,cAAc,cAAc,CAAC;AAE7B,+EAA+E;AAC/E,gCAAgC;AAChC,+EAA+E;AAC/E,OAAO,EACL,mBAAmB,EACnB,wBAAwB,EACxB,oBAAoB,GACrB,MAAM,mBAAmB,CAAC;AAK3B,OAAO,EAAE,wBAAwB,EAAE,MAAM,mBAAmB,CAAC;AAC7D,OAAO,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,cAAc,EAAE,iBAAiB,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,cAAc,cAAc,CAAC;AAE7B,+EAA+E;AAC/E,gCAAgC;AAChC,+EAA+E;AAC/E,OAAO,EAAE,wBAAwB,EAAE,oBAAoB,EAAE,MAAM,sCAAsC,CAAC;AACtG,iGAAiG;AACjG,kGAAkG;AAClG,4EAA4E;AAC5E,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAKxD,OAAO,EAAE,wBAAwB,EAAE,MAAM,mBAAmB,CAAC;AAC7D,OAAO,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,cAAc,EAAE,iBAAiB,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC"}
package/dist/node.d.ts CHANGED
@@ -18,18 +18,27 @@
18
18
  * The option `addressing` of `procedureHandler` gives the method and the payload of a request
19
19
  * (CLI-31). `urlAddressing()` is the default, and `bodyPathAddressing()` reads the path from the
20
20
  * body of a single endpoint.
21
+ *
22
+ * The server transports are in this entry too (CLI-6): `HttpServerTransport`, the Express shim
23
+ * over `procedureHandler`, and `WebSocketServerTransport`. The root and `./server` also export
24
+ * them, but these exports are deprecated. The next MINOR removes them, so the root imports no
25
+ * `http` and no `ws`.
21
26
  */
22
27
  export { WebSocketTransport } from "./adapters/websocket/client/node.js";
23
28
  export type { WebSocketTransportOptions, WebSocketClass } from "./adapters/websocket/client/types.js";
24
29
  export { writeNdjsonStream } from "./adapters/http/server/ndjson.js";
25
30
  export type { WriteNdjsonStreamOptions, NdjsonError } from "./adapters/http/server/ndjson.js";
26
31
  export { procedureHandler } from "./adapters/http/server/handler.js";
32
+ export { readJsonBody, BodyError } from "./adapters/http/server/body.js";
27
33
  export type { ProcedureHandlerOptions, NodeProcedureHandler, NodeUrlStrategy, UrlRequest } from "./adapters/http/server/handler.js";
28
- export type { CorsOptions } from "./adapters/http/server/cors.js";
34
+ export type { CorsOptions, CredentialedCorsOptions } from "./adapters/http/server/cors.js";
35
+ export { credentialedCors } from "./adapters/http/server/cors.js";
29
36
  export type { RoutedRequest } from "./adapters/http/server/strategies.js";
30
37
  export { defaultServerUrlStrategy, rpcServerUrlStrategy } from "./adapters/http/server/strategies.js";
31
38
  export { urlAddressing, bodyPathAddressing } from "./adapters/http/server/addressing.js";
32
39
  export type { Addressing, CallAddress, UrlAddressingOptions, BodyPathAddressingOptions } from "./adapters/http/server/addressing.js";
40
+ export { HttpServerTransport } from "./adapters/http/server/transport.js";
41
+ export type { HttpServerTransportOptions, HttpUrlStrategy } from "./adapters/http/server/types.js";
33
42
  export { upgradeHandler } from "./adapters/websocket/server/upgrade.js";
34
43
  export type { UpgradeHandlerOptions, NodeUpgradeHandler } from "./adapters/websocket/server/upgrade.js";
35
44
  export { WebSocketServerTransport } from "./adapters/websocket/server/transport.js";
@@ -1 +1 @@
1
- {"version":3,"file":"node.d.ts","sourceRoot":"","sources":["../src/node.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AACzE,YAAY,EAAE,yBAAyB,EAAE,cAAc,EAAE,MAAM,sCAAsC,CAAC;AACtG,OAAO,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AACrE,YAAY,EAAE,wBAAwB,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AAC9F,OAAO,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AACrE,YAAY,EAAE,uBAAuB,EAAE,oBAAoB,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,mCAAmC,CAAC;AACpI,YAAY,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAClE,YAAY,EAAE,aAAa,EAAE,MAAM,sCAAsC,CAAC;AAC1E,OAAO,EAAE,wBAAwB,EAAE,oBAAoB,EAAE,MAAM,sCAAsC,CAAC;AAEtG,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,sCAAsC,CAAC;AACzF,YAAY,EAAE,UAAU,EAAE,WAAW,EAAE,oBAAoB,EAAE,yBAAyB,EAAE,MAAM,sCAAsC,CAAC;AACrI,OAAO,EAAE,cAAc,EAAE,MAAM,wCAAwC,CAAC;AACxE,YAAY,EAAE,qBAAqB,EAAE,kBAAkB,EAAE,MAAM,wCAAwC,CAAC;AACxG,OAAO,EAAE,wBAAwB,EAAE,MAAM,0CAA0C,CAAC;AACpF,YAAY,EACV,+BAA+B,EAC/B,oBAAoB,EACpB,0BAA0B,EAC1B,gBAAgB,EAChB,iBAAiB,EACjB,sBAAsB,GACvB,MAAM,sCAAsC,CAAC"}
1
+ {"version":3,"file":"node.d.ts","sourceRoot":"","sources":["../src/node.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEH,OAAO,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AACzE,YAAY,EAAE,yBAAyB,EAAE,cAAc,EAAE,MAAM,sCAAsC,CAAC;AACtG,OAAO,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AACrE,YAAY,EAAE,wBAAwB,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AAC9F,OAAO,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AAErE,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,gCAAgC,CAAC;AACzE,YAAY,EAAE,uBAAuB,EAAE,oBAAoB,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,mCAAmC,CAAC;AACpI,YAAY,EAAE,WAAW,EAAE,uBAAuB,EAAE,MAAM,gCAAgC,CAAC;AAE3F,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAClE,YAAY,EAAE,aAAa,EAAE,MAAM,sCAAsC,CAAC;AAC1E,OAAO,EAAE,wBAAwB,EAAE,oBAAoB,EAAE,MAAM,sCAAsC,CAAC;AAEtG,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,sCAAsC,CAAC;AACzF,YAAY,EAAE,UAAU,EAAE,WAAW,EAAE,oBAAoB,EAAE,yBAAyB,EAAE,MAAM,sCAAsC,CAAC;AAErI,OAAO,EAAE,mBAAmB,EAAE,MAAM,qCAAqC,CAAC;AAC1E,YAAY,EAAE,0BAA0B,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AACnG,OAAO,EAAE,cAAc,EAAE,MAAM,wCAAwC,CAAC;AACxE,YAAY,EAAE,qBAAqB,EAAE,kBAAkB,EAAE,MAAM,wCAAwC,CAAC;AACxG,OAAO,EAAE,wBAAwB,EAAE,MAAM,0CAA0C,CAAC;AACpF,YAAY,EACV,+BAA+B,EAC/B,oBAAoB,EACpB,0BAA0B,EAC1B,gBAAgB,EAChB,iBAAiB,EACjB,sBAAsB,GACvB,MAAM,sCAAsC,CAAC"}
package/dist/node.js CHANGED
@@ -18,13 +18,24 @@
18
18
  * The option `addressing` of `procedureHandler` gives the method and the payload of a request
19
19
  * (CLI-31). `urlAddressing()` is the default, and `bodyPathAddressing()` reads the path from the
20
20
  * body of a single endpoint.
21
+ *
22
+ * The server transports are in this entry too (CLI-6): `HttpServerTransport`, the Express shim
23
+ * over `procedureHandler`, and `WebSocketServerTransport`. The root and `./server` also export
24
+ * them, but these exports are deprecated. The next MINOR removes them, so the root imports no
25
+ * `http` and no `ws`.
21
26
  */
22
27
  export { WebSocketTransport } from "./adapters/websocket/client/node.js";
23
28
  export { writeNdjsonStream } from "./adapters/http/server/ndjson.js";
24
29
  export { procedureHandler } from "./adapters/http/server/handler.js";
30
+ // The JSON body of a request, read to a limit: the procedure handler and the MCP face read it so (CLI-35)
31
+ export { readJsonBody, BodyError } from "./adapters/http/server/body.js";
32
+ // The credentialed CORS of the trusted origins of a host, for a route of the app (CLI-49)
33
+ export { credentialedCors } from "./adapters/http/server/cors.js";
25
34
  export { defaultServerUrlStrategy, rpcServerUrlStrategy } from "./adapters/http/server/strategies.js";
26
35
  // The addressing of a request: the URL (the default), or the path in the body of a single endpoint (CLI-31)
27
36
  export { urlAddressing, bodyPathAddressing } from "./adapters/http/server/addressing.js";
37
+ // The server transports (CLI-6): the root and ./server export them only until the next MINOR
38
+ export { HttpServerTransport } from "./adapters/http/server/transport.js";
28
39
  export { upgradeHandler } from "./adapters/websocket/server/upgrade.js";
29
40
  export { WebSocketServerTransport } from "./adapters/websocket/server/transport.js";
30
41
  //# sourceMappingURL=node.js.map
package/dist/node.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"node.js","sourceRoot":"","sources":["../src/node.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AAEzE,OAAO,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AAErE,OAAO,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AAIrE,OAAO,EAAE,wBAAwB,EAAE,oBAAoB,EAAE,MAAM,sCAAsC,CAAC;AACtG,4GAA4G;AAC5G,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,sCAAsC,CAAC;AAEzF,OAAO,EAAE,cAAc,EAAE,MAAM,wCAAwC,CAAC;AAExE,OAAO,EAAE,wBAAwB,EAAE,MAAM,0CAA0C,CAAC"}
1
+ {"version":3,"file":"node.js","sourceRoot":"","sources":["../src/node.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEH,OAAO,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AAEzE,OAAO,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AAErE,OAAO,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AACrE,0GAA0G;AAC1G,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,gCAAgC,CAAC;AAGzE,0FAA0F;AAC1F,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAElE,OAAO,EAAE,wBAAwB,EAAE,oBAAoB,EAAE,MAAM,sCAAsC,CAAC;AACtG,4GAA4G;AAC5G,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,sCAAsC,CAAC;AAEzF,6FAA6F;AAC7F,OAAO,EAAE,mBAAmB,EAAE,MAAM,qCAAqC,CAAC;AAE1E,OAAO,EAAE,cAAc,EAAE,MAAM,wCAAwC,CAAC;AAExE,OAAO,EAAE,wBAAwB,EAAE,MAAM,0CAA0C,CAAC"}
@@ -0,0 +1,77 @@
1
+ /**
2
+ * The rules of the rows of a served collection (roadmap CLI-41). A right can depend on the
3
+ * document: a `when` condition of Graph, or `accessAdmitItem()` of `@procedures/access`. The option
4
+ * `admission` of `createCollectionProcedures()` gives the rules as data:
5
+ *
6
+ * - `admit` examines each row `{ id, value }` that a read gives. It has the shape of `AdmitItem`,
7
+ * the output filter of a host. The change events with values give it the same rows for each
8
+ * subscriber, so the reads and the events obey one rule.
9
+ * - `guard` examines each write `{ op, id, doc, prev }` before the storage changes. A refused write
10
+ * gets `FORBIDDEN` with the reason `write-not-allowed`.
11
+ *
12
+ * The procedures apply the rules in one place: the view of the storage of a call
13
+ * (`admittedStorage()`). Each read and each write of each procedure goes through this view.
14
+ *
15
+ * - A refused row is absent: `get` gives undefined, `has` gives false, and the lists, `size`,
16
+ * `find` and `changes` do not have it. A delta of `changes` puts the id of a refused row in
17
+ * `deleted`, so a copy of the caller drops it.
18
+ * - An error of `admit` fails the read. It does not hide the rows, so a sync does not delete them.
19
+ * - The guard reads the stored item before the write. CLI-16 (`expectedVersion`) closes the gap of
20
+ * a write of another writer between that read and the write.
21
+ * - The rules get the invocation of the call (`ctx.invocation`). A call without an invocation gets
22
+ * no row and makes no write.
23
+ */
24
+ import { type AdmitItem, type Invocation } from "../invoke.js";
25
+ import type { ProcedureContext } from "../types.js";
26
+ import type { CollectionStorage } from "./storage.js";
27
+ /** A row of a collection: the id and the stored item. The rule `admit` examines one row at a time. */
28
+ export interface CollectionRow {
29
+ readonly id: string;
30
+ readonly value: unknown;
31
+ }
32
+ /** A write of a collection, as the guard examines it. */
33
+ export interface CollectionWrite {
34
+ /**
35
+ * The operation. `setBatch` gives one `set` for each item. `deleteBatch` and `clear` give one
36
+ * `delete` for each id.
37
+ */
38
+ readonly op: "set" | "patch" | "delete";
39
+ /** The id of the item. */
40
+ readonly id: string;
41
+ /** The item after the write: the value of a `set`, or the merged item of a `patch`. Undefined for a `delete`. */
42
+ readonly doc: unknown;
43
+ /** The stored item before the write. Undefined when the id has no item. */
44
+ readonly prev: unknown;
45
+ }
46
+ /**
47
+ * The guard of the writes of a collection. It gets each write and the invocation of the call. It
48
+ * gives true to permit the write. An error that it throws passes through, and the storage does
49
+ * not change.
50
+ */
51
+ export type CollectionWriteGuard = (write: CollectionWrite, invocation: Invocation) => boolean | Promise<boolean>;
52
+ /** The rules of the rows of a served collection (roadmap CLI-41). Each rule is optional. */
53
+ export interface CollectionAdmission {
54
+ /**
55
+ * The rule of the rows. It gets each row `{ id, value }` of a read and the invocation of the
56
+ * call, and it gives true to admit the row. The change events with values apply it for each
57
+ * subscriber, with the invocation of the subscription.
58
+ */
59
+ admit?: AdmitItem | undefined;
60
+ /** The guard of each `set`, `patch` and `delete`, also of the batches and of `clear`. */
61
+ guard?: CollectionWriteGuard | undefined;
62
+ }
63
+ /**
64
+ * This function tells if the rule of the rows admits a row for a call. Without a rule, it gives
65
+ * true. A call without an invocation gets no row.
66
+ */
67
+ export declare function admitsRow(admission: CollectionAdmission | undefined, ctx: ProcedureContext, id: string, value: unknown): Promise<boolean>;
68
+ /**
69
+ * This function gives the view of the storage of a call: the storage, with the rules of the
70
+ * collection for each read and each write. Without rules, it gives the storage itself.
71
+ *
72
+ * @param storage - The storage of the call: of the collection, or of its partition
73
+ * @param admission - The rules of the collection
74
+ * @param ctx - The context of the call. The rules get its invocation.
75
+ */
76
+ export declare function admittedStorage<T>(storage: CollectionStorage<T>, admission: CollectionAdmission | undefined, ctx: ProcedureContext): CollectionStorage<T>;
77
+ //# sourceMappingURL=admission.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"admission.d.ts","sourceRoot":"","sources":["../../../src/procedures/collection/admission.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,OAAO,EAAmB,KAAK,SAAS,EAAE,KAAK,UAAU,EAAE,MAAM,cAAc,CAAC;AAChF,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAEpD,OAAO,KAAK,EAAE,iBAAiB,EAAuC,MAAM,cAAc,CAAC;AAG3F,sGAAsG;AACtG,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;CACzB;AAED,yDAAyD;AACzD,MAAM,WAAW,eAAe;IAC9B;;;OAGG;IACH,QAAQ,CAAC,EAAE,EAAE,KAAK,GAAG,OAAO,GAAG,QAAQ,CAAC;IACxC,0BAA0B;IAC1B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,iHAAiH;IACjH,QAAQ,CAAC,GAAG,EAAE,OAAO,CAAC;IACtB,2EAA2E;IAC3E,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;CACxB;AAED;;;;GAIG;AACH,MAAM,MAAM,oBAAoB,GAAG,CAAC,KAAK,EAAE,eAAe,EAAE,UAAU,EAAE,UAAU,KAAK,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;AAElH,4FAA4F;AAC5F,MAAM,WAAW,mBAAmB;IAClC;;;;OAIG;IACH,KAAK,CAAC,EAAE,SAAS,GAAG,SAAS,CAAC;IAC9B,yFAAyF;IACzF,KAAK,CAAC,EAAE,oBAAoB,GAAG,SAAS,CAAC;CAC1C;AAUD;;;GAGG;AACH,wBAAsB,SAAS,CAAC,SAAS,EAAE,mBAAmB,GAAG,SAAS,EAAE,GAAG,EAAE,gBAAgB,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAK/I;AAED;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAAC,CAAC,EAAE,OAAO,EAAE,iBAAiB,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,mBAAmB,GAAG,SAAS,EAAE,GAAG,EAAE,gBAAgB,GAAG,iBAAiB,CAAC,CAAC,CAAC,CAmHzJ"}
@@ -0,0 +1,204 @@
1
+ /**
2
+ * The rules of the rows of a served collection (roadmap CLI-41). A right can depend on the
3
+ * document: a `when` condition of Graph, or `accessAdmitItem()` of `@procedures/access`. The option
4
+ * `admission` of `createCollectionProcedures()` gives the rules as data:
5
+ *
6
+ * - `admit` examines each row `{ id, value }` that a read gives. It has the shape of `AdmitItem`,
7
+ * the output filter of a host. The change events with values give it the same rows for each
8
+ * subscriber, so the reads and the events obey one rule.
9
+ * - `guard` examines each write `{ op, id, doc, prev }` before the storage changes. A refused write
10
+ * gets `FORBIDDEN` with the reason `write-not-allowed`.
11
+ *
12
+ * The procedures apply the rules in one place: the view of the storage of a call
13
+ * (`admittedStorage()`). Each read and each write of each procedure goes through this view.
14
+ *
15
+ * - A refused row is absent: `get` gives undefined, `has` gives false, and the lists, `size`,
16
+ * `find` and `changes` do not have it. A delta of `changes` puts the id of a refused row in
17
+ * `deleted`, so a copy of the caller drops it.
18
+ * - An error of `admit` fails the read. It does not hide the rows, so a sync does not delete them.
19
+ * - The guard reads the stored item before the write. CLI-16 (`expectedVersion`) closes the gap of
20
+ * a write of another writer between that read and the write.
21
+ * - The rules get the invocation of the call (`ctx.invocation`). A call without an invocation gets
22
+ * no row and makes no write.
23
+ */
24
+ import { InvocationError } from "../invoke.js";
25
+ import { applyPatch } from "./query.js";
26
+ import { patchInParts } from "./patch-in-parts.js";
27
+ /** The size of a page of a query of the storage, when the policy gives no `maxLimit`. */
28
+ const QUERY_PAGE = 1000;
29
+ /** The refusal of a write. */
30
+ function writeRefused(ctx, write) {
31
+ return new InvocationError("FORBIDDEN", `The rule of the collection does not permit the ${write.op} of "${write.id}"`, ctx.path, "write-not-allowed");
32
+ }
33
+ /**
34
+ * This function tells if the rule of the rows admits a row for a call. Without a rule, it gives
35
+ * true. A call without an invocation gets no row.
36
+ */
37
+ export async function admitsRow(admission, ctx, id, value) {
38
+ const admit = admission?.admit;
39
+ if (!admit)
40
+ return true;
41
+ const invocation = ctx.invocation;
42
+ return invocation !== undefined && (await admit({ id, value }, invocation)) === true;
43
+ }
44
+ /**
45
+ * This function gives the view of the storage of a call: the storage, with the rules of the
46
+ * collection for each read and each write. Without rules, it gives the storage itself.
47
+ *
48
+ * @param storage - The storage of the call: of the collection, or of its partition
49
+ * @param admission - The rules of the collection
50
+ * @param ctx - The context of the call. The rules get its invocation.
51
+ */
52
+ export function admittedStorage(storage, admission, ctx) {
53
+ const admit = admission?.admit;
54
+ const guard = admission?.guard;
55
+ if (!admit && !guard)
56
+ return storage;
57
+ const invocation = ctx.invocation;
58
+ const admits = (id, value) => admitsRow(admission, ctx, id, value);
59
+ /** The entries that the rule admits, in their order. */
60
+ const admitted = async (entries) => {
61
+ if (!admit)
62
+ return entries;
63
+ const keep = await Promise.all(entries.map(([id, value]) => admits(id, value)));
64
+ return entries.filter((_, index) => keep[index]);
65
+ };
66
+ /** The entries of the storage that the rule admits. The rule needs the ids, so the storage must give them. */
67
+ const entries = async () => {
68
+ if (!storage.getEntries)
69
+ throw new Error("The storage cannot give the ids of its items, so the rule of the rows cannot examine them");
70
+ return admitted(await storage.getEntries());
71
+ };
72
+ /** This function throws `FORBIDDEN` unless the guard permits each write. */
73
+ const permit = async (writes) => {
74
+ if (!guard)
75
+ return;
76
+ for (const write of writes) {
77
+ if (invocation === undefined || (await guard(write, invocation)) !== true)
78
+ throw writeRefused(ctx, write);
79
+ }
80
+ };
81
+ const view = {
82
+ async get(id) {
83
+ const value = await storage.get(id);
84
+ return value === undefined || (await admits(id, value)) ? value : undefined;
85
+ },
86
+ async getAll() {
87
+ return admit ? (await entries()).map(([, value]) => value) : storage.getAll();
88
+ },
89
+ async find(predicate) {
90
+ return admit ? (await entries()).map(([, value]) => value).filter(predicate) : storage.find(predicate);
91
+ },
92
+ async has(id) {
93
+ return admit ? (await view.get(id)) !== undefined : storage.has(id);
94
+ },
95
+ async size() {
96
+ return admit ? (await entries()).length : storage.size();
97
+ },
98
+ async getBatch(ids) {
99
+ const found = await storage.getBatch(ids);
100
+ if (!admit)
101
+ return found;
102
+ const kept = await admitted([...found.entries()]);
103
+ return new Map(kept);
104
+ },
105
+ async set(id, value, options) {
106
+ if (guard)
107
+ await permit([{ op: "set", id, doc: value, prev: await storage.get(id) }]);
108
+ return storage.set(id, value, options);
109
+ },
110
+ async delete(id, options) {
111
+ if (guard)
112
+ await permit([{ op: "delete", id, doc: undefined, prev: await storage.get(id) }]);
113
+ return storage.delete(id, options);
114
+ },
115
+ async clear(options) {
116
+ if (!guard)
117
+ return storage.clear(options);
118
+ // Each item is a delete that the guard examines. The storage deletes only the items that it examined.
119
+ if (!storage.getEntries)
120
+ throw new Error("The storage cannot give the ids of its items, so the guard cannot examine a clear");
121
+ const all = await storage.getEntries();
122
+ await permit(all.map(([id, prev]) => ({ op: "delete", id, doc: undefined, prev })));
123
+ if (all.length > 0)
124
+ await storage.deleteBatch(all.map(([id]) => id), options);
125
+ },
126
+ async setBatch(items, options) {
127
+ if (guard) {
128
+ const before = await storage.getBatch(items.map(([id]) => id));
129
+ await permit(items.map(([id, value]) => ({ op: "set", id, doc: value, prev: before.get(id) })));
130
+ }
131
+ return storage.setBatch(items, options);
132
+ },
133
+ async deleteBatch(ids, options) {
134
+ if (guard) {
135
+ const before = await storage.getBatch(ids);
136
+ await permit(ids.map((id) => ({ op: "delete", id, doc: undefined, prev: before.get(id) })));
137
+ }
138
+ return storage.deleteBatch(ids, options);
139
+ },
140
+ async patch(id, fields, options) {
141
+ const check = async (prev, doc) => permit([{ op: "patch", id, doc, prev }]);
142
+ if (!storage.patch)
143
+ return patchInParts(storage, id, fields, options, guard ? check : undefined);
144
+ if (guard) {
145
+ const prev = await storage.get(id);
146
+ // A patch of a missing id changes nothing
147
+ if (prev === undefined)
148
+ return undefined;
149
+ await check(prev, applyPatch(prev, fields));
150
+ }
151
+ return storage.patch(id, fields, options);
152
+ },
153
+ close: () => storage.close(),
154
+ };
155
+ if (storage.getEntries)
156
+ view.getEntries = async () => (admit ? entries() : storage.getEntries());
157
+ if (admit ? storage.getEntries : storage.getIds) {
158
+ view.getIds = async () => (admit ? (await entries()).map(([id]) => id) : storage.getIds());
159
+ }
160
+ if (storage.getChangesSince) {
161
+ view.getChangesSince = async (since) => {
162
+ const changes = await storage.getChangesSince(since);
163
+ if (!admit)
164
+ return changes;
165
+ const changed = await admitted(changes.changed);
166
+ if (changes.full)
167
+ return { ...changes, changed };
168
+ // A delta: the copy of the caller drops each refused row
169
+ const kept = new Set(changed.map(([id]) => id));
170
+ const refused = changes.changed.filter(([id]) => !kept.has(id)).map(([id]) => id);
171
+ return { ...changes, changed, deleted: [...changes.deleted, ...refused] };
172
+ };
173
+ }
174
+ if (storage.query) {
175
+ view.query = async (selector, options, policy) => admit ? admittedQuery(storage, admitted, selector, options ?? {}, policy) : storage.query(selector, options, policy);
176
+ }
177
+ return view;
178
+ }
179
+ /**
180
+ * The query of a storage with the rule of the rows. The storage runs the selector and the order,
181
+ * page by page. The skip and the limit count the admitted rows only, so a page of the caller is full.
182
+ */
183
+ async function admittedQuery(storage, admitted, selector, options, policy) {
184
+ const page = policy?.maxLimit !== undefined && Number.isFinite(policy.maxLimit) ? policy.maxLimit : QUERY_PAGE;
185
+ const skip = options.skip ?? 0;
186
+ const limit = options.limit;
187
+ const out = [];
188
+ let skipped = 0;
189
+ for (let offset = 0;; offset += page) {
190
+ const rows = await storage.query(selector, { ...(options.sort !== undefined && { sort: options.sort }), skip: offset, limit: page }, policy);
191
+ for (const entry of await admitted(rows)) {
192
+ if (skipped < skip) {
193
+ skipped++;
194
+ continue;
195
+ }
196
+ out.push(entry);
197
+ if (limit !== undefined && out.length >= limit)
198
+ return out;
199
+ }
200
+ if (rows.length < page)
201
+ return out;
202
+ }
203
+ }
204
+ //# sourceMappingURL=admission.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"admission.js","sourceRoot":"","sources":["../../../src/procedures/collection/admission.ts"],"names":[],"mappings":"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"}
@@ -24,6 +24,7 @@
24
24
  * write resolves after its event is on the bus. A failed publish never fails the write.
25
25
  */
26
26
  import type { EventBus } from "../../events/types.js";
27
+ import type { AdmitItem } from "../invoke.js";
27
28
  import type { StorageChanges } from "./storage.js";
28
29
  /**
29
30
  * The change event of the writes of a collection, on the topic `collections.<name>` (roadmap
@@ -82,8 +83,9 @@ interface ChangeLog {
82
83
  * @param origin - The origin of the write
83
84
  * @param write - The write
84
85
  * @param values - True: the events carry the values, for the output filter of each subscriber
86
+ * @param admit - The rule of the rows of the collection: each subscriber applies it to the values (roadmap CLI-41)
85
87
  */
86
- export declare function writeWithChangeEvent<R>(bus: EventBus | undefined, storage: object & ChangeLog, topic: string | undefined, ids: readonly string[] | "*", origin: string | undefined, write: () => Promise<R>, values?: boolean): Promise<R>;
88
+ export declare function writeWithChangeEvent<R>(bus: EventBus | undefined, storage: object & ChangeLog, topic: string | undefined, ids: readonly string[] | "*", origin: string | undefined, write: () => Promise<R>, values?: boolean, admit?: AdmitItem): Promise<R>;
87
89
  /**
88
90
  * This function starts the chain of the events of a storage at the version of a call of
89
91
  * `changes`, when the chain has no version. The subscriber that made the call then applies the
@@ -1 +1 @@
1
- {"version":3,"file":"changes.d.ts","sourceRoot":"","sources":["../../../src/procedures/collection/changes.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAEtD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAEnD;;;GAGG;AACH,MAAM,WAAW,qBAAqB;IACpC;;;OAGG;IACH,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACpC,uFAAuF;IACvF,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACtC,qFAAqF;IACrF,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;IACpC,iCAAiC;IACjC,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;IACpC;;;OAGG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,aAAa,CAAC;QAAE,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAA;KAAE,CAAC,GAAG,SAAS,CAAC;IAC9F,2GAA2G;IAC3G,QAAQ,CAAC,QAAQ,CAAC,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS,CAAC;IAClD,mFAAmF;IACnF,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CACtC;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,CAEpF;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,MAAM,EAAE,CAGrE;AAED,yDAAyD;AACzD,UAAU,SAAS;IACjB,eAAe,CAAC,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC;CACpE;AAyHD;;;;;;;;;;;;;GAaG;AACH,wBAAsB,oBAAoB,CAAC,CAAC,EAC1C,GAAG,EAAE,QAAQ,GAAG,SAAS,EACzB,OAAO,EAAE,MAAM,GAAG,SAAS,EAC3B,KAAK,EAAE,MAAM,GAAG,SAAS,EACzB,GAAG,EAAE,SAAS,MAAM,EAAE,GAAG,GAAG,EAC5B,MAAM,EAAE,MAAM,GAAG,SAAS,EAC1B,KAAK,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EACvB,MAAM,UAAQ,GACb,OAAO,CAAC,CAAC,CAAC,CAYZ;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,QAAQ,GAAG,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,SAAS,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAI7H"}
1
+ {"version":3,"file":"changes.d.ts","sourceRoot":"","sources":["../../../src/procedures/collection/changes.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAEtD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAEnD;;;GAGG;AACH,MAAM,WAAW,qBAAqB;IACpC;;;OAGG;IACH,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACpC,uFAAuF;IACvF,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACtC,qFAAqF;IACrF,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;IACpC,iCAAiC;IACjC,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;IACpC;;;OAGG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,aAAa,CAAC;QAAE,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAA;KAAE,CAAC,GAAG,SAAS,CAAC;IAC9F,2GAA2G;IAC3G,QAAQ,CAAC,QAAQ,CAAC,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS,CAAC;IAClD,mFAAmF;IACnF,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CACtC;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,CAEpF;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,MAAM,EAAE,CAGrE;AAED,yDAAyD;AACzD,UAAU,SAAS;IACjB,eAAe,CAAC,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC;CACpE;AA4HD;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,oBAAoB,CAAC,CAAC,EAC1C,GAAG,EAAE,QAAQ,GAAG,SAAS,EACzB,OAAO,EAAE,MAAM,GAAG,SAAS,EAC3B,KAAK,EAAE,MAAM,GAAG,SAAS,EACzB,GAAG,EAAE,SAAS,MAAM,EAAE,GAAG,GAAG,EAC5B,MAAM,EAAE,MAAM,GAAG,SAAS,EAC1B,KAAK,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EACvB,MAAM,UAAQ,EACd,KAAK,CAAC,EAAE,SAAS,GAChB,OAAO,CAAC,CAAC,CAAC,CAYZ;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,QAAQ,GAAG,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,SAAS,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAI7H"}