stated-protocol 5.0.0

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 (62) hide show
  1. package/README.md +409 -0
  2. package/dist/constants.d.ts +225 -0
  3. package/dist/constants.d.ts.map +1 -0
  4. package/dist/constants.js +227 -0
  5. package/dist/constants.js.map +1 -0
  6. package/dist/esm/constants.d.ts +225 -0
  7. package/dist/esm/constants.d.ts.map +1 -0
  8. package/dist/esm/hash.d.ts +37 -0
  9. package/dist/esm/hash.d.ts.map +1 -0
  10. package/dist/esm/index.d.ts +6 -0
  11. package/dist/esm/index.d.ts.map +1 -0
  12. package/dist/esm/index.js +2104 -0
  13. package/dist/esm/index.js.map +7 -0
  14. package/dist/esm/protocol.d.ts +30 -0
  15. package/dist/esm/protocol.d.ts.map +1 -0
  16. package/dist/esm/signature.d.ts +49 -0
  17. package/dist/esm/signature.d.ts.map +1 -0
  18. package/dist/esm/types.d.ts +115 -0
  19. package/dist/esm/types.d.ts.map +1 -0
  20. package/dist/esm/utils.d.ts +14 -0
  21. package/dist/esm/utils.d.ts.map +1 -0
  22. package/dist/hash.d.ts +37 -0
  23. package/dist/hash.d.ts.map +1 -0
  24. package/dist/hash.js +99 -0
  25. package/dist/hash.js.map +1 -0
  26. package/dist/index.d.ts +6 -0
  27. package/dist/index.d.ts.map +1 -0
  28. package/dist/index.js +22 -0
  29. package/dist/index.js.map +1 -0
  30. package/dist/protocol.d.ts +30 -0
  31. package/dist/protocol.d.ts.map +1 -0
  32. package/dist/protocol.js +677 -0
  33. package/dist/protocol.js.map +1 -0
  34. package/dist/signature.d.ts +49 -0
  35. package/dist/signature.d.ts.map +1 -0
  36. package/dist/signature.js +169 -0
  37. package/dist/signature.js.map +1 -0
  38. package/dist/types.d.ts +115 -0
  39. package/dist/types.d.ts.map +1 -0
  40. package/dist/types.js +30 -0
  41. package/dist/types.js.map +1 -0
  42. package/dist/utils.d.ts +14 -0
  43. package/dist/utils.d.ts.map +1 -0
  44. package/dist/utils.js +96 -0
  45. package/dist/utils.js.map +1 -0
  46. package/package.json +66 -0
  47. package/src/constants.ts +245 -0
  48. package/src/fixtures.test.ts +236 -0
  49. package/src/hash.test.ts +219 -0
  50. package/src/hash.ts +99 -0
  51. package/src/index.ts +5 -0
  52. package/src/organisation-verification.test.ts +50 -0
  53. package/src/person-verification.test.ts +55 -0
  54. package/src/poll.test.ts +28 -0
  55. package/src/protocol.ts +871 -0
  56. package/src/rating.test.ts +25 -0
  57. package/src/signature.test.ts +200 -0
  58. package/src/signature.ts +159 -0
  59. package/src/statement.test.ts +101 -0
  60. package/src/types.ts +185 -0
  61. package/src/utils.test.ts +140 -0
  62. package/src/utils.ts +104 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"protocol.js","sourceRoot":"","sources":["../src/protocol.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,2CAAwE;AACxE,mCAAsD;AACtD,2CAA8C;AAC9C,iCAAgC;AAchC,mCAA0E;AAE1E,MAAM,OAAO,GAAG,CAAC,CAAC;AAElB,0CAAwB;AACxB,8CAA4B;AAC5B,0CAAwB;AAEjB,MAAM,cAAc,GAAG,CAAC,EAC7B,MAAM,EACN,MAAM,EACN,IAAI,EACJ,IAAI,EACJ,OAAO,EACP,cAAc,EACd,mBAAmB,EACnB,YAAY,EACZ,WAAW,GACD,EAAE,EAAE;IACd,IAAI,OAAO,CAAC,KAAK,CAAC,uBAAuB,CAAC;QACxC,MAAM,IAAI,KAAK,CACb,mGAAmG,CACpG,CAAC;IACJ,IAAI,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC;QACvB,MAAM,IAAI,KAAK,CACb,yGAAyG,CAC1G,CAAC;IACJ,IAAI,OAAO,CAAC,KAAK,CAAC,6BAA6B,CAAC;QAC9C,MAAM,IAAI,KAAK,CACb,wGAAwG,CACzG,CAAC;IACJ,IAAI,OAAO,CAAC,KAAK,CAAC,iBAAiB,CAAC;QAClC,MAAM,IAAI,KAAK,CACb,6GAA6G,CAC9G,CAAC;IACJ,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,CAAC,IAAI,CAAC,WAAW;QAAE,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;IAClG,IAAI,CAAC,MAAM;QAAE,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;IAC3D,IAAI,WAAW,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;IAC7F,IAAI,WAAW,EAAE,CAAC;QAChB,WAAW,CAAC,OAAO,CAAC,CAAC,UAAU,EAAE,KAAK,EAAE,EAAE;YACxC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,gCAAgC,CAAC,EAAE,CAAC;gBACxD,MAAM,IAAI,KAAK,CACb,cAAc,KAAK,GAAG,CAAC,6DAA6D,CACrF,CAAC;YACJ,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED,IAAI,YAAY,EAAE,CAAC;QACjB,KAAK,MAAM,CAAC,IAAI,EAAE,WAAW,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,CAAC;YAC/D,IAAI,WAAW,CAAC,KAAK,CAAC,uBAAuB,CAAC;gBAC5C,MAAM,IAAI,KAAK,CAAC,mBAAmB,IAAI,0CAA0C,CAAC,CAAC;YACrF,IAAI,WAAW,CAAC,KAAK,CAAC,2BAA2B,CAAC;gBAChD,MAAM,IAAI,KAAK,CAAC,mBAAmB,IAAI,iDAAiD,CAAC,CAAC;QAC9F,CAAC;IACH,CAAC;IAED,MAAM,gBAAgB,GAAG,YAAY;QACnC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC;aACzB,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,WAAW,CAAC,EAAE,EAAE;YAC3B,MAAM,sBAAsB,GAAG,WAAW,GAAG,CAAC,WAAW,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YACpF,MAAM,mBAAmB,GAAG,sBAAsB;iBAC/C,KAAK,CAAC,IAAI,CAAC;iBACX,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;iBAC5C,IAAI,CAAC,IAAI,CAAC,CAAC;YACd,OAAO,eAAe,IAAI,MAAM,mBAAmB,EAAE,CAAC;QACxD,CAAC,CAAC;aACD,IAAI,CAAC,EAAE,CAAC;QACb,CAAC,CAAC,EAAE,CAAC;IAEP,MAAM,eAAe,GACnB,WAAW,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,eAAe,GAAG,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;IAE/F,MAAM,kBAAkB,GAAG,OAAO,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IACxE,oHAAoH;IACpH,MAAM,cAAc,GAAG,kBAAkB,CAAC,IAAI,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;IACrE,MAAM,YAAY,GAAG,cAAc;QACjC,CAAC,CAAC,kBAAkB;QACpB,CAAC,CAAC,kBAAkB;aACf,KAAK,CAAC,IAAI,CAAC;aACX,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;aAC5C,IAAI,CAAC,IAAI,CAAC,CAAC;IAElB,MAAM,SAAS,GACb,2BAA2B;QAC3B,OAAO;QACP,IAAI;QACJ,qBAAqB;QACrB,MAAM;QACN,IAAI;QACJ,UAAU;QACV,CAAC,MAAM,IAAI,EAAE,CAAC;QACd,IAAI;QACJ,CAAC,cAAc,IAAI,cAAc,EAAE,MAAM,GAAG,CAAC;YAC3C,CAAC,CAAC,qCAAqC,GAAG,CAAC,cAAc,IAAI,EAAE,CAAC,GAAG,IAAI;YACvE,CAAC,CAAC,EAAE,CAAC;QACP,QAAQ;QACR,IAAI,CAAC,WAAW,EAAE;QAClB,IAAI;QACJ,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;QAClE,CAAC,mBAAmB,IAAI,mBAAmB,EAAE,MAAM,GAAG,CAAC;YACrD,CAAC,CAAC,wBAAwB,GAAG,CAAC,mBAAmB,IAAI,EAAE,CAAC,GAAG,IAAI;YAC/D,CAAC,CAAC,EAAE,CAAC;QACP,sBAAsB;QACtB,YAAY;QACZ,gBAAgB;QAChB,eAAe,CAAC;IAClB,IAAI,SAAS,CAAC,MAAM,GAAG,IAAI;QACzB,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAC;IACzE,OAAO,SAAS,CAAC;AACnB,CAAC,CAAC;AAtGW,QAAA,cAAc,kBAsGzB;AAEK,MAAM,cAAc,GAAG,CAAC,EAC7B,SAAS,EAAE,KAAK,GAGjB,EAAwD,EAAE;IACzD,IAAI,KAAK,CAAC,MAAM,GAAG,IAAI;QAAE,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAC;IAChG,MAAM,kBAAkB,GAAG,KAAK,CAAC,KAAK,CAAC,6BAA6B,CAAC,CAAC,CAAC,CAAC,CAAC;IACzE,IAAI,kBAAkB,CAAC,KAAK,CAAC,MAAM,CAAC;QAClC,MAAM,IAAI,KAAK,CACb,oHAAoH,CACrH,CAAC;IAEJ,MAAM,cAAc,GAAG,IAAI,MAAM,CAC/B,EAAE;QACA,8BAA8B,CAAC,MAAM;QACrC,oDAAoD,CAAC,MAAM;QAC3D,4CAA4C,CAAC,MAAM;QACnD,2CAA2C,CAAC,MAAM;QAClD,mCAAmC,CAAC,MAAM;QAC1C,GAAG,CAAC,MAAM,CACb,CAAC;IACF,MAAM,cAAc,GAAG,KAAK,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;IAEnD,IAAI,iBAAiB,GAAG,KAAK,CAAC;IAC9B,IAAI,SAA6B,CAAC;IAClC,IAAI,SAA6B,CAAC;IAElC,IAAI,cAAc,IAAI,cAAc,CAAC,MAAM,EAAE,CAAC;QAC5C,iBAAiB,GAAG,cAAc,CAAC,MAAM,CAAC,SAAS,CAAC;QACpD,MAAM,aAAa,GAAG,cAAc,CAAC,MAAM,CAAC,aAAa,CAAC;QAC1D,SAAS,GAAG,cAAc,CAAC,MAAM,CAAC,SAAS,CAAC;QAC5C,SAAS,GAAG,cAAc,CAAC,MAAM,CAAC,SAAS,CAAC;QAC5C,MAAM,SAAS,GAAG,cAAc,CAAC,MAAM,CAAC,SAAS,CAAC;QAElD,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;YAC5B,MAAM,IAAI,KAAK,CAAC,mCAAmC,GAAG,SAAS,CAAC,CAAC;QACnE,CAAC;QAED,MAAM,YAAY,GAAG,IAAA,aAAM,EAAC,iBAAiB,CAAC,CAAC;QAC/C,IAAI,YAAY,KAAK,aAAa,EAAE,CAAC;YACnC,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;QAC7C,CAAC;QAED,MAAM,OAAO,GAAG,IAAA,2BAAe,EAAC,iBAAiB,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;QACzE,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;QACrD,CAAC;IACH,CAAC;IAED,MAAM,cAAc,GAAG,IAAI,MAAM,CAC/B,EAAE;QACA,uDAAuD,CAAC,MAAM;QAC9D,yCAAyC,CAAC,MAAM;QAChD,8BAA8B,CAAC,MAAM;QACrC,sEAAsE,CAAC,MAAM;QAC7E,0BAA0B,CAAC,MAAM;QACjC,+BAA+B,CAAC,MAAM;QACtC,8DAA8D,CAAC,MAAM;QACrE,sBAAsB,CAAC,MAAM;QAC7B,wIAAwI;aACrI,MAAM;QACT,iDAAiD,CAAC,MAAM;QACxD,2DAA2D,CAAC,MAAM;QAClE,6CAA6C,CAAC,MAAM;QACpD,GAAG,CAAC,MAAM,CACb,CAAC;IACF,MAAM,KAAK,GAAG,iBAAiB,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;IACtD,IAAI,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,MAAM;QAAE,MAAM,IAAI,KAAK,CAAC,4BAA4B,GAAG,KAAK,CAAC,CAAC;IAEnF,MAAM,EACJ,MAAM,EACN,MAAM,EACN,cAAc,EACd,IAAI,EAAE,OAAO,EACb,IAAI,EAAE,OAAO,EACb,mBAAmB,EACnB,WAAW,EAAE,cAAc,EAC3B,aAAa,EACb,OAAO,EACP,YAAY,EACZ,IAAI,EACJ,YAAY,EAAE,eAAe,GAC9B,GAAG,KAAK,CAAC,MAAM,CAAC;IAEjB,MAAM,MAAM,GAAG;QACb,MAAM;QACN,MAAM;QACN,cAAc;QACd,OAAO;QACP,OAAO;QACP,mBAAmB;QACnB,aAAa;QACb,OAAO,EAAE,OAAO;YACd,CAAC,CAAC,OAAO;iBACJ,KAAK,CAAC,IAAI,CAAC;iBACX,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;iBACnE,IAAI,CAAC,IAAI,CAAC;iBACV,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC;YACvB,CAAC,CAAC,YAAY;QAChB,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS;QAC7D,eAAe;KAChB,CAAC;IACF,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,qBAAS,CAAC;QAClC,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAC;IACnE,IAAI,CAAC,MAAM,CAAC,MAAM;QAAE,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAC;IACpF,IAAI,CAAC,MAAM,CAAC,MAAM;QAAE,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAC;IACpF,IAAI,CAAC,MAAM,CAAC,OAAO;QAAE,MAAM,IAAI,KAAK,CAAC,yDAAyD,CAAC,CAAC;IAChG,IAAI,CAAC,MAAM,CAAC,aAAa;QACvB,MAAM,IAAI,KAAK,CAAC,sDAAsD,CAAC,CAAC;IAC1E,IAAI,MAAM,CAAC,aAAa,KAAK,GAAG;QAC9B,MAAM,IAAI,KAAK,CACb,sEAAsE,MAAM,CAAC,aAAa,EAAE,CAC7F,CAAC;IAEJ,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;IACzC,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAEtC,IAAI,WAAW,GAAyB,SAAS,CAAC;IAClD,IAAI,cAAc,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAChD,WAAW,GAAG,cAAc,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;QAC9D,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC3B,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;QACnD,CAAC;IACH,CAAC;IAED,IAAI,YAAY,GAAuC,SAAS,CAAC;IACjE,IAAI,MAAM,CAAC,eAAe,IAAI,MAAM,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAChE,YAAY,GAAG,EAAE,CAAC;QAClB,MAAM,gBAAgB,GAAG,MAAM,CAAC,eAAe;aAC5C,KAAK,CAAC,+BAA+B,CAAC;aACtC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QACrC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,gBAAgB,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;YACpD,IAAI,CAAC,GAAG,CAAC,GAAG,gBAAgB,CAAC,MAAM,EAAE,CAAC;gBACpC,MAAM,IAAI,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAC;gBACjC,MAAM,cAAc,GAAG,gBAAgB,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;gBAC/C,6CAA6C;gBAC7C,MAAM,WAAW,GAAG,cAAc;qBAC/B,KAAK,CAAC,IAAI,CAAC;qBACX,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;qBACnE,IAAI,CAAC,IAAI,CAAC;qBACV,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;gBACtB,YAAY,CAAC,IAAI,CAAC,GAAG,WAAW,CAAC;YACnC,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO;QACL,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,cAAc,EAAE,MAAM,CAAC,cAAc;QACrC,IAAI;QACJ,IAAI,EAAE,IAAI,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS;QAChD,mBAAmB,EAAE,MAAM,CAAC,mBAAmB;QAC/C,aAAa,EAAE,MAAM,CAAC,aAAa;QACnC,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,WAAW,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC;QAClD,YAAY,EAAE,YAAY,IAAI,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,SAAS;QAC7F,WAAW,EAAE,WAAW,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS;KAC7E,CAAC;AACJ,CAAC,CAAC;AA/JW,QAAA,cAAc,kBA+JzB;AAEK,MAAM,gBAAgB,GAAG,CAAC,EAC/B,QAAQ,EACR,IAAI,EACJ,gBAAgB,EAChB,OAAO,EACP,kBAAkB,GACb,EAAE,EAAE;IACT,IAAI,CAAC,IAAI;QAAE,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC;IACjE,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC;IAC/E,IAAI,gBAAgB,IAAI,gBAAgB,CAAC,QAAQ,CAAC,IAAI,CAAC;QACrD,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;IAC5D,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;QAChC,IAAI,MAAM,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC;YACjC,MAAM,IAAI,KAAK,CAAC,UAAU,KAAK,GAAG,CAAC,uBAAuB,CAAC,CAAC;IAChE,CAAC,CAAC,CAAC;IACH,MAAM,OAAO,GACX,kBAAkB;QAClB,CAAC,QAAQ,CAAC,CAAC,CAAC,uBAAuB,GAAG,QAAQ,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;QACzE,YAAY;QACZ,IAAI;QACJ,IAAI;QACJ,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,gBAAgB,GAAG,OAAO,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;QAC9E,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,gBAAgB,GAAG,OAAO,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;QAC9E,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,gBAAgB,GAAG,OAAO,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;QAC9E,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,gBAAgB,GAAG,OAAO,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;QAC9E,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,gBAAgB,GAAG,OAAO,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;QAC9E,CAAC,kBAAkB,KAAK,IAAI,IAAI,kBAAkB,KAAK,KAAK;YAC1D,CAAC,CAAC,6BAA6B,GAAG,CAAC,kBAAkB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI;YAC5E,CAAC,CAAC,EAAE,CAAC;QACP,CAAC,gBAAgB,CAAC,CAAC,CAAC,oBAAoB,GAAG,gBAAgB,GAAG,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IAC3E,OAAO,OAAO,CAAC;AACjB,CAAC,CAAC;AA/BW,QAAA,gBAAgB,oBA+B3B;AAEK,MAAM,SAAS,GAAG,CAAC,OAAe,EAAE,OAAgB,EAAQ,EAAE;IACnE,IAAI,OAAO,KAAK,GAAG;QAAE,MAAM,IAAI,KAAK,CAAC,kBAAkB,GAAG,OAAO,CAAC,CAAC;IACnE,MAAM,SAAS,GAAG,IAAI,MAAM,CAC1B,EAAE;QACA,mBAAmB,CAAC,MAAM;QAC1B,kDAAkD,CAAC,MAAM;QACzD,8BAA8B,CAAC,MAAM;QACrC,0CAA0C,CAAC,MAAM;QACjD,0CAA0C,CAAC,MAAM;QACjD,0CAA0C,CAAC,MAAM;QACjD,0CAA0C,CAAC,MAAM;QACjD,0CAA0C,CAAC,MAAM;QACjD,iEAAiE,CAAC,MAAM;QACxE,uDAAuD,CAAC,MAAM;QAC9D,GAAG,CAAC,MAAM,CACb,CAAC;IACF,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IACvC,IAAI,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,MAAM;QAAE,MAAM,IAAI,KAAK,CAAC,uBAAuB,GAAG,OAAO,CAAC,CAAC;IAEhF,MAAM,EACJ,QAAQ,EACR,IAAI,EACJ,OAAO,EACP,OAAO,EACP,OAAO,EACP,OAAO,EACP,OAAO,EACP,kBAAkB,EAAE,qBAAqB,EACzC,gBAAgB,GACjB,GAAG,KAAK,CAAC,MAAM,CAAC;IAEjB,MAAM,OAAO,GAAG,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;IAC/E,MAAM,kBAAkB,GACtB,qBAAqB,KAAK,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,qBAAqB,KAAK,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;IAC9F,MAAM,WAAW,GAAG,QAAQ,CAAC;IAC7B,IAAI,WAAW,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,qBAAS,CAAC;QAC9C,MAAM,IAAI,KAAK,CAAC,yCAAyC,GAAG,WAAW,CAAC,CAAC;IAC3E,OAAO;QACL,QAAQ,EAAE,WAAW,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,SAAS;QACzD,IAAI;QACJ,OAAO;QACP,kBAAkB;QAClB,gBAAgB;KACjB,CAAC;AACJ,CAAC,CAAC;AA5CW,QAAA,SAAS,aA4CpB;AAEK,MAAM,oCAAoC,GAAG,CAAC,EACnD,IAAI,EACJ,WAAW,EACX,OAAO,EACP,IAAI,EACJ,QAAQ,EACR,SAAS,EACT,UAAU,EACV,MAAM,EACN,aAAa,EACb,YAAY,EACZ,UAAU,EACV,iBAAiB,EACjB,aAAa,EACb,WAAW,EACX,QAAQ,EACR,SAAS,EACT,UAAU,EACV,SAAS,GACgB,EAAE,EAAE;IAC7B,IAAI,CAAC,IAAI,IAAI,CAAC,OAAO,IAAI,CAAC,SAAS,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,aAAa,CAAC;QAChE,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;IAC7C,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,sBAAU,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC;QAChD,MAAM,IAAI,KAAK,CAAC,qBAAqB,GAAG,SAAS,CAAC,CAAC;IACrD,IAAI,aAAa,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,8BAAkB,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC;QAC7E,MAAM,IAAI,KAAK,CAAC,yBAAyB,GAAG,aAAa,CAAC,CAAC;IAC7D,IAAI,UAAU,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,8BAAkB,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC;QACvE,MAAM,IAAI,KAAK,CAAC,qBAAqB,GAAG,UAAU,CAAC,CAAC;IACtD,IAAI,UAAU,IAAI,CAAC,CAAC,EAAE,GAAG,UAAU,CAAC,EAAE,KAAK,CAAC,WAAW,CAAC;QACtD,MAAM,IAAI,KAAK,CAAC,qBAAqB,GAAG,UAAU,CAAC,CAAC;IACtD,IAAI,WAAW,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,gCAAgC,CAAC,EAAE,CAAC;QACxE,MAAM,IAAI,KAAK,CAAC,iEAAiE,CAAC,CAAC;IACrF,CAAC;IACD,IAAI,SAAS,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,kBAAkB,CAAC,EAAE,CAAC;QACtD,MAAM,IAAI,KAAK,CAAC,oEAAoE,CAAC,CAAC;IACxF,CAAC;IAED,OAAO,CACL,uCAAuC;QACvC,iFAAiF;QACjF,YAAY;QACZ,IAAI;QACJ,IAAI;QACJ,CAAC,WAAW,CAAC,CAAC,CAAC,oBAAoB,GAAG,WAAW,GAAG,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;QAC9D,eAAe;QACf,OAAO;QACP,IAAI;QACJ,kBAAkB;QAClB,SAAS;QACT,IAAI;QACJ,CAAC,MAAM,CAAC,CAAC,CAAC,2BAA2B,GAAG,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3D,CAAC,aAAa;YACZ,CAAC,CAAC,qDAAqD,GAAG,aAAa,GAAG,IAAI;YAC9E,CAAC,CAAC,EAAE,CAAC;QACP,CAAC,UAAU,CAAC,CAAC,CAAC,mCAAmC,GAAG,UAAU,GAAG,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3E,CAAC,QAAQ,CAAC,CAAC,CAAC,yBAAyB,GAAG,QAAQ,GAAG,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;QAC7D,CAAC,YAAY,CAAC,CAAC,CAAC,gCAAgC,GAAG,YAAY,GAAG,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;QAC5E,CAAC,IAAI,CAAC,CAAC,CAAC,YAAY,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;QACxC,CAAC,QAAQ,CAAC,CAAC,CAAC,gBAAgB,GAAG,QAAQ,GAAG,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;QACpD,CAAC,SAAS,CAAC,CAAC,CAAC,iBAAiB,GAAG,SAAS,GAAG,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;QACvD,CAAC,UAAU,CAAC,CAAC,CAAC,kBAAkB,GAAG,UAAU,GAAG,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;QAC1D,CAAC,WAAW,CAAC,CAAC,CAAC,YAAY,GAAG,WAAW,GAAG,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;QACtD,CAAC,aAAa,CAAC,CAAC,CAAC,sBAAsB,GAAG,aAAa,GAAG,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;QACpE,CAAC,SAAS,CAAC,CAAC,CAAC,kBAAkB,GAAG,SAAS,GAAG,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;QACxD,CAAC,iBAAiB,CAAC,CAAC,CAAC,0BAA0B,GAAG,iBAAiB,GAAG,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;QAChF,CAAC,UAAU,CAAC,CAAC,CAAC,kBAAkB,GAAG,UAAU,GAAG,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAC3D,CAAC;AACJ,CAAC,CAAC;AAnEW,QAAA,oCAAoC,wCAmE/C;AAEK,MAAM,6BAA6B,GAAG,CAAC,OAAe,EAA4B,EAAE;IACzF,MAAM,6BAA6B,GAAG,IAAI,MAAM,CAC9C,EAAE;QACA,wCAAwC,CAAC,MAAM;QAC/C,iFAAiF,CAAC,MAAM;QACxF,8BAA8B,CAAC,MAAM;QACrC,kDAAkD,CAAC,MAAM;QACzD,oCAAoC,CAAC,MAAM;QAC3C,oDAAoD,CAAC,MAAM;QAC3D,oDAAoD,CAAC,MAAM;QAC3D,qFAAqF,CAAC,MAAM;QAC5F,gEAAgE,CAAC,MAAM;QACvE,oDAAoD,CAAC,MAAM;QAC3D,+DAA+D,CAAC,MAAM;QACtE,mCAAmC,CAAC,MAAM;QAC1C,2CAA2C,CAAC,MAAM;QAClD,6CAA6C,CAAC,MAAM;QACpD,+CAA+C,CAAC,MAAM;QACtD,+DAA+D,CAAC,MAAM;QACtE,wDAAwD,CAAC,MAAM;QAC/D,qDAAqD,CAAC,MAAM;QAC5D,8DAA8D,CAAC,MAAM;QACrE,8CAA8C,CAAC,MAAM;QACrD,MAAM,CAAC,MAAM,CAChB,CAAC;IACF,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,6BAA6B,CAAC,CAAC;IAC3D,IAAI,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,MAAM;QACzB,MAAM,IAAI,KAAK,CAAC,4CAA4C,GAAG,OAAO,CAAC,CAAC;IAE1E,MAAM,EACJ,IAAI,EACJ,WAAW,EACX,OAAO,EACP,SAAS,EACT,MAAM,EACN,aAAa,EACb,UAAU,EACV,QAAQ,EACR,YAAY,EACZ,IAAI,EACJ,QAAQ,EACR,SAAS,EACT,UAAU,EACV,WAAW,EACX,aAAa,EACb,SAAS,EACT,iBAAiB,EACjB,UAAU,GACX,GAAG,KAAK,CAAC,MAAM,CAAC;IAEjB,IAAI,CAAC,IAAA,mBAAW,EAAC,SAAS,CAAC,EAAE,CAAC;QAC5B,MAAM,IAAI,KAAK,CAAC,uCAAuC,GAAG,SAAS,CAAC,CAAC;IACvE,CAAC;IAED,OAAO;QACL,IAAI;QACJ,WAAW;QACX,OAAO;QACP,SAAS;QACT,MAAM;QACN,aAAa;QACb,UAAU;QACV,QAAQ;QACR,YAAY;QACZ,IAAI;QACJ,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS;QACrD,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS;QACxD,UAAU,EAAE,UAAU,IAAI,IAAA,2BAAmB,EAAC,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS;QAClF,WAAW;QACX,aAAa,EAAE,aAAa,IAAI,IAAA,2BAAmB,EAAC,aAAa,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS;QAC9F,SAAS;QACT,iBAAiB;QACjB,UAAU,EAAE,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS;KAC5D,CAAC;AACJ,CAAC,CAAC;AA1EW,QAAA,6BAA6B,iCA0ExC;AAEK,MAAM,8BAA8B,GAAG,CAAC,EAC7C,IAAI,EACJ,cAAc,EACd,WAAW,EACX,SAAS,EACT,aAAa,EACb,WAAW,EACX,QAAQ,EACR,QAAQ,EACR,kBAAkB,EAClB,UAAU,EACV,OAAO,EACP,iBAAiB,EACjB,SAAS,GACU,EAAE,EAAE;IACvB,IAAI,CAAC,IAAI,IAAI,CAAC,cAAc,IAAI,CAAC,WAAW,IAAI,CAAC,WAAW,IAAI,CAAC,CAAC,SAAS,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC;QAC/F,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC,CAAC;IACrE,CAAC;IACD,IAAI,SAAS,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,kBAAkB,CAAC,EAAE,CAAC;QACtD,MAAM,IAAI,KAAK,CAAC,oEAAoE,CAAC,CAAC;IACxF,CAAC;IACD,MAAM,CAAC,GAAG,EAAE,KAAK,EAAE,IAAI,CAAC,GAAG,WAAW;SACnC,WAAW,EAAE;SACb,KAAK,CAAC,GAAG,CAAC;SACV,MAAM,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;IAC5C,MAAM,OAAO,GACX,iCAAiC;QACjC,0EAA0E;QAC1E,YAAY;QACZ,IAAI;QACJ,IAAI;QACJ,qBAAqB;QACrB,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;QAC9C,IAAI;QACJ,qBAAqB;QACrB,WAAW;QACX,IAAI;QACJ,wBAAwB;QACxB,cAAc;QACd,IAAI;QACJ,CAAC,QAAQ,CAAC,CAAC,CAAC,iBAAiB,GAAG,QAAQ,GAAG,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;QACrD,CAAC,QAAQ,CAAC,CAAC,CAAC,gBAAgB,GAAG,QAAQ,GAAG,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;QACpD,CAAC,SAAS,CAAC,CAAC,CAAC,2BAA2B,GAAG,SAAS,GAAG,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;QACjE,CAAC,aAAa;YACZ,CAAC,CAAC,qDAAqD,GAAG,aAAa,GAAG,IAAI;YAC9E,CAAC,CAAC,EAAE,CAAC;QACP,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,GAAG,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;QACjD,CAAC,kBAAkB,CAAC,CAAC,CAAC,2BAA2B,GAAG,kBAAkB,GAAG,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;QACnF,CAAC,SAAS,CAAC,CAAC,CAAC,kBAAkB,GAAG,SAAS,GAAG,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;QACxD,CAAC,UAAU,CAAC,CAAC,CAAC,kBAAkB,GAAG,UAAU,GAAG,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;QAC1D,CAAC,iBAAiB,CAAC,CAAC,CAAC,0BAA0B,GAAG,iBAAiB,GAAG,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IACnF,OAAO,OAAO,CAAC;AACjB,CAAC,CAAC;AApDW,QAAA,8BAA8B,kCAoDzC;AAEK,MAAM,uBAAuB,GAAG,CAAC,OAAe,EAAsB,EAAE;IAC7E,MAAM,uBAAuB,GAAG,IAAI,MAAM,CACxC,EAAE;QACA,kCAAkC,CAAC,MAAM;QACzC,0EAA0E,CAAC,MAAM;QACjF,8BAA8B,CAAC,MAAM;QACrC,8CAA8C,CAAC,MAAM;QACrD,8CAA8C,CAAC,MAAM;QACrD,oDAAoD,CAAC,MAAM;QAC3D,4CAA4C,CAAC,MAAM;QACnD,2CAA2C,CAAC,MAAM;QAClD,oDAAoD,CAAC,MAAM;QAC3D,qFAAqF,CAAC,MAAM;QAC5F,yCAAyC,CAAC,MAAM;QAChD,gEAAgE,CAAC,MAAM;QACvE,qDAAqD,CAAC,MAAM;QAC5D,+CAA+C,CAAC,MAAM;QACtD,8DAA8D,CAAC,MAAM;QACrE,GAAG,CAAC,MAAM,CACb,CAAC;IACF,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAC;IACrD,IAAI,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,MAAM;QAAE,MAAM,IAAI,KAAK,CAAC,sCAAsC,GAAG,OAAO,CAAC,CAAC;IAE/F,MAAM,EACJ,IAAI,EACJ,WAAW,EAAE,cAAc,EAC3B,WAAW,EACX,cAAc,EACd,QAAQ,EACR,QAAQ,EACR,MAAM,EACN,aAAa,EACb,OAAO,EACP,kBAAkB,EAClB,SAAS,EACT,UAAU,EACV,iBAAiB,GAClB,GAAG,KAAK,CAAC,MAAM,CAAC;IAEjB,IAAI,cAAc,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,uBAAe,CAAC;QAC1D,MAAM,IAAI,KAAK,CAAC,6BAA6B,GAAG,cAAc,CAAC,CAAC;IAClE,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,cAAc,CAAC,KAAK,CAAC,uBAAe,CAAC,EAAE,MAAM,IAAI,EAAE,CAAC;IAC5E,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,6BAA6B,GAAG,cAAc,CAAC,CAAC;IAExF,OAAO;QACL,IAAI;QACJ,WAAW,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,IAAA,kBAAU,EAAC,KAAK,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;QAC5E,WAAW;QACX,cAAc;QACd,QAAQ;QACR,QAAQ;QACR,SAAS,EAAE,MAAM;QACjB,aAAa;QACb,OAAO;QACP,kBAAkB;QAClB,SAAS;QACT,UAAU,EAAE,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS;QAC3D,iBAAiB;KAClB,CAAC;AACJ,CAAC,CAAC;AA3DW,QAAA,uBAAuB,2BA2DlC;AAEK,MAAM,gBAAgB,GAAG,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAQ,EAAE,EAAE;IACjE,MAAM,OAAO,GACX,kBAAkB;QAClB,eAAe;QACf,QAAQ;QACR,IAAI;QACJ,qBAAqB;QACrB,IAAI;QACJ,IAAI;QACJ,uBAAuB;QACvB,IAAI;QACJ,IAAI,CAAC;IACP,OAAO,OAAO,CAAC;AACjB,CAAC,CAAC;AAbW,QAAA,gBAAgB,oBAa3B;AAEK,MAAM,SAAS,GAAG,CAAC,OAAe,EAAQ,EAAE;IACjD,MAAM,SAAS,GAAG,IAAI,MAAM,CAC1B,EAAE;QACA,mBAAmB,CAAC,MAAM;QAC1B,qCAAqC,CAAC,MAAM;QAC5C,uCAAuC,CAAC,MAAM;QAC9C,yCAAyC,CAAC,MAAM;QAChD,GAAG,CAAC,MAAM,CACb,CAAC;IACF,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IACvC,IAAI,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,MAAM;QAAE,MAAM,IAAI,KAAK,CAAC,uBAAuB,GAAG,OAAO,CAAC,CAAC;IAEhF,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,CAAC,MAAM,CAAC;IAC9C,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;AAClC,CAAC,CAAC;AAdW,QAAA,SAAS,aAcpB;AAEK,MAAM,+BAA+B,GAAG,CAAC,EAC9C,IAAI,EACJ,UAAU,EACV,iBAAiB,GACG,EAAE,EAAE;IACxB,MAAM,OAAO,GACX,4CAA4C;QAC5C,6EAA6E;QAC7E,oCAAoC;QACpC,IAAI;QACJ,IAAI;QACJ,CAAC,UAAU,CAAC,CAAC,CAAC,kBAAkB,GAAG,UAAU,GAAG,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;QAC1D,CAAC,iBAAiB,CAAC,CAAC,CAAC,0BAA0B,GAAG,iBAAiB,GAAG,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IACnF,OAAO,OAAO,CAAC;AACjB,CAAC,CAAC;AAdW,QAAA,+BAA+B,mCAc1C;AAEK,MAAM,wBAAwB,GAAG,CAAC,OAAe,EAAuB,EAAE;IAC/E,MAAM,YAAY,GAAG,IAAI,MAAM,CAC7B,EAAE;QACA,6CAA6C,CAAC,MAAM;QACpD,6EAA6E,CAAC,MAAM;QACpF,sDAAsD,CAAC,MAAM;QAC7D,+CAA+C,CAAC,MAAM;QACtD,8DAA8D,CAAC,MAAM;QACrE,GAAG,CAAC,MAAM,CACb,CAAC;IACF,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;IAC1C,IAAI,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,MAAM;QAAE,MAAM,IAAI,KAAK,CAAC,uCAAuC,GAAG,OAAO,CAAC,CAAC;IAEhG,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,iBAAiB,EAAE,GAAG,KAAK,CAAC,MAAM,CAAC;IAC7D,OAAO;QACL,IAAI;QACJ,UAAU,EAAE,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS;QAC3D,iBAAiB;KAClB,CAAC;AACJ,CAAC,CAAC;AAnBW,QAAA,wBAAwB,4BAmBnC;AAEK,MAAM,0BAA0B,GAAG,CAAC,EACzC,IAAI,EACJ,UAAU,EACV,iBAAiB,GACF,EAAE,EAAE;IACnB,MAAM,OAAO,GACX,uCAAuC;QACvC,oFAAoF;QACpF,oCAAoC;QACpC,IAAI;QACJ,IAAI;QACJ,CAAC,UAAU,CAAC,CAAC,CAAC,kBAAkB,GAAG,UAAU,GAAG,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;QAC1D,CAAC,iBAAiB,CAAC,CAAC,CAAC,0BAA0B,GAAG,iBAAiB,GAAG,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IACnF,OAAO,OAAO,CAAC;AACjB,CAAC,CAAC;AAdW,QAAA,0BAA0B,8BAcrC;AAEK,MAAM,mBAAmB,GAAG,CAAC,OAAe,EAAkB,EAAE;IACrE,MAAM,YAAY,GAAG,IAAI,MAAM,CAC7B,EAAE;QACA,wCAAwC,CAAC,MAAM;QAC/C,oFAAoF,CAAC,MAAM;QAC3F,sDAAsD,CAAC,MAAM;QAC7D,+CAA+C,CAAC,MAAM;QACtD,8DAA8D,CAAC,MAAM;QACrE,GAAG,CAAC,MAAM,CACb,CAAC;IACF,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;IAC1C,IAAI,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,MAAM;QAAE,MAAM,IAAI,KAAK,CAAC,kCAAkC,GAAG,OAAO,CAAC,CAAC;IAE3F,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,iBAAiB,EAAE,GAAG,KAAK,CAAC,MAAM,CAAC;IAC7D,OAAO;QACL,IAAI;QACJ,UAAU,EAAE,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS;QAC3D,iBAAiB;KAClB,CAAC;AACJ,CAAC,CAAC;AAnBW,QAAA,mBAAmB,uBAmB9B;AAEK,MAAM,oBAAoB,GAAG,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAmB,EAAE,EAAE;IAC1E,MAAM,OAAO,GACX,sBAAsB;QACtB,oCAAoC;QACpC,IAAI;QACJ,IAAI;QACJ,yBAAyB;QACzB,QAAQ;QACR,IAAI,CAAC;IACP,OAAO,OAAO,CAAC;AACjB,CAAC,CAAC;AAVW,QAAA,oBAAoB,wBAU/B;AAEK,MAAM,oBAAoB,GAAG,CAAC,OAAe,EAAmB,EAAE;IACvE,MAAM,aAAa,GAAG,IAAI,MAAM,CAC9B,EAAE;QACA,uBAAuB,CAAC,MAAM;QAC9B,sDAAsD,CAAC,MAAM;QAC7D,+CAA+C,CAAC,MAAM;QACtD,GAAG,CAAC,MAAM,CACb,CAAC;IACF,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;IAC3C,IAAI,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,MAAM;QAAE,MAAM,IAAI,KAAK,CAAC,mCAAmC,GAAG,OAAO,CAAC,CAAC;IAE5F,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,KAAK,CAAC,MAAM,CAAC;IACxC,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;AAC5B,CAAC,CAAC;AAbW,QAAA,oBAAoB,wBAa/B;AAEK,MAAM,sBAAsB,GAAG,CAAC,EAAE,IAAI,EAAc,EAAE,EAAE;IAC7D,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,kBAAkB,CAAC,EAAE,CAAC;QACpC,MAAM,IAAI,KAAK,CAAC,uEAAuE,CAAC,CAAC;IAC3F,CAAC;IACD,MAAM,OAAO,GACX,sBAAsB;QACtB,sEAAsE;QACtE,qBAAqB;QACrB,IAAI;QACJ,IAAI,CAAC;IACP,OAAO,OAAO,CAAC;AACjB,CAAC,CAAC;AAXW,QAAA,sBAAsB,0BAWjC;AAEK,MAAM,eAAe,GAAG,CAAC,OAAe,EAAc,EAAE;IAC7D,MAAM,YAAY,GAAG,IAAI,MAAM,CAC7B,EAAE;QACA,uBAAuB,CAAC,MAAM;QAC9B,sEAAsE,CAAC,MAAM;QAC7E,8CAA8C,CAAC,MAAM;QACrD,GAAG,CAAC,MAAM,CACb,CAAC;IACF,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;IAC1C,IAAI,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,MAAM;QAAE,MAAM,IAAI,KAAK,CAAC,8BAA8B,GAAG,OAAO,CAAC,CAAC;IAEvF,MAAM,EAAE,IAAI,EAAE,GAAG,KAAK,CAAC,MAAM,CAAC;IAC9B,OAAO,EAAE,IAAI,EAAE,CAAC;AAClB,CAAC,CAAC;AAbW,QAAA,eAAe,mBAa1B;AAEK,MAAM,WAAW,GAAG,CAAC,EAC1B,WAAW,EACX,WAAW,EACX,gBAAgB,EAChB,gBAAgB,EAChB,MAAM,EACN,OAAO,EACP,OAAO,GACA,EAAE,EAAE;IACX,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,kBAAkB,GAAG,MAAM,CAAC,CAAC;IACpF,MAAM,OAAO,GACX,oBAAoB;QACpB,CAAC,WAAW,CAAC,CAAC,CAAC,oBAAoB,GAAG,WAAW,GAAG,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;QAC9D,oBAAoB;QACpB,WAAW;QACX,IAAI;QACJ,CAAC,gBAAgB,CAAC,CAAC,CAAC,uCAAuC,GAAG,gBAAgB,GAAG,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3F,CAAC,gBAAgB,CAAC,CAAC,CAAC,0BAA0B,GAAG,gBAAgB,GAAG,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;QAC9E,CAAC,OAAO,CAAC,CAAC,CAAC,qBAAqB,GAAG,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;QACvD,kBAAkB;QAClB,MAAM;QACN,YAAY;QACZ,CAAC,OAAO,CAAC,CAAC,CAAC,wBAAwB,GAAG,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IAC7D,OAAO,OAAO,CAAC;AACjB,CAAC,CAAC;AAxBW,QAAA,WAAW,eAwBtB;AAEK,MAAM,WAAW,GAAG,CAAC,OAAe,EAAU,EAAE;IACrD,MAAM,WAAW,GAAG,IAAI,MAAM,CAC5B,EAAE;QACA,qBAAqB,CAAC,MAAM;QAC5B,kDAAkD,CAAC,MAAM;QACzD,6CAA6C,CAAC,MAAM;QACpD,0EAA0E,CAAC,MAAM;QACjF,6DAA6D,CAAC,MAAM;QACpE,+CAA+C,CAAC,MAAM;QACtD,6CAA6C,CAAC,MAAM;QACpD,mDAAmD,CAAC,MAAM;QAC1D,GAAG,CAAC,MAAM,CACb,CAAC;IACF,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;IACzC,IAAI,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,MAAM;QAAE,MAAM,IAAI,KAAK,CAAC,yBAAyB,GAAG,OAAO,CAAC,CAAC;IAElF,MAAM,EACJ,WAAW,EACX,WAAW,EACX,gBAAgB,EAChB,gBAAgB,EAChB,OAAO,EACP,MAAM,EAAE,SAAS,EACjB,OAAO,GACR,GAAG,KAAK,CAAC,MAAM,CAAC;IAEjB,MAAM,MAAM,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC;IACnC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,kBAAkB,GAAG,SAAS,CAAC,CAAC;IACvF,IACE,WAAW;QACX,CAAC;YACC,cAAc;YACd,iBAAiB;YACjB,YAAY;YACZ,cAAc;YACd,SAAS;YACT,sBAAsB;SACvB,CAAC,QAAQ,CAAC,WAAW,CAAC;QAEvB,MAAM,IAAI,KAAK,CAAC,wBAAwB,GAAG,WAAW,CAAC,CAAC;IAC1D,IAAI,CAAC,WAAW;QAAE,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;IAE1D,IAAI,CAAC,IAAA,qBAAa,EAAC,MAAM,CAAC,EAAE,CAAC;QAC3B,MAAM,IAAI,KAAK,CAAC,mCAAmC,GAAG,MAAM,CAAC,CAAC;IAChE,CAAC;IAED,OAAO;QACL,WAAW,EAAE,WAAqC;QAClD,WAAW;QACX,gBAAgB;QAChB,gBAAgB;QAChB,OAAO;QACP,MAAM;QACN,OAAO;KACR,CAAC;AACJ,CAAC,CAAC;AAvDW,QAAA,WAAW,eAuDtB"}
