@c9up/transit 0.1.1 → 0.1.3

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 (72) hide show
  1. package/dist/TransitProvider.d.ts +3 -0
  2. package/dist/TransitProvider.d.ts.map +1 -1
  3. package/dist/TransitProvider.js +17 -2
  4. package/dist/TransitProvider.js.map +1 -1
  5. package/dist/augmentations.d.ts +24 -0
  6. package/dist/augmentations.d.ts.map +1 -0
  7. package/dist/augmentations.js +18 -0
  8. package/dist/augmentations.js.map +1 -0
  9. package/dist/ber.d.ts +9 -0
  10. package/dist/ber.d.ts.map +1 -1
  11. package/dist/ber.js +16 -1
  12. package/dist/ber.js.map +1 -1
  13. package/dist/drivers/OidcDriver.js +1 -1
  14. package/dist/drivers/OidcDriver.js.map +1 -1
  15. package/dist/drivers/SamlDriver.d.ts.map +1 -1
  16. package/dist/drivers/SamlDriver.js +6 -1
  17. package/dist/drivers/SamlDriver.js.map +1 -1
  18. package/dist/dsig.d.ts.map +1 -1
  19. package/dist/dsig.js +17 -11
  20. package/dist/dsig.js.map +1 -1
  21. package/dist/index.d.ts +1 -0
  22. package/dist/index.d.ts.map +1 -1
  23. package/dist/index.js +1 -0
  24. package/dist/index.js.map +1 -1
  25. package/dist/jwt.d.ts.map +1 -1
  26. package/dist/jwt.js +18 -2
  27. package/dist/jwt.js.map +1 -1
  28. package/dist/ldap.d.ts.map +1 -1
  29. package/dist/ldap.js +13 -1
  30. package/dist/ldap.js.map +1 -1
  31. package/dist/quasar.d.ts +7 -8
  32. package/dist/quasar.d.ts.map +1 -1
  33. package/dist/quasar.js +15 -35
  34. package/dist/quasar.js.map +1 -1
  35. package/dist/services/main.d.ts +10 -1
  36. package/dist/services/main.d.ts.map +1 -1
  37. package/dist/services/main.js +12 -1
  38. package/dist/services/main.js.map +1 -1
  39. package/dist/types.d.ts.map +1 -1
  40. package/dist/types.js +19 -1
  41. package/dist/types.js.map +1 -1
  42. package/dist/vendor/nodeEnv.d.ts +5 -0
  43. package/dist/vendor/nodeEnv.d.ts.map +1 -0
  44. package/dist/{nodeEnv.js → vendor/nodeEnv.js} +13 -8
  45. package/dist/vendor/nodeEnv.js.map +1 -0
  46. package/dist/vendor/quasarConnection.d.ts +35 -0
  47. package/dist/vendor/quasarConnection.d.ts.map +1 -0
  48. package/dist/vendor/quasarConnection.js +62 -0
  49. package/dist/vendor/quasarConnection.js.map +1 -0
  50. package/dist/xml.d.ts +20 -1
  51. package/dist/xml.d.ts.map +1 -1
  52. package/dist/xml.js +43 -5
  53. package/dist/xml.js.map +1 -1
  54. package/package.json +9 -4
  55. package/src/TransitProvider.ts +20 -4
  56. package/src/augmentations.ts +28 -0
  57. package/src/ber.ts +19 -1
  58. package/src/drivers/OidcDriver.ts +2 -2
  59. package/src/drivers/SamlDriver.ts +6 -1
  60. package/src/dsig.ts +26 -15
  61. package/src/index.ts +2 -0
  62. package/src/jwt.ts +21 -3
  63. package/src/ldap.ts +17 -0
  64. package/src/quasar.ts +15 -52
  65. package/src/services/main.ts +13 -1
  66. package/src/types.ts +20 -1
  67. package/src/{nodeEnv.ts → vendor/nodeEnv.ts} +14 -8
  68. package/src/vendor/quasarConnection.ts +129 -0
  69. package/src/xml.ts +74 -5
  70. package/dist/nodeEnv.d.ts +0 -17
  71. package/dist/nodeEnv.d.ts.map +0 -1
  72. package/dist/nodeEnv.js.map +0 -1
