@agnostack/verifyd 1.0.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.
Files changed (215) hide show
  1. package/CHANGELOG.md +8 -0
  2. package/CODE_OF_CONDUCT.md +132 -0
  3. package/LICENSE +21 -0
  4. package/README.md +93 -0
  5. package/SECURITY.md +18 -0
  6. package/dist/lib/index.d.ts +4 -0
  7. package/dist/lib/index.d.ts.map +1 -0
  8. package/dist/lib/index.js +20 -0
  9. package/dist/lib/index.js.map +1 -0
  10. package/dist/lib/types.d.ts +1 -0
  11. package/dist/lib/types.d.ts.map +1 -0
  12. package/dist/lib/types.js +1 -0
  13. package/dist/lib/types.js.map +1 -0
  14. package/dist/lib/utils/errors.d.ts +6 -0
  15. package/dist/lib/utils/errors.d.ts.map +1 -0
  16. package/dist/lib/utils/errors.js +26 -0
  17. package/dist/lib/utils/errors.js.map +1 -0
  18. package/dist/lib/utils/index.d.ts +3 -0
  19. package/dist/lib/utils/index.d.ts.map +1 -0
  20. package/dist/lib/utils/index.js +19 -0
  21. package/dist/lib/utils/index.js.map +1 -0
  22. package/dist/lib/utils/rawbody.d.ts +2 -0
  23. package/dist/lib/utils/rawbody.d.ts.map +1 -0
  24. package/dist/lib/utils/rawbody.js +60 -0
  25. package/dist/lib/utils/rawbody.js.map +1 -0
  26. package/dist/lib/verification.d.ts +10 -0
  27. package/dist/lib/verification.d.ts.map +1 -0
  28. package/dist/lib/verification.js +84 -0
  29. package/dist/lib/verification.js.map +1 -0
  30. package/dist/react/hooks/index.d.ts +2 -0
  31. package/dist/react/hooks/index.d.ts.map +1 -0
  32. package/dist/react/hooks/index.js +18 -0
  33. package/dist/react/hooks/index.js.map +1 -0
  34. package/dist/react/hooks/useVerification.d.ts +8 -0
  35. package/dist/react/hooks/useVerification.d.ts.map +1 -0
  36. package/dist/react/hooks/useVerification.js +52 -0
  37. package/dist/react/hooks/useVerification.js.map +1 -0
  38. package/dist/react/index.d.ts +3 -0
  39. package/dist/react/index.d.ts.map +1 -0
  40. package/dist/react/index.js +19 -0
  41. package/dist/react/index.js.map +1 -0
  42. package/dist/react/types.d.ts +1 -0
  43. package/dist/react/types.d.ts.map +1 -0
  44. package/dist/react/types.js +1 -0
  45. package/dist/react/types.js.map +1 -0
  46. package/dist/shared/WebCrypto.d.ts +55 -0
  47. package/dist/shared/WebCrypto.d.ts.map +1 -0
  48. package/dist/shared/WebCrypto.js +342 -0
  49. package/dist/shared/WebCrypto.js.map +1 -0
  50. package/dist/shared/datetime.d.ts +96 -0
  51. package/dist/shared/datetime.d.ts.map +1 -0
  52. package/dist/shared/datetime.js +295 -0
  53. package/dist/shared/datetime.js.map +1 -0
  54. package/dist/shared/display.d.ts +100 -0
  55. package/dist/shared/display.d.ts.map +1 -0
  56. package/dist/shared/display.js +481 -0
  57. package/dist/shared/display.js.map +1 -0
  58. package/dist/shared/index.d.ts +6 -0
  59. package/dist/shared/index.d.ts.map +1 -0
  60. package/dist/shared/index.js +28 -0
  61. package/dist/shared/index.js.map +1 -0
  62. package/dist/shared/request.d.ts +16 -0
  63. package/dist/shared/request.d.ts.map +1 -0
  64. package/dist/shared/request.js +60 -0
  65. package/dist/shared/request.js.map +1 -0
  66. package/dist/shared/types.d.ts +1 -0
  67. package/dist/shared/types.d.ts.map +1 -0
  68. package/dist/shared/types.js +1 -0
  69. package/dist/shared/types.js.map +1 -0
  70. package/dist/shared/verification.d.ts +31 -0
  71. package/dist/shared/verification.d.ts.map +1 -0
  72. package/dist/shared/verification.js +91 -0
  73. package/dist/shared/verification.js.map +1 -0
  74. package/dist/umd/lib/index.js +2204 -0
  75. package/dist/umd/lib/index.js.map +1 -0
  76. package/dist/umd/lib/lib/index.d.ts +4 -0
  77. package/dist/umd/lib/lib/index.d.ts.map +1 -0
  78. package/dist/umd/lib/lib/types.d.ts +1 -0
  79. package/dist/umd/lib/lib/types.d.ts.map +1 -0
  80. package/dist/umd/lib/lib/utils/errors.d.ts +6 -0
  81. package/dist/umd/lib/lib/utils/errors.d.ts.map +1 -0
  82. package/dist/umd/lib/lib/utils/index.d.ts +3 -0
  83. package/dist/umd/lib/lib/utils/index.d.ts.map +1 -0
  84. package/dist/umd/lib/lib/utils/rawbody.d.ts +2 -0
  85. package/dist/umd/lib/lib/utils/rawbody.d.ts.map +1 -0
  86. package/dist/umd/lib/lib/verification.d.ts +10 -0
  87. package/dist/umd/lib/lib/verification.d.ts.map +1 -0
  88. package/dist/umd/lib/react/hooks/index.d.ts +2 -0
  89. package/dist/umd/lib/react/hooks/index.d.ts.map +1 -0
  90. package/dist/umd/lib/react/hooks/useVerification.d.ts +8 -0
  91. package/dist/umd/lib/react/hooks/useVerification.d.ts.map +1 -0
  92. package/dist/umd/lib/react/index.d.ts +3 -0
  93. package/dist/umd/lib/react/index.d.ts.map +1 -0
  94. package/dist/umd/lib/react/types.d.ts +1 -0
  95. package/dist/umd/lib/react/types.d.ts.map +1 -0
  96. package/dist/umd/lib/shared/WebCrypto.d.ts +55 -0
  97. package/dist/umd/lib/shared/WebCrypto.d.ts.map +1 -0
  98. package/dist/umd/lib/shared/datetime.d.ts +96 -0
  99. package/dist/umd/lib/shared/datetime.d.ts.map +1 -0
  100. package/dist/umd/lib/shared/display.d.ts +100 -0
  101. package/dist/umd/lib/shared/display.d.ts.map +1 -0
  102. package/dist/umd/lib/shared/index.d.ts +6 -0
  103. package/dist/umd/lib/shared/index.d.ts.map +1 -0
  104. package/dist/umd/lib/shared/request.d.ts +16 -0
  105. package/dist/umd/lib/shared/request.d.ts.map +1 -0
  106. package/dist/umd/lib/shared/types.d.ts +1 -0
  107. package/dist/umd/lib/shared/types.d.ts.map +1 -0
  108. package/dist/umd/lib/shared/verification.d.ts +31 -0
  109. package/dist/umd/lib/shared/verification.d.ts.map +1 -0
  110. package/node_modules/browser-monads-ts/LICENSE +21 -0
  111. package/node_modules/browser-monads-ts/README.md +46 -0
  112. package/node_modules/browser-monads-ts/dist/browser-monads-ts.cjs.js +2 -0
  113. package/node_modules/browser-monads-ts/dist/browser-monads-ts.cjs.js.map +1 -0
  114. package/node_modules/browser-monads-ts/dist/browser-monads-ts.es.js +12 -0
  115. package/node_modules/browser-monads-ts/dist/browser-monads-ts.es.js.map +1 -0
  116. package/node_modules/browser-monads-ts/dist/index.d.ts +5 -0
  117. package/node_modules/browser-monads-ts/dist/index.d.ts.map +1 -0
  118. package/node_modules/browser-monads-ts/package.json +79 -0
  119. package/node_modules/bytes/History.md +97 -0
  120. package/node_modules/bytes/LICENSE +23 -0
  121. package/node_modules/bytes/Readme.md +152 -0
  122. package/node_modules/bytes/index.js +170 -0
  123. package/node_modules/bytes/package.json +42 -0
  124. package/node_modules/depd/History.md +103 -0
  125. package/node_modules/depd/LICENSE +22 -0
  126. package/node_modules/depd/Readme.md +280 -0
  127. package/node_modules/depd/index.js +538 -0
  128. package/node_modules/depd/lib/browser/index.js +77 -0
  129. package/node_modules/depd/package.json +45 -0
  130. package/node_modules/http-errors/HISTORY.md +180 -0
  131. package/node_modules/http-errors/LICENSE +23 -0
  132. package/node_modules/http-errors/README.md +169 -0
  133. package/node_modules/http-errors/index.js +289 -0
  134. package/node_modules/http-errors/package.json +50 -0
  135. package/node_modules/iconv-lite/Changelog.md +162 -0
  136. package/node_modules/iconv-lite/LICENSE +21 -0
  137. package/node_modules/iconv-lite/README.md +156 -0
  138. package/node_modules/iconv-lite/encodings/dbcs-codec.js +555 -0
  139. package/node_modules/iconv-lite/encodings/dbcs-data.js +176 -0
  140. package/node_modules/iconv-lite/encodings/index.js +22 -0
  141. package/node_modules/iconv-lite/encodings/internal.js +188 -0
  142. package/node_modules/iconv-lite/encodings/sbcs-codec.js +72 -0
  143. package/node_modules/iconv-lite/encodings/sbcs-data-generated.js +451 -0
  144. package/node_modules/iconv-lite/encodings/sbcs-data.js +174 -0
  145. package/node_modules/iconv-lite/encodings/tables/big5-added.json +122 -0
  146. package/node_modules/iconv-lite/encodings/tables/cp936.json +264 -0
  147. package/node_modules/iconv-lite/encodings/tables/cp949.json +273 -0
  148. package/node_modules/iconv-lite/encodings/tables/cp950.json +177 -0
  149. package/node_modules/iconv-lite/encodings/tables/eucjp.json +182 -0
  150. package/node_modules/iconv-lite/encodings/tables/gb18030-ranges.json +1 -0
  151. package/node_modules/iconv-lite/encodings/tables/gbk-added.json +55 -0
  152. package/node_modules/iconv-lite/encodings/tables/shiftjis.json +125 -0
  153. package/node_modules/iconv-lite/encodings/utf16.js +177 -0
  154. package/node_modules/iconv-lite/encodings/utf7.js +290 -0
  155. package/node_modules/iconv-lite/lib/bom-handling.js +52 -0
  156. package/node_modules/iconv-lite/lib/extend-node.js +217 -0
  157. package/node_modules/iconv-lite/lib/index.d.ts +24 -0
  158. package/node_modules/iconv-lite/lib/index.js +153 -0
  159. package/node_modules/iconv-lite/lib/streams.js +121 -0
  160. package/node_modules/iconv-lite/package.json +46 -0
  161. package/node_modules/inherits/LICENSE +16 -0
  162. package/node_modules/inherits/README.md +42 -0
  163. package/node_modules/inherits/inherits.js +9 -0
  164. package/node_modules/inherits/inherits_browser.js +27 -0
  165. package/node_modules/inherits/package.json +29 -0
  166. package/node_modules/nothing-mock/LICENSE +21 -0
  167. package/node_modules/nothing-mock/README.md +266 -0
  168. package/node_modules/nothing-mock/dist/nothing-mock.es.js +2 -0
  169. package/node_modules/nothing-mock/dist/nothing-mock.es.js.map +1 -0
  170. package/node_modules/nothing-mock/dist/nothing-mock.js +2 -0
  171. package/node_modules/nothing-mock/dist/nothing-mock.js.map +1 -0
  172. package/node_modules/nothing-mock/dist/nothing-mock.modern.js +2 -0
  173. package/node_modules/nothing-mock/dist/nothing-mock.modern.js.map +1 -0
  174. package/node_modules/nothing-mock/dist/nothing-mock.umd.js +2 -0
  175. package/node_modules/nothing-mock/dist/nothing-mock.umd.js.map +1 -0
  176. package/node_modules/nothing-mock/index.d.ts +6 -0
  177. package/node_modules/nothing-mock/package.json +29 -0
  178. package/node_modules/nothing-mock/src/index.js +15 -0
  179. package/node_modules/raw-body/HISTORY.md +308 -0
  180. package/node_modules/raw-body/LICENSE +22 -0
  181. package/node_modules/raw-body/README.md +223 -0
  182. package/node_modules/raw-body/SECURITY.md +24 -0
  183. package/node_modules/raw-body/index.d.ts +87 -0
  184. package/node_modules/raw-body/index.js +336 -0
  185. package/node_modules/raw-body/package.json +49 -0
  186. package/node_modules/safer-buffer/LICENSE +21 -0
  187. package/node_modules/safer-buffer/Porting-Buffer.md +268 -0
  188. package/node_modules/safer-buffer/Readme.md +156 -0
  189. package/node_modules/safer-buffer/dangerous.js +58 -0
  190. package/node_modules/safer-buffer/package.json +34 -0
  191. package/node_modules/safer-buffer/safer.js +77 -0
  192. package/node_modules/safer-buffer/tests.js +406 -0
  193. package/node_modules/setprototypeof/LICENSE +13 -0
  194. package/node_modules/setprototypeof/README.md +31 -0
  195. package/node_modules/setprototypeof/index.d.ts +2 -0
  196. package/node_modules/setprototypeof/index.js +17 -0
  197. package/node_modules/setprototypeof/package.json +38 -0
  198. package/node_modules/setprototypeof/test/index.js +24 -0
  199. package/node_modules/statuses/HISTORY.md +82 -0
  200. package/node_modules/statuses/LICENSE +23 -0
  201. package/node_modules/statuses/README.md +136 -0
  202. package/node_modules/statuses/codes.json +65 -0
  203. package/node_modules/statuses/index.js +146 -0
  204. package/node_modules/statuses/package.json +49 -0
  205. package/node_modules/toidentifier/HISTORY.md +9 -0
  206. package/node_modules/toidentifier/LICENSE +21 -0
  207. package/node_modules/toidentifier/README.md +61 -0
  208. package/node_modules/toidentifier/index.js +32 -0
  209. package/node_modules/toidentifier/package.json +38 -0
  210. package/node_modules/unpipe/HISTORY.md +4 -0
  211. package/node_modules/unpipe/LICENSE +22 -0
  212. package/node_modules/unpipe/README.md +43 -0
  213. package/node_modules/unpipe/index.js +69 -0
  214. package/node_modules/unpipe/package.json +27 -0
  215. package/package.json +127 -0