@@ -0,0 +1,49 @@
1
+ /**
2
+ * Universal signature utilities using @noble/ed25519
3
+ * Works in both browser and Node.js environments
4
+ */
5
+ import type { CryptographicallySignedStatement } from './types';
6
+ /**
7
+ * Generate a new Ed25519 key pair for signing statements
8
+ * @returns Object containing publicKey and privateKey as URL-safe base64
9
+ */
10
+ export declare const generateKeyPair: () => Promise<{
11
+ publicKey: string;
12
+ privateKey: string;
13
+ }>;
14
+ /**
15
+ * Sign a statement with a private key
16
+ * @param statement - The statement text to sign
17
+ * @param privateKeyUrlSafe - Private key in URL-safe base64 format
18
+ * @returns URL-safe base64-encoded signature
19
+ */
20
+ export declare const signStatement: (statement: string, privateKeyUrlSafe: string) => Promise<string>;
21
+ /**
22
+ * Verify a statement signature
23
+ * @param statement - The statement text that was signed
24
+ * @param signatureUrlSafe - URL-safe base64-encoded signature
25
+ * @param publicKeyUrlSafe - Public key in URL-safe base64 format
26
+ * @returns true if signature is valid, false otherwise
27
+ */
28
+ export declare const verifySignature: (statement: string, signatureUrlSafe: string, publicKeyUrlSafe: string) => Promise<boolean>;
29
+ /**
30
+ * Build a signed statement
31
+ * @param statement - The statement text to sign
32
+ * @param privateKeyUrlSafe - Private key in URL-safe base64 format
33
+ * @param publicKeyUrlSafe - Public key in URL-safe base64 format
34
+ * @returns Signed statement with appended signature fields
35
+ */
36
+ export declare const buildSignedStatement: (statement: string, privateKeyUrlSafe: string, publicKeyUrlSafe: string) => Promise<string>;
37
+ /**
38
+ * Parse a signed statement
39
+ * @param signedStatement - The signed statement text
40
+ * @returns Parsed CryptographicallySignedStatement object or null if invalid
41
+ */
42
+ export declare const parseSignedStatement: (signedStatement: string) => CryptographicallySignedStatement | null;
43
+ /**
44
+ * Verify a signed statement
45
+ * @param signedStatement - The signed statement text
46
+ * @returns true if signature is valid, false otherwise
47
+ */
48
+ export declare const verifySignedStatement: (signedStatement: string) => Promise<boolean>;
49
+ //# sourceMappingURL=signature.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"signature.d.ts","sourceRoot":"","sources":["../src/signature.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAKH,OAAO,KAAK,EAAE,gCAAgC,EAAE,MAAM,SAAS,CAAC;AAOhE;;;GAGG;AACH,eAAO,MAAM,eAAe,QAAa,OAAO,CAAC;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,CAQzF,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,aAAa,GACxB,WAAW,MAAM,EACjB,mBAAmB,MAAM,KACxB,OAAO,CAAC,MAAM,CAOhB,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,eAAe,GAC1B,WAAW,MAAM,EACjB,kBAAkB,MAAM,EACxB,kBAAkB,MAAM,KACvB,OAAO,CAAC,OAAO,CAUjB,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,oBAAoB,GAC/B,WAAW,MAAM,EACjB,mBAAmB,MAAM,EACzB,kBAAkB,MAAM,KACvB,OAAO,CAAC,MAAM,CAWhB,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,oBAAoB,GAC/B,iBAAiB,MAAM,KACtB,gCAAgC,GAAG,IA+BrC,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,qBAAqB,GAAU,iBAAiB,MAAM,KAAG,OAAO,CAAC,OAAO,CAKpF,CAAC"}
@@ -0,0 +1,169 @@
1
+ "use strict";
2
+ /**
3
+ * Universal signature utilities using @noble/ed25519
4
+ * Works in both browser and Node.js environments
5
+ */
6
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
7
+ if (k2 === undefined) k2 = k;
8
+ var desc = Object.getOwnPropertyDescriptor(m, k);
9
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
10
+ desc = { enumerable: true, get: function() { return m[k]; } };
11
+ }
12
+ Object.defineProperty(o, k2, desc);
13
+ }) : (function(o, m, k, k2) {
14
+ if (k2 === undefined) k2 = k;
15
+ o[k2] = m[k];
16
+ }));
17
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
18
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
19
+ }) : function(o, v) {
20
+ o["default"] = v;
21
+ });
22
+ var __importStar = (this && this.__importStar) || (function () {
23
+ var ownKeys = function(o) {
24
+ ownKeys = Object.getOwnPropertyNames || function (o) {
25
+ var ar = [];
26
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
27
+ return ar;
28
+ };
29
+ return ownKeys(o);
30
+ };
31
+ return function (mod) {
32
+ if (mod && mod.__esModule) return mod;
33
+ var result = {};
34
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
35
+ __setModuleDefault(result, mod);
36
+ return result;
37
+ };
38
+ })();
39
+ Object.defineProperty(exports, "__esModule", { value: true });
40
+ exports.verifySignedStatement = exports.parseSignedStatement = exports.buildSignedStatement = exports.verifySignature = exports.signStatement = exports.generateKeyPair = void 0;
41
+ const ed = __importStar(require("@noble/ed25519"));
42
+ const sha2_js_1 = require("@noble/hashes/sha2.js");
43
+ const hash_1 = require("./hash");
44
+ // Set up sha512 for @noble/ed25519
45
+ ed.hashes.sha512 = (message) => (0, sha2_js_1.sha512)(message);
46
+ const ALGORITHM = 'Ed25519'; // Fully specifies: EdDSA signature scheme with Curve25519
47
+ /**
48
+ * Generate a new Ed25519 key pair for signing statements
49
+ * @returns Object containing publicKey and privateKey as URL-safe base64
50
+ */
51
+ const generateKeyPair = async () => {
52
+ const privateKey = ed.utils.randomSecretKey();
53
+ const publicKey = await ed.getPublicKey(privateKey);
54
+ return {
55
+ publicKey: (0, hash_1.toUrlSafeBase64)(bytesToBase64(publicKey)),
56
+ privateKey: (0, hash_1.toUrlSafeBase64)(bytesToBase64(privateKey)),
57
+ };
58
+ };
59
+ exports.generateKeyPair = generateKeyPair;
60
+ /**
61
+ * Sign a statement with a private key
62
+ * @param statement - The statement text to sign
63
+ * @param privateKeyUrlSafe - Private key in URL-safe base64 format
64
+ * @returns URL-safe base64-encoded signature
65
+ */
66
+ const signStatement = async (statement, privateKeyUrlSafe) => {
67
+ const privateKeyBytes = (0, hash_1.base64ToBytes)((0, hash_1.fromUrlSafeBase64)(privateKeyUrlSafe));
68
+ const messageBytes = new TextEncoder().encode(statement);
69
+ const signature = await ed.sign(messageBytes, privateKeyBytes);
70
+ return (0, hash_1.toUrlSafeBase64)(bytesToBase64(signature));
71
+ };
72
+ exports.signStatement = signStatement;
73
+ /**
74
+ * Verify a statement signature
75
+ * @param statement - The statement text that was signed
76
+ * @param signatureUrlSafe - URL-safe base64-encoded signature
77
+ * @param publicKeyUrlSafe - Public key in URL-safe base64 format
78
+ * @returns true if signature is valid, false otherwise
79
+ */
80
+ const verifySignature = async (statement, signatureUrlSafe, publicKeyUrlSafe) => {
81
+ try {
82
+ const publicKeyBytes = (0, hash_1.base64ToBytes)((0, hash_1.fromUrlSafeBase64)(publicKeyUrlSafe));
83
+ const signatureBytes = (0, hash_1.base64ToBytes)((0, hash_1.fromUrlSafeBase64)(signatureUrlSafe));
84
+ const messageBytes = new TextEncoder().encode(statement);
85
+ return await ed.verify(signatureBytes, messageBytes, publicKeyBytes);
86
+ }
87
+ catch (error) {
88
+ return false;
89
+ }
90
+ };
91
+ exports.verifySignature = verifySignature;
92
+ /**
93
+ * Build a signed statement
94
+ * @param statement - The statement text to sign
95
+ * @param privateKeyUrlSafe - Private key in URL-safe base64 format
96
+ * @param publicKeyUrlSafe - Public key in URL-safe base64 format
97
+ * @returns Signed statement with appended signature fields
98
+ */
99
+ const buildSignedStatement = async (statement, privateKeyUrlSafe, publicKeyUrlSafe) => {
100
+ const statementHash = (0, hash_1.sha256)(statement);
101
+ const signature = await (0, exports.signStatement)(statement, privateKeyUrlSafe);
102
+ return (statement +
103
+ `---\n` +
104
+ `Statement hash: ${statementHash}\n` +
105
+ `Public key: ${publicKeyUrlSafe}\n` +
106
+ `Signature: ${signature}\n` +
107
+ `Algorithm: ${ALGORITHM}\n`);
108
+ };
109
+ exports.buildSignedStatement = buildSignedStatement;
110
+ /**
111
+ * Parse a signed statement
112
+ * @param signedStatement - The signed statement text
113
+ * @returns Parsed CryptographicallySignedStatement object or null if invalid
114
+ */
115
+ const parseSignedStatement = (signedStatement) => {
116
+ const regex = /^([\s\S]+?)---\nStatement hash: ([A-Za-z0-9_-]+)\nPublic key: ([A-Za-z0-9_-]+)\nSignature: ([A-Za-z0-9_-]+)\nAlgorithm: ([^\n]+)\n$/;
117
+ const match = signedStatement.match(regex);
118
+ if (!match)
119
+ return null;
120
+ const statement = match[1];
121
+ const statementHash = match[2];
122
+ const publicKey = match[3];
123
+ const signature = match[4];
124
+ const algorithm = match[5];
125
+ // Verify statement hash matches
126
+ const computedHash = (0, hash_1.sha256)(statement);
127
+ if (computedHash !== statementHash) {
128
+ return null;
129
+ }
130
+ // Verify algorithm is supported
131
+ if (algorithm !== ALGORITHM) {
132
+ return null;
133
+ }
134
+ return {
135
+ statement,
136
+ publicKey,
137
+ signature,
138
+ statementHash,
139
+ algorithm,
140
+ };
141
+ };
142
+ exports.parseSignedStatement = parseSignedStatement;
143
+ /**
144
+ * Verify a signed statement
145
+ * @param signedStatement - The signed statement text
146
+ * @returns true if signature is valid, false otherwise
147
+ */
148
+ const verifySignedStatement = async (signedStatement) => {
149
+ const parsed = (0, exports.parseSignedStatement)(signedStatement);
150
+ if (!parsed)
151
+ return false;
152
+ return await (0, exports.verifySignature)(parsed.statement, parsed.signature, parsed.publicKey);
153
+ };
154
+ exports.verifySignedStatement = verifySignedStatement;
155
+ /**
156
+ * Convert bytes to base64 string
157
+ * @param bytes - Uint8Array to convert
158
+ * @returns Base64 string
159
+ */
160
+ function bytesToBase64(bytes) {
161
+ // Use btoa if available (browser), otherwise use Buffer (Node.js)
162
+ if (typeof btoa !== 'undefined') {
163
+ return btoa(String.fromCharCode(...Array.from(bytes)));
164
+ }
165
+ else {
166
+ return Buffer.from(bytes).toString('base64');
167
+ }
168
+ }
169
+ //# sourceMappingURL=signature.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"signature.js","sourceRoot":"","sources":["../src/signature.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,115 @@
1
+ import type { SupportedLanguage } from './constants';
2
+ export type LegalForm = 'local government' | 'state government' | 'foreign affairs ministry' | 'corporation';
3
+ export type PeopleCountBucket = '0-10' | '10-100' | '100-1000' | '1000-10,000' | '10,000-100,000' | '100,000+' | '1,000,000+' | '10,000,000+';
4
+ export declare function isLegalForm(value: string): value is LegalForm;
5
+ export declare function isPeopleCountBucket(value: string): value is PeopleCountBucket;
6
+ export declare function isRatingValue(value: number): value is RatingValue;
7
+ export type StatementTypeValue = 'statement' | 'organisation_verification' | 'person_verification' | 'poll' | 'vote' | 'response' | 'dispute_statement_content' | 'dispute_statement_authenticity' | 'rating' | 'sign_pdf';
8
+ export type Statement = {
9
+ domain: string;
10
+ author: string;
11
+ time: Date;
12
+ tags?: string[];
13
+ content: string;
14
+ representative?: string;
15
+ supersededStatement?: string;
16
+ formatVersion?: string;
17
+ translations?: Partial<Record<SupportedLanguage, string>>;
18
+ attachments?: string[];
19
+ };
20
+ export type CryptographicallySignedStatement = {
21
+ statement: string;
22
+ statementHash: string;
23
+ publicKey: string;
24
+ signature: string;
25
+ algorithm: string;
26
+ };
27
+ export type Poll = {
28
+ deadline: Date | undefined;
29
+ poll: string;
30
+ scopeDescription?: string;
31
+ options: string[];
32
+ allowArbitraryVote?: boolean;
33
+ };
34
+ export type OrganisationVerification = {
35
+ name: string;
36
+ englishName?: string;
37
+ country: string;
38
+ city?: string;
39
+ province?: string;
40
+ legalForm: LegalForm;
41
+ department?: string;
42
+ domain: string;
43
+ foreignDomain?: string;
44
+ serialNumber?: string;
45
+ confidence?: number;
46
+ reliabilityPolicy?: string;
47
+ employeeCount?: PeopleCountBucket;
48
+ pictureHash?: string;
49
+ latitude?: number;
50
+ longitude?: number;
51
+ population?: PeopleCountBucket;
52
+ publicKey?: string;
53
+ };
54
+ export type withOwnDomain = {
55
+ ownDomain: string;
56
+ foreignDomain?: string;
57
+ };
58
+ export type withForeignDomain = {
59
+ foreignDomain: string;
60
+ ownDomain?: string;
61
+ };
62
+ export type PersonVerification = {
63
+ name: string;
64
+ countryOfBirth: string;
65
+ cityOfBirth: string;
66
+ dateOfBirth: Date;
67
+ jobTitle?: string;
68
+ employer?: string;
69
+ verificationMethod?: string;
70
+ confidence?: number;
71
+ picture?: string;
72
+ reliabilityPolicy?: string;
73
+ publicKey?: string;
74
+ } & (withOwnDomain | withForeignDomain);
75
+ export type Vote = {
76
+ pollHash: string;
77
+ poll: string;
78
+ vote: string;
79
+ };
80
+ export type DisputeAuthenticity = {
81
+ hash: string;
82
+ confidence?: number;
83
+ reliabilityPolicy?: string;
84
+ };
85
+ export type DisputeContent = {
86
+ hash: string;
87
+ confidence?: number;
88
+ reliabilityPolicy?: string;
89
+ };
90
+ export type ResponseContent = {
91
+ hash: string;
92
+ response: string;
93
+ };
94
+ export type PDFSigning = {
95
+ hash: string;
96
+ };
97
+ export type RatingSubjectTypeValue = 'Organisation' | 'Policy proposal' | 'Treaty draft' | 'Research publication' | 'Regulation' | 'Product';
98
+ export type RatingValue = 1 | 2 | 3 | 4 | 5;
99
+ export type Rating = {
100
+ subjectType?: RatingSubjectTypeValue;
101
+ subjectName: string;
102
+ subjectReference?: string;
103
+ documentFileHash?: string;
104
+ rating: RatingValue;
105
+ quality?: string;
106
+ comment?: string;
107
+ };
108
+ export type Bounty = {
109
+ motivation?: string;
110
+ bounty: string;
111
+ reward: string;
112
+ judge: string;
113
+ judgePay?: string;
114
+ };
115
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/dist/types.js ADDED
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.isLegalForm = isLegalForm;
4
+ exports.isPeopleCountBucket = isPeopleCountBucket;
5
+ exports.isRatingValue = isRatingValue;
6
+ // Type guards
7
+ function isLegalForm(value) {
8
+ return [
9
+ 'local government',
10
+ 'state government',
11
+ 'foreign affairs ministry',
12
+ 'corporation',
13
+ ].includes(value);
14
+ }
15
+ function isPeopleCountBucket(value) {
16
+ return [
17
+ '0-10',
18
+ '10-100',
19
+ '100-1000',
20
+ '1000-10,000',
21
+ '10,000-100,000',
22
+ '100,000+',
23
+ '1,000,000+',
24
+ '10,000,000+',
25
+ ].includes(value);
26
+ }
27
+ function isRatingValue(value) {
28
+ return [1, 2, 3, 4, 5].includes(value);
29
+ }
30
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":";;AAmBA,kCAOC;AAED,kDAWC;AAED,sCAEC;AAzBD,cAAc;AACd,SAAgB,WAAW,CAAC,KAAa;IACvC,OAAO;QACL,kBAAkB;QAClB,kBAAkB;QAClB,0BAA0B;QAC1B,aAAa;KACd,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AACpB,CAAC;AAED,SAAgB,mBAAmB,CAAC,KAAa;IAC/C,OAAO;QACL,MAAM;QACN,QAAQ;QACR,UAAU;QACV,aAAa;QACb,gBAAgB;QAChB,UAAU;QACV,YAAY;QACZ,aAAa;KACd,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AACpB,CAAC;AAED,SAAgB,aAAa,CAAC,KAAa;IACzC,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AACzC,CAAC"}
@@ -0,0 +1,14 @@
1
+ export declare const generateFileHash: (fileContent: Buffer | string) => string;
2
+ export declare const validateFileHash: (fileContent: Buffer | string, expectedHash: string) => boolean;
3
+ export declare const generateStatementContentHash: (statementContent: string) => string;
4
+ export declare const validateStatementContentHash: (statementContent: string, expectedHash: string) => boolean;
5
+ export declare const generateStatementHash: (statement: string) => string;
6
+ export declare const validateStatementHash: (statement: string, expectedHash: string) => boolean;
7
+ export declare const generateStatementsFile: (statements: string[]) => string;
8
+ export declare const parseStatementsFile: (statementsFileContent: string) => string[];
9
+ export declare const generateStatementFilename: (statement: string) => string;
10
+ export declare const generateAttachmentFilename: (fileContent: Buffer | string, extension: string) => string;
11
+ export declare const minPeopleCountToRange: (n: number) => string | undefined;
12
+ export declare const monthIndex: (month: string) => number;
13
+ export declare const birthDateFormat: RegExp;
14
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,gBAAgB,GAAI,aAAa,MAAM,GAAG,MAAM,KAAG,MAE/D,CAAC;AAEF,eAAO,MAAM,gBAAgB,GAAI,aAAa,MAAM,GAAG,MAAM,EAAE,cAAc,MAAM,KAAG,OAErF,CAAC;AAEF,eAAO,MAAM,4BAA4B,GAAI,kBAAkB,MAAM,KAAG,MAEvE,CAAC;AAEF,eAAO,MAAM,4BAA4B,GACvC,kBAAkB,MAAM,EACxB,cAAc,MAAM,KACnB,OAEF,CAAC;AAEF,eAAO,MAAM,qBAAqB,GAAI,WAAW,MAAM,KAAG,MASzD,CAAC;AAEF,eAAO,MAAM,qBAAqB,GAAI,WAAW,MAAM,EAAE,cAAc,MAAM,KAAG,OAG/E,CAAC;AAEF,eAAO,MAAM,sBAAsB,GAAI,YAAY,MAAM,EAAE,KAAG,MAE7D,CAAC;AAEF,eAAO,MAAM,mBAAmB,GAAI,uBAAuB,MAAM,KAAG,MAAM,EA0BzE,CAAC;AAEF,eAAO,MAAM,yBAAyB,GAAI,WAAW,MAAM,KAAG,MAG7D,CAAC;AAEF,eAAO,MAAM,0BAA0B,GACrC,aAAa,MAAM,GAAG,MAAM,EAC5B,WAAW,MAAM,KAChB,MAIF,CAAC;AAEF,eAAO,MAAM,qBAAqB,GAAI,GAAG,MAAM,KAAG,MAAM,GAAG,SAS1D,CAAC;AAEF,eAAO,MAAM,UAAU,GAAI,OAAO,MAAM,KAAG,MAGxC,CAAC;AAEJ,eAAO,MAAM,eAAe,EAAE,MAC2D,CAAC"}
package/dist/utils.js ADDED
@@ -0,0 +1,96 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.birthDateFormat = exports.monthIndex = exports.minPeopleCountToRange = exports.generateAttachmentFilename = exports.generateStatementFilename = exports.parseStatementsFile = exports.generateStatementsFile = exports.validateStatementHash = exports.generateStatementHash = exports.validateStatementContentHash = exports.generateStatementContentHash = exports.validateFileHash = exports.generateFileHash = void 0;
4
+ const constants_1 = require("./constants");
5
+ const hash_1 = require("./hash");
6
+ const protocol_1 = require("./protocol");
7
+ const generateFileHash = (fileContent) => {
8
+ return (0, hash_1.sha256)(fileContent);
9
+ };
10
+ exports.generateFileHash = generateFileHash;
11
+ const validateFileHash = (fileContent, expectedHash) => {
12
+ return (0, hash_1.verify)(fileContent, expectedHash);
13
+ };
14
+ exports.validateFileHash = validateFileHash;
15
+ const generateStatementContentHash = (statementContent) => {
16
+ return (0, hash_1.sha256)(statementContent);
17
+ };
18
+ exports.generateStatementContentHash = generateStatementContentHash;
19
+ const validateStatementContentHash = (statementContent, expectedHash) => {
20
+ return (0, hash_1.verify)(statementContent, expectedHash);
21
+ };
22
+ exports.validateStatementContentHash = validateStatementContentHash;
23
+ const generateStatementHash = (statement) => {
24
+ const signatureRegex = /^([\s\S]+?)---\n[\s\S]+$/;
25
+ const match = statement.match(signatureRegex);
26
+ if (match && match[1]) {
27
+ return (0, hash_1.sha256)(match[1]);
28
+ }
29
+ return (0, hash_1.sha256)(statement);
30
+ };
31
+ exports.generateStatementHash = generateStatementHash;
32
+ const validateStatementHash = (statement, expectedHash) => {
33
+ const computedHash = (0, exports.generateStatementHash)(statement);
34
+ return computedHash === expectedHash;
35
+ };
36
+ exports.validateStatementHash = validateStatementHash;
37
+ const generateStatementsFile = (statements) => {
38
+ return statements.join('\n\n');
39
+ };
40
+ exports.generateStatementsFile = generateStatementsFile;
41
+ const parseStatementsFile = (statementsFileContent) => {
42
+ const statementParts = statementsFileContent.split(/\n\nStated protocol version: /);
43
+ const statements = [];
44
+ for (let i = 0; i < statementParts.length; i++) {
45
+ let statement = statementParts[i];
46
+ if (i === 0 && statement.trim().length === 0)
47
+ continue;
48
+ if (i > 0) {
49
+ statement = 'Stated protocol version: ' + statement;
50
+ }
51
+ statement = statement.replace(/\n+$/, '\n');
52
+ try {
53
+ (0, protocol_1.parseStatement)({ statement });
54
+ statements.push(statement);
55
+ }
56
+ catch (error) {
57
+ throw new Error(`Invalid statement at index ${i}: ${error instanceof Error ? error.message : String(error)}`);
58
+ }
59
+ }
60
+ return statements;
61
+ };
62
+ exports.parseStatementsFile = parseStatementsFile;
63
+ const generateStatementFilename = (statement) => {
64
+ const hash = (0, exports.generateStatementHash)(statement);
65
+ return `${hash}.txt`;
66
+ };
67
+ exports.generateStatementFilename = generateStatementFilename;
68
+ const generateAttachmentFilename = (fileContent, extension) => {
69
+ const hash = (0, exports.generateFileHash)(fileContent);
70
+ const ext = extension.startsWith('.') ? extension.substring(1) : extension;
71
+ return `${hash}.${ext}`;
72
+ };
73
+ exports.generateAttachmentFilename = generateAttachmentFilename;
74
+ const minPeopleCountToRange = (n) => {
75
+ if (n >= 10000000)
76
+ return constants_1.peopleCountBuckets['10000000'];
77
+ if (n >= 1000000)
78
+ return constants_1.peopleCountBuckets['1000000'];
79
+ if (n >= 100000)
80
+ return constants_1.peopleCountBuckets['100000'];
81
+ if (n >= 10000)
82
+ return constants_1.peopleCountBuckets['10000'];
83
+ if (n >= 1000)
84
+ return constants_1.peopleCountBuckets['1000'];
85
+ if (n >= 100)
86
+ return constants_1.peopleCountBuckets['100'];
87
+ if (n >= 10)
88
+ return constants_1.peopleCountBuckets['10'];
89
+ if (n >= 0)
90
+ return constants_1.peopleCountBuckets['0'];
91
+ };
92
+ exports.minPeopleCountToRange = minPeopleCountToRange;
93
+ const monthIndex = (month) => ['jan', 'feb', 'mar', 'apr', 'may', 'jun', 'jul', 'aug', 'sep', 'oct', 'nov', 'dec'].indexOf(month.toLowerCase().substr(0, 3));
94
+ exports.monthIndex = monthIndex;
95
+ exports.birthDateFormat = /(?<d>\d{1,2})\s(?<month>Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s(?<y>\d{4})/;
96
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"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"}
package/package.json ADDED
@@ -0,0 +1,66 @@
1
+ {
2
+ "name": "stated-protocol",
3
+ "version": "5.0.0",
4
+ "description": "Protocol for Decentralised Interorganisational Coordination",
5
+ "main": "dist/index.js",
6
+ "module": "dist/esm/index.js",
7
+ "types": "dist/index.d.ts",
8
+ "exports": {
9
+ ".": {
10
+ "types": "./dist/index.d.ts",
11
+ "import": "./dist/esm/index.js",
12
+ "require": "./dist/index.js",
13
+ "default": "./dist/index.js"
14
+ }
15
+ },
16
+ "scripts": {
17
+ "clean": "rm -rf dist",
18
+ "build": "npm run clean && npm run build:cjs && npm run build:esm",
19
+ "build:cjs": "tsc",
20
+ "build:esm": "node scripts/build-esm.js && tsc -p tsconfig.esm.json --emitDeclarationOnly",
21
+ "test": "tsx --test 'src/**/*.test.ts'",
22
+ "lint": "eslint 'src/**/*.ts' 'scripts/**/*.ts'",
23
+ "lint:fix": "eslint 'src/**/*.ts' 'scripts/**/*.ts' --fix",
24
+ "format": "prettier --write 'src/**/*.ts' 'scripts/**/*.ts'",
25
+ "format:check": "prettier --check 'src/**/*.ts' 'scripts/**/*.ts'",
26
+ "fix": "npm run format && npm run lint:fix",
27
+ "typecheck": "tsc --noEmit",
28
+ "prepublishOnly": "npm run build",
29
+ "update-fixtures": "tsx scripts/updateFixtures.ts"
30
+ },
31
+ "keywords": [
32
+ "stated",
33
+ "protocol",
34
+ "parser",
35
+ "formatter",
36
+ "verification",
37
+ "decentralized",
38
+ "statements"
39
+ ],
40
+ "author": "",
41
+ "license": "MIT",
42
+ "devDependencies": {
43
+ "@types/node": "^20.19.27",
44
+ "@typescript-eslint/eslint-plugin": "^6.21.0",
45
+ "@typescript-eslint/parser": "^6.21.0",
46
+ "esbuild": "^0.27.2",
47
+ "eslint": "^8.57.0",
48
+ "prettier": "^3.2.5",
49
+ "tsx": "^4.21.0",
50
+ "typescript": "^5.0.0"
51
+ },
52
+ "files": [
53
+ "dist",
54
+ "src",
55
+ "README.md",
56
+ "LICENSE"
57
+ ],
58
+ "repository": {
59
+ "type": "git",
60
+ "url": "https://github.com/c-riq/stated"
61
+ },
62
+ "dependencies": {
63
+ "@noble/ed25519": "^3.0.0",
64
+ "@noble/hashes": "^2.0.1"
65
+ }
66
+ }