apitally 0.1.2 → 0.1.3

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 (183) hide show
  1. package/lib/cjs/common/client.js +395 -0
  2. package/lib/cjs/common/client.js.map +1 -0
  3. package/lib/cjs/common/index.js +13 -0
  4. package/lib/cjs/common/index.js.map +1 -0
  5. package/lib/cjs/common/keyRegistry.js +162 -0
  6. package/lib/cjs/common/keyRegistry.js.map +1 -0
  7. package/lib/cjs/common/logging.js +17 -0
  8. package/lib/cjs/common/logging.js.map +1 -0
  9. package/lib/cjs/common/requestLogger.js +69 -0
  10. package/lib/cjs/common/requestLogger.js.map +1 -0
  11. package/lib/cjs/common/types.js +6 -0
  12. package/lib/cjs/common/types.js.map +1 -0
  13. package/lib/cjs/common/utils.js +24 -0
  14. package/lib/cjs/common/utils.js.map +1 -0
  15. package/lib/cjs/common/validationErrorLogger.js +58 -0
  16. package/lib/cjs/common/validationErrorLogger.js.map +1 -0
  17. package/lib/cjs/express/auth.js +105 -0
  18. package/lib/cjs/express/auth.js.map +1 -0
  19. package/lib/cjs/express/index.js +27 -0
  20. package/lib/cjs/express/index.js.map +1 -0
  21. package/lib/cjs/express/listEndpoints.js +175 -0
  22. package/lib/cjs/express/listEndpoints.js.map +1 -0
  23. package/lib/cjs/express/middleware.js +167 -0
  24. package/lib/cjs/express/middleware.js.map +1 -0
  25. package/lib/cjs/fastify/auth.js +105 -0
  26. package/lib/cjs/fastify/auth.js.map +1 -0
  27. package/lib/cjs/fastify/index.js +28 -0
  28. package/lib/cjs/fastify/index.js.map +1 -0
  29. package/lib/cjs/fastify/plugin.js +147 -0
  30. package/lib/cjs/fastify/plugin.js.map +1 -0
  31. package/lib/cjs/index.js +6 -0
  32. package/lib/cjs/index.js.map +1 -0
  33. package/lib/cjs/koa/auth.js +113 -0
  34. package/lib/cjs/koa/auth.js.map +1 -0
  35. package/lib/cjs/koa/index.js +27 -0
  36. package/lib/cjs/koa/index.js.map +1 -0
  37. package/lib/cjs/koa/middleware.js +122 -0
  38. package/lib/cjs/koa/middleware.js.map +1 -0
  39. package/lib/cjs/nestjs/auth.js +132 -0
  40. package/lib/cjs/nestjs/auth.js.map +1 -0
  41. package/lib/cjs/nestjs/index.js +39 -0
  42. package/lib/cjs/nestjs/index.js.map +1 -0
  43. package/lib/esm/common/client.js +385 -0
  44. package/lib/esm/common/client.js.map +1 -0
  45. package/lib/esm/common/index.js +1 -0
  46. package/lib/esm/common/index.js.map +1 -0
  47. package/lib/esm/common/keyRegistry.js +155 -0
  48. package/lib/esm/common/keyRegistry.js.map +1 -0
  49. package/lib/esm/common/logging.js +11 -0
  50. package/lib/esm/common/logging.js.map +1 -0
  51. package/lib/esm/common/requestLogger.js +63 -0
  52. package/lib/esm/common/requestLogger.js.map +1 -0
  53. package/lib/esm/common/types.js +1 -0
  54. package/lib/esm/common/types.js.map +1 -0
  55. package/lib/esm/common/utils.js +16 -0
  56. package/lib/esm/common/utils.js.map +1 -0
  57. package/lib/esm/common/validationErrorLogger.js +52 -0
  58. package/lib/esm/common/validationErrorLogger.js.map +1 -0
  59. package/lib/esm/express/auth.js +98 -0
  60. package/lib/esm/express/auth.js.map +1 -0
  61. package/lib/esm/express/index.js +4 -0
  62. package/lib/esm/express/index.js.map +1 -0
  63. package/lib/esm/express/listEndpoints.js +168 -0
  64. package/lib/esm/express/listEndpoints.js.map +1 -0
  65. package/lib/esm/express/middleware.js +160 -0
  66. package/lib/esm/express/middleware.js.map +1 -0
  67. package/lib/esm/fastify/auth.js +98 -0
  68. package/lib/esm/fastify/auth.js.map +1 -0
  69. package/lib/esm/fastify/index.js +4 -0
  70. package/lib/esm/fastify/index.js.map +1 -0
  71. package/lib/esm/fastify/plugin.js +140 -0
  72. package/lib/esm/fastify/plugin.js.map +1 -0
  73. package/lib/esm/index.js +1 -0
  74. package/lib/esm/index.js.map +1 -0
  75. package/lib/esm/koa/auth.js +106 -0
  76. package/lib/esm/koa/auth.js.map +1 -0
  77. package/lib/esm/koa/index.js +4 -0
  78. package/lib/esm/koa/index.js.map +1 -0
  79. package/lib/esm/koa/middleware.js +115 -0
  80. package/lib/esm/koa/middleware.js.map +1 -0
  81. package/lib/esm/nestjs/auth.js +126 -0
  82. package/lib/esm/nestjs/auth.js.map +1 -0
  83. package/lib/esm/nestjs/index.js +4 -0
  84. package/lib/esm/nestjs/index.js.map +1 -0
  85. package/{dist/src → lib/types}/common/client.d.ts +7 -6
  86. package/lib/types/common/client.d.ts.map +1 -0
  87. package/lib/types/common/index.d.ts +2 -0
  88. package/{dist/src → lib/types}/common/index.d.ts.map +1 -1
  89. package/{dist/src → lib/types}/common/requestLogger.d.ts +1 -1
  90. package/{dist/src → lib/types}/common/requestLogger.d.ts.map +1 -1
  91. package/{dist/src → lib/types}/common/types.d.ts +2 -2
  92. package/lib/types/common/types.d.ts.map +1 -0
  93. package/{dist/src → lib/types}/common/validationErrorLogger.d.ts +1 -1
  94. package/{dist/src → lib/types}/common/validationErrorLogger.d.ts.map +1 -1
  95. package/{dist/src → lib/types}/express/auth.d.ts +1 -1
  96. package/lib/types/express/auth.d.ts.map +1 -0
  97. package/lib/types/express/index.d.ts +4 -0
  98. package/{dist/src → lib/types}/express/index.d.ts.map +1 -1
  99. package/lib/types/express/listEndpoints.d.ts +3 -0
  100. package/{dist/src → lib/types}/express/middleware.d.ts +3 -3
  101. package/lib/types/express/middleware.d.ts.map +1 -0
  102. package/{dist/src → lib/types}/fastify/auth.d.ts +1 -1
  103. package/lib/types/fastify/auth.d.ts.map +1 -0
  104. package/lib/types/fastify/index.d.ts +4 -0
  105. package/{dist/src → lib/types}/fastify/index.d.ts.map +1 -1
  106. package/lib/types/fastify/plugin.d.ts +15 -0
  107. package/lib/types/fastify/plugin.d.ts.map +1 -0
  108. package/lib/types/koa/index.d.ts +4 -0
  109. package/{dist/src → lib/types}/koa/index.d.ts.map +1 -1
  110. package/{dist/src → lib/types}/koa/middleware.d.ts +1 -1
  111. package/{dist/src → lib/types}/koa/middleware.d.ts.map +1 -1
  112. package/{dist/src → lib/types}/nestjs/auth.d.ts +1 -1
  113. package/{dist/src → lib/types}/nestjs/auth.d.ts.map +1 -1
  114. package/lib/types/nestjs/index.d.ts +4 -0
  115. package/lib/types/nestjs/index.d.ts.map +1 -0
  116. package/package.json +96 -7
  117. package/dist/src/common/client.d.ts.map +0 -1
  118. package/dist/src/common/client.js +0 -244
  119. package/dist/src/common/client.js.map +0 -1
  120. package/dist/src/common/index.d.ts +0 -2
  121. package/dist/src/common/index.js +0 -6
  122. package/dist/src/common/index.js.map +0 -1
  123. package/dist/src/common/keyRegistry.js +0 -90
  124. package/dist/src/common/keyRegistry.js.map +0 -1
  125. package/dist/src/common/logging.js +0 -13
  126. package/dist/src/common/logging.js.map +0 -1
  127. package/dist/src/common/requestLogger.js +0 -49
  128. package/dist/src/common/requestLogger.js.map +0 -1
  129. package/dist/src/common/types.d.ts.map +0 -1
  130. package/dist/src/common/types.js +0 -3
  131. package/dist/src/common/types.js.map +0 -1
  132. package/dist/src/common/utils.js +0 -23
  133. package/dist/src/common/utils.js.map +0 -1
  134. package/dist/src/common/validationErrorLogger.js +0 -40
  135. package/dist/src/common/validationErrorLogger.js.map +0 -1
  136. package/dist/src/express/auth.d.ts.map +0 -1
  137. package/dist/src/express/auth.js +0 -66
  138. package/dist/src/express/auth.js.map +0 -1
  139. package/dist/src/express/index.d.ts +0 -4
  140. package/dist/src/express/index.js +0 -10
  141. package/dist/src/express/index.js.map +0 -1
  142. package/dist/src/express/listEndpoints.d.ts +0 -3
  143. package/dist/src/express/listEndpoints.js +0 -166
  144. package/dist/src/express/listEndpoints.js.map +0 -1
  145. package/dist/src/express/middleware.d.ts.map +0 -1
  146. package/dist/src/express/middleware.js +0 -164
  147. package/dist/src/express/middleware.js.map +0 -1
  148. package/dist/src/fastify/auth.d.ts.map +0 -1
  149. package/dist/src/fastify/auth.js +0 -66
  150. package/dist/src/fastify/auth.js.map +0 -1
  151. package/dist/src/fastify/index.d.ts +0 -4
  152. package/dist/src/fastify/index.js +0 -13
  153. package/dist/src/fastify/index.js.map +0 -1
  154. package/dist/src/fastify/plugin.d.ts +0 -16
  155. package/dist/src/fastify/plugin.d.ts.map +0 -1
  156. package/dist/src/fastify/plugin.js +0 -124
  157. package/dist/src/fastify/plugin.js.map +0 -1
  158. package/dist/src/index.js +0 -3
  159. package/dist/src/index.js.map +0 -1
  160. package/dist/src/koa/auth.js +0 -67
  161. package/dist/src/koa/auth.js.map +0 -1
  162. package/dist/src/koa/index.d.ts +0 -4
  163. package/dist/src/koa/index.js +0 -10
  164. package/dist/src/koa/index.js.map +0 -1
  165. package/dist/src/koa/middleware.js +0 -108
  166. package/dist/src/koa/middleware.js.map +0 -1
  167. package/dist/src/nestjs/auth.js +0 -88
  168. package/dist/src/nestjs/auth.js.map +0 -1
  169. package/dist/src/nestjs/index.d.ts +0 -4
  170. package/dist/src/nestjs/index.d.ts.map +0 -1
  171. package/dist/src/nestjs/index.js +0 -12
  172. package/dist/src/nestjs/index.js.map +0 -1
  173. /package/{dist/src → lib/types}/common/keyRegistry.d.ts +0 -0
  174. /package/{dist/src → lib/types}/common/keyRegistry.d.ts.map +0 -0
  175. /package/{dist/src → lib/types}/common/logging.d.ts +0 -0
  176. /package/{dist/src → lib/types}/common/logging.d.ts.map +0 -0
  177. /package/{dist/src → lib/types}/common/utils.d.ts +0 -0
  178. /package/{dist/src → lib/types}/common/utils.d.ts.map +0 -0
  179. /package/{dist/src → lib/types}/express/listEndpoints.d.ts.map +0 -0
  180. /package/{dist/src → lib/types}/index.d.ts +0 -0
  181. /package/{dist/src → lib/types}/index.d.ts.map +0 -0
  182. /package/{dist/src → lib/types}/koa/auth.d.ts +0 -0
  183. /package/{dist/src → lib/types}/koa/auth.d.ts.map +0 -0
