@vonpay/checkout-cli 0.12.0 → 0.14.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/dist/index.js +2397 -12
- package/package.json +6 -4
- package/dist/app-info.d.ts +0 -5
- package/dist/app-info.d.ts.map +0 -1
- package/dist/app-info.js +0 -11
- package/dist/app-info.js.map +0 -1
- package/dist/client-factory.d.ts +0 -10
- package/dist/client-factory.d.ts.map +0 -1
- package/dist/client-factory.js +0 -31
- package/dist/client-factory.js.map +0 -1
- package/dist/commands/capabilities.d.ts +0 -15
- package/dist/commands/capabilities.d.ts.map +0 -1
- package/dist/commands/capabilities.js +0 -99
- package/dist/commands/capabilities.js.map +0 -1
- package/dist/commands/checkout.d.ts +0 -3
- package/dist/commands/checkout.d.ts.map +0 -1
- package/dist/commands/checkout.js +0 -39
- package/dist/commands/checkout.js.map +0 -1
- package/dist/commands/doctor.d.ts +0 -59
- package/dist/commands/doctor.d.ts.map +0 -1
- package/dist/commands/doctor.js +0 -366
- package/dist/commands/doctor.js.map +0 -1
- package/dist/commands/health.d.ts +0 -3
- package/dist/commands/health.d.ts.map +0 -1
- package/dist/commands/health.js +0 -52
- package/dist/commands/health.js.map +0 -1
- package/dist/commands/init.d.ts +0 -10
- package/dist/commands/init.d.ts.map +0 -1
- package/dist/commands/init.js +0 -112
- package/dist/commands/init.js.map +0 -1
- package/dist/commands/listen.d.ts +0 -19
- package/dist/commands/listen.d.ts.map +0 -1
- package/dist/commands/listen.js +0 -249
- package/dist/commands/listen.js.map +0 -1
- package/dist/commands/login.d.ts +0 -27
- package/dist/commands/login.d.ts.map +0 -1
- package/dist/commands/login.js +0 -75
- package/dist/commands/login.js.map +0 -1
- package/dist/commands/logout.d.ts +0 -3
- package/dist/commands/logout.d.ts.map +0 -1
- package/dist/commands/logout.js +0 -23
- package/dist/commands/logout.js.map +0 -1
- package/dist/commands/payment-intents.d.ts +0 -62
- package/dist/commands/payment-intents.d.ts.map +0 -1
- package/dist/commands/payment-intents.js +0 -271
- package/dist/commands/payment-intents.js.map +0 -1
- package/dist/commands/refunds.d.ts +0 -40
- package/dist/commands/refunds.d.ts.map +0 -1
- package/dist/commands/refunds.js +0 -142
- package/dist/commands/refunds.js.map +0 -1
- package/dist/commands/sessions.d.ts +0 -16
- package/dist/commands/sessions.d.ts.map +0 -1
- package/dist/commands/sessions.js +0 -152
- package/dist/commands/sessions.js.map +0 -1
- package/dist/commands/tokens.d.ts +0 -3
- package/dist/commands/tokens.d.ts.map +0 -1
- package/dist/commands/tokens.js +0 -73
- package/dist/commands/tokens.js.map +0 -1
- package/dist/commands/trigger.d.ts +0 -38
- package/dist/commands/trigger.d.ts.map +0 -1
- package/dist/commands/trigger.js +0 -246
- package/dist/commands/trigger.js.map +0 -1
- package/dist/config.d.ts +0 -22
- package/dist/config.d.ts.map +0 -1
- package/dist/config.js +0 -72
- package/dist/config.js.map +0 -1
- package/dist/index.d.ts +0 -3
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/utils/errors.d.ts +0 -80
- package/dist/utils/errors.d.ts.map +0 -1
- package/dist/utils/errors.js +0 -179
- package/dist/utils/errors.js.map +0 -1
- package/dist/utils/forward-to.d.ts +0 -38
- package/dist/utils/forward-to.d.ts.map +0 -1
- package/dist/utils/forward-to.js +0 -92
- package/dist/utils/forward-to.js.map +0 -1
- package/dist/utils/json-errors.d.ts +0 -16
- package/dist/utils/json-errors.d.ts.map +0 -1
- package/dist/utils/json-errors.js +0 -41
- package/dist/utils/json-errors.js.map +0 -1
- package/dist/utils/listen-forward.d.ts +0 -49
- package/dist/utils/listen-forward.d.ts.map +0 -1
- package/dist/utils/listen-forward.js +0 -113
- package/dist/utils/listen-forward.js.map +0 -1
- package/dist/utils/listen-output.d.ts +0 -52
- package/dist/utils/listen-output.d.ts.map +0 -1
- package/dist/utils/listen-output.js +0 -85
- package/dist/utils/listen-output.js.map +0 -1
- package/dist/utils/live-key.d.ts +0 -22
- package/dist/utils/live-key.d.ts.map +0 -1
- package/dist/utils/live-key.js +0 -37
- package/dist/utils/live-key.js.map +0 -1
- package/dist/utils/metadata.d.ts +0 -2
- package/dist/utils/metadata.d.ts.map +0 -1
- package/dist/utils/metadata.js +0 -31
- package/dist/utils/metadata.js.map +0 -1
- package/dist/utils/sanitize.d.ts +0 -4
- package/dist/utils/sanitize.d.ts.map +0 -1
- package/dist/utils/sanitize.js +0 -18
- package/dist/utils/sanitize.js.map +0 -1
- package/dist/utils/spinner.d.ts +0 -15
- package/dist/utils/spinner.d.ts.map +0 -1
- package/dist/utils/spinner.js +0 -18
- package/dist/utils/spinner.js.map +0 -1
- package/dist/utils/sse-consumer.d.ts +0 -81
- package/dist/utils/sse-consumer.d.ts.map +0 -1
- package/dist/utils/sse-consumer.js +0 -172
- package/dist/utils/sse-consumer.js.map +0 -1
- package/dist/utils/sse-parser.d.ts +0 -63
- package/dist/utils/sse-parser.d.ts.map +0 -1
- package/dist/utils/sse-parser.js +0 -149
- package/dist/utils/sse-parser.js.map +0 -1
package/dist/utils/sse-parser.js
DELETED
|
@@ -1,149 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Pure incremental parser for the Server-Sent Events wire format
|
|
3
|
-
* (WHATWG HTML §9.2.6 "Parsing an event stream").
|
|
4
|
-
*
|
|
5
|
-
* Decoupled from I/O so the consumer can drive it from any byte source
|
|
6
|
-
* (fetch ReadableStream, Node Readable, in-memory buffer in tests).
|
|
7
|
-
*
|
|
8
|
-
* Spec details that are easy to get wrong:
|
|
9
|
-
* - Frame separator is one blank line — any of `\n\n`, `\r\n\r\n`, `\r\r`.
|
|
10
|
-
* - A line starting with `:` is a comment — ignored (used as heartbeat).
|
|
11
|
-
* - `field: value` — the single space after `:` is stripped if present.
|
|
12
|
-
* - Multiple `data:` lines within a frame concatenate with `\n` between them.
|
|
13
|
-
* - `id:` sets the parser's lastEventId for the NEXT and subsequent
|
|
14
|
-
* dispatched events (sticky across frames until overridden).
|
|
15
|
-
* - `event:` defaults to `"message"` when absent.
|
|
16
|
-
* - `retry:` is reported on the event but the consumer decides whether
|
|
17
|
-
* to honor it (we expose it; consumer caps with its own backoff).
|
|
18
|
-
* - Unknown fields are ignored — additive evolution is safe.
|
|
19
|
-
*
|
|
20
|
-
* Stateful only in `lastEventId` (per spec). Caller drives by repeatedly
|
|
21
|
-
* calling feed(chunk) on incoming bytes; events come back per call.
|
|
22
|
-
*/
|
|
23
|
-
const FRAME_SEPARATOR_RE = /\r\n\r\n|\r\r|\n\n/;
|
|
24
|
-
const LINE_SEPARATOR_RE = /\r\n|\r|\n/;
|
|
25
|
-
/**
|
|
26
|
-
* Hard cap on the in-flight buffer. A malicious or buggy SSE source
|
|
27
|
-
* could otherwise stream bytes without ever emitting a frame separator
|
|
28
|
-
* and grow the buffer until OOM. 1 MB is comfortably larger than any
|
|
29
|
-
* realistic single webhook-attempt frame (low-tens-of-KB even with
|
|
30
|
-
* deep metadata) but small enough that a runaway can never crash a
|
|
31
|
-
* developer's CLI. Tunable via the constructor option.
|
|
32
|
-
*/
|
|
33
|
-
const DEFAULT_MAX_BUFFER_BYTES = 1_048_576;
|
|
34
|
-
export class SseBufferOverflowError extends Error {
|
|
35
|
-
cap;
|
|
36
|
-
constructor(cap) {
|
|
37
|
-
super(`SSE frame buffer exceeded ${cap} bytes — closing stream`);
|
|
38
|
-
this.cap = cap;
|
|
39
|
-
this.name = "SseBufferOverflowError";
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
export class SseParser {
|
|
43
|
-
buffer = "";
|
|
44
|
-
lastEventId;
|
|
45
|
-
maxBufferBytes;
|
|
46
|
-
constructor(options = {}) {
|
|
47
|
-
this.maxBufferBytes = options.maxBufferBytes ?? DEFAULT_MAX_BUFFER_BYTES;
|
|
48
|
-
}
|
|
49
|
-
/**
|
|
50
|
-
* Feed a chunk of decoded text. Returns any events that completed within
|
|
51
|
-
* this chunk. The remainder (partial frame) is held internally and
|
|
52
|
-
* concatenated with the next chunk.
|
|
53
|
-
*
|
|
54
|
-
* Throws {@link SseBufferOverflowError} when the in-flight buffer
|
|
55
|
-
* exceeds `maxBufferBytes` — the consumer's reconnect-on-error loop
|
|
56
|
-
* recovers by discarding the buffer and re-establishing the
|
|
57
|
-
* connection.
|
|
58
|
-
*/
|
|
59
|
-
feed(chunk) {
|
|
60
|
-
if (this.buffer.length + chunk.length > this.maxBufferBytes) {
|
|
61
|
-
this.buffer = "";
|
|
62
|
-
throw new SseBufferOverflowError(this.maxBufferBytes);
|
|
63
|
-
}
|
|
64
|
-
this.buffer += chunk;
|
|
65
|
-
const out = [];
|
|
66
|
-
let match = FRAME_SEPARATOR_RE.exec(this.buffer);
|
|
67
|
-
while (match) {
|
|
68
|
-
const frame = this.buffer.slice(0, match.index);
|
|
69
|
-
this.buffer = this.buffer.slice(match.index + match[0].length);
|
|
70
|
-
const event = this.parseFrame(frame);
|
|
71
|
-
if (event)
|
|
72
|
-
out.push(event);
|
|
73
|
-
match = FRAME_SEPARATOR_RE.exec(this.buffer);
|
|
74
|
-
}
|
|
75
|
-
return out;
|
|
76
|
-
}
|
|
77
|
-
/** Drain any in-flight buffer as a final event. Used when the source closes mid-frame and the consumer wants to surface the partial. Returns at most one event. Most callers don't need this — for a well-behaved server-side stream the parser never holds a complete trailing event without a separator. */
|
|
78
|
-
flush() {
|
|
79
|
-
if (this.buffer.length === 0)
|
|
80
|
-
return undefined;
|
|
81
|
-
const frame = this.buffer;
|
|
82
|
-
this.buffer = "";
|
|
83
|
-
return this.parseFrame(frame);
|
|
84
|
-
}
|
|
85
|
-
parseFrame(frame) {
|
|
86
|
-
const lines = frame.split(LINE_SEPARATOR_RE);
|
|
87
|
-
let type = "message";
|
|
88
|
-
const dataLines = [];
|
|
89
|
-
let frameId = undefined;
|
|
90
|
-
let frameRetry = undefined;
|
|
91
|
-
let sawAnyField = false;
|
|
92
|
-
for (const line of lines) {
|
|
93
|
-
if (line.length === 0)
|
|
94
|
-
continue;
|
|
95
|
-
if (line.startsWith(":"))
|
|
96
|
-
continue; // comment
|
|
97
|
-
const colonIdx = line.indexOf(":");
|
|
98
|
-
const field = colonIdx === -1 ? line : line.slice(0, colonIdx);
|
|
99
|
-
let value = colonIdx === -1
|
|
100
|
-
? ""
|
|
101
|
-
: line.slice(colonIdx + 1).replace(/^ /, ""); // strip single leading space per spec
|
|
102
|
-
sawAnyField = true;
|
|
103
|
-
switch (field) {
|
|
104
|
-
case "event":
|
|
105
|
-
if (value.length > 0)
|
|
106
|
-
type = value;
|
|
107
|
-
break;
|
|
108
|
-
case "data":
|
|
109
|
-
dataLines.push(value);
|
|
110
|
-
break;
|
|
111
|
-
case "id":
|
|
112
|
-
// Per spec: id cannot contain NUL. We additionally cap length —
|
|
113
|
-
// an attacker who controls the SSE source could otherwise grow
|
|
114
|
-
// lastEventId without bound across reconnects.
|
|
115
|
-
if (!value.includes("\0") && value.length <= 256) {
|
|
116
|
-
frameId = value;
|
|
117
|
-
this.lastEventId = value;
|
|
118
|
-
}
|
|
119
|
-
break;
|
|
120
|
-
case "retry":
|
|
121
|
-
if (/^\d+$/.test(value)) {
|
|
122
|
-
frameRetry = parseInt(value, 10);
|
|
123
|
-
}
|
|
124
|
-
break;
|
|
125
|
-
// unknown fields are ignored per spec
|
|
126
|
-
}
|
|
127
|
-
}
|
|
128
|
-
// Per spec: a frame with no data fields is not dispatched, even if it
|
|
129
|
-
// had an `id:` (id is sticky but the frame itself emits nothing).
|
|
130
|
-
if (dataLines.length === 0) {
|
|
131
|
-
// If the frame had ONLY comments / heartbeat / id, we still consumed
|
|
132
|
-
// the frame separator — return undefined so the consumer doesn't see
|
|
133
|
-
// a noise event. lastEventId is already updated above.
|
|
134
|
-
void sawAnyField;
|
|
135
|
-
return undefined;
|
|
136
|
-
}
|
|
137
|
-
return {
|
|
138
|
-
type,
|
|
139
|
-
data: dataLines.join("\n"),
|
|
140
|
-
lastEventId: frameId ?? this.lastEventId,
|
|
141
|
-
retry: frameRetry,
|
|
142
|
-
};
|
|
143
|
-
}
|
|
144
|
-
/** Current sticky id. Consumer uses this for the Last-Event-ID header on reconnect. */
|
|
145
|
-
getLastEventId() {
|
|
146
|
-
return this.lastEventId;
|
|
147
|
-
}
|
|
148
|
-
}
|
|
149
|
-
//# sourceMappingURL=sse-parser.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"sse-parser.js","sourceRoot":"","sources":["../../src/utils/sse-parser.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAaH,MAAM,kBAAkB,GAAG,oBAAoB,CAAC;AAChD,MAAM,iBAAiB,GAAG,YAAY,CAAC;AAEvC;;;;;;;GAOG;AACH,MAAM,wBAAwB,GAAG,SAAS,CAAC;AAE3C,MAAM,OAAO,sBAAuB,SAAQ,KAAK;IACnB;IAA5B,YAA4B,GAAW;QACrC,KAAK,CAAC,6BAA6B,GAAG,yBAAyB,CAAC,CAAC;QADvC,QAAG,GAAH,GAAG,CAAQ;QAErC,IAAI,CAAC,IAAI,GAAG,wBAAwB,CAAC;IACvC,CAAC;CACF;AAOD,MAAM,OAAO,SAAS;IACZ,MAAM,GAAG,EAAE,CAAC;IACZ,WAAW,CAAqB;IACvB,cAAc,CAAS;IAExC,YAAY,UAA4B,EAAE;QACxC,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC,cAAc,IAAI,wBAAwB,CAAC;IAC3E,CAAC;IAED;;;;;;;;;OASG;IACH,IAAI,CAAC,KAAa;QAChB,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;YAC5D,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;YACjB,MAAM,IAAI,sBAAsB,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QACxD,CAAC;QACD,IAAI,CAAC,MAAM,IAAI,KAAK,CAAC;QACrB,MAAM,GAAG,GAAe,EAAE,CAAC;QAE3B,IAAI,KAAK,GAAG,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACjD,OAAO,KAAK,EAAE,CAAC;YACb,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;YAChD,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;YAC/D,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;YACrC,IAAI,KAAK;gBAAE,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAC3B,KAAK,GAAG,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC/C,CAAC;QAED,OAAO,GAAG,CAAC;IACb,CAAC;IAED,8SAA8S;IAC9S,KAAK;QACH,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,SAAS,CAAC;QAC/C,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC;QAC1B,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;QACjB,OAAO,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;IAChC,CAAC;IAEO,UAAU,CAAC,KAAa;QAC9B,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;QAC7C,IAAI,IAAI,GAAG,SAAS,CAAC;QACrB,MAAM,SAAS,GAAa,EAAE,CAAC;QAC/B,IAAI,OAAO,GAAuB,SAAS,CAAC;QAC5C,IAAI,UAAU,GAAuB,SAAS,CAAC;QAC/C,IAAI,WAAW,GAAG,KAAK,CAAC;QAExB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;gBAAE,SAAS;YAChC,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;gBAAE,SAAS,CAAC,UAAU;YAE9C,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YACnC,MAAM,KAAK,GAAG,QAAQ,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;YAC/D,IAAI,KAAK,GACP,QAAQ,KAAK,CAAC,CAAC;gBACb,CAAC,CAAC,EAAE;gBACJ,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,sCAAsC;YAExF,WAAW,GAAG,IAAI,CAAC;YACnB,QAAQ,KAAK,EAAE,CAAC;gBACd,KAAK,OAAO;oBACV,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;wBAAE,IAAI,GAAG,KAAK,CAAC;oBACnC,MAAM;gBACR,KAAK,MAAM;oBACT,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;oBACtB,MAAM;gBACR,KAAK,IAAI;oBACP,gEAAgE;oBAChE,+DAA+D;oBAC/D,+CAA+C;oBAC/C,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,MAAM,IAAI,GAAG,EAAE,CAAC;wBACjD,OAAO,GAAG,KAAK,CAAC;wBAChB,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;oBAC3B,CAAC;oBACD,MAAM;gBACR,KAAK,OAAO;oBACV,IAAI,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;wBACxB,UAAU,GAAG,QAAQ,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;oBACnC,CAAC;oBACD,MAAM;gBACR,sCAAsC;YACxC,CAAC;QACH,CAAC;QAED,sEAAsE;QACtE,kEAAkE;QAClE,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC3B,qEAAqE;YACrE,qEAAqE;YACrE,uDAAuD;YACvD,KAAK,WAAW,CAAC;YACjB,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,OAAO;YACL,IAAI;YACJ,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC;YAC1B,WAAW,EAAE,OAAO,IAAI,IAAI,CAAC,WAAW;YACxC,KAAK,EAAE,UAAU;SAClB,CAAC;IACJ,CAAC;IAED,uFAAuF;IACvF,cAAc;QACZ,OAAO,IAAI,CAAC,WAAW,CAAC;IAC1B,CAAC;CACF"}
|