lightrun 0.0.0 → 1.2.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.
- package/README.md +67 -0
- package/build/src/agent/blocklisting/blocklisting-patterns.d.ts +6 -0
- package/build/src/agent/blocklisting/blocklisting-patterns.js +1 -0
- package/build/src/agent/blocklisting/blocklisting-patterns.js.map +1 -0
- package/build/src/agent/blocklisting/dummy-blocklist-manager.d.ts +6 -0
- package/build/src/agent/blocklisting/dummy-blocklist-manager.js +1 -0
- package/build/src/agent/blocklisting/dummy-blocklist-manager.js.map +1 -0
- package/build/src/agent/blocklisting/patterns-blocklist-manager.d.ts +10 -0
- package/build/src/agent/blocklisting/patterns-blocklist-manager.js +1 -0
- package/build/src/agent/blocklisting/patterns-blocklist-manager.js.map +1 -0
- package/build/src/agent/config.d.ts +376 -0
- package/build/src/agent/config.js +1 -0
- package/build/src/agent/config.js.map +1 -0
- package/build/src/agent/controller.d.ts +62 -0
- package/build/src/agent/controller.js +1 -0
- package/build/src/agent/controller.js.map +1 -0
- package/build/src/agent/debuglet.d.ts +224 -0
- package/build/src/agent/debuglet.js +1 -0
- package/build/src/agent/debuglet.js.map +1 -0
- package/build/src/agent/io/scanner.d.ts +15 -0
- package/build/src/agent/io/scanner.js +1 -0
- package/build/src/agent/io/scanner.js.map +1 -0
- package/build/src/agent/io/sourcemapper.d.ts +72 -0
- package/build/src/agent/io/sourcemapper.js +1 -0
- package/build/src/agent/io/sourcemapper.js.map +1 -0
- package/build/src/agent/leaky-bucket.d.ts +16 -0
- package/build/src/agent/leaky-bucket.js +1 -0
- package/build/src/agent/leaky-bucket.js.map +1 -0
- package/build/src/agent/log-data.d.ts +13 -0
- package/build/src/agent/log-data.js +1 -0
- package/build/src/agent/log-data.js.map +1 -0
- package/build/src/agent/piping-manager.d.ts +34 -0
- package/build/src/agent/piping-manager.js +1 -0
- package/build/src/agent/piping-manager.js.map +1 -0
- package/build/src/agent/quota-manager.d.ts +36 -0
- package/build/src/agent/quota-manager.js +1 -0
- package/build/src/agent/quota-manager.js.map +1 -0
- package/build/src/agent/state/inspector-state.d.ts +28 -0
- package/build/src/agent/state/inspector-state.js +1 -0
- package/build/src/agent/state/inspector-state.js.map +1 -0
- package/build/src/agent/state/legacy-state.d.ts +22 -0
- package/build/src/agent/state/legacy-state.js +1 -0
- package/build/src/agent/state/legacy-state.js.map +1 -0
- package/build/src/agent/util/debug-assert.d.ts +22 -0
- package/build/src/agent/util/debug-assert.js +1 -0
- package/build/src/agent/util/debug-assert.js.map +1 -0
- package/build/src/agent/util/utils.d.ts +107 -0
- package/build/src/agent/util/utils.js +1 -0
- package/build/src/agent/util/utils.js.map +1 -0
- package/build/src/agent/util/validator.d.ts +12 -0
- package/build/src/agent/util/validator.js +1 -0
- package/build/src/agent/util/validator.js.map +1 -0
- package/build/src/agent/v8/debugapi.d.ts +21 -0
- package/build/src/agent/v8/debugapi.js +1 -0
- package/build/src/agent/v8/debugapi.js.map +1 -0
- package/build/src/agent/v8/inspector-debugapi.d.ts +79 -0
- package/build/src/agent/v8/inspector-debugapi.js +1 -0
- package/build/src/agent/v8/inspector-debugapi.js.map +1 -0
- package/build/src/agent/v8/legacy-debugapi.d.ts +56 -0
- package/build/src/agent/v8/legacy-debugapi.js +1 -0
- package/build/src/agent/v8/legacy-debugapi.js.map +1 -0
- package/build/src/agent/v8/v8inspector.d.ts +48 -0
- package/build/src/agent/v8/v8inspector.js +1 -0
- package/build/src/agent/v8/v8inspector.js.map +1 -0
- package/build/src/client/stackdriver/debug.d.ts +43 -0
- package/build/src/client/stackdriver/debug.js +1 -0
- package/build/src/client/stackdriver/debug.js.map +1 -0
- package/build/src/client/stackdriver/status-message.d.ts +34 -0
- package/build/src/client/stackdriver/status-message.js +1 -0
- package/build/src/client/stackdriver/status-message.js.map +1 -0
- package/build/src/debuggee.d.ts +64 -0
- package/build/src/debuggee.js +1 -0
- package/build/src/debuggee.js.map +1 -0
- package/build/src/index.d.ts +16 -0
- package/build/src/index.js +1 -0
- package/build/src/index.js.map +1 -0
- package/build/src/resources/lightrun-self-signed.pem +24 -0
- package/build/src/resources/version.txt +1 -0
- package/build/src/types/lightrun.d.ts +3 -0
- package/build/src/types/lightrun.js +1 -0
- package/build/src/types/lightrun.js.map +1 -0
- package/build/src/types/stackdriver.d.ts +76 -0
- package/build/src/types/stackdriver.js +1 -0
- package/build/src/types/stackdriver.js.map +1 -0
- package/build/src/types/v8.d.ts +214 -0
- package/build/src/types/v8.js +1 -0
- package/build/src/types/v8.js.map +1 -0
- package/package.json +90 -5
- package/start.js +4 -0
- package/index.js +0 -1
package/README.md
ADDED
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
# Lightrun for Node.js
|
|
2
|
+
|
|
3
|
+
[Lightrun](https://lightrun.com) is a developer-native observabity platform. It's a way to add logs, inspect the state of the current execution (in a familiar, debugger-like view), and extract any type of code-level metric **on the fly** - without redeploying, restarting or even stopping the running application.
|
|
4
|
+
|
|
5
|
+
Check out our [docs](https://docs.lightrun.com/node/overview/) to learn more.
|
|
6
|
+
|
|
7
|
+
## Getting Started
|
|
8
|
+
|
|
9
|
+
To get started with Lightrun you'll need three things:
|
|
10
|
+
|
|
11
|
+
1. A Lightrun Account - you can get one [here](https://app.lightrun.com/api/oauth/register).
|
|
12
|
+
2. A Lightrun Plugin - you'll have instructions to download it once you create an account, but you can also check them out [here](https://docs.lightrun.com/node/plugin/).
|
|
13
|
+
3. A Lightrun Agent - which is this very NPM package! It's the thing that actually does the magic.
|
|
14
|
+
|
|
15
|
+
Once you've signed up for an account and downloaded the plugin, you can install the agent in your application.
|
|
16
|
+
|
|
17
|
+
## Installing the Lightrun Agent
|
|
18
|
+
|
|
19
|
+
In order to install the Lightrun Node Agent please follow these steps:
|
|
20
|
+
|
|
21
|
+
1. In your project's folder, install the node agent by running `npm install lightrun`.
|
|
22
|
+
|
|
23
|
+
2.
|
|
24
|
+
a. **For regular Node.js applications** - Require Lightrun at the start of your your application file (i.e. `index.js` or `app.js`):
|
|
25
|
+
|
|
26
|
+
```javascript
|
|
27
|
+
require('lightrun').start({
|
|
28
|
+
company: '<COMPANY-NAME>',
|
|
29
|
+
lightrunSecret: '<COMPANY-SECRET>',
|
|
30
|
+
});
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
b. **For TypeScript applications** - Import Lightrun at the start of your your application file (i.e. `index.ts` or `app.ts`) and then start it:
|
|
34
|
+
|
|
35
|
+
```javascript
|
|
36
|
+
import * as lightrun from 'lightrun';
|
|
37
|
+
|
|
38
|
+
lightrun.start({
|
|
39
|
+
company: '<COMPANY-NAME>',
|
|
40
|
+
lightrunSecret: '<COMPANY-SECRET>',
|
|
41
|
+
});
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
You will choose a `<COMPANY_NAME>` and have a `<COMPANY-SECRET>` auto-generated for you during the onbaording process, right after signing up for an account.
|
|
45
|
+
### Important Note - Sourcemap Files
|
|
46
|
+
Lightrun for TypeScript needs to have [sourcemap files](https://www.typescriptlang.org/tsconfig#sourceMap) available to it in order to work properly. Please make sure to [set `sourceMap` to `true` when compiling your TypeScript code](https://www.typescriptlang.org/tsconfig#sourceMap).
|
|
47
|
+
|
|
48
|
+
3. Run the application as you normally would.
|
|
49
|
+
|
|
50
|
+
You should now see the application's agent popping up in the Lightrun Plugin's sidebar - you can now add [logs](https://docs.lightrun.com/logs/), [snapshots](https://docs.lightrun.com/snapshots-plugin/) and [metrics](https://docs.lightrun.com/metrics/) to your application.
|
|
51
|
+
|
|
52
|
+
### Providing Credentials Via Environment Variables
|
|
53
|
+
|
|
54
|
+
You can optionally choose to provide the `<COMPANY_NAME>` and `<COMPANY-SECRET>` via environment variables to the Node process.
|
|
55
|
+
To do so, follow these steps after installing the agent (**note that this does not work on Windows**):
|
|
56
|
+
|
|
57
|
+
1. Import Lightrun at the start of the file:
|
|
58
|
+
|
|
59
|
+
```javascript
|
|
60
|
+
require('lightrun').start();
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
2. Run the application with the environment variables provided before the `node` command:
|
|
64
|
+
|
|
65
|
+
```javascript
|
|
66
|
+
LIGHTRUN_SECRET=<COMPANY_SECRET> LIGHTRUN_COMPANY=<COMPANY_NAME> node index.js
|
|
67
|
+
```
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
const a0_0x5d06=['some','return\x20/\x22\x20+\x20this\x20+\x20\x22/','27737yxBpPi','match','233TlUaIq','constructor','BlocklistingPatterns','test','substring','__esModule','224633TVfxQn','push','1200067ZMYoIB','198098QxRdhQ','matches','1HsztZe','289883XvIFbT','defineProperty','11MFIxcr','200140PTZojK','613qFdfVE','patterns','length','apply','inversePatterns'];const a0_0x547b4e=a0_0x1837;(function(_0x1f796a,_0x89a9e8){const _0x421025=a0_0x1837;while(!![]){try{const _0x132f31=parseInt(_0x421025(0xb2))+parseInt(_0x421025(0xbc))*parseInt(_0x421025(0xc5))+parseInt(_0x421025(0xb8))*parseInt(_0x421025(0xb7))+parseInt(_0x421025(0xc3))*parseInt(_0x421025(0xba))+parseInt(_0x421025(0xb5))+parseInt(_0x421025(0xbb))+-parseInt(_0x421025(0xb4));if(_0x132f31===_0x89a9e8)break;else _0x1f796a['push'](_0x1f796a['shift']());}catch(_0x84e138){_0x1f796a['push'](_0x1f796a['shift']());}}}(a0_0x5d06,0x2736f));function a0_0x1837(_0x5094c4,_0x90dd21){_0x5094c4=_0x5094c4-0xb2;let _0x5dcf55=a0_0x5d06[_0x5094c4];return _0x5dcf55;}const a0_0x406b6f=function(){let _0x12e9f6=!![];return function(_0x29ab4e,_0x5075c9){const _0x4e455a=_0x12e9f6?function(){const _0x360eb3=a0_0x1837;if(_0x5075c9){const _0x528c92=_0x5075c9[_0x360eb3(0xbf)](_0x29ab4e,arguments);return _0x5075c9=null,_0x528c92;}}:function(){};return _0x12e9f6=![],_0x4e455a;};}(),a0_0x27d68e=a0_0x406b6f(this,function(){const _0xd74b8d=function(){const _0x4a1e8a=a0_0x1837,_0x41ab08=_0xd74b8d['constructor'](_0x4a1e8a(0xc2))()[_0x4a1e8a(0xc6)]('^([^\x20]+(\x20+[^\x20]+)+)+[^\x20]}');return!_0x41ab08[_0x4a1e8a(0xc8)](a0_0x27d68e);};return _0xd74b8d();});a0_0x27d68e();'use strict';Object[a0_0x547b4e(0xb9)](exports,a0_0x547b4e(0xca),{'value':!![]}),exports[a0_0x547b4e(0xc7)]=void 0x0;class BlocklistingPatterns{constructor(_0x2e4a25){const _0x5e8925=a0_0x547b4e;this[_0x5e8925(0xc0)]=[],this['patterns']=[],_0x2e4a25&&_0x2e4a25['forEach'](_0x170780=>{const _0x1855d2=_0x5e8925;_0x170780&&(_0x170780[0x0]==='!'?this[_0x1855d2(0xc0)][_0x1855d2(0xb3)](new RegExp(_0x170780[_0x1855d2(0xc9)](0x1))):this[_0x1855d2(0xbd)][_0x1855d2(0xb3)](new RegExp(_0x170780)));});}[a0_0x547b4e(0xb6)](_0x2fcb05){const _0x3a379e=a0_0x547b4e;let _0x53f300=_0x151356=>_0x2fcb05[_0x3a379e(0xc4)](_0x151356);return this[_0x3a379e(0xc0)][_0x3a379e(0xbe)]!==0x0&&!this[_0x3a379e(0xc0)][_0x3a379e(0xc1)](_0x53f300)||this[_0x3a379e(0xbd)][_0x3a379e(0xc1)](_0x53f300);}}exports[a0_0x547b4e(0xc7)]=BlocklistingPatterns;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"blocklisting-patterns.js","sourceRoot":"","sources":["../../../../src/agent/blocklisting/blocklisting-patterns.ts"],"names":[],"mappings":";;;AAAA,MAAa,oBAAoB;IAI/B,YAAY,QAAkB;QAHtB,oBAAe,GAAa,EAAE,CAAC;QAC/B,aAAQ,GAAa,EAAE,CAAC;QAG9B,IAAI,QAAQ,EAAE;YACZ,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;gBACzB,IAAI,OAAO,EAAE;oBACX,IAAI,OAAO,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE;wBACtB,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;qBAC7D;yBAAM;wBACL,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;qBACzC;iBACF;YACH,CAAC,CAAC,CAAC;SACJ;IACH,CAAC;IAED,OAAO,CAAC,IAAY;QAClB,IAAI,KAAK,GAAG,CAAC,OAAe,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAErD,OAAO,CAAC,IAAI,CAAC,eAAe,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC/G,CAAC;CACF;AAvBD,oDAuBC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var a1_0x6eb4=['1268dXbBVd','4577isMzLD','constructor','1xfFSpj','2942aYQOkx','test','223aYfviz','123DMjUQd','^([^\x20]+(\x20+[^\x20]+)+)+[^\x20]}','266maaHgs','value','282556zLFyAG','441083SJEzet','DummyBlocklistManager','defineProperty','8123vTCtkH','269CqITZO','544021ydkpCw','return\x20/\x22\x20+\x20this\x20+\x20\x22/','__esModule','7CJUCIs'];function a1_0x6668(_0x140c28,_0x52354f){_0x140c28=_0x140c28-0x140;var _0x7ab76e=a1_0x6eb4[_0x140c28];return _0x7ab76e;}var a1_0x599c62=a1_0x6668;(function(_0x43ff85,_0x310ddc){var _0x10080f=a1_0x6668;while(!![]){try{var _0x20b763=-parseInt(_0x10080f(0x141))+-parseInt(_0x10080f(0x149))*parseInt(_0x10080f(0x14e))+parseInt(_0x10080f(0x146))*parseInt(_0x10080f(0x140))+parseInt(_0x10080f(0x151))*-parseInt(_0x10080f(0x148))+parseInt(_0x10080f(0x14c))*-parseInt(_0x10080f(0x154))+parseInt(_0x10080f(0x145))*parseInt(_0x10080f(0x14b))+parseInt(_0x10080f(0x144))*parseInt(_0x10080f(0x150));if(_0x20b763===_0x310ddc)break;else _0x43ff85['push'](_0x43ff85['shift']());}catch(_0x515adc){_0x43ff85['push'](_0x43ff85['shift']());}}}(a1_0x6eb4,0xb1048));var a1_0x3045b7=function(){var _0x13c3a7=!![];return function(_0x548dd2,_0xe77806){var _0xab6522=_0x13c3a7?function(){if(_0xe77806){var _0x291bb3=_0xe77806['apply'](_0x548dd2,arguments);return _0xe77806=null,_0x291bb3;}}:function(){};return _0x13c3a7=![],_0xab6522;};}(),a1_0x4a04e6=a1_0x3045b7(this,function(){var _0x35602a=function(){var _0x32b812=a1_0x6668,_0xacd169=_0x35602a[_0x32b812(0x147)](_0x32b812(0x142))()[_0x32b812(0x147)](_0x32b812(0x14d));return!_0xacd169[_0x32b812(0x14a)](a1_0x4a04e6);};return _0x35602a();});a1_0x4a04e6();'use strict';Object[a1_0x599c62(0x153)](exports,a1_0x599c62(0x143),{'value':!![]}),exports['DummyBlocklistManager']=void 0x0;class DummyBlocklistManager{constructor(_0x45bc4e){var _0x33a7e8=a1_0x599c62;this[_0x33a7e8(0x14f)]=_0x45bc4e;}['shouldBlock'](_0x4b3ada){return this['value'];}}exports[a1_0x599c62(0x152)]=DummyBlocklistManager;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dummy-blocklist-manager.js","sourceRoot":"","sources":["../../../../src/agent/blocklisting/dummy-blocklist-manager.ts"],"names":[],"mappings":";;;AAEA,MAAa,qBAAqB;IAGhC,YAAY,KAAc;QACxB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACrB,CAAC;IAED,WAAW,CAAC,IAAY;QACtB,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;CAEF;AAXD,sDAWC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { BlocklistManager } from "../../types/lightrun";
|
|
2
|
+
import { ResolvedDebugAgentConfig } from "../config";
|
|
3
|
+
export declare class PatternsBlocklistManager implements BlocklistManager {
|
|
4
|
+
private blocklist;
|
|
5
|
+
private blocklistExceptions;
|
|
6
|
+
private config;
|
|
7
|
+
constructor(blocklist: string[], blocklistExceptions: string[], config: ResolvedDebugAgentConfig);
|
|
8
|
+
shouldBlock(path: string): boolean;
|
|
9
|
+
private stripWorkingDir;
|
|
10
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
const a2_0x16d8=['19oRuNWG','../util/utils','114079EwtSyc','233510bGsGjX','76640gnaTbo','isPathInCurrentWorkingDirectory','319927OhrBgI','constructor','stripWorkingDir','blocklistExceptions','BlocklistingPatterns','stripCurrentWorkingDirectory','1WLIMRg','PatternsBlocklistManager','return\x20/\x22\x20+\x20this\x20+\x20\x22/','defineProperty','51583YBlrzG','1615417OgTpZn','./blocklisting-patterns','config','matches','1662346FoTxZl','test','shouldBlock'];const a2_0x29ba1e=a2_0x4bef;function a2_0x4bef(_0x1e2ebd,_0x13b8b8){_0x1e2ebd=_0x1e2ebd-0x1e8;let _0x5702ef=a2_0x16d8[_0x1e2ebd];return _0x5702ef;}(function(_0x49638d,_0x1ffb03){const _0x306900=a2_0x4bef;while(!![]){try{const _0x228364=parseInt(_0x306900(0x1ff))*-parseInt(_0x306900(0x1f1))+-parseInt(_0x306900(0x1f6))+-parseInt(_0x306900(0x1e9))*-parseInt(_0x306900(0x1fd))+-parseInt(_0x306900(0x1e8))+parseInt(_0x306900(0x1fa))+parseInt(_0x306900(0x1f5))+-parseInt(_0x306900(0x1eb));if(_0x228364===_0x1ffb03)break;else _0x49638d['push'](_0x49638d['shift']());}catch(_0x2218dc){_0x49638d['push'](_0x49638d['shift']());}}}(a2_0x16d8,0xd8974));const a2_0x2996e8=function(){let _0x11ece1=!![];return function(_0x94c4c8,_0x2f5039){const _0x3f0583=_0x11ece1?function(){if(_0x2f5039){const _0x5e0a40=_0x2f5039['apply'](_0x94c4c8,arguments);return _0x2f5039=null,_0x5e0a40;}}:function(){};return _0x11ece1=![],_0x3f0583;};}(),a2_0x2addfb=a2_0x2996e8(this,function(){const _0x21ad52=function(){const _0x449953=a2_0x4bef,_0x4d5cb0=_0x21ad52['constructor'](_0x449953(0x1f3))()[_0x449953(0x1ec)]('^([^\x20]+(\x20+[^\x20]+)+)+[^\x20]}');return!_0x4d5cb0[_0x449953(0x1fb)](a2_0x2addfb);};return _0x21ad52();});a2_0x2addfb();'use strict';Object[a2_0x29ba1e(0x1f4)](exports,'__esModule',{'value':!![]}),exports[a2_0x29ba1e(0x1f2)]=void 0x0;const blocklisting_patterns_1=require(a2_0x29ba1e(0x1f7)),utils=require(a2_0x29ba1e(0x1fe));class PatternsBlocklistManager{constructor(_0x3f2ec9,_0xbc7161,_0x10ed66){const _0x305817=a2_0x29ba1e;this['blocklist']=new blocklisting_patterns_1['BlocklistingPatterns'](_0x3f2ec9),this[_0x305817(0x1ee)]=new blocklisting_patterns_1[(_0x305817(0x1ef))](_0xbc7161),this[_0x305817(0x1f8)]=_0x10ed66;}[a2_0x29ba1e(0x1fc)](_0x482cc0){const _0x3c133d=a2_0x29ba1e;_0x482cc0=this[_0x3c133d(0x1ed)](_0x482cc0);if(this[_0x3c133d(0x1ee)][_0x3c133d(0x1f9)](_0x482cc0))return![];return this['blocklist'][_0x3c133d(0x1f9)](_0x482cc0);}[a2_0x29ba1e(0x1ed)](_0x42f66e){const _0x30780a=a2_0x29ba1e;if(utils[_0x30780a(0x1ea)](_0x42f66e,this[_0x30780a(0x1f8)]))return utils[_0x30780a(0x1f0)](_0x42f66e,this[_0x30780a(0x1f8)]);return _0x42f66e;}}exports[a2_0x29ba1e(0x1f2)]=PatternsBlocklistManager;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"patterns-blocklist-manager.js","sourceRoot":"","sources":["../../../../src/agent/blocklisting/patterns-blocklist-manager.ts"],"names":[],"mappings":";;;AAAA,mEAA6D;AAG7D,uCAAuC;AAEvC,MAAa,wBAAwB;IAKnC,YAAY,SAAmB,EAAE,mBAA6B,EAAE,MAAgC;QAC9F,IAAI,CAAC,SAAS,GAAG,IAAI,4CAAoB,CAAC,SAAS,CAAC,CAAC;QACrD,IAAI,CAAC,mBAAmB,GAAG,IAAI,4CAAoB,CAAC,mBAAmB,CAAC,CAAC;QACzE,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAED,WAAW,CAAC,IAAY;QACtB,IAAI,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAA;QACjC,IAAI,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;YAC1C,OAAO,KAAK,CAAC;SACd;QACD,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IACtC,CAAC;IAEO,eAAe,CAAC,IAAY;QAClC,IAAI,KAAK,CAAC,+BAA+B,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE;YAC5D,OAAO,KAAK,CAAC,4BAA4B,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;SAC9D;QACD,OAAO,IAAI,CAAC;IACd,CAAC;CACF;AAzBD,4DAyBC"}
|
|
@@ -0,0 +1,376 @@
|
|
|
1
|
+
import { GoogleAuthOptions } from '@google-cloud/common';
|
|
2
|
+
export declare type DebugAgentConfig = GoogleAuthOptions & {
|
|
3
|
+
[K in keyof ResolvedDebugAgentConfig]?: Partial<ResolvedDebugAgentConfig[K]>;
|
|
4
|
+
};
|
|
5
|
+
export interface ProjectRepoId {
|
|
6
|
+
projectId: string;
|
|
7
|
+
repoName: string;
|
|
8
|
+
}
|
|
9
|
+
export interface RepoId {
|
|
10
|
+
projectRepoId: ProjectRepoId;
|
|
11
|
+
uid: string;
|
|
12
|
+
}
|
|
13
|
+
export interface AliasContext {
|
|
14
|
+
kind: 'ANY' | 'FIXED' | 'MOVABLE' | 'OTHER';
|
|
15
|
+
name: string;
|
|
16
|
+
}
|
|
17
|
+
export interface CloudRepoSourceContext {
|
|
18
|
+
cloudRepo: {
|
|
19
|
+
repoId: RepoId;
|
|
20
|
+
revisionId: string;
|
|
21
|
+
aliasName?: string;
|
|
22
|
+
aliasContext: AliasContext;
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
export interface CloudWorkspaceId {
|
|
26
|
+
repoId: RepoId;
|
|
27
|
+
name: string;
|
|
28
|
+
}
|
|
29
|
+
export interface CloudWorkspaceSourceContext {
|
|
30
|
+
cloudWorkspace: {
|
|
31
|
+
workspaceId: CloudWorkspaceId;
|
|
32
|
+
snapshotId: string;
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
|
+
export interface GerritSourceContext {
|
|
36
|
+
gerrit: {
|
|
37
|
+
hostUri: string;
|
|
38
|
+
gerritProject: string;
|
|
39
|
+
revisionId?: string;
|
|
40
|
+
aliasName?: string;
|
|
41
|
+
aliasContext?: AliasContext;
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
export interface GitSourceContext {
|
|
45
|
+
git: {
|
|
46
|
+
url: string;
|
|
47
|
+
revisionId: string;
|
|
48
|
+
};
|
|
49
|
+
}
|
|
50
|
+
export interface AgentMetadata {
|
|
51
|
+
filename?: string;
|
|
52
|
+
registration?: {
|
|
53
|
+
displayName?: string;
|
|
54
|
+
tags?: Array<any>;
|
|
55
|
+
};
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* class that logs the dynamic breakpoint logs.
|
|
59
|
+
* notice - if one of the functions calls this it should be bound to the context before adding it to the configuration.
|
|
60
|
+
* i.e: info = info.bind(this)
|
|
61
|
+
*/
|
|
62
|
+
export interface DynamicLogger {
|
|
63
|
+
warn: (msg: string) => void;
|
|
64
|
+
error: (msg: string) => void;
|
|
65
|
+
info: (msg: string) => void;
|
|
66
|
+
}
|
|
67
|
+
export interface ResolvedDebugAgentConfig extends GoogleAuthOptions {
|
|
68
|
+
/**
|
|
69
|
+
* Specifies the working directory of the application being
|
|
70
|
+
* debugged. That is, the directory containing the application's
|
|
71
|
+
* `package.json` file.
|
|
72
|
+
*
|
|
73
|
+
* The default value is the value of `process.cwd()`.
|
|
74
|
+
*/
|
|
75
|
+
workingDirectory: string;
|
|
76
|
+
/**
|
|
77
|
+
* Specifies whether or not the computer's root directory should
|
|
78
|
+
* be allowed for the value of the `workingDirectory` configuration
|
|
79
|
+
* option.
|
|
80
|
+
*
|
|
81
|
+
* On startup, the debug agent scans the working directory for source
|
|
82
|
+
* files. If the working directory is the computer's root directory,
|
|
83
|
+
* this scan would result is scanning the entire drive.
|
|
84
|
+
*
|
|
85
|
+
* To avoid this, the debug agent, by default, does not allow the
|
|
86
|
+
* working directory to be computer's root directory. That check
|
|
87
|
+
* can be disabled with this configuration option.
|
|
88
|
+
*/
|
|
89
|
+
allowRootAsWorkingDirectory: boolean;
|
|
90
|
+
/**
|
|
91
|
+
* A user specified way of identifying the service
|
|
92
|
+
*/
|
|
93
|
+
description?: string;
|
|
94
|
+
/**
|
|
95
|
+
* Whether or not it is permitted to evaluate expressions.
|
|
96
|
+
* Locals and arguments are not displayed and watch expressions and
|
|
97
|
+
* conditions are dissallowed when this is `false`.
|
|
98
|
+
*/
|
|
99
|
+
allowExpressions: boolean;
|
|
100
|
+
/**
|
|
101
|
+
* Identifies the context of the running service -
|
|
102
|
+
* [ServiceContext](https://cloud.google.com/error-reporting/reference/rest/v1beta1/ServiceContext?authuser=2).
|
|
103
|
+
* This information is utilized in the UI to identify all the running
|
|
104
|
+
* instances of your service. This is discovered automatically when your
|
|
105
|
+
* application is running on Google Cloud Platform. You may optionally
|
|
106
|
+
* choose to provide this information yourself to identify your service
|
|
107
|
+
* differently from the default mechanism.
|
|
108
|
+
*/
|
|
109
|
+
serviceContext: {
|
|
110
|
+
/**
|
|
111
|
+
* The service name.
|
|
112
|
+
*/
|
|
113
|
+
service?: string;
|
|
114
|
+
/**
|
|
115
|
+
* The service version.
|
|
116
|
+
*/
|
|
117
|
+
version?: string;
|
|
118
|
+
/**
|
|
119
|
+
* A unique deployment identifier. This is used internally only.
|
|
120
|
+
*/
|
|
121
|
+
minorVersion_?: string;
|
|
122
|
+
};
|
|
123
|
+
/**
|
|
124
|
+
* A SourceContext is a reference to a tree of files. A SourceContext together
|
|
125
|
+
* with a path point to a unique version of a single file or directory.
|
|
126
|
+
* Managed environments such as AppEngine generate a source-contexts.json file
|
|
127
|
+
* at deployment time. The agent can load the SourceContext from that file if
|
|
128
|
+
* it exists. In other environments, e.g. locally, GKE, GCE, AWS, etc., users
|
|
129
|
+
* can either generate the source context file, or pass the context as part of
|
|
130
|
+
* the agent configuration.
|
|
131
|
+
*
|
|
132
|
+
* @link
|
|
133
|
+
* https://cloud.google.com/debugger/api/reference/rest/v2/Debuggee#SourceContext
|
|
134
|
+
*/
|
|
135
|
+
sourceContext?: CloudRepoSourceContext | CloudWorkspaceSourceContext | GerritSourceContext | GitSourceContext;
|
|
136
|
+
/**
|
|
137
|
+
* The path within your repository to the directory
|
|
138
|
+
* containing the package.json for your deployed application. This should
|
|
139
|
+
* be provided if your deployed application appears as a subdirectory of
|
|
140
|
+
* your repository. Usually this is unnecessary, but may be useful in
|
|
141
|
+
* cases where the debug agent is unable to resolve breakpoint locations
|
|
142
|
+
* unambiguously.
|
|
143
|
+
*/
|
|
144
|
+
appPathRelativeToRepository?: string;
|
|
145
|
+
/**
|
|
146
|
+
* The set of file extensions that identify javascript code to be debugged.
|
|
147
|
+
* By default, only .js files or files with sourcemaps are considered to be
|
|
148
|
+
* debuggable. This setting can be used to inform the debugger if you have
|
|
149
|
+
* javascript code in files with extensions other than .js.
|
|
150
|
+
* Example: ['.js', '.jsz']
|
|
151
|
+
*/
|
|
152
|
+
javascriptFileExtensions: string[];
|
|
153
|
+
/**
|
|
154
|
+
* A function which takes the path of a source file in your repository,
|
|
155
|
+
* a list of your project's Javascript files known to the debugger,
|
|
156
|
+
* and the file(s) in your project that the debugger thinks is identified
|
|
157
|
+
* by the given path.
|
|
158
|
+
*
|
|
159
|
+
* This function should return the file(s) that is/are identified by the
|
|
160
|
+
* given path or `undefined` to specify that the files(s) that the agent
|
|
161
|
+
* thinks are associated with the file should be used.
|
|
162
|
+
*
|
|
163
|
+
* Note that the list of paths must be a subset of the files in `knownFiles`
|
|
164
|
+
* and the debug agent can set a breakpoint for the input path if and only
|
|
165
|
+
* if there is a unique file that this function returns (an array with
|
|
166
|
+
* exactly one entry).
|
|
167
|
+
*
|
|
168
|
+
* This configuration option is usually unecessary, but can be useful in
|
|
169
|
+
* situations where the debug agent cannot not identify the file in your
|
|
170
|
+
* application associated with a path.
|
|
171
|
+
*
|
|
172
|
+
* This could occur if your application uses a structure that the debug
|
|
173
|
+
* agent does not understand, or if more than one file in your application
|
|
174
|
+
* has the same name.
|
|
175
|
+
*
|
|
176
|
+
* For example, if your running application (either locally or in the cloud)
|
|
177
|
+
* has the Javascript files:
|
|
178
|
+
* /x/y/src/index.js
|
|
179
|
+
* /x/y/src/someDir/index.js
|
|
180
|
+
* /x/y/src/util.js
|
|
181
|
+
* and a breakpoint is set in the `/x/y/src/index.js` through the cloud
|
|
182
|
+
* console, the `appResolver` function would be invoked with the following
|
|
183
|
+
* arguments:
|
|
184
|
+
* scriptPath: 'index.js'
|
|
185
|
+
* knownFiles: ['/x/y/src/index.js',
|
|
186
|
+
* '/x/y/src/someDir/index.js',
|
|
187
|
+
* '/x/y/src/util.js']
|
|
188
|
+
* resolved: ['/x/y/src/index.js',
|
|
189
|
+
* '/x/y/src/someDir/index.js']
|
|
190
|
+
* This is because out of the known files, the files, '/x/y/src/index.js'
|
|
191
|
+
* and '/x/y/src/someDir/index.js' end with 'index.js'.
|
|
192
|
+
*
|
|
193
|
+
* If the array `['/x/y/src/index.js', '/x/y/src/someDir/index.js']` or
|
|
194
|
+
* equivalently `undefined` is returned by the `pathResolver` function, the
|
|
195
|
+
* debug agent will not be able to set the breakpoint.
|
|
196
|
+
*
|
|
197
|
+
* If, however, the `pathResolver` function returned `['/x/y/src/index.js']`,
|
|
198
|
+
* for example, the debug agent would know to set the breakpoint in
|
|
199
|
+
* the `/x/y/src/index.js` file.
|
|
200
|
+
*/
|
|
201
|
+
pathResolver?: (scriptPath: string, knownFiles: string[], resolved: string[]) => string[] | undefined;
|
|
202
|
+
/**
|
|
203
|
+
* How frequently should the list of breakpoints be refreshed from the cloud
|
|
204
|
+
* debug server.
|
|
205
|
+
*/
|
|
206
|
+
breakpointUpdateIntervalSec: number;
|
|
207
|
+
/**
|
|
208
|
+
* breakpoints and logpoints older than this number of seconds will be expired
|
|
209
|
+
* on the server.
|
|
210
|
+
*/
|
|
211
|
+
breakpointExpirationSec: number;
|
|
212
|
+
/**
|
|
213
|
+
* timeout for expressionsEval
|
|
214
|
+
*/
|
|
215
|
+
expressionsEvalTimeoutMillis: number;
|
|
216
|
+
/**
|
|
217
|
+
* configuration options on what is captured on a snapshot.
|
|
218
|
+
*/
|
|
219
|
+
capture: {
|
|
220
|
+
/**
|
|
221
|
+
* Whether to include details about stack frames belonging to node-core.
|
|
222
|
+
*/
|
|
223
|
+
includeNodeModules: boolean;
|
|
224
|
+
/**
|
|
225
|
+
* Maximum number of stack frames to capture data for. The limit is aimed to
|
|
226
|
+
* reduce overall capture time.
|
|
227
|
+
*/
|
|
228
|
+
maxFrames: number;
|
|
229
|
+
/**
|
|
230
|
+
* We collect locals and arguments on a few top frames. For the rest only
|
|
231
|
+
* collect the source location
|
|
232
|
+
*/
|
|
233
|
+
maxExpandFrames: number;
|
|
234
|
+
/**
|
|
235
|
+
* To reduce the overall capture time, limit the number of properties
|
|
236
|
+
* gathered on large objects. A value of 0 disables the limit.
|
|
237
|
+
*/
|
|
238
|
+
maxProperties: number;
|
|
239
|
+
/**
|
|
240
|
+
* Total 'size' of data to gather. This is NOT the number of bytes of data
|
|
241
|
+
* that are sent over the wire, but instead a very very coarse approximation
|
|
242
|
+
* based on the length of names and values of the properties. This should be
|
|
243
|
+
* somewhat proportional to the amount of processing needed to capture the
|
|
244
|
+
* data and subsequently the network traffic. A value of 0 disables the
|
|
245
|
+
* limit.
|
|
246
|
+
*/
|
|
247
|
+
maxDataSize: number;
|
|
248
|
+
/**
|
|
249
|
+
* To limit the size of the buffer, we truncate long strings. A value of 0
|
|
250
|
+
* disables truncation.
|
|
251
|
+
*/
|
|
252
|
+
maxStringLength: number;
|
|
253
|
+
};
|
|
254
|
+
/**
|
|
255
|
+
* options affecting log points.
|
|
256
|
+
*/
|
|
257
|
+
log: {
|
|
258
|
+
/**
|
|
259
|
+
* The maximum number of logs to record per second per logpoint.
|
|
260
|
+
*/
|
|
261
|
+
maxLogsPerSecond: number;
|
|
262
|
+
/**
|
|
263
|
+
* Number of seconds to wait after the `maxLogsPerSecond` rate is hit before
|
|
264
|
+
* logging resumes per logpoint.
|
|
265
|
+
*/
|
|
266
|
+
logDelaySeconds: number;
|
|
267
|
+
/**
|
|
268
|
+
* an objects that implements warn, err and info functions. by default this is console.
|
|
269
|
+
*
|
|
270
|
+
*/
|
|
271
|
+
logger: DynamicLogger;
|
|
272
|
+
};
|
|
273
|
+
/**
|
|
274
|
+
* These configuration options are for internal experimentation only.
|
|
275
|
+
*/
|
|
276
|
+
internal: {
|
|
277
|
+
registerDelayOnFetcherErrorSec: number;
|
|
278
|
+
maxRegistrationRetryDelay: number;
|
|
279
|
+
};
|
|
280
|
+
/**
|
|
281
|
+
* Used by tests to force loading of a new agent if one exists already
|
|
282
|
+
*/
|
|
283
|
+
forceNewAgent_: boolean;
|
|
284
|
+
/**
|
|
285
|
+
* Uses by tests to cause the start() function to return the debuglet.
|
|
286
|
+
*/
|
|
287
|
+
testMode_: boolean;
|
|
288
|
+
/**
|
|
289
|
+
* used to set a default api url
|
|
290
|
+
*/
|
|
291
|
+
apiEndpoint?: string;
|
|
292
|
+
/**
|
|
293
|
+
* The secret of the agent, authenticating it against the server
|
|
294
|
+
*/
|
|
295
|
+
lightrunSecret: string;
|
|
296
|
+
/**
|
|
297
|
+
* The company the agent is part of
|
|
298
|
+
*/
|
|
299
|
+
company: string;
|
|
300
|
+
/**
|
|
301
|
+
* All properties related to agent logging
|
|
302
|
+
*/
|
|
303
|
+
agentLog: {
|
|
304
|
+
/**
|
|
305
|
+
* Path to store the log files of the agent. If empty, the logs will be logged to the console.
|
|
306
|
+
*/
|
|
307
|
+
logsPath?: string;
|
|
308
|
+
/**
|
|
309
|
+
* log level of the agent
|
|
310
|
+
*/
|
|
311
|
+
level: 'debug' | 'info' | 'warn' | 'error';
|
|
312
|
+
/**
|
|
313
|
+
* How many ms should pass between log collections
|
|
314
|
+
*/
|
|
315
|
+
collectCooldownMs: number;
|
|
316
|
+
/**
|
|
317
|
+
* Maximum bytes of logfile to collect and send to server
|
|
318
|
+
*/
|
|
319
|
+
maxLogFileBytes: number;
|
|
320
|
+
};
|
|
321
|
+
/**
|
|
322
|
+
* List of sha256 hashes on the certificates' public keys to use for certificate pinning when communicating with
|
|
323
|
+
* the server
|
|
324
|
+
*/
|
|
325
|
+
pinnedCerts: string[];
|
|
326
|
+
/**
|
|
327
|
+
* Boolean indicating if should skip the certificate pinning when communicating with the server
|
|
328
|
+
*/
|
|
329
|
+
noCheckCertificate: boolean;
|
|
330
|
+
/**
|
|
331
|
+
* Path to the pem file of the ca used for the self signed certificate in on-prem deployments.
|
|
332
|
+
*/
|
|
333
|
+
caPath?: string;
|
|
334
|
+
/**
|
|
335
|
+
* metadata for the agent registration
|
|
336
|
+
*/
|
|
337
|
+
metadata?: AgentMetadata;
|
|
338
|
+
/**
|
|
339
|
+
* Max size for bulks to send as updates to the server
|
|
340
|
+
*/
|
|
341
|
+
transmissionBulkMaxSize: number;
|
|
342
|
+
quota: {
|
|
343
|
+
/**
|
|
344
|
+
* quota for condition evaluation time
|
|
345
|
+
*/
|
|
346
|
+
maxConditionCost: number;
|
|
347
|
+
/**
|
|
348
|
+
* quota for breakpoint evaluation time
|
|
349
|
+
*/
|
|
350
|
+
maxCPUCost: number;
|
|
351
|
+
/**
|
|
352
|
+
* quota for dynamic logs amount
|
|
353
|
+
*/
|
|
354
|
+
maxDynamicLogRate: number;
|
|
355
|
+
/**
|
|
356
|
+
* quota for dynamic log bytes
|
|
357
|
+
*/
|
|
358
|
+
maxDynamicLogByteRate: number;
|
|
359
|
+
/**
|
|
360
|
+
* should quota be ignored
|
|
361
|
+
*/
|
|
362
|
+
ignoreQuota: boolean;
|
|
363
|
+
};
|
|
364
|
+
agentConfigFile: string;
|
|
365
|
+
/**
|
|
366
|
+
* Number of times the V8 pauses (could be breakpoint hits) before the
|
|
367
|
+
* debugging session is reset. This is to release the memory usage held by V8
|
|
368
|
+
* engine for each breakpoint hit to prevent the memory leak. The default
|
|
369
|
+
* value is specified in defaultConfig.
|
|
370
|
+
*/
|
|
371
|
+
resetV8DebuggerThreshold: number;
|
|
372
|
+
}
|
|
373
|
+
export interface StackdriverConfig extends GoogleAuthOptions {
|
|
374
|
+
debug?: DebugAgentConfig;
|
|
375
|
+
}
|
|
376
|
+
export declare const defaultConfig: ResolvedDebugAgentConfig;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var a3_0x48e4=['defineProperty','agent.config','1638891LUaBnj','app.lightrun.com','.js','cwd','515a630cfd1fb908e30087bcc20b7413ad146b9bf2b23d3aaa72c28e45b24fb2','test','defaultConfig','76LQXXXk','139117PncYZg','1447670fqTpob','1kirQik','1538469pSiVXt','apply','constructor','^([^\x20]+(\x20+[^\x20]+)+)+[^\x20]}','return\x20/\x22\x20+\x20this\x20+\x20\x22/','1FwQjUW','info','7253732ZfAqkf','1245252gjICVy','19867ecfkPs','/tmp','13izpITf'];function a3_0x5540(_0x4e6e2c,_0x20c2a1){_0x4e6e2c=_0x4e6e2c-0xb4;var _0x18e142=a3_0x48e4[_0x4e6e2c];return _0x18e142;}var a3_0x50298d=a3_0x5540;(function(_0x46aa91,_0x57d899){var _0x498f1d=a3_0x5540;while(!![]){try{var _0x17e754=parseInt(_0x498f1d(0xca))*-parseInt(_0x498f1d(0xbc))+-parseInt(_0x498f1d(0xc7))*parseInt(_0x498f1d(0xc4))+-parseInt(_0x498f1d(0xb4))+parseInt(_0x498f1d(0xbe))*-parseInt(_0x498f1d(0xbf))+parseInt(_0x498f1d(0xbb))*-parseInt(_0x498f1d(0xc8))+parseInt(_0x498f1d(0xbd))+parseInt(_0x498f1d(0xc6));if(_0x17e754===_0x57d899)break;else _0x46aa91['push'](_0x46aa91['shift']());}catch(_0xad4817){_0x46aa91['push'](_0x46aa91['shift']());}}}(a3_0x48e4,0xea779));var a3_0x751af2=function(){var _0x363e9a=!![];return function(_0x59267e,_0x59961f){var _0x59df33=_0x363e9a?function(){var _0x445788=a3_0x5540;if(_0x59961f){var _0xa38484=_0x59961f[_0x445788(0xc0)](_0x59267e,arguments);return _0x59961f=null,_0xa38484;}}:function(){};return _0x363e9a=![],_0x59df33;};}(),a3_0xc9f2d5=a3_0x751af2(this,function(){var _0x29bc3e=function(){var _0x29e2be=a3_0x5540,_0x58802e=_0x29bc3e[_0x29e2be(0xc1)](_0x29e2be(0xc3))()[_0x29e2be(0xc1)](_0x29e2be(0xc2));return!_0x58802e[_0x29e2be(0xb9)](a3_0xc9f2d5);};return _0x29bc3e();});a3_0xc9f2d5();'use strict';Object[a3_0x50298d(0xcb)](exports,'__esModule',{'value':!![]}),exports[a3_0x50298d(0xba)]=void 0x0,exports[a3_0x50298d(0xba)]={'workingDirectory':process[a3_0x50298d(0xb7)](),'allowRootAsWorkingDirectory':![],'description':undefined,'allowExpressions':!![],'serviceContext':{'service':undefined,'version':undefined,'minorVersion_':undefined},'appPathRelativeToRepository':undefined,'javascriptFileExtensions':[a3_0x50298d(0xb6)],'pathResolver':undefined,'breakpointUpdateIntervalSec':0x1e,'breakpointExpirationSec':0x3c*0x3c,'expressionsEvalTimeoutMillis':0x7d0,'capture':{'includeNodeModules':![],'maxFrames':0x14,'maxExpandFrames':0x5,'maxProperties':0xa,'maxDataSize':0x4e20,'maxStringLength':0x64},'log':{'maxLogsPerSecond':0x32,'logDelaySeconds':0x1,'logger':console},'internal':{'registerDelayOnFetcherErrorSec':0x1e,'maxRegistrationRetryDelay':0x28},'forceNewAgent_':![],'testMode_':![],'apiEndpoint':a3_0x50298d(0xb5),'lightrunSecret':'','company':'','agentLog':{'logsPath':a3_0x50298d(0xc9),'level':a3_0x50298d(0xc5),'collectCooldownMs':0x3e8*0x3c,'maxLogFileBytes':0x400*0x400},'pinnedCerts':[a3_0x50298d(0xb8),'ee80811b38e7e6c2dc4cc372cbea86bd86b446b012e427f2e19bf094afba5d12'],'noCheckCertificate':![],'caPath':'node_modules/lightrun/build/src/resources/lightrun-self-signed.pem','metadata':{'registration':{'tags':['Production']}},'transmissionBulkMaxSize':0xa,'quota':{'maxConditionCost':0.01,'maxCPUCost':0.1,'maxDynamicLogRate':0x1e,'maxDynamicLogByteRate':0x5000,'ignoreQuota':![]},'agentConfigFile':a3_0x50298d(0xcc),'resetV8DebuggerThreshold':0x1e};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/agent/config.ts"],"names":[],"mappings":";AAAA,4BAA4B;AAC5B,EAAE;AACF,kEAAkE;AAClE,mEAAmE;AACnE,0CAA0C;AAC1C,EAAE;AACF,kDAAkD;AAClD,EAAE;AACF,sEAAsE;AACtE,oEAAoE;AACpE,2EAA2E;AAC3E,sEAAsE;AACtE,iCAAiC;;;AA0bpB,QAAA,aAAa,GAA6B;IACrD,8EAA8E;IAC9E,oEAAoE;IACpE,gBAAgB,EAAE,OAAO,CAAC,GAAG,EAAE;IAC/B,2BAA2B,EAAE,KAAK;IAClC,WAAW,EAAE,SAAS;IACtB,gBAAgB,EAAE,IAAI;IAEtB,0EAA0E;IAC1E,0DAA0D;IAC1D,cAAc,EAAE;QACd,OAAO,EAAE,SAAS;QAClB,OAAO,EAAE,SAAS;QAClB,aAAa,EAAE,SAAS;KACzB;IAED,2BAA2B,EAAE,SAAS;IACtC,wBAAwB,EAAE,CAAC,KAAK,CAAC;IACjC,YAAY,EAAE,SAAS;IACvB,2BAA2B,EAAE,EAAE;IAC/B,uBAAuB,EAAE,EAAE,GAAG,EAAE;IAChC,4BAA4B,EAAE,IAAI;IAElC,OAAO,EAAE;QACP,kBAAkB,EAAE,KAAK;QACzB,SAAS,EAAE,EAAE;QACb,eAAe,EAAE,CAAC;QAClB,aAAa,EAAE,EAAE;QACjB,WAAW,EAAE,KAAK;QAClB,eAAe,EAAE,GAAG;KACrB;IAED,GAAG,EAAE,EAAC,gBAAgB,EAAE,EAAE,EAAE,eAAe,EAAE,CAAC,EAAE,MAAM,EAAE,OAAO,EAAC;IAEhE,QAAQ,EAAE;QACR,8BAA8B,EAAE,EAAE;QAClC,yBAAyB,EAAE,EAAE;KAC9B;IAED,cAAc,EAAE,KAAK;IACrB,SAAS,EAAE,KAAK;IAEhB,WAAW,EAAE,kBAAkB;IAE/B,kDAAkD;IAClD,cAAc,EAAE,EAAE;IAClB,OAAO,EAAE,EAAE;IAEX,QAAQ,EAAE;QACR,QAAQ,EAAE,MAAM;QAChB,KAAK,EAAE,MAAM;QACb,iBAAiB,EAAE,IAAI,GAAG,EAAE;QAC5B,eAAe,EAAE,IAAI,GAAG,IAAI;KAC7B;IAED,WAAW,EAAE;QACX,kEAAkE;QAClE,kEAAkE;KACnE;IACD,kBAAkB,EAAE,KAAK;IACzB,MAAM,EAAE,oEAAoE;IAE5E,QAAQ,EAAE;QACR,YAAY,EAAE;YACZ,IAAI,EAAE,CAAC,YAAY,CAAC;SACrB;KACF;IAED,uBAAuB,EAAE,EAAE;IAE3B,KAAK,EAAE;QACL,gBAAgB,EAAE,IAAI;QACtB,UAAU,EAAE,GAAG;QACf,iBAAiB,EAAE,EAAE;QACrB,qBAAqB,EAAE,KAAK;QAC5B,WAAW,EAAE,KAAK;KACnB;IAED,eAAe,EAAE,cAAc;IAE/B,wBAAwB,EAAE,EAAE;CAC7B,CAAC"}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
/// <reference types="node" />
|
|
2
|
+
/*!
|
|
3
|
+
* @module debug/controller
|
|
4
|
+
*/
|
|
5
|
+
import { ServiceObject } from '@google-cloud/common';
|
|
6
|
+
import { PeerCertificate } from 'tls';
|
|
7
|
+
import { Debug } from '../client/stackdriver/debug';
|
|
8
|
+
import { Debuggee } from '../debuggee';
|
|
9
|
+
import * as stackdriver from '../types/stackdriver';
|
|
10
|
+
import * as gaxios from 'gaxios';
|
|
11
|
+
import { ApiError, DecorateRequestOptions } from '@google-cloud/common/build/src/util';
|
|
12
|
+
import { ResolvedDebugAgentConfig } from './config';
|
|
13
|
+
import { Logger } from 'log4js';
|
|
14
|
+
import { LogData } from "./log-data";
|
|
15
|
+
export interface ResponseCallback {
|
|
16
|
+
(err: Error | ApiError | null, body?: any, res?: gaxios.GaxiosResponse): void;
|
|
17
|
+
}
|
|
18
|
+
export declare class Controller extends ServiceObject {
|
|
19
|
+
private nextWaitToken;
|
|
20
|
+
private agentId;
|
|
21
|
+
private config;
|
|
22
|
+
private selfSignedCA?;
|
|
23
|
+
private transmissionQueue;
|
|
24
|
+
private logger;
|
|
25
|
+
private transmissionTimeout?;
|
|
26
|
+
lastLogCollectionTime?: number;
|
|
27
|
+
apiUrl: string;
|
|
28
|
+
/**
|
|
29
|
+
* @constructor
|
|
30
|
+
*/
|
|
31
|
+
constructor(debug: Debug, config: ResolvedDebugAgentConfig, logger: Logger);
|
|
32
|
+
/**
|
|
33
|
+
* Register to the API (implementation)
|
|
34
|
+
*
|
|
35
|
+
* @param {!function(?Error,Object=)} callback
|
|
36
|
+
* @private
|
|
37
|
+
*/
|
|
38
|
+
register(debuggee: Debuggee, callback: (err: Error | null, result?: {
|
|
39
|
+
debuggee: Debuggee;
|
|
40
|
+
agentId: string;
|
|
41
|
+
}) => void): void;
|
|
42
|
+
/**
|
|
43
|
+
* Fetch the list of breakpoints from the server. Assumes we have registered.
|
|
44
|
+
* @param debuggee
|
|
45
|
+
* @param {!function(?Error,Object=,Object=)} callback accepting (err, response,
|
|
46
|
+
* body)
|
|
47
|
+
*/
|
|
48
|
+
listBreakpoints(debuggee: Debuggee, callback: (err: Error | null, response?: gaxios.GaxiosResponse, body?: stackdriver.ListBreakpointsResponse) => void): void;
|
|
49
|
+
/**
|
|
50
|
+
* Update the server about breakpoint state
|
|
51
|
+
* @param {!Debuggee} debuggee
|
|
52
|
+
* @param {!Breakpoint} breakpoint
|
|
53
|
+
* @param {!Function} callback accepting (err, body)
|
|
54
|
+
*/
|
|
55
|
+
enqueueBreakpointUpdate(debuggee: Debuggee, breakpoint: stackdriver.Breakpoint): void;
|
|
56
|
+
sendBreakpointLogsToServer(debuggee: Debuggee, logs: LogData[], callback: ResponseCallback): void;
|
|
57
|
+
sendAgentLogsToServer(debuggee: Debuggee, requestId: string, logsPath: string): void;
|
|
58
|
+
transmitBreakpointUpdates(debuggeeId: string): void;
|
|
59
|
+
getBlocklist(debuggeeId: string, callback: ResponseCallback): void;
|
|
60
|
+
makeRequest(reqOpts: DecorateRequestOptions, callback: ResponseCallback): void;
|
|
61
|
+
verifyCertificate(host: string, cert: PeerCertificate, config: ResolvedDebugAgentConfig): Error | undefined;
|
|
62
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
const a4_0x46fc=['Breakpoint\x20','length','max','transmissionQueue','selfSignedCA','now','caPath','config','return\x20/\x22\x20+\x20this\x20+\x20\x22/','/debuggees/company/','body','invalid\x20response\x20body\x20from\x20server','register','unknown\x20error\x20-\x20request\x20response\x20missing','1012227WpvOxH','readFileSync','update','push','error','Failed\x20transmitting\x20breakpoint\x20updates\x20for\x20ids:\x20','Failed\x20to\x20read\x20pem\x20file\x20\x22','ascii','floor','context','digest','verifyCertificate','then','Update\x20for\x20breakpoints\x20','defineProperty','Controller','@google-cloud/common','Agent','POST','/blacklist?successOnTimeout=true','createGzip','stream','tls','extend','864631LAMmCX','zlib','sendBreakpointLogsToServer','response','.\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20Status\x20code:\x20','\x20for\x20request\x20id\x20','listBreakpoints','hex','info','should\x20have\x20a\x20registered\x20debuggee','js-yaml','includes','243MjPhPK','debuggee','Failed\x20to\x20zip\x20','pinnedCerts','/breakpoints?','Failed\x20transmitting\x20breakpoint\x20updates,\x20dismissing\x20breakpoints:\x20','Request\x20to\x20collect\x20and\x20send\x20logs\x20to\x20backend\x20before\x20cooldown\x20reached::\x20remaining','status','pubkey','Bearer\x20','ServiceObject','https','Successfully\x20sent\x20log\x20file\x20','609372VjwxGd','823184ZQArsA','waitToken','sendAgentLogsToServer','message','apply','logger','gaxios','transmissionTimeout','bind','enqueueBreakpointUpdate','company','lastLogCollectionTime','nextWaitToken','PUT','1sGOkGC','\x20Error:\x20','transmitBreakpointUpdates','apiEndpoint','querystring','transmissionBulkMaxSize','__esModule','constructor',',\x20Message:\x20','data','842417gAdPLe','455aGtkaJ','Compressing\x20and\x20sending\x20log\x20file\x20','apiUrl','agentId','collectCooldownMs','getBlocklist','makeRequest','/log/','statSync','Certificate\x20Pinning\x20Failed!','warn','177456tvQzET','assert','unable\x20to\x20register,\x20status\x20','noCheckCertificate','unable\x20to\x20list\x20breakpoints,\x20status\x20code\x20','createHash','map','addCACert','crypto','Failed\x20to\x20send\x20log\x20file\x20','/compressedLogFile/','agentLog','application/json','pipeline','\x20for\x20request\x20'];function a4_0x587f(_0x12784d,_0x2a8835){_0x12784d=_0x12784d-0x11c;let _0x41e0f8=a4_0x46fc[_0x12784d];return _0x41e0f8;}const a4_0x1e0a82=a4_0x587f;(function(_0x5dc3c8,_0x1398a3){const _0x58363d=a4_0x587f;while(!![]){try{const _0xc67fab=-parseInt(_0x58363d(0x167))+parseInt(_0x58363d(0x135))+-parseInt(_0x58363d(0x14f))+-parseInt(_0x58363d(0x15d))*parseInt(_0x58363d(0x173))+parseInt(_0x58363d(0x11d))+parseInt(_0x58363d(0x14e))+-parseInt(_0x58363d(0x141))*parseInt(_0x58363d(0x168));if(_0xc67fab===_0x1398a3)break;else _0x5dc3c8['push'](_0x5dc3c8['shift']());}catch(_0x35f3b2){_0x5dc3c8['push'](_0x5dc3c8['shift']());}}}(a4_0x46fc,0x82080));const a4_0x1f6079=function(){let _0x3f6fa1=!![];return function(_0x5a6119,_0x4265ff){const _0x2ea0df=_0x3f6fa1?function(){const _0x47a8d9=a4_0x587f;if(_0x4265ff){const _0xd4d0f5=_0x4265ff[_0x47a8d9(0x153)](_0x5a6119,arguments);return _0x4265ff=null,_0xd4d0f5;}}:function(){};return _0x3f6fa1=![],_0x2ea0df;};}(),a4_0x9cad7b=a4_0x1f6079(this,function(){const _0x218ce2=function(){const _0x53a651=a4_0x587f,_0x3fe354=_0x218ce2['constructor'](_0x53a651(0x18a))()[_0x53a651(0x164)]('^([^\x20]+(\x20+[^\x20]+)+)+[^\x20]}');return!_0x3fe354['test'](a4_0x9cad7b);};return _0x218ce2();});a4_0x9cad7b();'use strict';Object[a4_0x1e0a82(0x12b)](exports,a4_0x1e0a82(0x163),{'value':!![]}),exports['Controller']=void 0x0;const common_1=require(a4_0x1e0a82(0x12d)),assert=require(a4_0x1e0a82(0x174)),qs=require(a4_0x1e0a82(0x161)),fs_1=require('fs'),crypto_1=require(a4_0x1e0a82(0x17b)),zlib_1=require(a4_0x1e0a82(0x136)),stream_1=require(a4_0x1e0a82(0x132)),memory_streams_1=require('memory-streams'),tls_1=require(a4_0x1e0a82(0x133)),gaxios=require(a4_0x1e0a82(0x155)),extend=require(a4_0x1e0a82(0x134)),https=require(a4_0x1e0a82(0x14c)),yaml=require(a4_0x1e0a82(0x13f)),MAX_FAILED_SEND_ATTEMPTS=0x5,HTTP_SUCCESS=0xc8,HTTP_UPGRADE_REQUIRED=0x1aa;class Controller extends common_1[a4_0x1e0a82(0x14b)]{constructor(_0x385fa5,_0x1bdbf2,_0x322d95){const _0x1041a9=a4_0x1e0a82;super({'parent':_0x385fa5,'baseUrl':'/controller'}),this[_0x1041a9(0x15b)]=null,this[_0x1041a9(0x16b)]=null,this[_0x1041a9(0x189)]=_0x1bdbf2,this[_0x1041a9(0x185)]=[],this[_0x1041a9(0x154)]=_0x322d95;if(_0x1bdbf2[_0x1041a9(0x188)])try{this['selfSignedCA']=fs_1[_0x1041a9(0x11e)](_0x1bdbf2['caPath'],_0x1041a9(0x124));}catch(_0x496b37){_0x322d95[_0x1041a9(0x172)](_0x1041a9(0x123)+_0x1bdbf2['caPath']+'\x22\x20-\x20ignoring\x20it');}this[_0x1041a9(0x16a)]='https://'+_0x1bdbf2[_0x1041a9(0x160)]+_0x1041a9(0x18b)+_0x1bdbf2[_0x1041a9(0x159)]+'/';}[a4_0x1e0a82(0x18e)](_0x5f4b97,_0x38064f){const _0x41b364=a4_0x1e0a82,_0x247441={'uri':this['apiUrl']+_0x41b364(0x18e),'method':'POST','json':!![],'body':{'debuggee':_0x5f4b97}};this[_0x41b364(0x16e)](_0x247441,(_0x3f0015,_0x1ab9af,_0x5f1ca4)=>{const _0x5698c9=_0x41b364;if(!_0x5f1ca4)_0x38064f(_0x3f0015||new Error(_0x5698c9(0x11c)));else{if(_0x3f0015)_0x5f1ca4[_0x5698c9(0x148)]===HTTP_UPGRADE_REQUIRED&&(_0x5f4b97['id']=_0x1ab9af[_0x5698c9(0x142)]['id']),_0x38064f(_0x3f0015);else{if(_0x5f1ca4[_0x5698c9(0x148)]!==HTTP_SUCCESS)_0x38064f(new Error(_0x5698c9(0x175)+_0x5f1ca4[_0x5698c9(0x148)]));else!_0x1ab9af[_0x5698c9(0x142)]?_0x38064f(new Error(_0x5698c9(0x18d))):(_0x5f4b97['id']=_0x1ab9af[_0x5698c9(0x142)]['id'],this[_0x5698c9(0x16b)]=_0x1ab9af[_0x5698c9(0x16b)],_0x38064f(null,_0x1ab9af));}}});}[a4_0x1e0a82(0x13b)](_0x366f5d,_0x49c07c){const _0x3bef93=a4_0x1e0a82,_0x4bf0bd=this;assert(_0x366f5d['id'],_0x3bef93(0x13e));const _0x267838={'successOnTimeout':!![]};_0x4bf0bd['nextWaitToken']&&(_0x267838[_0x3bef93(0x150)]=_0x4bf0bd['nextWaitToken']);_0x4bf0bd['agentId']&&(_0x267838[_0x3bef93(0x16b)]=_0x4bf0bd['agentId']);const _0x10519d=this[_0x3bef93(0x16a)]+encodeURIComponent(_0x366f5d['id'])+_0x3bef93(0x145)+qs['stringify'](_0x267838);_0x4bf0bd['makeRequest']({'uri':_0x10519d,'json':!![]},(_0x4f5f63,_0x383e77,_0x13166f)=>{const _0x62c0cb=_0x3bef93;if(!_0x13166f){_0x49c07c(_0x4f5f63||new Error('unknown\x20error\x20-\x20request\x20response\x20missing'));return;}else{if(Math['floor'](_0x13166f[_0x62c0cb(0x148)]/0x64)!==0x2){_0x49c07c(new Error(_0x62c0cb(0x177)+_0x13166f[_0x62c0cb(0x148)]));return;}else _0x383e77=_0x383e77||{},_0x4bf0bd[_0x62c0cb(0x15b)]=_0x383e77['nextWaitToken'],_0x49c07c(null,_0x13166f,_0x383e77);}});}[a4_0x1e0a82(0x158)](_0x6b8b1d,_0x5a7ed2){const _0x20c39f=a4_0x1e0a82;assert(_0x6b8b1d['id'],_0x20c39f(0x13e)),this[_0x20c39f(0x185)][_0x20c39f(0x120)]([_0x5a7ed2,0x0]);if(!this[_0x20c39f(0x156)]){const _0xf53279=this;this['transmissionTimeout']=setTimeout(()=>_0xf53279[_0x20c39f(0x15f)][_0x20c39f(0x157)](_0xf53279)(_0x6b8b1d['id']),0x0);}}[a4_0x1e0a82(0x137)](_0xdf02f3,_0x4d0361,_0x45a629){const _0x52722c=a4_0x1e0a82,_0x3acd7d=this,_0x18fab5=this[_0x52722c(0x16a)]+encodeURIComponent(_0xdf02f3['id'])+_0x52722c(0x16f),_0x3ac5ca={'uri':_0x18fab5,'method':_0x52722c(0x12f),'json':!![],'body':_0x4d0361};this[_0x52722c(0x16e)](_0x3ac5ca,(_0x44687b,_0x17a751,_0x53ab18)=>{const _0x179b4f=_0x52722c;(!_0x53ab18||Math[_0x179b4f(0x125)](_0x53ab18['status']/0x64)!==0x2)&&(_0x3acd7d['logger'][_0x179b4f(0x172)]('Failed\x20transmitting\x20breakpoint\x20logs,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20Error:\x20'+_0x44687b),_0x45a629(_0x44687b));});}[a4_0x1e0a82(0x151)](_0x14024c,_0x37ef27,_0x4d47c5){const _0x30a1a4=a4_0x1e0a82;assert(_0x14024c['id'],_0x30a1a4(0x13e));if(this[_0x30a1a4(0x15a)]){const _0x4239da=Date['now'](),_0x30a0c5=this[_0x30a1a4(0x15a)]+this['config'][_0x30a1a4(0x17e)][_0x30a1a4(0x16c)];if(_0x4239da<_0x30a0c5){this[_0x30a1a4(0x154)]['info'](_0x30a1a4(0x147)+((_0x30a0c5-_0x4239da)/0x3e8+'\x20seconds'));return;}}const _0x25a187=fs_1[_0x30a1a4(0x170)](_0x4d47c5)['size'],_0x43b9d2=Math[_0x30a1a4(0x184)](0x0,_0x25a187-this[_0x30a1a4(0x189)][_0x30a1a4(0x17e)]['maxLogFileBytes']),_0x4ed7f6=fs_1['createReadStream'](_0x4d47c5,{'start':_0x43b9d2}),_0x174603=zlib_1[_0x30a1a4(0x131)](),_0x37264c=new memory_streams_1['WritableStream'](),_0x5a2f1e=this;_0x5a2f1e[_0x30a1a4(0x154)][_0x30a1a4(0x13d)](_0x30a1a4(0x169)+_0x4d47c5+_0x30a1a4(0x13a)+_0x37ef27),stream_1[_0x30a1a4(0x180)](_0x4ed7f6,_0x174603,_0x37264c,_0x20d090=>{const _0x3f14e5=_0x30a1a4;if(_0x20d090)_0x5a2f1e[_0x3f14e5(0x154)][_0x3f14e5(0x121)](_0x3f14e5(0x143)+_0x4d47c5+':\x20'+_0x20d090);else{const _0x1e34b6={'uri':this[_0x3f14e5(0x16a)]+encodeURIComponent(_0x14024c['id'])+_0x3f14e5(0x17d)+_0x37ef27,'method':_0x3f14e5(0x15c),'body':_0x37264c['toBuffer']()};_0x5a2f1e['makeRequest'](_0x1e34b6,_0x3b4cc2=>{const _0x554b2e=_0x3f14e5;_0x3b4cc2?_0x5a2f1e['logger'][_0x554b2e(0x121)](_0x554b2e(0x17c)+_0x4d47c5+_0x554b2e(0x181)+_0x37ef27,_0x3b4cc2):(_0x5a2f1e['logger'][_0x554b2e(0x13d)](_0x554b2e(0x14d)+_0x4d47c5+_0x554b2e(0x181)+_0x37ef27),_0x5a2f1e[_0x554b2e(0x15a)]=Date[_0x554b2e(0x187)]());});}});}[a4_0x1e0a82(0x15f)](_0x4854a4){const _0x1f525f=a4_0x1e0a82;var _0x17690a;this[_0x1f525f(0x156)]=undefined;const _0x3334ce=[];while(_0x3334ce[_0x1f525f(0x183)]<this[_0x1f525f(0x189)][_0x1f525f(0x162)]&&this['transmissionQueue'][_0x1f525f(0x183)]>0x0){_0x3334ce['push'](this[_0x1f525f(0x185)]['shift']());}if(!_0x3334ce)return;const _0x41c7a0=_0x3334ce[_0x1f525f(0x179)](_0x4775b8=>_0x4775b8[0x0]['id']),_0x1a1e07={'uri':this['apiUrl']+encodeURIComponent(_0x4854a4)+'/breakpoints','json':!![],'method':_0x1f525f(0x15c),'body':_0x3334ce[_0x1f525f(0x179)](_0x2d1642=>_0x2d1642[0x0])},_0x261909=this;try{this['makeRequest'](_0x1a1e07,(_0x5c4d37,_0x418bd6,_0x476380)=>{const _0x5a833f=_0x1f525f,_0x4594dc=_0x476380===null||_0x476380===void 0x0?void 0x0:_0x476380['status'];if(_0x5c4d37||!_0x4594dc||Math[_0x5a833f(0x125)](_0x4594dc/0x64)!==0x2){const _0x25ce72=_0x4594dc&&(_0x4594dc>=0x1f4||_0x4594dc===0x198);if(_0x25ce72){_0x261909[_0x5a833f(0x154)][_0x5a833f(0x172)](_0x5a833f(0x122)+_0x41c7a0+_0x5a833f(0x139)+_0x4594dc+_0x5a833f(0x15e)+_0x5c4d37);for(const _0xa9d8cc of _0x3334ce){_0xa9d8cc[0x1]<MAX_FAILED_SEND_ATTEMPTS?_0x261909[_0x5a833f(0x185)][_0x5a833f(0x120)]([_0xa9d8cc[0x0],_0xa9d8cc[0x1]+0x1]):_0x261909[_0x5a833f(0x154)]['warn'](_0x5a833f(0x182)+_0xa9d8cc[0x0]['id']+'\x20retry\x20count\x20exceeded\x20maximum\x20-\x20Dropping\x20it');}}else _0x261909['logger'][_0x5a833f(0x172)](_0x5a833f(0x146)+_0x41c7a0+_0x5a833f(0x139)+_0x4594dc+'\x20Error:\x20'+_0x5c4d37);}else _0x261909[_0x5a833f(0x154)]['info'](_0x5a833f(0x12a)+_0x41c7a0+'\x20transmitted\x20successfully');_0x261909['transmissionQueue'][_0x5a833f(0x183)]>0x0&&(_0x261909[_0x5a833f(0x156)]=setTimeout(()=>_0x261909[_0x5a833f(0x15f)][_0x5a833f(0x157)](_0x261909)(_0x4854a4),0x0));});}catch(_0x408dd3){this['logger']['warn'](_0x1f525f(0x146)+_0x41c7a0+'.\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20Error:\x20'+_0x408dd3+_0x1f525f(0x165)+((_0x17690a=_0x408dd3[_0x1f525f(0x166)])===null||_0x17690a===void 0x0?void 0x0:_0x17690a[_0x1f525f(0x152)])),_0x261909[_0x1f525f(0x185)][_0x1f525f(0x183)]>0x0&&(_0x261909[_0x1f525f(0x156)]=setTimeout(()=>_0x261909['transmitBreakpointUpdates']['bind'](_0x261909)(_0x4854a4),0x0));}}[a4_0x1e0a82(0x16d)](_0x145cc4,_0x204929){const _0xb3ac29=a4_0x1e0a82;this[_0xb3ac29(0x154)][_0xb3ac29(0x13d)]('Getting\x20blocklist');const _0x1d6edc=this['apiUrl']+encodeURIComponent(_0x145cc4)+_0xb3ac29(0x130);this[_0xb3ac29(0x16e)]({'uri':_0x1d6edc,'json':!![]},(_0x42a3ec,_0x4f26e0,_0x334285)=>{if(_0x42a3ec)_0x204929(_0x42a3ec);else try{const _0x41639d=yaml['load'](_0x4f26e0);_0x204929(null,_0x41639d||{},_0x334285);}catch(_0x41d3e6){_0x204929(_0x41d3e6);}});}[a4_0x1e0a82(0x16e)](_0xe53def,_0xb7a6d8){const _0x4581ea=a4_0x1e0a82,_0x3bc908={'Content-Type':_0x4581ea(0x17f),'Authorization':_0x4581ea(0x14a)+this[_0x4581ea(0x189)]['lightrunSecret']},_0x40e903={'checkServerIdentity':(_0x13da47,_0x5341c0)=>this[_0x4581ea(0x128)](_0x13da47,_0x5341c0,this[_0x4581ea(0x189)])};if(this[_0x4581ea(0x186)]){const _0x42c185=tls_1['createSecureContext'](_0x40e903);_0x42c185[_0x4581ea(0x126)][_0x4581ea(0x17a)](this[_0x4581ea(0x186)]),_0x40e903['secureContext']=_0x42c185;}const _0x1a6b82={'url':_0xe53def['uri'],'agent':new https[(_0x4581ea(0x12e))](_0x40e903),'data':_0xe53def[_0x4581ea(0x18c)],'headers':_0x3bc908};extend(!![],_0x1a6b82,_0xe53def),gaxios['request'](_0x1a6b82)[_0x4581ea(0x129)](_0x5d70c6=>_0xb7a6d8(null,_0x5d70c6[_0x4581ea(0x166)],_0x5d70c6))['catch'](_0x4a742c=>{const _0x87d422=_0x4581ea;var _0x250a08;return _0xb7a6d8(_0x4a742c,(_0x250a08=_0x4a742c[_0x87d422(0x138)])===null||_0x250a08===void 0x0?void 0x0:_0x250a08['data'],_0x4a742c[_0x87d422(0x138)]);});}[a4_0x1e0a82(0x128)](_0x4cc62b,_0x2eeec8,_0x5d1e8a){const _0x2528dd=a4_0x1e0a82;if(_0x5d1e8a[_0x2528dd(0x176)])return undefined;const _0x525668=crypto_1[_0x2528dd(0x178)]('sha256')[_0x2528dd(0x11f)](_0x2eeec8[_0x2528dd(0x149)])[_0x2528dd(0x127)](_0x2528dd(0x13c));return _0x5d1e8a[_0x2528dd(0x144)][_0x2528dd(0x140)](_0x525668)?undefined:new Error(_0x2528dd(0x171));}}exports[a4_0x1e0a82(0x12c)]=Controller;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"controller.js","sourceRoot":"","sources":["../../../src/agent/controller.ts"],"names":[],"mappings":"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"}
|