connect-sdk-nodejs 3.17.0 → 4.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +27 -3
- package/lib/captures/get.d.ts +3 -0
- package/lib/captures/get.js +17 -0
- package/lib/captures/get.js.map +1 -0
- package/lib/captures/index.d.ts +3 -0
- package/lib/captures/index.js +13 -0
- package/lib/captures/index.js.map +1 -0
- package/lib/captures/refund.d.ts +4 -0
- package/lib/captures/refund.js +30 -0
- package/lib/captures/refund.js.map +1 -0
- package/lib/disputes/cancel.d.ts +3 -0
- package/lib/disputes/cancel.js +17 -0
- package/lib/disputes/cancel.js.map +1 -0
- package/lib/disputes/get.d.ts +3 -0
- package/lib/disputes/get.js +17 -0
- package/lib/disputes/get.js.map +1 -0
- package/lib/disputes/index.d.ts +3 -0
- package/lib/disputes/index.js +17 -0
- package/lib/disputes/index.js.map +1 -0
- package/lib/disputes/submit.d.ts +3 -0
- package/lib/disputes/submit.js +17 -0
- package/lib/disputes/submit.js.map +1 -0
- package/lib/disputes/uploadFile.d.ts +4 -0
- package/lib/disputes/uploadFile.js +17 -0
- package/lib/disputes/uploadFile.js.map +1 -0
- package/lib/files/getFile.d.ts +3 -0
- package/lib/files/getFile.js +17 -0
- package/lib/files/getFile.js.map +1 -0
- package/lib/files/index.d.ts +3 -0
- package/lib/files/index.js +11 -0
- package/lib/files/index.js.map +1 -0
- package/lib/hostedcheckouts/create.d.ts +4 -0
- package/lib/hostedcheckouts/create.js +30 -0
- package/lib/hostedcheckouts/create.js.map +1 -0
- package/lib/hostedcheckouts/get.d.ts +3 -0
- package/lib/hostedcheckouts/get.js +17 -0
- package/lib/hostedcheckouts/get.js.map +1 -0
- package/lib/hostedcheckouts/index.d.ts +3 -0
- package/lib/hostedcheckouts/index.js +15 -0
- package/lib/hostedcheckouts/index.js.map +1 -0
- package/lib/hostedcheckouts/remove.d.ts +3 -0
- package/lib/hostedcheckouts/remove.js +17 -0
- package/lib/hostedcheckouts/remove.js.map +1 -0
- package/lib/hostedmandatemanagements/create.d.ts +4 -0
- package/lib/hostedmandatemanagements/create.js +30 -0
- package/lib/hostedmandatemanagements/create.js.map +1 -0
- package/lib/hostedmandatemanagements/get.d.ts +3 -0
- package/lib/hostedmandatemanagements/get.js +17 -0
- package/lib/hostedmandatemanagements/get.js.map +1 -0
- package/lib/hostedmandatemanagements/index.d.ts +3 -0
- package/lib/hostedmandatemanagements/index.js +13 -0
- package/lib/hostedmandatemanagements/index.js.map +1 -0
- package/lib/index.d.ts +3 -0
- package/lib/index.js +85 -0
- package/lib/index.js.map +1 -0
- package/lib/mandates/block.d.ts +3 -0
- package/lib/mandates/block.js +17 -0
- package/lib/mandates/block.js.map +1 -0
- package/lib/mandates/create.d.ts +4 -0
- package/lib/mandates/create.js +30 -0
- package/lib/mandates/create.js.map +1 -0
- package/lib/mandates/createWithMandateReference.d.ts +4 -0
- package/lib/mandates/createWithMandateReference.js +30 -0
- package/lib/mandates/createWithMandateReference.js.map +1 -0
- package/lib/mandates/get.d.ts +3 -0
- package/lib/mandates/get.js +17 -0
- package/lib/mandates/get.js.map +1 -0
- package/lib/mandates/index.d.ts +3 -0
- package/lib/mandates/index.js +21 -0
- package/lib/mandates/index.js.map +1 -0
- package/lib/mandates/revoke.d.ts +3 -0
- package/lib/mandates/revoke.js +17 -0
- package/lib/mandates/revoke.js.map +1 -0
- package/lib/mandates/unblock.d.ts +3 -0
- package/lib/mandates/unblock.js +17 -0
- package/lib/mandates/unblock.js.map +1 -0
- package/lib/model/captures/index.d.ts +18 -0
- package/lib/model/captures/index.js +3 -0
- package/lib/model/captures/index.js.map +1 -0
- package/lib/model/disputes/index.d.ts +34 -0
- package/lib/model/disputes/index.js +3 -0
- package/lib/model/disputes/index.js.map +1 -0
- package/lib/model/domain/capture/definitions/index.d.ts +25 -0
- package/lib/model/domain/capture/definitions/index.js +3 -0
- package/lib/model/domain/capture/definitions/index.js.map +1 -0
- package/lib/model/domain/capture/index.d.ts +6 -0
- package/lib/model/domain/capture/index.js +3 -0
- package/lib/model/domain/capture/index.js.map +1 -0
- package/lib/model/domain/definitions/index.d.ts +311 -0
- package/lib/model/domain/definitions/index.js +3 -0
- package/lib/model/domain/definitions/index.js.map +1 -0
- package/lib/model/domain/dispute/definitions/index.d.ts +38 -0
- package/lib/model/domain/dispute/definitions/index.js +3 -0
- package/lib/model/domain/dispute/definitions/index.js.map +1 -0
- package/lib/model/domain/dispute/index.d.ts +18 -0
- package/lib/model/domain/dispute/index.js +3 -0
- package/lib/model/domain/dispute/index.js.map +1 -0
- package/lib/model/domain/errors/definitions/index.d.ts +9 -0
- package/{captures → lib/model/domain/errors/definitions}/index.js +2 -6
- package/lib/model/domain/errors/definitions/index.js.map +1 -0
- package/lib/model/domain/errors/index.d.ts +5 -0
- package/lib/model/domain/errors/index.js +3 -0
- package/lib/model/domain/errors/index.js.map +1 -0
- package/lib/model/domain/file/definitions/index.d.ts +6 -0
- package/{sessions → lib/model/domain/file/definitions}/index.js +2 -6
- package/lib/model/domain/file/definitions/index.js.map +1 -0
- package/lib/model/domain/hostedcheckout/definitions/index.d.ts +50 -0
- package/lib/model/domain/hostedcheckout/definitions/index.js +3 -0
- package/lib/model/domain/hostedcheckout/definitions/index.js.map +1 -0
- package/lib/model/domain/hostedcheckout/index.d.ts +27 -0
- package/lib/model/domain/hostedcheckout/index.js +3 -0
- package/lib/model/domain/hostedcheckout/index.js.map +1 -0
- package/lib/model/domain/hostedmandatemanagement/definitions/index.d.ts +15 -0
- package/lib/model/domain/hostedmandatemanagement/definitions/index.js +3 -0
- package/lib/model/domain/hostedmandatemanagement/definitions/index.js.map +1 -0
- package/lib/model/domain/hostedmandatemanagement/index.d.ts +15 -0
- package/lib/model/domain/hostedmandatemanagement/index.js +3 -0
- package/lib/model/domain/hostedmandatemanagement/index.js.map +1 -0
- package/lib/model/domain/mandates/definitions/index.d.ts +52 -0
- package/lib/model/domain/mandates/definitions/index.js +3 -0
- package/lib/model/domain/mandates/definitions/index.js.map +1 -0
- package/lib/model/domain/mandates/index.d.ts +10 -0
- package/lib/model/domain/mandates/index.js +3 -0
- package/lib/model/domain/mandates/index.js.map +1 -0
- package/lib/model/domain/metadata/index.d.ts +6 -0
- package/lib/model/domain/metadata/index.js +3 -0
- package/lib/model/domain/metadata/index.js.map +1 -0
- package/lib/model/domain/payment/definitions/index.d.ts +846 -0
- package/lib/model/domain/payment/definitions/index.js +3 -0
- package/lib/model/domain/payment/definitions/index.js.map +1 -0
- package/lib/model/domain/payment/index.d.ts +77 -0
- package/lib/model/domain/payment/index.js +3 -0
- package/lib/model/domain/payment/index.js.map +1 -0
- package/lib/model/domain/payout/definitions/index.d.ts +48 -0
- package/lib/model/domain/payout/definitions/index.js +3 -0
- package/lib/model/domain/payout/definitions/index.js.map +1 -0
- package/lib/model/domain/payout/index.d.ts +56 -0
- package/lib/model/domain/payout/index.js +3 -0
- package/lib/model/domain/payout/index.js.map +1 -0
- package/lib/model/domain/product/definitions/index.d.ts +164 -0
- package/lib/model/domain/product/definitions/index.js +3 -0
- package/lib/model/domain/product/definitions/index.js.map +1 -0
- package/lib/model/domain/product/index.d.ts +47 -0
- package/lib/model/domain/product/index.js +3 -0
- package/lib/model/domain/product/index.js.map +1 -0
- package/lib/model/domain/refund/definitions/index.d.ts +26 -0
- package/lib/model/domain/refund/definitions/index.js +3 -0
- package/lib/model/domain/refund/definitions/index.js.map +1 -0
- package/lib/model/domain/refund/index.d.ts +29 -0
- package/lib/model/domain/refund/index.js +3 -0
- package/lib/model/domain/refund/index.js.map +1 -0
- package/lib/model/domain/riskassessments/definitions/index.d.ts +52 -0
- package/lib/model/domain/riskassessments/definitions/index.js +3 -0
- package/lib/model/domain/riskassessments/definitions/index.js.map +1 -0
- package/lib/model/domain/riskassessments/index.d.ts +12 -0
- package/lib/model/domain/riskassessments/index.js +3 -0
- package/lib/model/domain/riskassessments/index.js.map +1 -0
- package/lib/model/domain/services/definitions/index.d.ts +33 -0
- package/lib/model/domain/services/definitions/index.js +3 -0
- package/lib/model/domain/services/definitions/index.js.map +1 -0
- package/lib/model/domain/services/index.d.ts +29 -0
- package/lib/model/domain/services/index.js +3 -0
- package/lib/model/domain/services/index.js.map +1 -0
- package/lib/model/domain/sessions/definitions/index.d.ts +5 -0
- package/lib/model/domain/sessions/definitions/index.js +3 -0
- package/lib/model/domain/sessions/definitions/index.js.map +1 -0
- package/lib/model/domain/sessions/index.d.ts +13 -0
- package/lib/model/domain/sessions/index.js +3 -0
- package/lib/model/domain/sessions/index.js.map +1 -0
- package/lib/model/domain/token/definitions/index.d.ts +102 -0
- package/lib/model/domain/token/definitions/index.js +3 -0
- package/lib/model/domain/token/definitions/index.js.map +1 -0
- package/lib/model/domain/token/index.d.ts +32 -0
- package/lib/model/domain/token/index.js +3 -0
- package/lib/model/domain/token/index.js.map +1 -0
- package/lib/model/domain/webhooks/index.d.ts +17 -0
- package/lib/model/domain/webhooks/index.js +3 -0
- package/lib/model/domain/webhooks/index.js.map +1 -0
- package/lib/model/files/index.d.ts +10 -0
- package/lib/model/files/index.js +3 -0
- package/lib/model/files/index.js.map +1 -0
- package/lib/model/hostedcheckouts/index.d.ts +25 -0
- package/lib/model/hostedcheckouts/index.js +3 -0
- package/lib/model/hostedcheckouts/index.js.map +1 -0
- package/lib/model/hostedmandatemanagements/index.d.ts +18 -0
- package/lib/model/hostedmandatemanagements/index.js +3 -0
- package/lib/model/hostedmandatemanagements/index.js.map +1 -0
- package/lib/model/index.d.ts +38 -0
- package/lib/model/index.js +14 -0
- package/lib/model/index.js.map +1 -0
- package/lib/model/mandates/index.d.ts +46 -0
- package/lib/model/mandates/index.js +3 -0
- package/lib/model/mandates/index.js.map +1 -0
- package/lib/model/payments/index.d.ts +132 -0
- package/lib/model/payments/index.js +3 -0
- package/lib/model/payments/index.js.map +1 -0
- package/lib/model/payouts/index.d.ts +52 -0
- package/lib/model/payouts/index.js +3 -0
- package/lib/model/payouts/index.js.map +1 -0
- package/lib/model/productgroups/index.d.ts +41 -0
- package/lib/model/productgroups/index.js +3 -0
- package/lib/model/productgroups/index.js.map +1 -0
- package/lib/model/products/index.d.ts +80 -0
- package/lib/model/products/index.js +3 -0
- package/lib/model/products/index.js.map +1 -0
- package/lib/model/refunds/index.d.ts +46 -0
- package/lib/model/refunds/index.js +3 -0
- package/lib/model/refunds/index.js.map +1 -0
- package/lib/model/riskassessments/index.d.ts +18 -0
- package/lib/model/riskassessments/index.js +3 -0
- package/lib/model/riskassessments/index.js.map +1 -0
- package/lib/model/services/index.d.ts +48 -0
- package/lib/model/services/index.js +3 -0
- package/lib/model/services/index.js.map +1 -0
- package/lib/model/sessions/index.d.ts +11 -0
- package/lib/model/sessions/index.js +3 -0
- package/lib/model/sessions/index.js.map +1 -0
- package/lib/model/tokens/index.d.ts +42 -0
- package/lib/model/tokens/index.js +3 -0
- package/lib/model/tokens/index.js.map +1 -0
- package/lib/model/types.d.ts +98 -0
- package/lib/model/types.js +3 -0
- package/lib/model/types.js.map +1 -0
- package/lib/model/webhooks/index.d.ts +36 -0
- package/lib/model/webhooks/index.js +25 -0
- package/lib/model/webhooks/index.js.map +1 -0
- package/lib/payments/approve.d.ts +4 -0
- package/lib/payments/approve.js +30 -0
- package/lib/payments/approve.js.map +1 -0
- package/lib/payments/cancel.d.ts +3 -0
- package/lib/payments/cancel.js +17 -0
- package/lib/payments/cancel.js.map +1 -0
- package/lib/payments/cancelapproval.d.ts +3 -0
- package/lib/payments/cancelapproval.js +17 -0
- package/lib/payments/cancelapproval.js.map +1 -0
- package/lib/payments/capture.d.ts +4 -0
- package/lib/payments/capture.js +30 -0
- package/lib/payments/capture.js.map +1 -0
- package/lib/payments/captures.d.ts +3 -0
- package/lib/payments/captures.js +17 -0
- package/lib/payments/captures.js.map +1 -0
- package/lib/payments/complete.d.ts +4 -0
- package/lib/payments/complete.js +30 -0
- package/lib/payments/complete.js.map +1 -0
- package/lib/payments/create.d.ts +4 -0
- package/lib/payments/create.js +30 -0
- package/lib/payments/create.js.map +1 -0
- package/lib/payments/devicefingerprint.d.ts +3 -0
- package/lib/payments/devicefingerprint.js +17 -0
- package/lib/payments/devicefingerprint.js.map +1 -0
- package/lib/payments/dispute.d.ts +4 -0
- package/lib/payments/dispute.js +30 -0
- package/lib/payments/dispute.js.map +1 -0
- package/lib/payments/disputes.d.ts +3 -0
- package/lib/payments/disputes.js +17 -0
- package/lib/payments/disputes.js.map +1 -0
- package/lib/payments/find.d.ts +4 -0
- package/lib/payments/find.js +17 -0
- package/lib/payments/find.js.map +1 -0
- package/lib/payments/get.d.ts +3 -0
- package/lib/payments/get.js +17 -0
- package/lib/payments/get.js.map +1 -0
- package/lib/payments/index.d.ts +3 -0
- package/lib/payments/index.js +43 -0
- package/lib/payments/index.js.map +1 -0
- package/lib/payments/processchallenged.d.ts +3 -0
- package/lib/payments/processchallenged.js +17 -0
- package/lib/payments/processchallenged.js.map +1 -0
- package/lib/payments/refund.d.ts +4 -0
- package/lib/payments/refund.js +30 -0
- package/lib/payments/refund.js.map +1 -0
- package/lib/payments/refunds.d.ts +3 -0
- package/lib/payments/refunds.js +17 -0
- package/lib/payments/refunds.js.map +1 -0
- package/lib/payments/thirdPartyStatus.d.ts +3 -0
- package/lib/payments/thirdPartyStatus.js +17 -0
- package/lib/payments/thirdPartyStatus.js.map +1 -0
- package/lib/payments/tokenize.d.ts +4 -0
- package/lib/payments/tokenize.js +30 -0
- package/lib/payments/tokenize.js.map +1 -0
- package/lib/payouts/approve.d.ts +4 -0
- package/lib/payouts/approve.js +30 -0
- package/lib/payouts/approve.js.map +1 -0
- package/lib/payouts/cancel.d.ts +3 -0
- package/lib/payouts/cancel.js +17 -0
- package/lib/payouts/cancel.js.map +1 -0
- package/lib/payouts/cancelapproval.d.ts +3 -0
- package/lib/payouts/cancelapproval.js +17 -0
- package/lib/payouts/cancelapproval.js.map +1 -0
- package/lib/payouts/create.d.ts +4 -0
- package/lib/payouts/create.js +30 -0
- package/lib/payouts/create.js.map +1 -0
- package/lib/payouts/find.d.ts +4 -0
- package/lib/payouts/find.js +17 -0
- package/lib/payouts/find.js.map +1 -0
- package/lib/payouts/get.d.ts +3 -0
- package/lib/payouts/get.js +17 -0
- package/lib/payouts/get.js.map +1 -0
- package/lib/payouts/index.d.ts +3 -0
- package/lib/payouts/index.js +21 -0
- package/lib/payouts/index.js.map +1 -0
- package/lib/productgroups/deviceFingerprint.d.ts +4 -0
- package/lib/productgroups/deviceFingerprint.js +30 -0
- package/lib/productgroups/deviceFingerprint.js.map +1 -0
- package/lib/productgroups/find.d.ts +4 -0
- package/lib/productgroups/find.js +17 -0
- package/lib/productgroups/find.js.map +1 -0
- package/lib/productgroups/get.d.ts +4 -0
- package/lib/productgroups/get.js +17 -0
- package/lib/productgroups/get.js.map +1 -0
- package/lib/productgroups/index.d.ts +3 -0
- package/lib/productgroups/index.js +15 -0
- package/lib/productgroups/index.js.map +1 -0
- package/lib/products/customerDetails.d.ts +4 -0
- package/lib/products/customerDetails.js +30 -0
- package/lib/products/customerDetails.js.map +1 -0
- package/lib/products/deviceFingerprint.d.ts +4 -0
- package/lib/products/deviceFingerprint.js +30 -0
- package/lib/products/deviceFingerprint.js.map +1 -0
- package/lib/products/directory.d.ts +4 -0
- package/lib/products/directory.js +17 -0
- package/lib/products/directory.js.map +1 -0
- package/lib/products/find.d.ts +4 -0
- package/lib/products/find.js +17 -0
- package/lib/products/find.js.map +1 -0
- package/lib/products/get.d.ts +4 -0
- package/lib/products/get.js +17 -0
- package/lib/products/get.js.map +1 -0
- package/lib/products/index.d.ts +3 -0
- package/lib/products/index.js +23 -0
- package/lib/products/index.js.map +1 -0
- package/lib/products/networks.d.ts +4 -0
- package/lib/products/networks.js +17 -0
- package/lib/products/networks.js.map +1 -0
- package/lib/products/sessions.d.ts +4 -0
- package/lib/products/sessions.js +30 -0
- package/lib/products/sessions.js.map +1 -0
- package/lib/refunds/approve.d.ts +4 -0
- package/lib/refunds/approve.js +30 -0
- package/lib/refunds/approve.js.map +1 -0
- package/lib/refunds/cancel.d.ts +3 -0
- package/lib/refunds/cancel.js +17 -0
- package/lib/refunds/cancel.js.map +1 -0
- package/lib/refunds/cancelapproval.d.ts +3 -0
- package/lib/refunds/cancelapproval.js +17 -0
- package/lib/refunds/cancelapproval.js.map +1 -0
- package/lib/refunds/find.d.ts +4 -0
- package/lib/refunds/find.js +17 -0
- package/lib/refunds/find.js.map +1 -0
- package/lib/refunds/get.d.ts +3 -0
- package/lib/refunds/get.js +17 -0
- package/lib/refunds/get.js.map +1 -0
- package/lib/refunds/index.d.ts +3 -0
- package/lib/refunds/index.js +19 -0
- package/lib/refunds/index.js.map +1 -0
- package/lib/riskassessments/bankaccounts.d.ts +4 -0
- package/lib/riskassessments/bankaccounts.js +30 -0
- package/lib/riskassessments/bankaccounts.js.map +1 -0
- package/lib/riskassessments/cards.d.ts +4 -0
- package/lib/riskassessments/cards.js +30 -0
- package/lib/riskassessments/cards.js.map +1 -0
- package/lib/riskassessments/index.d.ts +3 -0
- package/lib/riskassessments/index.js +13 -0
- package/lib/riskassessments/index.js.map +1 -0
- package/lib/services/bankaccount.d.ts +4 -0
- package/lib/services/bankaccount.js +30 -0
- package/lib/services/bankaccount.js.map +1 -0
- package/lib/services/convertAmount.d.ts +4 -0
- package/lib/services/convertAmount.js +17 -0
- package/lib/services/convertAmount.js.map +1 -0
- package/lib/services/getIINdetails.d.ts +4 -0
- package/lib/services/getIINdetails.js +30 -0
- package/lib/services/getIINdetails.js.map +1 -0
- package/lib/services/index.d.ts +3 -0
- package/lib/services/index.js +19 -0
- package/lib/services/index.js.map +1 -0
- package/lib/services/privacypolicy.d.ts +4 -0
- package/lib/services/privacypolicy.js +17 -0
- package/lib/services/privacypolicy.js.map +1 -0
- package/lib/services/testconnection.d.ts +3 -0
- package/lib/services/testconnection.js +17 -0
- package/lib/services/testconnection.js.map +1 -0
- package/lib/sessions/create.d.ts +4 -0
- package/lib/sessions/create.js +30 -0
- package/lib/sessions/create.js.map +1 -0
- package/lib/sessions/index.d.ts +3 -0
- package/lib/sessions/index.js +11 -0
- package/lib/sessions/index.js.map +1 -0
- package/lib/tokens/approvesepadirectdebit.d.ts +4 -0
- package/lib/tokens/approvesepadirectdebit.js +30 -0
- package/lib/tokens/approvesepadirectdebit.js.map +1 -0
- package/lib/tokens/create.d.ts +4 -0
- package/lib/tokens/create.js +30 -0
- package/lib/tokens/create.js.map +1 -0
- package/lib/tokens/get.d.ts +3 -0
- package/lib/tokens/get.js +17 -0
- package/lib/tokens/get.js.map +1 -0
- package/lib/tokens/index.d.ts +3 -0
- package/lib/tokens/index.js +19 -0
- package/lib/tokens/index.js.map +1 -0
- package/lib/tokens/remove.d.ts +4 -0
- package/lib/tokens/remove.js +17 -0
- package/lib/tokens/remove.js.map +1 -0
- package/lib/tokens/update.d.ts +4 -0
- package/lib/tokens/update.js +30 -0
- package/lib/tokens/update.js.map +1 -0
- package/lib/utils/communicator.d.ts +3 -0
- package/lib/utils/communicator.js +127 -0
- package/lib/utils/communicator.js.map +1 -0
- package/lib/utils/connection.d.ts +5 -0
- package/lib/utils/connection.js +114 -0
- package/lib/utils/connection.js.map +1 -0
- package/lib/utils/context.d.ts +3 -0
- package/lib/utils/context.js +113 -0
- package/lib/utils/context.js.map +1 -0
- package/lib/utils/headers.d.ts +9 -0
- package/lib/utils/headers.js +66 -0
- package/lib/utils/headers.js.map +1 -0
- package/lib/utils/obfuscate.d.ts +2 -0
- package/lib/utils/obfuscate.js +102 -0
- package/lib/utils/obfuscate.js.map +1 -0
- package/lib/utils/versions.d.ts +1 -0
- package/lib/utils/versions.js +9 -0
- package/lib/utils/versions.js.map +1 -0
- package/lib/webhooks/index.d.ts +3 -0
- package/lib/webhooks/index.js +129 -0
- package/lib/webhooks/index.js.map +1 -0
- package/package.json +91 -12
- package/schemas/hostedcheckout/CreateHostedCheckoutRequest.json +9 -0
- package/schemas/payment/CompletePaymentRequest.json +6 -0
- package/schemas/payment/CreatePaymentRequest.json +12 -0
- package/schemas/payout/CreatePayoutRequest.json +3 -0
- package/schemas/riskassessments/RiskAssessmentCard.json +3 -0
- package/captures/get.js +0 -18
- package/disputes/cancel.js +0 -18
- package/disputes/get.js +0 -18
- package/disputes/index.js +0 -17
- package/disputes/submit.js +0 -18
- package/disputes/uploadFile.js +0 -18
- package/files/getFile.js +0 -18
- package/files/index.js +0 -11
- package/hostedcheckouts/create.js +0 -30
- package/hostedcheckouts/get.js +0 -18
- package/hostedcheckouts/index.js +0 -13
- package/hostedmandatemanagements/create.js +0 -30
- package/hostedmandatemanagements/get.js +0 -18
- package/hostedmandatemanagements/index.js +0 -13
- package/index.js +0 -107
- package/mandates/block.js +0 -18
- package/mandates/create.js +0 -30
- package/mandates/createWithMandateReference.js +0 -30
- package/mandates/get.js +0 -18
- package/mandates/index.js +0 -21
- package/mandates/revoke.js +0 -18
- package/mandates/unblock.js +0 -18
- package/payments/approve.js +0 -30
- package/payments/cancel.js +0 -18
- package/payments/cancelapproval.js +0 -18
- package/payments/capture.js +0 -30
- package/payments/captures.js +0 -18
- package/payments/complete.js +0 -30
- package/payments/create.js +0 -30
- package/payments/devicefingerprint.js +0 -18
- package/payments/dispute.js +0 -30
- package/payments/disputes.js +0 -18
- package/payments/find.js +0 -18
- package/payments/get.js +0 -18
- package/payments/index.js +0 -43
- package/payments/processchallenged.js +0 -18
- package/payments/refund.js +0 -30
- package/payments/refunds.js +0 -18
- package/payments/thirdPartyStatus.js +0 -18
- package/payments/tokenize.js +0 -30
- package/payouts/approve.js +0 -30
- package/payouts/cancel.js +0 -18
- package/payouts/cancelapproval.js +0 -18
- package/payouts/create.js +0 -30
- package/payouts/find.js +0 -18
- package/payouts/get.js +0 -18
- package/payouts/index.js +0 -21
- package/productgroups/deviceFingerprint.js +0 -30
- package/productgroups/find.js +0 -18
- package/productgroups/get.js +0 -18
- package/productgroups/index.js +0 -15
- package/products/customerDetails.js +0 -30
- package/products/deviceFingerprint.js +0 -30
- package/products/directory.js +0 -18
- package/products/find.js +0 -18
- package/products/get.js +0 -18
- package/products/index.js +0 -23
- package/products/networks.js +0 -18
- package/products/sessions.js +0 -30
- package/refunds/approve.js +0 -30
- package/refunds/cancel.js +0 -18
- package/refunds/cancelapproval.js +0 -18
- package/refunds/find.js +0 -18
- package/refunds/get.js +0 -18
- package/refunds/index.js +0 -19
- package/riskassessments/bankaccounts.js +0 -30
- package/riskassessments/cards.js +0 -30
- package/riskassessments/index.js +0 -13
- package/services/bankaccount.js +0 -30
- package/services/convertAmount.js +0 -18
- package/services/getIINdetails.js +0 -30
- package/services/index.js +0 -19
- package/services/privacypolicy.js +0 -18
- package/services/testconnection.js +0 -18
- package/sessions/create.js +0 -30
- package/tokens/approvesepadirectdebit.js +0 -30
- package/tokens/create.js +0 -30
- package/tokens/get.js +0 -18
- package/tokens/index.js +0 -19
- package/tokens/remove.js +0 -18
- package/tokens/update.js +0 -30
- package/utils/communicator.js +0 -129
- package/utils/connection.js +0 -117
- package/utils/context.js +0 -102
- package/utils/headers.js +0 -77
- package/utils/obfuscate.js +0 -101
- package/webhooks/index.js +0 -133
package/utils/connection.js
DELETED
|
@@ -1,117 +0,0 @@
|
|
|
1
|
-
var http = require('http');
|
|
2
|
-
var https = require('https');
|
|
3
|
-
|
|
4
|
-
var uuid = require('node-uuid');
|
|
5
|
-
|
|
6
|
-
var formData = require('form-data');
|
|
7
|
-
|
|
8
|
-
var obfuscate = require('../utils/obfuscate');
|
|
9
|
-
var headers = require('../utils/headers');
|
|
10
|
-
|
|
11
|
-
var handleResponse = function (res, context, logger, uuidString, cb) {
|
|
12
|
-
if (context.isLoggingEnabled()) {
|
|
13
|
-
var body = '';
|
|
14
|
-
|
|
15
|
-
if (headers.isBinaryContent(res.headers['content-type'])) {
|
|
16
|
-
body = '<binary content>';
|
|
17
|
-
} else {
|
|
18
|
-
res.setEncoding('utf8');
|
|
19
|
-
res.on('data', function (chunk) {
|
|
20
|
-
body += chunk;
|
|
21
|
-
});
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
res.on('end', function () {
|
|
25
|
-
if (context.isLoggingEnabled()) {
|
|
26
|
-
var obfuscatedBody = headers.isJSON(res.headers['content-type']) ? obfuscate.getObfuscated(body, context) : body;
|
|
27
|
-
logger('info', 'Response from Message ID: ' + uuidString + ", status: " + res.statusCode + ", headers: " + obfuscate.getObfuscated(res.headers, context) + ", body: " + obfuscatedBody);
|
|
28
|
-
}
|
|
29
|
-
});
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
cb(null, res);
|
|
33
|
-
};
|
|
34
|
-
|
|
35
|
-
var handleError = function (e, context, logger, uuidString, cb) {
|
|
36
|
-
if (context.isLoggingEnabled()) {
|
|
37
|
-
logger('error', 'Error for Message ID:' + uuidString + ", error: " + JSON.stringify(e));
|
|
38
|
-
}
|
|
39
|
-
cb(e, null);
|
|
40
|
-
};
|
|
41
|
-
|
|
42
|
-
var sendJSON = function (options, postData, context, cb) {
|
|
43
|
-
var logger = context.getLogger();
|
|
44
|
-
var uuidString = uuid.v4();
|
|
45
|
-
if (context.isLoggingEnabled()) {
|
|
46
|
-
logger('info', 'Request with Message ID: ' + uuidString + ", " + options.method + " to " + options.path + ", headers: " + obfuscate.getObfuscated(options.headers) + ", body: " + obfuscate.getObfuscated(postData, context));
|
|
47
|
-
}
|
|
48
|
-
var h = options.protocol === 'https:' ? https : http;
|
|
49
|
-
var req = h.request(options, function (res) {
|
|
50
|
-
handleResponse(res, context, logger, uuidString, cb);
|
|
51
|
-
});
|
|
52
|
-
req.on('error', function (e) {
|
|
53
|
-
handleError(e, context, logger, uuidString, cb);
|
|
54
|
-
});
|
|
55
|
-
|
|
56
|
-
if (postData) {
|
|
57
|
-
req.write(JSON.stringify(postData));
|
|
58
|
-
}
|
|
59
|
-
req.end();
|
|
60
|
-
};
|
|
61
|
-
|
|
62
|
-
var sendMultipart = function (options, postData, boundary, context, cb) {
|
|
63
|
-
var logger = context.getLogger();
|
|
64
|
-
var uuidString = uuid.v4();
|
|
65
|
-
if (context.isLoggingEnabled()) {
|
|
66
|
-
logger('info', 'Request with Message ID: ' + uuidString + ", " + options.method + " to " + options.path + ", headers: " + obfuscate.getObfuscated(options.headers) + ", body: " + '<binary data>');
|
|
67
|
-
}
|
|
68
|
-
var h = options.protocol === 'https:' ? https : http;
|
|
69
|
-
var req = h.request(options, function (res) {
|
|
70
|
-
handleResponse(res, context, logger, uuidString, cb);
|
|
71
|
-
});
|
|
72
|
-
req.on('error', function (e) {
|
|
73
|
-
handleError(e, context, logger, uuidString, cb);
|
|
74
|
-
});
|
|
75
|
-
|
|
76
|
-
var form = formData();
|
|
77
|
-
// overwrite getBoundary to use the provided boundary instead of letting the form generate one
|
|
78
|
-
form.getBoundary = function () {
|
|
79
|
-
return boundary;
|
|
80
|
-
};
|
|
81
|
-
if (postData) {
|
|
82
|
-
for (var key in postData) {
|
|
83
|
-
if (typeof(postData[key]) === 'object') {
|
|
84
|
-
if (!postData[key].fileName) {
|
|
85
|
-
cb(new Error(key + ': fileName is required'), null);
|
|
86
|
-
return;
|
|
87
|
-
}
|
|
88
|
-
if (!postData[key].contentType) {
|
|
89
|
-
cb(new Error(key + ': contentType is required'), null);
|
|
90
|
-
return;
|
|
91
|
-
}
|
|
92
|
-
if (!postData[key].content) {
|
|
93
|
-
cb(new Error(key + ': content is required'), null);
|
|
94
|
-
return;
|
|
95
|
-
}
|
|
96
|
-
var opts = {
|
|
97
|
-
filename: postData[key].fileName,
|
|
98
|
-
contentType: postData[key].contentType
|
|
99
|
-
};
|
|
100
|
-
if (postData[key].contentLength || postData[key].contentLength === 0) {
|
|
101
|
-
opts.knownLength = postData[key].contentLength;
|
|
102
|
-
}
|
|
103
|
-
form.append(key, postData[key].content, opts);
|
|
104
|
-
} else {
|
|
105
|
-
form.append(key, postData[key]);
|
|
106
|
-
}
|
|
107
|
-
}
|
|
108
|
-
}
|
|
109
|
-
form.pipe(req);
|
|
110
|
-
};
|
|
111
|
-
|
|
112
|
-
var connect = {
|
|
113
|
-
sendJSON: sendJSON,
|
|
114
|
-
sendMultipart: sendMultipart
|
|
115
|
-
};
|
|
116
|
-
|
|
117
|
-
module.exports = connect;
|
package/utils/context.js
DELETED
|
@@ -1,102 +0,0 @@
|
|
|
1
|
-
var crypto = require('crypto');
|
|
2
|
-
|
|
3
|
-
var _ = require('lodash');
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
/**
|
|
7
|
-
* @param {Array} gcsHeaders Collection of headers that need to be sorted; only headers that start with X-GCS will be returned
|
|
8
|
-
*/
|
|
9
|
-
var getSortedHeadersForContext = function (gcsHeaders) {
|
|
10
|
-
var headers = '';
|
|
11
|
-
if (gcsHeaders) {
|
|
12
|
-
var sortedXGCSHeaders = [];
|
|
13
|
-
_.forEach(gcsHeaders, function (header) {
|
|
14
|
-
if (header.key.toUpperCase().indexOf("X-GCS") === 0) {
|
|
15
|
-
// add this header
|
|
16
|
-
sortedXGCSHeaders.push(header);
|
|
17
|
-
}
|
|
18
|
-
});
|
|
19
|
-
sortedXGCSHeaders = sortedXGCSHeaders.sort(function (a, b) {
|
|
20
|
-
a.key = a.key.toUpperCase();
|
|
21
|
-
b.key = b.key.toUpperCase();
|
|
22
|
-
if (a.key < b.key) {
|
|
23
|
-
return -1;
|
|
24
|
-
} else if (a.key > b.key) {
|
|
25
|
-
return 1;
|
|
26
|
-
} else {
|
|
27
|
-
return 0;
|
|
28
|
-
}
|
|
29
|
-
});
|
|
30
|
-
_.forEach(sortedXGCSHeaders, function (header) {
|
|
31
|
-
headers += header.key.toLowerCase() + ":" + header.value + "\n";
|
|
32
|
-
});
|
|
33
|
-
}
|
|
34
|
-
return headers;
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
var sdkContext = {
|
|
39
|
-
setContext: function (context) {
|
|
40
|
-
this.context = context;
|
|
41
|
-
},
|
|
42
|
-
getContext: function () {
|
|
43
|
-
return this.context;
|
|
44
|
-
},
|
|
45
|
-
getSignature: function (method, contentType, date, gcsHeaders, path) {
|
|
46
|
-
var headers = getSortedHeadersForContext(gcsHeaders);
|
|
47
|
-
return crypto.createHmac("SHA256", this.getContext().secretApiKey).update(method + "\n" + contentType + "\n" + date + "\n" + headers + path + "\n").digest('base64');
|
|
48
|
-
},
|
|
49
|
-
setLogger: function (logger) {
|
|
50
|
-
this.logger = logger;
|
|
51
|
-
},
|
|
52
|
-
getLogger: function () {
|
|
53
|
-
return this.logger;
|
|
54
|
-
},
|
|
55
|
-
setEnableLogging: function (isLoggingEnabled) {
|
|
56
|
-
this.enableLogging = isLoggingEnabled;
|
|
57
|
-
},
|
|
58
|
-
setIdempotenceRequestTimestamp: function (ts) {
|
|
59
|
-
this.idempotenceRequestTimestamp = ts;
|
|
60
|
-
},
|
|
61
|
-
getIdempotenceRequestTimestamp: function () {
|
|
62
|
-
return this.idempotenceRequestTimestamp;
|
|
63
|
-
},
|
|
64
|
-
setIntegrator: function (integrator) {
|
|
65
|
-
this.integrator = integrator;
|
|
66
|
-
},
|
|
67
|
-
getIntegrator: function () {
|
|
68
|
-
return this.integrator;
|
|
69
|
-
},
|
|
70
|
-
// setIntergrator and getIntergrator have been deprecated but need to be supported for backwards compatibility
|
|
71
|
-
setIntergrator: function (integrator) {
|
|
72
|
-
this.integrator = integrator;
|
|
73
|
-
},
|
|
74
|
-
getIntergrator: function () {
|
|
75
|
-
return this.integrator;
|
|
76
|
-
},
|
|
77
|
-
setShoppingCartExtension: function (shoppingCartExtension) {
|
|
78
|
-
if (this.getShoppingCartExtension()) {
|
|
79
|
-
if (this.isLoggingEnabled()) {
|
|
80
|
-
this.getLogger()('error', 'shoppingCartExtension has already been set and cannot be overwritten');
|
|
81
|
-
}
|
|
82
|
-
throw 'shoppingCartExtension has already been set and cannot be overwritten';
|
|
83
|
-
}
|
|
84
|
-
if (shoppingCartExtension) {
|
|
85
|
-
if (shoppingCartExtension.creator && shoppingCartExtension.name && shoppingCartExtension.version) {
|
|
86
|
-
this.shoppingCartExtension = shoppingCartExtension;
|
|
87
|
-
} else {
|
|
88
|
-
if (this.isLoggingEnabled()) {
|
|
89
|
-
this.getLogger()('warn', 'shoppingCartExtension is missing a required property (creator / name / version). Your shoppingCartExtension: ' + JSON.stringify(shoppingCartExtension));
|
|
90
|
-
}
|
|
91
|
-
}
|
|
92
|
-
}
|
|
93
|
-
},
|
|
94
|
-
getShoppingCartExtension: function () {
|
|
95
|
-
return this.shoppingCartExtension;
|
|
96
|
-
},
|
|
97
|
-
isLoggingEnabled: function () {
|
|
98
|
-
return this.enableLogging;
|
|
99
|
-
}
|
|
100
|
-
}
|
|
101
|
-
|
|
102
|
-
module.exports = sdkContext;
|
package/utils/headers.js
DELETED
|
@@ -1,77 +0,0 @@
|
|
|
1
|
-
var dateformat = require('dateformat');
|
|
2
|
-
|
|
3
|
-
var date = function () {
|
|
4
|
-
return dateformat("GMT:ddd, dd mmm yyyy HH:MM:ss") + " GMT";
|
|
5
|
-
};
|
|
6
|
-
|
|
7
|
-
var serverMetaInfo = function (sdkContext) {
|
|
8
|
-
var info = {
|
|
9
|
-
key: "X-GCS-ServerMetaInfo",
|
|
10
|
-
value: {
|
|
11
|
-
'sdkCreator': 'Ingenico',
|
|
12
|
-
'sdkIdentifier': 'NodejsServerSDK/v3.17.0',
|
|
13
|
-
'platformIdentifier': process.env['OS'] + ' Node.js/' + process.versions.node
|
|
14
|
-
}
|
|
15
|
-
};
|
|
16
|
-
if (sdkContext.getIntegrator() !== null) {
|
|
17
|
-
info.value['integrator'] = sdkContext.getIntegrator();
|
|
18
|
-
}
|
|
19
|
-
if (sdkContext.getShoppingCartExtension() !== null) {
|
|
20
|
-
info.value['shoppingCartExtension'] = sdkContext.getShoppingCartExtension();
|
|
21
|
-
}
|
|
22
|
-
info.value = Buffer.from(JSON.stringify(info.value)).toString("base64");
|
|
23
|
-
return info;
|
|
24
|
-
};
|
|
25
|
-
|
|
26
|
-
var isBinaryContent = function (contentType) {
|
|
27
|
-
return !!contentType
|
|
28
|
-
&& !contentType.startsWith("text/")
|
|
29
|
-
&& contentType.indexOf("json") == -1
|
|
30
|
-
&& contentType.indexOf("xml") == -1;
|
|
31
|
-
};
|
|
32
|
-
|
|
33
|
-
var isJSON = function (contentType) {
|
|
34
|
-
return contentType == null || contentType.toLowerCase().startsWith('application/json');
|
|
35
|
-
};
|
|
36
|
-
|
|
37
|
-
var dispositionFilenamePattern = /(?:^|;)\s*filename\s*=\s*(.*?)\s*(?:;|$)/i;
|
|
38
|
-
|
|
39
|
-
var trimQuotes = function (filename) {
|
|
40
|
-
if (filename.length < 2) {
|
|
41
|
-
return filename;
|
|
42
|
-
}
|
|
43
|
-
if ((filename.startsWith('"') && filename.endsWith('"')) || (filename.startsWith("'") && filename.endsWith("'"))) {
|
|
44
|
-
return filename.substring(1, filename.length - 1);
|
|
45
|
-
}
|
|
46
|
-
return filename;
|
|
47
|
-
};
|
|
48
|
-
|
|
49
|
-
var dispositionFilename = function (headers) {
|
|
50
|
-
var disposition = headers['content-disposition'];
|
|
51
|
-
if (disposition) {
|
|
52
|
-
var match = disposition.match(dispositionFilenamePattern);
|
|
53
|
-
if (match) {
|
|
54
|
-
var filename = match[1];
|
|
55
|
-
return trimQuotes(filename);
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
return null;
|
|
59
|
-
};
|
|
60
|
-
|
|
61
|
-
var contentLength = function (headers) {
|
|
62
|
-
var length = headers['content-length'];
|
|
63
|
-
if (length) {
|
|
64
|
-
var intLength = parseInt(length);
|
|
65
|
-
return isNaN(intLength) ? length : intLength;
|
|
66
|
-
}
|
|
67
|
-
return null;
|
|
68
|
-
}
|
|
69
|
-
|
|
70
|
-
module.exports = {
|
|
71
|
-
date: date,
|
|
72
|
-
serverMetaInfo: serverMetaInfo,
|
|
73
|
-
isBinaryContent: isBinaryContent,
|
|
74
|
-
isJSON: isJSON,
|
|
75
|
-
dispositionFilename: dispositionFilename,
|
|
76
|
-
contentLength: contentLength
|
|
77
|
-
};
|
package/utils/obfuscate.js
DELETED
|
@@ -1,101 +0,0 @@
|
|
|
1
|
-
var traverse = require('traverse');
|
|
2
|
-
var _ = require("lodash");
|
|
3
|
-
|
|
4
|
-
var REPLACECHAR = "*";
|
|
5
|
-
var INDENT = 2;
|
|
6
|
-
|
|
7
|
-
var withKeepEndCount = function (json, property, count) {
|
|
8
|
-
traverse(json).forEach(function (node) {
|
|
9
|
-
if (this.key === property) {
|
|
10
|
-
node = "" + node; // make sure it's a string
|
|
11
|
-
var l = node.length;
|
|
12
|
-
var end = node.substring(l - count);
|
|
13
|
-
this.update(_.padStart(end, l, REPLACECHAR));
|
|
14
|
-
}
|
|
15
|
-
});
|
|
16
|
-
return json;
|
|
17
|
-
};
|
|
18
|
-
var withAll = function (json, property) {
|
|
19
|
-
traverse(json).forEach(function (node) {
|
|
20
|
-
if (this.key === property) {
|
|
21
|
-
node = "" + node; // make sure it's a string
|
|
22
|
-
var l = node.length;
|
|
23
|
-
this.update(_.padStart('', l, REPLACECHAR));
|
|
24
|
-
}
|
|
25
|
-
});
|
|
26
|
-
return json;
|
|
27
|
-
};
|
|
28
|
-
var withKeepStartCount = function (json, property, count) {
|
|
29
|
-
traverse(json).forEach(function (node) {
|
|
30
|
-
if (this.key === property) {
|
|
31
|
-
node = "" + node; // make sure it's a string
|
|
32
|
-
var l = node.length;
|
|
33
|
-
var end = node.substring(l - count);
|
|
34
|
-
this.update(_.padEnd(end, l, REPLACECHAR));
|
|
35
|
-
}
|
|
36
|
-
});
|
|
37
|
-
return json;
|
|
38
|
-
};
|
|
39
|
-
var withFixedLength = function (json, property, count) {
|
|
40
|
-
traverse(json).forEach(function (node) {
|
|
41
|
-
if (this.key === property) {
|
|
42
|
-
this.update(_.padEnd('', count, REPLACECHAR));
|
|
43
|
-
}
|
|
44
|
-
});
|
|
45
|
-
return json;
|
|
46
|
-
};
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
var obfuscate = {
|
|
50
|
-
getObfuscated : function (input, context) {
|
|
51
|
-
if (!context) {
|
|
52
|
-
context = require('../utils/context');
|
|
53
|
-
}
|
|
54
|
-
if (!input) {
|
|
55
|
-
return '';
|
|
56
|
-
}
|
|
57
|
-
if (typeof input === "string") {
|
|
58
|
-
try {
|
|
59
|
-
input = JSON.parse(input);
|
|
60
|
-
} catch (e) {
|
|
61
|
-
var logger = context.getLogger();
|
|
62
|
-
if (context.isLoggingEnabled()) {
|
|
63
|
-
logger('warn', 'Cannot parse input to JSON: ' + input);
|
|
64
|
-
}
|
|
65
|
-
return input;
|
|
66
|
-
}
|
|
67
|
-
}
|
|
68
|
-
var obfuscated = JSON.parse(JSON.stringify(input));
|
|
69
|
-
obfuscated = withKeepEndCount(obfuscated, "cardNumber", 4);
|
|
70
|
-
obfuscated = withKeepEndCount(obfuscated, "expiryDate", 2);
|
|
71
|
-
obfuscated = withAll(obfuscated, "cvv");
|
|
72
|
-
obfuscated = withKeepEndCount(obfuscated, "iban", 4);
|
|
73
|
-
obfuscated = withKeepEndCount(obfuscated, "accountNumber", 4);
|
|
74
|
-
obfuscated = withKeepEndCount(obfuscated, "reformattedAccountNumber", 4);
|
|
75
|
-
obfuscated = withKeepStartCount(obfuscated, "bin", 6);
|
|
76
|
-
// key-value pairs can contain any value, like credit card numbers or other private data; mask all values
|
|
77
|
-
obfuscated = withAll(obfuscated, "value");
|
|
78
|
-
obfuscated = withFixedLength(obfuscated, "keyId", 8);
|
|
79
|
-
obfuscated = withFixedLength(obfuscated, "secretKey", 8);
|
|
80
|
-
obfuscated = withFixedLength(obfuscated, "publicKey", 8);
|
|
81
|
-
obfuscated = withFixedLength(obfuscated, "userAuthenticationToken", 8);
|
|
82
|
-
// encrypted payload is a base64 string that contains an encrypted value; to make decrypting even harder, just mask the entire thing
|
|
83
|
-
obfuscated = withFixedLength(obfuscated, "encryptedPayload", 8);
|
|
84
|
-
// decrypted payload is a simple base64 string that may contain credit card numbers or other private data; just mask the entire thing
|
|
85
|
-
obfuscated = withFixedLength(obfuscated, "decryptedPayload", 8);
|
|
86
|
-
// encrypted customer input is similar to encrypted payload
|
|
87
|
-
obfuscated = withFixedLength(obfuscated, "encryptedCustomerInput", 8);
|
|
88
|
-
|
|
89
|
-
// headers
|
|
90
|
-
obfuscated = withFixedLength(obfuscated, "Authorization", 8);
|
|
91
|
-
obfuscated = withFixedLength(obfuscated, "WWW-Authenticate", 8);
|
|
92
|
-
obfuscated = withFixedLength(obfuscated, "Proxy-Authenticate", 8);
|
|
93
|
-
obfuscated = withFixedLength(obfuscated, "Proxy-Authorization", 8);
|
|
94
|
-
obfuscated = withFixedLength(obfuscated, "X-GCS-Authentication-Token", 8);
|
|
95
|
-
obfuscated = withFixedLength(obfuscated, "X-GCS-CallerPassword", 8);
|
|
96
|
-
|
|
97
|
-
return JSON.stringify(obfuscated, null, INDENT);
|
|
98
|
-
}
|
|
99
|
-
};
|
|
100
|
-
|
|
101
|
-
module.exports = obfuscate;
|
package/webhooks/index.js
DELETED
|
@@ -1,133 +0,0 @@
|
|
|
1
|
-
var crypto = require('crypto');
|
|
2
|
-
var compare = require('secure-compare');
|
|
3
|
-
|
|
4
|
-
var webhooksContext = {};
|
|
5
|
-
|
|
6
|
-
var secretKeyStore = {};
|
|
7
|
-
|
|
8
|
-
// cb: function (error, event)
|
|
9
|
-
var unmarshal = function (body, requestHeaders, cb) {
|
|
10
|
-
validate(body, requestHeaders, function (error) {
|
|
11
|
-
if (error) {
|
|
12
|
-
cb(error, null);
|
|
13
|
-
} else {
|
|
14
|
-
try {
|
|
15
|
-
var event = JSON.parse(body);
|
|
16
|
-
validateApiVersion(event);
|
|
17
|
-
cb(null, event);
|
|
18
|
-
} catch (e) {
|
|
19
|
-
cb(e, null);
|
|
20
|
-
}
|
|
21
|
-
}
|
|
22
|
-
});
|
|
23
|
-
};
|
|
24
|
-
|
|
25
|
-
// cb: function (error)
|
|
26
|
-
var validate = function (body, requestHeaders, cb) {
|
|
27
|
-
try {
|
|
28
|
-
validateBody(body, requestHeaders, cb);
|
|
29
|
-
} catch (e) {
|
|
30
|
-
cb(e);
|
|
31
|
-
}
|
|
32
|
-
};
|
|
33
|
-
|
|
34
|
-
// validation utility functions
|
|
35
|
-
|
|
36
|
-
// cb: function (error)
|
|
37
|
-
var validateBody = function (body, requestHeaders, cb) {
|
|
38
|
-
try {
|
|
39
|
-
var signature = getHeaderValue(requestHeaders, 'X-GCS-Signature');
|
|
40
|
-
var keyId = getHeaderValue(requestHeaders, 'X-GCS-KeyId');
|
|
41
|
-
|
|
42
|
-
webhooksContext.getSecretKey(keyId, function(error, secretKey) {
|
|
43
|
-
if (error) {
|
|
44
|
-
cb(error);
|
|
45
|
-
} else {
|
|
46
|
-
var expectedSignature = crypto.createHmac('sha256', secretKey).update(body).digest('base64');
|
|
47
|
-
if (compare(signature, expectedSignature)) {
|
|
48
|
-
cb(null);
|
|
49
|
-
} else {
|
|
50
|
-
cb(new Error("failed to validate signature '" + signature + "'"));
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
});
|
|
54
|
-
} catch (e) {
|
|
55
|
-
cb(e);
|
|
56
|
-
}
|
|
57
|
-
};
|
|
58
|
-
|
|
59
|
-
// general utility methods
|
|
60
|
-
|
|
61
|
-
// returns void || throws Error {eventApiVersion, sdkApiVersion}
|
|
62
|
-
var validateApiVersion = function (event) {
|
|
63
|
-
var sdkApiVersion = wrapper.API_VERSION;
|
|
64
|
-
if (sdkApiVersion !== event.apiVersion) {
|
|
65
|
-
var e = new Error('event API version ' + event.apiVersion + ' is not compatible with SDK API version ' + sdkApiVersion);
|
|
66
|
-
e.eventApiVersion = event.apiVersion;
|
|
67
|
-
e.sdkApiVersion = sdkApiVersion;
|
|
68
|
-
throw e;
|
|
69
|
-
}
|
|
70
|
-
};
|
|
71
|
-
|
|
72
|
-
// returns string || throws Error
|
|
73
|
-
var getHeaderValue = function(requestHeaders, headerName) {
|
|
74
|
-
var lowerCaseHeaderName = headerName.toLowerCase();
|
|
75
|
-
for (var name in requestHeaders) {
|
|
76
|
-
if (name != null && lowerCaseHeaderName === name.toLowerCase()) {
|
|
77
|
-
return requestHeaders[name];
|
|
78
|
-
}
|
|
79
|
-
}
|
|
80
|
-
throw new Error("could not find header '" + headerName + "'");
|
|
81
|
-
};
|
|
82
|
-
|
|
83
|
-
// module exports
|
|
84
|
-
|
|
85
|
-
var wrapper = {
|
|
86
|
-
init: function (context) {
|
|
87
|
-
if (!context
|
|
88
|
-
|| !context.getSecretKey
|
|
89
|
-
|| typeof context.getSecretKey != 'function') {
|
|
90
|
-
throw new Error('no valid secret key store given');
|
|
91
|
-
}
|
|
92
|
-
webhooksContext.getSecretKey = context.getSecretKey;
|
|
93
|
-
|
|
94
|
-
return wrapper;
|
|
95
|
-
},
|
|
96
|
-
|
|
97
|
-
validate: validate,
|
|
98
|
-
unmarshal: unmarshal,
|
|
99
|
-
|
|
100
|
-
inMemorySecretKeyStore: {
|
|
101
|
-
getSecretKey: function (keyId, cb) {
|
|
102
|
-
var secretKey = secretKeyStore[keyId];
|
|
103
|
-
if (!secretKey) {
|
|
104
|
-
var e = new Error('could not find secret key for key id ' + keyId);
|
|
105
|
-
e.keyId = keyId;
|
|
106
|
-
cb(e, null);
|
|
107
|
-
} else {
|
|
108
|
-
cb(null, secretKey);
|
|
109
|
-
}
|
|
110
|
-
},
|
|
111
|
-
storeSecretKey: function (keyId, secretKey) {
|
|
112
|
-
if (!keyId || !keyId.trim()) {
|
|
113
|
-
throw new Error('keyId is required');
|
|
114
|
-
}
|
|
115
|
-
if (!secretKey || !secretKey.trim()) {
|
|
116
|
-
throw new Error('secretKey is required');
|
|
117
|
-
}
|
|
118
|
-
secretKeyStore[keyId] = secretKey;
|
|
119
|
-
},
|
|
120
|
-
removeSecretKey: function (keyId) {
|
|
121
|
-
delete secretKeyStore[keyId];
|
|
122
|
-
},
|
|
123
|
-
clear: function () {
|
|
124
|
-
for (var prop in secretKeyStore) {
|
|
125
|
-
if (secretKeyStore.hasOwnProperty(prop)) {
|
|
126
|
-
delete secretKeyStore[prop];
|
|
127
|
-
}
|
|
128
|
-
}
|
|
129
|
-
}
|
|
130
|
-
}
|
|
131
|
-
};
|
|
132
|
-
|
|
133
|
-
module.exports = wrapper;
|