@owlmeans/server-payment 0.1.18-rc.11 → 0.1.18-rc.13
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 +1 -1
- package/agent-meta/manifest.json +2 -2
- package/agent-meta/skills/server-payment/SKILL.md +67 -7
- package/build/config.d.ts +15 -1
- package/build/config.d.ts.map +1 -1
- package/build/config.js +40 -2
- package/build/config.js.map +1 -1
- package/build/consts.d.ts +10 -0
- package/build/consts.d.ts.map +1 -1
- package/build/consts.js +10 -0
- package/build/consts.js.map +1 -1
- package/build/index.d.ts +2 -0
- package/build/index.d.ts.map +1 -1
- package/build/index.js +1 -0
- package/build/index.js.map +1 -1
- package/build/model.d.ts.map +1 -1
- package/build/model.js +2 -1
- package/build/model.js.map +1 -1
- package/build/plugins/estimate.d.ts +43 -0
- package/build/plugins/estimate.d.ts.map +1 -0
- package/build/plugins/estimate.js +235 -0
- package/build/plugins/estimate.js.map +1 -0
- package/build/plugins/events.d.ts.map +1 -1
- package/build/plugins/events.js +17 -4
- package/build/plugins/events.js.map +1 -1
- package/build/plugins/fx.d.ts +26 -0
- package/build/plugins/fx.d.ts.map +1 -0
- package/build/plugins/fx.js +56 -0
- package/build/plugins/fx.js.map +1 -0
- package/build/plugins/portal.d.ts.map +1 -1
- package/build/plugins/portal.js +6 -2
- package/build/plugins/portal.js.map +1 -1
- package/build/plugins/stripe.d.ts +2 -1
- package/build/plugins/stripe.d.ts.map +1 -1
- package/build/plugins/stripe.js +51 -19
- package/build/plugins/stripe.js.map +1 -1
- package/build/service.d.ts.map +1 -1
- package/build/service.js +6 -0
- package/build/service.js.map +1 -1
- package/build/sync.d.ts +5 -0
- package/build/sync.d.ts.map +1 -1
- package/build/sync.js +80 -14
- package/build/sync.js.map +1 -1
- package/build/types.d.ts +46 -1
- package/build/types.d.ts.map +1 -1
- package/build/utils.d.ts +3 -1
- package/build/utils.d.ts.map +1 -1
- package/build/utils.js +3 -1
- package/build/utils.js.map +1 -1
- package/package.json +16 -16
- package/src/config.ts +47 -5
- package/src/consts.ts +11 -0
- package/src/index.ts +2 -0
- package/src/model.ts +2 -1
- package/src/plugins/estimate.ts +299 -0
- package/src/plugins/events.ts +17 -4
- package/src/plugins/fx.ts +93 -0
- package/src/plugins/portal.ts +6 -2
- package/src/plugins/stripe.ts +55 -19
- package/src/service.ts +6 -0
- package/src/sync.ts +101 -13
- package/src/types.ts +49 -2
- package/src/utils.ts +6 -2
- package/tests/checkout.spec.ts +118 -2
- package/tests/estimate.spec.ts +240 -0
- package/tests/events.spec.ts +13 -0
- package/tests/fake-stripe.ts +130 -6
- package/tests/portal.spec.ts +19 -2
- package/tests/sync.spec.ts +114 -0
package/build/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AACxE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAA;AACxD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAA;AAC7D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAA;AACpD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAA;AACnD,OAAO,KAAK,EAAE,MAAM,IAAI,SAAS,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,sBAAsB,CAAA;AACtF,OAAO,KAAK,EACV,oBAAoB,EAAE,mBAAmB,EAAE,eAAe,EAAE,gBAAgB,EAAE,SAAS,EACvF,cAAc,EAAE,YAAY,EAAE,UAAU,EAAE,aAAa,EAAE,aAAa,EAAE,OAAO,EAAE,WAAW,EAC5F,WAAW,EAAE,sBAAsB,EAAE,kBAAkB,EACxD,MAAM,mBAAmB,CAAA;AAE1B,MAAM,WAAW,MAAO,SAAQ,SAAS;CAAG;AAC5C,MAAM,WAAW,OAAO,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,CAAE,SAAQ,UAAU,CAAC,CAAC,CAAC;CAAG;AAM5E,MAAM,WAAW,cAAe,SAAQ,OAAO;IAC7C,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAED,MAAM,WAAW,WAAY,SAAQ,WAAW;IAC9C,SAAS,CAAC,EAAE;QAAE,QAAQ,EAAE,OAAO,GAAG,MAAM,CAAA;KAAE,CAAA;IAC1C,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,WAAW,CAAC,EAAE,mBAAmB,CAAA;IACjC,YAAY,CAAC,EAAE,oBAAoB,CAAA;IACnC,cAAc,CAAC,EAAE,sBAAsB,CAAA;CACxC;AAED,MAAM,WAAW,iBAAiB;IAChC,GAAG,EAAE,MAAM,CAAA;IACX,IAAI,EAAE,WAAW,CAAA;IACjB,QAAQ,EAAE,MAAM,EAAE,CAAA;IAClB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAA;IACnB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,YAAY,CAAC,EAAE,aAAa,EAAE,CAAA;CAC/B;AAED,MAAM,WAAW,cAAc;IAC7B,UAAU,EAAE,MAAM,CAAA;IAClB,GAAG,EAAE,MAAM,CAAA;IACX,QAAQ,EAAE,YAAY,CAAA;IACtB,iGAAiG;IACjG,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,sDAAsD;IACtD,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,+FAA+F;IAC/F,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAA;IACnB,oGAAoG;IACpG,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,SAAS,CAAC,EAAE;QAAE,QAAQ,EAAE,OAAO,GAAG,MAAM,CAAA;KAAE,CAAA;IAC1C,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,YAAY,CAAC,EAAE,cAAc,EAAE,CAAA;IAC/B,MAAM,CAAC,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,gBAAgB,CAAA;KAAE,CAAA;IAC5C,WAAW,CAAC,EAAE,mBAAmB,CAAA;IACjC,YAAY,CAAC,EAAE,oBAAoB,CAAA;IACnC,cAAc,CAAC,EAAE,sBAAsB,CAAA;IACvC,sEAAsE;IACtE,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,eAAe,CAAC,EAAE,MAAM,CAAA;CACzB;AAED,gGAAgG;AAChG,MAAM,WAAW,gBAAgB;IAAG,GAAG,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE;AACnE,MAAM,WAAW,kBAAmB,SAAQ,YAAY;IAAG,GAAG,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE;AAE1F,oGAAoG;AACpG,MAAM,WAAW,gBAAgB;IAC/B,0FAA0F;IAC1F,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB;;;OAGG;IACH,kBAAkB,CAAC,EAAE,MAAM,CAAA;IAC3B,0GAA0G;IAC1G,8BAA8B,CAAC,EAAE,MAAM,EAAE,CAAA;IACzC;;;;;OAKG;IACH,wBAAwB,CAAC,EAAE,OAAO,CAAA;CACnC;AACD,MAAM,WAAW,yBAA0B,SAAQ,YAAY,EAAE,gBAAgB;CAAG;AAEpF,sGAAsG;AACtG,MAAM,WAAW,UAAW,SAAQ,aAAa;IAC/C,MAAM,CAAC,EAAE,gBAAgB,CAAA;CAC1B;AAED,4DAA4D;AAC5D,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,sFAAsF;IACtF,SAAS,EAAE,MAAM,CAAA;CAClB;AACD,MAAM,WAAW,oBAAqB,SAAQ,YAAY,EAAE,iBAAiB;CAAG;AAMhF,MAAM,WAAW,gBAAgB;IAC/B,UAAU,EAAE,MAAM,CAAA;IAClB,mFAAmF;IACnF,QAAQ,EAAE,MAAM,CAAA;IAChB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,OAAO,EAAE,MAAM,CAAA;IACf,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAED,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,UAAU,CAAA;IAChB,8CAA8C;IAC9C,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,SAAS,EAAE,MAAM,CAAA;CAClB;AAED,MAAM,WAAW,mBAAmB;IAClC,UAAU,EAAE,MAAM,CAAA;IAClB,mFAAmF;IACnF,QAAQ,EAAE,MAAM,CAAA;IAChB,8EAA8E;IAC9E,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,oFAAoF;IACpF,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB;AAED,MAAM,WAAW,wBAAwB;IACvC,mDAAmD;IACnD,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,qDAAqD;IACrD,SAAS,CAAC,EAAE,IAAI,CAAA;CACjB;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,6CAA6C;IAC7C,cAAc,CAAC,EAAE,MAAM,CAAA;CACxB;AAED,MAAM,WAAW,cAAe,SAAQ,kBAAkB;IACxD,wFAAwF;IACxF,OAAO,EAAE,OAAO,CAAA;IAChB,UAAU,EAAE,CAAC,GAAG,EAAE,UAAU,EAAE,MAAM,EAAE,gBAAgB,KAAK,OAAO,CAAC,MAAM,CAAC,CAAA;IAC1E,UAAU,EAAE,CAAC,GAAG,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,iBAAiB,KAAK,OAAO,CAAC,MAAM,CAAC,CAAA;IAC3F,mEAAmE;IACnE,aAAa,EAAE,CAAC,GAAG,EAAE,UAAU,EAAE,MAAM,EAAE,mBAAmB,KAAK,OAAO,CAAC,aAAa,CAAC,CAAA;IACvF,iBAAiB,EAAE,CACjB,GAAG,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,wBAAwB,KAChF,OAAO,CAAC,yBAAyB,CAAC,CAAA;IACvC,kDAAkD;IAClD,kBAAkB,EAAE,CAAC,GAAG,EAAE,UAAU,EAAE,GAAG,EAAE,eAAe,KAAK,OAAO,CAAC,MAAM,CAAC,CAAA;IAC9E,SAAS,EAAE,CAAC,GAAG,EAAE,UAAU,KAAK,OAAO,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CAC9E;AAED,MAAM,WAAW,qBAAqB;IACpC,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB;;;OAGG;IACH,MAAM,CAAC,EAAE,OAAO,CAAA;CACjB;AAED,8CAA8C;AAC9C,MAAM,MAAM,sBAAsB,GAAG,qBAAqB,CAAA;AAM1D,UAAU,SAAS;IACjB,QAAQ,EAAE,MAAM,CAAA;IAChB,UAAU,EAAE,MAAM,CAAA;IAClB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,OAAO,EAAE,MAAM,CAAA;IACf,OAAO,EAAE,MAAM,CAAA;IACf,yFAAyF;IACzF,UAAU,EAAE,MAAM,CAAA;CACnB;AACD,MAAM,WAAW,uBAAwB,SAAQ,SAAS;IACxD,IAAI,EAAE,UAAU,CAAA;IAChB,KAAK,EAAE,MAAM,CAAA;CACd;AACD,MAAM,WAAW,qBAAsB,SAAQ,SAAS;IACtD,IAAI,EAAE,QAAQ,CAAA;IACd,2DAA2D;IAC3D,WAAW,EAAE,MAAM,CAAA;IACnB,gGAAgG;IAChG,uBAAuB,EAAE,MAAM,CAAA;IAC/B,8CAA8C;IAC9C,cAAc,EAAE,MAAM,CAAA;IACtB,kEAAkE;IAClE,iBAAiB,EAAE,MAAM,CAAA;IACzB,8CAA8C;IAC9C,QAAQ,EAAE,MAAM,CAAA;CACjB;AACD,MAAM,MAAM,eAAe,GAAG,uBAAuB,GAAG,qBAAqB,CAAA;AAE7E,MAAM,MAAM,kBAAkB,GAAG,SAAS,GAAG,SAAS,GAAG,UAAU,GAAG,YAAY,GAAG,kBAAkB,GACnG,eAAe,GAAG,UAAU,GAAG,QAAQ,GAAG,SAAS,GAAG,UAAU,GAAG,WAAW,GAAG,cAAc,CAAA;AAEnG,MAAM,WAAW,oBAAoB;IACnC,QAAQ,EAAE,MAAM,CAAA;IAChB,OAAO,EAAE,MAAM,CAAA;IACf,UAAU,EAAE,MAAM,CAAA;IAClB,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,EAAE,kBAAkB,CAAA;IAC1B,OAAO,EAAE,MAAM,CAAA;IACf,2CAA2C;IAC3C,cAAc,EAAE,MAAM,CAAA;IACtB,OAAO,EAAE,MAAM,CAAA;IACf,WAAW,CAAC,EAAE,IAAI,CAAA;IAClB,SAAS,CAAC,EAAE,IAAI,CAAA;IAChB,iBAAiB,CAAC,EAAE,OAAO,CAAA;IAC3B,QAAQ,CAAC,EAAE,IAAI,CAAA;IACf,QAAQ,CAAC,EAAE,IAAI,CAAA;IACf,SAAS,CAAC,EAAE,IAAI,CAAA;IAChB,YAAY,CAAC,EAAE,cAAc,EAAE,CAAA;IAC/B,MAAM,CAAC,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,gBAAgB,CAAA;KAAE,CAAA;CAC7C;AAED,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,kBAAkB,CAAA;IAC1B,oEAAoE;IACpE,QAAQ,EAAE,oBAAoB,GAAG,IAAI,CAAA;IACrC,OAAO,EAAE,oBAAoB,CAAA;IAC7B,qDAAqD;IACrD,MAAM,EAAE,OAAO,CAAA;IACf,QAAQ,EAAE,MAAM,CAAA;IAChB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,eAAe,CAAC,EAAE,MAAM,CAAA;CACzB;AAED,MAAM,MAAM,iBAAiB,GAAG,aAAa,GAAG,cAAc,CAAA;AAE9D,MAAM,WAAW,WAAW;IAC1B,QAAQ,EAAE,MAAM,CAAA;IAChB,MAAM,EAAE,iBAAiB,CAAA;IACzB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,wEAAwE;IACxE,UAAU,EAAE,MAAM,CAAA;IAClB,QAAQ,EAAE,MAAM,CAAA;IAChB,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,mBAAmB;IACnB,WAAW,EAAE,MAAM,CAAA;IACnB,sEAAsE;IACtE,kBAAkB,EAAE,MAAM,CAAA;IAC1B,mEAAmE;IACnE,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,QAAQ,EAAE,MAAM,CAAA;IAChB,oDAAoD;IACpD,OAAO,EAAE,OAAO,CAAA;IAChB,QAAQ,EAAE,MAAM,CAAA;IAChB,+DAA+D;IAC/D,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,qEAAqE;IACrE,iBAAiB,CAAC,EAAE,MAAM,CAAA;CAC3B;AAED,MAAM,MAAM,YAAY,GAAG,QAAQ,GAAG,iBAAiB,GAAG,kBAAkB,GAAG,QAAQ,CAAA;AAEvF,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,MAAM,CAAA;IAChB,MAAM,EAAE,iBAAiB,CAAA;IACzB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,UAAU,EAAE,MAAM,CAAA;IAClB,SAAS,EAAE,MAAM,CAAA;IACjB,KAAK,EAAE,YAAY,CAAA;IACnB,yEAAyE;IACzE,MAAM,EAAE,MAAM,CAAA;IACd,WAAW,EAAE,MAAM,CAAA;IACnB,QAAQ,EAAE,MAAM,CAAA;IAChB,QAAQ,EAAE,MAAM,CAAA;IAChB,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,iBAAiB,CAAC,EAAE,MAAM,CAAA;CAC3B;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,MAAM,CAAA;IAChB,IAAI,EAAE,UAAU,GAAG,SAAS,CAAA;IAC5B,0CAA0C;IAC1C,UAAU,EAAE,MAAM,CAAA;IAClB,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,aAAa,CAAC,EAAE,IAAI,CAAA;IACpB,QAAQ,EAAE,MAAM,CAAA;CACjB;AAED,MAAM,WAAW,aAAa;IAAG,CAAC,UAAU,EAAE,eAAe,EAAE,GAAG,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;CAAE;AAChG,MAAM,WAAW,oBAAoB;IAAG,CAAC,KAAK,EAAE,iBAAiB,EAAE,GAAG,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;CAAE;AACpG,MAAM,WAAW,cAAc;IAAG,CAAC,KAAK,EAAE,WAAW,EAAE,GAAG,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;CAAE;AACxF,MAAM,WAAW,eAAe;IAAG,CAAC,KAAK,EAAE,YAAY,EAAE,GAAG,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;CAAE;AAC1F,MAAM,WAAW,qBAAqB;IAAG,CAAC,KAAK,EAAE,kBAAkB,EAAE,GAAG,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;CAAE;AAEtG,0FAA0F;AAC1F,MAAM,WAAW,kBAAmB,SAAQ,WAAW;IACrD,OAAO,EAAE,CAAC,EAAE,EAAE,aAAa,KAAK,IAAI,CAAA;IACpC,cAAc,EAAE,CAAC,EAAE,EAAE,oBAAoB,KAAK,IAAI,CAAA;IAClD,QAAQ,EAAE,CAAC,EAAE,EAAE,cAAc,KAAK,IAAI,CAAA;IACtC,SAAS,EAAE,CAAC,EAAE,EAAE,eAAe,KAAK,IAAI,CAAA;IACxC,eAAe,EAAE,CAAC,EAAE,EAAE,qBAAqB,KAAK,IAAI,CAAA;IACpD,cAAc,EAAE,CAAC,UAAU,EAAE,eAAe,EAAE,GAAG,EAAE,UAAU,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IAC/E,qBAAqB,EAAE,CAAC,KAAK,EAAE,iBAAiB,EAAE,GAAG,EAAE,UAAU,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IACnF,eAAe,EAAE,CAAC,KAAK,EAAE,WAAW,EAAE,GAAG,EAAE,UAAU,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IACvE,gBAAgB,EAAE,CAAC,KAAK,EAAE,YAAY,EAAE,GAAG,EAAE,UAAU,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IACzE,sBAAsB,EAAE,CAAC,KAAK,EAAE,kBAAkB,EAAE,GAAG,EAAE,UAAU,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;CACtF;AAMD,MAAM,WAAW,qBAAsB,SAAQ,cAAc;IAC3D,OAAO,EAAE,MAAM,CAAA;IACf,UAAU,EAAE,MAAM,CAAA;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,SAAS,CAAC,EAAE,IAAI,CAAA;CACjB;AACD,MAAM,WAAW,uBAAwB,SAAQ,aAAa,CAAC,qBAAqB,CAAC;IACnF,UAAU,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,qBAAqB,GAAG,IAAI,CAAC,CAAA;IAC1F,QAAQ,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,qBAAqB,GAAG,IAAI,CAAC,CAAA;CACvF;AAED,8DAA8D;AAC9D,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,CAAA;IACf,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,EAAE,kBAAkB,CAAA;IAC1B,iBAAiB,CAAC,EAAE,OAAO,CAAA;IAC3B,QAAQ,CAAC,EAAE,IAAI,CAAA;IACf,+FAA+F;IAC/F,gBAAgB,CAAC,EAAE,MAAM,CAAA;CAC1B;AAED,qHAAqH;AACrH,MAAM,WAAW,yBAA0B,SAAQ,cAAc;IAC/D,QAAQ,EAAE,MAAM,CAAA;IAChB,OAAO,EAAE,MAAM,CAAA;IACf,UAAU,EAAE,MAAM,CAAA;IAClB,OAAO,EAAE,MAAM,CAAA;IACf,OAAO,EAAE,MAAM,CAAA;IACf,UAAU,EAAE,MAAM,CAAA;IAClB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,MAAM,EAAE,kBAAkB,CAAA;IAC1B,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,CAAC,EAAE,IAAI,CAAA;IAClB,SAAS,CAAC,EAAE,IAAI,CAAA;IAChB,iBAAiB,CAAC,EAAE,OAAO,CAAA;IAC3B,UAAU,CAAC,EAAE,IAAI,CAAA;IACjB,OAAO,CAAC,EAAE,IAAI,CAAA;IACd,QAAQ,CAAC,EAAE,IAAI,CAAA;IACf,QAAQ,CAAC,EAAE,IAAI,CAAA;IACf,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,UAAU,CAAC,EAAE,IAAI,CAAA;IACjB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,SAAS,EAAE,IAAI,CAAA;IACf,SAAS,CAAC,EAAE,IAAI,CAAA;IAChB,2FAA2F;IAC3F,QAAQ,CAAC,EAAE,IAAI,CAAA;IACf,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,mBAAmB,CAAC,EAAE,IAAI,CAAA;IAC1B,UAAU,CAAC,EAAE,eAAe,CAAA;CAC7B;AACD,MAAM,WAAW,2BAA4B,SAAQ,aAAa,CAAC,yBAAyB,CAAC;IAC3F,YAAY,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,yBAAyB,GAAG,IAAI,CAAC,CAAA;IAChG,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,yBAAyB,GAAG,IAAI,CAAC,CAAA;CACzF;AAED,wFAAwF;AACxF,MAAM,WAAW,wBAAyB,SAAQ,cAAc;IAC9D,QAAQ,EAAE,MAAM,CAAA;IAChB,UAAU,EAAE,MAAM,CAAA;IAClB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,OAAO,EAAE,MAAM,CAAA;IACf,OAAO,EAAE,MAAM,CAAA;IACf,UAAU,EAAE,MAAM,CAAA;IAClB,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,IAAI,EAAE,mBAAmB,CAAA;IACzB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,uBAAuB,CAAC,EAAE,MAAM,CAAA;IAChC,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,SAAS,EAAE,IAAI,CAAA;IACf,WAAW,CAAC,EAAE,IAAI,CAAA;IAClB,QAAQ,CAAC,EAAE,IAAI,CAAA;IACf,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,UAAU,CAAC,EAAE,IAAI,CAAA;IACjB,UAAU,CAAC,EAAE,IAAI,CAAA;IACjB,aAAa,CAAC,EAAE,MAAM,CAAA;CACvB;AACD,MAAM,WAAW,0BAA2B,SAAQ,aAAa,CAAC,wBAAwB,CAAC;IACzF,YAAY,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,wBAAwB,GAAG,IAAI,CAAC,CAAA;CAChG;AAED,kFAAkF;AAClF,MAAM,WAAW,oBAAqB,SAAQ,cAAc;IAC1D,OAAO,EAAE,MAAM,CAAA;IACf,OAAO,EAAE,MAAM,CAAA;IACf,GAAG,EAAE,MAAM,CAAA;IACX,UAAU,EAAE,MAAM,CAAA;IAClB,MAAM,EAAE,MAAM,CAAA;IACd,UAAU,EAAE,MAAM,CAAA;IAClB,MAAM,EAAE,MAAM,EAAE,CAAA;IAChB,IAAI,EAAE,MAAM,CAAA;IACZ,SAAS,EAAE,IAAI,CAAA;IACf,SAAS,CAAC,EAAE,IAAI,CAAA;CACjB;AACD,MAAM,WAAW,sBAAuB,SAAQ,aAAa,CAAC,oBAAoB,CAAC;CAAG;AAEtF,kEAAkE;AAClE,MAAM,WAAW,kBAAmB,SAAQ,cAAc;IACxD,QAAQ,EAAE,MAAM,CAAA;IAChB,QAAQ,EAAE,MAAM,CAAA;IAChB,6DAA6D;IAC7D,MAAM,EAAE,MAAM,CAAA;IACd,8EAA8E;IAC9E,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,EAAE,MAAM,CAAA;IAChB,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,SAAS,EAAE,IAAI,CAAA;IACf,UAAU,CAAC,EAAE,IAAI,CAAA;CAClB;AACD,MAAM,WAAW,oBAAqB,SAAQ,aAAa,CAAC,kBAAkB,CAAC;CAAG;AAElF,sEAAsE;AACtE,MAAM,WAAW,yBAA0B,SAAQ,cAAc;IAC/D,QAAQ,EAAE,MAAM,CAAA;IAChB,QAAQ,EAAE,MAAM,CAAA;IAChB,MAAM,EAAE,MAAM,CAAA;IACd,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,MAAM,CAAA;IACb,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,SAAS,CAAC,EAAE,IAAI,CAAA;IAChB,SAAS,EAAE,IAAI,CAAA;IACf,YAAY,CAAC,EAAE,IAAI,CAAA;CACpB;AACD,MAAM,WAAW,2BAA4B,SAAQ,aAAa,CAAC,yBAAyB,CAAC;CAAG;AAEhG,MAAM,WAAW,iBAAkB,SAAQ,cAAc;IACvD,GAAG,EAAE,MAAM,CAAA;IACX,IAAI,EAAE,MAAM,CAAA;IACZ,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,gFAAgF;IAChF,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,SAAS,EAAE,IAAI,CAAA;CAChB;AACD,MAAM,WAAW,mBAAoB,SAAQ,aAAa,CAAC,iBAAiB,CAAC;IAC3E,KAAK,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC,CAAA;IACzD,KAAK,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;CAC3B;AAMD,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,WAAW,CAAA;IACjB,6FAA6F;IAC7F,YAAY,EAAE,yBAAyB,GAAG,IAAI,CAAA;IAC9C,+CAA+C;IAC/C,QAAQ,EAAE,WAAW,GAAG,IAAI,CAAA;CAC7B;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,MAAM,CAAA;IAChB,QAAQ,EAAE,MAAM,CAAA;IAChB,gEAAgE;IAChE,QAAQ,EAAE,MAAM,CAAA;IAChB,0CAA0C;IAC1C,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,MAAM,CAAA;IAChB,QAAQ,EAAE,MAAM,CAAA;IAChB,iDAAiD;IACjD,QAAQ,EAAE,MAAM,CAAA;IAChB,oCAAoC;IACpC,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AAED,MAAM,WAAW,YAAY;IAC3B,wEAAwE;IACxE,QAAQ,EAAE,OAAO,CAAA;IACjB,mEAAmE;IACnE,QAAQ,EAAE,OAAO,CAAA;IACjB,QAAQ,EAAE,MAAM,CAAA;IAChB,MAAM,EAAE,MAAM,CAAA;IACd,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,MAAM,CAAA;IACb,SAAS,EAAE,MAAM,CAAA;IACjB,QAAQ,CAAC,EAAE,IAAI,CAAA;IACf,QAAQ,EAAE,MAAM,CAAA;CACjB;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,MAAM,CAAA;IAChB,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,MAAM,CAAA;IACb,8BAA8B;IAC9B,IAAI,EAAE,MAAM,CAAA;IACZ,4EAA4E;IAC5E,SAAS,CAAC,EAAE,IAAI,CAAA;CACjB;AAED,MAAM,WAAW,qBAAqB;IACpC,QAAQ,EAAE,MAAM,CAAA;IAChB,QAAQ,EAAE,MAAM,CAAA;CACjB;AAED,MAAM,WAAW,kBAAmB,SAAQ,kBAAkB;IAC5D,aAAa,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,aAAa,CAAC,CAAA;IAC3D,YAAY,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,eAAe,CAAC,CAAA;IAC5D,aAAa,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAA;IACpE,2BAA2B;IAC3B,UAAU,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,SAAS,CAAC,CAAA;IACjE,4CAA4C;IAC5C,OAAO,EAAE,CAAC,GAAG,EAAE,cAAc,KAAK,OAAO,CAAC,YAAY,CAAC,CAAA;IACvD,OAAO,EAAE,CAAC,GAAG,EAAE,cAAc,KAAK,OAAO,CAAC,YAAY,CAAC,CAAA;IACvD,8CAA8C;IAC9C,kBAAkB,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,gBAAgB,CAAC,CAAA;IACrG,iBAAiB,EAAE,CAAC,QAAQ,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,qBAAqB,CAAC,CAAA;IACxE;;;;;OAKG;IACH,WAAW,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,kBAAkB,GAAG,IAAI,CAAC,CAAA;IACzG;;;;OAIG;IACH,gBAAgB,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,kBAAkB,GAAG,IAAI,CAAC,CAAA;CAC1G;AAED,MAAM,WAAW,sBAAsB;IACrC,yFAAyF;IACzF,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,gFAAgF;IAChF,MAAM,CAAC,EAAE,OAAO,CAAA;CACjB;AAED,MAAM,WAAW,mBAAoB,SAAQ,sBAAsB;IACjE,uEAAuE;IACvE,QAAQ,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,GAAG,aAAa,CAAC,MAAM,CAAC,CAAA;CACpD;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,MAAM,CAAA;IAChB,OAAO,EAAE,MAAM,CAAA;IACf,QAAQ,EAAE,MAAM,CAAA;IAChB,QAAQ,EAAE,MAAM,CAAA;IAChB,MAAM,EAAE,MAAM,CAAA;CACf"}
|
package/build/utils.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import Stripe from 'stripe';
|
|
2
2
|
import type { PaymentService } from '@owlmeans/payment';
|
|
3
3
|
import type { Context as ApiContext } from '@owlmeans/server-api';
|
|
4
|
-
import type { CompletionObserver, EntitlementService, FingerprintResource, GatewayService, PaygateCustomerResource, PaymentFulfillmentResource, PaymentSubscriptionRecord, PaymentSubscriptionResource, PaymentUsageCounterResource, PaymentUsageResource, PaymentWebhookResource, PortalBrandingConfig, StripePluginConfig } from './types.js';
|
|
4
|
+
import type { CompletionObserver, EntitlementService, FingerprintResource, GatewayService, PaygateCustomerResource, PaymentFulfillmentResource, PaymentSubscriptionRecord, PaymentSubscriptionResource, PaymentUsageCounterResource, PaymentUsageResource, PaymentWebhookResource, PortalBrandingConfig, StripePluginConfig, StripePricingPluginConfig } from './types.js';
|
|
5
5
|
export declare const payment: (ctx: ApiContext) => PaymentService;
|
|
6
6
|
export declare const gateway: (ctx: ApiContext) => GatewayService;
|
|
7
7
|
export declare const observer: (ctx: ApiContext) => CompletionObserver;
|
|
@@ -16,6 +16,8 @@ export declare const fingerprints: (ctx: ApiContext) => FingerprintResource;
|
|
|
16
16
|
export declare const stripeConfig: (ctx: ApiContext) => Promise<StripePluginConfig>;
|
|
17
17
|
/** The portal branding declared with `portalBranding`, or `null`. */
|
|
18
18
|
export declare const portalBrandingConfig: (ctx: ApiContext) => Promise<PortalBrandingConfig | null>;
|
|
19
|
+
/** The Stripe-only pricing settings declared with `declarePaymentPricing`, or `null`. */
|
|
20
|
+
export declare const stripePricingConfig: (ctx: ApiContext) => Promise<StripePricingPluginConfig | null>;
|
|
19
21
|
/**
|
|
20
22
|
* A Stripe client pinned to the API version the installed SDK is typed for (its default), so every
|
|
21
23
|
* object shape this package reads is the one the types describe.
|
package/build/utils.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,QAAQ,CAAA;AAI3B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AACvD,OAAO,KAAK,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,sBAAsB,CAAA;AAMjE,OAAO,KAAK,EACV,kBAAkB,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,cAAc,EAAE,uBAAuB,EACpG,0BAA0B,EAAE,yBAAyB,EAAE,2BAA2B,EAClF,2BAA2B,EAAE,oBAAoB,EAAE,sBAAsB,EAAE,oBAAoB,EAC/F,kBAAkB,
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,QAAQ,CAAA;AAI3B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AACvD,OAAO,KAAK,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,sBAAsB,CAAA;AAMjE,OAAO,KAAK,EACV,kBAAkB,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,cAAc,EAAE,uBAAuB,EACpG,0BAA0B,EAAE,yBAAyB,EAAE,2BAA2B,EAClF,2BAA2B,EAAE,oBAAoB,EAAE,sBAAsB,EAAE,oBAAoB,EAC/F,kBAAkB,EAAE,yBAAyB,EAC9C,MAAM,YAAY,CAAA;AAEnB,eAAO,MAAM,OAAO,QAAS,UAAU,KAAG,cAA8D,CAAA;AACxG,eAAO,MAAM,OAAO,QAAS,UAAU,KAAG,cAA8D,CAAA;AACxG,eAAO,MAAM,QAAQ,QAAS,UAAU,KAAG,kBAAuE,CAAA;AAClH,eAAO,MAAM,YAAY,QAAS,UAAU,KAAG,kBACO,CAAA;AAEtD,eAAO,MAAM,gBAAgB,QAAS,UAAU,KAAG,uBACU,CAAA;AAC7D,eAAO,MAAM,aAAa,QAAS,UAAU,KAAG,2BACqB,CAAA;AACrE,eAAO,MAAM,YAAY,QAAS,UAAU,KAAG,0BACoB,CAAA;AACnE,eAAO,MAAM,eAAe,QAAS,UAAU,KAAG,sBACS,CAAA;AAC3D,eAAO,MAAM,WAAW,QAAS,UAAU,KAAG,oBACS,CAAA;AACvD,eAAO,MAAM,aAAa,QAAS,UAAU,KAAG,2BACsB,CAAA;AACtE,eAAO,MAAM,YAAY,QAAS,UAAU,KAAG,mBACa,CAAA;AAO5D,eAAO,MAAM,YAAY,QAAe,UAAU,KAAG,OAAO,CAAC,kBAAkB,CACkC,CAAA;AAEjH,qEAAqE;AACrE,eAAO,MAAM,oBAAoB,QAAe,UAAU,KAAG,OAAO,CAAC,oBAAoB,GAAG,IAAI,CACkC,CAAA;AAElI,yFAAyF;AACzF,eAAO,MAAM,mBAAmB,QAAe,UAAU,KAAG,OAAO,CAAC,yBAAyB,GAAG,IAAI,CACoC,CAAA;AAExI;;;GAGG;AACH,eAAO,MAAM,YAAY,QAAe,UAAU,KAAG,OAAO,CAAC,MAAM,CAA8C,CAAA;AAEjH;;;GAGG;AACH,eAAO,MAAM,YAAY,WAAY,MAAM,KAAG,MAO7C,CAAA;AAED,eAAO,MAAM,cAAc,UAAW,OAAO,KAAG,OACoB,CAAA;AAEpE,kFAAkF;AAClF,eAAO,MAAM,eAAe,UAAW,OAAO,KAAG,OAGhD,CAAA;AAED,8DAA8D;AAC9D,eAAO,MAAM,IAAI,UAAW,MAAM,GAAG;IAAE,EAAE,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,GAAG,SAAS,KAAG,MAAM,GAAG,SACT,CAAA;AAE1E,8BAA8B;AAC9B,eAAO,MAAM,MAAM,YAAa,MAAM,GAAG,IAAI,GAAG,SAAS,KAAG,IAAI,GAAG,SACX,CAAA;AAExD,qGAAqG;AACrG,eAAO,MAAM,OAAO,GAAI,CAAC,SAAS,MAAM,SAAS,CAAC,KAAG,CACgC,CAAA;AAErF,yEAAyE;AACzE,eAAO,MAAM,kBAAkB,QACxB,UAAU,YAAY,MAAM,cAAc,MAAM,KACpD,OAAO,CAAC,yBAAyB,GAAG,IAAI,CAE4C,CAAA"}
|
package/build/utils.js
CHANGED
|
@@ -2,7 +2,7 @@ import Stripe from 'stripe';
|
|
|
2
2
|
import { PLUGINS } from '@owlmeans/config';
|
|
3
3
|
import { MONGO_DUPLICATE_KEY } from '@owlmeans/mongo-resource';
|
|
4
4
|
import { DEFAULT_ALIAS as PAYMENT_SERVICE, ENTITLING_STATUSES, WebhookSetupError } from '@owlmeans/payment';
|
|
5
|
-
import { ENTITLEMENT_SERVICE, GATEWAY_SERVICE, PAYMENT_OBSERVER, RES_PAYGATE_CUSTOMER, RES_PAYMENT_FINGERPRINT, RES_PAYMENT_FULFILLMENT, RES_PAYMENT_SUBSCRIPTION, RES_PAYMENT_USAGE, RES_PAYMENT_USAGE_COUNTER, RES_PAYMENT_WEBHOOK, STRIPE_PLUGIN_CONFIG, STRIPE_PORTAL_PLUGIN_CONFIG, } from './consts.js';
|
|
5
|
+
import { ENTITLEMENT_SERVICE, GATEWAY_SERVICE, PAYMENT_OBSERVER, RES_PAYGATE_CUSTOMER, RES_PAYMENT_FINGERPRINT, RES_PAYMENT_FULFILLMENT, RES_PAYMENT_SUBSCRIPTION, RES_PAYMENT_USAGE, RES_PAYMENT_USAGE_COUNTER, RES_PAYMENT_WEBHOOK, STRIPE_PLUGIN_CONFIG, STRIPE_PORTAL_PLUGIN_CONFIG, STRIPE_PRICING_PLUGIN_CONFIG, } from './consts.js';
|
|
6
6
|
export const payment = (ctx) => ctx.service(PAYMENT_SERVICE);
|
|
7
7
|
export const gateway = (ctx) => ctx.service(GATEWAY_SERVICE);
|
|
8
8
|
export const observer = (ctx) => ctx.service(PAYMENT_OBSERVER);
|
|
@@ -17,6 +17,8 @@ export const fingerprints = (ctx) => ctx.resource(RES_PAYMENT_FINGERPRINT);
|
|
|
17
17
|
export const stripeConfig = async (ctx) => await ctx.getConfigResource(PLUGINS).get(STRIPE_PLUGIN_CONFIG);
|
|
18
18
|
/** The portal branding declared with `portalBranding`, or `null`. */
|
|
19
19
|
export const portalBrandingConfig = async (ctx) => await ctx.getConfigResource(PLUGINS).load(STRIPE_PORTAL_PLUGIN_CONFIG);
|
|
20
|
+
/** The Stripe-only pricing settings declared with `declarePaymentPricing`, or `null`. */
|
|
21
|
+
export const stripePricingConfig = async (ctx) => await ctx.getConfigResource(PLUGINS).load(STRIPE_PRICING_PLUGIN_CONFIG);
|
|
20
22
|
/**
|
|
21
23
|
* A Stripe client pinned to the API version the installed SDK is typed for (its default), so every
|
|
22
24
|
* object shape this package reads is the one the types describe.
|
package/build/utils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,QAAQ,CAAA;AAC3B,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAA;AAC1C,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAA;AAC9D,OAAO,EAAE,aAAa,IAAI,eAAe,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAA;AAG3G,OAAO,EACL,mBAAmB,EAAE,eAAe,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,uBAAuB,EACrG,uBAAuB,EAAE,wBAAwB,EAAE,iBAAiB,EAAE,yBAAyB,EAC/F,mBAAmB,EAAE,oBAAoB,EAAE,2BAA2B,
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@owlmeans/server-payment",
|
|
3
|
-
"version": "0.1.18-rc.
|
|
3
|
+
"version": "0.1.18-rc.13",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"description": "Protocol-bound payment resources, entitlement gates, and Stripe checkout for OwlMeans servers.",
|
|
6
6
|
"type": "module",
|
|
@@ -26,26 +26,26 @@
|
|
|
26
26
|
"ajv": "*"
|
|
27
27
|
},
|
|
28
28
|
"dependencies": {
|
|
29
|
-
"@owlmeans/auth": "^0.1.18-rc.
|
|
30
|
-
"@owlmeans/config": "^0.1.18-rc.
|
|
31
|
-
"@owlmeans/context": "^0.1.18-rc.
|
|
32
|
-
"@owlmeans/entrypoint": "^0.1.18-rc.
|
|
33
|
-
"@owlmeans/iam": "^0.1.18-rc.
|
|
34
|
-
"@owlmeans/mongo-resource": "^0.1.18-rc.
|
|
35
|
-
"@owlmeans/payment": "^0.1.18-rc.
|
|
36
|
-
"@owlmeans/resource": "^0.1.18-rc.
|
|
37
|
-
"@owlmeans/route": "^0.1.18-rc.
|
|
38
|
-
"@owlmeans/server-api": "^0.1.18-rc.
|
|
39
|
-
"@owlmeans/server-app": "^0.1.18-rc.
|
|
40
|
-
"@owlmeans/server-context": "^0.1.18-rc.
|
|
41
|
-
"@owlmeans/server-entrypoint": "^0.1.18-rc.
|
|
29
|
+
"@owlmeans/auth": "^0.1.18-rc.28",
|
|
30
|
+
"@owlmeans/config": "^0.1.18-rc.30",
|
|
31
|
+
"@owlmeans/context": "^0.1.18-rc.26",
|
|
32
|
+
"@owlmeans/entrypoint": "^0.1.18-rc.29",
|
|
33
|
+
"@owlmeans/iam": "^0.1.18-rc.33",
|
|
34
|
+
"@owlmeans/mongo-resource": "^0.1.18-rc.29",
|
|
35
|
+
"@owlmeans/payment": "^0.1.18-rc.31",
|
|
36
|
+
"@owlmeans/resource": "^0.1.18-rc.28",
|
|
37
|
+
"@owlmeans/route": "^0.1.18-rc.27",
|
|
38
|
+
"@owlmeans/server-api": "^0.1.18-rc.34",
|
|
39
|
+
"@owlmeans/server-app": "^0.1.18-rc.34",
|
|
40
|
+
"@owlmeans/server-context": "^0.1.18-rc.29",
|
|
41
|
+
"@owlmeans/server-entrypoint": "^0.1.18-rc.28",
|
|
42
42
|
"async-mutex": "^0.5.0",
|
|
43
43
|
"stripe": "^17.7.0"
|
|
44
44
|
},
|
|
45
45
|
"devDependencies": {
|
|
46
46
|
"@owlmeans/dep-config": "workspace:*",
|
|
47
|
-
"@owlmeans/mongo": "^0.1.18-rc.
|
|
48
|
-
"@owlmeans/test-integration": "^0.1.18-rc.
|
|
47
|
+
"@owlmeans/mongo": "^0.1.18-rc.28",
|
|
48
|
+
"@owlmeans/test-integration": "^0.1.18-rc.23",
|
|
49
49
|
"@types/bun": "^1.4.0",
|
|
50
50
|
"@types/node": "^26.1.0",
|
|
51
51
|
"nodemon": "^3.1.14",
|
package/src/config.ts
CHANGED
|
@@ -1,15 +1,18 @@
|
|
|
1
1
|
import { toConfigRecord } from '@owlmeans/server-app'
|
|
2
2
|
import { plugin } from '@owlmeans/config'
|
|
3
3
|
import {
|
|
4
|
-
assertAmountCheckoutPolicy, assertQuantityCheckoutPolicy, CAPABILITY_LIMIT_SCOPE,
|
|
5
|
-
LimitKind, LimitMisdeclared, LimitWindow, PLAN_RECORD_PREFIX, PLAN_RECORD_TYPE,
|
|
6
|
-
PlanRankConflict, PlanStatus,
|
|
4
|
+
assertAmountCheckoutPolicy, assertPricingPolicy, assertQuantityCheckoutPolicy, CAPABILITY_LIMIT_SCOPE,
|
|
5
|
+
CheckoutPricingMode, LimitKind, LimitMisdeclared, LimitWindow, PLAN_RECORD_PREFIX, PLAN_RECORD_TYPE,
|
|
6
|
+
PaymentError, PlanDuration, PlanRankConflict, PlanStatus, PRICING_POLICY_RECORD_ID, PRICING_POLICY_RECORD_TYPE,
|
|
7
|
+
PRODUCT_RECORD_PREFIX, PRODUCT_RECORD_TYPE,
|
|
7
8
|
} from '@owlmeans/payment'
|
|
8
9
|
import type { LimitDeclaration } from '@owlmeans/payment'
|
|
9
|
-
import {
|
|
10
|
+
import {
|
|
11
|
+
STRIPE_PAYGATE_ALIAS, STRIPE_PLUGIN_CONFIG, STRIPE_PORTAL_PLUGIN_CONFIG, STRIPE_PRICING_PLUGIN_CONFIG,
|
|
12
|
+
} from './consts.js'
|
|
10
13
|
import type {
|
|
11
14
|
Config, PaymentPlan, PaymentPlanDef, PaymentProduct, PaymentProductDef, PortalBrandingDef,
|
|
12
|
-
StripeSecretsDef,
|
|
15
|
+
PricingDef, StripeSecretsDef,
|
|
13
16
|
} from './types.js'
|
|
14
17
|
|
|
15
18
|
export const declarePaymentProduct = (cfg: Config, def: PaymentProductDef): void => {
|
|
@@ -161,3 +164,42 @@ export const portalBranding = (cfg: Config, def: PortalBrandingDef): void => {
|
|
|
161
164
|
...(def.termsOfServiceUrl != null ? { termsOfServiceUrl: def.termsOfServiceUrl } : {}),
|
|
162
165
|
}, STRIPE_PORTAL_PLUGIN_CONFIG)
|
|
163
166
|
}
|
|
167
|
+
|
|
168
|
+
/**
|
|
169
|
+
* Declare the pricing policy: whether checkout collects tax and a VAT/GST id, what `tax_behavior`
|
|
170
|
+
* synced prices are given, Adaptive Pricing, and whether the estimate endpoints are served. A
|
|
171
|
+
* config never carries more than one — a second call replaces the first, so re-declaring (a test, a
|
|
172
|
+
* config module re-run) is safe rather than silently ignored (a config resource resolves an id to
|
|
173
|
+
* its FIRST match).
|
|
174
|
+
*
|
|
175
|
+
* `def.stripe` (the FX Quotes preview version, the unspecified-price migration switch) is
|
|
176
|
+
* Stripe-only and goes to a backend plugin, never the advertised `PricingPolicy` record.
|
|
177
|
+
*
|
|
178
|
+
* @throws PaymentError (`assertPricingPolicy`) when an estimate is declared without the tax or
|
|
179
|
+
* currency capability it requires.
|
|
180
|
+
*/
|
|
181
|
+
export const declarePaymentPricing = (cfg: Config, def: PricingDef): void => {
|
|
182
|
+
const { stripe, ...policy } = def
|
|
183
|
+
assertPricingPolicy(policy)
|
|
184
|
+
cfg.records = (cfg.records ?? []).filter(record => record.id !== PRICING_POLICY_RECORD_ID)
|
|
185
|
+
cfg.records.push({
|
|
186
|
+
...toConfigRecord(policy), recordType: PRICING_POLICY_RECORD_TYPE, id: PRICING_POLICY_RECORD_ID,
|
|
187
|
+
})
|
|
188
|
+
if (stripe != null) {
|
|
189
|
+
const settlementCurrency = stripe.settlementCurrency?.toLowerCase()
|
|
190
|
+
if (settlementCurrency != null && !/^[a-z]{3}$/.test(settlementCurrency)) {
|
|
191
|
+
throw new PaymentError('pricing-policy:settlement-currency')
|
|
192
|
+
}
|
|
193
|
+
const subscriptionPaymentMethodTypes = stripe.subscriptionPaymentMethodTypes?.map(type => type.toLowerCase())
|
|
194
|
+
if (subscriptionPaymentMethodTypes != null && (subscriptionPaymentMethodTypes.length === 0
|
|
195
|
+
|| subscriptionPaymentMethodTypes.some(type => !/^[a-z][a-z0-9_]*$/.test(type))
|
|
196
|
+
|| new Set(subscriptionPaymentMethodTypes).size !== subscriptionPaymentMethodTypes.length)) {
|
|
197
|
+
throw new PaymentError('pricing-policy:subscription-payment-methods')
|
|
198
|
+
}
|
|
199
|
+
plugin(cfg, {
|
|
200
|
+
...stripe,
|
|
201
|
+
...(settlementCurrency != null ? { settlementCurrency } : {}),
|
|
202
|
+
...(subscriptionPaymentMethodTypes != null ? { subscriptionPaymentMethodTypes } : {}),
|
|
203
|
+
}, STRIPE_PRICING_PLUGIN_CONFIG)
|
|
204
|
+
}
|
|
205
|
+
}
|
package/src/consts.ts
CHANGED
|
@@ -9,7 +9,18 @@ export { INTERNAL_PAYGATE, LIMIT_GATE }
|
|
|
9
9
|
export const STRIPE_PAYGATE_ALIAS = 'stripe'
|
|
10
10
|
export const STRIPE_PLUGIN_CONFIG = '_external:stripe'
|
|
11
11
|
export const STRIPE_PORTAL_PLUGIN_CONFIG = '_external:stripe-portal'
|
|
12
|
+
/** Stripe-only pricing settings (FX Quotes API version, the unspecified-price migration switch) — never advertised to the browser, unlike the `PricingPolicy` record itself. */
|
|
13
|
+
export const STRIPE_PRICING_PLUGIN_CONFIG = '_external:stripe-pricing'
|
|
12
14
|
export const STRIPE_SIGNATURE = 'Stripe-Signature'
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* The FX Quotes API is a Stripe PREVIEW endpoint as of this writing: it answers only a
|
|
18
|
+
* `Stripe-Version` header naming a preview version, never the SDK's pinned stable one. Verify this
|
|
19
|
+
* string against https://docs.stripe.com/api/fx_quotes/create before relying on it, and override it
|
|
20
|
+
* with `declarePaymentPricing({ stripe: { fxApiVersion } })` once Stripe moves the API or renames
|
|
21
|
+
* the preview.
|
|
22
|
+
*/
|
|
23
|
+
export const STRIPE_FX_QUOTES_API_VERSION = '2025-07-30.preview'
|
|
13
24
|
export const GATEWAY_SERVICE = 'payment-gateway'
|
|
14
25
|
export const PAYMENT_OBSERVER = 'payment-observer'
|
|
15
26
|
export const ENTITLEMENT_SERVICE = 'payment-entitlement'
|
package/src/index.ts
CHANGED
|
@@ -17,6 +17,8 @@ export {
|
|
|
17
17
|
export type { CommitOptions, CommitResult } from './subscription.js'
|
|
18
18
|
export { planLookupKey, syncPaymentProducts, syncStripeProducts } from './sync.js'
|
|
19
19
|
export { amountCheckoutLineItem, quantityCheckoutLineItem } from './plugins/stripe.js'
|
|
20
|
+
export { makeEstimateCache, estimateStripePrice } from './plugins/estimate.js'
|
|
21
|
+
export type { EstimateCache } from './plugins/estimate.js'
|
|
20
22
|
export { applySubscription, createEventHandler, mapStatus } from './plugins/events.js'
|
|
21
23
|
export type { ApplyOptions } from './plugins/events.js'
|
|
22
24
|
export {
|
package/src/model.ts
CHANGED
|
@@ -63,7 +63,8 @@ export const PaymentFulfillmentSchema = {
|
|
|
63
63
|
properties: {
|
|
64
64
|
id, entityId: str, productSku: str, planSku: optStr, service: str, paygate: str, externalId: str,
|
|
65
65
|
paymentIntentId: optStr, chargeId: optStr, invoiceId: optStr, mode: CheckoutPricingModeSchema,
|
|
66
|
-
units: optNum, amountMinor: optNum,
|
|
66
|
+
units: optNum, amountMinor: optNum, sourceChargeAmountMinor: optNum, amountCurrency: optStr,
|
|
67
|
+
chargeAmountMinor: optNum, currency: optStr, createdAt: date,
|
|
67
68
|
fulfilledAt: optDate, failedAt: optDate, refundedMinor: optNum, refundedAt: optDate,
|
|
68
69
|
disputedAt: optDate, disputeStatus: optStr,
|
|
69
70
|
},
|
|
@@ -0,0 +1,299 @@
|
|
|
1
|
+
import type Stripe from 'stripe'
|
|
2
|
+
import {
|
|
3
|
+
chargeAmountMinor, CheckoutPricingMode, currencyOfCountry, ProductError, ratePpmOf, TaxBehavior,
|
|
4
|
+
TaxEstimateStatus, TaxType, UnknownProduct,
|
|
5
|
+
} from '@owlmeans/payment'
|
|
6
|
+
import type { PriceEstimate, TaxEstimate, TaxRateEstimate } from '@owlmeans/payment'
|
|
7
|
+
import type { Context as ApiContext } from '@owlmeans/server-api'
|
|
8
|
+
import { STRIPE_FX_QUOTES_API_VERSION, STRIPE_PAYGATE_ALIAS } from '../consts.js'
|
|
9
|
+
import { findProduct } from '../plan.js'
|
|
10
|
+
import { isSoldThrough } from '../sync.js'
|
|
11
|
+
import { isMissingObject, paygateCustomers, payment, stripePricingConfig } from '../utils.js'
|
|
12
|
+
import type { PaymentPlan, PaymentProduct, PriceEstimateParams } from '../types.js'
|
|
13
|
+
import { stripeFxRate } from './fx.js'
|
|
14
|
+
|
|
15
|
+
// -------------------------------------------------------------------------------------------
|
|
16
|
+
// Cache — one instance per gateway service, never module-level (a test builds many contexts in
|
|
17
|
+
// one process, and a module-level cache would make "no Stripe call" assertions order-dependent).
|
|
18
|
+
// -------------------------------------------------------------------------------------------
|
|
19
|
+
|
|
20
|
+
interface CacheEntry<T> { value: T; expiresAt: number }
|
|
21
|
+
|
|
22
|
+
export interface EstimateCache {
|
|
23
|
+
taxTtlMs: number
|
|
24
|
+
fxTtlMs: number
|
|
25
|
+
customerTtlMs: number
|
|
26
|
+
tax: Map<string, CacheEntry<TaxOutcome>>
|
|
27
|
+
fx: Map<string, CacheEntry<FxOutcome>>
|
|
28
|
+
customer: Map<string, CacheEntry<Stripe.Customer | null>>
|
|
29
|
+
inflight: Map<string, Promise<unknown>>
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
/** @param taxTtlMs default 24h; @param fxTtlMs default 1h; @param customerTtlMs default 5min. */
|
|
33
|
+
export const makeEstimateCache = (
|
|
34
|
+
taxTtlMs: number = 24 * 60 * 60 * 1_000, fxTtlMs: number = 60 * 60 * 1_000,
|
|
35
|
+
customerTtlMs: number = 5 * 60 * 1_000,
|
|
36
|
+
): EstimateCache => ({
|
|
37
|
+
taxTtlMs, fxTtlMs, customerTtlMs, tax: new Map(), fx: new Map(), customer: new Map(), inflight: new Map(),
|
|
38
|
+
})
|
|
39
|
+
|
|
40
|
+
/**
|
|
41
|
+
* A keyed value cached for `ttlMs`, with in-flight requests shared across concurrent callers. Only
|
|
42
|
+
* a settled (resolved) outcome is cached — a thrown error (a rate limit, a dropped connection) never
|
|
43
|
+
* is, so the next call simply tries again.
|
|
44
|
+
*/
|
|
45
|
+
const cached = async <T>(
|
|
46
|
+
store: Map<string, CacheEntry<T>>, inflight: Map<string, Promise<unknown>>,
|
|
47
|
+
key: string, ttlMs: number, factory: () => Promise<T>,
|
|
48
|
+
): Promise<T> => {
|
|
49
|
+
const now = Date.now()
|
|
50
|
+
const hit = store.get(key)
|
|
51
|
+
if (hit != null && hit.expiresAt > now) {
|
|
52
|
+
return hit.value
|
|
53
|
+
}
|
|
54
|
+
const pending = inflight.get(key) as Promise<T> | undefined
|
|
55
|
+
if (pending != null) {
|
|
56
|
+
return pending
|
|
57
|
+
}
|
|
58
|
+
const promise = factory().then(value => {
|
|
59
|
+
store.set(key, { value, expiresAt: Date.now() + ttlMs })
|
|
60
|
+
inflight.delete(key)
|
|
61
|
+
return value
|
|
62
|
+
}).catch(error => {
|
|
63
|
+
inflight.delete(key)
|
|
64
|
+
throw error
|
|
65
|
+
})
|
|
66
|
+
inflight.set(key, promise)
|
|
67
|
+
return promise
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
// -------------------------------------------------------------------------------------------
|
|
71
|
+
// Customer lookup — the fallback country and the tax ids a request-given country still checks.
|
|
72
|
+
// -------------------------------------------------------------------------------------------
|
|
73
|
+
|
|
74
|
+
const cachedCustomer = async (
|
|
75
|
+
ctx: ApiContext, stripe: Stripe, entityId: string, cache: EstimateCache,
|
|
76
|
+
): Promise<Stripe.Customer | null> => cached(cache.customer, cache.inflight, `customer:${entityId}`, cache.customerTtlMs, async () => {
|
|
77
|
+
const record = await paygateCustomers(ctx).byEntity(entityId, STRIPE_PAYGATE_ALIAS)
|
|
78
|
+
if (record == null || record.deletedAt != null) {
|
|
79
|
+
return null
|
|
80
|
+
}
|
|
81
|
+
try {
|
|
82
|
+
const retrieved = await stripe.customers.retrieve(record.externalId, { expand: ['tax_ids'] })
|
|
83
|
+
return (retrieved as Stripe.DeletedCustomer).deleted ? null : retrieved as Stripe.Customer
|
|
84
|
+
} catch (error) {
|
|
85
|
+
if (isMissingObject(error)) return null
|
|
86
|
+
throw error
|
|
87
|
+
}
|
|
88
|
+
})
|
|
89
|
+
|
|
90
|
+
// -------------------------------------------------------------------------------------------
|
|
91
|
+
// Tax
|
|
92
|
+
// -------------------------------------------------------------------------------------------
|
|
93
|
+
|
|
94
|
+
type TaxOutcome = { ok: true; calculation: Stripe.Tax.Calculation } | { ok: false; code?: string }
|
|
95
|
+
|
|
96
|
+
/** A duck-typed check, matching `isMissingObject` above: the installed SDK's own error classes. */
|
|
97
|
+
const isInvalidRequest = (error: unknown): error is { code?: string } =>
|
|
98
|
+
(error as { type?: unknown } | null)?.type === 'StripeInvalidRequestError'
|
|
99
|
+
|
|
100
|
+
const NON_SCALABLE_REASONS = new Set([
|
|
101
|
+
'portion_product_exempt', 'portion_reduced_rated', 'portion_standard_rated', 'taxable_basis_reduced',
|
|
102
|
+
'proportionally_rated',
|
|
103
|
+
])
|
|
104
|
+
|
|
105
|
+
/** A linear percentage rate scales with the amount; a flat fee, a partial exemption, or several inclusive rates do not. */
|
|
106
|
+
const scalableOf = (breakdown: Stripe.Tax.Calculation.TaxBreakdown[], behavior: TaxBehavior): boolean => {
|
|
107
|
+
if (breakdown.some(row => row.tax_rate_details?.rate_type === 'flat_amount')) return false
|
|
108
|
+
if (breakdown.some(row => NON_SCALABLE_REASONS.has(row.taxability_reason))) return false
|
|
109
|
+
if (behavior === TaxBehavior.Inclusive && breakdown.length > 1) return false
|
|
110
|
+
return true
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
const statusOf = (breakdown: Stripe.Tax.Calculation.TaxBreakdown[], taxMinor: number): TaxEstimateStatus => {
|
|
114
|
+
if (breakdown.some(row => row.taxability_reason === 'reverse_charge')) return TaxEstimateStatus.ReverseCharge
|
|
115
|
+
if (taxMinor > 0) return TaxEstimateStatus.Taxed
|
|
116
|
+
if (breakdown.some(row => row.taxability_reason === 'not_supported')) return TaxEstimateStatus.AtCheckout
|
|
117
|
+
return TaxEstimateStatus.None
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
const TAX_TYPE_MAP: Readonly<Record<string, TaxType>> = Object.freeze({
|
|
121
|
+
vat: TaxType.Vat, gst: TaxType.Gst, sales_tax: TaxType.SalesTax,
|
|
122
|
+
})
|
|
123
|
+
|
|
124
|
+
const taxTypeOf = (raw: string | null | undefined): TaxType => raw != null && raw in TAX_TYPE_MAP ? TAX_TYPE_MAP[raw] : TaxType.Tax
|
|
125
|
+
|
|
126
|
+
const ratesOf = (breakdown: Stripe.Tax.Calculation.TaxBreakdown[]): TaxRateEstimate[] => breakdown
|
|
127
|
+
.filter((row): row is Stripe.Tax.Calculation.TaxBreakdown & {
|
|
128
|
+
tax_rate_details: NonNullable<Stripe.Tax.Calculation.TaxBreakdown['tax_rate_details']>
|
|
129
|
+
} => row.tax_rate_details != null)
|
|
130
|
+
.map(row => ({
|
|
131
|
+
type: taxTypeOf(row.tax_rate_details.tax_type),
|
|
132
|
+
percentage: row.tax_rate_details.percentage_decimal,
|
|
133
|
+
ratePpm: ratePpmOf(row.tax_rate_details.percentage_decimal),
|
|
134
|
+
...(row.tax_rate_details.country != null ? { country: row.tax_rate_details.country } : {}),
|
|
135
|
+
...(row.tax_rate_details.state != null ? { state: row.tax_rate_details.state } : {}),
|
|
136
|
+
}))
|
|
137
|
+
|
|
138
|
+
const taxEstimateOf = (calculation: Stripe.Tax.Calculation, behavior: TaxBehavior, subtotalMinor: number): TaxEstimate => {
|
|
139
|
+
const breakdown = calculation.tax_breakdown ?? []
|
|
140
|
+
const taxMinor = calculation.tax_amount_exclusive + calculation.tax_amount_inclusive
|
|
141
|
+
const status = statusOf(breakdown, taxMinor)
|
|
142
|
+
|
|
143
|
+
return {
|
|
144
|
+
status, subtotalMinor, taxMinor, totalMinor: calculation.amount_total,
|
|
145
|
+
scalable: scalableOf(breakdown, behavior), rates: ratesOf(breakdown),
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
/** The reference amount and currency of the estimate: an amount plan's default preset, else the plan's own price. */
|
|
150
|
+
const referenceOf = (plan: PaymentPlan): { subtotalMinor: number; currency: string } => {
|
|
151
|
+
if (plan.pricingMode === CheckoutPricingMode.Amount) {
|
|
152
|
+
if (plan.amountPolicy == null) throw new ProductError(`amount-policy:${plan.sku}`)
|
|
153
|
+
return {
|
|
154
|
+
subtotalMinor: chargeAmountMinor(plan.amountPolicy.defaultMinor, plan.amountPolicy),
|
|
155
|
+
currency: plan.amountPolicy.currency.toLowerCase(),
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
return { subtotalMinor: Math.round(plan.price * 100), currency: (plan.currency ?? 'usd').toLowerCase() }
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
/** A placeholder estimate — no known tax, shown by its `status`, never by its zeroed numbers. */
|
|
162
|
+
const unresolvedEstimate = (status: TaxEstimateStatus, subtotalMinor: number): TaxEstimate => ({
|
|
163
|
+
status, subtotalMinor, taxMinor: 0, totalMinor: subtotalMinor, scalable: false, rates: [],
|
|
164
|
+
})
|
|
165
|
+
|
|
166
|
+
// -------------------------------------------------------------------------------------------
|
|
167
|
+
// Currency (Stripe FX Quotes, a PREVIEW endpoint — see `STRIPE_FX_QUOTES_API_VERSION`)
|
|
168
|
+
// -------------------------------------------------------------------------------------------
|
|
169
|
+
|
|
170
|
+
type FxOutcome = { currency: string; exchangeRate: number; fxFeeRate?: number } | null
|
|
171
|
+
|
|
172
|
+
const fetchFxRate = async (
|
|
173
|
+
stripe: Stripe, currency: string, localCurrency: string, apiVersion: string,
|
|
174
|
+
settlementCurrency: string = currency,
|
|
175
|
+
): Promise<FxOutcome> => {
|
|
176
|
+
const settlement = settlementCurrency.toLowerCase()
|
|
177
|
+
const sourceRate = settlement === currency
|
|
178
|
+
? { referenceRate: 1 }
|
|
179
|
+
: await stripeFxRate(stripe, currency, settlement, apiVersion)
|
|
180
|
+
if (sourceRate == null) return null
|
|
181
|
+
if (localCurrency === settlement) {
|
|
182
|
+
return { currency: localCurrency, exchangeRate: 1 / sourceRate.referenceRate }
|
|
183
|
+
}
|
|
184
|
+
const localRate = await stripeFxRate(stripe, localCurrency, settlement, apiVersion)
|
|
185
|
+
if (localRate == null) return null
|
|
186
|
+
return {
|
|
187
|
+
currency: localCurrency, exchangeRate: localRate.exchangeRate / sourceRate.referenceRate,
|
|
188
|
+
...(localRate.fxFeeRate != null ? { fxFeeRate: localRate.fxFeeRate } : {}),
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
|
|
192
|
+
// -------------------------------------------------------------------------------------------
|
|
193
|
+
|
|
194
|
+
/**
|
|
195
|
+
* A Stripe Tax estimate (and, when the pricing policy asks for it, a local-currency conversion) for
|
|
196
|
+
* one product/plan, at a billing country the request names or the entity's paygate customer does.
|
|
197
|
+
*
|
|
198
|
+
* Costs one Tax Calculation API call ($0.05) per distinct (currency, country, amount, tax code,
|
|
199
|
+
* behavior, matching tax ids) within `cache`'s TTL, and one free FX Quotes call per distinct
|
|
200
|
+
* (currency, local currency) — never more, and never for a rate-limit or connection error, which is
|
|
201
|
+
* never cached.
|
|
202
|
+
*/
|
|
203
|
+
export const estimateStripePrice = async (
|
|
204
|
+
ctx: ApiContext, stripe: Stripe, params: PriceEstimateParams, cache: EstimateCache,
|
|
205
|
+
): Promise<PriceEstimate> => {
|
|
206
|
+
const product = await findProduct(ctx, params.productSku) as PaymentProduct | null
|
|
207
|
+
if (product == null) throw new UnknownProduct(params.productSku)
|
|
208
|
+
const plans = (await payment(ctx).allPlans(product.sku) as PaymentPlan[])
|
|
209
|
+
.filter(plan => isSoldThrough(product, plan, STRIPE_PAYGATE_ALIAS))
|
|
210
|
+
const plan = params.planSku != null
|
|
211
|
+
? plans.find(item => item.sku === params.planSku)
|
|
212
|
+
: plans.find(item => item.recurring != null) ?? plans[0]
|
|
213
|
+
if (plan == null) throw new ProductError(params.planSku != null ? `plan:${params.planSku}` : 'plan')
|
|
214
|
+
|
|
215
|
+
const pricing = await payment(ctx).pricingPolicy()
|
|
216
|
+
const behavior = pricing.tax.behavior ?? TaxBehavior.Exclusive
|
|
217
|
+
const { subtotalMinor, currency } = referenceOf(plan)
|
|
218
|
+
|
|
219
|
+
let country = params.country?.toUpperCase()
|
|
220
|
+
let source: 'request' | 'customer' | undefined = country != null ? 'request' : undefined
|
|
221
|
+
let matchingTaxIds: Array<{ type: string; value: string }> = []
|
|
222
|
+
let taxabilityOverride: 'customer_exempt' | 'reverse_charge' | undefined
|
|
223
|
+
|
|
224
|
+
const customer = await cachedCustomer(ctx, stripe, params.entityId, cache)
|
|
225
|
+
if (customer != null) {
|
|
226
|
+
if (country == null && customer.address?.country != null) {
|
|
227
|
+
country = customer.address.country
|
|
228
|
+
source = 'customer'
|
|
229
|
+
}
|
|
230
|
+
if (country != null) {
|
|
231
|
+
matchingTaxIds = (customer.tax_ids?.data ?? [])
|
|
232
|
+
.filter(taxId => taxId.country === country)
|
|
233
|
+
.map(taxId => ({ type: taxId.type, value: taxId.value }))
|
|
234
|
+
if (customer.tax_exempt === 'exempt') taxabilityOverride = 'customer_exempt'
|
|
235
|
+
else if (customer.tax_exempt === 'reverse') taxabilityOverride = 'reverse_charge'
|
|
236
|
+
}
|
|
237
|
+
}
|
|
238
|
+
|
|
239
|
+
if (country == null) {
|
|
240
|
+
return { currency, behavior, tax: unresolvedEstimate(TaxEstimateStatus.LocationRequired, subtotalMinor) }
|
|
241
|
+
}
|
|
242
|
+
|
|
243
|
+
const cacheKey = JSON.stringify([
|
|
244
|
+
currency, country, subtotalMinor, product.taxCode ?? null, behavior,
|
|
245
|
+
matchingTaxIds.map(id => `${id.type}:${id.value}`).sort(), taxabilityOverride ?? null,
|
|
246
|
+
])
|
|
247
|
+
const outcome = await cached(cache.tax, cache.inflight, `tax:${cacheKey}`, cache.taxTtlMs, async (): Promise<TaxOutcome> => {
|
|
248
|
+
try {
|
|
249
|
+
const calculation = await stripe.tax.calculations.create({
|
|
250
|
+
currency,
|
|
251
|
+
line_items: [{
|
|
252
|
+
amount: subtotalMinor, reference: plan.sku, tax_behavior: behavior,
|
|
253
|
+
...(product.taxCode != null ? { tax_code: product.taxCode } : {}),
|
|
254
|
+
}],
|
|
255
|
+
customer_details: {
|
|
256
|
+
address: { country },
|
|
257
|
+
address_source: 'billing',
|
|
258
|
+
// Cast: `Stripe.TaxId.type` (the customer's saved tax id) and the Tax Calculation
|
|
259
|
+
// parameter's own tax-id-type enum are independently generated from Stripe's OpenAPI
|
|
260
|
+
// spec and can drift apart in this pinned SDK; every value here still came from a real
|
|
261
|
+
// Stripe `TaxId` record, so it is valid at the API even where the two types disagree.
|
|
262
|
+
...(matchingTaxIds.length > 0
|
|
263
|
+
? { tax_ids: matchingTaxIds as Stripe.Tax.CalculationCreateParams.CustomerDetails['tax_ids'] }
|
|
264
|
+
: {}),
|
|
265
|
+
...(taxabilityOverride != null ? { taxability_override: taxabilityOverride } : {}),
|
|
266
|
+
},
|
|
267
|
+
})
|
|
268
|
+
return { ok: true, calculation }
|
|
269
|
+
} catch (error) {
|
|
270
|
+
if (isInvalidRequest(error)) return { ok: false, code: error.code }
|
|
271
|
+
throw error
|
|
272
|
+
}
|
|
273
|
+
})
|
|
274
|
+
|
|
275
|
+
const tax = outcome.ok
|
|
276
|
+
? taxEstimateOf(outcome.calculation, behavior, subtotalMinor)
|
|
277
|
+
: unresolvedEstimate(TaxEstimateStatus.AtCheckout, subtotalMinor)
|
|
278
|
+
|
|
279
|
+
const result: PriceEstimate = { country, source, currency, behavior, tax }
|
|
280
|
+
|
|
281
|
+
if (pricing.currency.estimate && pricing.currency.adaptive === true) {
|
|
282
|
+
const localCurrency = currencyOfCountry(country)
|
|
283
|
+
if (localCurrency != null && localCurrency !== currency) {
|
|
284
|
+
const stripePricing = await stripePricingConfig(ctx)
|
|
285
|
+
const apiVersion = stripePricing?.fxApiVersion ?? STRIPE_FX_QUOTES_API_VERSION
|
|
286
|
+
const settlementCurrency = stripePricing?.settlementCurrency?.toLowerCase() ?? currency
|
|
287
|
+
// A preview endpoint: unreachable or erroring never fails the estimate, it only drops `local`.
|
|
288
|
+
const fx = await cached(
|
|
289
|
+
cache.fx, cache.inflight, `fx:${currency}:${settlementCurrency}:${localCurrency}:${apiVersion}`, cache.fxTtlMs,
|
|
290
|
+
() => fetchFxRate(stripe, currency, localCurrency, apiVersion, settlementCurrency),
|
|
291
|
+
).catch(() => null)
|
|
292
|
+
if (fx != null) {
|
|
293
|
+
result.local = { currency: fx.currency, exchangeRate: fx.exchangeRate, ...(fx.fxFeeRate != null ? { fxFeeRate: fx.fxFeeRate } : {}) }
|
|
294
|
+
}
|
|
295
|
+
}
|
|
296
|
+
}
|
|
297
|
+
|
|
298
|
+
return result
|
|
299
|
+
}
|
package/src/plugins/events.ts
CHANGED
|
@@ -117,7 +117,9 @@ export const applySubscription = async (
|
|
|
117
117
|
}
|
|
118
118
|
|
|
119
119
|
const item = subscription.items?.data?.[0]
|
|
120
|
-
|
|
120
|
+
// A price recreated by `sync.ts` (an opposite `tax_behavior`) loses its lookup key; its sku
|
|
121
|
+
// metadata survives, so a subscription switched to it in the portal still resolves its plan.
|
|
122
|
+
const planSku = item?.price?.lookup_key ?? item?.price?.metadata?.sku ?? metadata.planSku ?? previous?.planSku
|
|
121
123
|
if (planSku == null) {
|
|
122
124
|
console.warn(`[payment] subscription "${subscription.id}" names no plan; ignored`)
|
|
123
125
|
return { record: previous, change: null, updated: false }
|
|
@@ -323,12 +325,23 @@ export const createEventHandler = (ctx: ApiContext, stripe: Stripe) => {
|
|
|
323
325
|
const amountMinor = integerMetadata(metadata, 'amountMinor')
|
|
324
326
|
const chargedMinor = integerMetadata(metadata, 'chargeAmountMinor')
|
|
325
327
|
const currency = metadata.currency?.toLowerCase()
|
|
328
|
+
const sourceChargedMinor = metadata.sourceChargeAmountMinor == null
|
|
329
|
+
? chargedMinor : integerMetadata(metadata, 'sourceChargeAmountMinor')
|
|
330
|
+
const amountCurrency = (metadata.amountCurrency ?? currency)?.toLowerCase()
|
|
326
331
|
if (currency == null || session.currency?.toLowerCase() !== currency
|
|
327
|
-
||
|
|
332
|
+
|| amountCurrency == null || session.amount_subtotal !== chargedMinor
|
|
333
|
+
|| amountMinor <= 0 || chargedMinor <= 0 || sourceChargedMinor < amountMinor
|
|
334
|
+
|| (amountCurrency === currency && sourceChargedMinor !== chargedMinor)) {
|
|
328
335
|
throw new PaygateError('amount-mismatch')
|
|
329
336
|
}
|
|
330
|
-
record = {
|
|
331
|
-
|
|
337
|
+
record = {
|
|
338
|
+
mode: CheckoutPricingMode.Amount, amountMinor, sourceChargeAmountMinor: sourceChargedMinor,
|
|
339
|
+
amountCurrency, chargeAmountMinor: chargedMinor, currency,
|
|
340
|
+
}
|
|
341
|
+
completion = {
|
|
342
|
+
...base, mode: 'amount', amountMinor, sourceChargeAmountMinor: sourceChargedMinor,
|
|
343
|
+
amountCurrency, chargeAmountMinor: chargedMinor, currency,
|
|
344
|
+
}
|
|
332
345
|
} else {
|
|
333
346
|
if (metadata.currency != null && session.currency?.toLowerCase() !== metadata.currency.toLowerCase()) {
|
|
334
347
|
throw new PaygateError('currency-mismatch')
|