@@ -0,0 +1,395 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ var _typeof = require("@babel/runtime/helpers/typeof");
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.ApitallyClient = void 0;
9
+ var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
10
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
11
+ var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
12
+ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
13
+ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
14
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
15
+ var _axios = _interopRequireWildcard(require("axios"));
16
+ var _axiosRetry = _interopRequireDefault(require("axios-retry"));
17
+ var _crypto = require("crypto");
18
+ var _keyRegistry = require("./keyRegistry.js");
19
+ var _logging = require("./logging.js");
20
+ var _requestLogger = _interopRequireDefault(require("./requestLogger.js"));
21
+ var _utils = require("./utils.js");
22
+ var _validationErrorLogger = _interopRequireDefault(require("./validationErrorLogger.js"));
23
+ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
24
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n["default"] = e, t && t.set(e, n), n; }
25
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
26
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2["default"])(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
27
+ var SYNC_INTERVAL = 60000; // 60 seconds
28
+ var REQUEST_TIMEOUT = 10000; // 10 seconds
29
+ var MAX_QUEUE_TIME = 3.6e6; // 1 hour
30
+ var ApitallyClient = exports.ApitallyClient = /*#__PURE__*/function () {
31
+ function ApitallyClient(_ref) {
32
+ var clientId = _ref.clientId,
33
+ _ref$env = _ref.env,
34
+ env = _ref$env === void 0 ? "default" : _ref$env,
35
+ _ref$syncApiKeys = _ref.syncApiKeys,
36
+ syncApiKeys = _ref$syncApiKeys === void 0 ? false : _ref$syncApiKeys,
37
+ logger = _ref.logger,
38
+ keyCacheClass = _ref.keyCacheClass;
39
+ (0, _classCallCheck2["default"])(this, ApitallyClient);
40
+ (0, _defineProperty2["default"])(this, "clientId", void 0);
41
+ (0, _defineProperty2["default"])(this, "env", void 0);
42
+ (0, _defineProperty2["default"])(this, "syncApiKeys", void 0);
43
+ (0, _defineProperty2["default"])(this, "instanceUuid", void 0);
44
+ (0, _defineProperty2["default"])(this, "requestsDataQueue", void 0);
45
+ (0, _defineProperty2["default"])(this, "axiosClient", void 0);
46
+ (0, _defineProperty2["default"])(this, "syncIntervalId", void 0);
47
+ (0, _defineProperty2["default"])(this, "appInfo", void 0);
48
+ (0, _defineProperty2["default"])(this, "appInfoSent", false);
49
+ (0, _defineProperty2["default"])(this, "startedAt", void 0);
50
+ (0, _defineProperty2["default"])(this, "keysUpdated", void 0);
51
+ (0, _defineProperty2["default"])(this, "requestLogger", void 0);
52
+ (0, _defineProperty2["default"])(this, "validationErrorLogger", void 0);
53
+ (0, _defineProperty2["default"])(this, "keyRegistry", void 0);
54
+ (0, _defineProperty2["default"])(this, "keyCache", void 0);
55
+ (0, _defineProperty2["default"])(this, "logger", void 0);
56
+ if (ApitallyClient.instance) {
57
+ throw new Error("Apitally client is already initialized");
58
+ }
59
+ if (!(0, _utils.isValidClientId)(clientId)) {
60
+ throw new Error("Invalid client ID '".concat(clientId, "' (expecting hexadeciaml UUID format)"));
61
+ }
62
+ if (!(0, _utils.isValidEnv)(env)) {
63
+ throw new Error("Invalid env '".concat(env, "' (expecting 1-32 alphanumeric lowercase characters and hyphens only)"));
64
+ }
65
+ ApitallyClient.instance = this;
66
+ this.clientId = clientId;
67
+ this.env = env;
68
+ this.syncApiKeys = syncApiKeys;
69
+ this.instanceUuid = (0, _crypto.randomUUID)();
70
+ this.requestsDataQueue = [];
71
+ this.startedAt = Date.now();
72
+ this.requestLogger = new _requestLogger["default"]();
73
+ this.validationErrorLogger = new _validationErrorLogger["default"]();
74
+ this.keyRegistry = new _keyRegistry.KeyRegistry();
75
+ this.keyCache = keyCacheClass ? new keyCacheClass(clientId, env) : undefined;
76
+ this.logger = logger || (0, _logging.getLogger)();
77
+ this.axiosClient = _axios["default"].create({
78
+ baseURL: this.getHubUrl(),
79
+ timeout: REQUEST_TIMEOUT
80
+ });
81
+ (0, _axiosRetry["default"])(this.axiosClient, {
82
+ retries: 3,
83
+ retryDelay: function retryDelay(retryCount, error) {
84
+ return _axiosRetry["default"].exponentialDelay(retryCount, error, 1000);
85
+ }
86
+ });
87
+ if (this.keyCache) {
88
+ var keyDataString = this.keyCache.retrieve();
89
+ if (keyDataString) {
90
+ try {
91
+ var keyData = JSON.parse(keyDataString);
92
+ this.updateKeyRegistry(keyData, false);
93
+ } catch (error) {
94
+ this.logger.error("Failed to load API keys from cache.", {
95
+ error: error
96
+ });
97
+ }
98
+ }
99
+ }
100
+ this.startSync();
101
+ this.handleShutdown = this.handleShutdown.bind(this);
102
+ }
103
+ (0, _createClass2["default"])(ApitallyClient, [{
104
+ key: "handleShutdown",
105
+ value: function () {
106
+ var _handleShutdown = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee() {
107
+ return _regenerator["default"].wrap(function _callee$(_context) {
108
+ while (1) switch (_context.prev = _context.next) {
109
+ case 0:
110
+ this.stopSync();
111
+ _context.next = 3;
112
+ return this.sendRequestsData();
113
+ case 3:
114
+ ApitallyClient.instance = undefined;
115
+ case 4:
116
+ case "end":
117
+ return _context.stop();
118
+ }
119
+ }, _callee, this);
120
+ }));
121
+ function handleShutdown() {
122
+ return _handleShutdown.apply(this, arguments);
123
+ }
124
+ return handleShutdown;
125
+ }()
126
+ }, {
127
+ key: "getHubUrl",
128
+ value: function getHubUrl() {
129
+ var baseURL = process.env.APITALLY_HUB_BASE_URL || "https://hub.apitally.io";
130
+ var version = "v1";
131
+ return "".concat(baseURL, "/").concat(version, "/").concat(this.clientId, "/").concat(this.env);
132
+ }
133
+ }, {
134
+ key: "startSync",
135
+ value: function startSync() {
136
+ var _this = this;
137
+ this.sync();
138
+ this.syncIntervalId = setInterval(function () {
139
+ _this.sync();
140
+ }, SYNC_INTERVAL);
141
+ }
142
+ }, {
143
+ key: "sync",
144
+ value: function () {
145
+ var _sync = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee2() {
146
+ var promises;
147
+ return _regenerator["default"].wrap(function _callee2$(_context2) {
148
+ while (1) switch (_context2.prev = _context2.next) {
149
+ case 0:
150
+ _context2.prev = 0;
151
+ promises = [this.sendRequestsData()];
152
+ if (this.syncApiKeys) {
153
+ promises.push(this.getKeys());
154
+ }
155
+ if (!this.appInfoSent) {
156
+ promises.push(this.sendAppInfo());
157
+ }
158
+ _context2.next = 6;
159
+ return Promise.all(promises);
160
+ case 6:
161
+ _context2.next = 11;
162
+ break;
163
+ case 8:
164
+ _context2.prev = 8;
165
+ _context2.t0 = _context2["catch"](0);
166
+ this.logger.error("Error while syncing with Apitally Hub.", {
167
+ error: _context2.t0
168
+ });
169
+ case 11:
170
+ case "end":
171
+ return _context2.stop();
172
+ }
173
+ }, _callee2, this, [[0, 8]]);
174
+ }));
175
+ function sync() {
176
+ return _sync.apply(this, arguments);
177
+ }
178
+ return sync;
179
+ }()
180
+ }, {
181
+ key: "stopSync",
182
+ value: function stopSync() {
183
+ if (this.syncIntervalId) {
184
+ clearInterval(this.syncIntervalId);
185
+ this.syncIntervalId = undefined;
186
+ }
187
+ }
188
+ }, {
189
+ key: "setAppInfo",
190
+ value: function setAppInfo(appInfo) {
191
+ this.appInfo = appInfo;
192
+ this.appInfoSent = false;
193
+ this.sendAppInfo();
194
+ }
195
+ }, {
196
+ key: "sendAppInfo",
197
+ value: function () {
198
+ var _sendAppInfo = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee3() {
199
+ var payload;
200
+ return _regenerator["default"].wrap(function _callee3$(_context3) {
201
+ while (1) switch (_context3.prev = _context3.next) {
202
+ case 0:
203
+ if (!this.appInfo) {
204
+ _context3.next = 12;
205
+ break;
206
+ }
207
+ this.logger.debug("Sending app info to Apitally Hub.");
208
+ payload = _objectSpread({
209
+ instance_uuid: this.instanceUuid,
210
+ message_uuid: (0, _crypto.randomUUID)()
211
+ }, this.appInfo);
212
+ _context3.prev = 3;
213
+ _context3.next = 6;
214
+ return this.axiosClient.post("/info", payload);
215
+ case 6:
216
+ this.appInfoSent = true;
217
+ _context3.next = 12;
218
+ break;
219
+ case 9:
220
+ _context3.prev = 9;
221
+ _context3.t0 = _context3["catch"](3);
222
+ if (_context3.t0 instanceof _axios.AxiosError && _context3.t0.response && _context3.t0.response.status === 404 && _context3.t0.response.data && typeof _context3.t0.response.data === "string" && _context3.t0.response.data.includes("Client ID")) {
223
+ this.logger.error("Invalid Apitally client ID '".concat(this.clientId, "'."));
224
+ this.stopSync();
225
+ } else {
226
+ this.logger.debug("Error while sending app info to Apitally Hub (".concat(_context3.t0.code, "). Will retry."), {
227
+ error: _context3.t0
228
+ });
229
+ }
230
+ case 12:
231
+ case "end":
232
+ return _context3.stop();
233
+ }
234
+ }, _callee3, this, [[3, 9]]);
235
+ }));
236
+ function sendAppInfo() {
237
+ return _sendAppInfo.apply(this, arguments);
238
+ }
239
+ return sendAppInfo;
240
+ }()
241
+ }, {
242
+ key: "sendRequestsData",
243
+ value: function () {
244
+ var _sendRequestsData = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee4() {
245
+ var newPayload, failedItems, queueItem, _queueItem, time, payload, timeOffset;
246
+ return _regenerator["default"].wrap(function _callee4$(_context4) {
247
+ while (1) switch (_context4.prev = _context4.next) {
248
+ case 0:
249
+ this.logger.debug("Sending requests data to Apitally Hub.");
250
+ newPayload = {
251
+ time_offset: 0,
252
+ instance_uuid: this.instanceUuid,
253
+ message_uuid: (0, _crypto.randomUUID)(),
254
+ requests: this.requestLogger.getAndResetRequests(),
255
+ validation_errors: this.validationErrorLogger.getAndResetValidationErrors(),
256
+ api_key_usage: this.keyRegistry.getAndResetUsageCounts()
257
+ };
258
+ this.requestsDataQueue.push([Date.now(), newPayload]);
259
+ failedItems = [];
260
+ case 4:
261
+ if (!(this.requestsDataQueue.length > 0)) {
262
+ _context4.next = 22;
263
+ break;
264
+ }
265
+ queueItem = this.requestsDataQueue.shift();
266
+ if (!queueItem) {
267
+ _context4.next = 20;
268
+ break;
269
+ }
270
+ _queueItem = (0, _slicedToArray2["default"])(queueItem, 2), time = _queueItem[0], payload = _queueItem[1];
271
+ _context4.prev = 8;
272
+ timeOffset = Date.now() - time;
273
+ if (!(timeOffset <= MAX_QUEUE_TIME)) {
274
+ _context4.next = 14;
275
+ break;
276
+ }
277
+ payload.time_offset = timeOffset / 1000.0; // In seconds
278
+ _context4.next = 14;
279
+ return this.axiosClient.post("/requests", payload);
280
+ case 14:
281
+ _context4.next = 20;
282
+ break;
283
+ case 16:
284
+ _context4.prev = 16;
285
+ _context4.t0 = _context4["catch"](8);
286
+ this.logger.debug("Error while sending requests data to Apitally Hub (".concat(_context4.t0.code, "). Will retry."), {
287
+ error: _context4.t0
288
+ });
289
+ failedItems.push(queueItem);
290
+ case 20:
291
+ _context4.next = 4;
292
+ break;
293
+ case 22:
294
+ this.requestsDataQueue = failedItems;
295
+ case 23:
296
+ case "end":
297
+ return _context4.stop();
298
+ }
299
+ }, _callee4, this, [[8, 16]]);
300
+ }));
301
+ function sendRequestsData() {
302
+ return _sendRequestsData.apply(this, arguments);
303
+ }
304
+ return sendRequestsData;
305
+ }()
306
+ }, {
307
+ key: "getKeys",
308
+ value: function () {
309
+ var _getKeys = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee5() {
310
+ var response, now;
311
+ return _regenerator["default"].wrap(function _callee5$(_context5) {
312
+ while (1) switch (_context5.prev = _context5.next) {
313
+ case 0:
314
+ _context5.prev = 0;
315
+ this.logger.debug("Getting API keys from Apitally Hub.");
316
+ _context5.next = 4;
317
+ return this.axiosClient.get("/keys");
318
+ case 4:
319
+ response = _context5.sent;
320
+ this.updateKeyRegistry(response.data);
321
+ this.keysUpdated = Date.now();
322
+ _context5.next = 14;
323
+ break;
324
+ case 9:
325
+ _context5.prev = 9;
326
+ _context5.t0 = _context5["catch"](0);
327
+ this.logger.debug("Error while getting API keys from Apitally Hub (".concat(_context5.t0.code, "). Will retry."), {
328
+ error: _context5.t0
329
+ });
330
+ now = Date.now();
331
+ if (!this.keyRegistry.salt) {
332
+ // Exit because application won't be able to authenticate requests
333
+ this.logger.error("Initial Apitally API key sync failed.");
334
+ process.exit(1);
335
+ } else if (this.keysUpdated && now - this.keysUpdated > MAX_QUEUE_TIME || !this.keysUpdated && now - this.startedAt > MAX_QUEUE_TIME) {
336
+ this.logger.warn("Apitally API key sync has been failing for more than 1 hour.");
337
+ }
338
+ case 14:
339
+ case "end":
340
+ return _context5.stop();
341
+ }
342
+ }, _callee5, this, [[0, 9]]);
343
+ }));
344
+ function getKeys() {
345
+ return _getKeys.apply(this, arguments);
346
+ }
347
+ return getKeys;
348
+ }()
349
+ }, {
350
+ key: "updateKeyRegistry",
351
+ value: function updateKeyRegistry(data) {
352
+ var cache = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
353
+ this.keyRegistry.salt = data.salt || null;
354
+ this.keyRegistry.update(data.keys || {});
355
+ if (cache && this.keyCache) {
356
+ this.keyCache.store(JSON.stringify(data));
357
+ }
358
+ }
359
+ }], [{
360
+ key: "getInstance",
361
+ value: function getInstance() {
362
+ if (!ApitallyClient.instance) {
363
+ throw new Error("Apitally client is not initialized");
364
+ }
365
+ return ApitallyClient.instance;
366
+ }
367
+ }, {
368
+ key: "shutdown",
369
+ value: function () {
370
+ var _shutdown = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee6() {
371
+ return _regenerator["default"].wrap(function _callee6$(_context6) {
372
+ while (1) switch (_context6.prev = _context6.next) {
373
+ case 0:
374
+ if (!ApitallyClient.instance) {
375
+ _context6.next = 3;
376
+ break;
377
+ }
378
+ _context6.next = 3;
379
+ return ApitallyClient.instance.handleShutdown();
380
+ case 3:
381
+ case "end":
382
+ return _context6.stop();
383
+ }
384
+ }, _callee6);
385
+ }));
386
+ function shutdown() {
387
+ return _shutdown.apply(this, arguments);
388
+ }
389
+ return shutdown;
390
+ }()
391
+ }]);
392
+ return ApitallyClient;
393
+ }();
394
+ (0, _defineProperty2["default"])(ApitallyClient, "instance", void 0);
395
+ //# sourceMappingURL=client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.js","names":["_axios","_interopRequireWildcard","require","_axiosRetry","_interopRequireDefault","_crypto","_keyRegistry","_logging","_requestLogger","_utils","_validationErrorLogger","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","_typeof","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","ownKeys","keys","getOwnPropertySymbols","o","filter","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty2","getOwnPropertyDescriptors","defineProperties","SYNC_INTERVAL","REQUEST_TIMEOUT","MAX_QUEUE_TIME","ApitallyClient","exports","_ref","clientId","_ref$env","env","_ref$syncApiKeys","syncApiKeys","logger","keyCacheClass","_classCallCheck2","instance","Error","isValidClientId","concat","isValidEnv","instanceUuid","randomUUID","requestsDataQueue","startedAt","Date","now","requestLogger","RequestLogger","validationErrorLogger","ValidationErrorLogger","keyRegistry","KeyRegistry","keyCache","undefined","getLogger","axiosClient","axios","create","baseURL","getHubUrl","timeout","axiosRetry","retries","retryDelay","retryCount","error","exponentialDelay","keyDataString","retrieve","keyData","JSON","parse","updateKeyRegistry","startSync","handleShutdown","bind","_createClass2","key","value","_handleShutdown","_asyncToGenerator2","_regenerator","mark","_callee","wrap","_callee$","_context","prev","next","stopSync","sendRequestsData","stop","process","APITALLY_HUB_BASE_URL","version","_this","sync","syncIntervalId","setInterval","_sync","_callee2","promises","_callee2$","_context2","getKeys","appInfoSent","sendAppInfo","Promise","all","t0","clearInterval","setAppInfo","appInfo","_sendAppInfo","_callee3","payload","_callee3$","_context3","debug","instance_uuid","message_uuid","post","AxiosError","response","status","data","includes","code","_sendRequestsData","_callee4","newPayload","failedItems","queueItem","_queueItem","time","timeOffset","_callee4$","_context4","time_offset","requests","getAndResetRequests","validation_errors","getAndResetValidationErrors","api_key_usage","getAndResetUsageCounts","shift","_slicedToArray2","_getKeys","_callee5","_callee5$","_context5","sent","keysUpdated","salt","exit","warn","cache","update","store","stringify","getInstance","_shutdown","_callee6","_callee6$","_context6","shutdown"],"sources":["../../../src/common/client.ts"],"sourcesContent":[null],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ Object.defineProperty(exports, "KeyCacheBase", {
7
+ enumerable: true,
8
+ get: function get() {
9
+ return _keyRegistry.KeyCacheBase;
10
+ }
11
+ });
12
+ var _keyRegistry = require("./keyRegistry.js");
13
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":["_keyRegistry","require"],"sources":["../../../src/common/index.ts"],"sourcesContent":[null],"mappings":";;;;;;;;;;;AAAA,IAAAA,YAAA,GAAAC,OAAA"}
@@ -0,0 +1,162 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.KeyRegistry = exports.KeyInfo = exports.KeyCacheBase = void 0;
8
+ var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
9
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
10
+ var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
11
+ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
12
+ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
13
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
14
+ var _crypto = require("crypto");
15
+ var KeyInfo = exports.KeyInfo = /*#__PURE__*/function () {
16
+ function KeyInfo(keyId, apiKeyId) {
17
+ var name = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : "";
18
+ var scopes = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : [];
19
+ var expiresInSeconds = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : null;
20
+ (0, _classCallCheck2["default"])(this, KeyInfo);
21
+ (0, _defineProperty2["default"])(this, "keyId", void 0);
22
+ (0, _defineProperty2["default"])(this, "apiKeyId", void 0);
23
+ (0, _defineProperty2["default"])(this, "name", void 0);
24
+ (0, _defineProperty2["default"])(this, "scopes", void 0);
25
+ (0, _defineProperty2["default"])(this, "expiresAt", void 0);
26
+ this.keyId = keyId;
27
+ this.apiKeyId = apiKeyId;
28
+ this.name = name;
29
+ this.scopes = scopes;
30
+ this.expiresAt = expiresInSeconds !== null && expiresInSeconds !== undefined ? new Date(Date.now() + expiresInSeconds * 1000) : null;
31
+ }
32
+ (0, _createClass2["default"])(KeyInfo, [{
33
+ key: "isExpired",
34
+ get: function get() {
35
+ return this.expiresAt !== null && this.expiresAt < new Date();
36
+ }
37
+ }, {
38
+ key: "hasScopes",
39
+ value: function hasScopes(scopes) {
40
+ var _this = this;
41
+ if (typeof scopes === "string") {
42
+ scopes = [scopes];
43
+ }
44
+ return scopes.every(function (scope) {
45
+ return _this.scopes.includes(scope);
46
+ });
47
+ }
48
+ }]);
49
+ return KeyInfo;
50
+ }();
51
+ var KeyRegistry = exports.KeyRegistry = /*#__PURE__*/function () {
52
+ function KeyRegistry() {
53
+ (0, _classCallCheck2["default"])(this, KeyRegistry);
54
+ (0, _defineProperty2["default"])(this, "salt", void 0);
55
+ (0, _defineProperty2["default"])(this, "keys", void 0);
56
+ (0, _defineProperty2["default"])(this, "usageCounts", void 0);
57
+ this.salt = null;
58
+ this.keys = new Map();
59
+ this.usageCounts = new Map();
60
+ }
61
+ (0, _createClass2["default"])(KeyRegistry, [{
62
+ key: "get",
63
+ value: function () {
64
+ var _get = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee(apiKey) {
65
+ var hash, key;
66
+ return _regenerator["default"].wrap(function _callee$(_context) {
67
+ while (1) switch (_context.prev = _context.next) {
68
+ case 0:
69
+ _context.next = 2;
70
+ return this.hashApiKey(apiKey.trim());
71
+ case 2:
72
+ hash = _context.sent;
73
+ key = this.keys.get(hash);
74
+ if (!(!key || key.isExpired)) {
75
+ _context.next = 6;
76
+ break;
77
+ }
78
+ return _context.abrupt("return", null);
79
+ case 6:
80
+ this.usageCounts.set(key.apiKeyId, (this.usageCounts.get(key.apiKeyId) || 0) + 1);
81
+ return _context.abrupt("return", key);
82
+ case 8:
83
+ case "end":
84
+ return _context.stop();
85
+ }
86
+ }, _callee, this);
87
+ }));
88
+ function get(_x) {
89
+ return _get.apply(this, arguments);
90
+ }
91
+ return get;
92
+ }()
93
+ }, {
94
+ key: "hashApiKey",
95
+ value: function () {
96
+ var _hashApiKey = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee2(apiKey) {
97
+ var _this2 = this;
98
+ return _regenerator["default"].wrap(function _callee2$(_context2) {
99
+ while (1) switch (_context2.prev = _context2.next) {
100
+ case 0:
101
+ return _context2.abrupt("return", new Promise(function (resolve, reject) {
102
+ if (!_this2.salt) {
103
+ throw new Error("Apitally API keys not initialized");
104
+ }
105
+ (0, _crypto.scrypt)(apiKey, Buffer.from(_this2.salt, "hex"), 32, {
106
+ N: 256,
107
+ r: 4,
108
+ p: 1
109
+ }, function (err, derivedKey) {
110
+ if (err) reject(err);
111
+ resolve(derivedKey.toString("hex"));
112
+ });
113
+ }));
114
+ case 1:
115
+ case "end":
116
+ return _context2.stop();
117
+ }
118
+ }, _callee2);
119
+ }));
120
+ function hashApiKey(_x2) {
121
+ return _hashApiKey.apply(this, arguments);
122
+ }
123
+ return hashApiKey;
124
+ }()
125
+ }, {
126
+ key: "update",
127
+ value: function update(keys) {
128
+ this.keys.clear();
129
+ for (var _i = 0, _Object$entries = Object.entries(keys); _i < _Object$entries.length; _i++) {
130
+ var _Object$entries$_i = (0, _slicedToArray2["default"])(_Object$entries[_i], 2),
131
+ hash = _Object$entries$_i[0],
132
+ data = _Object$entries$_i[1];
133
+ this.keys.set(hash, new KeyInfo(data["key_id"], data["api_key_id"], data["name"], data["scopes"], data["expires_in_seconds"]));
134
+ }
135
+ }
136
+ }, {
137
+ key: "getAndResetUsageCounts",
138
+ value: function getAndResetUsageCounts() {
139
+ var data = Object.fromEntries(this.usageCounts);
140
+ this.usageCounts.clear();
141
+ return data;
142
+ }
143
+ }]);
144
+ return KeyRegistry;
145
+ }();
146
+ var KeyCacheBase = exports.KeyCacheBase = /*#__PURE__*/function () {
147
+ function KeyCacheBase(clientId, env) {
148
+ (0, _classCallCheck2["default"])(this, KeyCacheBase);
149
+ (0, _defineProperty2["default"])(this, "clientId", void 0);
150
+ (0, _defineProperty2["default"])(this, "env", void 0);
151
+ this.clientId = clientId;
152
+ this.env = env;
153
+ }
154
+ (0, _createClass2["default"])(KeyCacheBase, [{
155
+ key: "cacheKey",
156
+ get: function get() {
157
+ return "apitally:keys:".concat(this.clientId, ":").concat(this.env);
158
+ }
159
+ }]);
160
+ return KeyCacheBase;
161
+ }();
162
+ //# sourceMappingURL=keyRegistry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"keyRegistry.js","names":["_crypto","require","KeyInfo","exports","keyId","apiKeyId","name","arguments","length","undefined","scopes","expiresInSeconds","_classCallCheck2","_defineProperty2","expiresAt","Date","now","_createClass2","key","get","value","hasScopes","_this","every","scope","includes","KeyRegistry","salt","keys","Map","usageCounts","_get","_asyncToGenerator2","_regenerator","mark","_callee","apiKey","hash","wrap","_callee$","_context","prev","next","hashApiKey","trim","sent","isExpired","abrupt","set","stop","_x","apply","_hashApiKey","_callee2","_this2","_callee2$","_context2","Promise","resolve","reject","Error","scrypt","Buffer","from","N","r","p","err","derivedKey","toString","_x2","update","clear","_i","_Object$entries","Object","entries","_Object$entries$_i","_slicedToArray2","data","getAndResetUsageCounts","fromEntries","KeyCacheBase","clientId","env","concat"],"sources":["../../../src/common/keyRegistry.ts"],"sourcesContent":[null],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.getLogger = void 0;
7
+ var _winston = require("winston");
8
+ var getLogger = exports.getLogger = function getLogger() {
9
+ return (0, _winston.createLogger)({
10
+ level: process.env.APITALLY_DEBUG ? "debug" : "warn",
11
+ format: _winston.format.combine(_winston.format.colorize(), _winston.format.timestamp(), _winston.format.printf(function (info) {
12
+ return "".concat(info.timestamp, " ").concat(info.level, ": ").concat(info.message);
13
+ })),
14
+ transports: [new _winston.transports.Console()]
15
+ });
16
+ };
17
+ //# sourceMappingURL=logging.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logging.js","names":["_winston","require","getLogger","exports","createLogger","level","process","env","APITALLY_DEBUG","format","combine","colorize","timestamp","printf","info","concat","message","transports","Console"],"sources":["../../../src/common/logging.ts"],"sourcesContent":[null],"mappings":";;;;;;AAAA,IAAAA,QAAA,GAAAC,OAAA;AASO,IAAMC,SAAS,GAAAC,OAAA,CAAAD,SAAA,GAAG,SAAZA,SAASA,CAAA,EAAQ;EAC5B,OAAO,IAAAE,qBAAY,EAAC;IAClBC,KAAK,EAAEC,OAAO,CAACC,GAAG,CAACC,cAAc,GAAG,OAAO,GAAG,MAAM;IACpDC,MAAM,EAAEA,eAAM,CAACC,OAAO,CACpBD,eAAM,CAACE,QAAQ,EAAE,EACjBF,eAAM,CAACG,SAAS,EAAE,EAClBH,eAAM,CAACI,MAAM,CACX,UAACC,IAAI;MAAA,UAAAC,MAAA,CAAQD,IAAI,CAACF,SAAS,OAAAG,MAAA,CAAID,IAAI,CAACT,KAAK,QAAAU,MAAA,CAAKD,IAAI,CAACE,OAAO;IAAA,CAAE,CAC7D,CACF;IACDC,UAAU,EAAE,CAAC,IAAIA,mBAAU,CAACC,OAAO,EAAE;GACtC,CAAC;AACJ,CAAC"}