chainflow 0.1.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 (60) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +414 -0
  3. package/dist/core/chainflow.d.ts +44 -0
  4. package/dist/core/chainflow.js +113 -0
  5. package/dist/core/chainflow.js.map +1 -0
  6. package/dist/core/inputNode.d.ts +41 -0
  7. package/dist/core/inputNode.js +228 -0
  8. package/dist/core/inputNode.js.map +1 -0
  9. package/dist/core/logger.d.ts +3 -0
  10. package/dist/core/logger.js +15 -0
  11. package/dist/core/logger.js.map +1 -0
  12. package/dist/core/sourceNode.d.ts +24 -0
  13. package/dist/core/sourceNode.js +37 -0
  14. package/dist/core/sourceNode.js.map +1 -0
  15. package/dist/core/store.d.ts +14 -0
  16. package/dist/core/store.js +91 -0
  17. package/dist/core/store.js.map +1 -0
  18. package/dist/core/utils/constants.d.ts +2 -0
  19. package/dist/core/utils/constants.js +6 -0
  20. package/dist/core/utils/constants.js.map +1 -0
  21. package/dist/core/utils/initializers.d.ts +17 -0
  22. package/dist/core/utils/initializers.js +24 -0
  23. package/dist/core/utils/initializers.js.map +1 -0
  24. package/dist/core/utils/link.d.ts +24 -0
  25. package/dist/core/utils/link.js +35 -0
  26. package/dist/core/utils/link.js.map +1 -0
  27. package/dist/core/utils/source.d.ts +13 -0
  28. package/dist/core/utils/source.js +18 -0
  29. package/dist/core/utils/source.js.map +1 -0
  30. package/dist/core/utils/symbols.d.ts +8 -0
  31. package/dist/core/utils/symbols.js +12 -0
  32. package/dist/core/utils/symbols.js.map +1 -0
  33. package/dist/http/endpoint.d.ts +64 -0
  34. package/dist/http/endpoint.js +233 -0
  35. package/dist/http/endpoint.js.map +1 -0
  36. package/dist/http/errors.d.ts +11 -0
  37. package/dist/http/errors.js +27 -0
  38. package/dist/http/errors.js.map +1 -0
  39. package/dist/http/logger.d.ts +3 -0
  40. package/dist/http/logger.js +15 -0
  41. package/dist/http/logger.js.map +1 -0
  42. package/dist/http/originServer.d.ts +28 -0
  43. package/dist/http/originServer.js +60 -0
  44. package/dist/http/originServer.js.map +1 -0
  45. package/dist/http/reqBuilder.d.ts +14 -0
  46. package/dist/http/reqBuilder.js +50 -0
  47. package/dist/http/reqBuilder.js.map +1 -0
  48. package/dist/http/utils/client.d.ts +16 -0
  49. package/dist/http/utils/client.js +39 -0
  50. package/dist/http/utils/client.js.map +1 -0
  51. package/dist/http/utils/constants.d.ts +2 -0
  52. package/dist/http/utils/constants.js +12 -0
  53. package/dist/http/utils/constants.js.map +1 -0
  54. package/dist/http/utils/hash.d.ts +4 -0
  55. package/dist/http/utils/hash.js +8 -0
  56. package/dist/http/utils/hash.js.map +1 -0
  57. package/dist/index.d.ts +8 -0
  58. package/dist/index.js +25 -0
  59. package/dist/index.js.map +1 -0
  60. package/package.json +59 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"symbols.js","sourceRoot":"","sources":["../../../src/core/utils/symbols.ts"],"names":[],"mappings":";;;AAAa,QAAA,SAAS,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC;AAChC,QAAA,UAAU,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC;AAClC,QAAA,YAAY,GAAG,MAAM,CAAC,cAAc,CAAC,CAAC;AACtC,QAAA,YAAY,GAAG,MAAM,CAAC,cAAc,CAAC,CAAC;AACtC,QAAA,QAAQ,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC;AAC9B,QAAA,QAAQ,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC;AAC9B,QAAA,mBAAmB,GAAG,MAAM,CAAC,qBAAqB,CAAC,CAAC;AACpD,QAAA,gBAAgB,GAAG,MAAM,CAAC,kBAAkB,CAAC,CAAC"}