package/dist/ldap.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"ldap.js","sourceRoot":"","sources":["../src/ldap.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EAAE,OAAO,IAAI,UAAU,EAAe,MAAM,UAAU,CAAC;AAC9D,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,UAAU,CAAC;AACjD,OAAO,EACN,WAAW,EACX,oBAAoB,EACpB,OAAO,EACP,OAAO,EACP,gBAAgB,EAChB,MAAM,EACN,aAAa,EACb,cAAc,EACd,YAAY,EACZ,UAAU,EACV,aAAa,EACb,aAAa,EACb,cAAc,EACd,YAAY,EACZ,aAAa,EACb,YAAY,GACZ,MAAM,UAAU,CAAC;AAElB,MAAM,YAAY,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;AACpC,MAAM,aAAa,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;AACrC,MAAM,cAAc,GAAG,oBAAoB,CAAC,CAAC,CAAC,CAAC;AAC/C,MAAM,cAAc,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;AACtC,MAAM,YAAY,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;AACpC,MAAM,WAAW,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;AAEnC,MAAM,OAAO,SAAU,SAAQ,KAAK;IAC1B,IAAI,CAAqB;IAClC,YAAY,OAAe,EAAE,IAAa;QACzC,KAAK,CAAC,aAAa,OAAO,EAAE,CAAC,CAAC;QAC9B,IAAI,CAAC,IAAI,GAAG,WAAW,CAAC;QACxB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IAClB,CAAC;CACD;AA6BD;;;;;;GAMG;AACH,MAAM,OAAO,cAAc;IAC1B,OAAO,CAAqB;IAC5B,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAC1B,YAAY,GAAG,CAAC,CAAC;IACjB,QAAQ,GAAG,IAAI,GAAG,EAOf,CAAC;IACK,QAAQ,CAAc;IAE/B,YAAY,OAAoB;QAC/B,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;IACzB,CAAC;IAED,KAAK,CAAC,OAAO;QACZ,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;QACvC,MAAM,MAAM,GAAG,GAAG,CAAC,QAAQ,KAAK,QAAQ,CAAC;QACzC,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,QAAQ,CAAC,aAAa,KAAK,IAAI,EAAE,CAAC;YACrD,MAAM,IAAI,SAAS,CAClB,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,kJAAkJ,CACvK,CAAC;QACH,CAAC;QACD,MAAM,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QACtD,MAAM,IAAI,GAAG,GAAG,CAAC,QAAQ,CAAC;QAE1B,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YAC3C,MAAM,MAAM,GAAG,MAAM;gBACpB,CAAC,CAAC,UAAU,CAAC;oBACX,IAAI;oBACJ,IAAI;oBACJ,UAAU,EAAE,IAAI;oBAChB,kBAAkB,EAAE,IAAI,CAAC,QAAQ,CAAC,kBAAkB,KAAK,KAAK;iBAC9D,CAAC;gBACH,CAAC,CAAC,UAAU,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;YAE9B,MAAM,OAAO,GAAG,CAAC,KAAY,EAAE,EAAE;gBAChC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;gBACrB,MAAM,CACL,IAAI,SAAS,CAAC,mBAAmB,IAAI,IAAI,IAAI,MAAM,KAAK,CAAC,OAAO,EAAE,CAAC,CACnE,CAAC;YACH,CAAC,CAAC;YACF,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YAC9B,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,SAAS,EAAE,GAAG,EAAE;gBACtD,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,IAAI,MAAM,CAAC,CAAC;gBACrD,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;gBACnD,MAAM,CAAC,EAAE,CAAC,SAAS,EAAE,GAAG,EAAE,CACzB,IAAI,CAAC,QAAQ,CAAC,IAAI,SAAS,CAAC,iCAAiC,CAAC,CAAC,CAC/D,CAAC;gBACF,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,CACvB,IAAI,CAAC,QAAQ,CAAC,IAAI,SAAS,CAAC,qCAAqC,CAAC,CAAC,CACnE,CAAC;gBACF,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;gBACtB,OAAO,EAAE,CAAC;YACX,CAAC,CAAC,CAAC;QACJ,CAAC,CAAC,CAAC;IACJ,CAAC;IAED;;;;;;;OAOG;IACH,KAAK,CAAC,IAAI,CAAC,EAAU,EAAE,QAAgB;QACtC,IAAI,QAAQ,KAAK,EAAE,EAAE,CAAC;YACrB,MAAM,IAAI,SAAS,CAClB,4FAA4F,CAC5F,CAAC;QACH,CAAC;QACD,MAAM,IAAI,GAAG,cAAc,CAC1B;YACC,aAAa,CAAC,CAAC,CAAC;YAChB,YAAY,CAAC,EAAE,CAAC;YAChB,YAAY,CAAC,QAAQ,EAAE,gBAAgB,CAAC,CAAC,CAAC,CAAC;SAC3C,EACD,YAAY,CACZ,CAAC;QACF,MAAM,CAAC,QAAQ,CAAC,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC;QAC/D,IAAI,CAAC,QAAQ;YAAE,MAAM,IAAI,SAAS,CAAC,qCAAqC,CAAC,CAAC;QAC1E,aAAa,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IACjC,CAAC;IAED,iEAAiE;IACjE,KAAK,CAAC,MAAM,CAAC,OAMZ;QACA,MAAM,KAAK,GAAG,EAAE,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK,IAAI,KAAK,CAAC,CAAC;QAClE,MAAM,IAAI,GAAG,cAAc,CAC1B;YACC,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC;YAC1B,aAAa,CAAC,KAAK,EAAE,UAAU,CAAC;YAChC,aAAa,CAAC,CAAC,EAAE,UAAU,CAAC;YAC5B,aAAa,CAAC,OAAO,CAAC,SAAS,IAAI,CAAC,CAAC;YACrC,aAAa,CAAC,CAAC,CAAC;YAChB,aAAa,CAAC,KAAK,EAAE,OAAO,CAAC;YAC7B,YAAY,CAAC,OAAO,CAAC,MAAM,CAAC;YAC5B,cAAc,CAAC,CAAC,OAAO,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;SACtE,EACD,cAAc,CACd,CAAC;QAEF,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,YAAY,CAAC,EAAE,WAAW,CAAC,CAAC;QACtE,MAAM,IAAI,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QAC1B,IAAI,IAAI;YAAE,aAAa,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QACxC,OAAO,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IAC1C,CAAC;IAED,mEAAmE;IACnE,KAAK,CAAC,KAAK;QACV,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC;QAC5B,IAAI,CAAC,MAAM;YAAE,OAAO;QACpB,IAAI,CAAC,OAAO,GAAG,SAAS,CAAC;QACzB,IAAI,CAAC;YACJ,MAAM,CAAC,KAAK,CACX,cAAc,CAAC;gBACd,aAAa,CAAC,IAAI,CAAC,YAAY,CAAC;gBAChC,cAAc,CAAC,EAAE,EAAE,cAAc,CAAC;aAClC,CAAC,CACF,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACR,oEAAoE;YACpE,mBAAmB;QACpB,CAAC;QACD,MAAM,CAAC,OAAO,EAAE,CAAC;QACjB,IAAI,CAAC,QAAQ,CAAC,IAAI,SAAS,CAAC,2BAA2B,CAAC,CAAC,CAAC;IAC3D,CAAC;IAED,0EAA0E;IAC1E,KAAK,CAAC,SAAS,CACd,IAAY,EACZ,OAAiB,EACjB,KAAc;QAEd,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC;QAC5B,IAAI,CAAC,MAAM;YAAE,MAAM,IAAI,SAAS,CAAC,4BAA4B,CAAC,CAAC;QAC/D,MAAM,EAAE,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;QAE/B,OAAO,IAAI,OAAO,CAAW,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YAChD,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC;YACtD,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;YACzC,MAAM,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,aAAa,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,KAAK,EAAE,EAAE;gBACjE,IAAI,KAAK,EAAE,CAAC;oBACX,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;oBACzB,MAAM,CACL,IAAI,SAAS,CAAC,mCAAmC,KAAK,CAAC,OAAO,EAAE,CAAC,CACjE,CAAC;gBACH,CAAC;YACF,CAAC,CAAC,CAAC;QACJ,CAAC,CAAC,CAAC;IACJ,CAAC;IAEQ,OAAO,GAAG,IAAI,GAAG,EAGvB,CAAC;IAEJ,QAAQ,CAAC,KAAa;QACrB,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC;QACpD,SAAS,CAAC;YACT,MAAM,MAAM,GAAG,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAC3C,IAAI,MAAM,KAAK,SAAS,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,MAAM;gBAAE,OAAO;YACjE,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;YACjD,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;YAC7C,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;QACzB,CAAC;IACF,CAAC;IAED,SAAS,CAAC,OAAe;QACxB,MAAM,CAAC,SAAS,EAAE,EAAE,CAAC,GAAG,cAAc,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC;QAC9D,IAAI,CAAC,SAAS,IAAI,CAAC,EAAE;YAAE,OAAO;QAC9B,MAAM,EAAE,GAAG,aAAa,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QAC1C,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACtC,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACtC,IAAI,CAAC,OAAO,IAAI,CAAC,QAAQ;YAAE,OAAO;QAElC,IAAI,QAAQ,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;YAClC,gDAAgD;YAChD,IAAI,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;YAC7B,OAAO;QACR,CAAC;QACD,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;QAC7B,IAAI,EAAE,CAAC,GAAG,KAAK,QAAQ,CAAC,KAAK;YAAE,IAAI,CAAC,OAAO,CAAC,EAAE,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;IAChE,CAAC;IAED,OAAO,CAAC,EAAU,EAAE,KAAe;QAClC,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACtC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QACzB,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QACxB,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;IACzB,CAAC;IAED,QAAQ,CAAC,KAAY;QACpB,KAAK,MAAM,CAAC,EAAE,EAAE,OAAO,CAAC,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAC3C,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YACzB,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YACxB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACvB,CAAC;IACF,CAAC;CACD;AAED,6DAA6D;AAC7D,SAAS,YAAY,CAAC,MAAkB;IACvC,IAAI,QAAQ,IAAI,MAAM,EAAE,CAAC;QACxB,MAAM,CAAC,SAAS,EAAE,KAAK,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC;QACzC,OAAO,cAAc,CACpB,CAAC,YAAY,CAAC,SAAS,CAAC,EAAE,YAAY,CAAC,KAAK,CAAC,CAAC,EAC9C,OAAO,CAAC,CAAC,CAAC,CACV,CAAC;IACH,CAAC;IACD,IAAI,SAAS,IAAI,MAAM,EAAE,CAAC;QACzB,OAAO,YAAY,CAAC,MAAM,CAAC,OAAO,EAAE,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC;IAC1D,CAAC;IACD,IAAI,KAAK,IAAI,MAAM,EAAE,CAAC;QACrB,OAAO,cAAc,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;IACjE,CAAC;IACD,IAAI,IAAI,IAAI,MAAM,EAAE,CAAC;QACpB,OAAO,cAAc,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;IAChE,CAAC;IACD,OAAO,cAAc,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;AAC/D,CAAC;AAED,SAAS,SAAS,CAAC,KAAa;IAC/B,MAAM,CAAC,SAAS,EAAE,iBAAiB,CAAC,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC;IAC7D,MAAM,UAAU,GAA6B,EAAE,CAAC;IAChD,KAAK,MAAM,SAAS,IAAI,iBAAiB;QACxC,CAAC,CAAC,cAAc,CAAC,iBAAiB,CAAC,KAAK,CAAC;QACzC,CAAC,CAAC,EAAE,EAAE,CAAC;QACP,MAAM,CAAC,WAAW,EAAE,aAAa,CAAC,GAAG,cAAc,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QACrE,IAAI,CAAC,WAAW;YAAE,SAAS;QAC3B,UAAU,CAAC,YAAY,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,GAAG,aAAa;YAC1D,CAAC,CAAC,cAAc,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;YACvE,CAAC,CAAC,EAAE,CAAC;IACP,CAAC;IACD,OAAO;QACN,EAAE,EAAE,SAAS,CAAC,CAAC,CAAC,YAAY,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE;QAClD,UAAU;KACV,CAAC;AACH,CAAC;AAED,2EAA2E;AAC3E,SAAS,aAAa,CAAC,QAAgB,EAAE,IAAY;IACpD,MAAM,CAAC,WAAW,EAAE,AAAD,EAAG,cAAc,CAAC,GAAG,cAAc,CAAC,QAAQ,CAAC,CAAC;IACjE,IAAI,CAAC,WAAW;QACf,MAAM,IAAI,SAAS,CAAC,OAAO,IAAI,8BAA8B,CAAC,CAAC;IAChE,MAAM,IAAI,GAAG,aAAa,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;IAC9C,IAAI,IAAI,KAAK,CAAC;QAAE,OAAO;IACvB,MAAM,MAAM,GACX,cAAc,IAAI,cAAc,CAAC,GAAG,KAAK,YAAY;QACpD,CAAC,CAAC,YAAY,CAAC,cAAc,CAAC,KAAK,CAAC;QACpC,CAAC,CAAC,EAAE,CAAC;IACP,MAAM,IAAI,SAAS,CAClB,6BAA6B,IAAI,KAAK,QAAQ,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,MAAM,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EACrF,IAAI,CACJ,CAAC;AACH,CAAC;AAED,sEAAsE;AACtE,SAAS,QAAQ,CAAC,IAAY;IAC7B,QAAQ,IAAI,EAAE,CAAC;QACd,KAAK,EAAE;YACN,OAAO,gBAAgB,CAAC;QACzB,KAAK,EAAE;YACN,OAAO,mBAAmB,CAAC;QAC5B,KAAK,EAAE;YACN,OAAO,+BAA+B,CAAC;QACxC,KAAK,EAAE;YACN,OAAO,qBAAqB,CAAC;QAC9B,KAAK,EAAE;YACN,OAAO,qBAAqB,CAAC;QAC9B,KAAK,EAAE;YACN,OAAO,yCAAyC,CAAC;QAClD;YACC,OAAO,eAAe,IAAI,EAAE,CAAC;IAC/B,CAAC;AACF,CAAC"}
1
+ {"version":3,"file":"ldap.js","sourceRoot":"","sources":["../src/ldap.ts"],"names":[],"mappings":"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"}
package/dist/quasar.d.ts CHANGED
@@ -1,14 +1,13 @@
1
1
  /**
2
2
  * Resolving a Redis connection by name, from `@c9up/quasar`.
3
3
  *
4
- * Transit does not depend on quasar: it is an optional peer, and this module
5
- * never imports it statically — the specifier is built at runtime so the
6
- * TypeScript build stays free of it too.
7
- */
8
- /**
9
- * The named connection, checked for the commands the caller needs before it is
10
- * handed over — a connection missing one would fail on the first sign-in, far
11
- * from the cause.
4
+ * The loading, the shape check and the messages are the same in every package
5
+ * that offers a Redis-backed option, so they are vendored rather than written
6
+ * again: `src/vendor/quasarConnection.ts`, generated from one source. What is
7
+ * specific stays at the call site — transit has several stores, each issuing
8
+ * its own commands, so unlike its siblings it passes them per call rather than
9
+ * fixing one list here.
12
10
  */
