Feat/one off charge#12
Merged
Merged
Conversation
`createSumitChargeRoute` previously hardcoded the recurring endpoint and required `item.durationMonths`. It now accepts `mode: "recurring" | "oneOff"` (default `"recurring"` for back-compat). One-off mode: - Targets `POST /billing/payments/charge/` instead of `/billing/recurring/charge/`. - Calls `buildOneOffChargePayload` from sumit-api — Items omit `Duration_Months` / `Recurrence`. - Drops the `durationMonths` validation requirement. Same `<SumitCheckout />`, same `SingleUseToken` — only the route's `mode` changes. Switches the response normalizer to the new `normalizeChargeResponse` alias (was `normalizeRecurringChargeResponse`); behaviour is identical since the underlying logic always handled both shapes. 3 new tests cover the oneOff happy path, the relaxed durationMonths requirement, and the still-enforced recurring requirement. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Additive release: createSumitChargeRoute now accepts mode: "recurring" | "oneOff" (default recurring). Bumps the sumit-api peer dep to >=0.2.0 because one-off mode imports buildOneOffChargePayload. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 55a9ef071b
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
BenKalsky
added a commit
that referenced
this pull request
Jul 2, 2026
* fix: export SumitChargeMode and validate mode at route creation Codex findings on #12: the 0.2.0 changelog advertised the SumitChargeMode type export but the ./next barrel never re-exported it, and an unknown mode from an untyped consumer resolved DEFAULT_PATHS[mode] to undefined, sending requests to https://api.sumit.co.ilundefined. Export the type and fail fast with a clear configuration error. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> * ci: harden publish workflows Codex findings on #4 and #7: workflow_dispatch could publish from any ref (now main-only), the sumit-api sibling checkout was unpinned and is now unnecessary (the dependency installs from npm), and the GitHub Packages workflow pointed installs at npm.pkg.github.com where public packages don't resolve — the publish step configures that registry and its auth itself. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> * fix: reject prototype keys as charge modes Codex follow-up on the new mode guard: `in` walks the prototype chain, so mode: "toString" passed validation and resolved DEFAULT_PATHS to an inherited function. Compare against the two known modes explicitly. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> --------- Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.