@grafana/faro-core 1.0.0-beta1 → 1.0.0-beta2
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/dist/cjs/agent/agentGlobalObject.d.ts +2 -0
- package/dist/cjs/agent/agentGlobalObject.js +23 -0
- package/dist/cjs/agent/agentGlobalObject.js.map +1 -0
- package/dist/cjs/agent/const.d.ts +1 -0
- package/dist/cjs/agent/const.js +5 -0
- package/dist/cjs/agent/const.js.map +1 -0
- package/dist/cjs/agent/index.d.ts +4 -0
- package/dist/cjs/agent/index.js +13 -0
- package/dist/cjs/agent/index.js.map +1 -0
- package/dist/cjs/agent/initialize.d.ts +4 -0
- package/dist/cjs/agent/initialize.js +15 -0
- package/dist/cjs/agent/initialize.js.map +1 -0
- package/dist/cjs/agent/internalAgentGlobalObject.d.ts +4 -0
- package/dist/cjs/agent/internalAgentGlobalObject.js +29 -0
- package/dist/cjs/agent/internalAgentGlobalObject.js.map +1 -0
- package/dist/cjs/agent/types.d.ts +18 -0
- package/dist/cjs/agent/types.js +3 -0
- package/dist/cjs/agent/types.js.map +1 -0
- package/dist/cjs/agent.test.d.ts +1 -0
- package/dist/cjs/agent.test.js +42 -0
- package/dist/cjs/agent.test.js.map +1 -0
- package/dist/cjs/testUtils/mockTransport.d.ts +1 -1
- package/dist/cjs/version.d.ts +1 -1
- package/dist/cjs/version.js +1 -1
- package/dist/esm/agent/agentGlobalObject.d.ts +2 -0
- package/dist/esm/agent/agentGlobalObject.js +19 -0
- package/dist/esm/agent/agentGlobalObject.js.map +1 -0
- package/dist/esm/agent/const.d.ts +1 -0
- package/dist/esm/agent/const.js +2 -0
- package/dist/esm/agent/const.js.map +1 -0
- package/dist/esm/agent/index.d.ts +4 -0
- package/dist/esm/agent/index.js +4 -0
- package/dist/esm/agent/index.js.map +1 -0
- package/dist/esm/agent/initialize.d.ts +4 -0
- package/dist/esm/agent/initialize.js +11 -0
- package/dist/esm/agent/initialize.js.map +1 -0
- package/dist/esm/agent/internalAgentGlobalObject.d.ts +4 -0
- package/dist/esm/agent/internalAgentGlobalObject.js +23 -0
- package/dist/esm/agent/internalAgentGlobalObject.js.map +1 -0
- package/dist/esm/agent/types.d.ts +18 -0
- package/dist/esm/agent/types.js +2 -0
- package/dist/esm/agent/types.js.map +1 -0
- package/dist/esm/agent.test.d.ts +1 -0
- package/dist/esm/agent.test.js +40 -0
- package/dist/esm/agent.test.js.map +1 -0
- package/dist/esm/testUtils/mockTransport.d.ts +1 -1
- package/dist/esm/version.d.ts +1 -1
- package/dist/esm/version.js +1 -1
- package/package.json +2 -2
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.setAgentOnGlobalObject = void 0;
|
|
4
|
+
var globalObject_1 = require("../globalObject");
|
|
5
|
+
function setAgentOnGlobalObject(agent) {
|
|
6
|
+
if (!agent.config.preventGlobalExposure) {
|
|
7
|
+
agent.internalLogger.debug("Registering public agent in the global scope using \"".concat(agent.config.globalObjectKey, "\" key"));
|
|
8
|
+
if (agent.config.globalObjectKey in globalObject_1.globalObject) {
|
|
9
|
+
agent.internalLogger.warn("Skipping global registration due to key \"".concat(agent.config.globalObjectKey, "\" being used already. Please set \"globalObjectKey\" to something else or set \"preventGlobalExposure\" to \"true\""));
|
|
10
|
+
return;
|
|
11
|
+
}
|
|
12
|
+
Object.defineProperty(globalObject_1.globalObject, agent.config.globalObjectKey, {
|
|
13
|
+
configurable: false,
|
|
14
|
+
writable: false,
|
|
15
|
+
value: agent,
|
|
16
|
+
});
|
|
17
|
+
}
|
|
18
|
+
else {
|
|
19
|
+
agent.internalLogger.debug('Skipping registering public agent in the global scope');
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
exports.setAgentOnGlobalObject = setAgentOnGlobalObject;
|
|
23
|
+
//# sourceMappingURL=agentGlobalObject.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agentGlobalObject.js","sourceRoot":"","sources":["../../../src/agent/agentGlobalObject.ts"],"names":[],"mappings":";;;AAAA,gDAA+C;AAG/C,SAAgB,sBAAsB,CAAC,KAAY;IACjD,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,qBAAqB,EAAE;QACvC,KAAK,CAAC,cAAc,CAAC,KAAK,CACxB,+DAAuD,KAAK,CAAC,MAAM,CAAC,eAAe,WAAO,CAC3F,CAAC;QAEF,IAAI,KAAK,CAAC,MAAM,CAAC,eAAe,IAAI,2BAAY,EAAE;YAChD,KAAK,CAAC,cAAc,CAAC,IAAI,CACvB,oDAA4C,KAAK,CAAC,MAAM,CAAC,eAAe,yHAA+G,CACxL,CAAC;YAEF,OAAO;SACR;QAED,MAAM,CAAC,cAAc,CAAC,2BAAY,EAAE,KAAK,CAAC,MAAM,CAAC,eAAe,EAAE;YAChE,YAAY,EAAE,KAAK;YACnB,QAAQ,EAAE,KAAK;YACf,KAAK,EAAE,KAAK;SACb,CAAC,CAAC;KACJ;SAAM;QACL,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,uDAAuD,CAAC,CAAC;KACrF;AACH,CAAC;AAtBD,wDAsBC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const internalGlobalObjectKey = "_grafanaInternal";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"const.js","sourceRoot":"","sources":["../../../src/agent/const.ts"],"names":[],"mappings":";;;AAAa,QAAA,uBAAuB,GAAG,kBAAkB,CAAC"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export { internalGlobalObjectKey } from './const';
|
|
2
|
+
export { agent, initializeAgent } from './initialize';
|
|
3
|
+
export { getInternalAgentFromGlobalObject, isInternalAgentOnGlobalObject, setInternalAgentOnGlobalObject, } from './internalAgentGlobalObject';
|
|
4
|
+
export type { Agent } from './types';
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.setInternalAgentOnGlobalObject = exports.isInternalAgentOnGlobalObject = exports.getInternalAgentFromGlobalObject = exports.initializeAgent = exports.agent = exports.internalGlobalObjectKey = void 0;
|
|
4
|
+
var const_1 = require("./const");
|
|
5
|
+
Object.defineProperty(exports, "internalGlobalObjectKey", { enumerable: true, get: function () { return const_1.internalGlobalObjectKey; } });
|
|
6
|
+
var initialize_1 = require("./initialize");
|
|
7
|
+
Object.defineProperty(exports, "agent", { enumerable: true, get: function () { return initialize_1.agent; } });
|
|
8
|
+
Object.defineProperty(exports, "initializeAgent", { enumerable: true, get: function () { return initialize_1.initializeAgent; } });
|
|
9
|
+
var internalAgentGlobalObject_1 = require("./internalAgentGlobalObject");
|
|
10
|
+
Object.defineProperty(exports, "getInternalAgentFromGlobalObject", { enumerable: true, get: function () { return internalAgentGlobalObject_1.getInternalAgentFromGlobalObject; } });
|
|
11
|
+
Object.defineProperty(exports, "isInternalAgentOnGlobalObject", { enumerable: true, get: function () { return internalAgentGlobalObject_1.isInternalAgentOnGlobalObject; } });
|
|
12
|
+
Object.defineProperty(exports, "setInternalAgentOnGlobalObject", { enumerable: true, get: function () { return internalAgentGlobalObject_1.setInternalAgentOnGlobalObject; } });
|
|
13
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/agent/index.ts"],"names":[],"mappings":";;;AAAA,iCAAkD;AAAzC,gHAAA,uBAAuB,OAAA;AAEhC,2CAAsD;AAA7C,mGAAA,KAAK,OAAA;AAAE,6GAAA,eAAe,OAAA;AAE/B,yEAIqC;AAHnC,6IAAA,gCAAgC,OAAA;AAChC,0IAAA,6BAA6B,OAAA;AAC7B,2IAAA,8BAA8B,OAAA"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.initializeAgent = exports.agent = void 0;
|
|
4
|
+
var agentGlobalObject_1 = require("./agentGlobalObject");
|
|
5
|
+
var internalAgentGlobalObject_1 = require("./internalAgentGlobalObject");
|
|
6
|
+
exports.agent = {};
|
|
7
|
+
function initializeAgent(internalLogger, newAgent) {
|
|
8
|
+
internalLogger.debug('Initializing agent');
|
|
9
|
+
exports.agent = newAgent;
|
|
10
|
+
(0, internalAgentGlobalObject_1.setInternalAgentOnGlobalObject)(exports.agent);
|
|
11
|
+
(0, agentGlobalObject_1.setAgentOnGlobalObject)(exports.agent);
|
|
12
|
+
return exports.agent;
|
|
13
|
+
}
|
|
14
|
+
exports.initializeAgent = initializeAgent;
|
|
15
|
+
//# sourceMappingURL=initialize.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"initialize.js","sourceRoot":"","sources":["../../../src/agent/initialize.ts"],"names":[],"mappings":";;;AACA,yDAA6D;AAC7D,yEAA6E;AAGlE,QAAA,KAAK,GAAU,EAAW,CAAC;AAEtC,SAAgB,eAAe,CAAC,cAA8B,EAAE,QAAe;IAC7E,cAAc,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC;IAE3C,aAAK,GAAG,QAAQ,CAAC;IAEjB,IAAA,0DAA8B,EAAC,aAAK,CAAC,CAAC;IAEtC,IAAA,0CAAsB,EAAC,aAAK,CAAC,CAAC;IAE9B,OAAO,aAAK,CAAC;AACf,CAAC;AAVD,0CAUC"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.isInternalAgentOnGlobalObject = exports.setInternalAgentOnGlobalObject = exports.getInternalAgentFromGlobalObject = void 0;
|
|
4
|
+
var globalObject_1 = require("../globalObject");
|
|
5
|
+
var const_1 = require("./const");
|
|
6
|
+
function getInternalAgentFromGlobalObject() {
|
|
7
|
+
return globalObject_1.globalObject[const_1.internalGlobalObjectKey];
|
|
8
|
+
}
|
|
9
|
+
exports.getInternalAgentFromGlobalObject = getInternalAgentFromGlobalObject;
|
|
10
|
+
function setInternalAgentOnGlobalObject(agent) {
|
|
11
|
+
if (!agent.config.isolate) {
|
|
12
|
+
agent.internalLogger.debug('Registering internal agent on global object');
|
|
13
|
+
Object.defineProperty(globalObject_1.globalObject, const_1.internalGlobalObjectKey, {
|
|
14
|
+
configurable: false,
|
|
15
|
+
enumerable: false,
|
|
16
|
+
writable: false,
|
|
17
|
+
value: agent,
|
|
18
|
+
});
|
|
19
|
+
}
|
|
20
|
+
else {
|
|
21
|
+
agent.internalLogger.debug('Skipping registering internal agent on global object');
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
exports.setInternalAgentOnGlobalObject = setInternalAgentOnGlobalObject;
|
|
25
|
+
function isInternalAgentOnGlobalObject() {
|
|
26
|
+
return const_1.internalGlobalObjectKey in globalObject_1.globalObject;
|
|
27
|
+
}
|
|
28
|
+
exports.isInternalAgentOnGlobalObject = isInternalAgentOnGlobalObject;
|
|
29
|
+
//# sourceMappingURL=internalAgentGlobalObject.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"internalAgentGlobalObject.js","sourceRoot":"","sources":["../../../src/agent/internalAgentGlobalObject.ts"],"names":[],"mappings":";;;AAAA,gDAA+C;AAC/C,iCAAkD;AAGlD,SAAgB,gCAAgC;IAC9C,OAAO,2BAAY,CAAC,+BAAuB,CAAC,CAAC;AAC/C,CAAC;AAFD,4EAEC;AAED,SAAgB,8BAA8B,CAAC,KAAY;IACzD,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,EAAE;QACzB,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,6CAA6C,CAAC,CAAC;QAE1E,MAAM,CAAC,cAAc,CAAC,2BAAY,EAAE,+BAAuB,EAAE;YAC3D,YAAY,EAAE,KAAK;YACnB,UAAU,EAAE,KAAK;YACjB,QAAQ,EAAE,KAAK;YACf,KAAK,EAAE,KAAK;SACb,CAAC,CAAC;KACJ;SAAM;QACL,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,sDAAsD,CAAC,CAAC;KACpF;AACH,CAAC;AAbD,wEAaC;AAED,SAAgB,6BAA6B;IAC3C,OAAO,+BAAuB,IAAI,2BAAY,CAAC;AACjD,CAAC;AAFD,sEAEC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { API } from '../api';
|
|
2
|
+
import type { Config } from '../config';
|
|
3
|
+
import type { Instrumentations } from '../instrumentations';
|
|
4
|
+
import type { InternalLogger } from '../internalLogger';
|
|
5
|
+
import type { Metas } from '../metas';
|
|
6
|
+
import type { Transports } from '../transports';
|
|
7
|
+
import type { UnpatchedConsole } from '../unpatchedConsole';
|
|
8
|
+
export interface Agent {
|
|
9
|
+
api: API;
|
|
10
|
+
config: Config;
|
|
11
|
+
instrumentations: Instrumentations;
|
|
12
|
+
internalLogger: InternalLogger;
|
|
13
|
+
metas: Metas;
|
|
14
|
+
pause: Transports['pause'];
|
|
15
|
+
transports: Transports;
|
|
16
|
+
unpatchedConsole: UnpatchedConsole;
|
|
17
|
+
unpause: Transports['unpause'];
|
|
18
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/agent/types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
var initialize_1 = require("./initialize");
|
|
4
|
+
var testUtils_1 = require("./testUtils");
|
|
5
|
+
describe('agent', function () {
|
|
6
|
+
it("can be started paused and doesn't ingest events until unpaused", function () {
|
|
7
|
+
var transport = new testUtils_1.MockTransport();
|
|
8
|
+
var config = (0, testUtils_1.mockConfig)({
|
|
9
|
+
isolate: true,
|
|
10
|
+
paused: true,
|
|
11
|
+
transports: [transport],
|
|
12
|
+
});
|
|
13
|
+
var agent = (0, initialize_1.initializeGrafanaAgent)(config);
|
|
14
|
+
agent.api.pushLog(['test']);
|
|
15
|
+
expect(transport.items).toHaveLength(0);
|
|
16
|
+
agent.unpause();
|
|
17
|
+
agent.api.pushLog(['test2']);
|
|
18
|
+
expect(transport.items).toHaveLength(1);
|
|
19
|
+
var item = transport.items[0];
|
|
20
|
+
expect(item.payload.message).toEqual('test2');
|
|
21
|
+
});
|
|
22
|
+
it('can be started unpaused, then paused and unpaused again', function () {
|
|
23
|
+
var _a, _b;
|
|
24
|
+
var transport = new testUtils_1.MockTransport();
|
|
25
|
+
var config = (0, testUtils_1.mockConfig)({
|
|
26
|
+
isolate: true,
|
|
27
|
+
transports: [transport],
|
|
28
|
+
});
|
|
29
|
+
var agent = (0, initialize_1.initializeGrafanaAgent)(config);
|
|
30
|
+
agent.api.pushLog(['test1']);
|
|
31
|
+
expect(transport.items).toHaveLength(1);
|
|
32
|
+
agent.pause();
|
|
33
|
+
agent.api.pushLog(['test2']);
|
|
34
|
+
expect(transport.items).toHaveLength(1);
|
|
35
|
+
agent.unpause();
|
|
36
|
+
agent.api.pushLog(['test3']);
|
|
37
|
+
var items = transport.items;
|
|
38
|
+
expect((_a = items[0]) === null || _a === void 0 ? void 0 : _a.payload.message).toEqual('test1');
|
|
39
|
+
expect((_b = items[1]) === null || _b === void 0 ? void 0 : _b.payload.message).toEqual('test3');
|
|
40
|
+
});
|
|
41
|
+
});
|
|
42
|
+
//# sourceMappingURL=agent.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agent.test.js","sourceRoot":"","sources":["../../src/agent.test.ts"],"names":[],"mappings":";;AACA,2CAAsD;AACtD,yCAAwD;AAGxD,QAAQ,CAAC,OAAO,EAAE;IAChB,EAAE,CAAC,gEAAgE,EAAE;QACnE,IAAM,SAAS,GAAG,IAAI,yBAAa,EAAE,CAAC;QACtC,IAAM,MAAM,GAAG,IAAA,sBAAU,EAAC;YACxB,OAAO,EAAE,IAAI;YACb,MAAM,EAAE,IAAI;YACZ,UAAU,EAAE,CAAC,SAAS,CAAC;SACxB,CAAC,CAAC;QAEH,IAAM,KAAK,GAAG,IAAA,mCAAsB,EAAC,MAAM,CAAC,CAAC;QAC7C,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;QAC5B,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QAExC,KAAK,CAAC,OAAO,EAAE,CAAC;QAChB,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;QAC7B,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QAExC,IAAM,IAAI,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,CAA6B,CAAC;QAC5D,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAChD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yDAAyD,EAAE;;QAC5D,IAAM,SAAS,GAAG,IAAI,yBAAa,EAAE,CAAC;QACtC,IAAM,MAAM,GAAG,IAAA,sBAAU,EAAC;YACxB,OAAO,EAAE,IAAI;YACb,UAAU,EAAE,CAAC,SAAS,CAAC;SACxB,CAAC,CAAC;QACH,IAAM,KAAK,GAAG,IAAA,mCAAsB,EAAC,MAAM,CAAC,CAAC;QAE7C,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;QAC7B,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QAExC,KAAK,CAAC,KAAK,EAAE,CAAC;QACd,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;QAC7B,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QAExC,KAAK,CAAC,OAAO,EAAE,CAAC;QAChB,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;QAC7B,IAAM,KAAK,GAAG,SAAS,CAAC,KAAuC,CAAC;QAChE,MAAM,CAAC,MAAA,KAAK,CAAC,CAAC,CAAC,0CAAE,OAAO,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QACnD,MAAM,CAAC,MAAA,KAAK,CAAC,CAAC,CAAC,0CAAE,OAAO,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IACrD,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -4,7 +4,7 @@ import type { Transport, TransportItem } from '../transports';
|
|
|
4
4
|
export declare class MockTransport extends BaseTransport implements Transport {
|
|
5
5
|
private ignoreURLs;
|
|
6
6
|
readonly name = "@grafana/transport-mock";
|
|
7
|
-
readonly version = "1.0.0-
|
|
7
|
+
readonly version = "1.0.0-beta2";
|
|
8
8
|
items: TransportItem[];
|
|
9
9
|
constructor(ignoreURLs?: Patterns);
|
|
10
10
|
send(item: TransportItem): void | Promise<void>;
|
package/dist/cjs/version.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const VERSION = "1.0.0-
|
|
1
|
+
export declare const VERSION = "1.0.0-beta2";
|
package/dist/cjs/version.js
CHANGED
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { globalObject } from '../globalObject';
|
|
2
|
+
export function setAgentOnGlobalObject(agent) {
|
|
3
|
+
if (!agent.config.preventGlobalExposure) {
|
|
4
|
+
agent.internalLogger.debug(`Registering public agent in the global scope using "${agent.config.globalObjectKey}" key`);
|
|
5
|
+
if (agent.config.globalObjectKey in globalObject) {
|
|
6
|
+
agent.internalLogger.warn(`Skipping global registration due to key "${agent.config.globalObjectKey}" being used already. Please set "globalObjectKey" to something else or set "preventGlobalExposure" to "true"`);
|
|
7
|
+
return;
|
|
8
|
+
}
|
|
9
|
+
Object.defineProperty(globalObject, agent.config.globalObjectKey, {
|
|
10
|
+
configurable: false,
|
|
11
|
+
writable: false,
|
|
12
|
+
value: agent,
|
|
13
|
+
});
|
|
14
|
+
}
|
|
15
|
+
else {
|
|
16
|
+
agent.internalLogger.debug('Skipping registering public agent in the global scope');
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=agentGlobalObject.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agentGlobalObject.js","sourceRoot":"","sources":["../../../src/agent/agentGlobalObject.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAG/C,MAAM,UAAU,sBAAsB,CAAC,KAAY;IACjD,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,qBAAqB,EAAE;QACvC,KAAK,CAAC,cAAc,CAAC,KAAK,CACxB,uDAAuD,KAAK,CAAC,MAAM,CAAC,eAAe,OAAO,CAC3F,CAAC;QAEF,IAAI,KAAK,CAAC,MAAM,CAAC,eAAe,IAAI,YAAY,EAAE;YAChD,KAAK,CAAC,cAAc,CAAC,IAAI,CACvB,4CAA4C,KAAK,CAAC,MAAM,CAAC,eAAe,+GAA+G,CACxL,CAAC;YAEF,OAAO;SACR;QAED,MAAM,CAAC,cAAc,CAAC,YAAY,EAAE,KAAK,CAAC,MAAM,CAAC,eAAe,EAAE;YAChE,YAAY,EAAE,KAAK;YACnB,QAAQ,EAAE,KAAK;YACf,KAAK,EAAE,KAAK;SACb,CAAC,CAAC;KACJ;SAAM;QACL,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,uDAAuD,CAAC,CAAC;KACrF;AACH,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const internalGlobalObjectKey = "_grafanaInternal";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"const.js","sourceRoot":"","sources":["../../../src/agent/const.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,uBAAuB,GAAG,kBAAkB,CAAC"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export { internalGlobalObjectKey } from './const';
|
|
2
|
+
export { agent, initializeAgent } from './initialize';
|
|
3
|
+
export { getInternalAgentFromGlobalObject, isInternalAgentOnGlobalObject, setInternalAgentOnGlobalObject, } from './internalAgentGlobalObject';
|
|
4
|
+
export type { Agent } from './types';
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export { internalGlobalObjectKey } from './const';
|
|
2
|
+
export { agent, initializeAgent } from './initialize';
|
|
3
|
+
export { getInternalAgentFromGlobalObject, isInternalAgentOnGlobalObject, setInternalAgentOnGlobalObject, } from './internalAgentGlobalObject';
|
|
4
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/agent/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,MAAM,SAAS,CAAC;AAElD,OAAO,EAAE,KAAK,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAEtD,OAAO,EACL,gCAAgC,EAChC,6BAA6B,EAC7B,8BAA8B,GAC/B,MAAM,6BAA6B,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { setAgentOnGlobalObject } from './agentGlobalObject';
|
|
2
|
+
import { setInternalAgentOnGlobalObject } from './internalAgentGlobalObject';
|
|
3
|
+
export let agent = {};
|
|
4
|
+
export function initializeAgent(internalLogger, newAgent) {
|
|
5
|
+
internalLogger.debug('Initializing agent');
|
|
6
|
+
agent = newAgent;
|
|
7
|
+
setInternalAgentOnGlobalObject(agent);
|
|
8
|
+
setAgentOnGlobalObject(agent);
|
|
9
|
+
return agent;
|
|
10
|
+
}
|
|
11
|
+
//# sourceMappingURL=initialize.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"initialize.js","sourceRoot":"","sources":["../../../src/agent/initialize.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,EAAE,8BAA8B,EAAE,MAAM,6BAA6B,CAAC;AAG7E,MAAM,CAAC,IAAI,KAAK,GAAU,EAAW,CAAC;AAEtC,MAAM,UAAU,eAAe,CAAC,cAA8B,EAAE,QAAe;IAC7E,cAAc,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC;IAE3C,KAAK,GAAG,QAAQ,CAAC;IAEjB,8BAA8B,CAAC,KAAK,CAAC,CAAC;IAEtC,sBAAsB,CAAC,KAAK,CAAC,CAAC;IAE9B,OAAO,KAAK,CAAC;AACf,CAAC"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { globalObject } from '../globalObject';
|
|
2
|
+
import { internalGlobalObjectKey } from './const';
|
|
3
|
+
export function getInternalAgentFromGlobalObject() {
|
|
4
|
+
return globalObject[internalGlobalObjectKey];
|
|
5
|
+
}
|
|
6
|
+
export function setInternalAgentOnGlobalObject(agent) {
|
|
7
|
+
if (!agent.config.isolate) {
|
|
8
|
+
agent.internalLogger.debug('Registering internal agent on global object');
|
|
9
|
+
Object.defineProperty(globalObject, internalGlobalObjectKey, {
|
|
10
|
+
configurable: false,
|
|
11
|
+
enumerable: false,
|
|
12
|
+
writable: false,
|
|
13
|
+
value: agent,
|
|
14
|
+
});
|
|
15
|
+
}
|
|
16
|
+
else {
|
|
17
|
+
agent.internalLogger.debug('Skipping registering internal agent on global object');
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
export function isInternalAgentOnGlobalObject() {
|
|
21
|
+
return internalGlobalObjectKey in globalObject;
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=internalAgentGlobalObject.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"internalAgentGlobalObject.js","sourceRoot":"","sources":["../../../src/agent/internalAgentGlobalObject.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,uBAAuB,EAAE,MAAM,SAAS,CAAC;AAGlD,MAAM,UAAU,gCAAgC;IAC9C,OAAO,YAAY,CAAC,uBAAuB,CAAC,CAAC;AAC/C,CAAC;AAED,MAAM,UAAU,8BAA8B,CAAC,KAAY;IACzD,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,EAAE;QACzB,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,6CAA6C,CAAC,CAAC;QAE1E,MAAM,CAAC,cAAc,CAAC,YAAY,EAAE,uBAAuB,EAAE;YAC3D,YAAY,EAAE,KAAK;YACnB,UAAU,EAAE,KAAK;YACjB,QAAQ,EAAE,KAAK;YACf,KAAK,EAAE,KAAK;SACb,CAAC,CAAC;KACJ;SAAM;QACL,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,sDAAsD,CAAC,CAAC;KACpF;AACH,CAAC;AAED,MAAM,UAAU,6BAA6B;IAC3C,OAAO,uBAAuB,IAAI,YAAY,CAAC;AACjD,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { API } from '../api';
|
|
2
|
+
import type { Config } from '../config';
|
|
3
|
+
import type { Instrumentations } from '../instrumentations';
|
|
4
|
+
import type { InternalLogger } from '../internalLogger';
|
|
5
|
+
import type { Metas } from '../metas';
|
|
6
|
+
import type { Transports } from '../transports';
|
|
7
|
+
import type { UnpatchedConsole } from '../unpatchedConsole';
|
|
8
|
+
export interface Agent {
|
|
9
|
+
api: API;
|
|
10
|
+
config: Config;
|
|
11
|
+
instrumentations: Instrumentations;
|
|
12
|
+
internalLogger: InternalLogger;
|
|
13
|
+
metas: Metas;
|
|
14
|
+
pause: Transports['pause'];
|
|
15
|
+
transports: Transports;
|
|
16
|
+
unpatchedConsole: UnpatchedConsole;
|
|
17
|
+
unpause: Transports['unpause'];
|
|
18
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/agent/types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { initializeGrafanaAgent } from './initialize';
|
|
2
|
+
import { mockConfig, MockTransport } from './testUtils';
|
|
3
|
+
describe('agent', () => {
|
|
4
|
+
it(`can be started paused and doesn't ingest events until unpaused`, () => {
|
|
5
|
+
const transport = new MockTransport();
|
|
6
|
+
const config = mockConfig({
|
|
7
|
+
isolate: true,
|
|
8
|
+
paused: true,
|
|
9
|
+
transports: [transport],
|
|
10
|
+
});
|
|
11
|
+
const agent = initializeGrafanaAgent(config);
|
|
12
|
+
agent.api.pushLog(['test']);
|
|
13
|
+
expect(transport.items).toHaveLength(0);
|
|
14
|
+
agent.unpause();
|
|
15
|
+
agent.api.pushLog(['test2']);
|
|
16
|
+
expect(transport.items).toHaveLength(1);
|
|
17
|
+
const item = transport.items[0];
|
|
18
|
+
expect(item.payload.message).toEqual('test2');
|
|
19
|
+
});
|
|
20
|
+
it('can be started unpaused, then paused and unpaused again', () => {
|
|
21
|
+
var _a, _b;
|
|
22
|
+
const transport = new MockTransport();
|
|
23
|
+
const config = mockConfig({
|
|
24
|
+
isolate: true,
|
|
25
|
+
transports: [transport],
|
|
26
|
+
});
|
|
27
|
+
const agent = initializeGrafanaAgent(config);
|
|
28
|
+
agent.api.pushLog(['test1']);
|
|
29
|
+
expect(transport.items).toHaveLength(1);
|
|
30
|
+
agent.pause();
|
|
31
|
+
agent.api.pushLog(['test2']);
|
|
32
|
+
expect(transport.items).toHaveLength(1);
|
|
33
|
+
agent.unpause();
|
|
34
|
+
agent.api.pushLog(['test3']);
|
|
35
|
+
const items = transport.items;
|
|
36
|
+
expect((_a = items[0]) === null || _a === void 0 ? void 0 : _a.payload.message).toEqual('test1');
|
|
37
|
+
expect((_b = items[1]) === null || _b === void 0 ? void 0 : _b.payload.message).toEqual('test3');
|
|
38
|
+
});
|
|
39
|
+
});
|
|
40
|
+
//# sourceMappingURL=agent.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agent.test.js","sourceRoot":"","sources":["../../src/agent.test.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AACtD,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAGxD,QAAQ,CAAC,OAAO,EAAE,GAAG,EAAE;IACrB,EAAE,CAAC,gEAAgE,EAAE,GAAG,EAAE;QACxE,MAAM,SAAS,GAAG,IAAI,aAAa,EAAE,CAAC;QACtC,MAAM,MAAM,GAAG,UAAU,CAAC;YACxB,OAAO,EAAE,IAAI;YACb,MAAM,EAAE,IAAI;YACZ,UAAU,EAAE,CAAC,SAAS,CAAC;SACxB,CAAC,CAAC;QAEH,MAAM,KAAK,GAAG,sBAAsB,CAAC,MAAM,CAAC,CAAC;QAC7C,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;QAC5B,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QAExC,KAAK,CAAC,OAAO,EAAE,CAAC;QAChB,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;QAC7B,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QAExC,MAAM,IAAI,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,CAA6B,CAAC;QAC5D,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAChD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yDAAyD,EAAE,GAAG,EAAE;;QACjE,MAAM,SAAS,GAAG,IAAI,aAAa,EAAE,CAAC;QACtC,MAAM,MAAM,GAAG,UAAU,CAAC;YACxB,OAAO,EAAE,IAAI;YACb,UAAU,EAAE,CAAC,SAAS,CAAC;SACxB,CAAC,CAAC;QACH,MAAM,KAAK,GAAG,sBAAsB,CAAC,MAAM,CAAC,CAAC;QAE7C,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;QAC7B,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QAExC,KAAK,CAAC,KAAK,EAAE,CAAC;QACd,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;QAC7B,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QAExC,KAAK,CAAC,OAAO,EAAE,CAAC;QAChB,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;QAC7B,MAAM,KAAK,GAAG,SAAS,CAAC,KAAuC,CAAC;QAChE,MAAM,CAAC,MAAA,KAAK,CAAC,CAAC,CAAC,0CAAE,OAAO,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QACnD,MAAM,CAAC,MAAA,KAAK,CAAC,CAAC,CAAC,0CAAE,OAAO,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IACrD,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -4,7 +4,7 @@ import type { Transport, TransportItem } from '../transports';
|
|
|
4
4
|
export declare class MockTransport extends BaseTransport implements Transport {
|
|
5
5
|
private ignoreURLs;
|
|
6
6
|
readonly name = "@grafana/transport-mock";
|
|
7
|
-
readonly version = "1.0.0-
|
|
7
|
+
readonly version = "1.0.0-beta2";
|
|
8
8
|
items: TransportItem[];
|
|
9
9
|
constructor(ignoreURLs?: Patterns);
|
|
10
10
|
send(item: TransportItem): void | Promise<void>;
|
package/dist/esm/version.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const VERSION = "1.0.0-
|
|
1
|
+
export declare const VERSION = "1.0.0-beta2";
|
package/dist/esm/version.js
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@grafana/faro-core",
|
|
3
|
-
"version": "1.0.0-
|
|
3
|
+
"version": "1.0.0-beta2",
|
|
4
4
|
"description": "Core package of Faro.",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"author": "Grafana Labs",
|
|
@@ -43,5 +43,5 @@
|
|
|
43
43
|
"publishConfig": {
|
|
44
44
|
"access": "public"
|
|
45
45
|
},
|
|
46
|
-
"gitHead": "
|
|
46
|
+
"gitHead": "908d0abf71a64a38bd9d5cc1bbba26d52e4ae063"
|
|
47
47
|
}
|