@reclaimprotocol/attestor-core 3.0.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 (204) hide show
  1. package/README.md +39 -0
  2. package/lib/avs/abis/avsDirectoryABI.d.ts +60 -0
  3. package/lib/avs/abis/avsDirectoryABI.js +344 -0
  4. package/lib/avs/abis/delegationABI.d.ts +126 -0
  5. package/lib/avs/abis/delegationABI.js +5 -0
  6. package/lib/avs/abis/registryABI.d.ts +136 -0
  7. package/lib/avs/abis/registryABI.js +729 -0
  8. package/lib/avs/client/create-claim-on-avs.d.ts +10 -0
  9. package/lib/avs/client/create-claim-on-avs.js +147 -0
  10. package/lib/avs/config.d.ts +7 -0
  11. package/lib/avs/config.js +24 -0
  12. package/lib/avs/contracts/ReclaimServiceManager.d.ts +697 -0
  13. package/lib/avs/contracts/ReclaimServiceManager.js +3 -0
  14. package/lib/avs/contracts/common.d.ts +21 -0
  15. package/lib/avs/contracts/common.js +3 -0
  16. package/lib/avs/contracts/factories/ReclaimServiceManager__factory.d.ts +888 -0
  17. package/lib/avs/contracts/factories/ReclaimServiceManager__factory.js +1174 -0
  18. package/lib/avs/contracts/factories/index.d.ts +1 -0
  19. package/lib/avs/contracts/factories/index.js +9 -0
  20. package/lib/avs/contracts/index.d.ts +3 -0
  21. package/lib/avs/contracts/index.js +30 -0
  22. package/lib/avs/tests/test.operator.d.ts +11 -0
  23. package/lib/avs/tests/test.operator.js +313 -0
  24. package/lib/avs/tests/utils.d.ts +2 -0
  25. package/lib/avs/tests/utils.js +50 -0
  26. package/lib/avs/types/index.d.ts +55 -0
  27. package/lib/avs/types/index.js +3 -0
  28. package/lib/avs/utils/contracts.d.ts +21 -0
  29. package/lib/avs/utils/contracts.js +38 -0
  30. package/lib/avs/utils/register.d.ts +27 -0
  31. package/lib/avs/utils/register.js +76 -0
  32. package/lib/avs/utils/tasks.d.ts +22 -0
  33. package/lib/avs/utils/tasks.js +45 -0
  34. package/lib/client/create-claim.d.ts +5 -0
  35. package/lib/client/create-claim.js +357 -0
  36. package/lib/client/index.d.ts +3 -0
  37. package/lib/client/index.js +20 -0
  38. package/lib/client/tunnels/make-rpc-tcp-tunnel.d.ts +16 -0
  39. package/lib/client/tunnels/make-rpc-tcp-tunnel.js +60 -0
  40. package/lib/client/tunnels/make-rpc-tls-tunnel.d.ts +25 -0
  41. package/lib/client/tunnels/make-rpc-tls-tunnel.js +135 -0
  42. package/lib/client/utils/attestor-pool.d.ts +6 -0
  43. package/lib/client/utils/attestor-pool.js +28 -0
  44. package/lib/client/utils/client-socket.d.ts +9 -0
  45. package/lib/client/utils/client-socket.js +77 -0
  46. package/lib/client/utils/message-handler.d.ts +4 -0
  47. package/lib/client/utils/message-handler.js +93 -0
  48. package/lib/config/index.d.ts +23 -0
  49. package/lib/config/index.js +35 -0
  50. package/lib/index.d.ts +9 -0
  51. package/lib/index.js +39 -0
  52. package/lib/proto/api.d.ts +414 -0
  53. package/lib/proto/api.js +2756 -0
  54. package/lib/providers/http/index.d.ts +3 -0
  55. package/lib/providers/http/index.js +472 -0
  56. package/lib/providers/http/utils.d.ts +44 -0
  57. package/lib/providers/http/utils.js +302 -0
  58. package/lib/providers/index.d.ts +4 -0
  59. package/lib/providers/index.js +11 -0
  60. package/lib/scripts/check-avs-registration.d.ts +1 -0
  61. package/lib/scripts/check-avs-registration.js +28 -0
  62. package/lib/scripts/generate-provider-types.d.ts +5 -0
  63. package/lib/scripts/generate-provider-types.js +82 -0
  64. package/lib/scripts/generate-receipt.d.ts +9 -0
  65. package/lib/scripts/generate-receipt.js +93 -0
  66. package/lib/scripts/register-avs-operator.d.ts +1 -0
  67. package/lib/scripts/register-avs-operator.js +6 -0
  68. package/lib/scripts/start-server.d.ts +1 -0
  69. package/lib/scripts/start-server.js +6 -0
  70. package/lib/scripts/verify-root-ca.d.ts +1 -0
  71. package/lib/scripts/verify-root-ca.js +51 -0
  72. package/lib/server/create-server.d.ts +7 -0
  73. package/lib/server/create-server.js +85 -0
  74. package/lib/server/handlers/claimTunnel.d.ts +2 -0
  75. package/lib/server/handlers/claimTunnel.js +55 -0
  76. package/lib/server/handlers/completeClaimOnChain.d.ts +2 -0
  77. package/lib/server/handlers/completeClaimOnChain.js +28 -0
  78. package/lib/server/handlers/createClaimOnChain.d.ts +2 -0
  79. package/lib/server/handlers/createClaimOnChain.js +31 -0
  80. package/lib/server/handlers/createTunnel.d.ts +2 -0
  81. package/lib/server/handlers/createTunnel.js +65 -0
  82. package/lib/server/handlers/disconnectTunnel.d.ts +2 -0
  83. package/lib/server/handlers/disconnectTunnel.js +10 -0
  84. package/lib/server/handlers/index.d.ts +4 -0
  85. package/lib/server/handlers/index.js +18 -0
  86. package/lib/server/handlers/init.d.ts +2 -0
  87. package/lib/server/handlers/init.js +21 -0
  88. package/lib/server/index.d.ts +4 -0
  89. package/lib/server/index.js +21 -0
  90. package/lib/server/socket.d.ts +11 -0
  91. package/lib/server/socket.js +95 -0
  92. package/lib/server/tunnels/make-tcp-tunnel.d.ts +20 -0
  93. package/lib/server/tunnels/make-tcp-tunnel.js +182 -0
  94. package/lib/server/utils/apm.d.ts +11 -0
  95. package/lib/server/utils/apm.js +39 -0
  96. package/lib/server/utils/assert-valid-claim-request.d.ts +29 -0
  97. package/lib/server/utils/assert-valid-claim-request.js +189 -0
  98. package/lib/server/utils/config-env.d.ts +1 -0
  99. package/lib/server/utils/config-env.js +7 -0
  100. package/lib/server/utils/generics.d.ts +22 -0
  101. package/lib/server/utils/generics.js +59 -0
  102. package/lib/server/utils/iso.d.ts +1 -0
  103. package/lib/server/utils/iso.js +260 -0
  104. package/lib/server/utils/keep-alive.d.ts +7 -0
  105. package/lib/server/utils/keep-alive.js +42 -0
  106. package/lib/server/utils/process-handshake.d.ts +13 -0
  107. package/lib/server/utils/process-handshake.js +179 -0
  108. package/lib/server/utils/verify-server-certificates.d.ts +7 -0
  109. package/lib/server/utils/verify-server-certificates.js +102 -0
  110. package/lib/tests/describe-with-server.d.ts +21 -0
  111. package/lib/tests/describe-with-server.js +67 -0
  112. package/lib/tests/mock-provider-server.d.ts +13 -0
  113. package/lib/tests/mock-provider-server.js +65 -0
  114. package/lib/tests/mocks.d.ts +4 -0
  115. package/lib/tests/mocks.js +23 -0
  116. package/lib/tests/test.claim-creation.d.ts +1 -0
  117. package/lib/tests/test.claim-creation.js +187 -0
  118. package/lib/tests/test.http-parser.d.ts +1 -0
  119. package/lib/tests/test.http-parser.js +118 -0
  120. package/lib/tests/test.http-provider-utils.d.ts +1 -0
  121. package/lib/tests/test.http-provider-utils.js +1932 -0
  122. package/lib/tests/test.http-provider.d.ts +1 -0
  123. package/lib/tests/test.http-provider.js +43 -0
  124. package/lib/tests/test.rpc-communication.d.ts +1 -0
  125. package/lib/tests/test.rpc-communication.js +64 -0
  126. package/lib/tests/test.rpc-tunnel.d.ts +1 -0
  127. package/lib/tests/test.rpc-tunnel.js +168 -0
  128. package/lib/tests/test.signatures.d.ts +1 -0
  129. package/lib/tests/test.signatures.js +24 -0
  130. package/lib/tests/test.tcp-tunnel.d.ts +1 -0
  131. package/lib/tests/test.tcp-tunnel.js +64 -0
  132. package/lib/tests/test.zk.d.ts +1 -0
  133. package/lib/tests/test.zk.js +169 -0
  134. package/lib/tests/utils.d.ts +12 -0
  135. package/lib/tests/utils.js +49 -0
  136. package/lib/types/claims.d.ts +64 -0
  137. package/lib/types/claims.js +3 -0
  138. package/lib/types/client.d.ts +136 -0
  139. package/lib/types/client.js +3 -0
  140. package/lib/types/general.d.ts +39 -0
  141. package/lib/types/general.js +3 -0
  142. package/lib/types/handlers.d.ts +10 -0
  143. package/lib/types/handlers.js +3 -0
  144. package/lib/types/index.d.ts +9 -0
  145. package/lib/types/index.js +26 -0
  146. package/lib/types/providers.d.ts +135 -0
  147. package/lib/types/providers.gen.d.ts +414 -0
  148. package/lib/types/providers.gen.js +14 -0
  149. package/lib/types/providers.js +3 -0
  150. package/lib/types/rpc.d.ts +35 -0
  151. package/lib/types/rpc.js +3 -0
  152. package/lib/types/signatures.d.ts +28 -0
  153. package/lib/types/signatures.js +3 -0
  154. package/lib/types/tunnel.d.ts +18 -0
  155. package/lib/types/tunnel.js +3 -0
  156. package/lib/types/zk.d.ts +16 -0
  157. package/lib/types/zk.js +3 -0
  158. package/lib/utils/benchmark.d.ts +1 -0
  159. package/lib/utils/benchmark.js +70 -0
  160. package/lib/utils/claims.d.ts +33 -0
  161. package/lib/utils/claims.js +112 -0
  162. package/lib/utils/env.d.ts +3 -0
  163. package/lib/utils/env.js +20 -0
  164. package/lib/utils/error.d.ts +27 -0
  165. package/lib/utils/error.js +43 -0
  166. package/lib/utils/generics.d.ts +112 -0
  167. package/lib/utils/generics.js +348 -0
  168. package/lib/utils/http-parser.d.ts +55 -0
  169. package/lib/utils/http-parser.js +249 -0
  170. package/lib/utils/index.d.ts +10 -0
  171. package/lib/utils/index.js +27 -0
  172. package/lib/utils/logger.d.ts +13 -0
  173. package/lib/utils/logger.js +100 -0
  174. package/lib/utils/prepare-packets.d.ts +16 -0
  175. package/lib/utils/prepare-packets.js +61 -0
  176. package/lib/utils/redactions.d.ts +41 -0
  177. package/lib/utils/redactions.js +111 -0
  178. package/lib/utils/retries.d.ts +12 -0
  179. package/lib/utils/retries.js +28 -0
  180. package/lib/utils/signatures/eth.d.ts +2 -0
  181. package/lib/utils/signatures/eth.js +33 -0
  182. package/lib/utils/signatures/index.d.ts +5 -0
  183. package/lib/utils/signatures/index.js +11 -0
  184. package/lib/utils/socket-base.d.ts +21 -0
  185. package/lib/utils/socket-base.js +89 -0
  186. package/lib/utils/tls.d.ts +2 -0
  187. package/lib/utils/tls.js +32 -0
  188. package/lib/utils/validation.d.ts +2 -0
  189. package/lib/utils/validation.js +46 -0
  190. package/lib/utils/ws.d.ts +12 -0
  191. package/lib/utils/ws.js +21 -0
  192. package/lib/utils/zk.d.ts +50 -0
  193. package/lib/utils/zk.js +282 -0
  194. package/lib/window-rpc/index.d.ts +3 -0
  195. package/lib/window-rpc/index.js +20 -0
  196. package/lib/window-rpc/setup-window-rpc.d.ts +5 -0
  197. package/lib/window-rpc/setup-window-rpc.js +239 -0
  198. package/lib/window-rpc/types.d.ts +184 -0
  199. package/lib/window-rpc/types.js +3 -0
  200. package/lib/window-rpc/utils.d.ts +13 -0
  201. package/lib/window-rpc/utils.js +76 -0
  202. package/lib/window-rpc/window-rpc-zk.d.ts +11 -0
  203. package/lib/window-rpc/window-rpc-zk.js +72 -0
  204. package/package.json +117 -0