11
+ /** The named connection, checked for the commands the caller will issue. */
13
12
  export declare function quasarConnection<T>(name: string | undefined, required: readonly string[], what: string): Promise<T>;
14
13
  //# sourceMappingURL=quasar.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"quasar.d.ts","sourceRoot":"","sources":["../src/quasar.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAcH;;;;GAIG;AACH,wBAAsB,gBAAgB,CAAC,CAAC,EACvC,IAAI,EAAE,MAAM,GAAG,SAAS,EACxB,QAAQ,EAAE,SAAS,MAAM,EAAE,EAC3B,IAAI,EAAE,MAAM,GACV,OAAO,CAAC,CAAC,CAAC,CAkCZ"}
1
+ {"version":3,"file":"quasar.d.ts","sourceRoot":"","sources":["../src/quasar.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAIH,4EAA4E;AAC5E,wBAAsB,gBAAgB,CAAC,CAAC,EACvC,IAAI,EAAE,MAAM,GAAG,SAAS,EACxB,QAAQ,EAAE,SAAS,MAAM,EAAE,EAC3B,IAAI,EAAE,MAAM,GACV,OAAO,CAAC,CAAC,CAAC,CAQZ"}
package/dist/quasar.js CHANGED
@@ -1,42 +1,22 @@
1
1
  /**
2
2
  * Resolving a Redis connection by name, from `@c9up/quasar`.
3
3
  *
4
- * Transit does not depend on quasar: it is an optional peer, and this module
5
- * never imports it statically — the specifier is built at runtime so the
6
- * TypeScript build stays free of it too.
7
- */
8
- function isConnectionSource(value) {
9
- return (typeof value === "object" &&
10
- value !== null &&
11
- typeof Reflect.get(value, "connection") === "function");
12
- }
13
- /**
14
- * The named connection, checked for the commands the caller needs before it is
15
- * handed over — a connection missing one would fail on the first sign-in, far
16
- * from the cause.
4
+ * The loading, the shape check and the messages are the same in every package
5
+ * that offers a Redis-backed option, so they are vendored rather than written
6
+ * again: `src/vendor/quasarConnection.ts`, generated from one source. What is
7
+ * specific stays at the call site — transit has several stores, each issuing
8
+ * its own commands, so unlike its siblings it passes them per call rather than
9
+ * fixing one list here.
17
10
  */
11
+ import { quasarConnection as loadQuasarConnection } from "./vendor/quasarConnection.js";
12
+ /** The named connection, checked for the commands the caller will issue. */
18
13
  export async function quasarConnection(name, required, what) {
19
- const specifier = "@c9up/quasar/services/main";
20
- let loaded;
21
- try {
22
- loaded = await import(/* @vite-ignore */ specifier);
23
- }
24
- catch (cause) {
25
- throw new Error(`[transit] naming a Redis connection needs @c9up/quasar, which is not installed.\n pnpm add @c9up/quasar`, { cause });
26
- }
27
- const manager = isConnectionSource(loaded)
28
- ? loaded
29
- : Reflect.get(Object(loaded), "default");
30
- if (!isConnectionSource(manager)) {
31
- throw new Error("[transit] @c9up/quasar/services/main did not expose a connection() manager");
32
- }
33
- const connection = manager.connection(name);
34
- const missing = required.filter((command) => typeof connection !== "object" ||
35
- connection === null ||
36
- typeof Reflect.get(connection, command) !== "function");
37
- if (missing.length > 0) {
38
- throw new Error(`[transit] the quasar connection${name ? ` '${name}'` : ""} is missing ${missing.join(", ")}, which ${what} issues`);
39
- }
40
- return connection;
14
+ return loadQuasarConnection({
15
+ pkg: "transit",
16
+ name,
17
+ required,
18
+ what,
19
+ raise: (_reason, message, cause) => new Error(message, { cause }),
20
+ });
41
21
  }
42
22
  //# sourceMappingURL=quasar.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"quasar.js","sourceRoot":"","sources":["../src/quasar.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAMH,SAAS,kBAAkB,CAAC,KAAc;IACzC,OAAO,CACN,OAAO,KAAK,KAAK,QAAQ;QACzB,KAAK,KAAK,IAAI;QACd,OAAO,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,YAAY,CAAC,KAAK,UAAU,CACtD,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACrC,IAAwB,EACxB,QAA2B,EAC3B,IAAY;IAEZ,MAAM,SAAS,GAAG,4BAA4B,CAAC;IAC/C,IAAI,MAAe,CAAC;IACpB,IAAI,CAAC;QACJ,MAAM,GAAG,MAAM,MAAM,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAC;IACrD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QAChB,MAAM,IAAI,KAAK,CACd,0GAA0G,EAC1G,EAAE,KAAK,EAAE,CACT,CAAC;IACH,CAAC;IAED,MAAM,OAAO,GAAG,kBAAkB,CAAC,MAAM,CAAC;QACzC,CAAC,CAAC,MAAM;QACR,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,SAAS,CAAC,CAAC;IAC1C,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,EAAE,CAAC;QAClC,MAAM,IAAI,KAAK,CACd,4EAA4E,CAC5E,CAAC;IACH,CAAC;IAED,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;IAC5C,MAAM,OAAO,GAAG,QAAQ,CAAC,MAAM,CAC9B,CAAC,OAAO,EAAE,EAAE,CACX,OAAO,UAAU,KAAK,QAAQ;QAC9B,UAAU,KAAK,IAAI;QACnB,OAAO,OAAO,CAAC,GAAG,CAAC,UAAU,EAAE,OAAO,CAAC,KAAK,UAAU,CACvD,CAAC;IACF,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACxB,MAAM,IAAI,KAAK,CACd,kCAAkC,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,CAAC,CAAC,CAAC,EAAE,eAAe,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,IAAI,SAAS,CACnH,CAAC;IACH,CAAC;IACD,OAAO,UAAe,CAAC;AACxB,CAAC"}
1
+ {"version":3,"file":"quasar.js","sourceRoot":"","sources":["../src/quasar.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,gBAAgB,IAAI,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AAExF,4EAA4E;AAC5E,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACrC,IAAwB,EACxB,QAA2B,EAC3B,IAAY;IAEZ,OAAO,oBAAoB,CAAI;QAC9B,GAAG,EAAE,SAAS;QACd,IAAI;QACJ,QAAQ;QACR,IAAI;QACJ,KAAK,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,KAAK,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,CAAC;KACjE,CAAC,CAAC;AACJ,CAAC"}
@@ -8,7 +8,16 @@
8
8
  import type { TransitManager } from "../TransitManager.js";
9
9
  /** @internal Called by the provider once the manager exists. */
10
10
  export declare function setTransit(manager: TransitManager): void;
11
- /** @internal Test helper — forget the manager between cases. */
11
+ /** @internal Read the seated manager, if there is one. */
12
+ export declare function getTransit(): TransitManager | undefined;
13
+ /**
14
+ * @internal Forget the manager — called by the provider on shutdown, and by
15
+ * tests between cases.
16
+ *
17
+ * The caller checks ownership first (`getTransit() === mine`): two applications
18
+ * share this module in one process, and the one shutting down must not clear a
19
+ * manager the other has since seated.
20
+ */
12
21
  export declare function clearTransit(): void;
13
22
  /**
14
23
  * A proxy so the import can be held before the provider boots.
@@ -1 +1 @@
1
- {"version":3,"file":"main.d.ts","sourceRoot":"","sources":["../../src/services/main.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAI3D,gEAAgE;AAChE,wBAAgB,UAAU,CAAC,OAAO,EAAE,cAAc,GAAG,IAAI,CAExD;AAED,gEAAgE;AAChE,wBAAgB,YAAY,IAAI,IAAI,CAEnC;AAWD;;;;;;GAMG;AACH,QAAA,MAAM,OAAO,EAMP,cAAc,CAAC;AAErB,eAAe,OAAO,CAAC"}
1
+ {"version":3,"file":"main.d.ts","sourceRoot":"","sources":["../../src/services/main.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAI3D,gEAAgE;AAChE,wBAAgB,UAAU,CAAC,OAAO,EAAE,cAAc,GAAG,IAAI,CAExD;AAED,0DAA0D;AAC1D,wBAAgB,UAAU,IAAI,cAAc,GAAG,SAAS,CAEvD;AAED;;;;;;;GAOG;AACH,wBAAgB,YAAY,IAAI,IAAI,CAEnC;AAWD;;;;;;GAMG;AACH,QAAA,MAAM,OAAO,EAMP,cAAc,CAAC;AAErB,eAAe,OAAO,CAAC"}
@@ -10,7 +10,18 @@ let instance;
10
10
  export function setTransit(manager) {
11
11
  instance = manager;
12
12
  }
13
- /** @internal Test helper — forget the manager between cases. */
13
+ /** @internal Read the seated manager, if there is one. */
14
+ export function getTransit() {
15
+ return instance;
16
+ }
17
+ /**
18
+ * @internal Forget the manager — called by the provider on shutdown, and by
19
+ * tests between cases.
20
+ *
21
+ * The caller checks ownership first (`getTransit() === mine`): two applications
22
+ * share this module in one process, and the one shutting down must not clear a
23
+ * manager the other has since seated.
24
+ */
14
25
  export function clearTransit() {
15
26
  instance = undefined;
16
27
  }
@@ -1 +1 @@
1
- {"version":3,"file":"main.js","sourceRoot":"","sources":["../../src/services/main.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH,IAAI,QAAoC,CAAC;AAEzC,gEAAgE;AAChE,MAAM,UAAU,UAAU,CAAC,OAAuB;IACjD,QAAQ,GAAG,OAAO,CAAC;AACpB,CAAC;AAED,gEAAgE;AAChE,MAAM,UAAU,YAAY;IAC3B,QAAQ,GAAG,SAAS,CAAC;AACtB,CAAC;AAED,SAAS,OAAO;IACf,IAAI,CAAC,QAAQ,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CACd,qGAAqG,CACrG,CAAC;IACH,CAAC;IACD,OAAO,QAAQ,CAAC;AACjB,CAAC;AAED;;;;;;GAMG;AACH,MAAM,OAAO,GAAG,IAAI,KAAK,CAAC,EAAoB,EAAE;IAC/C,GAAG,CAAC,OAAO,EAAE,QAAQ;QACpB,IAAI,OAAO,QAAQ,KAAK,QAAQ,IAAI,QAAQ,KAAK,MAAM;YAAE,OAAO,SAAS,CAAC;QAC1E,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,EAAE,QAAQ,CAAC,CAAC;QAC/C,OAAO,OAAO,KAAK,KAAK,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;IACpE,CAAC;CACD,CAAmB,CAAC;AAErB,eAAe,OAAO,CAAC"}
1
+ {"version":3,"file":"main.js","sourceRoot":"","sources":["../../src/services/main.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH,IAAI,QAAoC,CAAC;AAEzC,gEAAgE;AAChE,MAAM,UAAU,UAAU,CAAC,OAAuB;IACjD,QAAQ,GAAG,OAAO,CAAC;AACpB,CAAC;AAED,0DAA0D;AAC1D,MAAM,UAAU,UAAU;IACzB,OAAO,QAAQ,CAAC;AACjB,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,YAAY;IAC3B,QAAQ,GAAG,SAAS,CAAC;AACtB,CAAC;AAED,SAAS,OAAO;IACf,IAAI,CAAC,QAAQ,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CACd,qGAAqG,CACrG,CAAC;IACH,CAAC;IACD,OAAO,QAAQ,CAAC;AACjB,CAAC;AAED;;;;;;GAMG;AACH,MAAM,OAAO,GAAG,IAAI,KAAK,CAAC,EAAoB,EAAE;IAC/C,GAAG,CAAC,OAAO,EAAE,QAAQ;QACpB,IAAI,OAAO,QAAQ,KAAK,QAAQ,IAAI,QAAQ,KAAK,MAAM;YAAE,OAAO,SAAS,CAAC;QAC1E,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,EAAE,QAAQ,CAAC,CAAC;QAC/C,OAAO,OAAO,KAAK,KAAK,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;IACpE,CAAC;CACD,CAAmB,CAAC;AAErB,eAAe,OAAO,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,WAAW,WAAW;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB;;;;;OAKG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACzC;AAED;;;;;;;;GAQG;AACH,MAAM,MAAM,sBAAsB,GAAG,UAAU,GAAG,YAAY,GAAG,aAAa,CAAC;AAE/E,MAAM,WAAW,WAAW;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,0EAA0E;IAC1E,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,qEAAqE;IACrE,sBAAsB,CAAC,EAAE,sBAAsB,CAAC;IAChD,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC7B;AAED,MAAM,WAAW,UAAU;IAC1B,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,eAAe;IAC/B,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,aAAa;IAC7B;;;;;;OAMG;IACH,WAAW,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACrD;;;;OAIG;IACH,KAAK,CAAC,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC;IACjD;;;;;;;OAOG;IACH,QAAQ,CACP,IAAI,EAAE,MAAM,EACZ,KAAK,CAAC,EAAE,MAAM,EACd,aAAa,CAAC,EAAE,MAAM,EACtB,MAAM,CAAC,EAAE,MAAM,GACb,OAAO,CAAC;QAAE,IAAI,EAAE,WAAW,CAAC;QAAC,KAAK,EAAE,UAAU,CAAA;KAAE,CAAC,CAAC;IACrD;;;;OAIG;IACH,aAAa,CAAC,CACb,WAAW,EAAE,MAAM,EACnB,WAAW,CAAC,EAAE,MAAM,GAClB,OAAO,CAAC,WAAW,CAAC,CAAC;CACxB;AAED;;;;GAIG;AACH,MAAM,WAAW,eAAe;IAC/B,sEAAsE;IACtE,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;CACvE;AAED,mDAAmD;AACnD,MAAM,MAAM,YAAY,GAAG,aAAa,GAAG,eAAe,CAAC;AAE3D,qEAAqE;AACrE,wBAAgB,WAAW,CAAC,KAAK,EAAE,YAAY,GAAG,KAAK,IAAI,eAAe,CAKzE;AAED;;;;;;;;GAQG;AACH,wBAAgB,gBAAgB,CAC/B,KAAK,EAAE,MAAM,GAAG,SAAS,EACzB,aAAa,EAAE,MAAM,GAAG,SAAS,GAC/B,IAAI,CAUN"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,MAAM,WAAW,WAAW;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB;;;;;OAKG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACzC;AAED;;;;;;;;GAQG;AACH,MAAM,MAAM,sBAAsB,GAAG,UAAU,GAAG,YAAY,GAAG,aAAa,CAAC;AAE/E,MAAM,WAAW,WAAW;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,0EAA0E;IAC1E,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,qEAAqE;IACrE,sBAAsB,CAAC,EAAE,sBAAsB,CAAC;IAChD,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC7B;AAED,MAAM,WAAW,UAAU;IAC1B,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,eAAe;IAC/B,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,aAAa;IAC7B;;;;;;OAMG;IACH,WAAW,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACrD;;;;OAIG;IACH,KAAK,CAAC,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC;IACjD;;;;;;;OAOG;IACH,QAAQ,CACP,IAAI,EAAE,MAAM,EACZ,KAAK,CAAC,EAAE,MAAM,EACd,aAAa,CAAC,EAAE,MAAM,EACtB,MAAM,CAAC,EAAE,MAAM,GACb,OAAO,CAAC;QAAE,IAAI,EAAE,WAAW,CAAC;QAAC,KAAK,EAAE,UAAU,CAAA;KAAE,CAAC,CAAC;IACrD;;;;OAIG;IACH,aAAa,CAAC,CACb,WAAW,EAAE,MAAM,EACnB,WAAW,CAAC,EAAE,MAAM,GAClB,OAAO,CAAC,WAAW,CAAC,CAAC;CACxB;AAED;;;;GAIG;AACH,MAAM,WAAW,eAAe;IAC/B,sEAAsE;IACtE,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;CACvE;AAED,mDAAmD;AACnD,MAAM,MAAM,YAAY,GAAG,aAAa,GAAG,eAAe,CAAC;AAE3D,qEAAqE;AACrE,wBAAgB,WAAW,CAAC,KAAK,EAAE,YAAY,GAAG,KAAK,IAAI,eAAe,CAKzE;AAED;;;;;;;;GAQG;AACH,wBAAgB,gBAAgB,CAC/B,KAAK,EAAE,MAAM,GAAG,SAAS,EACzB,aAAa,EAAE,MAAM,GAAG,SAAS,GAC/B,IAAI,CAUN"}
package/dist/types.js CHANGED
@@ -1,6 +1,7 @@
1
1
  /**
2
2
  * The shapes every provider answers with, whatever protocol it speaks.
3
3
  */
4
+ import { timingSafeEqual } from "node:crypto";
4
5
  /** Whether an entry verifies credentials rather than redirecting. */
5
6
  export function isDirectory(entry) {
6
7
  return (typeof entry.authenticate === "function" &&
@@ -20,8 +21,25 @@ export function assertOAuthState(state, expectedState) {
20
21
  throw new Error("[transit] OAuth callback requires expectedState for CSRF protection. " +
21
22
  "Store the state given to redirectUrl() in the session and pass it here.");
22
23
  }
23
- if (state !== expectedState) {
24
+ if (state === undefined || !sameSecret(state, expectedState)) {
24
25
  throw new Error("OAuth state mismatch — possible CSRF attack");
25
26
  }
26
27
  }
28
+ /**
29
+ * Compare two states without leaking where they diverge.
30
+ *
31
+ * `!==` on strings stops at the first differing byte, and the state is the only
32
+ * thing standing between an attacker's authorization code and the victim's
33
+ * session. The leak is small against network noise, but every other secret
34
+ * comparison in the framework is already constant-time and this one is the
35
+ * outlier.
36
+ *
37
+ * The lengths are checked first because `timingSafeEqual` throws when they
38
+ * differ. A state's length is not the secret; its content is.
39
+ */
40
+ function sameSecret(given, expected) {
41
+ const left = Buffer.from(given, "utf8");
42
+ const right = Buffer.from(expected, "utf8");
43
+ return left.length === right.length && timingSafeEqual(left, right);
44
+ }
27
45
  //# sourceMappingURL=types.js.map
package/dist/types.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAqHH,qEAAqE;AACrE,MAAM,UAAU,WAAW,CAAC,KAAmB;IAC9C,OAAO,CACN,OAAQ,KAAyB,CAAC,YAAY,KAAK,UAAU;QAC7D,OAAQ,KAAuB,CAAC,QAAQ,KAAK,UAAU,CACvD,CAAC;AACH,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,gBAAgB,CAC/B,KAAyB,EACzB,aAAiC;IAEjC,IAAI,CAAC,aAAa,EAAE,CAAC;QACpB,MAAM,IAAI,KAAK,CACd,uEAAuE;YACtE,yEAAyE,CAC1E,CAAC;IACH,CAAC;IACD,IAAI,KAAK,KAAK,aAAa,EAAE,CAAC;QAC7B,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAC;IAChE,CAAC;AACF,CAAC"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAoH9C,qEAAqE;AACrE,MAAM,UAAU,WAAW,CAAC,KAAmB;IAC9C,OAAO,CACN,OAAQ,KAAyB,CAAC,YAAY,KAAK,UAAU;QAC7D,OAAQ,KAAuB,CAAC,QAAQ,KAAK,UAAU,CACvD,CAAC;AACH,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,gBAAgB,CAC/B,KAAyB,EACzB,aAAiC;IAEjC,IAAI,CAAC,aAAa,EAAE,CAAC;QACpB,MAAM,IAAI,KAAK,CACd,uEAAuE;YACtE,yEAAyE,CAC1E,CAAC;IACH,CAAC;IACD,IAAI,KAAK,KAAK,SAAS,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,aAAa,CAAC,EAAE,CAAC;QAC9D,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAC;IAChE,CAAC;AACF,CAAC;AAED;;;;;;;;;;;GAWG;AACH,SAAS,UAAU,CAAC,KAAa,EAAE,QAAgB;IAClD,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IACxC,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IAC5C,OAAO,IAAI,CAAC,MAAM,KAAK,KAAK,CAAC,MAAM,IAAI,eAAe,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;AACrE,CAAC"}
@@ -0,0 +1,5 @@
1
+ /** The canonical name for whatever `NODE_ENV` holds. */
2
+ export declare function normalizeNodeEnv(value: string | undefined): string;
3
+ /** Whether this process is running in production, under any spelling. */
4
+ export declare function inProduction(): boolean;
5
+ //# sourceMappingURL=nodeEnv.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nodeEnv.d.ts","sourceRoot":"","sources":["../../src/vendor/nodeEnv.ts"],"names":[],"mappings":"AAuBA,wDAAwD;AACxD,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAOlE;AAED,yEAAyE;AACzE,wBAAgB,YAAY,IAAI,OAAO,CAEtC"}
@@ -1,14 +1,19 @@
1
+ // Generated from scripts/vendor/nodeEnv.ts — do not edit.
2
+ //
3
+ // This package is published and built from its own repository, so the file
4
+ // has to exist here rather than be imported. `pnpm vendor:sync` rewrites it,
5
+ // and `pnpm vendor:check` fails if this copy has drifted from the original.
1
6
  /**
2
- * Reading `NODE_ENV`, with the aliases people actually set.
7
+ * `NODE_ENV`, read the way every runtime actually spells it.
3
8
  *
4
- * `NODE_ENV=prod` is ordinary in a Dockerfile or a platform dashboard. Read
5
- * verbatim it answers "not production" — and here that means the in-process
6
- * SAML replay store is accepted on a production deployment, where it bounds
7
- * replay within one replica and not beyond it.
9
+ * `NODE_ENV=prod` is ordinary in a Dockerfile or a platform dashboard, and a
10
+ * bare `=== "production"` answers "not production" for it. What that costs
11
+ * differs per package, so the consequence is stated where the decision is
12
+ * taken, not here.
8
13
  *
9
- * Duplicated rather than imported: transit depends on no other package in this
10
- * workspace, and a security decision that only holds when an optional peer is
11
- * installed is not a decision.
14
+ * The tables mirror the framework's (`@c9up/ream`, src/env/nodeEnv.ts), which
15
+ * is the origin rather than a peer: it formats to different rules and exposes
16
+ * `currentNodeEnv()` instead of `inProduction()`.
12
17
  */
13
18
  const DEV_ENVS = ["dev", "develop", "development"];
14
19
  const PROD_ENVS = ["prod", "production"];
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nodeEnv.js","sourceRoot":"","sources":["../../src/vendor/nodeEnv.ts"],"names":[],"mappings":"AAAA,0DAA0D;AAC1D,EAAE;AACF,2EAA2E;AAC3E,6EAA6E;AAC7E,4EAA4E;AAE5E;;;;;;;;;;;GAWG;AAEH,MAAM,QAAQ,GAAG,CAAC,KAAK,EAAE,SAAS,EAAE,aAAa,CAAC,CAAC;AACnD,MAAM,SAAS,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;AACzC,MAAM,SAAS,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;AAEtC,wDAAwD;AACxD,MAAM,UAAU,gBAAgB,CAAC,KAAyB;IACzD,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,SAAS,CAAC;IAC1D,MAAM,GAAG,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;IAChC,IAAI,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC;QAAE,OAAO,aAAa,CAAC;IACjD,IAAI,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC;QAAE,OAAO,YAAY,CAAC;IACjD,IAAI,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC;QAAE,OAAO,MAAM,CAAC;IAC3C,OAAO,GAAG,CAAC;AACZ,CAAC;AAED,yEAAyE;AACzE,MAAM,UAAU,YAAY;IAC3B,OAAO,gBAAgB,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,YAAY,CAAC;AAChE,CAAC"}
@@ -0,0 +1,35 @@
1
+ export interface QuasarConnectionRequest {
2
+ /** The package asking. It prefixes every message this can raise. */
3
+ pkg: string;
4
+ /**
5
+ * How this package builds an error.
6
+ *
7
+ * Not optional, and not `new Error` by default: a package with its own
8
+ * error type carries codes (`E_<PKG>_<REASON>`) that a caller catches on,
9
+ * and a shared helper throwing a bare Error would silently drop them. The
10
+ * two reasons are distinguished so the codes can be too.
11
+ */
12
+ raise: (reason: "quasar-missing" | "incomplete-connection", message: string, cause?: unknown) => Error;
13
+ /** Connection name, or `undefined` for quasar's default. */
14
+ name?: string;
15
+ /** The commands the caller will actually issue. */
16
+ required: readonly string[];
17
+ /** What the caller does with them, for the message that names a gap. */
18
+ what: string;
19
+ /**
20
+ * A second way out, when this package has one.
21
+ *
22
+ * Several of them accept a client object directly, so "pass a client
23
+ * instead of a connection name" is actionable — and it was in each
24
+ * package's own message before this was shared. Dropping it to unify the
25
+ * wording would have made the error strictly less useful.
26
+ */
27
+ alternative?: string;
28
+ }
29
+ /**
30
+ * The named connection, checked for the commands the caller needs BEFORE it is
31
+ * handed over — a connection missing one would otherwise fail on the first
32
+ * command, far from the line that asked for it.
33
+ */
34
+ export declare function quasarConnection<T>(request: QuasarConnectionRequest): Promise<T>;
35
+ //# sourceMappingURL=quasarConnection.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"quasarConnection.d.ts","sourceRoot":"","sources":["../../src/vendor/quasarConnection.ts"],"names":[],"mappings":"AAiDA,MAAM,WAAW,uBAAuB;IACvC,oEAAoE;IACpE,GAAG,EAAE,MAAM,CAAC;IACZ;;;;;;;OAOG;IACH,KAAK,EAAE,CACN,MAAM,EAAE,gBAAgB,GAAG,uBAAuB,EAClD,OAAO,EAAE,MAAM,EACf,KAAK,CAAC,EAAE,OAAO,KACX,KAAK,CAAC;IACX,4DAA4D;IAC5D,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,mDAAmD;IACnD,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAC;IAC5B,wEAAwE;IACxE,IAAI,EAAE,MAAM,CAAC;IACb;;;;;;;OAOG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;;;GAIG;AACH,wBAAsB,gBAAgB,CAAC,CAAC,EACvC,OAAO,EAAE,uBAAuB,GAC9B,OAAO,CAAC,CAAC,CAAC,CAuCZ"}
@@ -0,0 +1,62 @@
1
+ // Generated from scripts/vendor/quasarConnection.ts — do not edit.
2
+ //
3
+ // This package is published and built from its own repository, so the file
4
+ // has to exist here rather than be imported. `pnpm vendor:sync` rewrites it,
5
+ // and `pnpm vendor:check` fails if this copy has drifted from the original.
6
+ /**
7
+ * Read a member without assuming how the object answers.
8
+ *
9
+ * Two shapes have to work, and they disagree about `in`. Quasar's accessor is
10
+ * a Proxy over an empty null-prototype object with only a `get` trap, so
11
+ * `"connection" in manager` is FALSE while reading it returns the function —
12
+ * gating on `in` rejected the real manager. And a module namespace under a
13
+ * test double RAISES for an export it does not have, rather than answering
14
+ * undefined, so a bare read fails on the mock. Reading through a catch is what
15
+ * satisfies both.
16
+ */
17
+ function readMember(value, name) {
18
+ if (typeof value !== "object" || value === null)
19
+ return undefined;
20
+ try {
21
+ return Reflect.get(value, name);
22
+ }
23
+ catch {
24
+ return undefined;
25
+ }
26
+ }
27
+ function isConnectionSource(value) {
28
+ return typeof readMember(value, "connection") === "function";
29
+ }
30
+ /**
31
+ * The named connection, checked for the commands the caller needs BEFORE it is
32
+ * handed over — a connection missing one would otherwise fail on the first
33
+ * command, far from the line that asked for it.
34
+ */
35
+ export async function quasarConnection(request) {
36
+ const { pkg, name, required, what, raise, alternative } = request;
37
+ const specifier = "@c9up/quasar/services/main";
38
+ let loaded;
39
+ try {
40
+ loaded = await import(/* @vite-ignore */ specifier);
41
+ }
42
+ catch (cause) {
43
+ throw raise("quasar-missing", `[${pkg}] ${what} asks for the quasar connection "${name ?? "default"}", but @c9up/quasar is not installed.\n` +
44
+ ` pnpm add @c9up/quasar${alternative ? `, ${alternative}` : ""}`, cause);
45
+ }
46
+ const manager = isConnectionSource(loaded)
47
+ ? loaded
48
+ : Reflect.get(Object(loaded), "default");
49
+ if (!isConnectionSource(manager)) {
50
+ throw raise("quasar-missing", `[${pkg}] @c9up/quasar/services/main did not expose a connection() manager`);
51
+ }
52
+ const connection = manager.connection(name);
53
+ const missing = required.filter((command) => typeof readMember(connection, command) !== "function");
54
+ if (missing.length > 0) {
55
+ throw raise("incomplete-connection", `[${pkg}] the quasar connection${name ? ` '${name}'` : ""} is missing ${missing.join(", ")}, which ${what} issues`);
56
+ }
57
+ // Load-bearing: every member of `required` has just been checked to be a
58
+ // function on this object. The caller names the type it needs because only
59
+ // the caller knows which commands it asked for.
60
+ return connection;
61
+ }
62
+ //# sourceMappingURL=quasarConnection.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"quasarConnection.js","sourceRoot":"","sources":["../../src/vendor/quasarConnection.ts"],"names":[],"mappings":"AAAA,mEAAmE;AACnE,EAAE;AACF,2EAA2E;AAC3E,6EAA6E;AAC7E,4EAA4E;AAqB5E;;;;;;;;;;GAUG;AACH,SAAS,UAAU,CAAC,KAAc,EAAE,IAAY;IAC/C,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI;QAAE,OAAO,SAAS,CAAC;IAClE,IAAI,CAAC;QACJ,OAAO,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IACjC,CAAC;IAAC,MAAM,CAAC;QACR,OAAO,SAAS,CAAC;IAClB,CAAC;AACF,CAAC;AAED,SAAS,kBAAkB,CAAC,KAAc;IACzC,OAAO,OAAO,UAAU,CAAC,KAAK,EAAE,YAAY,CAAC,KAAK,UAAU,CAAC;AAC9D,CAAC;AAmCD;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACrC,OAAgC;IAEhC,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC;IAClE,MAAM,SAAS,GAAG,4BAA4B,CAAC;IAC/C,IAAI,MAAe,CAAC;IACpB,IAAI,CAAC;QACJ,MAAM,GAAG,MAAM,MAAM,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAC;IACrD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QAChB,MAAM,KAAK,CACV,gBAAgB,EAChB,IAAI,GAAG,KAAK,IAAI,oCAAoC,IAAI,IAAI,SAAS,yCAAyC;YAC7G,0BAA0B,WAAW,CAAC,CAAC,CAAC,KAAK,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EAClE,KAAK,CACL,CAAC;IACH,CAAC;IAED,MAAM,OAAO,GAAG,kBAAkB,CAAC,MAAM,CAAC;QACzC,CAAC,CAAC,MAAM;QACR,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,SAAS,CAAC,CAAC;IAC1C,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,EAAE,CAAC;QAClC,MAAM,KAAK,CACV,gBAAgB,EAChB,IAAI,GAAG,oEAAoE,CAC3E,CAAC;IACH,CAAC;IAED,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;IAC5C,MAAM,OAAO,GAAG,QAAQ,CAAC,MAAM,CAC9B,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,UAAU,CAAC,UAAU,EAAE,OAAO,CAAC,KAAK,UAAU,CAClE,CAAC;IACF,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACxB,MAAM,KAAK,CACV,uBAAuB,EACvB,IAAI,GAAG,0BAA0B,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,CAAC,CAAC,CAAC,EAAE,eAAe,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,IAAI,SAAS,CAClH,CAAC;IACH,CAAC;IACD,yEAAyE;IACzE,2EAA2E;IAC3E,gDAAgD;IAChD,OAAO,UAAe,CAAC;AACxB,CAAC"}
package/dist/xml.d.ts CHANGED
@@ -57,8 +57,27 @@ export interface XmlInstruction {
57
57
  data: string;
58
58
  }
59
59
  export type XmlNode = XmlElement | XmlText | XmlComment | XmlInstruction;
60
+ /**
61
+ * What a document is allowed to cost.
62
+ *
63
+ * A SAML response is parsed BEFORE its signature is checked — it has to be,
64
+ * since the signature is inside it — so every one of these bounds applies to
65
+ * bytes an unauthenticated caller chose. Without them a single POST could
66
+ * exhaust the heap, or nest deeply enough to overflow the stack in `#element`,
67
+ * which recurses once per level.
68
+ */
69
+ export interface XmlLimits {
70
+ /** Characters in the document. Default 1 MiB — a large SAML response is tens of KiB. */
71
+ maxLength?: number;
72
+ /** Nesting levels. Default 100; the recursion is one frame per level. */
73
+ maxDepth?: number;
74
+ /** Elements, text runs, comments and instructions, together. Default 50 000. */
75
+ maxNodes?: number;
76
+ /** Attributes on one element. Default 256. */
77
+ maxAttributes?: number;
78
+ }
60
79
  /** Parse a document and return its root element. */
61
- export declare function parseXml(source: string): XmlElement;
80
+ export declare function parseXml(source: string, limits?: XmlLimits): XmlElement;
62
81
  /** The URI a prefix resolves to at this element, or `undefined`. */
63
82
  export declare function resolvePrefix(element: XmlElement, prefix: string): string | undefined;
64
83
  /** Every element under `element`, including it, in document order. */
package/dist/xml.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"xml.d.ts","sourceRoot":"","sources":["../src/xml.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,wEAAwE;AACxE,eAAO,MAAM,MAAM,yCAAyC,CAAC;AAG7D,MAAM,WAAW,YAAY;IAC5B,sCAAsC;IACtC,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;CACZ;AAED,MAAM,WAAW,YAAY;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,kEAAkE;IAClE,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,UAAU;IAC1B,IAAI,EAAE,SAAS,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,MAAM,CAAC;IACrB,uEAAuE;IACvE,UAAU,EAAE,YAAY,EAAE,CAAC;IAC3B,UAAU,EAAE,YAAY,EAAE,CAAC;IAC3B,QAAQ,EAAE,OAAO,EAAE,CAAC;IACpB,MAAM,EAAE,UAAU,GAAG,SAAS,CAAC;CAC/B;AAED,MAAM,WAAW,OAAO;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,UAAU;IAC1B,IAAI,EAAE,SAAS,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,cAAc;IAC9B,IAAI,EAAE,aAAa,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;CACb;AAED,MAAM,MAAM,OAAO,GAAG,UAAU,GAAG,OAAO,GAAG,UAAU,GAAG,cAAc,CAAC;AASzE,oDAAoD;AACpD,wBAAgB,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,UAAU,CAOnD;AAED,oEAAoE;AACpE,wBAAgB,aAAa,CAC5B,OAAO,EAAE,UAAU,EACnB,MAAM,EAAE,MAAM,GACZ,MAAM,GAAG,SAAS,CAWpB;AAED,sEAAsE;AACtE,wBAAiB,IAAI,CAAC,OAAO,EAAE,UAAU,GAAG,SAAS,CAAC,UAAU,CAAC,CAKhE;AAED,8EAA8E;AAC9E,wBAAgB,eAAe,CAC9B,IAAI,EAAE,UAAU,EAChB,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,MAAM,GACX,UAAU,GAAG,SAAS,CASxB;AAED,+DAA+D;AAC/D,wBAAgB,aAAa,CAC5B,OAAO,EAAE,UAAU,EACnB,YAAY,EAAE,MAAM,EACpB,KAAK,EAAE,MAAM,GACX,UAAU,EAAE,CAOd;AAED,iEAAiE;AACjE,wBAAgB,MAAM,CAAC,OAAO,EAAE,UAAU,GAAG,MAAM,CAOlD"}
1
+ {"version":3,"file":"xml.d.ts","sourceRoot":"","sources":["../src/xml.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,wEAAwE;AACxE,eAAO,MAAM,MAAM,yCAAyC,CAAC;AAG7D,MAAM,WAAW,YAAY;IAC5B,sCAAsC;IACtC,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;CACZ;AAED,MAAM,WAAW,YAAY;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,kEAAkE;IAClE,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,UAAU;IAC1B,IAAI,EAAE,SAAS,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,MAAM,CAAC;IACrB,uEAAuE;IACvE,UAAU,EAAE,YAAY,EAAE,CAAC;IAC3B,UAAU,EAAE,YAAY,EAAE,CAAC;IAC3B,QAAQ,EAAE,OAAO,EAAE,CAAC;IACpB,MAAM,EAAE,UAAU,GAAG,SAAS,CAAC;CAC/B;AAED,MAAM,WAAW,OAAO;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,UAAU;IAC1B,IAAI,EAAE,SAAS,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,cAAc;IAC9B,IAAI,EAAE,aAAa,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;CACb;AAED,MAAM,MAAM,OAAO,GAAG,UAAU,GAAG,OAAO,GAAG,UAAU,GAAG,cAAc,CAAC;AASzE;;;;;;;;GAQG;AACH,MAAM,WAAW,SAAS;IACzB,wFAAwF;IACxF,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,yEAAyE;IACzE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,gFAAgF;IAChF,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,8CAA8C;IAC9C,aAAa,CAAC,EAAE,MAAM,CAAC;CACvB;AASD,oDAAoD;AACpD,wBAAgB,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,SAAS,GAAG,UAAU,CAevE;AAED,oEAAoE;AACpE,wBAAgB,aAAa,CAC5B,OAAO,EAAE,UAAU,EACnB,MAAM,EAAE,MAAM,GACZ,MAAM,GAAG,SAAS,CAWpB;AAED,sEAAsE;AACtE,wBAAiB,IAAI,CAAC,OAAO,EAAE,UAAU,GAAG,SAAS,CAAC,UAAU,CAAC,CAKhE;AAED,8EAA8E;AAC9E,wBAAgB,eAAe,CAC9B,IAAI,EAAE,UAAU,EAChB,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,MAAM,GACX,UAAU,GAAG,SAAS,CASxB;AAED,+DAA+D;AAC/D,wBAAgB,aAAa,CAC5B,OAAO,EAAE,UAAU,EACnB,YAAY,EAAE,MAAM,EACpB,KAAK,EAAE,MAAM,GACX,UAAU,EAAE,CAOd;AAED,iEAAiE;AACjE,wBAAgB,MAAM,CAAC,OAAO,EAAE,UAAU,GAAG,MAAM,CAOlD"}
package/dist/xml.js CHANGED
@@ -25,13 +25,25 @@ class XmlError extends Error {
25
25
  this.name = "XmlError";
26
26
  }
27
27
  }
28
+ const DEFAULT_LIMITS = {
29
+ maxLength: 1024 * 1024,
30
+ maxDepth: 100,
31
+ maxNodes: 50_000,
32
+ maxAttributes: 256,
33
+ };
28
34
  /** Parse a document and return its root element. */
29
- export function parseXml(source) {
35
+ export function parseXml(source, limits) {
36
+ const resolved = { ...DEFAULT_LIMITS, ...limits };
37
+ // Checked before the copy below, not after: normalising duplicates the whole
38
+ // string, so a 300 MB body cost 600 MB before anything looked at its size.
39
+ if (source.length > resolved.maxLength) {
40
+ throw new XmlError(`the document is ${source.length} characters, over the ${resolved.maxLength} allowed`);
41
+ }
30
42
  // Line endings are normalised before parsing, as the canonicalization
31
43
  // specification requires — otherwise the same document signed on one
32
44
  // platform digests differently on another.
33
45
  const input = source.replace(/\r\n?/g, "\n");
34
- const parser = new Parser(input);
46
+ const parser = new Parser(input, resolved);
35
47
  return parser.document();
36
48
  }
37
49
  /** The URI a prefix resolves to at this element, or `undefined`. */
@@ -81,9 +93,20 @@ export function textOf(element) {
81
93
  }
82
94
  class Parser {
83
95
  source;
96
+ limits;
84
97
  #at = 0;
85
- constructor(source) {
98
+ /** Nodes built so far, across the whole document. */
99
+ #nodes = 0;
100
+ constructor(source, limits) {
86
101
  this.source = source;
102
+ this.limits = limits;
103
+ }
104
+ /** Count one node, and refuse a document that keeps producing them. */
105
+ #node() {
106
+ this.#nodes += 1;
107
+ if (this.#nodes > this.limits.maxNodes) {
108
+ throw new XmlError(`the document has more than ${this.limits.maxNodes} nodes`);
109
+ }
87
110
  }
88
111
  document() {
89
112
  let root;
@@ -115,7 +138,15 @@ class Parser {
115
138
  throw new XmlError("the document has no element");
116
139
  return root;
117
140
  }
118
- #element(parent) {
141
+ #element(parent, depth = 0) {
142
+ // Checked on the way IN: `#element` recurses once per level, so a
143
+ // document nested deeply enough overflowed the stack before any of this
144
+ // ran — and the stack it overflows is the one holding the signature check
145
+ // that has not happened yet.
146
+ if (depth > this.limits.maxDepth) {
147
+ throw new XmlError(`the document nests deeper than ${this.limits.maxDepth}`);
148
+ }
149
+ this.#node();
119
150
  this.#expect("<");
120
151
  const qname = this.#name();
121
152
  const element = {
@@ -141,6 +172,9 @@ class Parser {
141
172
  this.#expect("=");
142
173
  this.#skipSpace();
143
174
  raw.push({ qname: name, value: this.#attributeValue() });
175
+ if (raw.length > this.limits.maxAttributes) {
176
+ throw new XmlError(`element <${qname}> carries more than ${this.limits.maxAttributes} attributes`);
177
+ }
144
178
  }
145
179
  for (const { qname: name, value } of raw) {
146
180
  if (name === "xmlns") {
@@ -212,6 +246,7 @@ class Parser {
212
246
  const end = this.source.indexOf("-->", this.#at);
213
247
  if (end === -1)
214
248
  throw new XmlError("a comment is never closed");
249
+ this.#node();
215
250
  element.children.push({
216
251
  type: "comment",
217
252
  value: this.source.slice(this.#at + 4, end),
@@ -223,6 +258,7 @@ class Parser {
223
258
  const end = this.source.indexOf("]]>", this.#at);
224
259
  if (end === -1)
225
260
  throw new XmlError("a CDATA section is never closed");
261
+ this.#node();
226
262
  element.children.push({
227
263
  type: "text",
228
264
  value: this.source.slice(this.#at + 9, end),
@@ -239,6 +275,7 @@ class Parser {
239
275
  throw new XmlError("a processing instruction is never closed");
240
276
  const body = this.source.slice(this.#at + 2, end);
241
277
  const space = body.search(/\s/);
278
+ this.#node();
242
279
  element.children.push({
243
280
  type: "instruction",
244
281
  target: space === -1 ? body : body.slice(0, space),
@@ -248,11 +285,12 @@ class Parser {
248
285
  continue;
249
286
  }
250
287
  if (this.#peek("<")) {
251
- element.children.push(this.#element(element));
288
+ element.children.push(this.#element(element, depth + 1));
252
289
  continue;
253
290
  }
254
291
  const next = this.source.indexOf("<", this.#at);
255
292
  const end = next === -1 ? this.source.length : next;
293
+ this.#node();
256
294
  element.children.push({
257
295
  type: "text",
258
296
  value: resolveEntities(this.source.slice(this.#at, end)),