@@ -0,0 +1,60 @@
1
+ "use strict";
2
+ var __rest = (this && this.__rest) || function (s, e) {
3
+ var t = {};
4
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
5
+ t[p] = s[p];
6
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
7
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
8
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
9
+ t[p[i]] = s[p[i]];
10
+ }
11
+ return t;
12
+ };
13
+ Object.defineProperty(exports, "__esModule", { value: true });
14
+ exports.normalizeURIParts = exports.prepareRequestOptions = exports.getRequestMethod = exports.CONTENT_TYPES = exports.HEADER_CONTENT_TYPE = void 0;
15
+ const display_1 = require("./display");
16
+ const TEMP_HOSTNAME = 'xyz.com';
17
+ const REMOVABLE_KEYS = ['shop', 'host'];
18
+ exports.HEADER_CONTENT_TYPE = 'Content-Type';
19
+ exports.CONTENT_TYPES = {
20
+ APPLICATION_JSON: 'application/json',
21
+ };
22
+ const getRequestMethod = (body, _method) => {
23
+ const method = _method !== null && _method !== void 0 ? _method : (body ? 'POST' : 'GET');
24
+ return (0, display_1.uppercase)(method);
25
+ };
26
+ exports.getRequestMethod = getRequestMethod;
27
+ const prepareRequestOptions = (_a = {}) => {
28
+ var { method: _method, body: _body, headers: _header } = _a, requestOptions = __rest(_a, ["method", "body", "headers"]);
29
+ const method = (0, exports.getRequestMethod)(_body, _method);
30
+ const headers = Object.assign({ [exports.HEADER_CONTENT_TYPE]: exports.CONTENT_TYPES.APPLICATION_JSON }, _header);
31
+ let body = _body;
32
+ if (body && headers[exports.HEADER_CONTENT_TYPE].startsWith(exports.CONTENT_TYPES.APPLICATION_JSON)) {
33
+ body = JSON.stringify((0, display_1.safeParse)(body));
34
+ }
35
+ return Object.assign(Object.assign({ method,
36
+ headers }, (body && (method !== 'GET')) && { body }), requestOptions);
37
+ };
38
+ exports.prepareRequestOptions = prepareRequestOptions;
39
+ const convertToURL = (uri) => {
40
+ if ((0, display_1.stringEmpty)(uri)) {
41
+ return undefined;
42
+ }
43
+ const protocolRegex = /^(https?:\/\/).+/i;
44
+ if (!protocolRegex.test(uri)) {
45
+ return new URL(`https://${TEMP_HOSTNAME}${(0, display_1.ensureLeadingSlash)(uri)}`);
46
+ }
47
+ return new URL(uri);
48
+ };
49
+ const normalizeURIParts = (uri) => {
50
+ const urlObject = convertToURL(uri);
51
+ if (!urlObject) {
52
+ return undefined;
53
+ }
54
+ REMOVABLE_KEYS.forEach((key) => urlObject.searchParams.delete(key));
55
+ return Object.assign(Object.assign({}, (urlObject.hostname !== TEMP_HOSTNAME) && {
56
+ origin: urlObject.origin,
57
+ }), { pathname: urlObject.pathname, search: urlObject.search });
58
+ };
59
+ exports.normalizeURIParts = normalizeURIParts;
60
+ //# sourceMappingURL=request.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"request.js","sourceRoot":"","sources":["../../src/shared/request.js"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA,uCAKkB;AAElB,MAAM,aAAa,GAAG,SAAS,CAAA;AAC/B,MAAM,cAAc,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;AAE1B,QAAA,mBAAmB,GAAG,cAAc,CAAA;AACpC,QAAA,aAAa,GAAG;IAC3B,gBAAgB,EAAE,kBAAkB;CACrC,CAAA;AAEM,MAAM,gBAAgB,GAAG,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE;IAChD,MAAM,MAAM,GAAG,OAAO,aAAP,OAAO,cAAP,OAAO,GAAI,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAA;IAEjD,OAAO,IAAA,mBAAS,EAAC,MAAM,CAAC,CAAA;AAC1B,CAAC,CAAA;AAJY,QAAA,gBAAgB,oBAI5B;AAEM,MAAM,qBAAqB,GAAG,CAAC,KAAwE,EAAE,EAAE,EAAE;QAA9E,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,OAA0B,EAArB,cAAc,cAAnE,6BAAqE,CAAF;IACvG,MAAM,MAAM,GAAG,IAAA,wBAAgB,EAAC,KAAK,EAAE,OAAO,CAAC,CAAA;IAE/C,MAAM,OAAO,mBACX,CAAC,2BAAmB,CAAC,EAAE,qBAAa,CAAC,gBAAgB,IAClD,OAAO,CACX,CAAA;IAED,IAAI,IAAI,GAAG,KAAK,CAAA;IAChB,IAAI,IAAI,IAAI,OAAO,CAAC,2BAAmB,CAAC,CAAC,UAAU,CAAC,qBAAa,CAAC,gBAAgB,CAAC,EAAE;QACnF,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,IAAA,mBAAS,EAAC,IAAI,CAAC,CAAC,CAAA;KACvC;IAED,qCACE,MAAM;QACN,OAAO,IACJ,CAAC,IAAI,IAAI,CAAC,MAAM,KAAK,KAAK,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,GACxC,cAAc,EAClB;AACH,CAAC,CAAA;AAnBY,QAAA,qBAAqB,yBAmBjC;AAED,MAAM,YAAY,GAAG,CAAC,GAAG,EAAE,EAAE;IAC3B,IAAI,IAAA,qBAAW,EAAC,GAAG,CAAC,EAAE;QACpB,OAAO,SAAS,CAAA;KACjB;IAED,MAAM,aAAa,GAAG,mBAAmB,CAAA;IAEzC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;QAC5B,OAAO,IAAI,GAAG,CAAC,WAAW,aAAa,GAAG,IAAA,4BAAkB,EAAC,GAAG,CAAC,EAAE,CAAC,CAAA;KACrE;IAED,OAAO,IAAI,GAAG,CAAC,GAAG,CAAC,CAAA;AACrB,CAAC,CAAA;AAEM,MAAM,iBAAiB,GAAG,CAAC,GAAG,EAAE,EAAE;IACvC,MAAM,SAAS,GAAG,YAAY,CAAC,GAAG,CAAC,CAAA;IACnC,IAAI,CAAC,SAAS,EAAE;QACd,OAAO,SAAS,CAAA;KACjB;IAED,cAAc,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,SAAS,CAAC,YAAY,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAA;IAEnE,uCACK,CAAC,SAAS,CAAC,QAAQ,KAAK,aAAa,CAAC,IAAI;QAC3C,MAAM,EAAE,SAAS,CAAC,MAAM;KACzB,KACD,QAAQ,EAAE,SAAS,CAAC,QAAQ,EAC5B,MAAM,EAAE,SAAS,CAAC,MAAM,IACzB;AACH,CAAC,CAAA;AAfY,QAAA,iBAAiB,qBAe7B"}
@@ -0,0 +1 @@
1
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/shared/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1 @@
1
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/shared/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,31 @@
1
+ export function getKeysData(publicKey: any, { crypto: _crypto, util: _util }?: {
2
+ crypto: any;
3
+ util: any;
4
+ }): Promise<{
5
+ publicKey: any;
6
+ ephemeral: {};
7
+ verification: {
8
+ derivedSecretKey?: undefined;
9
+ derivedHMACKey?: undefined;
10
+ } | {
11
+ derivedSecretKey: any;
12
+ derivedHMACKey: any;
13
+ };
14
+ }>;
15
+ export function prepareVerificationRequest({ keysData: _keysData, disableRecryption: _disableRecryption, crypto: _crypto, util: _util }?: {
16
+ keysData: any;
17
+ disableRecryption: any;
18
+ crypto: any;
19
+ util: any;
20
+ }): (requestPath: any, { method: rawMethod, body: rawBody, headers: rawHeaders, ...requestOptions }?: {
21
+ method: any;
22
+ body: any;
23
+ headers: any;
24
+ }) => Promise<any[] | undefined>;
25
+ export function processVerificationResponse({ keysData, disableRecryption: _disableRecryption, crypto: _crypto, util: _util }?: {
26
+ keysData: any;
27
+ disableRecryption: any;
28
+ crypto: any;
29
+ util: any;
30
+ }): (encryptedResponse: any, _derivedSecretKey: any) => Promise<any>;
31
+ //# sourceMappingURL=verification.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"verification.d.ts","sourceRoot":"","sources":["../../src/shared/verification.js"],"names":[],"mappings":"AAcO;;;;;;;;;;;;;GAiBN;AAGM;;;;;;;;;iCAkEN;AAEM;;;;;qEAaN"}
@@ -0,0 +1,91 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ var __rest = (this && this.__rest) || function (s, e) {
12
+ var t = {};
13
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
14
+ t[p] = s[p];
15
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
16
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
17
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
18
+ t[p[i]] = s[p[i]];
19
+ }
20
+ return t;
21
+ };
22
+ var __importDefault = (this && this.__importDefault) || function (mod) {
23
+ return (mod && mod.__esModule) ? mod : { "default": mod };
24
+ };
25
+ Object.defineProperty(exports, "__esModule", { value: true });
26
+ exports.processVerificationResponse = exports.prepareVerificationRequest = exports.getKeysData = void 0;
27
+ const datetime_1 = require("./datetime");
28
+ const request_1 = require("./request");
29
+ const display_1 = require("./display");
30
+ const WebCrypto_1 = __importDefault(require("./WebCrypto"));
31
+ const getKeysData = (publicKey, { crypto: _crypto, util: _util } = {}) => __awaiter(void 0, void 0, void 0, function* () {
32
+ const webCrypto = new WebCrypto_1.default({ crypto: _crypto, util: _util });
33
+ const _ephemeralStoreableKeyPair = yield webCrypto.getStorableKeyPair(yield webCrypto.generateKeyPair(publicKey));
34
+ const _verificationKeyPair = yield webCrypto.getVerificationKeys({
35
+ publicKey,
36
+ privateKey: _ephemeralStoreableKeyPair.privateKey,
37
+ });
38
+ return {
39
+ publicKey,
40
+ ephemeral: _ephemeralStoreableKeyPair,
41
+ verification: _verificationKeyPair,
42
+ };
43
+ });
44
+ exports.getKeysData = getKeysData;
45
+ // eslint-disable-next-line arrow-body-style
46
+ const prepareVerificationRequest = ({ keysData: _keysData, disableRecryption: _disableRecryption, crypto: _crypto, util: _util } = {}) => {
47
+ const webCrypto = new WebCrypto_1.default({ crypto: _crypto, util: _util });
48
+ const disableRecryption = (0, display_1.isTrue)(_disableRecryption);
49
+ return (requestPath, _a = {}) => __awaiter(void 0, void 0, void 0, function* () {
50
+ var { method: rawMethod, body: rawBody, headers: rawHeaders } = _a, requestOptions = __rest(_a, ["method", "body", "headers"]);
51
+ let parsedBody = (0, display_1.safeParse)(rawBody);
52
+ const method = (0, request_1.getRequestMethod)(parsedBody, rawMethod);
53
+ if (disableRecryption || (0, display_1.stringEmpty)(_keysData === null || _keysData === void 0 ? void 0 : _keysData.publicKey)) {
54
+ return [
55
+ requestPath,
56
+ (0, request_1.prepareRequestOptions)(Object.assign({ method, body: parsedBody, headers: rawHeaders }, requestOptions), requestPath)
57
+ ];
58
+ }
59
+ const { verification: { derivedHMACKey, derivedSecretKey, } = {}, ephemeral: { publicKey: ephemeralPublicKey, } = {}, } = _keysData !== null && _keysData !== void 0 ? _keysData : {};
60
+ if (!derivedHMACKey || !ephemeralPublicKey) {
61
+ return undefined;
62
+ }
63
+ if (parsedBody && derivedSecretKey) {
64
+ parsedBody = yield webCrypto.encryptMessage(JSON.stringify(parsedBody), derivedSecretKey);
65
+ }
66
+ const timestamp = (0, datetime_1.toUnixString)();
67
+ const computedHMAC = yield webCrypto.generateHMAC((0, display_1.objectToSortedString)(Object.assign({ body: parsedBody, method,
68
+ timestamp }, (0, request_1.normalizeURIParts)(requestPath))), derivedHMACKey);
69
+ return [
70
+ requestPath,
71
+ (0, request_1.prepareRequestOptions)(Object.assign({ method, body: parsedBody, headers: Object.assign({ 'X-Authorization': `HMAC-SHA256 ${computedHMAC}`, 'X-Authorization-Timestamp': timestamp, 'X-Ephemeral-Key': ephemeralPublicKey, 'X-Public-Key': _keysData.publicKey }, rawHeaders) }, requestOptions), requestPath),
72
+ derivedSecretKey
73
+ ];
74
+ });
75
+ };
76
+ exports.prepareVerificationRequest = prepareVerificationRequest;
77
+ const processVerificationResponse = ({ keysData, disableRecryption: _disableRecryption, crypto: _crypto, util: _util } = {}) => {
78
+ const webCrypto = new WebCrypto_1.default({ crypto: _crypto, util: _util });
79
+ const disableRecryption = (0, display_1.isTrue)(_disableRecryption);
80
+ return (encryptedResponse, _derivedSecretKey) => __awaiter(void 0, void 0, void 0, function* () {
81
+ var _a;
82
+ const derivedSecretKey = _derivedSecretKey !== null && _derivedSecretKey !== void 0 ? _derivedSecretKey : (_a = keysData.verification) === null || _a === void 0 ? void 0 : _a.derivedSecretKey;
83
+ if (disableRecryption || !encryptedResponse || !derivedSecretKey) {
84
+ return encryptedResponse;
85
+ }
86
+ const decryptedMessage = yield webCrypto.decryptMessage(encryptedResponse, derivedSecretKey);
87
+ return (0, display_1.safeParse)(decryptedMessage);
88
+ });
89
+ };
90
+ exports.processVerificationResponse = processVerificationResponse;
91
+ //# sourceMappingURL=verification.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"verification.js","sourceRoot":"","sources":["../../src/shared/verification.js"],"names":[],"mappings":"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"}