@@ -0,0 +1,302 @@
1
+ "use strict";
2
+ // noinspection ExceptionCaughtLocallyJS
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.extractHTMLElement = extractHTMLElement;
5
+ exports.extractHTMLElementIndex = extractHTMLElementIndex;
6
+ exports.extractJSONValueIndex = extractJSONValueIndex;
7
+ exports.buildHeaders = buildHeaders;
8
+ exports.convertResponsePosToAbsolutePos = convertResponsePosToAbsolutePos;
9
+ exports.getRedactionsForChunkHeaders = getRedactionsForChunkHeaders;
10
+ exports.parseHttpResponse = parseHttpResponse;
11
+ exports.makeRegex = makeRegex;
12
+ exports.matchRedactedStrings = matchRedactedStrings;
13
+ exports.generateRequstAndResponseFromTranscript = generateRequstAndResponseFromTranscript;
14
+ const tls_1 = require("@reclaimprotocol/tls");
15
+ const esprima_next_1 = require("esprima-next");
16
+ const jsonpath_plus_1 = require("jsonpath-plus");
17
+ const utils_1 = require("src/utils");
18
+ let RE2;
19
+ try {
20
+ RE2 = require('re2');
21
+ if (!Object.keys(RE2).length) {
22
+ RE2 = undefined;
23
+ throw new Error();
24
+ }
25
+ }
26
+ catch (_a) {
27
+ console.log('RE2 not found. Using standard regex');
28
+ }
29
+ let jsd;
30
+ if (typeof window !== 'undefined') {
31
+ // @ts-ignore
32
+ jsd = window.jsdom;
33
+ }
34
+ else {
35
+ jsd = require('jsdom');
36
+ }
37
+ function extractHTMLElement(html, xpathExpression, contentsOnly) {
38
+ const { start, end } = extractHTMLElementIndex(html, xpathExpression, contentsOnly);
39
+ return html.slice(start, end);
40
+ }
41
+ function extractHTMLElementIndex(html, xpathExpression, contentsOnly) {
42
+ var _a;
43
+ const dom = new jsd.JSDOM(html, {
44
+ contentType: 'text/html',
45
+ includeNodeLocations: true
46
+ });
47
+ const document = dom.window.document;
48
+ const node = (_a = document
49
+ .evaluate(xpathExpression, document, null, dom.window.XPathResult.FIRST_ORDERED_NODE_TYPE, null)) === null || _a === void 0 ? void 0 : _a.singleNodeValue;
50
+ if (!node) {
51
+ throw new Error(`Failed to find XPath: "${xpathExpression}"`);
52
+ }
53
+ const nodeLocation = dom.nodeLocation(node);
54
+ if (!nodeLocation) {
55
+ throw new Error(`Failed to find XPath node location: "${xpathExpression}"`);
56
+ }
57
+ if (contentsOnly) {
58
+ const start = nodeLocation.startTag ? nodeLocation.startTag.endOffset : nodeLocation.startOffset;
59
+ const end = nodeLocation.endTag ? nodeLocation.endTag.startOffset : nodeLocation.endOffset;
60
+ return { start, end };
61
+ }
62
+ else {
63
+ return { start: nodeLocation.startOffset, end: nodeLocation.endOffset };
64
+ }
65
+ }
66
+ function extractJSONValueIndex(json, jsonPath) {
67
+ const pointers = (0, jsonpath_plus_1.JSONPath)({
68
+ path: jsonPath,
69
+ json: JSON.parse(json),
70
+ wrap: false,
71
+ resultType: 'pointer',
72
+ eval: 'safe',
73
+ });
74
+ if (!pointers) {
75
+ throw new Error('jsonPath not found');
76
+ }
77
+ const tree = (0, esprima_next_1.parseScript)('(' + json + ')', { range: true }); //wrap in parentheses for esprima to parse
78
+ if (tree.body[0] instanceof esprima_next_1.ExpressionStatement
79
+ && (tree.body[0].expression instanceof esprima_next_1.ObjectExpression || tree.body[0].expression instanceof esprima_next_1.ArrayExpression)) {
80
+ const traversePointers = Array.isArray(pointers) ? pointers : [pointers];
81
+ const index = traverse(tree.body[0].expression, '', traversePointers);
82
+ if (index) {
83
+ return {
84
+ start: index.start - 1, //account for '('
85
+ end: index.end - 1,
86
+ };
87
+ }
88
+ }
89
+ throw new Error('jsonPath not found');
90
+ }
91
+ /**
92
+ * recursively go through AST tree and build a JSON path while it's not equal to the one we search for
93
+ * @param o - esprima expression for root object
94
+ * @param path - path that is being built
95
+ * @param pointers - JSON pointers to compare to
96
+ */
97
+ function traverse(o, path, pointers) {
98
+ if (o instanceof esprima_next_1.ObjectExpression) {
99
+ for (const p of o.properties) {
100
+ if (!(p instanceof esprima_next_1.Property)) {
101
+ continue;
102
+ }
103
+ const localPath = p.key.type === esprima_next_1.Syntax.Literal
104
+ ? path + '/' + p.key.value
105
+ : path;
106
+ if (pointers.includes(localPath) && 'range' in p && Array.isArray(p.range)) {
107
+ return {
108
+ start: p.range[0],
109
+ end: p.range[1],
110
+ };
111
+ }
112
+ if (p.value instanceof esprima_next_1.ObjectExpression
113
+ || p.value instanceof esprima_next_1.ArrayExpression) {
114
+ const res = traverse(p.value, localPath, pointers);
115
+ if (res) {
116
+ return res;
117
+ }
118
+ }
119
+ }
120
+ }
121
+ if (o instanceof esprima_next_1.ArrayExpression) {
122
+ for (let i = 0; i < o.elements.length; i++) {
123
+ const element = o.elements[i];
124
+ if (!element) {
125
+ continue;
126
+ }
127
+ const localPath = path + '/' + i;
128
+ if (pointers.includes(localPath) &&
129
+ 'range' in element &&
130
+ Array.isArray(element.range)) {
131
+ return {
132
+ start: element.range[0],
133
+ end: element.range[1],
134
+ };
135
+ }
136
+ if (element instanceof esprima_next_1.ObjectExpression) {
137
+ const res = traverse(element, localPath, pointers);
138
+ if (res) {
139
+ return res;
140
+ }
141
+ }
142
+ if (element instanceof esprima_next_1.ArrayExpression) {
143
+ const res = traverse(element, localPath, pointers);
144
+ if (res) {
145
+ return res;
146
+ }
147
+ }
148
+ }
149
+ }
150
+ return null;
151
+ }
152
+ function buildHeaders(input) {
153
+ const headers = [];
154
+ for (const [key, value] of Object.entries(input || {})) {
155
+ headers.push(`${key}: ${value}`);
156
+ }
157
+ return headers;
158
+ }
159
+ /**
160
+ * Converts position in HTTP response body to an absolute position in TLS transcript considering chunked encoding
161
+ * @param pos
162
+ * @param bodyStartIdx
163
+ * @param chunks
164
+ */
165
+ function convertResponsePosToAbsolutePos(pos, bodyStartIdx, chunks) {
166
+ if (chunks === null || chunks === void 0 ? void 0 : chunks.length) {
167
+ let chunkBodyStart = 0;
168
+ for (const chunk of chunks) {
169
+ const chunkSize = chunk.toIndex - chunk.fromIndex;
170
+ if (pos >= chunkBodyStart && pos <= (chunkBodyStart + chunkSize)) {
171
+ return pos - chunkBodyStart + chunk.fromIndex;
172
+ }
173
+ chunkBodyStart += chunkSize;
174
+ }
175
+ throw new Error('position out of range');
176
+ }
177
+ return bodyStartIdx + pos;
178
+ }
179
+ /**
180
+ * Returns parts of response which contain chunk headers and must be redacted out
181
+ * of revealed response part
182
+ * @param from
183
+ * @param to
184
+ * @param chunks
185
+ */
186
+ function getRedactionsForChunkHeaders(from, to, chunks) {
187
+ const res = [];
188
+ if (chunks === null || chunks === void 0 ? void 0 : chunks.length) {
189
+ for (let i = 1; i < (chunks === null || chunks === void 0 ? void 0 : chunks.length); i++) {
190
+ if (chunks[i].fromIndex > from && chunks[i].fromIndex < to) {
191
+ res.push({ fromIndex: chunks[i - 1].toIndex, toIndex: chunks[i].fromIndex });
192
+ }
193
+ }
194
+ }
195
+ return res;
196
+ }
197
+ function parseHttpResponse(buff) {
198
+ const parser = (0, utils_1.makeHttpResponseParser)();
199
+ parser.onChunk(buff);
200
+ parser.streamEnded();
201
+ return parser.res;
202
+ }
203
+ function makeRegex(str) {
204
+ if (RE2 !== undefined) {
205
+ return RE2(str, 'sgiu');
206
+ }
207
+ return new RegExp(str, 'sgi');
208
+ }
209
+ const TEMPLATE_START_CHARCODE = '{'.charCodeAt(0);
210
+ const TEMPLATE_END_CHARCODE = '}'.charCodeAt(0);
211
+ /**
212
+ * Try to match strings that contain templates like {{param}}
213
+ * against redacted string that has *** instead of that param
214
+ */
215
+ function matchRedactedStrings(templateString, redactedString) {
216
+ if (templateString.length === 0 && (redactedString === null || redactedString === void 0 ? void 0 : redactedString.length) === 0) {
217
+ return true;
218
+ }
219
+ if (!redactedString) {
220
+ return false;
221
+ }
222
+ let ts = -1;
223
+ let rs = -1;
224
+ while (ts < templateString.length && rs < redactedString.length) {
225
+ let ct = getTChar();
226
+ let cr = getRChar();
227
+ if (ct !== cr) {
228
+ // only valid if param contains "{" & redacted contains "*"
229
+ if (ct === TEMPLATE_START_CHARCODE && cr === utils_1.REDACTION_CHAR_CODE) {
230
+ //check that the char after first "{" is also "{"
231
+ if (getTChar() !== TEMPLATE_START_CHARCODE) {
232
+ return false;
233
+ }
234
+ //look for first closing bracket
235
+ while (((ct = getTChar()) !== TEMPLATE_END_CHARCODE) && ct !== -1) {
236
+ }
237
+ //look for second closing bracket
238
+ while (((ct = getTChar()) !== TEMPLATE_END_CHARCODE) && ct !== -1) {
239
+ }
240
+ if (ct === -1) {
241
+ return false;
242
+ }
243
+ //find the end of redaction
244
+ while (((cr = getRChar()) === utils_1.REDACTION_CHAR_CODE) && cr !== -1) {
245
+ }
246
+ if (cr === -1) {
247
+ //if there's nothing after template too then both ended at the end of strings
248
+ return getTChar() === -1;
249
+ }
250
+ //rewind redacted string position back 1 char because we read one extra
251
+ rs--;
252
+ }
253
+ else {
254
+ return false;
255
+ }
256
+ }
257
+ }
258
+ function getTChar() {
259
+ ts++;
260
+ if (ts < templateString.length) {
261
+ return templateString[ts];
262
+ }
263
+ else {
264
+ return -1;
265
+ }
266
+ }
267
+ function getRChar() {
268
+ if (!redactedString) {
269
+ return -1;
270
+ }
271
+ rs++;
272
+ if (rs < redactedString.length) {
273
+ return redactedString[rs];
274
+ }
275
+ else {
276
+ return -1;
277
+ }
278
+ }
279
+ return ts === templateString.length && rs === redactedString.length;
280
+ }
281
+ function generateRequstAndResponseFromTranscript(transcript, tlsVersion) {
282
+ const allPackets = transcript;
283
+ const packets = [];
284
+ for (const b of allPackets) {
285
+ if (b.message.type !== 'ciphertext'
286
+ || !(0, utils_1.isApplicationData)(b.message, tlsVersion)) {
287
+ continue;
288
+ }
289
+ const plaintext = tlsVersion === 'TLS1_3'
290
+ ? b.message.plaintext.slice(0, -1)
291
+ : b.message.plaintext;
292
+ packets.push({
293
+ message: plaintext,
294
+ sender: b.sender
295
+ });
296
+ }
297
+ const req = (0, utils_1.getHttpRequestDataFromTranscript)(packets);
298
+ const responsePackets = (0, tls_1.concatenateUint8Arrays)(packets.filter(p => p.sender === 'server').map(p => p.message).filter(b => !b.every(b => b === utils_1.REDACTION_CHAR_CODE)));
299
+ const res = parseHttpResponse(responsePackets);
300
+ return { req, res };
301
+ }
302
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvcHJvdmlkZXJzL2h0dHAvdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLHdDQUF3Qzs7QUEyQ3hDLGdEQU9DO0FBRUQsMERBK0JDO0FBRUQsc0RBNEJDO0FBaUZELG9DQVFDO0FBUUQsMEVBa0JDO0FBU0Qsb0VBV0M7QUFFRCw4Q0FLQztBQUVELDhCQU1DO0FBU0Qsb0RBNEVDO0FBRUQsMEZBMEJDO0FBdFhELDhDQUE2RDtBQUM3RCwrQ0FRcUI7QUFDckIsaURBQXdDO0FBRXhDLHFDQUF1SjtBQVN2SixJQUFJLEdBQUcsQ0FBQTtBQUNQLElBQUksQ0FBQztJQUNKLEdBQUcsR0FBRyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUE7SUFDcEIsSUFBRyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDN0IsR0FBRyxHQUFHLFNBQVMsQ0FBQTtRQUNmLE1BQU0sSUFBSSxLQUFLLEVBQUUsQ0FBQTtJQUNsQixDQUFDO0FBQ0YsQ0FBQztBQUFDLFdBQUssQ0FBQztJQUNQLE9BQU8sQ0FBQyxHQUFHLENBQUMscUNBQXFDLENBQUMsQ0FBQTtBQUNuRCxDQUFDO0FBRUQsSUFBSSxHQUFHLENBQUE7QUFFUCxJQUFHLE9BQU8sTUFBTSxLQUFLLFdBQVcsRUFBRSxDQUFDO0lBQ2xDLGFBQWE7SUFDYixHQUFHLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQTtBQUNuQixDQUFDO0tBQU0sQ0FBQztJQUNQLEdBQUcsR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUE7QUFDdkIsQ0FBQztBQUVELFNBQWdCLGtCQUFrQixDQUNqQyxJQUFZLEVBQ1osZUFBdUIsRUFDdkIsWUFBcUI7SUFFckIsTUFBTSxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsR0FBRyx1QkFBdUIsQ0FBQyxJQUFJLEVBQUUsZUFBZSxFQUFFLFlBQVks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
@@ -0,0 +1,4 @@
1
+ import { Provider, ProviderName } from 'src/types';
2
+ export declare const providers: {
3
+ [T in ProviderName]: Provider<T>;
4
+ };
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.providers = void 0;
7
+ const http_1 = __importDefault(require("src/providers/http"));
8
+ exports.providers = {
9
+ http: http_1.default,
10
+ };
11
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcHJvdmlkZXJzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLDhEQUFxQztBQUd4QixRQUFBLFNBQVMsR0FFbEI7SUFDSCxJQUFJLEVBQUosY0FBSTtDQUNKLENBQUEifQ==
@@ -0,0 +1 @@
1
+ import 'src/server/utils/config-env';
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const contracts_1 = require("src/avs/utils/contracts");
4
+ require("src/server/utils/config-env");
5
+ async function main() {
6
+ const { wallet, contract } = (0, contracts_1.getContracts)();
7
+ const meta = await contract.taskCreationMetadata();
8
+ console.log('Metadata parameters:', `maxTaskCreationDelayS: ${meta.maxTaskCreationDelayS}`, `minSignaturesPerTask: ${meta.minSignaturesPerTask}`, `maxTaskLifetimeS: ${meta.maxTaskLifetimeS}`);
9
+ console.log(`Checking registration for operator ${wallet.address}`);
10
+ const operatorAddr = wallet.address;
11
+ const metadata = await contract.getMetadataForOperator(operatorAddr)
12
+ .catch(err => {
13
+ if (err.message.includes('Operator not found')) {
14
+ return;
15
+ }
16
+ throw err;
17
+ });
18
+ if (!metadata) {
19
+ console.log('Operator not registered');
20
+ const isWhitelisted = await contract
21
+ .isOperatorWhitelisted(operatorAddr);
22
+ console.log(`Is whitelisted: ${isWhitelisted}`);
23
+ return;
24
+ }
25
+ console.log('Operator registered, URL:', metadata.url);
26
+ }
27
+ main();
28
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2stYXZzLXJlZ2lzdHJhdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zY3JpcHRzL2NoZWNrLWF2cy1yZWdpc3RyYXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSx1REFBc0Q7QUFDdEQsdUNBQW9DO0FBRXBDLEtBQUssVUFBVSxJQUFJO0lBQ2xCLE1BQU0sRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLEdBQUcsSUFBQSx3QkFBWSxHQUFFLENBQUE7SUFFM0MsTUFBTSxJQUFJLEdBQUcsTUFBTSxRQUFRLENBQUMsb0JBQW9CLEVBQUUsQ0FBQTtJQUNsRCxPQUFPLENBQUMsR0FBRyxDQUNWLHNCQUFzQixFQUN0QiwwQkFBMEIsSUFBSSxDQUFDLHFCQUFxQixFQUFFLEVBQ3RELHlCQUF5QixJQUFJLENBQUMsb0JBQW9CLEVBQUUsRUFDcEQscUJBQXFCLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUM1QyxDQUFBO0lBRUQsT0FBTyxDQUFDLEdBQUcsQ0FBQyxzQ0FBc0MsTUFBTyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUE7SUFDcEUsTUFBTSxZQUFZLEdBQUcsTUFBTyxDQUFDLE9BQU8sQ0FBQTtJQUNwQyxNQUFNLFFBQVEsR0FBRyxNQUFNLFFBQVEsQ0FBQyxzQkFBc0IsQ0FBQyxZQUFZLENBQUM7U0FDbEUsS0FBSyxDQUFDLEdBQUcsQ0FBQyxFQUFFO1FBQ1osSUFBRyxHQUFHLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxvQkFBb0IsQ0FBQyxFQUFFLENBQUM7WUFDL0MsT0FBTTtRQUNQLENBQUM7UUFFRCxNQUFNLEdBQUcsQ0FBQTtJQUNWLENBQUMsQ0FBQyxDQUFBO0lBQ0gsSUFBRyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ2QsT0FBTyxDQUFDLEdBQUcsQ0FBQyx5QkFBeUIsQ0FBQyxDQUFBO1FBQ3RDLE1BQU0sYUFBYSxHQUFHLE1BQU0sUUFBUTthQUNsQyxxQkFBcUIsQ0FBQyxZQUFZLENBQUMsQ0FBQTtRQUNyQyxPQUFPLENBQUMsR0FBRyxDQUFDLG1CQUFtQixhQUFhLEVBQUUsQ0FBQyxDQUFBO1FBQy9DLE9BQU07SUFDUCxDQUFDO0lBRUQsT0FBTyxDQUFDLEdBQUcsQ0FBQywyQkFBMkIsRUFBRSxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUE7QUFDdkQsQ0FBQztBQUVELElBQUksRUFBRSxDQUFBIn0=
@@ -0,0 +1,5 @@
1
+ export declare function generateTsFromYamlSchema(name: string, type: 'parameters' | 'secret-parameters'): Promise<{
2
+ ts: string;
3
+ schemaTitle: any;
4
+ jsonTitle: string;
5
+ }>;
@@ -0,0 +1,82 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.generateTsFromYamlSchema = generateTsFromYamlSchema;
4
+ const promises_1 = require("fs/promises");
5
+ const json_schema_to_typescript_1 = require("json-schema-to-typescript");
6
+ const yaml_1 = require("yaml");
7
+ const PROVIDER_SCHEMAS_PATH = './provider-schemas';
8
+ const GEN_TS_FILENAME = './src/types/providers.gen.ts';
9
+ const BinaryDataType = 'BinaryData';
10
+ async function main() {
11
+ const folders = await findAllProviderFolders();
12
+ console.log(`Generating for ${folders.length} provider folders`);
13
+ let ts = '/* eslint-disable */\n/* Generated file. Do not edit */';
14
+ // json-schema nor ajv support uint8array formats,
15
+ // so we define a custom type for binary data
16
+ // and use it in the generated types
17
+ ts += `\n\ntype ${BinaryDataType} = Uint8Array | string\n`;
18
+ // type map of each provider to its parameters and secret parameters
19
+ let providerTypeMap = '\nexport interface ProvidersConfig {\n';
20
+ // schema map of each provider to its parameters and secret parameters
21
+ // storing the JSON schema in the map
22
+ // lets us validate the parameters and secret parameters
23
+ let providerSchemaMap = '\nexport const PROVIDER_SCHEMAS = {\n';
24
+ for (const folder of folders) {
25
+ const { schemaTitle: paramsSchemaTitle, ts: paramsSchemaTs, jsonTitle: paramsJsonTitle } = await generateTsFromYamlSchema(folder, 'parameters');
26
+ const { schemaTitle: secretParamsSchemaTitle, ts: secretParamsSchemaTs, jsonTitle: secretParamsJsonTitle } = await generateTsFromYamlSchema(folder, 'secret-parameters');
27
+ ts += `\n${paramsSchemaTs}\n${secretParamsSchemaTs}`;
28
+ providerTypeMap += ` ${folder}: {\n`;
29
+ providerTypeMap += ` parameters: ${paramsSchemaTitle}\n`;
30
+ providerTypeMap += ` secretParameters: ${secretParamsSchemaTitle}\n`;
31
+ providerTypeMap += ' }\n';
32
+ providerSchemaMap += ` ${folder}: {\n`;
33
+ providerSchemaMap += ` parameters: ${paramsJsonTitle},\n`;
34
+ providerSchemaMap += ` secretParameters: ${secretParamsJsonTitle}\n`;
35
+ providerSchemaMap += ' },\n';
36
+ }
37
+ providerTypeMap += '}\n';
38
+ providerSchemaMap += '}\n';
39
+ ts += providerTypeMap;
40
+ ts += providerSchemaMap;
41
+ await (0, promises_1.writeFile)(GEN_TS_FILENAME, ts);
42
+ console.log(`Wrote to ${GEN_TS_FILENAME}`);
43
+ }
44
+ async function getJsonSchemaForProvider(name, type) {
45
+ const paramsYaml = await (0, promises_1.readFile)(`${PROVIDER_SCHEMAS_PATH}/${name}/${type}.yaml`, { encoding: 'utf-8' });
46
+ const paramsJson = (0, yaml_1.parse)(paramsYaml);
47
+ return paramsJson;
48
+ }
49
+ async function generateTsFromYamlSchema(name, type) {
50
+ const paramsJson = await getJsonSchemaForProvider(name, type);
51
+ let paramsSchemaTs = await (0, json_schema_to_typescript_1.compile)(paramsJson, '', {
52
+ additionalProperties: false,
53
+ bannerComment: '',
54
+ ignoreMinAndMaxItems: true,
55
+ declareExternallyReferenced: false,
56
+ customName({ type, format }) {
57
+ if (type === 'string' && format === 'binary') {
58
+ return BinaryDataType;
59
+ }
60
+ return undefined;
61
+ },
62
+ });
63
+ const jsonTitle = `${paramsJson.title}Json`;
64
+ paramsSchemaTs += `\nexport const ${jsonTitle} = ${JSON.stringify(paramsJson)}`;
65
+ return {
66
+ ts: paramsSchemaTs,
67
+ schemaTitle: paramsJson.title,
68
+ jsonTitle
69
+ };
70
+ }
71
+ /**
72
+ * Find all provider folders in the provider-schemas directory
73
+ * @returns {Promise<string[]>} List of provider folder names
74
+ */
75
+ async function findAllProviderFolders() {
76
+ const providerFolders = await (0, promises_1.readdir)(PROVIDER_SCHEMAS_PATH, { withFileTypes: true });
77
+ return providerFolders
78
+ .filter(p => p.isDirectory())
79
+ .map(p => p.name);
80
+ }
81
+ main();
82
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJhdGUtcHJvdmlkZXItdHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvc2NyaXB0cy9nZW5lcmF0ZS1wcm92aWRlci10eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQXlFQSw0REErQkM7QUF4R0QsMENBQTBEO0FBQzFELHlFQUFtRDtBQUNuRCwrQkFBNEI7QUFFNUIsTUFBTSxxQkFBcUIsR0FBRyxvQkFBb0IsQ0FBQTtBQUNsRCxNQUFNLGVBQWUsR0FBRyw4QkFBOEIsQ0FBQTtBQUN0RCxNQUFNLGNBQWMsR0FBRyxZQUFZLENBQUE7QUFFbkMsS0FBSyxVQUFVLElBQUk7SUFDbEIsTUFBTSxPQUFPLEdBQUcsTUFBTSxzQkFBc0IsRUFBRSxDQUFBO0lBRTlDLE9BQU8sQ0FBQyxHQUFHLENBQUMsa0JBQWtCLE9BQU8sQ0FBQyxNQUFNLG1CQUFtQixDQUFDLENBQUE7SUFFaEUsSUFBSSxFQUFFLEdBQUcseURBQXlELENBQUE7SUFDbEUsa0RBQWtEO0lBQ2xELDZDQUE2QztJQUM3QyxvQ0FBb0M7SUFDcEMsRUFBRSxJQUFJLFlBQVksY0FBYywwQkFBMEIsQ0FBQTtJQUMxRCxvRUFBb0U7SUFDcEUsSUFBSSxlQUFlLEdBQUcsd0NBQXdDLENBQUE7SUFDOUQsc0VBQXNFO0lBQ3RFLHFDQUFxQztJQUNyQyx3REFBd0Q7SUFDeEQsSUFBSSxpQkFBaUIsR0FBRyx1Q0FBdUMsQ0FBQTtJQUUvRCxLQUFJLE1BQU0sTUFBTSxJQUFJLE9BQU8sRUFBRSxDQUFDO1FBQzdCLE1BQU0sRUFDTCxXQUFXLEVBQUUsaUJBQWlCLEVBQzlCLEVBQUUsRUFBRSxjQUFjLEVBQ2xCLFNBQVMsRUFBRSxlQUFlLEVBQzFCLEdBQUcsTUFBTSx3QkFBd0IsQ0FBQyxNQUFNLEVBQUUsWUFBWSxDQUFDLENBQUE7UUFDeEQsTUFBTSxFQUNMLFdBQVcsRUFBRSx1QkFBdUIsRUFDcEMsRUFBRSxFQUFFLG9CQUFvQixFQUN4QixTQUFTLEVBQUUs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
@@ -0,0 +1,9 @@
1
+ import 'src/server/utils/config-env';
2
+ import { ProviderName, ProviderParams, ProviderSecretParams } from '..';
3
+ type ProviderReceiptGenerationParams<P extends ProviderName> = {
4
+ name: P;
5
+ params: ProviderParams<P>;
6
+ secretParams: ProviderSecretParams<P>;
7
+ };
8
+ export declare function main<T extends ProviderName>(receiptParams?: ProviderReceiptGenerationParams<T>): Promise<void>;
9
+ export {};
@@ -0,0 +1,93 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.main = main;
4
+ const promises_1 = require("fs/promises");
5
+ const server_1 = require("src/server");
6
+ const utils_1 = require("src/utils");
7
+ const env_1 = require("src/utils/env");
8
+ require("src/server/utils/config-env");
9
+ const __1 = require("..");
10
+ const DEFAULT_ATTESTOR_HOST_PORT = 'wss://attestor.reclaimprotocol.org/ws';
11
+ const PRIVATE_KEY_HEX = (0, env_1.getEnvVariable)('PRIVATE_KEY_HEX')
12
+ // demo private key
13
+ || '0x0123788edad59d7c013cdc85e4372f350f828e2cec62d9a2de4560e69aec7f89';
14
+ async function main(receiptParams) {
15
+ var _a, _b, _c, _d;
16
+ const paramsJson = receiptParams !== null && receiptParams !== void 0 ? receiptParams : (await getInputParameters());
17
+ if (!(paramsJson.name in __1.providers)) {
18
+ throw new Error(`Unknown provider "${paramsJson.name}"`);
19
+ }
20
+ (0, utils_1.assertValidateProviderParams)(paramsJson.name, paramsJson.params);
21
+ let attestorHostPort = getCliArgument('attestor')
22
+ || DEFAULT_ATTESTOR_HOST_PORT;
23
+ let server;
24
+ if (attestorHostPort === 'local') {
25
+ console.log('starting local attestor server...');
26
+ server = await (0, server_1.createServer)();
27
+ attestorHostPort = `ws://localhost:${__1.API_SERVER_PORT}${__1.WS_PATHNAME}`;
28
+ }
29
+ const zkEngine = getCliArgument('zk') === 'gnark' ? 'gnark' : 'snarkJS';
30
+ const receipt = await (0, __1.createClaimOnAttestor)({
31
+ name: paramsJson.name,
32
+ secretParams: paramsJson.secretParams,
33
+ params: paramsJson.params,
34
+ ownerPrivateKey: PRIVATE_KEY_HEX,
35
+ client: { url: attestorHostPort },
36
+ logger: __1.logger,
37
+ zkEngine
38
+ });
39
+ if (receipt.error) {
40
+ console.error('claim creation failed:', receipt.error);
41
+ }
42
+ else {
43
+ const ctx = ((_a = receipt.claim) === null || _a === void 0 ? void 0 : _a.context)
44
+ ? JSON.parse(receipt.claim.context)
45
+ : {};
46
+ console.log(`receipt is valid for ${paramsJson.name} provider`);
47
+ if (ctx.extractedParameters) {
48
+ console.log('extracted params:', ctx.extractedParameters);
49
+ }
50
+ }
51
+ const decTranscript = await (0, server_1.decryptTranscript)((_b = receipt.request) === null || _b === void 0 ? void 0 : _b.transcript, __1.logger, zkEngine, (_c = receipt.request) === null || _c === void 0 ? void 0 : _c.fixedServerIV, (_d = receipt.request) === null || _d === void 0 ? void 0 : _d.fixedClientIV);
52
+ const transcriptStr = (0, __1.getTranscriptString)(decTranscript);
53
+ console.log('receipt:\n', transcriptStr);
54
+ const client = (0, __1.getAttestorClientFromPool)(attestorHostPort);
55
+ await client.terminateConnection();
56
+ server === null || server === void 0 ? void 0 : server.close();
57
+ }
58
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
59
+ async function getInputParameters() {
60
+ const paramsJsonFile = getCliArgument('json');
61
+ if (!paramsJsonFile) {
62
+ const name = getCliArgument('name');
63
+ const paramsStr = getCliArgument('params');
64
+ const secretParamsStr = getCliArgument('secretParams');
65
+ if (!name || !paramsStr || !secretParamsStr) {
66
+ throw new Error('Either provide --json argument for parameters JSON or provide separately with --name, --params & --secretParams');
67
+ }
68
+ return {
69
+ name,
70
+ params: JSON.parse(paramsStr),
71
+ secretParams: JSON.parse(secretParamsStr)
72
+ };
73
+ }
74
+ let fileContents = await (0, promises_1.readFile)(paramsJsonFile, 'utf8');
75
+ for (const variable in process.env) {
76
+ fileContents = fileContents.replace(`{{${variable}}}`, process.env[variable]);
77
+ }
78
+ return JSON.parse(fileContents);
79
+ }
80
+ function getCliArgument(arg) {
81
+ const index = process.argv.indexOf(`--${arg}`);
82
+ if (index === -1) {
83
+ return undefined;
84
+ }
85
+ return process.argv[index + 1];
86
+ }
87
+ if (require.main === module) {
88
+ main()
89
+ .catch(err => {
90
+ console.error('error in receipt gen', err);
91
+ });
92
+ }
93
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJhdGUtcmVjZWlwdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zY3JpcHRzL2dlbmVyYXRlLXJlY2VpcHQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUE4QkEsb0JBd0RDO0FBdEZELDBDQUFzQztBQUN0Qyx1Q0FBNEQ7QUFDNUQscUNBQXdEO0FBQ3hELHVDQUE4QztBQUU5Qyx1Q0FBb0M7QUFDcEMsMEJBV1c7QUFRWCxNQUFNLDBCQUEwQixHQUFHLHVDQUF1QyxDQUFBO0FBQzFFLE1BQU0sZUFBZSxHQUFHLElBQUEsb0JBQWMsRUFBQyxpQkFBaUIsQ0FBQztJQUN4RCxtQkFBbUI7T0FDaEIsb0VBQW9FLENBQUE7QUFFakUsS0FBSyxVQUFVLElBQUksQ0FDekIsYUFBa0Q7O0lBRWxELE1BQU0sVUFBVSxHQUFHLGFBQWEsYUFBYixhQUFhLGNBQWIsYUFBYSxHQUFJLENBQUMsTUFBTSxrQkFBa0IsRUFBRSxDQUFDLENBQUE7SUFDaEUsSUFBRyxDQUFDLENBQUMsVUFBVSxDQUFDLElBQUksSUFBSSxhQUFTLENBQUMsRUFBRSxDQUFDO1FBQ3BDLE1BQU0sSUFBSSxLQUFLLENBQUMscUJBQXFCLFVBQVUsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFBO0lBQ3pELENBQUM7SUFFRCxJQUFBLG9DQUE0QixFQUFTLFVBQVUsQ0FBQyxJQUFJLEVBQUUsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFBO0lBRXhFLElBQUksZ0JBQWdCLEdBQUcsY0FBYyxDQUFDLFVBQVUsQ0FBQztXQUN2QywwQkFBMEIsQ0FBQTtJQUNwQyxJQUFJLE1BQW1DLENBQUE7SUFDdkMsSUFBRyxnQkFBZ0IsS0FBSyxPQUFPLEVBQUUsQ0FBQztRQUNqQyxPQUFPLENBQUMsR0FBRyxDQUFDLG1DQUFtQyxDQUFDLENBQUE7UUFDaEQsTUFBTSxHQUFHLE1BQU0sSUFBQSxxQkFBWSxHQUFFLENBQUE7UUFDN0IsZ0JBQWdCLEdBQUcsa0JBQWtCLG1CQUFlLEdBQUcsZUFBVyxFQUFFLENBQUE7SUFDckUsQ0FBQztJQUVELE1BQU0sUUFBUSxHQUFHLGNBQWMsQ0FBQyxJQUFJLENBQUMsS0FBSyxPQUFPLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFBO0lBQ3ZFLE1BQU0sT0FBTyxHQUFHLE1BQU0sSUFBQSx5QkFBcUIsRUFBQztRQUMzQyxJQUFJLEVBQUUsVUFBVSxDQUFDLElBQUk7UUFDckIsWUFBWSxFQUFFLFVBQVUsQ0FBQyxZQUFZO1FBQ3JDLE1BQU0sRUFBRSxVQUFVLENBQUMsTUFBTTtRQUN6QixlQUFlLEVBQUUsZUFBZTtRQUNoQyxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsZ0JBQWdCLEVBQUU7UUFDakMsTUFBTSxFQUFOLFVBQU07UUFDTixRQUFRO0tBQ1IsQ0FBQyxDQUFBO0lBRUYsSUFBRyxPQUFPLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDbEIsT0FBTyxDQUFDLEtBQUssQ0FBQyx3QkFBd0IsRUFBRSxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUE7SUFDdkQsQ0FBQztTQUFNLENBQUM7UUFDUCxNQUFNLEdBQUcsR0FBRyxDQUFBLE1BQUEsT0FBTyxDQUFDLEtBQUssMENBQUUsT0FBTztZQUNqQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQztZQUNuQyxDQUFDLENBQUMsRUFBRSxDQUFBO1FBQ0wsT0FBTyxDQUFDLEdBQUcsQ0FBQyx3QkFBd0IsVUFBVSxDQUFDLElBQUksV0FBVyxDQUFDLENBQUE7UUFDL0QsSUFBRyxHQUFHLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztZQUM1QixPQUFPLENBQUMsR0FBRyxDQUFDLG1CQUFtQixFQUFFLEdBQUcsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFBO1FBQzFELENBQUM7SUFDRixDQUFDO0lBRUQsTUFBTSxhQUFhLEdBQUcsTUFBTSxJQUFBLDBCQUFpQixFQUM1QyxNQUFBLE9BQU8sQ0FBQyxPQUFPLDBDQUFFLFVBQVcsRUFDNUIsVUFBTSxFQUNOLFFBQVEsRUFDUixNQUFBLE9BQU8sQ0FBQyxPQUFPLDBDQUFFLGFBQWMsRUFDL0IsTUFBQSxPQUFPLENBQUMsT0FBTywwQ0FBRSxhQUFjLENBQy9CLENBQUE7SUFDRCxNQUFNLGFBQWEsR0FBRyxJQUFBLHVCQUFtQixFQUFDLGFBQWEsQ0FBQyxDQUFBO0lBQ3hELE9BQU8sQ0FBQyxHQUFHLENBQUMsWUFBWSxFQUFFLGFBQWEsQ0FBQyxDQUFBO0lBRXhDLE1BQU0sTUFBTSxHQUFHLElBQUEsNkJBQXlCLEVBQUMsZ0JBQWdCLENBQUMsQ0FBQTtJQUMxRCxNQUFNLE1BQU0sQ0FBQyxtQkFBbUIsRUFBRSxDQUFBO0lBQ2xDLE1BQU0sYUFBTixNQUFNLHVCQUFOLE1BQU0sQ0FBRSxLQUFLLEVBQUUsQ0FBQTtBQUVoQixDQUFDO0FBRUQsOERBQThEO0FBQzlELEtBQUssVUFBVSxrQkFBa0I7SUFDaEMsTUFBTSxjQUFjLEdBQUcsY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFBO0lBQzdDLElBQUcsQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUNwQixNQUFNLElBQUksR0FBRyxjQUFjLENBQUMsTUFBTSxDQUFDLENBQUE7UUFDbkMsTUFBTSxTQUFTLEdBQUcsY0FBYyxDQUFDLFFBQVEsQ0FBQyxDQUFBO1FBQzFDLE1BQU0sZUFBZSxHQUFHLGNBQWMsQ0FBQyxjQUFjLENBQUMsQ0FBQTtRQUN0RCxJQUFHLENBQUMsSUFBSSxJQUFJLENBQUMsU0FBUyxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7WUFDNUMsTUFBTSxJQUFJLEtBQUssQ0FBQyxpSEFBaUgsQ0FBQyxDQUFBO1FBQ25JLENBQUM7UUFFRCxPQUFPO1lBQ04sSUFBSTtZQUNKLE1BQU0sRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQztZQUM3QixZQUFZLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxlQUFlLENBQUM7U0FDekMsQ0FBQTtJQUNGLENBQUM7SUFFRCxJQUFJLFlBQVksR0FBRyxNQUFNLElBQUEsbUJBQVEsRUFBQyxjQUFjLEVBQUUsTUFBTSxDQUFDLENBQUE7SUFDekQsS0FBSSxNQUFNLFFBQVEsSUFBSSxPQUFPLENBQUMsR0FBRyxFQUFFLENBQUM7UUFDbkMsWUFBWSxHQUFHLFlBQVksQ0FBQyxPQUFPLENBQ2xDLEtBQUssUUFBUSxJQUFJLEVBQ1IsT0FBTyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUUsQ0FDL0IsQ0FBQTtJQUNGLENBQUM7SUFFRCxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLENBQUE7QUFDaEMsQ0FBQztBQUVELFNBQVMsY0FBYyxDQUFDLEdBQVc7SUFDbEMsTUFBTSxLQUFLLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxHQUFHLEVBQUUsQ0FBQyxDQUFBO0lBQzlDLElBQUcsS0FBSyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDakIsT0FBTyxTQUFTLENBQUE7SUFDakIsQ0FBQztJQUVELE9BQU8sT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLENBQUE7QUFDL0IsQ0FBQztBQUVELElBQUcsT0FBTyxDQUFDLElBQUksS0FBSyxNQUFNLEVBQUUsQ0FBQztJQUM1QixJQUFJLEVBQUU7U0FDSixLQUFLLENBQUMsR0FBRyxDQUFDLEVBQUU7UUFDWixPQUFPLENBQUMsS0FBSyxDQUFDLHNCQUFzQixFQUFFLEdBQUcsQ0FBQyxDQUFBO0lBQzNDLENBQUMsQ0FBQyxDQUFBO0FBQ0osQ0FBQyJ9
@@ -0,0 +1 @@
1
+ import 'src/server/utils/config-env';
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const register_1 = require("src/avs/utils/register");
4
+ require("src/server/utils/config-env");
5
+ (0, register_1.registerOperator)();
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVnaXN0ZXItYXZzLW9wZXJhdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3NjcmlwdHMvcmVnaXN0ZXItYXZzLW9wZXJhdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEscURBQXlEO0FBQ3pELHVDQUFvQztBQUVwQyxJQUFBLDJCQUFnQixHQUFFLENBQUEifQ==
@@ -0,0 +1 @@
1
+ import 'src/server/utils/config-env';
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const server_1 = require("src/server");
4
+ require("src/server/utils/config-env");
5
+ (0, server_1.createServer)();
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhcnQtc2VydmVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3NjcmlwdHMvc3RhcnQtc2VydmVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsdUNBQXlDO0FBQ3pDLHVDQUFvQztBQUVwQyxJQUFBLHFCQUFZLEdBQUUsQ0FBQSJ9
@@ -0,0 +1 @@
1
+ export declare function main(): Promise<void>;