@welshman/util 0.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +14 -0
- package/build/Address.cjs +44 -0
- package/build/Address.cjs.map +1 -0
- package/build/Address.d.ts +21 -0
- package/build/Address.mjs +32 -0
- package/build/Address.mjs.map +1 -0
- package/build/Events.cjs +58 -0
- package/build/Events.cjs.map +1 -0
- package/build/Events.d.ts +34 -0
- package/build/Events.mjs +42 -0
- package/build/Events.mjs.map +1 -0
- package/build/Filters.cjs +139 -0
- package/build/Filters.cjs.map +1 -0
- package/build/Filters.d.ts +39 -0
- package/build/Filters.mjs +127 -0
- package/build/Filters.mjs.map +1 -0
- package/build/Kinds.cjs +83 -0
- package/build/Kinds.cjs.map +1 -0
- package/build/Kinds.d.ts +77 -0
- package/build/Kinds.mjs +78 -0
- package/build/Kinds.mjs.map +1 -0
- package/build/Links.cjs +8 -0
- package/build/Links.cjs.map +1 -0
- package/build/Links.d.ts +2 -0
- package/build/Links.mjs +3 -0
- package/build/Links.mjs.map +1 -0
- package/build/Relay.cjs +148 -0
- package/build/Relay.cjs.map +1 -0
- package/build/Relay.d.ts +23 -0
- package/build/Relay.mjs +144 -0
- package/build/Relay.mjs.map +1 -0
- package/build/Relays.cjs +36 -0
- package/build/Relays.cjs.map +1 -0
- package/build/Relays.d.ts +6 -0
- package/build/Relays.mjs +31 -0
- package/build/Relays.mjs.map +1 -0
- package/build/Router.cjs +205 -0
- package/build/Router.cjs.map +1 -0
- package/build/Router.d.ts +128 -0
- package/build/Router.mjs +200 -0
- package/build/Router.mjs.map +1 -0
- package/build/Tags.cjs +149 -0
- package/build/Tags.cjs.map +1 -0
- package/build/Tags.d.ts +77 -0
- package/build/Tags.mjs +144 -0
- package/build/Tags.mjs.map +1 -0
- package/build/Zaps.cjs +96 -0
- package/build/Zaps.cjs.map +1 -0
- package/build/Zaps.d.ts +19 -0
- package/build/Zaps.mjs +89 -0
- package/build/Zaps.mjs.map +1 -0
- package/build/index.cjs +27 -0
- package/build/index.cjs.map +1 -0
- package/build/index.d.ts +10 -0
- package/build/index.mjs +11 -0
- package/build/index.mjs.map +1 -0
- package/package.json +38 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Router.mjs","sourceRoot":"","sources":["../Router.ts"],"names":[],"mappings":"OAAO,EAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,YAAY,EAAC,MAAM,eAAe;OACpF,EAAC,IAAI,EAAE,GAAG,EAAC,MAAM,gBAAgB;OAEjC,EAAC,UAAU,EAAE,aAAa,EAAC;OAC3B,EAAC,mBAAmB,EAAC;OACrB,EAAC,gBAAgB,EAAE,aAAa,EAAE,kBAAkB,EAAE,cAAc,EAAC;AAE5E,MAAM,CAAN,IAAY,SAGX;AAHD,WAAY,SAAS;IACnB,0BAAa,CAAA;IACb,4BAAe,CAAA;AACjB,CAAC,EAHW,SAAS,KAAT,SAAS,QAGpB;AA6BD,MAAM,OAAO,MAAM;IACjB,YAAqB,OAAsB;QAAtB,YAAO,GAAP,OAAO,CAAe;QAE3C,iCAAiC;QAEjC,uBAAkB,GAAG,CAAC,MAAc,EAAE,IAAgB,EAAE,EAAE,CACxD,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAA;QAEpE,wBAAmB,GAAG,CAAC,OAAiB,EAAE,IAAgB,EAAE,EAAE,CAC5D,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,kBAAkB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAA;QAE9D,sBAAiB,GAAG,CAAC,IAAgB,EAAE,EAAE,CACvC,IAAI,CAAC,mBAAmB,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAa,EAAE,IAAI,CAAC,CAAA;QAE7F,yBAAoB,GAAG,CAAC,IAAU,EAAE,EAAE;YACpC,OAAO;gBACL,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,EAAE,EAAE,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE;gBACjH,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,EAAE,EAAE,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE;aACzG,CAAA;QACH,CAAC,CAAA;QAED,qCAAqC;QAErC,cAAS,GAAG,CAAC,KAAa,EAAE,MAAwB,EAAE,EAAE,CAAC,CAAC,EAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,EAAC,CAAC,CAAA;QAE9F,eAAU,GAAG,CAAC,MAAgB,EAAE,MAAgB,EAAE,EAAE,CAClD,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAA;QAEpD,eAAU,GAAG,CAAC,KAAa,EAAE,UAAyB,EAAE,EAAE,CACxD,UAAU,CAAC,GAAG,CAAC,CAAC,EAAC,MAAM,EAAC,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAA;QAE7D,iCAAiC;QAEjC,2BAAsB,GAAG,CAAC,aAA4B,EAAE,EAAE,CACxD,MAAM,CACJ,CAAC,EAAC,MAAM,EAAC,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,EAC5B,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC;aACtB,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,MAAM,CAAqB,EAAE,EAAE,CAAC,CAAC,EAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,EAAC,CAAC,CAAC,CACjF,CAAA;QAEH,wBAAmB,GAAG,CAAC,EAAC,MAAM,EAAE,KAAK,EAAc,EAAE,EAAE,CACrD,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,KAAK,CAAC,CAAA;QAErD,wBAAmB,GAAG,CAAC,eAA8B,EAAE,EAAE;YACvD,MAAM,MAAM,GAAG,IAAI,GAAG,EAAkB,CAAA;YACxC,MAAM,QAAQ,GAAG,CAAC,WAAwB,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;YAEjF,KAAK,MAAM,WAAW,IAAI,eAAe,EAAE;gBACzC,MAAM,CAAC,GAAG,CAAC,WAAW,CAAC,KAAK,EAAE,IAAI,CAAC,mBAAmB,CAAC,WAAW,CAAC,CAAC,CAAA;aACrE;YAED,OAAO,MAAM,CAAC,QAAQ,EAAE,eAAe,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAA;QAC3D,CAAC,CAAA;QAED,mCAAmC;QAEnC,aAAQ,GAAG,CAAC,UAAyB,EAAE,EAAE,CAAC,IAAI,cAAc,CAAC,IAAI,EAAE,UAAU,CAAC,CAAA;QAE9E,UAAK,GAAG,CAAC,SAA2B,EAAE,EAAE,CACtC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,QAAwB,EAAE,EAAE,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAA;QAErF,YAAO,GAAG,CAAC,MAAgB,EAAE,MAAgB,EAAE,EAAE,CAC/C,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAA;QAEhD,eAAU,GAAG,CAAC,MAAgB,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC,CAAA;QAE9E,oBAAoB;QAEpB,SAAI,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC,CAAA;QAEpD,eAAU,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAA;QAExE,gBAAW,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAA;QAE1E,aAAQ,GAAG,CAAC,OAAiB,EAAE,EAAE,CAC/B,IAAI,CAAC,QAAQ,CAAC;YACZ,GAAG,IAAI,CAAC,iBAAiB,EAAE;YAC3B,GAAG,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC;SACrC,CAAC,CAAA;QAEJ,mBAAc,GAAG,CAAC,MAAc,EAAE,EAAE,CAClC,IAAI,CAAC,QAAQ,CAAC;YACZ,GAAG,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,KAAK,CAAC;YAC1C,IAAI,CAAC,kBAAkB,CAAC,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC;SAChD,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAA;QAErC,UAAK,GAAG,CAAC,KAAY,EAAE,EAAE,CACvB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,EAAE;YACtC,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC;YACtD,GAAG,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC;SAC9D,CAAC,CAAC,CAAA;QAEL,kBAAa,GAAG,CAAC,KAAY,EAAE,EAAE,CAC/B,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,EAAE;YACtC,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC;YACrD,GAAG,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC;SAC9D,CAAC,CAAC,CAAA;QAEL,mBAAc,GAAG,CAAC,KAAY,EAAE,IAAsC,EAAE,EAAE;YACxE,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAA;YAClC,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC,IAAI,CAAC,CAAA;YACxC,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,EAAE,CAAA;YACrD,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC,MAAM,EAAE,CAAC,OAAO,EAAE,CAAA;YACzD,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,CAAC,OAAO,EAAE,CAAA;YAC/C,MAAM,MAAM,GAAG,IAAI,CAAC;gBAClB,GAAG,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,KAAK,CAAC,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC;gBAC7D,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC;gBACnF,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC;gBACzE,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;gBAChE,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,OAAO,EAAE;aAChC,CAAC,CAAA;YAEF,OAAO,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,OAAO,EAAE,EAAE,MAAM,CAAC,CAAA;QAC3D,CAAC,CAAA;QAED,kBAAa,GAAG,CAAC,KAAY,EAAE,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,UAAU,CAAC,CAAA;QAExE,iBAAY,GAAG,CAAC,KAAY,EAAE,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,SAAS,CAAC,CAAA;QAEtE,eAAU,GAAG,CAAC,KAAY,EAAE,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,OAAO,CAAC,CAAA;QAElE,iBAAY,GAAG,CAAC,KAAY,EAAE,EAAE;YAC9B,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAA;YAClC,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,CAAA;YAE3C,8EAA8E;YAC9E,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,EAAE;gBAC1B,OAAO,IAAI;qBACR,QAAQ,CAAC,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;qBAClD,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAA;aAC/B;YAED,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,EAAE;gBAC7C,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC;gBACtD,GAAG,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;gBAC5C,GAAG,IAAI,CAAC,mBAAmB,CAAC,QAAQ,EAAE,SAAS,CAAC,IAAI,CAAC;aACtD,CAAC,CAAC,CAAA;QACL,CAAC,CAAA;QAED,gBAAW,GAAG,CAAC,OAAiB,EAAE,EAAE,CAClC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,mBAAmB,CAAC,OAAO,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC,CAAA;QAEnE,eAAU,GAAG,CAAC,OAAiB,EAAE,EAAE,CACjC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,mBAAmB,CAAC,OAAO,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC,CAAA;QAElE,gBAAW,GAAG,CAAC,OAAe,EAAE,MAAe,EAAE,EAAE,CACjD,IAAI;aACD,QAAQ,CAAC,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;aAChE,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAA;QAEhC,oBAAe,GAAG,CAAC,OAAe,EAAE,EAAE,CACpC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;QAEvE,kBAAa,GAAG,CAAC,OAAe,EAAE,EAAE;YAClC,IAAI,cAAc,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,EAAE;gBAC1C,OAAO,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAA;aACjC;YAED,IAAI,kBAAkB,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,EAAE;gBAC9C,OAAO,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAA;aACrC;YAED,MAAM,IAAI,KAAK,CAAC,mBAAmB,OAAO,EAAE,CAAC,CAAA;QAC/C,CAAC,CAAA;QAED,2BAAsB,GAAG,CAAC,SAAmB,EAAE,EAAE,CAC/C,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAA;QAE/C,WAAM,GAAG,CAAC,IAAY,EAAE,SAAmB,EAAE,EAAE,EAAE,CAC/C,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,eAAe,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA;QAE3E,aAAQ,GAAG,CAAC,SAAmB,EAAE,EAAE,EAAE,CACnC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA;QAEvE,oBAAoB;QAEpB,mBAAc,GAAG,CAAC,KAAa,EAAE,UAAkB,EAAE,EAAE,CAAC,KAAK,CAAA;QAE7D,wBAAmB,GAAG,CAAC,KAAa,EAAE,UAAkB,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC,CAAA;QAE/E,wBAAmB,GAAG,CAAC,KAAa,EAAE,UAAkB,EAAE,EAAE,CAAC,UAAU,GAAG,KAAK,CAAA;QAE/E,oCAAoC;QAEpC,cAAS,GAAG,CAAC,MAAc,EAAE,EAAE,CAC7B,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAA;QAE9D,eAAU,GAAG,CAAC,KAAY,EAAE,GAAG,KAAe,EAAE,EAAE,CAChD,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,MAAM,EAAE,EAAE,GAAG,KAAK,CAAC,CAAC,CAAA;QAEjE,oBAAe,GAAG,CAAC,KAAY,EAAE,GAAG,KAAe,EAAE,EAAE,CACrD,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,UAAU,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,MAAM,EAAE,EAAE,GAAG,KAAK,CAAC,CAAC,CAAA;QAE1E,aAAQ,GAAG,CAAC,KAAY,EAAE,GAAG,KAAe,EAAE,EAAE;YAC9C,MAAM,IAAI,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,GAAG,KAAK,CAAC,CAAC,CAAA;YAE/C,IAAI,aAAa,CAAC,KAAK,CAAC,EAAE;gBACxB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,GAAG,KAAK,CAAC,CAAC,CAAA;aACjD;YAED,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,CAAA;QACvB,CAAC,CAAA;QAED,YAAO,GAAG,CAAC,KAAY,EAAE,EAAE,CACzB,gBAAgB,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAA;IA3MtB,CAAC;CA4MhD;AAUD,MAAM,OAAO,cAAc;IACzB,YAAqB,MAAc,EAAW,UAAyB,EAAW,UAAiC,EAAE;QAAhG,WAAM,GAAN,MAAM,CAAQ;QAAW,eAAU,GAAV,UAAU,CAAe;QAAW,YAAO,GAAP,OAAO,CAA4B;QAErH,UAAK,GAAG,CAAC,OAA8B,EAAE,EAAE,CACzC,IAAI,cAAc,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,UAAU,EAAE,EAAC,GAAG,IAAI,CAAC,OAAO,EAAE,GAAG,OAAO,EAAC,CAAC,CAAA;QAEjF,WAAM,GAAG,CAAC,CAAiC,EAAE,EAAE,CAC7C,IAAI,cAAc,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,EAAC,KAAK,EAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,CAAA;QAE9F,eAAU,GAAG,CAAC,UAAkB,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,EAAC,UAAU,EAAC,CAAC,CAAA;QAE7D,WAAM,GAAG,CAAC,MAAsB,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,EAAC,MAAM,EAAC,CAAC,CAAA;QAEzD,UAAK,GAAG,CAAC,KAAa,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,EAAC,KAAK,EAAC,CAAC,CAAA;QAE9C,kBAAa,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,aAAa,EAAE,CAAA;QAEpF,cAAS,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,mBAAmB,CAAA;QAExE,aAAQ,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAA;QAErE,kBAAa,GAAG,GAAG,EAAE;YACnB,MAAM,SAAS,GAAG,IAAI,GAAG,EAAE,CAAA;YAC3B,MAAM,aAAa,GAAkB,IAAI,GAAG,EAAE,CAAA;YAC9C,KAAK,MAAM,EAAC,KAAK,EAAE,MAAM,EAAC,IAAI,IAAI,CAAC,UAAU,EAAE;gBAC7C,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;gBAEpB,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE;oBAC1B,IAAI,mBAAmB,CAAC,KAAK,CAAC,EAAE;wBAC9B,YAAY,CAAC,aAAa,EAAE,KAAK,EAAE,KAAK,CAAC,CAAA;qBAC1C;iBACF;aACF;YAED,mFAAmF;YACnF,mFAAmF;YACnF,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAA;YAC7B,MAAM,UAAU,GAAG,IAAI,CAAC,aAAa,EAAE,CAAA;YACvC,MAAM,kBAAkB,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,UAAU,GAAG,CAAC,KAAK,GAAG,CAAC,SAAS,CAAC,IAAI,GAAG,UAAU,CAAC,CAAC,CAAC,CAAA;YAErG,MAAM,IAAI,GAAG,IAAI,GAAG,EAAkB,CAAA;YACtC,MAAM,MAAM,GAAkB,IAAI,GAAG,EAAE,CAAA;YACvC,MAAM,eAAe,GAAG,IAAI,CAAC,MAAM,CAAC,sBAAsB,CAAC,aAAa,CAAC,CAAA;YACzE,KAAK,MAAM,EAAC,KAAK,EAAC,IAAI,IAAI,CAAC,MAAM,CAAC,mBAAmB,CAAC,eAAe,CAAC,EAAE;gBACtE,MAAM,MAAM,GAAG,IAAI,GAAG,EAAU,CAAA;gBAChC,KAAK,MAAM,KAAK,IAAI,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE;oBAClD,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;oBAEtC,IAAI,SAAS,GAAG,kBAAkB,EAAE;wBAClC,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,SAAS,GAAG,CAAC,CAAC,CAAA;wBAC9B,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;qBAClB;iBACF;gBAED,IAAI,MAAM,CAAC,IAAI,GAAG,CAAC,EAAE;oBACnB,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAA;iBACtC;aACF;YAED,MAAM,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,eAAe,EAAE,CAAC,CAAA;YAChE,MAAM,cAAc,GAAG,IAAI,CAAC,SAAS,EAAE,CAAA;YACvC,KAAK,MAAM,EAAC,KAAK,EAAC,IAAI,IAAI,CAAC,UAAU,EAAE;gBACrC,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;gBACtC,MAAM,eAAe,GAAG,cAAc,CAAC,SAAS,EAAE,kBAAkB,CAAC,CAAA;gBAErE,IAAI,eAAe,GAAG,CAAC,EAAE;oBACvB,KAAK,MAAM,KAAK,IAAI,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,eAAe,CAAC,EAAE;wBACvD,YAAY,CAAC,MAAM,EAAE,KAAK,EAAE,KAAK,CAAC,CAAA;qBACnC;iBACF;aACF;YAED,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,sBAAsB,CAAC,MAAM,CAAC,CAAC,CAAA;YAElF,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,UAAU,CAAC,EAAE;gBAC9C,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,SAAsB,EAAE,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAA;aACnG;YAED,OAAO,IAAI,CAAA;QACb,CAAC,CAAA;QAED,YAAO,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC,GAAG,CAAC,CAAC,SAAsB,EAAE,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC,CAAA;QAErF,WAAM,GAAG,GAAG,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAA;IAlFoF,CAAC;CAmF1H"}
|
package/build/Tags.cjs
ADDED
|
@@ -0,0 +1,149 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Tags = exports.Tag = void 0;
|
|
4
|
+
const lib_1 = require("@welshman/lib");
|
|
5
|
+
const Relays_1 = require("./Relays.cjs");
|
|
6
|
+
const Address_1 = require("./Address.cjs");
|
|
7
|
+
const Kinds_1 = require("./Kinds.cjs");
|
|
8
|
+
class Tag extends lib_1.Fluent {
|
|
9
|
+
constructor() {
|
|
10
|
+
super(...arguments);
|
|
11
|
+
this.key = () => this.xs[0];
|
|
12
|
+
this.value = () => this.xs[1];
|
|
13
|
+
this.mark = () => (0, lib_1.last)(this.xs.slice(2));
|
|
14
|
+
this.entry = () => this.xs.slice(0, 2);
|
|
15
|
+
this.setKey = (k) => this.set(0, k);
|
|
16
|
+
this.setValue = (v) => this.set(1, v);
|
|
17
|
+
this.setMark = (m) => this.xs.length > 2 ? this.set(this.xs.length - 2, m) : this.append(m);
|
|
18
|
+
this.asAddress = () => (0, Address_1.decodeAddress)(this.value());
|
|
19
|
+
this.isAddress = (kind) => { var _a; return this.key() === "a" && ((_a = this.value()) === null || _a === void 0 ? void 0 : _a.startsWith(`${kind}:`)); };
|
|
20
|
+
this.isGroup = () => this.isAddress(Kinds_1.GROUP_DEFINITION);
|
|
21
|
+
this.isCommunity = () => this.isAddress(Kinds_1.COMMUNITY_DEFINITION);
|
|
22
|
+
this.isContext = () => this.isAddress(Kinds_1.GROUP_DEFINITION) || this.isAddress(Kinds_1.COMMUNITY_DEFINITION);
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
exports.Tag = Tag;
|
|
26
|
+
Tag.from = (xs) => new Tag(Array.from(xs));
|
|
27
|
+
Tag.fromId = (id) => new Tag(["e", id]);
|
|
28
|
+
Tag.fromTopic = (topic) => new Tag(["t", topic]);
|
|
29
|
+
Tag.fromPubkey = (pubkey) => new Tag(["p", pubkey]);
|
|
30
|
+
Tag.fromAddress = (address) => new Tag(["a", (0, Address_1.encodeAddress)(address), address.relays[0] || ""]);
|
|
31
|
+
class Tags extends lib_1.Fluent {
|
|
32
|
+
constructor() {
|
|
33
|
+
super(...arguments);
|
|
34
|
+
this.unwrap = () => this.xs.map(tag => tag.valueOf());
|
|
35
|
+
this.whereKey = (key) => this.filter(t => t.key() === key);
|
|
36
|
+
this.whereValue = (value) => this.filter(t => t.value() === value);
|
|
37
|
+
this.whereMark = (mark) => this.filter(t => t.mark() === mark);
|
|
38
|
+
this.filterByKey = (keys) => this.filter(t => keys.includes(t.key()));
|
|
39
|
+
this.filterByValue = (values) => this.filter(t => values.includes(t.value()));
|
|
40
|
+
this.filterByMark = (marks) => this.filter(t => marks.includes(t.mark()));
|
|
41
|
+
this.rejectByKey = (keys) => this.reject(t => keys.includes(t.key()));
|
|
42
|
+
this.rejectByValue = (values) => this.reject(t => values.includes(t.value()));
|
|
43
|
+
this.rejectByMark = (marks) => this.reject(t => marks.includes(t.mark()));
|
|
44
|
+
this.get = (key) => this.whereKey(key).first();
|
|
45
|
+
this.keys = () => this.mapTo(t => t.key());
|
|
46
|
+
this.values = (key) => (key ? this.filterByKey((0, lib_1.ensurePlural)(key)) : this).mapTo(t => t.value());
|
|
47
|
+
this.marks = () => this.mapTo(t => t.mark());
|
|
48
|
+
this.entries = () => this.mapTo(t => t.entry());
|
|
49
|
+
this.relays = () => this.flatMap((t) => t.valueOf().filter(Relays_1.isShareableRelayUrl).map(url => (0, Relays_1.normalizeRelayUrl)(url))).uniq();
|
|
50
|
+
this.topics = () => this.whereKey("t").values().map((t) => t.replace(/^#/, ""));
|
|
51
|
+
this.ancestors = (x) => {
|
|
52
|
+
const tags = this.filterByKey(["a", "e", "q"]).reject(t => t.isContext());
|
|
53
|
+
const parentTags = tags.filterByKey(["a", "e"]);
|
|
54
|
+
const mentionTags = tags.whereKey("q");
|
|
55
|
+
const roots = [];
|
|
56
|
+
const replies = [];
|
|
57
|
+
const mentions = [];
|
|
58
|
+
parentTags
|
|
59
|
+
.forEach((t, i) => {
|
|
60
|
+
if (t.mark() === 'root') {
|
|
61
|
+
roots.push(t.valueOf());
|
|
62
|
+
}
|
|
63
|
+
else if (t.mark() === 'reply') {
|
|
64
|
+
replies.push(t.valueOf());
|
|
65
|
+
}
|
|
66
|
+
else if (t.mark() === 'mention') {
|
|
67
|
+
mentions.push(t.valueOf());
|
|
68
|
+
}
|
|
69
|
+
else if (i === parentTags.count() - 1) {
|
|
70
|
+
replies.push(t.valueOf());
|
|
71
|
+
}
|
|
72
|
+
else if (i === 0) {
|
|
73
|
+
roots.push(t.valueOf());
|
|
74
|
+
}
|
|
75
|
+
else {
|
|
76
|
+
mentions.push(t.valueOf());
|
|
77
|
+
}
|
|
78
|
+
});
|
|
79
|
+
// Add quotes as mentions separately so positional logic above works
|
|
80
|
+
mentionTags.forEach((t) => mentions.push(t.valueOf()));
|
|
81
|
+
return {
|
|
82
|
+
roots: Tags.wrap(roots),
|
|
83
|
+
replies: Tags.wrap(replies),
|
|
84
|
+
mentions: Tags.wrap(mentions),
|
|
85
|
+
};
|
|
86
|
+
};
|
|
87
|
+
this.roots = () => this.ancestors().roots;
|
|
88
|
+
this.replies = () => this.ancestors().replies;
|
|
89
|
+
this.mentions = () => this.ancestors().mentions;
|
|
90
|
+
this.root = () => {
|
|
91
|
+
const roots = this.roots();
|
|
92
|
+
return roots.get("e") || roots.get("a");
|
|
93
|
+
};
|
|
94
|
+
this.reply = () => {
|
|
95
|
+
const replies = this.replies();
|
|
96
|
+
return replies.get("e") || replies.get("a");
|
|
97
|
+
};
|
|
98
|
+
this.parents = () => {
|
|
99
|
+
const { roots, replies } = this.ancestors();
|
|
100
|
+
return replies.exists() ? replies : roots;
|
|
101
|
+
};
|
|
102
|
+
this.parent = () => {
|
|
103
|
+
const parents = this.parents();
|
|
104
|
+
return parents.get("e") || parents.get("a");
|
|
105
|
+
};
|
|
106
|
+
this.groups = () => this.whereKey("a").filter(t => t.isGroup());
|
|
107
|
+
this.communities = () => this.whereKey("a").filter(t => t.isCommunity());
|
|
108
|
+
this.context = () => this.whereKey("a").filter(t => t.isContext());
|
|
109
|
+
this.asObject = () => {
|
|
110
|
+
const result = {};
|
|
111
|
+
for (const t of this.xs) {
|
|
112
|
+
result[t.key()] = t.value();
|
|
113
|
+
}
|
|
114
|
+
return result;
|
|
115
|
+
};
|
|
116
|
+
this.imeta = (url) => {
|
|
117
|
+
var _a;
|
|
118
|
+
for (const tag of this.whereKey("imeta").xs) {
|
|
119
|
+
const tags = Tags.fromIMeta(tag.drop(1).valueOf());
|
|
120
|
+
if (((_a = tags.get("url")) === null || _a === void 0 ? void 0 : _a.value()) === url) {
|
|
121
|
+
return tags;
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
return null;
|
|
125
|
+
};
|
|
126
|
+
// Generic setters
|
|
127
|
+
this.addTag = (...args) => this.append(Tag.from(args));
|
|
128
|
+
this.setTag = (k, ...args) => this.rejectByKey([k]).addTag(k, ...args);
|
|
129
|
+
// Context
|
|
130
|
+
this.addContext = (addresses) => this.concat(addresses.map(a => Tag.from(["a", a])));
|
|
131
|
+
this.removeContext = () => this.reject(t => t.isContext());
|
|
132
|
+
this.setContext = (addresses) => this.removeContext().addContext(addresses);
|
|
133
|
+
// Images
|
|
134
|
+
this.addImages = (imeta) => this.concat(imeta.map(tags => Tag.from(["image", tags.get("url").value()])));
|
|
135
|
+
this.removeImages = () => this.rejectByKey(['image']);
|
|
136
|
+
this.setImages = (imeta) => this.removeImages().addImages(imeta);
|
|
137
|
+
// IMeta
|
|
138
|
+
this.addIMeta = (imeta) => this.concat(imeta.map(tags => Tag.from(["imeta", ...tags.valueOf().map(xs => xs.join(" "))])));
|
|
139
|
+
this.removeIMeta = () => this.rejectByKey(['imeta']);
|
|
140
|
+
this.setIMeta = (imeta) => this.removeIMeta().addIMeta(imeta);
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
exports.Tags = Tags;
|
|
144
|
+
Tags.from = (p) => new Tags(Array.from(p));
|
|
145
|
+
Tags.wrap = (p) => new Tags(Array.from(p).map(Tag.from));
|
|
146
|
+
Tags.fromEvent = (event) => Tags.wrap(event.tags || []);
|
|
147
|
+
Tags.fromEvents = (events) => Tags.wrap(events.flatMap(e => e.tags || []));
|
|
148
|
+
Tags.fromIMeta = (imeta) => Tags.wrap(imeta.map((m) => m.split(" ")));
|
|
149
|
+
//# sourceMappingURL=Tags.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Tags.cjs","sourceRoot":"","sources":["../Tags.ts"],"names":[],"mappings":"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"}
|
package/build/Tags.d.ts
ADDED
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
import { EventTemplate } from 'nostr-tools';
|
|
2
|
+
import { Fluent } from '@welshman/lib';
|
|
3
|
+
import type { Address } from './Address';
|
|
4
|
+
declare const Tag_base: (new (xs: string[]) => Fluent<string>) & Omit<typeof Fluent<string>, "from">;
|
|
5
|
+
export declare class Tag extends Tag_base {
|
|
6
|
+
static from: (xs: Iterable<string>) => Tag;
|
|
7
|
+
static fromId: (id: string) => Tag;
|
|
8
|
+
static fromTopic: (topic: string) => Tag;
|
|
9
|
+
static fromPubkey: (pubkey: string) => Tag;
|
|
10
|
+
static fromAddress: (address: Address) => Tag;
|
|
11
|
+
key: () => string;
|
|
12
|
+
value: () => string;
|
|
13
|
+
mark: () => string;
|
|
14
|
+
entry: () => string[];
|
|
15
|
+
setKey: (k: string) => this;
|
|
16
|
+
setValue: (v: string) => this;
|
|
17
|
+
setMark: (m: string) => this;
|
|
18
|
+
asAddress: () => Address;
|
|
19
|
+
isAddress: (kind?: number) => boolean;
|
|
20
|
+
isGroup: () => boolean;
|
|
21
|
+
isCommunity: () => boolean;
|
|
22
|
+
isContext: () => boolean;
|
|
23
|
+
}
|
|
24
|
+
declare const Tags_base: (new (xs: Tag[]) => Fluent<Tag>) & Omit<typeof Fluent<Tag>, "from">;
|
|
25
|
+
export declare class Tags extends Tags_base {
|
|
26
|
+
static from: (p: Iterable<Tag>) => Tags;
|
|
27
|
+
static wrap: (p: Iterable<string[]>) => Tags;
|
|
28
|
+
static fromEvent: (event: Pick<EventTemplate, "tags">) => Tags;
|
|
29
|
+
static fromEvents: (events: Pick<EventTemplate, "tags">[]) => Tags;
|
|
30
|
+
static fromIMeta: (imeta: string[]) => Tags;
|
|
31
|
+
unwrap: () => string[][];
|
|
32
|
+
whereKey: (key: string) => this;
|
|
33
|
+
whereValue: (value: string) => this;
|
|
34
|
+
whereMark: (mark: string) => this;
|
|
35
|
+
filterByKey: (keys: string[]) => this;
|
|
36
|
+
filterByValue: (values: string[]) => this;
|
|
37
|
+
filterByMark: (marks: string[]) => this;
|
|
38
|
+
rejectByKey: (keys: string[]) => this;
|
|
39
|
+
rejectByValue: (values: string[]) => this;
|
|
40
|
+
rejectByMark: (marks: string[]) => this;
|
|
41
|
+
get: (key: string) => Tag;
|
|
42
|
+
keys: () => Fluent<string>;
|
|
43
|
+
values: (key?: string | string[]) => Fluent<string>;
|
|
44
|
+
marks: () => Fluent<string>;
|
|
45
|
+
entries: () => Fluent<string[]>;
|
|
46
|
+
relays: () => Fluent<string>;
|
|
47
|
+
topics: () => Fluent<string>;
|
|
48
|
+
ancestors: (x?: boolean) => {
|
|
49
|
+
roots: Tags;
|
|
50
|
+
replies: Tags;
|
|
51
|
+
mentions: Tags;
|
|
52
|
+
};
|
|
53
|
+
roots: () => Tags;
|
|
54
|
+
replies: () => Tags;
|
|
55
|
+
mentions: () => Tags;
|
|
56
|
+
root: () => Tag;
|
|
57
|
+
reply: () => Tag;
|
|
58
|
+
parents: () => Tags;
|
|
59
|
+
parent: () => Tag;
|
|
60
|
+
groups: () => this;
|
|
61
|
+
communities: () => this;
|
|
62
|
+
context: () => this;
|
|
63
|
+
asObject: () => Record<string, string>;
|
|
64
|
+
imeta: (url: string) => Tags | null;
|
|
65
|
+
addTag: (...args: string[]) => this;
|
|
66
|
+
setTag: (k: string, ...args: string[]) => this;
|
|
67
|
+
addContext: (addresses: string[]) => this;
|
|
68
|
+
removeContext: () => this;
|
|
69
|
+
setContext: (addresses: string[]) => this;
|
|
70
|
+
addImages: (imeta: Tags[]) => this;
|
|
71
|
+
removeImages: () => this;
|
|
72
|
+
setImages: (imeta: Tags[]) => this;
|
|
73
|
+
addIMeta: (imeta: Tags[]) => this;
|
|
74
|
+
removeIMeta: () => this;
|
|
75
|
+
setIMeta: (imeta: Tags[]) => this;
|
|
76
|
+
}
|
|
77
|
+
export {};
|
package/build/Tags.mjs
ADDED
|
@@ -0,0 +1,144 @@
|
|
|
1
|
+
import { Fluent, ensurePlural, last } from '@welshman/lib';
|
|
2
|
+
import { isShareableRelayUrl, normalizeRelayUrl } from "./Relays.mjs";
|
|
3
|
+
import { encodeAddress, decodeAddress } from "./Address.mjs";
|
|
4
|
+
import { GROUP_DEFINITION, COMMUNITY_DEFINITION } from "./Kinds.mjs";
|
|
5
|
+
export class Tag extends Fluent {
|
|
6
|
+
constructor() {
|
|
7
|
+
super(...arguments);
|
|
8
|
+
this.key = () => this.xs[0];
|
|
9
|
+
this.value = () => this.xs[1];
|
|
10
|
+
this.mark = () => last(this.xs.slice(2));
|
|
11
|
+
this.entry = () => this.xs.slice(0, 2);
|
|
12
|
+
this.setKey = (k) => this.set(0, k);
|
|
13
|
+
this.setValue = (v) => this.set(1, v);
|
|
14
|
+
this.setMark = (m) => this.xs.length > 2 ? this.set(this.xs.length - 2, m) : this.append(m);
|
|
15
|
+
this.asAddress = () => decodeAddress(this.value());
|
|
16
|
+
this.isAddress = (kind) => { var _a; return this.key() === "a" && ((_a = this.value()) === null || _a === void 0 ? void 0 : _a.startsWith(`${kind}:`)); };
|
|
17
|
+
this.isGroup = () => this.isAddress(GROUP_DEFINITION);
|
|
18
|
+
this.isCommunity = () => this.isAddress(COMMUNITY_DEFINITION);
|
|
19
|
+
this.isContext = () => this.isAddress(GROUP_DEFINITION) || this.isAddress(COMMUNITY_DEFINITION);
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
Tag.from = (xs) => new Tag(Array.from(xs));
|
|
23
|
+
Tag.fromId = (id) => new Tag(["e", id]);
|
|
24
|
+
Tag.fromTopic = (topic) => new Tag(["t", topic]);
|
|
25
|
+
Tag.fromPubkey = (pubkey) => new Tag(["p", pubkey]);
|
|
26
|
+
Tag.fromAddress = (address) => new Tag(["a", encodeAddress(address), address.relays[0] || ""]);
|
|
27
|
+
export class Tags extends Fluent {
|
|
28
|
+
constructor() {
|
|
29
|
+
super(...arguments);
|
|
30
|
+
this.unwrap = () => this.xs.map(tag => tag.valueOf());
|
|
31
|
+
this.whereKey = (key) => this.filter(t => t.key() === key);
|
|
32
|
+
this.whereValue = (value) => this.filter(t => t.value() === value);
|
|
33
|
+
this.whereMark = (mark) => this.filter(t => t.mark() === mark);
|
|
34
|
+
this.filterByKey = (keys) => this.filter(t => keys.includes(t.key()));
|
|
35
|
+
this.filterByValue = (values) => this.filter(t => values.includes(t.value()));
|
|
36
|
+
this.filterByMark = (marks) => this.filter(t => marks.includes(t.mark()));
|
|
37
|
+
this.rejectByKey = (keys) => this.reject(t => keys.includes(t.key()));
|
|
38
|
+
this.rejectByValue = (values) => this.reject(t => values.includes(t.value()));
|
|
39
|
+
this.rejectByMark = (marks) => this.reject(t => marks.includes(t.mark()));
|
|
40
|
+
this.get = (key) => this.whereKey(key).first();
|
|
41
|
+
this.keys = () => this.mapTo(t => t.key());
|
|
42
|
+
this.values = (key) => (key ? this.filterByKey(ensurePlural(key)) : this).mapTo(t => t.value());
|
|
43
|
+
this.marks = () => this.mapTo(t => t.mark());
|
|
44
|
+
this.entries = () => this.mapTo(t => t.entry());
|
|
45
|
+
this.relays = () => this.flatMap((t) => t.valueOf().filter(isShareableRelayUrl).map(url => normalizeRelayUrl(url))).uniq();
|
|
46
|
+
this.topics = () => this.whereKey("t").values().map((t) => t.replace(/^#/, ""));
|
|
47
|
+
this.ancestors = (x) => {
|
|
48
|
+
const tags = this.filterByKey(["a", "e", "q"]).reject(t => t.isContext());
|
|
49
|
+
const parentTags = tags.filterByKey(["a", "e"]);
|
|
50
|
+
const mentionTags = tags.whereKey("q");
|
|
51
|
+
const roots = [];
|
|
52
|
+
const replies = [];
|
|
53
|
+
const mentions = [];
|
|
54
|
+
parentTags
|
|
55
|
+
.forEach((t, i) => {
|
|
56
|
+
if (t.mark() === 'root') {
|
|
57
|
+
roots.push(t.valueOf());
|
|
58
|
+
}
|
|
59
|
+
else if (t.mark() === 'reply') {
|
|
60
|
+
replies.push(t.valueOf());
|
|
61
|
+
}
|
|
62
|
+
else if (t.mark() === 'mention') {
|
|
63
|
+
mentions.push(t.valueOf());
|
|
64
|
+
}
|
|
65
|
+
else if (i === parentTags.count() - 1) {
|
|
66
|
+
replies.push(t.valueOf());
|
|
67
|
+
}
|
|
68
|
+
else if (i === 0) {
|
|
69
|
+
roots.push(t.valueOf());
|
|
70
|
+
}
|
|
71
|
+
else {
|
|
72
|
+
mentions.push(t.valueOf());
|
|
73
|
+
}
|
|
74
|
+
});
|
|
75
|
+
// Add quotes as mentions separately so positional logic above works
|
|
76
|
+
mentionTags.forEach((t) => mentions.push(t.valueOf()));
|
|
77
|
+
return {
|
|
78
|
+
roots: Tags.wrap(roots),
|
|
79
|
+
replies: Tags.wrap(replies),
|
|
80
|
+
mentions: Tags.wrap(mentions),
|
|
81
|
+
};
|
|
82
|
+
};
|
|
83
|
+
this.roots = () => this.ancestors().roots;
|
|
84
|
+
this.replies = () => this.ancestors().replies;
|
|
85
|
+
this.mentions = () => this.ancestors().mentions;
|
|
86
|
+
this.root = () => {
|
|
87
|
+
const roots = this.roots();
|
|
88
|
+
return roots.get("e") || roots.get("a");
|
|
89
|
+
};
|
|
90
|
+
this.reply = () => {
|
|
91
|
+
const replies = this.replies();
|
|
92
|
+
return replies.get("e") || replies.get("a");
|
|
93
|
+
};
|
|
94
|
+
this.parents = () => {
|
|
95
|
+
const { roots, replies } = this.ancestors();
|
|
96
|
+
return replies.exists() ? replies : roots;
|
|
97
|
+
};
|
|
98
|
+
this.parent = () => {
|
|
99
|
+
const parents = this.parents();
|
|
100
|
+
return parents.get("e") || parents.get("a");
|
|
101
|
+
};
|
|
102
|
+
this.groups = () => this.whereKey("a").filter(t => t.isGroup());
|
|
103
|
+
this.communities = () => this.whereKey("a").filter(t => t.isCommunity());
|
|
104
|
+
this.context = () => this.whereKey("a").filter(t => t.isContext());
|
|
105
|
+
this.asObject = () => {
|
|
106
|
+
const result = {};
|
|
107
|
+
for (const t of this.xs) {
|
|
108
|
+
result[t.key()] = t.value();
|
|
109
|
+
}
|
|
110
|
+
return result;
|
|
111
|
+
};
|
|
112
|
+
this.imeta = (url) => {
|
|
113
|
+
var _a;
|
|
114
|
+
for (const tag of this.whereKey("imeta").xs) {
|
|
115
|
+
const tags = Tags.fromIMeta(tag.drop(1).valueOf());
|
|
116
|
+
if (((_a = tags.get("url")) === null || _a === void 0 ? void 0 : _a.value()) === url) {
|
|
117
|
+
return tags;
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
return null;
|
|
121
|
+
};
|
|
122
|
+
// Generic setters
|
|
123
|
+
this.addTag = (...args) => this.append(Tag.from(args));
|
|
124
|
+
this.setTag = (k, ...args) => this.rejectByKey([k]).addTag(k, ...args);
|
|
125
|
+
// Context
|
|
126
|
+
this.addContext = (addresses) => this.concat(addresses.map(a => Tag.from(["a", a])));
|
|
127
|
+
this.removeContext = () => this.reject(t => t.isContext());
|
|
128
|
+
this.setContext = (addresses) => this.removeContext().addContext(addresses);
|
|
129
|
+
// Images
|
|
130
|
+
this.addImages = (imeta) => this.concat(imeta.map(tags => Tag.from(["image", tags.get("url").value()])));
|
|
131
|
+
this.removeImages = () => this.rejectByKey(['image']);
|
|
132
|
+
this.setImages = (imeta) => this.removeImages().addImages(imeta);
|
|
133
|
+
// IMeta
|
|
134
|
+
this.addIMeta = (imeta) => this.concat(imeta.map(tags => Tag.from(["imeta", ...tags.valueOf().map(xs => xs.join(" "))])));
|
|
135
|
+
this.removeIMeta = () => this.rejectByKey(['imeta']);
|
|
136
|
+
this.setIMeta = (imeta) => this.removeIMeta().addIMeta(imeta);
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
Tags.from = (p) => new Tags(Array.from(p));
|
|
140
|
+
Tags.wrap = (p) => new Tags(Array.from(p).map(Tag.from));
|
|
141
|
+
Tags.fromEvent = (event) => Tags.wrap(event.tags || []);
|
|
142
|
+
Tags.fromEvents = (events) => Tags.wrap(events.flatMap(e => e.tags || []));
|
|
143
|
+
Tags.fromIMeta = (imeta) => Tags.wrap(imeta.map((m) => m.split(" ")));
|
|
144
|
+
//# sourceMappingURL=Tags.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Tags.mjs","sourceRoot":"","sources":["../Tags.ts"],"names":[],"mappings":"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"}
|
package/build/Zaps.cjs
ADDED
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.zapFromEvent = exports.getLnUrl = exports.getInvoiceAmount = exports.hrpToMillisat = void 0;
|
|
4
|
+
const lib_1 = require("@welshman/lib");
|
|
5
|
+
const Tags_1 = require("./Tags.cjs");
|
|
6
|
+
const DIVISORS = {
|
|
7
|
+
m: BigInt(1e3),
|
|
8
|
+
u: BigInt(1e6),
|
|
9
|
+
n: BigInt(1e9),
|
|
10
|
+
p: BigInt(1e12),
|
|
11
|
+
};
|
|
12
|
+
const MAX_MILLISATS = BigInt("2100000000000000000");
|
|
13
|
+
const MILLISATS_PER_BTC = BigInt(1e11);
|
|
14
|
+
const hrpToMillisat = (hrpString) => {
|
|
15
|
+
let divisor, value;
|
|
16
|
+
if (hrpString.slice(-1).match(/^[munp]$/)) {
|
|
17
|
+
divisor = hrpString.slice(-1);
|
|
18
|
+
value = hrpString.slice(0, -1);
|
|
19
|
+
}
|
|
20
|
+
else if (hrpString.slice(-1).match(/^[^munp0-9]$/)) {
|
|
21
|
+
throw new Error("Not a valid multiplier for the amount");
|
|
22
|
+
}
|
|
23
|
+
else {
|
|
24
|
+
value = hrpString;
|
|
25
|
+
}
|
|
26
|
+
if (!value.match(/^\d+$/))
|
|
27
|
+
throw new Error("Not a valid human readable amount");
|
|
28
|
+
const valueBN = BigInt(value);
|
|
29
|
+
const millisatoshisBN = divisor
|
|
30
|
+
? (valueBN * MILLISATS_PER_BTC) / DIVISORS[divisor]
|
|
31
|
+
: valueBN * MILLISATS_PER_BTC;
|
|
32
|
+
if ((divisor === "p" && !(valueBN % BigInt(10) === BigInt(0))) ||
|
|
33
|
+
millisatoshisBN > MAX_MILLISATS) {
|
|
34
|
+
throw new Error("Amount is outside of valid range");
|
|
35
|
+
}
|
|
36
|
+
return millisatoshisBN;
|
|
37
|
+
};
|
|
38
|
+
exports.hrpToMillisat = hrpToMillisat;
|
|
39
|
+
const getInvoiceAmount = (bolt11) => {
|
|
40
|
+
const hrp = bolt11.match(/lnbc(\d+\w)/);
|
|
41
|
+
const bn = (0, exports.hrpToMillisat)(hrp[1]);
|
|
42
|
+
return Number(bn);
|
|
43
|
+
};
|
|
44
|
+
exports.getInvoiceAmount = getInvoiceAmount;
|
|
45
|
+
const getLnUrl = (address) => {
|
|
46
|
+
if (address.startsWith("lnurl1")) {
|
|
47
|
+
return address;
|
|
48
|
+
}
|
|
49
|
+
// If it's a regular url, just encode it
|
|
50
|
+
if (address.includes("://")) {
|
|
51
|
+
return (0, lib_1.hexToBech32)("lnurl", address);
|
|
52
|
+
}
|
|
53
|
+
// Try to parse it as a lud16 address
|
|
54
|
+
if (address.includes("@")) {
|
|
55
|
+
const [name, domain] = address.split("@");
|
|
56
|
+
if (domain && name) {
|
|
57
|
+
return (0, lib_1.hexToBech32)("lnurl", `https://${domain}/.well-known/lnurlp/${name}`);
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
return null;
|
|
61
|
+
};
|
|
62
|
+
exports.getLnUrl = getLnUrl;
|
|
63
|
+
const zapFromEvent = (response, zapper) => {
|
|
64
|
+
const responseMeta = Tags_1.Tags.fromEvent(response).asObject();
|
|
65
|
+
let zap;
|
|
66
|
+
try {
|
|
67
|
+
zap = {
|
|
68
|
+
response,
|
|
69
|
+
invoiceAmount: (0, exports.getInvoiceAmount)(responseMeta.bolt11),
|
|
70
|
+
request: JSON.parse(responseMeta.description),
|
|
71
|
+
};
|
|
72
|
+
}
|
|
73
|
+
catch (e) {
|
|
74
|
+
return null;
|
|
75
|
+
}
|
|
76
|
+
// Don't count zaps that the user sent himself
|
|
77
|
+
if (zap.request.pubkey === zapper.pubkey) {
|
|
78
|
+
return null;
|
|
79
|
+
}
|
|
80
|
+
const { amount, lnurl } = Tags_1.Tags.fromEvent(zap.request).asObject();
|
|
81
|
+
// Verify that the zapper actually sent the requested amount (if it was supplied)
|
|
82
|
+
if (amount && parseInt(amount) !== zap.invoiceAmount) {
|
|
83
|
+
return null;
|
|
84
|
+
}
|
|
85
|
+
// If the sending client provided an lnurl tag, verify that too
|
|
86
|
+
if (lnurl && lnurl !== zapper.lnurl) {
|
|
87
|
+
return null;
|
|
88
|
+
}
|
|
89
|
+
// Verify that the request actually came from the recipient's zapper
|
|
90
|
+
if (zap.response.pubkey !== zapper.nostrPubkey) {
|
|
91
|
+
return null;
|
|
92
|
+
}
|
|
93
|
+
return zap;
|
|
94
|
+
};
|
|
95
|
+
exports.zapFromEvent = zapFromEvent;
|
|
96
|
+
//# sourceMappingURL=Zaps.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Zaps.cjs","sourceRoot":"","sources":["../Zaps.ts"],"names":[],"mappings":"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"}
|
package/build/Zaps.d.ts
ADDED
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { Event } from 'nostr-tools';
|
|
2
|
+
export declare const hrpToMillisat: (hrpString: string) => bigint;
|
|
3
|
+
export declare const getInvoiceAmount: (bolt11: string) => number;
|
|
4
|
+
export declare const getLnUrl: (address: string) => string | null;
|
|
5
|
+
export type Zapper = {
|
|
6
|
+
lnurl: string;
|
|
7
|
+
pubkey: string;
|
|
8
|
+
callback: string;
|
|
9
|
+
minSendable: number;
|
|
10
|
+
maxSendable: number;
|
|
11
|
+
nostrPubkey: string;
|
|
12
|
+
allowsNostr: boolean;
|
|
13
|
+
};
|
|
14
|
+
export type Zap = {
|
|
15
|
+
request: Event;
|
|
16
|
+
response: Event;
|
|
17
|
+
invoiceAmount: number;
|
|
18
|
+
};
|
|
19
|
+
export declare const zapFromEvent: (response: Event, zapper: Zapper) => Zap | null;
|
package/build/Zaps.mjs
ADDED
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
import { hexToBech32 } from '@welshman/lib';
|
|
2
|
+
import { Tags } from "./Tags.mjs";
|
|
3
|
+
const DIVISORS = {
|
|
4
|
+
m: BigInt(1e3),
|
|
5
|
+
u: BigInt(1e6),
|
|
6
|
+
n: BigInt(1e9),
|
|
7
|
+
p: BigInt(1e12),
|
|
8
|
+
};
|
|
9
|
+
const MAX_MILLISATS = BigInt("2100000000000000000");
|
|
10
|
+
const MILLISATS_PER_BTC = BigInt(1e11);
|
|
11
|
+
export const hrpToMillisat = (hrpString) => {
|
|
12
|
+
let divisor, value;
|
|
13
|
+
if (hrpString.slice(-1).match(/^[munp]$/)) {
|
|
14
|
+
divisor = hrpString.slice(-1);
|
|
15
|
+
value = hrpString.slice(0, -1);
|
|
16
|
+
}
|
|
17
|
+
else if (hrpString.slice(-1).match(/^[^munp0-9]$/)) {
|
|
18
|
+
throw new Error("Not a valid multiplier for the amount");
|
|
19
|
+
}
|
|
20
|
+
else {
|
|
21
|
+
value = hrpString;
|
|
22
|
+
}
|
|
23
|
+
if (!value.match(/^\d+$/))
|
|
24
|
+
throw new Error("Not a valid human readable amount");
|
|
25
|
+
const valueBN = BigInt(value);
|
|
26
|
+
const millisatoshisBN = divisor
|
|
27
|
+
? (valueBN * MILLISATS_PER_BTC) / DIVISORS[divisor]
|
|
28
|
+
: valueBN * MILLISATS_PER_BTC;
|
|
29
|
+
if ((divisor === "p" && !(valueBN % BigInt(10) === BigInt(0))) ||
|
|
30
|
+
millisatoshisBN > MAX_MILLISATS) {
|
|
31
|
+
throw new Error("Amount is outside of valid range");
|
|
32
|
+
}
|
|
33
|
+
return millisatoshisBN;
|
|
34
|
+
};
|
|
35
|
+
export const getInvoiceAmount = (bolt11) => {
|
|
36
|
+
const hrp = bolt11.match(/lnbc(\d+\w)/);
|
|
37
|
+
const bn = hrpToMillisat(hrp[1]);
|
|
38
|
+
return Number(bn);
|
|
39
|
+
};
|
|
40
|
+
export const getLnUrl = (address) => {
|
|
41
|
+
if (address.startsWith("lnurl1")) {
|
|
42
|
+
return address;
|
|
43
|
+
}
|
|
44
|
+
// If it's a regular url, just encode it
|
|
45
|
+
if (address.includes("://")) {
|
|
46
|
+
return hexToBech32("lnurl", address);
|
|
47
|
+
}
|
|
48
|
+
// Try to parse it as a lud16 address
|
|
49
|
+
if (address.includes("@")) {
|
|
50
|
+
const [name, domain] = address.split("@");
|
|
51
|
+
if (domain && name) {
|
|
52
|
+
return hexToBech32("lnurl", `https://${domain}/.well-known/lnurlp/${name}`);
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
return null;
|
|
56
|
+
};
|
|
57
|
+
export const zapFromEvent = (response, zapper) => {
|
|
58
|
+
const responseMeta = Tags.fromEvent(response).asObject();
|
|
59
|
+
let zap;
|
|
60
|
+
try {
|
|
61
|
+
zap = {
|
|
62
|
+
response,
|
|
63
|
+
invoiceAmount: getInvoiceAmount(responseMeta.bolt11),
|
|
64
|
+
request: JSON.parse(responseMeta.description),
|
|
65
|
+
};
|
|
66
|
+
}
|
|
67
|
+
catch (e) {
|
|
68
|
+
return null;
|
|
69
|
+
}
|
|
70
|
+
// Don't count zaps that the user sent himself
|
|
71
|
+
if (zap.request.pubkey === zapper.pubkey) {
|
|
72
|
+
return null;
|
|
73
|
+
}
|
|
74
|
+
const { amount, lnurl } = Tags.fromEvent(zap.request).asObject();
|
|
75
|
+
// Verify that the zapper actually sent the requested amount (if it was supplied)
|
|
76
|
+
if (amount && parseInt(amount) !== zap.invoiceAmount) {
|
|
77
|
+
return null;
|
|
78
|
+
}
|
|
79
|
+
// If the sending client provided an lnurl tag, verify that too
|
|
80
|
+
if (lnurl && lnurl !== zapper.lnurl) {
|
|
81
|
+
return null;
|
|
82
|
+
}
|
|
83
|
+
// Verify that the request actually came from the recipient's zapper
|
|
84
|
+
if (zap.response.pubkey !== zapper.nostrPubkey) {
|
|
85
|
+
return null;
|
|
86
|
+
}
|
|
87
|
+
return zap;
|
|
88
|
+
};
|
|
89
|
+
//# sourceMappingURL=Zaps.mjs.map
|