@@ -0,0 +1,64 @@
1
+ import { InputNode, SourceValues, NodeValue } from '../core/inputNode';
2
+ import { Dispatcher } from 'undici';
3
+ import { CallOpts, CallResult, IEndpoint } from '../core/chainflow';
4
+ import { SourceNode } from '../core/sourceNode';
5
+ import { nodeValueIdentifier } from '../core/utils/symbols';
6
+ import { IStore } from '../core/store';
7
+ import { SUPPORTED_METHOD } from './utils/constants';
8
+ export interface INodeWithValue {
9
+ [nodeValueIdentifier]: NodeValue;
10
+ }
11
+ /** Describes all the possible input nodes of a HTTP request. */
12
+ export interface HttpInputNodes {
13
+ pathParams: InputNode;
14
+ body: InputNode;
15
+ query: InputNode;
16
+ headers: InputNode;
17
+ }
18
+ /** Configurations for the endpoint. */
19
+ export interface EndpointConfig {
20
+ respParser?: `${RespParser}`;
21
+ respValidator?: (resp: Dispatcher.ResponseData) => {
22
+ valid: boolean;
23
+ msg?: string;
24
+ };
25
+ }
26
+ /** Formats to parse the response body. */
27
+ export declare enum RespParser {
28
+ ArrayBuffer = "arrayBuffer",
29
+ Blob = "blob",
30
+ Json = "json",
31
+ Text = "text"
32
+ }
33
+ /**
34
+ * Manages request and response nodes,
35
+ * as well as calls to that endpoint
36
+ */
37
+ export declare class Endpoint implements IEndpoint {
38
+ #private;
39
+ /** A hash that uniquely identifies this endpoint. */
40
+ hash: string;
41
+ constructor({ addr, method, path }: {
42
+ addr: string;
43
+ method: string;
44
+ path: string;
45
+ });
46
+ get method(): SUPPORTED_METHOD;
47
+ /** Configures this endpoint. */
48
+ config(config: EndpointConfig): this;
49
+ /** Sets the request body. */
50
+ body(payload: any): this;
51
+ get resp(): SourceNode;
52
+ /** Sets the request query parameters. */
53
+ query(params: any): this;
54
+ /** Sets custom headers for requests. */
55
+ headers(params: Record<string, string | INodeWithValue | undefined>): this;
56
+ /** Sets headers provided by the originServer object. */
57
+ baseHeaders(node: InputNode): this;
58
+ /** Declare values to store from responses to this endpoint. */
59
+ store(callback: (resp: SourceNode) => IStore<SourceNode>): this;
60
+ /** Calls this endpoint with responses provided from earlier requests in the chain. */
61
+ call(responses: SourceValues, opts?: CallOpts): Promise<CallResult>;
62
+ /** Passes the request input nodes of this endpoint to a callback. */
63
+ set(setter: (nodes: HttpInputNodes) => void): this;
64
+ }
@@ -0,0 +1,233 @@
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 __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
12
+ if (kind === "m") throw new TypeError("Private method is not writable");
13
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
14
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
15
+ return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
16
+ };
17
+ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
18
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
19
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
20
+ return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
21
+ };
22
+ var __importDefault = (this && this.__importDefault) || function (mod) {
23
+ return (mod && mod.__esModule) ? mod : { "default": mod };
24
+ };
25
+ var _Endpoint_instances, _Endpoint_addr, _Endpoint_path, _Endpoint_method, _Endpoint_req, _Endpoint_resp, _Endpoint_config, _Endpoint_store, _Endpoint_extractPathParams, _Endpoint_insertPathParams, _Endpoint_insertQueryParams, _Endpoint_validateResp, _Endpoint_findMissingValues, _Endpoint_parseResponse;
26
+ Object.defineProperty(exports, "__esModule", { value: true });
27
+ exports.Endpoint = exports.RespParser = void 0;
28
+ const hash_1 = require("./utils/hash");
29
+ const inputNode_1 = require("../core/inputNode");
30
+ const reqBuilder_1 = require("./reqBuilder");
31
+ const client_1 = __importDefault(require("./utils/client"));
32
+ const errors_1 = require("./errors");
33
+ const deepmerge_1 = __importDefault(require("@fastify/deepmerge"));
34
+ const sourceNode_1 = require("../core/sourceNode");
35
+ const symbols_1 = require("../core/utils/symbols");
36
+ const initializers_1 = require("../core/utils/initializers");
37
+ const store_1 = require("../core/store");
38
+ const logger_1 = require("./logger");
39
+ const constants_1 = require("./utils/constants");
40
+ const deepmerge = (0, deepmerge_1.default)();
41
+ const PATH_PARAM_REGEX = /\/(\{[^{}]+\})/g;
42
+ /** Formats to parse the response body. */
43
+ var RespParser;
44
+ (function (RespParser) {
45
+ RespParser["ArrayBuffer"] = "arrayBuffer";
46
+ RespParser["Blob"] = "blob";
47
+ RespParser["Json"] = "json";
48
+ RespParser["Text"] = "text";
49
+ })(RespParser || (exports.RespParser = RespParser = {}));
50
+ /**
51
+ * Manages request and response nodes,
52
+ * as well as calls to that endpoint
53
+ */
54
+ class Endpoint {
55
+ constructor({ addr, method, path }) {
56
+ _Endpoint_instances.add(this);
57
+ _Endpoint_addr.set(this, '127.0.0.1');
58
+ _Endpoint_path.set(this, void 0);
59
+ _Endpoint_method.set(this, void 0);
60
+ _Endpoint_req.set(this, void 0);
61
+ _Endpoint_resp.set(this, void 0);
62
+ _Endpoint_config.set(this, {});
63
+ _Endpoint_store.set(this, new store_1.Store());
64
+ method = method.toLowerCase();
65
+ if (!constants_1.SUPPORTED_METHODS.includes(method))
66
+ throw new errors_1.UnsupportedMethodError(method);
67
+ !(addr.startsWith('http://') || addr.startsWith('https://')) && (addr = `http://${addr}`);
68
+ __classPrivateFieldSet(this, _Endpoint_addr, addr, "f");
69
+ __classPrivateFieldSet(this, _Endpoint_path, path, "f");
70
+ __classPrivateFieldSet(this, _Endpoint_method, method, "f");
71
+ this.hash = (0, hash_1.hashEndpoint)({ route: __classPrivateFieldGet(this, _Endpoint_path, "f"), method: __classPrivateFieldGet(this, _Endpoint_method, "f") });
72
+ __classPrivateFieldSet(this, _Endpoint_req, new reqBuilder_1.ReqBuilder(), "f");
73
+ __classPrivateFieldGet(this, _Endpoint_instances, "m", _Endpoint_extractPathParams).call(this);
74
+ __classPrivateFieldSet(this, _Endpoint_resp, (0, sourceNode_1.sourceNode)(this.hash), "f");
75
+ }
76
+ get method() {
77
+ return __classPrivateFieldGet(this, _Endpoint_method, "f");
78
+ }
79
+ /** Configures this endpoint. */
80
+ config(config) {
81
+ __classPrivateFieldSet(this, _Endpoint_config, config, "f");
82
+ return this;
83
+ }
84
+ /** Sets the request body. */
85
+ body(payload) {
86
+ __classPrivateFieldGet(this, _Endpoint_req, "f").body = payload;
87
+ return this;
88
+ }
89
+ get resp() {
90
+ return __classPrivateFieldGet(this, _Endpoint_resp, "f");
91
+ }
92
+ /** Sets the request query parameters. */
93
+ query(params) {
94
+ __classPrivateFieldGet(this, _Endpoint_req, "f").query = params;
95
+ return this;
96
+ }
97
+ /** Sets custom headers for requests. */
98
+ headers(params) {
99
+ __classPrivateFieldGet(this, _Endpoint_req, "f").headers = params;
100
+ return this;
101
+ }
102
+ /** Sets headers provided by the originServer object. */
103
+ baseHeaders(node) {
104
+ __classPrivateFieldGet(this, _Endpoint_req, "f").baseHeaders = node;
105
+ return this;
106
+ }
107
+ /** Declare values to store from responses to this endpoint. */
108
+ store(callback) {
109
+ __classPrivateFieldGet(this, _Endpoint_store, "f").def = callback(this.resp);
110
+ return this;
111
+ }
112
+ /** Calls this endpoint with responses provided from earlier requests in the chain. */
113
+ call(responses, opts) {
114
+ var _a, _b, _c;
115
+ return __awaiter(this, void 0, void 0, function* () {
116
+ const method = __classPrivateFieldGet(this, _Endpoint_method, "f").toUpperCase();
117
+ let body;
118
+ const missingValues = []; // contains path of missing required values
119
+ if (method !== 'GET')
120
+ body = __classPrivateFieldGet(this, _Endpoint_req, "f").body[symbols_1.getNodeValue](responses, missingValues, ['body']);
121
+ let callPath = __classPrivateFieldGet(this, _Endpoint_path, "f");
122
+ let pathParams = {};
123
+ if (Object.keys(__classPrivateFieldGet(this, _Endpoint_req, "f").pathParams).length > 0) {
124
+ pathParams = __classPrivateFieldGet(this, _Endpoint_req, "f").pathParams[symbols_1.getNodeValue](responses, missingValues, ['pathParams']);
125
+ }
126
+ let queryParams = {};
127
+ if (Object.keys(__classPrivateFieldGet(this, _Endpoint_req, "f").query).length > 0) {
128
+ queryParams = __classPrivateFieldGet(this, _Endpoint_req, "f").query[symbols_1.getNodeValue](responses, missingValues, ['queryParams']);
129
+ }
130
+ const baseHeaders = __classPrivateFieldGet(this, _Endpoint_req, "f").baseHeaders[symbols_1.getNodeValue](responses, missingValues, ['headers']);
131
+ let headers = __classPrivateFieldGet(this, _Endpoint_req, "f").headers[symbols_1.getNodeValue](responses, missingValues, ['headers']);
132
+ baseHeaders && (headers = deepmerge(baseHeaders, headers !== null && headers !== void 0 ? headers : {}));
133
+ const finalMissingValues = __classPrivateFieldGet(this, _Endpoint_instances, "m", _Endpoint_findMissingValues).call(this, missingValues, opts);
134
+ if (finalMissingValues.length > 0)
135
+ throw new errors_1.RequiredValuesNotFoundError(this.hash, finalMissingValues);
136
+ if (opts === null || opts === void 0 ? void 0 : opts.body)
137
+ body = deepmerge(body, opts.body);
138
+ if (opts === null || opts === void 0 ? void 0 : opts.pathParams)
139
+ pathParams = deepmerge(pathParams, opts.pathParams);
140
+ if (opts === null || opts === void 0 ? void 0 : opts.query)
141
+ queryParams = deepmerge(queryParams, opts.query);
142
+ if (opts === null || opts === void 0 ? void 0 : opts.headers)
143
+ headers = deepmerge(headers, opts.headers);
144
+ callPath = __classPrivateFieldGet(this, _Endpoint_instances, "m", _Endpoint_insertPathParams).call(this, callPath, pathParams);
145
+ callPath = __classPrivateFieldGet(this, _Endpoint_instances, "m", _Endpoint_insertQueryParams).call(this, callPath, queryParams);
146
+ const resp = yield client_1.default.request({
147
+ addr: __classPrivateFieldGet(this, _Endpoint_addr, "f"),
148
+ path: callPath,
149
+ method: __classPrivateFieldGet(this, _Endpoint_method, "f").toUpperCase(),
150
+ body,
151
+ headers,
152
+ });
153
+ if (resp == null)
154
+ throw new errors_1.InvalidResponseError('No response received.');
155
+ const results = (_c = (_b = (_a = __classPrivateFieldGet(this, _Endpoint_config, "f")).respValidator) === null || _b === void 0 ? void 0 : _b.call(_a, resp)) !== null && _c !== void 0 ? _c : __classPrivateFieldGet(this, _Endpoint_instances, "m", _Endpoint_validateResp).call(this, resp);
156
+ if (!results.valid)
157
+ throw new errors_1.InvalidResponseError(results.msg);
158
+ const parsedResp = Object.assign(Object.assign({}, resp), { body: yield __classPrivateFieldGet(this, _Endpoint_instances, "m", _Endpoint_parseResponse).call(this, resp.body) });
159
+ return __classPrivateFieldGet(this, _Endpoint_store, "f").storeValues(parsedResp);
160
+ });
161
+ }
162
+ /** Passes the request input nodes of this endpoint to a callback. */
163
+ set(setter) {
164
+ setter({
165
+ pathParams: __classPrivateFieldGet(this, _Endpoint_req, "f").pathParams,
166
+ body: __classPrivateFieldGet(this, _Endpoint_req, "f").body,
167
+ query: __classPrivateFieldGet(this, _Endpoint_req, "f").query,
168
+ headers: __classPrivateFieldGet(this, _Endpoint_req, "f").headers,
169
+ });
170
+ return this;
171
+ }
172
+ }
173
+ exports.Endpoint = Endpoint;
174
+ _Endpoint_addr = new WeakMap(), _Endpoint_path = new WeakMap(), _Endpoint_method = new WeakMap(), _Endpoint_req = new WeakMap(), _Endpoint_resp = new WeakMap(), _Endpoint_config = new WeakMap(), _Endpoint_store = new WeakMap(), _Endpoint_instances = new WeakSet(), _Endpoint_extractPathParams = function _Endpoint_extractPathParams() {
175
+ const pathParamRegex = new RegExp(PATH_PARAM_REGEX);
176
+ let param;
177
+ const params = {};
178
+ while ((param = pathParamRegex.exec(__classPrivateFieldGet(this, _Endpoint_path, "f"))) !== null && typeof param[1] === 'string') {
179
+ const paramName = param[1].replace('{', '').replace('}', '');
180
+ params[paramName] = (0, initializers_1.required)();
181
+ }
182
+ __classPrivateFieldGet(this, _Endpoint_req, "f").pathParams = new inputNode_1.InputNode(params);
183
+ }, _Endpoint_insertPathParams = function _Endpoint_insertPathParams(path, pathParams) {
184
+ Object.entries(pathParams).forEach(([name, val]) => {
185
+ path = path.replace(`{${name}}`, val);
186
+ });
187
+ return path;
188
+ }, _Endpoint_insertQueryParams = function _Endpoint_insertQueryParams(path, queryParams) {
189
+ if (Object.keys(queryParams).length > 0)
190
+ path = `${path}?`;
191
+ Object.entries(queryParams).forEach(([name, val], i) => {
192
+ path = `${path}${i >= 1 ? '&' : ''}${name}=${val}`;
193
+ });
194
+ return path;
195
+ }, _Endpoint_validateResp = function _Endpoint_validateResp(resp) {
196
+ if (resp.statusCode >= 400) {
197
+ (0, logger_1.warn)(`Request failed with status code: ${resp.statusCode}`);
198
+ return { valid: false, msg: `Received HTTP status code ${resp.statusCode}` };
199
+ }
200
+ return { valid: true };
201
+ }, _Endpoint_findMissingValues = function _Endpoint_findMissingValues(missingValues, obj) {
202
+ const finalMissingValues = [];
203
+ for (const path of missingValues) {
204
+ if (obj === undefined) {
205
+ finalMissingValues.push(path.join('.'));
206
+ continue;
207
+ }
208
+ let state = obj;
209
+ for (const accessor of path) {
210
+ state = state[accessor];
211
+ if (state === undefined) {
212
+ finalMissingValues.push(path.join('.'));
213
+ break;
214
+ }
215
+ }
216
+ }
217
+ return finalMissingValues;
218
+ }, _Endpoint_parseResponse = function _Endpoint_parseResponse(body) {
219
+ return __awaiter(this, void 0, void 0, function* () {
220
+ switch (__classPrivateFieldGet(this, _Endpoint_config, "f").respParser) {
221
+ case RespParser.ArrayBuffer:
222
+ return yield body.arrayBuffer();
223
+ case RespParser.Blob:
224
+ return yield body.blob();
225
+ case RespParser.Text:
226
+ return yield body.text();
227
+ case RespParser.Json:
228
+ default:
229
+ return yield body.json();
230
+ }
231
+ });
232
+ };
233
+ //# sourceMappingURL=endpoint.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"endpoint.js","sourceRoot":"","sources":["../../src/http/endpoint.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ /** When an unsupported method is passed into an `Endpoint`. */
2
+ export declare class UnsupportedMethodError extends Error {
3
+ constructor(unsupportedMethod: string);
4
+ }
5
+ /** When there is no value available for a required input node. */
6
+ export declare class RequiredValuesNotFoundError extends Error {
7
+ constructor(hash: string, missingValues: string[]);
8
+ }
9
+ export declare class InvalidResponseError extends Error {
10
+ constructor(msg?: string);
11
+ }
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.InvalidResponseError = exports.RequiredValuesNotFoundError = exports.UnsupportedMethodError = void 0;
4
+ /** When an unsupported method is passed into an `Endpoint`. */
5
+ class UnsupportedMethodError extends Error {
6
+ constructor(unsupportedMethod) {
7
+ super(`Method "${unsupportedMethod}" is not supported.`);
8
+ this.name = 'UnsupportedMethodError';
9
+ }
10
+ }
11
+ exports.UnsupportedMethodError = UnsupportedMethodError;
12
+ /** When there is no value available for a required input node. */
13
+ class RequiredValuesNotFoundError extends Error {
14
+ constructor(hash, missingValues) {
15
+ super(`Endpoint with hash "${hash}" is missing required values with these paths: ${missingValues.join(', ')}`);
16
+ this.name = 'RequiredValuesNotFoundError';
17
+ }
18
+ }
19
+ exports.RequiredValuesNotFoundError = RequiredValuesNotFoundError;
20
+ class InvalidResponseError extends Error {
21
+ constructor(msg) {
22
+ super(`Response is invalid: ${msg !== null && msg !== void 0 ? msg : '[No error message is configured for this validation error]'}`);
23
+ this.name = 'InvalidResponseError';
24
+ }
25
+ }
26
+ exports.InvalidResponseError = InvalidResponseError;
27
+ //# sourceMappingURL=errors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/http/errors.ts"],"names":[],"mappings":";;;AAAA,+DAA+D;AAC/D,MAAa,sBAAuB,SAAQ,KAAK;IAC/C,YAAY,iBAAyB;QACnC,KAAK,CAAC,WAAW,iBAAiB,qBAAqB,CAAC,CAAC;QACzD,IAAI,CAAC,IAAI,GAAG,wBAAwB,CAAC;IACvC,CAAC;CACF;AALD,wDAKC;AAED,kEAAkE;AAClE,MAAa,2BAA4B,SAAQ,KAAK;IACpD,YAAY,IAAY,EAAE,aAAuB;QAC/C,KAAK,CACH,uBAAuB,IAAI,kDAAkD,aAAa,CAAC,IAAI,CAC7F,IAAI,CACL,EAAE,CACJ,CAAC;QACF,IAAI,CAAC,IAAI,GAAG,6BAA6B,CAAC;IAC5C,CAAC;CACF;AATD,kEASC;AAED,MAAa,oBAAqB,SAAQ,KAAK;IAC7C,YAAY,GAAY;QACtB,KAAK,CACH,wBAAwB,GAAG,aAAH,GAAG,cAAH,GAAG,GAAI,4DAA4D,EAAE,CAC9F,CAAC;QACF,IAAI,CAAC,IAAI,GAAG,sBAAsB,CAAC;IACrC,CAAC;CACF;AAPD,oDAOC"}
@@ -0,0 +1,3 @@
1
+ import debug from 'debug';
2
+ export declare const log: debug.Debugger;
3
+ export declare const warn: debug.Debugger;
@@ -0,0 +1,15 @@
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.warn = exports.log = void 0;
7
+ /* istanbul ignore file */
8
+ const debug_1 = __importDefault(require("debug"));
9
+ exports.log = (0, debug_1.default)('chainflow:http');
10
+ exports.warn = (0, debug_1.default)('chainflow:http:error');
11
+ if (process.env.ENABLE_CHAINFLOW_LOGS === 'true') {
12
+ exports.log.enabled = true;
13
+ exports.warn.enabled = true;
14
+ }
15
+ //# sourceMappingURL=logger.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/http/logger.ts"],"names":[],"mappings":";;;;;;AAAA,0BAA0B;AAC1B,kDAA0B;AAEb,QAAA,GAAG,GAAG,IAAA,eAAK,EAAC,gBAAgB,CAAC,CAAC;AAC9B,QAAA,IAAI,GAAG,IAAA,eAAK,EAAC,sBAAsB,CAAC,CAAC;AAElD,IAAI,OAAO,CAAC,GAAG,CAAC,qBAAqB,KAAK,MAAM,EAAE,CAAC;IACjD,WAAG,CAAC,OAAO,GAAG,IAAI,CAAC;IACnB,YAAI,CAAC,OAAO,GAAG,IAAI,CAAC;AACtB,CAAC"}
@@ -0,0 +1,28 @@
1
+ import { Endpoint, EndpointConfig, INodeWithValue } from './endpoint';
2
+ import { InputNode } from '../core/inputNode';
3
+ /** Convenience function for creating an endpoint builder with supported methods defined on it. */
4
+ export declare const originServer: (addr?: string) => OriginServer;
5
+ /** Function for making a new endpoint. */
6
+ type MakeEndpoint = (path: string) => Endpoint;
7
+ export type OriginServer = OriginBase & {
8
+ get: MakeEndpoint;
9
+ post: MakeEndpoint;
10
+ put: MakeEndpoint;
11
+ delete: MakeEndpoint;
12
+ patch: MakeEndpoint;
13
+ options: MakeEndpoint;
14
+ };
15
+ /** Stores the base address and defines methods to build endpoints with methods. */
16
+ declare class OriginBase {
17
+ #private;
18
+ /** Sets configuration for all endpoints made by this origin. */
19
+ config(config: EndpointConfig): this;
20
+ /** Sets the base headers for all endpoints made by this origin. */
21
+ headers(params: Record<string, string | INodeWithValue | undefined>): this;
22
+ /** Configure linking of this Req's input nodes. */
23
+ set(setter: ({ headers }: {
24
+ headers: InputNode;
25
+ }) => void): this;
26
+ constructor(addr?: string);
27
+ }
28
+ export {};
@@ -0,0 +1,60 @@
1
+ "use strict";
2
+ var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
3
+ if (kind === "m") throw new TypeError("Private method is not writable");
4
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
5
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
6
+ return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
7
+ };
8
+ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
9
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
10
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
11
+ return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
12
+ };
13
+ var _OriginBase_addr, _OriginBase_headers, _OriginBase_config;
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.originServer = void 0;
16
+ const endpoint_1 = require("./endpoint");
17
+ const inputNode_1 = require("../core/inputNode");
18
+ const constants_1 = require("./utils/constants");
19
+ /** Convenience function for creating an endpoint builder with supported methods defined on it. */
20
+ const originServer = (addr) => new OriginBase(addr);
21
+ exports.originServer = originServer;
22
+ /** Stores the base address and defines methods to build endpoints with methods. */
23
+ class OriginBase {
24
+ /** Sets configuration for all endpoints made by this origin. */
25
+ config(config) {
26
+ __classPrivateFieldSet(this, _OriginBase_config, config, "f");
27
+ return this;
28
+ }
29
+ /** Sets the base headers for all endpoints made by this origin. */
30
+ headers(params) {
31
+ __classPrivateFieldSet(this, _OriginBase_headers, new inputNode_1.InputNode(params), "f");
32
+ return this;
33
+ }
34
+ /** Configure linking of this Req's input nodes. */
35
+ set(setter) {
36
+ setter({
37
+ headers: __classPrivateFieldGet(this, _OriginBase_headers, "f"),
38
+ });
39
+ return this;
40
+ }
41
+ constructor(addr = 'http://127.0.0.1') {
42
+ _OriginBase_addr.set(this, void 0);
43
+ _OriginBase_headers.set(this, void 0);
44
+ _OriginBase_config.set(this, {});
45
+ __classPrivateFieldSet(this, _OriginBase_addr, addr, "f");
46
+ __classPrivateFieldSet(this, _OriginBase_headers, new inputNode_1.InputNode(undefined), "f");
47
+ constants_1.SUPPORTED_METHODS.forEach((method) => {
48
+ // define methods to create endpoints from HTTP methods
49
+ Reflect.defineProperty(this, method, {
50
+ value: (path) => {
51
+ return new endpoint_1.Endpoint({ addr: __classPrivateFieldGet(this, _OriginBase_addr, "f"), method, path })
52
+ .baseHeaders(__classPrivateFieldGet(this, _OriginBase_headers, "f"))
53
+ .config(__classPrivateFieldGet(this, _OriginBase_config, "f"));
54
+ },
55
+ });
56
+ });
57
+ }
58
+ }
59
+ _OriginBase_addr = new WeakMap(), _OriginBase_headers = new WeakMap(), _OriginBase_config = new WeakMap();
60
+ //# sourceMappingURL=originServer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"originServer.js","sourceRoot":"","sources":["../../src/http/originServer.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,yCAAsE;AACtE,iDAA8C;AAC9C,iDAAsD;AAEtD,kGAAkG;AAC3F,MAAM,YAAY,GAAG,CAAC,IAAa,EAAE,EAAE,CAAC,IAAI,UAAU,CAAC,IAAI,CAAiB,CAAC;AAAvE,QAAA,YAAY,gBAA2D;AAcpF,mFAAmF;AACnF,MAAM,UAAU;IAKd,gEAAgE;IAChE,MAAM,CAAC,MAAsB;QAC3B,uBAAA,IAAI,sBAAW,MAAM,MAAA,CAAC;QACtB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,mEAAmE;IACnE,OAAO,CAAC,MAA2D;QACjE,uBAAA,IAAI,uBAAY,IAAI,qBAAS,CAAC,MAAM,CAAC,MAAA,CAAC;QACtC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,mDAAmD;IACnD,GAAG,CAAC,MAAqD;QACvD,MAAM,CAAC;YACL,OAAO,EAAE,uBAAA,IAAI,2BAAS;SACvB,CAAC,CAAC;QACH,OAAO,IAAI,CAAC;IACd,CAAC;IAED,YAAY,OAAe,kBAAkB;QAxB7C,mCAAc;QACd,sCAAoB;QACpB,6BAA0B,EAAE,EAAC;QAuB3B,uBAAA,IAAI,oBAAS,IAAI,MAAA,CAAC;QAClB,uBAAA,IAAI,uBAAY,IAAI,qBAAS,CAAC,SAAS,CAAC,MAAA,CAAC;QACzC,6BAAiB,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE;YACnC,uDAAuD;YACvD,OAAO,CAAC,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE;gBACnC,KAAK,EAAE,CAAC,IAAY,EAAE,EAAE;oBACtB,OAAO,IAAI,mBAAQ,CAAC,EAAE,IAAI,EAAE,uBAAA,IAAI,wBAAM,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;yBACpD,WAAW,CAAC,uBAAA,IAAI,2BAAS,CAAC;yBAC1B,MAAM,CAAC,uBAAA,IAAI,0BAAQ,CAAC,CAAC;gBAC1B,CAAC;aACF,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;CACF"}
@@ -0,0 +1,14 @@
1
+ import { InputNode } from '../core/inputNode';
2
+ /** Contains node definitions for a request. */
3
+ export declare class ReqBuilder {
4
+ #private;
5
+ baseHeaders: InputNode;
6
+ pathParams: InputNode;
7
+ constructor();
8
+ get body(): InputNode;
9
+ set body(payload: any);
10
+ get query(): InputNode;
11
+ set query(params: any);
12
+ get headers(): InputNode;
13
+ set headers(params: any);
14
+ }
@@ -0,0 +1,50 @@
1
+ "use strict";
2
+ var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
3
+ if (kind === "m") throw new TypeError("Private method is not writable");
4
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
5
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
6
+ return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
7
+ };
8
+ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
9
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
10
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
11
+ return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
12
+ };
13
+ var _ReqBuilder_headers, _ReqBuilder_queryParams, _ReqBuilder_body;
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.ReqBuilder = void 0;
16
+ const inputNode_1 = require("../core/inputNode");
17
+ /** Contains node definitions for a request. */
18
+ class ReqBuilder {
19
+ constructor() {
20
+ _ReqBuilder_headers.set(this, void 0);
21
+ _ReqBuilder_queryParams.set(this, void 0);
22
+ _ReqBuilder_body.set(this, void 0);
23
+ this.baseHeaders = new inputNode_1.InputNode(undefined);
24
+ __classPrivateFieldSet(this, _ReqBuilder_headers, new inputNode_1.InputNode(undefined), "f");
25
+ this.pathParams = new inputNode_1.InputNode(undefined);
26
+ __classPrivateFieldSet(this, _ReqBuilder_queryParams, new inputNode_1.InputNode(undefined), "f");
27
+ __classPrivateFieldSet(this, _ReqBuilder_body, new inputNode_1.InputNode(undefined), "f");
28
+ }
29
+ get body() {
30
+ return __classPrivateFieldGet(this, _ReqBuilder_body, "f");
31
+ }
32
+ set body(payload) {
33
+ __classPrivateFieldSet(this, _ReqBuilder_body, new inputNode_1.InputNode(payload), "f");
34
+ }
35
+ get query() {
36
+ return __classPrivateFieldGet(this, _ReqBuilder_queryParams, "f");
37
+ }
38
+ set query(params) {
39
+ __classPrivateFieldSet(this, _ReqBuilder_queryParams, new inputNode_1.InputNode(params), "f");
40
+ }
41
+ get headers() {
42
+ return __classPrivateFieldGet(this, _ReqBuilder_headers, "f");
43
+ }
44
+ set headers(params) {
45
+ __classPrivateFieldSet(this, _ReqBuilder_headers, new inputNode_1.InputNode(params), "f");
46
+ }
47
+ }
48
+ exports.ReqBuilder = ReqBuilder;
49
+ _ReqBuilder_headers = new WeakMap(), _ReqBuilder_queryParams = new WeakMap(), _ReqBuilder_body = new WeakMap();
50
+ //# sourceMappingURL=reqBuilder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reqBuilder.js","sourceRoot":"","sources":["../../src/http/reqBuilder.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,iDAA8C;AAE9C,+CAA+C;AAC/C,MAAa,UAAU;IAOrB;QALA,sCAAoB;QAEpB,0CAAwB;QACxB,mCAAiB;QAGf,IAAI,CAAC,WAAW,GAAG,IAAI,qBAAS,CAAC,SAAS,CAAC,CAAC;QAC5C,uBAAA,IAAI,uBAAY,IAAI,qBAAS,CAAC,SAAS,CAAC,MAAA,CAAC;QACzC,IAAI,CAAC,UAAU,GAAG,IAAI,qBAAS,CAAC,SAAS,CAAC,CAAC;QAC3C,uBAAA,IAAI,2BAAgB,IAAI,qBAAS,CAAC,SAAS,CAAC,MAAA,CAAC;QAC7C,uBAAA,IAAI,oBAAS,IAAI,qBAAS,CAAC,SAAS,CAAC,MAAA,CAAC;IACxC,CAAC;IAED,IAAI,IAAI;QACN,OAAO,uBAAA,IAAI,wBAAM,CAAC;IACpB,CAAC;IAED,IAAI,IAAI,CAAC,OAAY;QACnB,uBAAA,IAAI,oBAAS,IAAI,qBAAS,CAAC,OAAO,CAAC,MAAA,CAAC;IACtC,CAAC;IAED,IAAI,KAAK;QACP,OAAO,uBAAA,IAAI,+BAAa,CAAC;IAC3B,CAAC;IAED,IAAI,KAAK,CAAC,MAAW;QACnB,uBAAA,IAAI,2BAAgB,IAAI,qBAAS,CAAC,MAAM,CAAC,MAAA,CAAC;IAC5C,CAAC;IAED,IAAI,OAAO;QACT,OAAO,uBAAA,IAAI,2BAAS,CAAC;IACvB,CAAC;IAED,IAAI,OAAO,CAAC,MAAW;QACrB,uBAAA,IAAI,uBAAY,IAAI,qBAAS,CAAC,MAAM,CAAC,MAAA,CAAC;IACxC,CAAC;CACF;AAtCD,gCAsCC"}
@@ -0,0 +1,16 @@
1
+ export type SUPPORTED_METHOD_UPPERCASE = 'GET' | 'POST' | 'PUT' | 'DELETE' | 'PATCH' | 'OPTIONS';
2
+ export declare const defaultHeaders: {
3
+ connection: string;
4
+ accept: string;
5
+ 'content-type': string;
6
+ };
7
+ declare const _default: {
8
+ request: ({ addr, path, method, body, headers, }: {
9
+ addr: string;
10
+ path: string;
11
+ method: SUPPORTED_METHOD_UPPERCASE;
12
+ body?: any;
13
+ headers?: Record<string, string> | undefined;
14
+ }) => Promise<import("undici/types/dispatcher").default.ResponseData | null>;
15
+ };
16
+ export default _default;
@@ -0,0 +1,39 @@
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
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.defaultHeaders = void 0;
13
+ const undici_1 = require("undici");
14
+ const logger_1 = require("../logger");
15
+ exports.defaultHeaders = {
16
+ connection: 'keep-alive',
17
+ accept: '*/*',
18
+ 'content-type': 'application/json',
19
+ // 'User-Agent': 'Chainflow/0.1',
20
+ };
21
+ /** Sends a HTTP request. */
22
+ const request = ({ addr, path, method, body, headers, }) => __awaiter(void 0, void 0, void 0, function* () {
23
+ const finalHeaders = Object.assign(Object.assign({}, exports.defaultHeaders), headers);
24
+ (0, logger_1.log)(`[${method}] [${addr}${path}] with headers %O${body ? ' and payload %O' : ''}`, finalHeaders, body);
25
+ try {
26
+ const resp = yield (0, undici_1.request)(`${addr}${path}`, {
27
+ method,
28
+ body: JSON.stringify(body),
29
+ headers: finalHeaders,
30
+ });
31
+ return resp;
32
+ }
33
+ catch (err) {
34
+ (0, logger_1.warn)(`Request failed: ${err}`);
35
+ return null;
36
+ }
37
+ });
38
+ exports.default = { request };
39
+ //# sourceMappingURL=client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../../../src/http/utils/client.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,mCAAkD;AAClD,sCAAsC;AAIzB,QAAA,cAAc,GAAG;IAC5B,UAAU,EAAE,YAAY;IACxB,MAAM,EAAE,KAAK;IACb,cAAc,EAAE,kBAAkB;IAClC,iCAAiC;CAClC,CAAC;AAEF,4BAA4B;AAC5B,MAAM,OAAO,GAAG,CAAO,EACrB,IAAI,EACJ,IAAI,EACJ,MAAM,EACN,IAAI,EACJ,OAAO,GAOR,EAAE,EAAE;IACH,MAAM,YAAY,mCACb,sBAAc,GACd,OAAO,CACX,CAAC;IAEF,IAAA,YAAG,EACD,IAAI,MAAM,MAAM,IAAI,GAAG,IAAI,oBAAoB,IAAI,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,EAAE,EAAE,EAC9E,YAAY,EACZ,IAAI,CACL,CAAC;IAEF,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,MAAM,IAAA,gBAAa,EAAC,GAAG,IAAI,GAAG,IAAI,EAAE,EAAE;YACjD,MAAM;YACN,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;YAC1B,OAAO,EAAE,YAAY;SACtB,CAAC,CAAC;QAEH,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,IAAA,aAAI,EAAC,mBAAmB,GAAG,EAAE,CAAC,CAAC;QAC/B,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC,CAAA,CAAC;AAEF,kBAAe,EAAE,OAAO,EAAE,CAAC"}
@@ -0,0 +1,2 @@
1
+ export type SUPPORTED_METHOD = 'get' | 'post' | 'put' | 'delete' | 'patch' | 'options';
2
+ export declare const SUPPORTED_METHODS: SUPPORTED_METHOD[];
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SUPPORTED_METHODS = void 0;
4
+ exports.SUPPORTED_METHODS = [
5
+ 'get',
6
+ 'post',
7
+ 'put',
8
+ 'delete',
9
+ 'patch',
10
+ 'options',
11
+ ];
12
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/http/utils/constants.ts"],"names":[],"mappings":";;;AACa,QAAA,iBAAiB,GAAuB;IACnD,KAAK;IACL,MAAM;IACN,KAAK;IACL,QAAQ;IACR,OAAO;IACP,SAAS;CACV,CAAC"}