checkly 0.0.0-pr.1006.b6b3be2

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 (314) hide show
  1. package/README.md +102 -0
  2. package/bin/run +5 -0
  3. package/bin/run.cmd +3 -0
  4. package/constructs.d.ts +1 -0
  5. package/constructs.js +2 -0
  6. package/dist/auth/index.d.ts +15 -0
  7. package/dist/auth/index.js +262 -0
  8. package/dist/auth/index.js.map +1 -0
  9. package/dist/commands/authCommand.d.ts +5 -0
  10. package/dist/commands/authCommand.js +37 -0
  11. package/dist/commands/authCommand.js.map +1 -0
  12. package/dist/commands/baseCommand.d.ts +13 -0
  13. package/dist/commands/baseCommand.js +48 -0
  14. package/dist/commands/baseCommand.js.map +1 -0
  15. package/dist/commands/deploy.d.ts +18 -0
  16. package/dist/commands/deploy.js +289 -0
  17. package/dist/commands/deploy.js.map +1 -0
  18. package/dist/commands/destroy.d.ts +10 -0
  19. package/dist/commands/destroy.js +84 -0
  20. package/dist/commands/destroy.js.map +1 -0
  21. package/dist/commands/env/add.d.ts +14 -0
  22. package/dist/commands/env/add.js +85 -0
  23. package/dist/commands/env/add.js.map +1 -0
  24. package/dist/commands/env/ls.d.ts +6 -0
  25. package/dist/commands/env/ls.js +44 -0
  26. package/dist/commands/env/ls.js.map +1 -0
  27. package/dist/commands/env/pull.d.ts +12 -0
  28. package/dist/commands/env/pull.js +99 -0
  29. package/dist/commands/env/pull.js.map +1 -0
  30. package/dist/commands/env/rm.d.ts +12 -0
  31. package/dist/commands/env/rm.js +82 -0
  32. package/dist/commands/env/rm.js.map +1 -0
  33. package/dist/commands/env/update.d.ts +14 -0
  34. package/dist/commands/env/update.js +88 -0
  35. package/dist/commands/env/update.js.map +1 -0
  36. package/dist/commands/help.d.ts +6 -0
  37. package/dist/commands/help.js +17 -0
  38. package/dist/commands/help.js.map +1 -0
  39. package/dist/commands/login.d.ts +13 -0
  40. package/dist/commands/login.js +134 -0
  41. package/dist/commands/login.js.map +1 -0
  42. package/dist/commands/logout.d.ts +9 -0
  43. package/dist/commands/logout.js +43 -0
  44. package/dist/commands/logout.js.map +1 -0
  45. package/dist/commands/runtimes.d.ts +6 -0
  46. package/dist/commands/runtimes.js +49 -0
  47. package/dist/commands/runtimes.js.map +1 -0
  48. package/dist/commands/switch.d.ts +9 -0
  49. package/dist/commands/switch.js +81 -0
  50. package/dist/commands/switch.js.map +1 -0
  51. package/dist/commands/sync-playwright.d.ts +10 -0
  52. package/dist/commands/sync-playwright.js +98 -0
  53. package/dist/commands/sync-playwright.js.map +1 -0
  54. package/dist/commands/test.d.ts +45 -0
  55. package/dist/commands/test.js +366 -0
  56. package/dist/commands/test.js.map +1 -0
  57. package/dist/commands/trigger.d.ts +37 -0
  58. package/dist/commands/trigger.js +242 -0
  59. package/dist/commands/trigger.js.map +1 -0
  60. package/dist/commands/whoami.d.ts +6 -0
  61. package/dist/commands/whoami.js +42 -0
  62. package/dist/commands/whoami.js.map +1 -0
  63. package/dist/config.d.ts +31 -0
  64. package/dist/config.js +8 -0
  65. package/dist/config.js.map +1 -0
  66. package/dist/constants.d.ts +7 -0
  67. package/dist/constants.js +10 -0
  68. package/dist/constants.js.map +1 -0
  69. package/dist/constructs/alert-channel-subscription.d.ts +44 -0
  70. package/dist/constructs/alert-channel-subscription.js +39 -0
  71. package/dist/constructs/alert-channel-subscription.js.map +1 -0
  72. package/dist/constructs/alert-channel.d.ts +53 -0
  73. package/dist/constructs/alert-channel.js +55 -0
  74. package/dist/constructs/alert-channel.js.map +1 -0
  75. package/dist/constructs/alert-escalation-policy.d.ts +34 -0
  76. package/dist/constructs/alert-escalation-policy.js +47 -0
  77. package/dist/constructs/alert-escalation-policy.js.map +1 -0
  78. package/dist/constructs/api-check.d.ts +187 -0
  79. package/dist/constructs/api-check.js +279 -0
  80. package/dist/constructs/api-check.js.map +1 -0
  81. package/dist/constructs/browser-check.d.ts +90 -0
  82. package/dist/constructs/browser-check.js +151 -0
  83. package/dist/constructs/browser-check.js.map +1 -0
  84. package/dist/constructs/check-group.d.ts +162 -0
  85. package/dist/constructs/check-group.js +208 -0
  86. package/dist/constructs/check-group.js.map +1 -0
  87. package/dist/constructs/check.d.ts +144 -0
  88. package/dist/constructs/check.js +133 -0
  89. package/dist/constructs/check.js.map +1 -0
  90. package/dist/constructs/construct.d.ts +17 -0
  91. package/dist/constructs/construct.js +22 -0
  92. package/dist/constructs/construct.js.map +1 -0
  93. package/dist/constructs/dashboard.d.ts +138 -0
  94. package/dist/constructs/dashboard.js +126 -0
  95. package/dist/constructs/dashboard.js.map +1 -0
  96. package/dist/constructs/email-alert-channel.d.ts +26 -0
  97. package/dist/constructs/email-alert-channel.js +37 -0
  98. package/dist/constructs/email-alert-channel.js.map +1 -0
  99. package/dist/constructs/environment-variable.d.ts +2 -0
  100. package/dist/constructs/environment-variable.js +3 -0
  101. package/dist/constructs/environment-variable.js.map +1 -0
  102. package/dist/constructs/frequency.d.ts +20 -0
  103. package/dist/constructs/frequency.js +26 -0
  104. package/dist/constructs/frequency.js.map +1 -0
  105. package/dist/constructs/heartbeat-check.d.ts +43 -0
  106. package/dist/constructs/heartbeat-check.js +61 -0
  107. package/dist/constructs/heartbeat-check.js.map +1 -0
  108. package/dist/constructs/http-header.d.ts +2 -0
  109. package/dist/constructs/http-header.js +3 -0
  110. package/dist/constructs/http-header.js.map +1 -0
  111. package/dist/constructs/index.d.ts +27 -0
  112. package/dist/constructs/index.js +44 -0
  113. package/dist/constructs/index.js.map +1 -0
  114. package/dist/constructs/key-value-pair.d.ts +6 -0
  115. package/dist/constructs/key-value-pair.js +3 -0
  116. package/dist/constructs/key-value-pair.js.map +1 -0
  117. package/dist/constructs/maintenance-window.d.ts +61 -0
  118. package/dist/constructs/maintenance-window.js +47 -0
  119. package/dist/constructs/maintenance-window.js.map +1 -0
  120. package/dist/constructs/multi-step-check.d.ts +65 -0
  121. package/dist/constructs/multi-step-check.js +153 -0
  122. package/dist/constructs/multi-step-check.js.map +1 -0
  123. package/dist/constructs/opsgenie-alert-channel.d.ts +45 -0
  124. package/dist/constructs/opsgenie-alert-channel.js +44 -0
  125. package/dist/constructs/opsgenie-alert-channel.js.map +1 -0
  126. package/dist/constructs/pagerduty-alert-channel.d.ts +39 -0
  127. package/dist/constructs/pagerduty-alert-channel.js +42 -0
  128. package/dist/constructs/pagerduty-alert-channel.js.map +1 -0
  129. package/dist/constructs/phone-call-alert-channel.d.ts +34 -0
  130. package/dist/constructs/phone-call-alert-channel.js +42 -0
  131. package/dist/constructs/phone-call-alert-channel.js.map +1 -0
  132. package/dist/constructs/playwright-config.d.ts +52 -0
  133. package/dist/constructs/playwright-config.js +3 -0
  134. package/dist/constructs/playwright-config.js.map +1 -0
  135. package/dist/constructs/private-location-check-assignment.d.ts +29 -0
  136. package/dist/constructs/private-location-check-assignment.js +35 -0
  137. package/dist/constructs/private-location-check-assignment.js.map +1 -0
  138. package/dist/constructs/private-location-group-assignment.d.ts +29 -0
  139. package/dist/constructs/private-location-group-assignment.js +35 -0
  140. package/dist/constructs/private-location-group-assignment.js.map +1 -0
  141. package/dist/constructs/private-location.d.ts +51 -0
  142. package/dist/constructs/private-location.js +61 -0
  143. package/dist/constructs/private-location.js.map +1 -0
  144. package/dist/constructs/project.d.ts +66 -0
  145. package/dist/constructs/project.js +155 -0
  146. package/dist/constructs/project.js.map +1 -0
  147. package/dist/constructs/query-param.d.ts +2 -0
  148. package/dist/constructs/query-param.js +3 -0
  149. package/dist/constructs/query-param.js.map +1 -0
  150. package/dist/constructs/ref.d.ts +5 -0
  151. package/dist/constructs/ref.js +13 -0
  152. package/dist/constructs/ref.js.map +1 -0
  153. package/dist/constructs/retry-strategy.d.ts +50 -0
  154. package/dist/constructs/retry-strategy.js +51 -0
  155. package/dist/constructs/retry-strategy.js.map +1 -0
  156. package/dist/constructs/slack-alert-channel.d.ts +26 -0
  157. package/dist/constructs/slack-alert-channel.js +40 -0
  158. package/dist/constructs/slack-alert-channel.js.map +1 -0
  159. package/dist/constructs/sms-alert-channel.d.ts +32 -0
  160. package/dist/constructs/sms-alert-channel.js +40 -0
  161. package/dist/constructs/sms-alert-channel.js.map +1 -0
  162. package/dist/constructs/validator-error.d.ts +2 -0
  163. package/dist/constructs/validator-error.js +7 -0
  164. package/dist/constructs/validator-error.js.map +1 -0
  165. package/dist/constructs/webhook-alert-channel.d.ts +67 -0
  166. package/dist/constructs/webhook-alert-channel.js +52 -0
  167. package/dist/constructs/webhook-alert-channel.js.map +1 -0
  168. package/dist/help/examples.d.ts +6 -0
  169. package/dist/help/examples.js +22 -0
  170. package/dist/help/examples.js.map +1 -0
  171. package/dist/help/help-extension.d.ts +7 -0
  172. package/dist/help/help-extension.js +59 -0
  173. package/dist/help/help-extension.js.map +1 -0
  174. package/dist/index.d.ts +3 -0
  175. package/dist/index.js +30 -0
  176. package/dist/index.js.map +1 -0
  177. package/dist/messages/common-messages.d.ts +5 -0
  178. package/dist/messages/common-messages.js +9 -0
  179. package/dist/messages/common-messages.js.map +1 -0
  180. package/dist/playwright/playwright-config-loader.d.ts +1 -0
  181. package/dist/playwright/playwright-config-loader.js +26 -0
  182. package/dist/playwright/playwright-config-loader.js.map +1 -0
  183. package/dist/playwright/playwright-config-template.d.ts +8 -0
  184. package/dist/playwright/playwright-config-template.js +78 -0
  185. package/dist/playwright/playwright-config-template.js.map +1 -0
  186. package/dist/reporters/abstract-list.d.ts +41 -0
  187. package/dist/reporters/abstract-list.js +171 -0
  188. package/dist/reporters/abstract-list.js.map +1 -0
  189. package/dist/reporters/ci.d.ts +12 -0
  190. package/dist/reporters/ci.js +34 -0
  191. package/dist/reporters/ci.js.map +1 -0
  192. package/dist/reporters/dot.d.ts +10 -0
  193. package/dist/reporters/dot.js +29 -0
  194. package/dist/reporters/dot.js.map +1 -0
  195. package/dist/reporters/github.d.ts +32 -0
  196. package/dist/reporters/github.js +119 -0
  197. package/dist/reporters/github.js.map +1 -0
  198. package/dist/reporters/json.d.ts +26 -0
  199. package/dist/reporters/json.js +101 -0
  200. package/dist/reporters/json.js.map +1 -0
  201. package/dist/reporters/list.d.ts +15 -0
  202. package/dist/reporters/list.js +85 -0
  203. package/dist/reporters/list.js.map +1 -0
  204. package/dist/reporters/reporter.d.ts +16 -0
  205. package/dist/reporters/reporter.js +29 -0
  206. package/dist/reporters/reporter.js.map +1 -0
  207. package/dist/reporters/util.d.ts +18 -0
  208. package/dist/reporters/util.js +325 -0
  209. package/dist/reporters/util.js.map +1 -0
  210. package/dist/rest/accounts.d.ts +12 -0
  211. package/dist/rest/accounts.js +15 -0
  212. package/dist/rest/accounts.js.map +1 -0
  213. package/dist/rest/api.d.ts +33 -0
  214. package/dist/rest/api.js +98 -0
  215. package/dist/rest/api.js.map +1 -0
  216. package/dist/rest/assets.d.ts +13 -0
  217. package/dist/rest/assets.js +30 -0
  218. package/dist/rest/assets.js.map +1 -0
  219. package/dist/rest/checkly-storage.d.ts +12 -0
  220. package/dist/rest/checkly-storage.js +15 -0
  221. package/dist/rest/checkly-storage.js.map +1 -0
  222. package/dist/rest/environment-variables.d.ts +17 -0
  223. package/dist/rest/environment-variables.js +25 -0
  224. package/dist/rest/environment-variables.js.map +1 -0
  225. package/dist/rest/heartbeat-checks.d.ts +11 -0
  226. package/dist/rest/heartbeat-checks.js +17 -0
  227. package/dist/rest/heartbeat-checks.js.map +1 -0
  228. package/dist/rest/locations.d.ts +11 -0
  229. package/dist/rest/locations.js +12 -0
  230. package/dist/rest/locations.js.map +1 -0
  231. package/dist/rest/private-locations.d.ts +10 -0
  232. package/dist/rest/private-locations.js +12 -0
  233. package/dist/rest/private-locations.js.map +1 -0
  234. package/dist/rest/projects.d.ts +46 -0
  235. package/dist/rest/projects.js +25 -0
  236. package/dist/rest/projects.js.map +1 -0
  237. package/dist/rest/runtimes.d.ts +16 -0
  238. package/dist/rest/runtimes.js +15 -0
  239. package/dist/rest/runtimes.js.map +1 -0
  240. package/dist/rest/test-sessions.d.ts +59 -0
  241. package/dist/rest/test-sessions.js +24 -0
  242. package/dist/rest/test-sessions.js.map +1 -0
  243. package/dist/rest/users.d.ts +12 -0
  244. package/dist/rest/users.js +12 -0
  245. package/dist/rest/users.js.map +1 -0
  246. package/dist/rest/util.d.ts +4 -0
  247. package/dist/rest/util.js +17 -0
  248. package/dist/rest/util.js.map +1 -0
  249. package/dist/services/abstract-check-runner.d.ts +60 -0
  250. package/dist/services/abstract-check-runner.js +225 -0
  251. package/dist/services/abstract-check-runner.js.map +1 -0
  252. package/dist/services/check-parser/collector.d.ts +33 -0
  253. package/dist/services/check-parser/collector.js +48 -0
  254. package/dist/services/check-parser/collector.js.map +1 -0
  255. package/dist/services/check-parser/errors.d.ts +8 -0
  256. package/dist/services/check-parser/errors.js +45 -0
  257. package/dist/services/check-parser/errors.js.map +1 -0
  258. package/dist/services/check-parser/package-files/index.d.ts +1 -0
  259. package/dist/services/check-parser/package-files/index.js +6 -0
  260. package/dist/services/check-parser/package-files/index.js.map +1 -0
  261. package/dist/services/check-parser/package-files/json-source-file.d.ts +13 -0
  262. package/dist/services/check-parser/package-files/json-source-file.js +34 -0
  263. package/dist/services/check-parser/package-files/json-source-file.js.map +1 -0
  264. package/dist/services/check-parser/package-files/loader.d.ts +7 -0
  265. package/dist/services/check-parser/package-files/loader.js +19 -0
  266. package/dist/services/check-parser/package-files/loader.js.map +1 -0
  267. package/dist/services/check-parser/package-files/package-json-file.d.ts +23 -0
  268. package/dist/services/check-parser/package-files/package-json-file.js +44 -0
  269. package/dist/services/check-parser/package-files/package-json-file.js.map +1 -0
  270. package/dist/services/check-parser/package-files/paths.d.ts +22 -0
  271. package/dist/services/check-parser/package-files/paths.js +108 -0
  272. package/dist/services/check-parser/package-files/paths.js.map +1 -0
  273. package/dist/services/check-parser/package-files/resolver.d.ts +32 -0
  274. package/dist/services/check-parser/package-files/resolver.js +186 -0
  275. package/dist/services/check-parser/package-files/resolver.js.map +1 -0
  276. package/dist/services/check-parser/package-files/source-file.d.ts +13 -0
  277. package/dist/services/check-parser/package-files/source-file.js +41 -0
  278. package/dist/services/check-parser/package-files/source-file.js.map +1 -0
  279. package/dist/services/check-parser/package-files/tsconfig-json-file.d.ts +68 -0
  280. package/dist/services/check-parser/package-files/tsconfig-json-file.js +119 -0
  281. package/dist/services/check-parser/package-files/tsconfig-json-file.js.map +1 -0
  282. package/dist/services/check-parser/parser.d.ts +32 -0
  283. package/dist/services/check-parser/parser.js +303 -0
  284. package/dist/services/check-parser/parser.js.map +1 -0
  285. package/dist/services/checkly-config-loader.d.ts +72 -0
  286. package/dist/services/checkly-config-loader.js +103 -0
  287. package/dist/services/checkly-config-loader.js.map +1 -0
  288. package/dist/services/config.d.ts +28 -0
  289. package/dist/services/config.js +99 -0
  290. package/dist/services/config.js.map +1 -0
  291. package/dist/services/project-parser.d.ts +21 -0
  292. package/dist/services/project-parser.js +192 -0
  293. package/dist/services/project-parser.js.map +1 -0
  294. package/dist/services/snapshot-service.d.ts +13 -0
  295. package/dist/services/snapshot-service.js +85 -0
  296. package/dist/services/snapshot-service.js.map +1 -0
  297. package/dist/services/socket-client.d.ts +4 -0
  298. package/dist/services/socket-client.js +88 -0
  299. package/dist/services/socket-client.js.map +1 -0
  300. package/dist/services/test-filters.d.ts +3 -0
  301. package/dist/services/test-filters.js +27 -0
  302. package/dist/services/test-filters.js.map +1 -0
  303. package/dist/services/test-runner.d.ts +24 -0
  304. package/dist/services/test-runner.js +91 -0
  305. package/dist/services/test-runner.js.map +1 -0
  306. package/dist/services/trigger-runner.d.ts +29 -0
  307. package/dist/services/trigger-runner.js +59 -0
  308. package/dist/services/trigger-runner.js.map +1 -0
  309. package/dist/services/util.d.ts +32 -0
  310. package/dist/services/util.js +244 -0
  311. package/dist/services/util.js.map +1 -0
  312. package/dist/tsconfig.tsbuildinfo +1 -0
  313. package/oclif.manifest.json +635 -0
  314. package/package.json +151 -0
