@sapiom/browser-pay 0.0.0-stage → 0.1.1

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.
Files changed (69) hide show
  1. package/CHANGELOG.md +21 -0
  2. package/LICENSE +21 -0
  3. package/README.md +97 -2
  4. package/dist/cjs/cdp.d.ts +24 -0
  5. package/dist/cjs/cdp.d.ts.map +1 -0
  6. package/dist/cjs/cdp.js +390 -0
  7. package/dist/cjs/cdp.js.map +1 -0
  8. package/dist/cjs/contract.d.ts +30 -0
  9. package/dist/cjs/contract.d.ts.map +1 -0
  10. package/dist/cjs/contract.js +57 -0
  11. package/dist/cjs/contract.js.map +1 -0
  12. package/dist/cjs/detect.d.ts +7 -0
  13. package/dist/cjs/detect.d.ts.map +1 -0
  14. package/dist/cjs/detect.js +111 -0
  15. package/dist/cjs/detect.js.map +1 -0
  16. package/dist/cjs/guards.d.ts +2 -0
  17. package/dist/cjs/guards.d.ts.map +1 -0
  18. package/dist/cjs/guards.js +7 -0
  19. package/dist/cjs/guards.js.map +1 -0
  20. package/dist/cjs/index.d.ts +8 -0
  21. package/dist/cjs/index.d.ts.map +1 -0
  22. package/dist/cjs/index.js +8 -0
  23. package/dist/cjs/index.js.map +1 -0
  24. package/dist/cjs/interceptor.d.ts +76 -0
  25. package/dist/cjs/interceptor.d.ts.map +1 -0
  26. package/dist/cjs/interceptor.js +1048 -0
  27. package/dist/cjs/interceptor.js.map +1 -0
  28. package/dist/cjs/logger.d.ts +5 -0
  29. package/dist/cjs/logger.d.ts.map +1 -0
  30. package/dist/cjs/logger.js +7 -0
  31. package/dist/cjs/logger.js.map +1 -0
  32. package/dist/cjs/relay.d.ts +27 -0
  33. package/dist/cjs/relay.d.ts.map +1 -0
  34. package/dist/cjs/relay.js +154 -0
  35. package/dist/cjs/relay.js.map +1 -0
  36. package/dist/esm/cdp.d.ts +24 -0
  37. package/dist/esm/cdp.d.ts.map +1 -0
  38. package/dist/esm/cdp.js +383 -0
  39. package/dist/esm/cdp.js.map +1 -0
  40. package/dist/esm/contract.d.ts +30 -0
  41. package/dist/esm/contract.d.ts.map +1 -0
  42. package/dist/esm/contract.js +53 -0
  43. package/dist/esm/contract.js.map +1 -0
  44. package/dist/esm/detect.d.ts +7 -0
  45. package/dist/esm/detect.d.ts.map +1 -0
  46. package/dist/esm/detect.js +107 -0
  47. package/dist/esm/detect.js.map +1 -0
  48. package/dist/esm/guards.d.ts +2 -0
  49. package/dist/esm/guards.d.ts.map +1 -0
  50. package/dist/esm/guards.js +4 -0
  51. package/dist/esm/guards.js.map +1 -0
  52. package/dist/esm/index.d.ts +8 -0
  53. package/dist/esm/index.d.ts.map +1 -0
  54. package/dist/esm/index.js +3 -0
  55. package/dist/esm/index.js.map +1 -0
  56. package/dist/esm/interceptor.d.ts +76 -0
  57. package/dist/esm/interceptor.d.ts.map +1 -0
  58. package/dist/esm/interceptor.js +1045 -0
  59. package/dist/esm/interceptor.js.map +1 -0
  60. package/dist/esm/logger.d.ts +5 -0
  61. package/dist/esm/logger.d.ts.map +1 -0
  62. package/dist/esm/logger.js +4 -0
  63. package/dist/esm/logger.js.map +1 -0
  64. package/dist/esm/package.json +1 -0
  65. package/dist/esm/relay.d.ts +27 -0
  66. package/dist/esm/relay.d.ts.map +1 -0
  67. package/dist/esm/relay.js +145 -0
  68. package/dist/esm/relay.js.map +1 -0
  69. package/package.json +72 -3
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AASrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC"}
@@ -0,0 +1,76 @@
1
+ import { type HeldPlaceholder } from "./detect.js";
2
+ import { type PayLogger } from "./logger.js";
3
+ import { type PaymentRelay } from "./relay.js";
4
+ export interface AttachOptions {
5
+ relay: PaymentRelay;
6
+ /** The one placeholder the agent was given for this checkout. */
7
+ placeholder: HeldPlaceholder;
8
+ /** Relay profile, for example `shopify-card-vault`. */
9
+ profileId: string;
10
+ /**
11
+ * How long to wait for a terminal relay outcome before failing the paused
12
+ * request. Defaults to 55 seconds. Identical pauses share one poll,
13
+ * including the backoff. `relay_in_progress`, a per-attempt timeout, a
14
+ * transport error, and HTTP 502, 503, and 504 are posted again with the
15
+ * same idempotency key until this deadline. Any other refusal fails the
16
+ * request. `outcome: "unknown"` is not sent again. A relay that ignores
17
+ * the abort signal still fails here. One waiter's timeout does not abort
18
+ * a shared flight that another waiter still holds.
19
+ */
20
+ timeoutMs?: number;
21
+ /**
22
+ * How long one relay POST may run before it is aborted and tried again.
23
+ * Defaults to 25 seconds, under the 30 second router limit. The total
24
+ * wait is `timeoutMs`.
25
+ */
26
+ attemptTimeoutMs?: number;
27
+ /** Defaults to a logger that discards every line. */
28
+ logger?: PayLogger;
29
+ }
30
+ export type FailureReason = "intercept_unavailable" | "unknown_session" | "unreadable_body" | "detached" | "page_origin" | "unknown" | "timeout" | "network" | "response_credential";
31
+ export type InterceptorEvent = {
32
+ type: "paused";
33
+ url: string;
34
+ method: string;
35
+ targetType: string;
36
+ } | {
37
+ type: "relayed";
38
+ url: string;
39
+ status: number;
40
+ } | {
41
+ type: "relayed_unfulfilled";
42
+ url: string;
43
+ status: number;
44
+ } | {
45
+ type: "refused";
46
+ url: string;
47
+ reason: string;
48
+ } | {
49
+ type: "failed";
50
+ url: string;
51
+ reason: FailureReason;
52
+ };
53
+ export interface InterceptorHandle {
54
+ detach(): Promise<void>;
55
+ /** Subscribe to outcomes. Returns an unsubscribe function. */
56
+ on(listener: (event: InterceptorEvent) => void): () => void;
57
+ }
58
+ /**
59
+ * A browser CDP websocket URL, or a Playwright/Puppeteer browser or page that
60
+ * can provide one. The interceptor always opens its own connection.
61
+ */
62
+ export type InterceptorTarget = string | {
63
+ wsEndpoint(): string;
64
+ } | {
65
+ browser(): {
66
+ wsEndpoint(): string;
67
+ } | null;
68
+ } | {
69
+ context(): {
70
+ browser(): {
71
+ wsEndpoint(): string;
72
+ } | null;
73
+ } | null;
74
+ };
75
+ export declare function attachInterceptor(target: InterceptorTarget, options: AttachOptions): Promise<InterceptorHandle>;
76
+ //# sourceMappingURL=interceptor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"interceptor.d.ts","sourceRoot":"","sources":["../../src/interceptor.ts"],"names":[],"mappings":"AAMA,OAAO,EAGL,KAAK,eAAe,EACrB,MAAM,aAAa,CAAC;AAErB,OAAO,EAAgB,KAAK,SAAS,EAAE,MAAM,aAAa,CAAC;AAC3D,OAAO,EAIL,KAAK,YAAY,EAClB,MAAM,YAAY,CAAC;AAEpB,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,YAAY,CAAC;IACpB,iEAAiE;IACjE,WAAW,EAAE,eAAe,CAAC;IAC7B,uDAAuD;IACvD,SAAS,EAAE,MAAM,CAAC;IAClB;;;;;;;;;OASG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,qDAAqD;IACrD,MAAM,CAAC,EAAE,SAAS,CAAC;CACpB;AAED,MAAM,MAAM,aAAa,GACrB,uBAAuB,GACvB,iBAAiB,GACjB,iBAAiB,GACjB,UAAU,GACV,aAAa,GACb,SAAS,GACT,SAAS,GACT,SAAS,GACT,qBAAqB,CAAC;AAE1B,MAAM,MAAM,gBAAgB,GACxB;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,GACnE;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GAChD;IAAE,IAAI,EAAE,qBAAqB,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GAC5D;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GAChD;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,aAAa,CAAA;CAAE,CAAC;AAE3D,MAAM,WAAW,iBAAiB;IAChC,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACxB,8DAA8D;IAC9D,EAAE,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,gBAAgB,KAAK,IAAI,GAAG,MAAM,IAAI,CAAC;CAC7D;AAED;;;GAGG;AACH,MAAM,MAAM,iBAAiB,GACzB,MAAM,GACN;IAAE,UAAU,IAAI,MAAM,CAAA;CAAE,GACxB;IAAE,OAAO,IAAI;QAAE,UAAU,IAAI,MAAM,CAAA;KAAE,GAAG,IAAI,CAAA;CAAE,GAC9C;IAAE,OAAO,IAAI;QAAE,OAAO,IAAI;YAAE,UAAU,IAAI,MAAM,CAAA;SAAE,GAAG,IAAI,CAAA;KAAE,GAAG,IAAI,CAAA;CAAE,CAAC;AAoIzE,wBAAsB,iBAAiB,CACrC,MAAM,EAAE,iBAAiB,EACzB,OAAO,EAAE,aAAa,GACrB,OAAO,CAAC,iBAAiB,CAAC,CAS5B"}