@inno-isw/react-native-rtp 0.1.0 → 0.3.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 +57 -23
- package/lib/module/client.js +218 -17
- package/lib/module/client.js.map +1 -1
- package/lib/module/constants.js +5 -0
- package/lib/module/constants.js.map +1 -1
- package/lib/module/index.js +2 -2
- package/lib/module/index.js.map +1 -1
- package/lib/module/mock/makeRtpPayload.js +3 -0
- package/lib/module/mock/makeRtpPayload.js.map +1 -1
- package/lib/module/mock/mockTransport.js +9 -2
- package/lib/module/mock/mockTransport.js.map +1 -1
- package/lib/module/react/RtpProvider.js +13 -3
- package/lib/module/react/RtpProvider.js.map +1 -1
- package/lib/module/validate.js +42 -0
- package/lib/module/validate.js.map +1 -1
- package/lib/typescript/src/client.d.ts +12 -3
- package/lib/typescript/src/client.d.ts.map +1 -1
- package/lib/typescript/src/constants.d.ts +5 -0
- package/lib/typescript/src/constants.d.ts.map +1 -1
- package/lib/typescript/src/index.d.ts +2 -2
- package/lib/typescript/src/index.d.ts.map +1 -1
- package/lib/typescript/src/mock/makeRtpPayload.d.ts.map +1 -1
- package/lib/typescript/src/mock/mockTransport.d.ts +7 -1
- package/lib/typescript/src/mock/mockTransport.d.ts.map +1 -1
- package/lib/typescript/src/react/RtpProvider.d.ts +6 -2
- package/lib/typescript/src/react/RtpProvider.d.ts.map +1 -1
- package/lib/typescript/src/types.d.ts +22 -5
- package/lib/typescript/src/types.d.ts.map +1 -1
- package/lib/typescript/src/validate.d.ts +11 -0
- package/lib/typescript/src/validate.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/client.ts +227 -20
- package/src/constants.ts +5 -0
- package/src/index.tsx +3 -1
- package/src/mock/makeRtpPayload.ts +3 -0
- package/src/mock/mockTransport.ts +18 -2
- package/src/react/RtpProvider.tsx +40 -5
- package/src/types.ts +22 -6
- package/src/validate.ts +48 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["extractId","path","parts","split","length","createMockTransport","options","latencyMs","failAccept","failDecline","acceptStatus","calls","delay","Promise","resolve","setTimeout","transport","post","body","headers","push","method","endsWith","Error","status","data","id","get","reset"],"sourceRoot":"../../../src","sources":["mock/mockTransport.ts"],"mappings":";;
|
|
1
|
+
{"version":3,"names":["extractId","path","parts","split","length","createMockTransport","options","latencyMs","failAccept","failDecline","failRetrieve","acceptStatus","retrieveStatus","retrieveRequest","calls","delay","Promise","resolve","setTimeout","transport","post","body","headers","push","method","endsWith","Error","status","data","id","get","request","reset"],"sourceRoot":"../../../src","sources":["mock/mockTransport.ts"],"mappings":";;AAkCA,MAAMA,SAAS,GAAIC,IAAY,IAAa;EAC1C,MAAMC,KAAK,GAAGD,IAAI,CAACE,KAAK,CAAC,GAAG,CAAC;EAC7B,OAAOD,KAAK,CAACA,KAAK,CAACE,MAAM,GAAG,CAAC,CAAC,IAAI,EAAE;AACtC,CAAC;;AAED;AACA;AACA;AACA,OAAO,SAASC,mBAAmBA,CACjCC,OAA6B,GAAG,CAAC,CAAC,EACnB;EACf,MAAM;IACJC,SAAS,GAAG,GAAG;IACfC,UAAU,GAAG,KAAK;IAClBC,WAAW,GAAG,KAAK;IACnBC,YAAY,GAAG,KAAK;IACpBC,YAAY,GAAG,UAAU;IACzBC,cAAc,GAAG,OAAO;IACxBC;EACF,CAAC,GAAGP,OAAO;EAEX,MAAMQ,KAAqB,GAAG,EAAE;EAChC,MAAMC,KAAK,GAAGA,CAAA,KACZ,IAAIC,OAAO,CAAQC,OAAO,IAAKC,UAAU,CAACD,OAAO,EAAEV,SAAS,CAAC,CAAC;EAEhE,MAAMY,SAAuB,GAAG;IAC9B,MAAMC,IAAIA,CACRnB,IAAY,EACZoB,IAAc,EACdC,OAAgC,EACH;MAC7BR,KAAK,CAACS,IAAI,CAAC;QAAEC,MAAM,EAAE,MAAM;QAAEvB,IAAI;QAAEoB,IAAI;QAAEC;MAAQ,CAAC,CAAC;MACnD,MAAMP,KAAK,CAAC,CAAC;MAEb,IAAId,IAAI,CAACwB,QAAQ,CAAC,SAAS,CAAC,EAAE;QAC5B,IAAIjB,UAAU,EAAE;UACd,MAAM,IAAIkB,KAAK,CAAC,gCAAgC,CAAC;QACnD;QACA,OAAO;UACLC,MAAM,EAAE,GAAG;UACXC,IAAI,EAAE;YAAEC,EAAE,EAAE7B,SAAS,CAACC,IAAI,CAAC;YAAE0B,MAAM,EAAEhB;UAAa;QACpD,CAAC;MACH;MAEA,IAAIV,IAAI,CAACwB,QAAQ,CAAC,UAAU,CAAC,EAAE;QAC7B,IAAIhB,WAAW,EAAE;UACf,MAAM,IAAIiB,KAAK,CAAC,iCAAiC,CAAC;QACpD;QACA,OAAO;UACLC,MAAM,EAAE,GAAG;UACXC,IAAI,EAAE;YAAEC,EAAE,EAAE7B,SAAS,CAACC,IAAI,CAAC;YAAE0B,MAAM,EAAE;UAAW;QAClD,CAAC;MACH;MAEA,OAAO;QAAEA,MAAM,EAAE,GAAG;QAAEC,IAAI,EAAE,CAAC;MAAO,CAAC;IACvC,CAAC;IAED,MAAME,GAAGA,CACP7B,IAAY,EACZqB,OAAgC,EACH;MAC7BR,KAAK,CAACS,IAAI,CAAC;QAAEC,MAAM,EAAE,KAAK;QAAEvB,IAAI;QAAEqB;MAAQ,CAAC,CAAC;MAC5C,MAAMP,KAAK,CAAC,CAAC;MACb,IAAIL,YAAY,EAAE;QAChB,MAAM,IAAIgB,KAAK,CAAC,kCAAkC,CAAC;MACrD;MACA,OAAO;QACLC,MAAM,EAAE,GAAG;QACXC,IAAI,EAAE;UACJC,EAAE,EAAE7B,SAAS,CAACC,IAAI,CAAC;UACnB0B,MAAM,EAAEf,cAAc;UACtBmB,OAAO,EAAElB;QACX;MACF,CAAC;IACH;EACF,CAAC;EAED,OAAO;IACLM,SAAS;IACTL,KAAK;IACLkB,KAAK,EAAEA,CAAA,KAAM;MACXlB,KAAK,CAACV,MAAM,GAAG,CAAC;IAClB;EACF,CAAC;AACH","ignoreList":[]}
|
|
@@ -30,9 +30,9 @@ export function RtpProvider({
|
|
|
30
30
|
|
|
31
31
|
// Keep the latest request id so async resume/drain can target it.
|
|
32
32
|
const activeIdRef = useRef(null);
|
|
33
|
-
const receive = useCallback(payload => {
|
|
33
|
+
const receive = useCallback(async payload => {
|
|
34
34
|
onIncomingPayload?.(payload);
|
|
35
|
-
client.receive(payload);
|
|
35
|
+
return client.receive(payload);
|
|
36
36
|
}, [client, onIncomingPayload]);
|
|
37
37
|
|
|
38
38
|
// Subscribe to client events exactly once per client.
|
|
@@ -106,6 +106,13 @@ export function RtpProvider({
|
|
|
106
106
|
reason
|
|
107
107
|
});
|
|
108
108
|
}, [client, request]);
|
|
109
|
+
const retrieve = useCallback(async id => {
|
|
110
|
+
const target = id ?? request?.id ?? activeIdRef.current;
|
|
111
|
+
if (!target) {
|
|
112
|
+
return undefined;
|
|
113
|
+
}
|
|
114
|
+
return client.retrieve(target);
|
|
115
|
+
}, [client, request]);
|
|
109
116
|
const dismiss = useCallback(() => {
|
|
110
117
|
setRequest(null);
|
|
111
118
|
setStatus(null);
|
|
@@ -113,16 +120,19 @@ export function RtpProvider({
|
|
|
113
120
|
activeIdRef.current = null;
|
|
114
121
|
}, []);
|
|
115
122
|
const isReady = status === RTP_STATUS.READY;
|
|
123
|
+
const isLoading = status === RTP_STATUS.RETRIEVING;
|
|
116
124
|
const value = useMemo(() => ({
|
|
117
125
|
request,
|
|
118
126
|
status,
|
|
119
127
|
isReady,
|
|
128
|
+
isLoading,
|
|
120
129
|
accept,
|
|
121
130
|
decline,
|
|
131
|
+
retrieve,
|
|
122
132
|
dismiss,
|
|
123
133
|
receive,
|
|
124
134
|
lastResult
|
|
125
|
-
}), [request, status, isReady, accept, decline, dismiss, receive, lastResult]);
|
|
135
|
+
}), [request, status, isReady, isLoading, accept, decline, retrieve, dismiss, receive, lastResult]);
|
|
126
136
|
return /*#__PURE__*/_jsx(RtpContext.Provider, {
|
|
127
137
|
value: value,
|
|
128
138
|
children: children
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","createContext","useCallback","useContext","useEffect","useMemo","useRef","useState","RTP_STATUS","jsx","_jsx","STORAGE_KEY","RtpContext","RtpProvider","client","isAuthenticated","storage","onIncomingPayload","children","request","setRequest","status","setStatus","lastResult","setLastResult","activeIdRef","receive","payload","offRequest","on","req","current","id","offState","next","offResult","result","cancelled","drain","raw","getItem","removeItem","JSON","parse","resumeAuth","accept","credential","undefined","decline","reason","dismiss","isReady","READY","value","Provider","useRtp","context","Error"],"sourceRoot":"../../../src","sources":["react/RtpProvider.tsx"],"mappings":";;AAAA,OAAOA,KAAK,IACVC,aAAa,EACbC,WAAW,EACXC,UAAU,EACVC,SAAS,EACTC,OAAO,EACPC,MAAM,EACNC,QAAQ,QACH,OAAO;
|
|
1
|
+
{"version":3,"names":["React","createContext","useCallback","useContext","useEffect","useMemo","useRef","useState","RTP_STATUS","jsx","_jsx","STORAGE_KEY","RtpContext","RtpProvider","client","isAuthenticated","storage","onIncomingPayload","children","request","setRequest","status","setStatus","lastResult","setLastResult","activeIdRef","receive","payload","offRequest","on","req","current","id","offState","next","offResult","result","cancelled","drain","raw","getItem","removeItem","JSON","parse","resumeAuth","accept","credential","undefined","decline","reason","retrieve","target","dismiss","isReady","READY","isLoading","RETRIEVING","value","Provider","useRtp","context","Error"],"sourceRoot":"../../../src","sources":["react/RtpProvider.tsx"],"mappings":";;AAAA,OAAOA,KAAK,IACVC,aAAa,EACbC,WAAW,EACXC,UAAU,EACVC,SAAS,EACTC,OAAO,EACPC,MAAM,EACNC,QAAQ,QACH,OAAO;AAQd,SAASC,UAAU,QAAQ,iBAAc;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAG1C,MAAMC,WAAW,GAAG,oBAAoB;;AAExC;AACA;AACA;AACA;AACA;;AA6CA,OAAO,MAAMC,UAAU,gBAAGX,aAAa,CAAyB,IAAI,CAAC;;AAErE;AACA;AACA;AACA;AACA,OAAO,SAASY,WAAWA,CAAC;EAC1BC,MAAM;EACNC,eAAe;EACfC,OAAO;EACPC,iBAAiB;EACjBC;AACgB,CAAC,EAAE;EACnB,MAAM,CAACC,OAAO,EAAEC,UAAU,CAAC,GAAGb,QAAQ,CAAoB,IAAI,CAAC;EAC/D,MAAM,CAACc,MAAM,EAAEC,SAAS,CAAC,GAAGf,QAAQ,CAAmB,IAAI,CAAC;EAC5D,MAAM,CAACgB,UAAU,EAAEC,aAAa,CAAC,GAAGjB,QAAQ,CAAmB,IAAI,CAAC;;EAEpE;EACA,MAAMkB,WAAW,GAAGnB,MAAM,CAAgB,IAAI,CAAC;EAE/C,MAAMoB,OAAO,GAAGxB,WAAW,CACzB,MAAOyB,OAAgB,IAAK;IAC1BV,iBAAiB,GAAGU,OAAO,CAAC;IAC5B,OAAOb,MAAM,CAACY,OAAO,CAACC,OAAO,CAAC;EAChC,CAAC,EACD,CAACb,MAAM,EAAEG,iBAAiB,CAC5B,CAAC;;EAED;EACAb,SAAS,CAAC,MAAM;IACd,MAAMwB,UAAU,GAAGd,MAAM,CAACe,EAAE,CAAC,SAAS,EAAGC,GAAG,IAAK;MAC/CL,WAAW,CAACM,OAAO,GAAGD,GAAG,CAACE,EAAE;MAC5BZ,UAAU,CAACU,GAAG,CAAC;IACjB,CAAC,CAAC;IAEF,MAAMG,QAAQ,GAAGnB,MAAM,CAACe,EAAE,CAAC,OAAO,EAAE,CAAC;MAAEG,EAAE;MAAEX,MAAM,EAAEa;IAAK,CAAC,KAAK;MAC5D,IAAIT,WAAW,CAACM,OAAO,IAAIC,EAAE,KAAKP,WAAW,CAACM,OAAO,EAAE;QACrD;MACF;MACAT,SAAS,CAACY,IAAI,CAAC;IACjB,CAAC,CAAC;IAEF,MAAMC,SAAS,GAAGrB,MAAM,CAACe,EAAE,CAAC,QAAQ,EAAGO,MAAM,IAAK;MAChDZ,aAAa,CAACY,MAAM,CAAC;IACvB,CAAC,CAAC;IAEF,OAAO,MAAM;MACXR,UAAU,CAAC,CAAC;MACZK,QAAQ,CAAC,CAAC;MACVE,SAAS,CAAC,CAAC;IACb,CAAC;EACH,CAAC,EAAE,CAACrB,MAAM,CAAC,CAAC;;EAEZ;EACAV,SAAS,CAAC,MAAM;IACd,IAAIiC,SAAS,GAAG,KAAK;IACrB,eAAeC,KAAKA,CAAA,EAAG;MACrB,IAAI,CAACtB,OAAO,EAAE;QACZ;MACF;MACA,MAAMuB,GAAG,GAAG,MAAMvB,OAAO,CAACwB,OAAO,CAAC7B,WAAW,CAAC;MAC9C,IAAI,CAAC4B,GAAG,IAAIF,SAAS,EAAE;QACrB;MACF;MACA,MAAMrB,OAAO,CAACyB,UAAU,CAAC9B,WAAW,CAAC;MACrCG,MAAM,CAACY,OAAO,CAACgB,IAAI,CAACC,KAAK,CAACJ,GAAG,CAAC,CAAC;IACjC;IACAD,KAAK,CAAC,CAAC;IACP,OAAO,MAAM;MACXD,SAAS,GAAG,IAAI;IAClB,CAAC;EACH,CAAC,EAAE,CAACvB,MAAM,EAAEE,OAAO,CAAC,CAAC;;EAErB;EACAZ,SAAS,CAAC,MAAM;IACd,IAAIW,eAAe,EAAE;MACnBD,MAAM,CAAC8B,UAAU,CAAC,CAAC;IACrB;EACF,CAAC,EAAE,CAAC9B,MAAM,EAAEC,eAAe,CAAC,CAAC;EAE7B,MAAM8B,MAAM,GAAG3C,WAAW,CACxB,MAAO4C,UAA0B,IAAK;IACpC,MAAMd,EAAE,GAAGb,OAAO,EAAEa,EAAE,IAAIP,WAAW,CAACM,OAAO;IAC7C,IAAI,CAACC,EAAE,EAAE;MACP,OAAOe,SAAS;IAClB;IACA,OAAOjC,MAAM,CAAC+B,MAAM,CAAC;MAAEb,EAAE;MAAEc;IAAW,CAAC,CAAC;EAC1C,CAAC,EACD,CAAChC,MAAM,EAAEK,OAAO,CAClB,CAAC;EAED,MAAM6B,OAAO,GAAG9C,WAAW,CACzB,MAAO+C,MAAe,IAAK;IACzB,MAAMjB,EAAE,GAAGb,OAAO,EAAEa,EAAE,IAAIP,WAAW,CAACM,OAAO;IAC7C,IAAI,CAACC,EAAE,EAAE;MACP,OAAOe,SAAS;IAClB;IACA,OAAOjC,MAAM,CAACkC,OAAO,CAAC;MAAEhB,EAAE;MAAEiB;IAAO,CAAC,CAAC;EACvC,CAAC,EACD,CAACnC,MAAM,EAAEK,OAAO,CAClB,CAAC;EAED,MAAM+B,QAAQ,GAAGhD,WAAW,CAC1B,MAAO8B,EAAW,IAAK;IACrB,MAAMmB,MAAM,GAAGnB,EAAE,IAAIb,OAAO,EAAEa,EAAE,IAAIP,WAAW,CAACM,OAAO;IACvD,IAAI,CAACoB,MAAM,EAAE;MACX,OAAOJ,SAAS;IAClB;IACA,OAAOjC,MAAM,CAACoC,QAAQ,CAACC,MAAM,CAAC;EAChC,CAAC,EACD,CAACrC,MAAM,EAAEK,OAAO,CAClB,CAAC;EAED,MAAMiC,OAAO,GAAGlD,WAAW,CAAC,MAAM;IAChCkB,UAAU,CAAC,IAAI,CAAC;IAChBE,SAAS,CAAC,IAAI,CAAC;IACfE,aAAa,CAAC,IAAI,CAAC;IACnBC,WAAW,CAACM,OAAO,GAAG,IAAI;EAC5B,CAAC,EAAE,EAAE,CAAC;EAEN,MAAMsB,OAAO,GAAGhC,MAAM,KAAKb,UAAU,CAAC8C,KAAK;EAC3C,MAAMC,SAAS,GAAGlC,MAAM,KAAKb,UAAU,CAACgD,UAAU;EAElD,MAAMC,KAAK,GAAGpD,OAAO,CACnB,OAAO;IACLc,OAAO;IACPE,MAAM;IACNgC,OAAO;IACPE,SAAS;IACTV,MAAM;IACNG,OAAO;IACPE,QAAQ;IACRE,OAAO;IACP1B,OAAO;IACPH;EACF,CAAC,CAAC,EACF,CACEJ,OAAO,EACPE,MAAM,EACNgC,OAAO,EACPE,SAAS,EACTV,MAAM,EACNG,OAAO,EACPE,QAAQ,EACRE,OAAO,EACP1B,OAAO,EACPH,UAAU,CAEd,CAAC;EAED,oBAAOb,IAAA,CAACE,UAAU,CAAC8C,QAAQ;IAACD,KAAK,EAAEA,KAAM;IAAAvC,QAAA,EAAEA;EAAQ,CAAsB,CAAC;AAC5E;;AAEA;AACA;AACA;AACA,OAAO,SAASyC,MAAMA,CAAA,EAAoB;EACxC,MAAMC,OAAO,GAAGzD,UAAU,CAACS,UAAU,CAAC;EACtC,IAAI,CAACgD,OAAO,EAAE;IACZ,MAAM,IAAIC,KAAK,CACb,2DACF,CAAC;EACH;EACA,OAAOD,OAAO;AAChB","ignoreList":[]}
|
package/lib/module/validate.js
CHANGED
|
@@ -64,11 +64,53 @@ export function toRtpRequest(payload) {
|
|
|
64
64
|
payee: payload.payee,
|
|
65
65
|
narration: payload.narration,
|
|
66
66
|
transactionRef: payload.transactionRef,
|
|
67
|
+
orderNumber: payload.orderNumber,
|
|
68
|
+
deepLink: payload.deepLink,
|
|
69
|
+
actionMessage: payload.actionMessage,
|
|
67
70
|
expiresAt: payload.expiresAt,
|
|
68
71
|
recipient: payload.recipient
|
|
69
72
|
};
|
|
70
73
|
}
|
|
71
74
|
|
|
75
|
+
/**
|
|
76
|
+
* Build a partial-request patch from an incoming payload, copying only the
|
|
77
|
+
* fields that are actually present. Used to overlay retrieved backend details
|
|
78
|
+
* without a partial response erasing data already held from the push.
|
|
79
|
+
*/
|
|
80
|
+
export function toRequestPatch(payload) {
|
|
81
|
+
const patch = {};
|
|
82
|
+
if (payload.rtpId !== undefined) patch.id = payload.rtpId;
|
|
83
|
+
if (payload.amount !== undefined) patch.amount = toAmount(payload.amount);
|
|
84
|
+
if (payload.currency !== undefined) patch.currency = payload.currency;
|
|
85
|
+
if (payload.payer !== undefined) patch.payer = payload.payer;
|
|
86
|
+
if (payload.payee !== undefined) patch.payee = payload.payee;
|
|
87
|
+
if (payload.narration !== undefined) patch.narration = payload.narration;
|
|
88
|
+
if (payload.transactionRef !== undefined) patch.transactionRef = payload.transactionRef;
|
|
89
|
+
if (payload.orderNumber !== undefined) patch.orderNumber = payload.orderNumber;
|
|
90
|
+
if (payload.deepLink !== undefined) patch.deepLink = payload.deepLink;
|
|
91
|
+
if (payload.actionMessage !== undefined) patch.actionMessage = payload.actionMessage;
|
|
92
|
+
if (payload.expiresAt !== undefined) patch.expiresAt = payload.expiresAt;
|
|
93
|
+
if (payload.recipient !== undefined) patch.recipient = payload.recipient;
|
|
94
|
+
return patch;
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
/**
|
|
98
|
+
* Overlay a patch onto an existing request. Only defined, non-null values are
|
|
99
|
+
* copied so a partial response never erases information already held.
|
|
100
|
+
*/
|
|
101
|
+
export function mergeRequest(current, patch) {
|
|
102
|
+
const next = {
|
|
103
|
+
...current
|
|
104
|
+
};
|
|
105
|
+
for (const key of Object.keys(patch)) {
|
|
106
|
+
const value = patch[key];
|
|
107
|
+
if (value !== undefined && value !== null) {
|
|
108
|
+
next[key] = value;
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
return next;
|
|
112
|
+
}
|
|
113
|
+
|
|
72
114
|
/** Pure expiry check. Re-evaluated on every transition, not just on receive. */
|
|
73
115
|
export function isExpired(request, now) {
|
|
74
116
|
const expiry = new Date(request.expiresAt).getTime();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["REQUIRED_FIELDS","isRtpPayload","payload","candidate","type","rtpId","findValidationErrors","errors","record","field","undefined","push","expiresAt","Number","isNaN","Date","getTime","side","party","name","toAmount","value","parsed","toRtpRequest","id","amount","currency","payer","payee","narration","transactionRef","recipient","isExpired","request","now","expiry"],"sourceRoot":"../../src","sources":["validate.ts"],"mappings":";;AAEA;AACA,MAAMA,eAAe,GAAG,CACtB,OAAO,EACP,QAAQ,EACR,UAAU,EACV,OAAO,EACP,OAAO,EACP,WAAW,CACH;;AAEV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,YAAYA,CAACC,OAAgB,EAAyB;EACpE,IAAI,CAACA,OAAO,IAAI,OAAOA,OAAO,KAAK,QAAQ,EAAE;IAC3C,OAAO,KAAK;EACd;EACA,MAAMC,SAAS,GAAGD,OAAkC;EACpD,OAAOC,SAAS,CAACC,IAAI,KAAK,KAAK,IAAI,OAAOD,SAAS,CAACE,KAAK,KAAK,QAAQ;AACxE;;AAEA;AACA;AACA;AACA;AACA,OAAO,SAASC,oBAAoBA,CAACJ,OAAmB,EAAY;EAClE,MAAMK,MAAgB,GAAG,EAAE;EAC3B,MAAMC,MAAM,GAAGN,OAA6C;EAE5D,KAAK,MAAMO,KAAK,IAAIT,eAAe,EAAE;IACnC,IAAIQ,MAAM,CAACC,KAAK,CAAC,KAAKC,SAAS,IAAIF,MAAM,CAACC,KAAK,CAAC,KAAK,IAAI,EAAE;MACzDF,MAAM,CAACI,IAAI,CAACF,KAAK,CAAC;IACpB;EACF;EAEA,IACEP,OAAO,CAACU,SAAS,KAAKF,SAAS,IAC/BG,MAAM,CAACC,KAAK,CAAC,IAAIC,IAAI,CAACb,OAAO,CAACU,SAAS,CAAC,CAACI,OAAO,CAAC,CAAC,CAAC,EACnD;IACAT,MAAM,CAACI,IAAI,CAAC,WAAW,CAAC;EAC1B;EAEA,KAAK,MAAMM,IAAI,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,EAAW;IAC9C,MAAMC,KAAK,GAAGhB,OAAO,CAACe,IAAI,CAAyB;IACnD,IAAI,CAACC,KAAK,IAAI,OAAOA,KAAK,KAAK,QAAQ,IAAI,OAAOA,KAAK,CAACC,IAAI,KAAK,QAAQ,EAAE;MACzEZ,MAAM,CAACI,IAAI,CAAC,GAAGM,IAAI,OAAO,CAAC;IAC7B;EACF;EAEA,OAAOV,MAAM;AACf;;AAEA;AACA,SAASa,QAAQA,CAACC,KAAc,EAAU;EACxC,IAAI,OAAOA,KAAK,KAAK,QAAQ,EAAE;IAC7B,OAAOA,KAAK;EACd;EACA,MAAMC,MAAM,GAAGT,MAAM,CAACQ,KAAK,CAAC;EAC5B,OAAOR,MAAM,CAACC,KAAK,CAACQ,MAAM,CAAC,GAAG,CAAC,GAAGA,MAAM;AAC1C;;AAEA;AACA,OAAO,SAASC,YAAYA,CAACrB,OAAmB,EAAc;EAC5D,OAAO;IACLsB,EAAE,EAAEtB,OAAO,CAACG,KAAK;IACjBoB,MAAM,EAAEL,QAAQ,CAAClB,OAAO,CAACuB,MAAM,CAAC;IAChCC,QAAQ,EAAExB,OAAO,CAACwB,QAAQ;IAC1BC,KAAK,EAAEzB,OAAO,CAACyB,KAAK;IACpBC,KAAK,EAAE1B,OAAO,CAAC0B,KAAK;IACpBC,SAAS,EAAE3B,OAAO,CAAC2B,SAAS;IAC5BC,cAAc,EAAE5B,OAAO,CAAC4B,cAAc;
|
|
1
|
+
{"version":3,"names":["REQUIRED_FIELDS","isRtpPayload","payload","candidate","type","rtpId","findValidationErrors","errors","record","field","undefined","push","expiresAt","Number","isNaN","Date","getTime","side","party","name","toAmount","value","parsed","toRtpRequest","id","amount","currency","payer","payee","narration","transactionRef","orderNumber","deepLink","actionMessage","recipient","toRequestPatch","patch","mergeRequest","current","next","key","Object","keys","isExpired","request","now","expiry"],"sourceRoot":"../../src","sources":["validate.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,11 +1,20 @@
|
|
|
1
|
+
import type { RtpStatus } from './constants.js';
|
|
1
2
|
import type { RtpClient, RtpClientOptions } from './types.js';
|
|
3
|
+
/**
|
|
4
|
+
* Map a backend status string onto the normalized SDK status.
|
|
5
|
+
*
|
|
6
|
+
* Unknown values are deliberately **not** treated as success — they map to
|
|
7
|
+
* `undefined` so the caller can decide, rather than silently reporting an
|
|
8
|
+
* approved payment for a status the client does not understand.
|
|
9
|
+
*/
|
|
10
|
+
export declare function normalizeBackendStatus(raw: unknown): RtpStatus | undefined;
|
|
2
11
|
/**
|
|
3
12
|
* Create a portable Request-to-Pay client.
|
|
4
13
|
*
|
|
5
14
|
* The client owns validation, de-duplication, expiry, status computation and
|
|
6
|
-
* the accept/decline/
|
|
7
|
-
* Every external effect is injected so the same contract can be
|
|
8
|
-
* on other platforms.
|
|
15
|
+
* the accept/decline/retrieve calls. It owns no UI, no navigation and no
|
|
16
|
+
* crypto. Every external effect is injected so the same contract can be
|
|
17
|
+
* re-implemented on other platforms.
|
|
9
18
|
*/
|
|
10
19
|
export declare function createRtpClient(options: RtpClientOptions): RtpClient;
|
|
11
20
|
//# sourceMappingURL=client.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../src/client.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../src/client.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAY,SAAS,EAAE,MAAM,gBAAa,CAAC;AAUvD,OAAO,KAAK,EACV,SAAS,EACT,gBAAgB,EAMjB,MAAM,YAAS,CAAC;AAejB;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,OAAO,GAAG,SAAS,GAAG,SAAS,CAwB1E;AAED;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,gBAAgB,GAAG,SAAS,CAkXpE"}
|
|
@@ -7,6 +7,8 @@
|
|
|
7
7
|
export declare const RTP_STATUS: {
|
|
8
8
|
/** Payload arrived and passed validation, but is not yet actionable. */
|
|
9
9
|
readonly RECEIVED: "RECEIVED";
|
|
10
|
+
/** Authorization details are being fetched from the backend. */
|
|
11
|
+
readonly RETRIEVING: "RETRIEVING";
|
|
10
12
|
/** Expired before it could be actioned. */
|
|
11
13
|
readonly EXPIRED: "EXPIRED";
|
|
12
14
|
/** Valid, but the user is not authenticated yet (login gate). */
|
|
@@ -15,6 +17,8 @@ export declare const RTP_STATUS: {
|
|
|
15
17
|
readonly READY: "READY";
|
|
16
18
|
/** Accept/decline in flight. */
|
|
17
19
|
readonly PROCESSING: "PROCESSING";
|
|
20
|
+
/** Backend accepted the action but a final decision is still pending. */
|
|
21
|
+
readonly PENDING: "PENDING";
|
|
18
22
|
/** Backend confirmed acceptance. */
|
|
19
23
|
readonly ACCEPTED: "ACCEPTED";
|
|
20
24
|
/** Backend confirmed (or user initiated) a decline. */
|
|
@@ -37,6 +41,7 @@ export type RtpEvent = (typeof RTP_EVENT)[keyof typeof RTP_EVENT];
|
|
|
37
41
|
export declare const RTP_ERROR: {
|
|
38
42
|
readonly INVALID_PAYLOAD: "INVALID_PAYLOAD";
|
|
39
43
|
readonly RECIPIENT_MISMATCH: "RECIPIENT_MISMATCH";
|
|
44
|
+
readonly RETRIEVE_FAILED: "RETRIEVE_FAILED";
|
|
40
45
|
readonly NETWORK_ERROR: "NETWORK_ERROR";
|
|
41
46
|
readonly BACKEND_REJECTED: "BACKEND_REJECTED";
|
|
42
47
|
readonly UNKNOWN: "UNKNOWN";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../src/constants.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,eAAO,MAAM,UAAU;IACrB,wEAAwE;;IAExE,2CAA2C;;IAE3C,iEAAiE;;IAEjE,sEAAsE;;IAEtE,gCAAgC;;IAEhC,oCAAoC;;IAEpC,uDAAuD;;IAEvD,wEAAwE;;CAEhE,CAAC;AAEX,MAAM,MAAM,SAAS,GAAG,CAAC,OAAO,UAAU,CAAC,CAAC,MAAM,OAAO,UAAU,CAAC,CAAC;AAErE,oCAAoC;AACpC,eAAO,MAAM,SAAS;IACpB,8CAA8C;;IAE9C,uCAAuC;;IAEvC,sCAAsC;;CAE9B,CAAC;AAEX,MAAM,MAAM,QAAQ,GAAG,CAAC,OAAO,SAAS,CAAC,CAAC,MAAM,OAAO,SAAS,CAAC,CAAC;AAElE,uEAAuE;AACvE,eAAO,MAAM,SAAS
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../src/constants.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,eAAO,MAAM,UAAU;IACrB,wEAAwE;;IAExE,gEAAgE;;IAEhE,2CAA2C;;IAE3C,iEAAiE;;IAEjE,sEAAsE;;IAEtE,gCAAgC;;IAEhC,yEAAyE;;IAEzE,oCAAoC;;IAEpC,uDAAuD;;IAEvD,wEAAwE;;CAEhE,CAAC;AAEX,MAAM,MAAM,SAAS,GAAG,CAAC,OAAO,UAAU,CAAC,CAAC,MAAM,OAAO,UAAU,CAAC,CAAC;AAErE,oCAAoC;AACpC,eAAO,MAAM,SAAS;IACpB,8CAA8C;;IAE9C,uCAAuC;;IAEvC,sCAAsC;;CAE9B,CAAC;AAEX,MAAM,MAAM,QAAQ,GAAG,CAAC,OAAO,SAAS,CAAC,CAAC,MAAM,OAAO,SAAS,CAAC,CAAC;AAElE,uEAAuE;AACvE,eAAO,MAAM,SAAS;;;;;;;CAOZ,CAAC;AAEX,MAAM,MAAM,QAAQ,GAAG,CAAC,OAAO,SAAS,CAAC,CAAC,MAAM,OAAO,SAAS,CAAC,CAAC"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
export { createRtpClient } from './client.js';
|
|
1
|
+
export { createRtpClient, normalizeBackendStatus } from './client.js';
|
|
2
2
|
export { RTP_STATUS, RTP_EVENT, RTP_ERROR } from './constants.js';
|
|
3
3
|
export type { RtpStatus, RtpEvent, RtpError } from './constants.js';
|
|
4
|
-
export { isRtpPayload, findValidationErrors, toRtpRequest, isExpired, } from './validate.js';
|
|
4
|
+
export { isRtpPayload, findValidationErrors, toRtpRequest, toRequestPatch, mergeRequest, isExpired, } from './validate.js';
|
|
5
5
|
export { mapPushToRtp } from './push.js';
|
|
6
6
|
export type { PushEnvelope } from './push.js';
|
|
7
7
|
export type { RtpPayload, RtpParty, RtpRequest, RtpCredential, RtpResult, RtpReceiveOutcome, RtpTransport, RtpStorage, RtpHttpResponse, RtpClient, RtpClientOptions, RtpEventMap, RtpUnsubscribe, } from './types.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,aAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,sBAAsB,EAAE,MAAM,aAAU,CAAC;AACnE,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,gBAAa,CAAC;AAC/D,YAAY,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,gBAAa,CAAC;AACjE,OAAO,EACL,YAAY,EACZ,oBAAoB,EACpB,YAAY,EACZ,cAAc,EACd,YAAY,EACZ,SAAS,GACV,MAAM,eAAY,CAAC;AACpB,OAAO,EAAE,YAAY,EAAE,MAAM,WAAQ,CAAC;AACtC,YAAY,EAAE,YAAY,EAAE,MAAM,WAAQ,CAAC;AAG3C,YAAY,EACV,UAAU,EACV,QAAQ,EACR,UAAU,EACV,aAAa,EACb,SAAS,EACT,iBAAiB,EACjB,YAAY,EACZ,UAAU,EACV,eAAe,EACf,SAAS,EACT,gBAAgB,EAChB,WAAW,EACX,cAAc,GACf,MAAM,YAAS,CAAC;AAGjB,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,wBAAqB,CAAC;AACtE,YAAY,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,wBAAqB,CAAC;AAG7E,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAsB,CAAC;AAC3D,YAAY,EACV,aAAa,EACb,oBAAoB,EACpB,YAAY,GACb,MAAM,yBAAsB,CAAC;AAC9B,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,0BAAuB,CAAC;AAC3E,YAAY,EAAE,uBAAuB,EAAE,MAAM,0BAAuB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"makeRtpPayload.d.ts","sourceRoot":"","sources":["../../../../src/mock/makeRtpPayload.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAU,CAAC;AAO3C,MAAM,WAAW,uBAAwB,SAAQ,OAAO,CACtD,IAAI,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,GAAG,OAAO,GAAG,WAAW,CAAC,CAC3D;IACC,KAAK,CAAC,EAAE,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC;IACrC,KAAK,CAAC,EAAE,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC;IACrC,yEAAyE;IACzE,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,gEAAgE;IAChE,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAC5B,SAAS,GAAE,uBAA4B,GACtC,UAAU,
|
|
1
|
+
{"version":3,"file":"makeRtpPayload.d.ts","sourceRoot":"","sources":["../../../../src/mock/makeRtpPayload.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAU,CAAC;AAO3C,MAAM,WAAW,uBAAwB,SAAQ,OAAO,CACtD,IAAI,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,GAAG,OAAO,GAAG,WAAW,CAAC,CAC3D;IACC,KAAK,CAAC,EAAE,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC;IACrC,KAAK,CAAC,EAAE,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC;IACrC,yEAAyE;IACzE,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,gEAAgE;IAChE,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAC5B,SAAS,GAAE,uBAA4B,GACtC,UAAU,CAqCZ;AAED,0CAA0C;AAC1C,wBAAgB,kBAAkB,CAChC,SAAS,GAAE,uBAA4B,GACtC,UAAU,CAEZ"}
|
|
@@ -6,8 +6,14 @@ export interface MockTransportOptions {
|
|
|
6
6
|
failAccept?: boolean;
|
|
7
7
|
/** Simulate a network failure on decline. */
|
|
8
8
|
failDecline?: boolean;
|
|
9
|
+
/** Simulate a network failure on retrieve (details fetch). */
|
|
10
|
+
failRetrieve?: boolean;
|
|
9
11
|
/** Backend status to return for accept. */
|
|
10
|
-
acceptStatus?: 'ACCEPTED' | 'DECLINED' | 'FAILED';
|
|
12
|
+
acceptStatus?: 'ACCEPTED' | 'DECLINED' | 'FAILED' | 'PENDING' | 'EXPIRED';
|
|
13
|
+
/** Backend status to return for retrieve. Unknown values fall through to READY. */
|
|
14
|
+
retrieveStatus?: string;
|
|
15
|
+
/** Request details to return from retrieve (overlaid onto the held request). */
|
|
16
|
+
retrieveRequest?: Record<string, unknown>;
|
|
11
17
|
}
|
|
12
18
|
export interface RecordedCall {
|
|
13
19
|
method: 'post' | 'get';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mockTransport.d.ts","sourceRoot":"","sources":["../../../../src/mock/mockTransport.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAmB,YAAY,EAAE,MAAM,aAAU,CAAC;AAE9D,MAAM,WAAW,oBAAoB;IACnC,uCAAuC;IACvC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,4CAA4C;IAC5C,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,6CAA6C;IAC7C,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,2CAA2C;IAC3C,YAAY,CAAC,EAAE,UAAU,GAAG,UAAU,GAAG,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"mockTransport.d.ts","sourceRoot":"","sources":["../../../../src/mock/mockTransport.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAmB,YAAY,EAAE,MAAM,aAAU,CAAC;AAE9D,MAAM,WAAW,oBAAoB;IACnC,uCAAuC;IACvC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,4CAA4C;IAC5C,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,6CAA6C;IAC7C,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,8DAA8D;IAC9D,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,2CAA2C;IAC3C,YAAY,CAAC,EAAE,UAAU,GAAG,UAAU,GAAG,QAAQ,GAAG,SAAS,GAAG,SAAS,CAAC;IAC1E,mFAAmF;IACnF,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,gFAAgF;IAChF,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC3C;AAED,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,MAAM,GAAG,KAAK,CAAC;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAClC;AAED,MAAM,WAAW,aAAa;IAC5B,SAAS,EAAE,YAAY,CAAC;IACxB,mEAAmE;IACnE,KAAK,EAAE,YAAY,EAAE,CAAC;IACtB,4BAA4B;IAC5B,KAAK,EAAE,MAAM,IAAI,CAAC;CACnB;AAOD;;GAEG;AACH,wBAAgB,mBAAmB,CACjC,OAAO,GAAE,oBAAyB,GACjC,aAAa,CA0Ef"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import type { RtpClient, RtpCredential, RtpRequest, RtpResult } from '../types.js';
|
|
2
|
+
import type { RtpClient, RtpCredential, RtpReceiveOutcome, RtpRequest, RtpResult } from '../types.js';
|
|
3
3
|
import type { RtpStatus } from '../constants.js';
|
|
4
4
|
/**
|
|
5
5
|
* A minimal persistence port for the provider. The host supplies its own
|
|
@@ -32,14 +32,18 @@ export interface RtpContextValue {
|
|
|
32
32
|
status: RtpStatus | null;
|
|
33
33
|
/** True when a request is ready for the user to act on. */
|
|
34
34
|
isReady: boolean;
|
|
35
|
+
/** True while authorization details are being fetched from the backend. */
|
|
36
|
+
isLoading: boolean;
|
|
35
37
|
/** Accept the active request with an opaque credential. */
|
|
36
38
|
accept: (credential?: RtpCredential) => Promise<RtpResult | undefined>;
|
|
37
39
|
/** Decline the active request. */
|
|
38
40
|
decline: (reason?: string) => Promise<RtpResult | undefined>;
|
|
41
|
+
/** Fetch/refresh authorization details for the active request. */
|
|
42
|
+
retrieve: (id?: string) => Promise<RtpResult | undefined>;
|
|
39
43
|
/** Dismiss the active request from the UI. */
|
|
40
44
|
dismiss: () => void;
|
|
41
45
|
/** Feed a raw decoded payload into the client (for host push adapters). */
|
|
42
|
-
receive: (payload: unknown) =>
|
|
46
|
+
receive: (payload: unknown) => Promise<RtpReceiveOutcome | undefined>;
|
|
43
47
|
/** Last terminal result, for rendering feedback. */
|
|
44
48
|
lastResult: RtpResult | null;
|
|
45
49
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RtpProvider.d.ts","sourceRoot":"","sources":["../../../../src/react/RtpProvider.tsx"],"names":[],"mappings":"AAAA,OAAO,KAQN,MAAM,OAAO,CAAC;AACf,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"RtpProvider.d.ts","sourceRoot":"","sources":["../../../../src/react/RtpProvider.tsx"],"names":[],"mappings":"AAAA,OAAO,KAQN,MAAM,OAAO,CAAC;AACf,OAAO,KAAK,EACV,SAAS,EACT,aAAa,EACb,iBAAiB,EACjB,UAAU,EACV,SAAS,EACV,MAAM,aAAU,CAAC;AAElB,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAc,CAAC;AAI9C;;;;GAIG;AACH,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,MAAM,GAAG,IAAI,CAAC;IACjE,OAAO,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IAC9D,UAAU,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;CACnD;AAED,MAAM,WAAW,gBAAgB;IAC/B,gDAAgD;IAChD,MAAM,EAAE,SAAS,CAAC;IAClB,yEAAyE;IACzE,eAAe,EAAE,OAAO,CAAC;IACzB,2EAA2E;IAC3E,OAAO,CAAC,EAAE,kBAAkB,CAAC;IAC7B;;;OAGG;IACH,iBAAiB,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;IAC/C,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC3B;AAED,MAAM,WAAW,eAAe;IAC9B,kCAAkC;IAClC,OAAO,EAAE,UAAU,GAAG,IAAI,CAAC;IAC3B,8CAA8C;IAC9C,MAAM,EAAE,SAAS,GAAG,IAAI,CAAC;IACzB,2DAA2D;IAC3D,OAAO,EAAE,OAAO,CAAC;IACjB,2EAA2E;IAC3E,SAAS,EAAE,OAAO,CAAC;IACnB,2DAA2D;IAC3D,MAAM,EAAE,CAAC,UAAU,CAAC,EAAE,aAAa,KAAK,OAAO,CAAC,SAAS,GAAG,SAAS,CAAC,CAAC;IACvE,kCAAkC;IAClC,OAAO,EAAE,CAAC,MAAM,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,SAAS,GAAG,SAAS,CAAC,CAAC;IAC7D,kEAAkE;IAClE,QAAQ,EAAE,CAAC,EAAE,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,SAAS,GAAG,SAAS,CAAC,CAAC;IAC1D,8CAA8C;IAC9C,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,2EAA2E;IAC3E,OAAO,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,OAAO,CAAC,iBAAiB,GAAG,SAAS,CAAC,CAAC;IACtE,oDAAoD;IACpD,UAAU,EAAE,SAAS,GAAG,IAAI,CAAC;CAC9B;AAED,eAAO,MAAM,UAAU,uCAA8C,CAAC;AAEtE;;;GAGG;AACH,wBAAgB,WAAW,CAAC,EAC1B,MAAM,EACN,eAAe,EACf,OAAO,EACP,iBAAiB,EACjB,QAAQ,GACT,EAAE,gBAAgB,qBA2IlB;AAED;;GAEG;AACH,wBAAgB,MAAM,IAAI,eAAe,CAQxC"}
|
|
@@ -26,6 +26,12 @@ export interface RtpPayload {
|
|
|
26
26
|
narration?: string;
|
|
27
27
|
/** Backend reference for the transaction. */
|
|
28
28
|
transactionRef?: string;
|
|
29
|
+
/** Merchant/issuer order number for the request (distinct from transactionRef). */
|
|
30
|
+
orderNumber?: string;
|
|
31
|
+
/** Secure transaction / deep-link reference the host can use to open the flow. */
|
|
32
|
+
deepLink?: string;
|
|
33
|
+
/** Instruction shown to the customer describing the action required. */
|
|
34
|
+
actionMessage?: string;
|
|
29
35
|
/** ISO 8601 timestamp after which the request can no longer be actioned. */
|
|
30
36
|
expiresAt: string;
|
|
31
37
|
/** Alias (phone/email) the request is addressed to, for identity matching. */
|
|
@@ -38,6 +44,12 @@ export interface RtpParty {
|
|
|
38
44
|
name: string;
|
|
39
45
|
accountNumber?: string;
|
|
40
46
|
bank?: string;
|
|
47
|
+
/**
|
|
48
|
+
* Destination institution code (e.g. a NIP bank code) for the `payee`.
|
|
49
|
+
* The host uses it to route the resulting transfer to the right bank; the
|
|
50
|
+
* SDK never interprets it.
|
|
51
|
+
*/
|
|
52
|
+
bankCode?: string;
|
|
41
53
|
/** Optional display URL for a logo/avatar. */
|
|
42
54
|
logoUrl?: string;
|
|
43
55
|
}
|
|
@@ -50,6 +62,9 @@ export interface RtpRequest {
|
|
|
50
62
|
payee: RtpParty;
|
|
51
63
|
narration?: string;
|
|
52
64
|
transactionRef?: string;
|
|
65
|
+
orderNumber?: string;
|
|
66
|
+
deepLink?: string;
|
|
67
|
+
actionMessage?: string;
|
|
53
68
|
expiresAt: string;
|
|
54
69
|
recipient?: string;
|
|
55
70
|
}
|
|
@@ -94,13 +109,13 @@ export interface RtpStorage {
|
|
|
94
109
|
removeItem: (key: string) => Promise<void> | void;
|
|
95
110
|
}
|
|
96
111
|
export interface RtpClientOptions {
|
|
97
|
-
/** Injected HTTP client. */
|
|
98
|
-
transport: RtpTransport;
|
|
99
112
|
/**
|
|
100
|
-
*
|
|
101
|
-
*
|
|
113
|
+
* Injected HTTP client. Optional: when omitted the client runs
|
|
114
|
+
* transport-free — it validates and tracks the request but performs no
|
|
115
|
+
* network calls, which is the shape a host uses when the payment itself is
|
|
116
|
+
* settled through the host's own core banking rather than an RTP backend.
|
|
102
117
|
*/
|
|
103
|
-
|
|
118
|
+
transport?: RtpTransport;
|
|
104
119
|
/**
|
|
105
120
|
* Returns the currently authenticated user's alias (phone/email), or null
|
|
106
121
|
* when logged out. Used for the auth gate and recipient matching.
|
|
@@ -125,6 +140,8 @@ export interface RtpEventMap {
|
|
|
125
140
|
export interface RtpClient {
|
|
126
141
|
isRtp: (payload: unknown) => payload is RtpPayload;
|
|
127
142
|
receive: (payload: unknown) => Promise<RtpReceiveOutcome>;
|
|
143
|
+
/** Fetch/refresh authorization details for a request from the backend. */
|
|
144
|
+
retrieve: (id: string) => Promise<RtpResult>;
|
|
128
145
|
resumeAuth: () => void;
|
|
129
146
|
accept: (params: {
|
|
130
147
|
id: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/types.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -17,6 +17,17 @@ export declare function isRtpPayload(payload: unknown): payload is RtpPayload;
|
|
|
17
17
|
export declare function findValidationErrors(payload: RtpPayload): string[];
|
|
18
18
|
/** Map a validated payload into the normalized request held by the SDK. */
|
|
19
19
|
export declare function toRtpRequest(payload: RtpPayload): RtpRequest;
|
|
20
|
+
/**
|
|
21
|
+
* Build a partial-request patch from an incoming payload, copying only the
|
|
22
|
+
* fields that are actually present. Used to overlay retrieved backend details
|
|
23
|
+
* without a partial response erasing data already held from the push.
|
|
24
|
+
*/
|
|
25
|
+
export declare function toRequestPatch(payload: Partial<RtpPayload>): Partial<RtpRequest>;
|
|
26
|
+
/**
|
|
27
|
+
* Overlay a patch onto an existing request. Only defined, non-null values are
|
|
28
|
+
* copied so a partial response never erases information already held.
|
|
29
|
+
*/
|
|
30
|
+
export declare function mergeRequest(current: RtpRequest, patch: Partial<RtpRequest>): RtpRequest;
|
|
20
31
|
/** Pure expiry check. Re-evaluated on every transition, not just on receive. */
|
|
21
32
|
export declare function isExpired(request: RtpRequest, now: number): boolean;
|
|
22
33
|
//# sourceMappingURL=validate.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validate.d.ts","sourceRoot":"","sources":["../../../src/validate.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAY,UAAU,EAAE,UAAU,EAAE,MAAM,YAAS,CAAC;AAYhE;;;;;;;;;GASG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,IAAI,UAAU,CAMpE;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,UAAU,GAAG,MAAM,EAAE,CAyBlE;AAWD,2EAA2E;AAC3E,wBAAgB,YAAY,CAAC,OAAO,EAAE,UAAU,GAAG,UAAU,
|
|
1
|
+
{"version":3,"file":"validate.d.ts","sourceRoot":"","sources":["../../../src/validate.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAY,UAAU,EAAE,UAAU,EAAE,MAAM,YAAS,CAAC;AAYhE;;;;;;;;;GASG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,IAAI,UAAU,CAMpE;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,UAAU,GAAG,MAAM,EAAE,CAyBlE;AAWD,2EAA2E;AAC3E,wBAAgB,YAAY,CAAC,OAAO,EAAE,UAAU,GAAG,UAAU,CAe5D;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAC5B,OAAO,EAAE,OAAO,CAAC,UAAU,CAAC,GAC3B,OAAO,CAAC,UAAU,CAAC,CAkBrB;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAC1B,OAAO,EAAE,UAAU,EACnB,KAAK,EAAE,OAAO,CAAC,UAAU,CAAC,GACzB,UAAU,CASZ;AAED,gFAAgF;AAChF,wBAAgB,SAAS,CAAC,OAAO,EAAE,UAAU,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAMnE"}
|