@@ -0,0 +1,303 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ Object.defineProperty(exports, "__esModule", { value: true });
26
+ exports.Parser = void 0;
27
+ const path = __importStar(require("path"));
28
+ const fs = __importStar(require("fs"));
29
+ const acorn = __importStar(require("acorn"));
30
+ const walk = __importStar(require("acorn-walk"));
31
+ const collector_1 = require("./collector");
32
+ const errors_1 = require("./errors");
33
+ const package_files_1 = require("./package-files");
34
+ // Our custom configuration to handle walking errors
35
+ // eslint-disable-next-line @typescript-eslint/no-empty-function
36
+ const ignore = (_node, _st, _c) => { };
37
+ const PACKAGE_EXTENSION = `${path.sep}package.json`;
38
+ const JS_RESOLVE_ORDER = [
39
+ '.js',
40
+ '.mjs',
41
+ PACKAGE_EXTENSION,
42
+ `${path.sep}index.js`,
43
+ // TODO: Check the module type in package.json to figure out the esm and common js file extensions
44
+ `${path.sep}index.mjs`,
45
+ ];
46
+ const TS_RESOLVE_ORDER = [
47
+ '.ts',
48
+ '.js',
49
+ '.mjs',
50
+ PACKAGE_EXTENSION,
51
+ `${path.sep}index.ts`,
52
+ `${path.sep}index.js`,
53
+ // TODO: Check the module type in package.json to figure out the esm and common js file extensions
54
+ `${path.sep}index.mjs`,
55
+ ];
56
+ const supportedBuiltinModules = [
57
+ 'assert', 'buffer', 'crypto', 'dns', 'fs', 'path', 'querystring', 'readline ', 'stream', 'string_decoder',
58
+ 'timers', 'tls', 'url', 'util', 'zlib',
59
+ ];
60
+ function validateEntrypoint(entrypoint) {
61
+ const extension = path.extname(entrypoint);
62
+ if (extension !== '.js' && extension !== '.ts' && extension !== '.mjs') {
63
+ throw new Error(`Unsupported file extension for ${entrypoint}`);
64
+ }
65
+ try {
66
+ const content = fs.readFileSync(entrypoint, { encoding: 'utf-8' });
67
+ return { extension, content };
68
+ }
69
+ catch (err) {
70
+ throw new errors_1.DependencyParseError(entrypoint, [entrypoint], [], []);
71
+ }
72
+ }
73
+ let tsParser;
74
+ function getTsParser() {
75
+ if (tsParser) {
76
+ return tsParser;
77
+ }
78
+ try {
79
+ tsParser = require('@typescript-eslint/typescript-estree');
80
+ const AST_NODE_TYPES = tsParser.AST_NODE_TYPES;
81
+ // Our custom configuration to handle walking errors
82
+ // eslint-disable-next-line @typescript-eslint/no-empty-function
83
+ Object.values(AST_NODE_TYPES).forEach((astType) => {
84
+ var _a;
85
+ // Only handle the TS specific ones
86
+ if (!astType.startsWith('TS')) {
87
+ return;
88
+ }
89
+ walk.base[astType] = (_a = walk.base[astType]) !== null && _a !== void 0 ? _a : ignore;
90
+ });
91
+ return tsParser;
92
+ }
93
+ catch (err) {
94
+ if (err.code === 'ERR_MODULE_NOT_FOUND' || err.code === 'MODULE_NOT_FOUND') {
95
+ throw new Error('Please install "typescript" to use TypeScript-code in check files');
96
+ }
97
+ throw err;
98
+ }
99
+ }
100
+ class Parser {
101
+ // TODO: pass a npm matrix of supported npm modules
102
+ // Maybe pass a cache so we don't have to fetch files separately all the time
103
+ constructor(options) {
104
+ var _a, _b;
105
+ this.supportedModules = new Set(supportedBuiltinModules.concat((_a = options.supportedNpmModules) !== null && _a !== void 0 ? _a : []));
106
+ this.checkUnsupportedModules = (_b = options.checkUnsupportedModules) !== null && _b !== void 0 ? _b : true;
107
+ }
108
+ parse(entrypoint) {
109
+ const { extension, content } = validateEntrypoint(entrypoint);
110
+ const resolver = new package_files_1.PackageFilesResolver();
111
+ /*
112
+ * The importing of files forms a directed graph.
113
+ * Vertices are source files and edges are from importing other files.
114
+ * We can find all of the files we need to run the check by traversing this graph.
115
+ * In this implementation, we use breadth first search.
116
+ */
117
+ const collector = new collector_1.Collector(entrypoint, content);
118
+ const bfsQueue = [{ filePath: entrypoint, content }];
119
+ while (bfsQueue.length > 0) {
120
+ // Since we just checked the length, shift() will never return undefined.
121
+ // We can add a not-null assertion operator (!).
122
+ // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
123
+ const item = bfsQueue.shift();
124
+ if (item.filePath.endsWith(PACKAGE_EXTENSION)) {
125
+ // Holds info about the main file and doesn't need to be parsed
126
+ continue;
127
+ }
128
+ const { module, error } = Parser.parseDependencies(item.filePath, item.content);
129
+ if (error) {
130
+ collector.addParsingError(item.filePath, error.message);
131
+ continue;
132
+ }
133
+ const suffixes = extension === '.js' ? JS_RESOLVE_ORDER : TS_RESOLVE_ORDER;
134
+ const resolved = resolver.resolveDependenciesForFilePath(item.filePath, module.dependencies, suffixes);
135
+ if (this.checkUnsupportedModules) {
136
+ const unsupportedDependencies = resolved.external.filter(dep => !this.supportedModules.has(dep));
137
+ if (unsupportedDependencies.length) {
138
+ collector.addUnsupportedNpmDependencies(item.filePath, unsupportedDependencies);
139
+ }
140
+ }
141
+ for (const dep of resolved.missing) {
142
+ collector.addMissingFile(dep.filePath);
143
+ }
144
+ for (const dep of resolved.local) {
145
+ const filePath = dep.sourceFile.meta.filePath;
146
+ if (collector.hasDependency(filePath)) {
147
+ continue;
148
+ }
149
+ collector.addDependency(filePath, dep.sourceFile.contents);
150
+ bfsQueue.push({ filePath, content: dep.sourceFile.contents });
151
+ }
152
+ }
153
+ collector.validate();
154
+ return collector.getItems();
155
+ }
156
+ static parseDependencies(filePath, contents) {
157
+ const dependencies = new Set();
158
+ const extension = path.extname(filePath);
159
+ try {
160
+ if (extension === '.js' || extension === '.mjs') {
161
+ const ast = acorn.parse(contents, {
162
+ allowReturnOutsideFunction: true,
163
+ ecmaVersion: 'latest',
164
+ allowImportExportEverywhere: true,
165
+ allowAwaitOutsideFunction: true,
166
+ });
167
+ walk.simple(ast, Parser.jsNodeVisitor(dependencies));
168
+ }
169
+ else if (extension === '.ts') {
170
+ const tsParser = getTsParser();
171
+ const ast = tsParser.parse(contents, {});
172
+ // The AST from typescript-estree is slightly different from the type used by acorn-walk.
173
+ // This doesn't actually cause problems (both are "ESTree's"), but we need to ignore type errors here.
174
+ // @ts-ignore
175
+ walk.simple(ast, Parser.tsNodeVisitor(tsParser, dependencies));
176
+ }
177
+ else {
178
+ throw new Error(`Unsupported file extension for ${filePath}`);
179
+ }
180
+ }
181
+ catch (err) {
182
+ return {
183
+ module: {
184
+ dependencies: Array.from(dependencies),
185
+ },
186
+ error: err,
187
+ };
188
+ }
189
+ return {
190
+ module: {
191
+ dependencies: Array.from(dependencies),
192
+ },
193
+ };
194
+ }
195
+ static jsNodeVisitor(dependencies) {
196
+ return {
197
+ CallExpression(node) {
198
+ if (!Parser.isRequireExpression(node))
199
+ return;
200
+ const requireStringArg = Parser.getRequireStringArg(node);
201
+ Parser.registerDependency(requireStringArg, dependencies);
202
+ },
203
+ ImportDeclaration(node) {
204
+ if (node.source.type !== 'Literal')
205
+ return;
206
+ Parser.registerDependency(node.source.value, dependencies);
207
+ },
208
+ ExportNamedDeclaration(node) {
209
+ if (node.source === null)
210
+ return;
211
+ if (node.source.type !== 'Literal')
212
+ return;
213
+ Parser.registerDependency(node.source.value, dependencies);
214
+ },
215
+ ExportAllDeclaration(node) {
216
+ if (node.source === null)
217
+ return;
218
+ if (node.source.type !== 'Literal')
219
+ return;
220
+ Parser.registerDependency(node.source.value, dependencies);
221
+ },
222
+ };
223
+ }
224
+ static tsNodeVisitor(tsParser, dependencies) {
225
+ return {
226
+ ImportDeclaration(node) {
227
+ // For now, we only support literal strings in the import statement
228
+ if (node.source.type !== tsParser.TSESTree.AST_NODE_TYPES.Literal)
229
+ return;
230
+ Parser.registerDependency(node.source.value, dependencies);
231
+ },
232
+ ExportNamedDeclaration(node) {
233
+ // The statement isn't importing another dependency
234
+ if (node.source === null)
235
+ return;
236
+ // For now, we only support literal strings in the export statement
237
+ if (node.source.type !== tsParser.TSESTree.AST_NODE_TYPES.Literal)
238
+ return;
239
+ Parser.registerDependency(node.source.value, dependencies);
240
+ },
241
+ ExportAllDeclaration(node) {
242
+ if (node.source === null)
243
+ return;
244
+ // For now, we only support literal strings in the export statement
245
+ if (node.source.type !== tsParser.TSESTree.AST_NODE_TYPES.Literal)
246
+ return;
247
+ Parser.registerDependency(node.source.value, dependencies);
248
+ },
249
+ };
250
+ }
251
+ static isRequireExpression(node) {
252
+ if (node.type !== 'CallExpression') {
253
+ // Ignore AST nodes that aren't call expressions
254
+ return false;
255
+ }
256
+ else if (node.arguments.length === 0) {
257
+ // Weird case of `require()` or `module.require()` without arguments
258
+ return false;
259
+ }
260
+ else if (node.callee.type === 'Identifier') {
261
+ // Handle the case of a simple call to `require('dependency')`
262
+ return node.callee.name === 'require';
263
+ }
264
+ else if (node.callee.type === 'MemberExpression') {
265
+ // Handle calls to `module.require('dependency')`
266
+ const { object, property } = node.callee;
267
+ return object.type === 'Identifier' &&
268
+ object.name === 'module' &&
269
+ property.type === 'Identifier' &&
270
+ property.name === 'require';
271
+ }
272
+ else {
273
+ return false;
274
+ }
275
+ }
276
+ static getRequireStringArg(node) {
277
+ if (node.arguments[0].type === 'Literal') {
278
+ return node.arguments[0].value;
279
+ }
280
+ else if (node.arguments[0].type === 'TemplateLiteral') {
281
+ return node.arguments[0].quasis[0].value.cooked;
282
+ }
283
+ else {
284
+ /*
285
+ * It might be that `require` is called with a variable - `require(myPackage)`.
286
+ * Unfortunately supporting that case would be complicated.
287
+ * We just skip the dependency and hope that the check still works.
288
+ */
289
+ return null;
290
+ }
291
+ }
292
+ static registerDependency(importArg, dependencies) {
293
+ // TODO: We currently don't support import path aliases, f.ex: `import { Something } from '@services/my-service'`
294
+ if (!importArg) {
295
+ // If there's no importArg, don't register a dependency
296
+ }
297
+ else {
298
+ dependencies.add(importArg);
299
+ }
300
+ }
301
+ }
302
+ exports.Parser = Parser;
303
+ //# sourceMappingURL=parser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parser.js","sourceRoot":"","sources":["../../../src/services/check-parser/parser.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,72 @@
1
+ import { CheckProps } from '../constructs/check';
2
+ import { Construct } from '../constructs/construct';
3
+ import type { Region } from '..';
4
+ import { ReporterType } from '../reporters/reporter';
5
+ import { PlaywrightConfig } from '../constructs/playwright-config';
6
+ export type CheckConfigDefaults = Pick<CheckProps, 'activated' | 'muted' | 'doubleCheck' | 'shouldFail' | 'runtimeId' | 'locations' | 'tags' | 'frequency' | 'environmentVariables' | 'alertChannels' | 'privateLocations' | 'retryStrategy' | 'alertEscalationPolicy'>;
7
+ export type ChecklyConfig = {
8
+ /**
9
+ * Friendly name for your project.
10
+ */
11
+ projectName: string;
12
+ /**
13
+ * Unique project identifier.
14
+ */
15
+ logicalId: string;
16
+ /**
17
+ * Git repository URL.
18
+ */
19
+ repoUrl?: string;
20
+ /**
21
+ * Checks default configuration properties.
22
+ */
23
+ checks?: CheckConfigDefaults & {
24
+ /**
25
+ * Glob pattern where the CLI looks for files containing Check constructs, i.e. all `.checks.ts` files
26
+ */
27
+ checkMatch?: string | string[];
28
+ /**
29
+ * List of glob patterns with directories to ignore.
30
+ */
31
+ ignoreDirectoriesMatch?: string[];
32
+ playwrightConfig?: PlaywrightConfig;
33
+ /**
34
+ * Browser checks default configuration properties.
35
+ */
36
+ browserChecks?: CheckConfigDefaults & {
37
+ /**
38
+ * Glob pattern where the CLI looks for Playwright test files, i.e. all `.spec.ts` files
39
+ */
40
+ testMatch?: string | string[];
41
+ };
42
+ /**
43
+ * Multistep checks default configuration properties.
44
+ */
45
+ multiStepChecks?: CheckConfigDefaults & {
46
+ /**
47
+ * Glob pattern where the CLI looks for Playwright test files, i.e. all `.spec.ts` files
48
+ */
49
+ testMatch?: string | string[];
50
+ };
51
+ };
52
+ /**
53
+ * CLI default configuration properties.
54
+ */
55
+ cli?: {
56
+ runLocation?: keyof Region;
57
+ privateRunLocation?: string;
58
+ verbose?: boolean;
59
+ failOnNoMatching?: boolean;
60
+ reporters?: ReporterType[];
61
+ retries?: number;
62
+ };
63
+ };
64
+ export declare function loadFile(file: string): Promise<any>;
65
+ export declare function getChecklyConfigFile(): {
66
+ checklyConfig: string;
67
+ fileName: string;
68
+ } | undefined;
69
+ export declare function loadChecklyConfig(dir: string, filenames?: string[]): Promise<{
70
+ config: ChecklyConfig;
71
+ constructs: Construct[];
72
+ }>;
@@ -0,0 +1,103 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ Object.defineProperty(exports, "__esModule", { value: true });
26
+ exports.loadChecklyConfig = exports.getChecklyConfigFile = exports.loadFile = void 0;
27
+ const path = __importStar(require("path"));
28
+ const fs_1 = require("fs");
29
+ const util_1 = require("./util");
30
+ const constructs_1 = require("../constructs");
31
+ const fs = __importStar(require("fs"));
32
+ // eslint-disable-next-line no-restricted-syntax
33
+ var Extension;
34
+ (function (Extension) {
35
+ Extension["JS"] = ".js";
36
+ Extension["MJS"] = ".mjs";
37
+ Extension["TS"] = ".ts";
38
+ })(Extension || (Extension = {}));
39
+ function loadFile(file) {
40
+ if (!(0, fs_1.existsSync)(file)) {
41
+ return Promise.resolve(null);
42
+ }
43
+ switch (path.extname(file)) {
44
+ case Extension.JS:
45
+ return (0, util_1.loadJsFile)(file);
46
+ case Extension.MJS:
47
+ return (0, util_1.loadJsFile)(file);
48
+ case Extension.TS:
49
+ return (0, util_1.loadTsFile)(file);
50
+ default:
51
+ throw new Error(`Unsupported file extension ${file} for the config file`);
52
+ }
53
+ }
54
+ exports.loadFile = loadFile;
55
+ function isString(obj) {
56
+ return (Object.prototype.toString.call(obj) === '[object String]');
57
+ }
58
+ function getChecklyConfigFile() {
59
+ const filenames = ['checkly.config.ts', 'checkly.config.js', 'checkly.config.mjs'];
60
+ let config;
61
+ for (const configFile of filenames) {
62
+ const dir = path.resolve(path.dirname(configFile));
63
+ if (!(0, fs_1.existsSync)(path.resolve(dir, configFile))) {
64
+ continue;
65
+ }
66
+ const file = fs.readFileSync(path.resolve(dir, configFile));
67
+ if (file) {
68
+ config = {
69
+ checklyConfig: file.toString(),
70
+ fileName: configFile,
71
+ };
72
+ break;
73
+ }
74
+ }
75
+ return config;
76
+ }
77
+ exports.getChecklyConfigFile = getChecklyConfigFile;
78
+ async function loadChecklyConfig(dir, filenames = ['checkly.config.ts', 'checkly.config.js', 'checkly.config.mjs']) {
79
+ let config;
80
+ constructs_1.Session.loadingChecklyConfigFile = true;
81
+ constructs_1.Session.checklyConfigFileConstructs = [];
82
+ for (const filename of filenames) {
83
+ config = await loadFile(path.join(dir, filename));
84
+ if (config) {
85
+ break;
86
+ }
87
+ }
88
+ if (!config) {
89
+ throw new Error(`Unable to locate a config at ${dir} with ${filenames.join(', ')}.`);
90
+ }
91
+ for (const field of ['logicalId', 'projectName']) {
92
+ const requiredField = config === null || config === void 0 ? void 0 : config[field];
93
+ if (!requiredField || !(isString(requiredField))) {
94
+ throw new Error(`Config object missing a ${field} as type string`);
95
+ }
96
+ }
97
+ const constructs = constructs_1.Session.checklyConfigFileConstructs;
98
+ constructs_1.Session.loadingChecklyConfigFile = false;
99
+ constructs_1.Session.checklyConfigFileConstructs = [];
100
+ return { config, constructs };
101
+ }
102
+ exports.loadChecklyConfig = loadChecklyConfig;
103
+ //# sourceMappingURL=checkly-config-loader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"checkly-config-loader.js","sourceRoot":"","sources":["../../src/services/checkly-config-loader.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,2CAA4B;AAC5B,2BAA+B;AAC/B,iCAA+C;AAE/C,8CAAuC;AAIvC,uCAAwB;AAmExB,gDAAgD;AAChD,IAAK,SAIJ;AAJD,WAAK,SAAS;IACZ,uBAAU,CAAA;IACV,yBAAY,CAAA;IACZ,uBAAU,CAAA;AACZ,CAAC,EAJI,SAAS,KAAT,SAAS,QAIb;AAED,SAAgB,QAAQ,CAAE,IAAY;IACpC,IAAI,CAAC,IAAA,eAAU,EAAC,IAAI,CAAC,EAAE,CAAC;QACtB,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;IAC9B,CAAC;IACD,QAAQ,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;QAC3B,KAAK,SAAS,CAAC,EAAE;YACf,OAAO,IAAA,iBAAU,EAAC,IAAI,CAAC,CAAA;QACzB,KAAK,SAAS,CAAC,GAAG;YAChB,OAAO,IAAA,iBAAU,EAAC,IAAI,CAAC,CAAA;QACzB,KAAK,SAAS,CAAC,EAAE;YACf,OAAO,IAAA,iBAAU,EAAC,IAAI,CAAC,CAAA;QACzB;YACE,MAAM,IAAI,KAAK,CAAC,8BAA8B,IAAI,sBAAsB,CAAC,CAAA;IAC7E,CAAC;AACH,CAAC;AAdD,4BAcC;AAED,SAAS,QAAQ,CAAE,GAAQ;IACzB,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,iBAAiB,CAAC,CAAA;AACpE,CAAC;AAED,SAAgB,oBAAoB;IAClC,MAAM,SAAS,GAAa,CAAC,mBAAmB,EAAE,mBAAmB,EAAE,oBAAoB,CAAC,CAAA;IAC5F,IAAI,MAAM,CAAA;IACV,KAAK,MAAM,UAAU,IAAI,SAAS,EAAE,CAAC;QACnC,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAA;QAClD,IAAI,CAAC,IAAA,eAAU,EAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC,EAAE,CAAC;YAC/C,SAAQ;QACV,CAAC;QACD,MAAM,IAAI,GAAG,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC,CAAA;QAC3D,IAAI,IAAI,EAAE,CAAC;YACT,MAAM,GAAG;gBACP,aAAa,EAAE,IAAI,CAAC,QAAQ,EAAE;gBAC9B,QAAQ,EAAE,UAAU;aACrB,CAAA;YACD,MAAK;QACP,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAA;AACf,CAAC;AAlBD,oDAkBC;AAEM,KAAK,UAAU,iBAAiB,CAAE,GAAW,EAAE,SAAS,GAAG,CAAC,mBAAmB,EAAE,mBAAmB,EAAE,oBAAoB,CAAC;IAChI,IAAI,MAAM,CAAA;IACV,oBAAO,CAAC,wBAAwB,GAAG,IAAI,CAAA;IACvC,oBAAO,CAAC,2BAA2B,GAAG,EAAE,CAAA;IACxC,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;QACjC,MAAM,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC,CAAA;QACjD,IAAI,MAAM,EAAE,CAAC;YACX,MAAK;QACP,CAAC;IACH,CAAC;IAED,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,IAAI,KAAK,CAAC,gCAAgC,GAAG,SAAS,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IACtF,CAAC;IAED,KAAK,MAAM,KAAK,IAAI,CAAC,WAAW,EAAE,aAAa,CAAC,EAAE,CAAC;QACjD,MAAM,aAAa,GAAG,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAG,KAAK,CAAC,CAAA;QACrC,IAAI,CAAC,aAAa,IAAI,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,EAAE,CAAC;YACjD,MAAM,IAAI,KAAK,CAAC,2BAA2B,KAAK,iBAAiB,CAAC,CAAA;QACpE,CAAC;IACH,CAAC;IAED,MAAM,UAAU,GAAG,oBAAO,CAAC,2BAA2B,CAAA;IACtD,oBAAO,CAAC,wBAAwB,GAAG,KAAK,CAAA;IACxC,oBAAO,CAAC,2BAA2B,GAAG,EAAE,CAAA;IACxC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,CAAA;AAC/B,CAAC;AA1BD,8CA0BC"}
@@ -0,0 +1,28 @@
1
+ import Conf from 'conf';
2
+ declare enum Env {
3
+ production = "production",
4
+ staging = "staging",
5
+ development = "development",
6
+ local = "local"
7
+ }
8
+ declare class ChecklyConfig {
9
+ private _auth?;
10
+ private _data?;
11
+ get auth(): Conf<{
12
+ apiKey: unknown;
13
+ }>;
14
+ get data(): Conf<{
15
+ accountId: unknown;
16
+ accountName: unknown;
17
+ }>;
18
+ clear(): void;
19
+ getEnv(): Env;
20
+ getApiKey(): string;
21
+ getAccountId(): string;
22
+ hasEnvVarsConfigured(): boolean;
23
+ getApiUrl(): string;
24
+ getMqttUrl(): string;
25
+ hasValidCredentials(): boolean;
26
+ }
27
+ declare const config: ChecklyConfig;
28
+ export default config;
@@ -0,0 +1,99 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ var _a;
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ const conf_1 = __importDefault(require("conf"));
8
+ const dataSchema = {
9
+ accountId: { type: 'string' },
10
+ accountName: { type: 'string' },
11
+ };
12
+ const authSchema = {
13
+ apiKey: { type: 'string' },
14
+ };
15
+ const projectSuffix = (_a = process.env.CHECKLY_ENV) !== null && _a !== void 0 ? _a : '';
16
+ // eslint-disable-next-line no-restricted-syntax
17
+ var Env;
18
+ (function (Env) {
19
+ Env["production"] = "production";
20
+ Env["staging"] = "staging";
21
+ Env["development"] = "development";
22
+ Env["local"] = "local";
23
+ })(Env || (Env = {}));
24
+ class ChecklyConfig {
25
+ // Accessing auth or data will cause a config file to be created.
26
+ // We should avoid doing this unless absolutely necessary, since this operation can fail due to file permissions.
27
+ get auth() {
28
+ var _a;
29
+ // Create this._auth lazily
30
+ return (_a = this._auth) !== null && _a !== void 0 ? _a : (this._auth = new conf_1.default({
31
+ projectName: '@checkly/cli',
32
+ configName: 'auth',
33
+ projectSuffix,
34
+ // @ts-ignore
35
+ schema: authSchema,
36
+ }));
37
+ }
38
+ get data() {
39
+ var _a;
40
+ // Create this._data lazily
41
+ return (_a = this._data) !== null && _a !== void 0 ? _a : (this._data = new conf_1.default({
42
+ projectName: '@checkly/cli',
43
+ configName: 'config',
44
+ projectSuffix,
45
+ // @ts-ignore
46
+ schema: dataSchema,
47
+ }));
48
+ }
49
+ clear() {
50
+ this.auth.clear();
51
+ this.data.clear();
52
+ }
53
+ getEnv() {
54
+ const environments = ['production', 'development', 'staging', 'local'];
55
+ const env = process.env.CHECKLY_ENV || environments[0];
56
+ if (!(env in Env)) {
57
+ throw new Error('Invalid CHECKLY_ENV');
58
+ }
59
+ return env;
60
+ }
61
+ getApiKey() {
62
+ return process.env.CHECKLY_API_KEY || this.auth.get('apiKey') || '';
63
+ }
64
+ getAccountId() {
65
+ return process.env.CHECKLY_ACCOUNT_ID || this.data.get('accountId') || '';
66
+ }
67
+ hasEnvVarsConfigured() {
68
+ const apiKey = process.env.CHECKLY_API_KEY || '';
69
+ const accoundId = process.env.CHECKLY_ACCOUNT_ID || '';
70
+ return apiKey !== '' || accoundId !== '';
71
+ }
72
+ getApiUrl() {
73
+ const environments = {
74
+ local: 'http://127.0.0.1:3000',
75
+ development: 'https://api-dev.checklyhq.com',
76
+ staging: 'https://api-test.checklyhq.com',
77
+ production: 'https://api.checklyhq.com',
78
+ };
79
+ return environments[this.getEnv()];
80
+ }
81
+ getMqttUrl() {
82
+ const environments = {
83
+ local: 'wss://events-local.checklyhq.com',
84
+ development: 'wss://events-dev.checklyhq.com',
85
+ staging: 'wss://events-test.checklyhq.com',
86
+ production: 'wss://events.checklyhq.com',
87
+ };
88
+ return environments[this.getEnv()];
89
+ }
90
+ hasValidCredentials() {
91
+ if (this.getApiKey() !== '' && this.getAccountId() !== '') {
92
+ return true;
93
+ }
94
+ return false;
95
+ }
96
+ }
97
+ const config = new ChecklyConfig();
98
+ exports.default = config;
99
+ //# sourceMappingURL=config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/services/config.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ import { Project } from '../constructs';
2
+ import { CheckConfigDefaults } from './checkly-config-loader';
3
+ import type { Runtime } from '../rest/runtimes';
4
+ import type { Construct } from '../constructs/construct';
5
+ type ProjectParseOpts = {
6
+ directory: string;
7
+ projectLogicalId: string;
8
+ projectName: string;
9
+ repoUrl?: string;
10
+ checkMatch?: string | string[];
11
+ browserCheckMatch?: string | string[];
12
+ multiStepCheckMatch?: string | string[];
13
+ ignoreDirectoriesMatch?: string[];
14
+ checkDefaults?: CheckConfigDefaults;
15
+ browserCheckDefaults?: CheckConfigDefaults;
16
+ availableRuntimes: Record<string, Runtime>;
17
+ verifyRuntimeDependencies?: boolean;
18
+ checklyConfigConstructs?: Construct[];
19
+ };
20
+ export declare function parseProject(opts: ProjectParseOpts): Promise<Project>;
21
+ export {};