isWithinIdempotencyReplayWindow — @gj-kit/toss-payments
@gj-kit/toss-payments/server에서 공개하는 function입니다. package version 0.6.1의 release declaration을 그대로 표시합니다.
검증된 import 예제
섹션 제목: “검증된 import 예제”import { isWithinIdempotencyReplayWindow } from '@gj-kit/toss-payments/server';시그니처, 매개변수, 반환 타입
섹션 제목: “시그니처, 매개변수, 반환 타입”/** * Whether a key first used at `issuedAt` may still be **replayed** (same key, same body) at `now`. * * Exact semantics: returns `true` when `now - issuedAt < windowMs` — elapsed time strictly less * than the window. At exactly `windowMs` the window has closed and the result is `false`. * A negative elapsed time (`issuedAt` after `now`, e.g. clock skew) counts as within the window; * reject implausible future timestamps separately if your flow needs to. Any non-finite operand * (invalid `Date`, `NaN`, `±Infinity` — in `issuedAt`, `now`, or `windowMs`) yields `false`, the * side that never resubmits. * * `windowMs` defaults to {@link DEFAULT_IDEMPOTENCY_REPLAY_WINDOW_MS}; pass * {@link TOSS_IDEMPOTENCY_KEY_TTL_MS} only if you deliberately want the provider's full window * with no safety margin. */declare function isWithinIdempotencyReplayWindow(issuedAt: Date | number, now: Date | number, windowMs?: number): boolean;이 선언은 매개변수, optionality, 제네릭, 반환값, 공개 union/type 계약의 정본입니다. 호출 전 필요한 환경·권한·오류 경계는 패키지 Golden path와 이 subpath의 import 조건을 함께 확인하세요.
Release context
섹션 제목: “Release context”- 패키지:
@gj-kit/toss-payments - 버전:
0.6.1 - 공개 entry:
./server - 소스: GitHub
구현 주석
섹션 제목: “구현 주석”Whether a key first used at issuedAt may still be replayed (same key, same body) at now.
Exact semantics: returns true when now - issuedAt < windowMs — elapsed time strictly less
than the window. At exactly windowMs the window has closed and the result is false.
A negative elapsed time (issuedAt after now, e.g. clock skew) counts as within the window;
reject implausible future timestamps separately if your flow needs to. Any non-finite operand
(invalid Date, NaN, ±Infinity — in issuedAt, now, or windowMs) yields false, the
side that never resubmits.
windowMs defaults to {@link DEFAULT_IDEMPOTENCY_REPLAY_WINDOW_MS}; pass
{@link TOSS_IDEMPOTENCY_KEY_TTL_MS} only if you deliberately want the provider’s full window
with no safety margin.