chore: added new relic OTLP exporter (#28480)

## Description
- Added new relic OTLP exporter to export eval traces, click event and
api calls.
- Conditionally loading both browser agent and OTLP scripts based on env
variables.

#### PR fixes following issue(s)
Fixes #28504 and #28506

#### Type of change
- Chore (housekeeping or task changes that don't impact user perception)

#### How Has This Been Tested?
- [x] Manual
- [ ] JUnit
- [ ] Jest
- [ ] Cypress
>
>
#### Test Plan
> Add Testsmith test cases links that relate to this PR
>
>
#### Issues raised during DP testing
> Link issues raised during DP testing for better visiblity and tracking
(copy link from comments dropped on this PR)
>
>
>
## Checklist:
#### Dev activity
- [x] My code follows the style guidelines of this project
- [x] I have performed a self-review of my own code
- [ ] I have commented my code, particularly in hard-to-understand areas
- [ ] I have made corresponding changes to the documentation
- [x] My changes generate no new warnings
- [ ] I have added tests that prove my fix is effective or that my
feature works
- [ ] New and existing unit tests pass locally with my changes
- [ ] PR is being merged under a feature flag


#### QA activity:
- [ ] [Speedbreak
features](https://github.com/appsmithorg/TestSmith/wiki/Guidelines-for-test-plans#speedbreakers-)
have been covered
- [ ] Test plan covers all impacted features and [areas of
interest](https://github.com/appsmithorg/TestSmith/wiki/Guidelines-for-test-plans#areas-of-interest-)
- [ ] Test plan has been peer reviewed by project stakeholders and other
QA members
- [ ] Manually tested functionality on DP
- [ ] We had an implementation alignment call with stakeholders post QA
Round 2
- [ ] Cypress test cases have been added and approved by SDET/manual QA
- [ ] Added `Test Plan Approved` label after Cypress tests were reviewed
- [ ] Added `Test Plan Approved` label after JUnit tests were reviewed
This commit is contained in:
Vemparala Surya Vamsi 2023-11-06 15:05:17 +05:30 committed by GitHub
parent 5b641b40a4
commit 7aa1c98efe
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
10 changed files with 640 additions and 45 deletions

View File

@ -50,8 +50,9 @@ server {
sub_filter __APPSMITH_DISABLE_IFRAME_WIDGET_SANDBOX__ '${APPSMITH_DISABLE_IFRAME_WIDGET_SANDBOX}';
sub_filter __APPSMITH_NEW_RELIC_ACCOUNT_ID__ '${APPSMITH_NEW_RELIC_ACCOUNT_ID}';
sub_filter __APPSMITH_NEW_RELIC_APPLICATION_ID__ '${APPSMITH_NEW_RELIC_APPLICATION_ID}';
sub_filter __APPSMITH_APP_NEW_RELIC_LICENSE_KEY__ '${APPSMITH_APP_NEW_RELIC_LICENSE_KEY}';
sub_filter __APPSMITH_NEW_RELIC_BROWSER_AGENT_LICENSE_KEY__ '${APPSMITH_NEW_RELIC_BROWSER_AGENT_LICENSE_KEY}';
sub_filter __APPSMITH_NEW_RELIC_ACCOUNT_ENABLE__ '${APPSMITH_NEW_RELIC_ACCOUNT_ENABLE}';
sub_filter __APPSMITH_NEW_RELIC_OTLP_LICENSE_KEY__ '${APPSMITH_NEW_RELIC_OTLP_LICENSE_KEY}';
}

View File

@ -83,6 +83,13 @@ module.exports = {
apiKey: parseConfig("__APPSMITH_SEGMENT_KEY__"),
ceKey: parseConfig("__APPSMITH_SEGMENT_CE_KEY__"),
},
newRelic:{
enableNewRelic: parseConfig("__APPSMITH_NEW_RELIC_ACCOUNT_ENABLE__"),
accountId: parseConfig("__APPSMITH_NEW_RELIC_ACCOUNT_ID__"),
applicationId: parseConfig("__APPSMITH_NEW_RELIC_APPLICATION_ID__"),
browserAgentlicenseKey: parseConfig("__APPSMITH_NEW_RELIC_BROWSER_AGENT_LICENSE_KEY__"),
otlpLicenseKey: parseConfig("__APPSMITH_NEW_RELIC_OTLP_LICENSE_KEY__"),
},
fusioncharts: {
licenseKey: parseConfig("__APPSMITH_FUSIONCHARTS_LICENSE_KEY__"),
},

View File

@ -61,6 +61,14 @@
"@loadable/component": "^5.15.3",
"@manaflair/redux-batch": "^1.0.0",
"@mantine/hooks": "^5.10.1",
"@opentelemetry/auto-instrumentations-web": "^0.33.2",
"@opentelemetry/context-zone": "^1.17.1",
"@opentelemetry/exporter-trace-otlp-proto": "^0.44.0",
"@opentelemetry/instrumentation": "^0.44.0",
"@opentelemetry/resources": "^1.17.1",
"@opentelemetry/sdk-trace-base": "^1.17.1",
"@opentelemetry/sdk-trace-web": "^1.17.1",
"@opentelemetry/semantic-conventions": "^1.17.1",
"@sentry/react": "^6.2.4",
"@sentry/tracing": "^6.2.4",
"@shared/ast": "workspace:^",

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,65 @@
import { BatchSpanProcessor } from "@opentelemetry/sdk-trace-base";
import { WebTracerProvider } from "@opentelemetry/sdk-trace-web";
import { getWebAutoInstrumentations } from "@opentelemetry/auto-instrumentations-web";
import { registerInstrumentations } from "@opentelemetry/instrumentation";
import { ZoneContextManager } from "@opentelemetry/context-zone";
import { OTLPTraceExporter } from "@opentelemetry/exporter-trace-otlp-proto";
import { Resource } from "@opentelemetry/resources";
import { SemanticResourceAttributes } from "@opentelemetry/semantic-conventions";
import { getAppsmithConfigs } from "@appsmith/configs";
const { newRelic } = getAppsmithConfigs();
const { applicationId, otlpLicenseKey } = newRelic;
const NEW_RELIC_OTLP_ENTITY_NAME = "Appsmith Frontend OTLP";
const NEW_RELIC_OTLP_ENDPOINT = "https://otlp.nr-data.net:4318";
const provider = new WebTracerProvider({
resource: new Resource({
[SemanticResourceAttributes.SERVICE_NAME]: NEW_RELIC_OTLP_ENTITY_NAME,
[SemanticResourceAttributes.SERVICE_INSTANCE_ID]: applicationId,
[SemanticResourceAttributes.SERVICE_VERSION]: "1.0.0",
}),
});
const newRelicExporter = new OTLPTraceExporter({
url: `${NEW_RELIC_OTLP_ENDPOINT}/v1/traces`,
headers: {
"api-key": otlpLicenseKey,
},
});
const processor = new BatchSpanProcessor(
newRelicExporter,
//Optional BatchSpanProcessor Configurations
{
// The maximum queue size. After the size is reached spans are dropped.
maxQueueSize: 100,
// The maximum batch size of every export. It must be smaller or equal to maxQueueSize.
maxExportBatchSize: 50,
// The interval between two consecutive exports
scheduledDelayMillis: 500,
// How long the export can run before it is cancelled
exportTimeoutMillis: 30000,
},
);
provider.addSpanProcessor(processor);
provider.register({
contextManager: new ZoneContextManager(),
});
registerInstrumentations({
instrumentations: [
getWebAutoInstrumentations({
"@opentelemetry/instrumentation-xml-http-request": {
enabled: true,
},
"@opentelemetry/instrumentation-document-load": {
enabled: true,
},
"@opentelemetry/instrumentation-user-interaction": {
enabled: true,
},
}),
],
});

View File

@ -17,6 +17,13 @@ export interface INJECTED_CONFIGS {
apiKey: string;
ceKey: string;
};
newRelic: {
enableNewRelic: boolean;
accountId: string;
applicationId: string;
browserAgentlicenseKey: string;
otlpLicenseKey: string;
};
fusioncharts: {
licenseKey: string;
};
@ -79,6 +86,14 @@ export const getConfigsFromEnvVars = (): INJECTED_CONFIGS => {
indexName: process.env.REACT_APP_ALGOLIA_SEARCH_INDEX_NAME || "",
snippetIndex: process.env.REACT_APP_ALGOLIA_SNIPPET_INDEX_NAME || "",
},
newRelic: {
enableNewRelic: !!process.env.APPSMITH_NEW_RELIC_ACCOUNT_ENABLE,
accountId: process.env.APPSMITH_NEW_RELIC_ACCOUNT_ID || "",
applicationId: process.env.APPSMITH_NEW_RELIC_APPLICATION_ID || "",
browserAgentlicenseKey:
process.env.APPSMITH_NEW_RELIC_BROWSER_AGENT_LICENSE_KEY || "",
otlpLicenseKey: process.env.APPSMITH_NEW_RELIC_OTLP_LICENSE_KEY || "",
},
logLevel:
(process.env.REACT_APP_CLIENT_LOG_LEVEL as
| "debug"
@ -145,6 +160,23 @@ export const getAppsmithConfigs = (): AppsmithUIConfigs => {
ENV_CONFIG.segment.apiKey,
APPSMITH_FEATURE_CONFIGS?.segment.apiKey,
);
const newRelicAccountId = getConfig(
ENV_CONFIG.newRelic.accountId,
APPSMITH_FEATURE_CONFIGS?.newRelic.accountId,
);
const newRelicApplicationId = getConfig(
ENV_CONFIG.newRelic.applicationId,
APPSMITH_FEATURE_CONFIGS?.newRelic.applicationId,
);
const newRelicBrowserLicenseKey = getConfig(
ENV_CONFIG.newRelic.browserAgentlicenseKey,
APPSMITH_FEATURE_CONFIGS?.newRelic.browserAgentlicenseKey,
);
const newRelicOtlpLicenseKey = getConfig(
ENV_CONFIG.newRelic.otlpLicenseKey,
APPSMITH_FEATURE_CONFIGS?.newRelic.otlpLicenseKey,
);
const fusioncharts = getConfig(
ENV_CONFIG.fusioncharts.licenseKey,
APPSMITH_FEATURE_CONFIGS?.fusioncharts.licenseKey,
@ -216,6 +248,16 @@ export const getAppsmithConfigs = (): AppsmithUIConfigs => {
apiKey: segment.value,
ceKey: segmentCEKey.value,
},
newRelic: {
enableNewRelic:
ENV_CONFIG.newRelic.enableNewRelic ||
APPSMITH_FEATURE_CONFIGS?.newRelic.enableNewRelic ||
false,
accountId: newRelicAccountId.value,
applicationId: newRelicApplicationId.value,
browserAgentlicenseKey: newRelicBrowserLicenseKey.value,
otlpLicenseKey: newRelicOtlpLicenseKey.value,
},
fusioncharts: {
enabled: fusioncharts.enabled,
licenseKey: fusioncharts.value,

View File

@ -25,6 +25,13 @@ export interface AppsmithUIConfigs {
enabled: boolean;
id: string;
};
newRelic: {
enableNewRelic: boolean;
accountId: string;
applicationId: string;
browserAgentlicenseKey: string;
otlpLicenseKey: string;
};
segment: {
enabled: boolean;
apiKey: string;

View File

@ -22,13 +22,27 @@ import GlobalStyles from "globalStyles";
// enable autofreeze only in development
import { setAutoFreeze } from "immer";
import AppErrorBoundary from "./AppErrorBoundry";
import log from "loglevel";
import { getAppsmithConfigs } from "@appsmith/configs";
const shouldAutoFreeze = process.env.NODE_ENV === "development";
const { newRelic } = getAppsmithConfigs();
setAutoFreeze(shouldAutoFreeze);
runSagaMiddleware();
appInitializer();
const { enableNewRelic } = newRelic;
enableNewRelic &&
(async () => {
try {
await import(
/* webpackChunkName: "otlpTelemetry" */ "./auto-otel-web.js"
);
} catch (e) {
log.error("Error loading telemetry script", e);
}
})();
function App() {
return (

View File

@ -5,6 +5,7 @@ import { uniqueId } from "lodash";
import log from "loglevel";
import type { TMessage } from "./MessageUtil";
import { MessageType, sendMessage } from "./MessageUtil";
import { trace } from "@opentelemetry/api";
/**
* Wrap a webworker to provide a synchronous request-response semantic.
@ -166,6 +167,9 @@ export class GracefulWorkerService {
let timeTaken;
try {
const tracer = trace.getTracer("eval");
const span = tracer?.startSpan(method);
sendMessage.call(this._Worker, {
messageType: MessageType.REQUEST,
body: {
@ -174,8 +178,10 @@ export class GracefulWorkerService {
},
messageId,
});
// The `this._broker` method is listening to events and will pass response to us over this channel.
const response = yield take(ch);
span?.end();
timeTaken = response.timeTaken;
const { data: responseData } = response;
return responseData;

View File

@ -4272,6 +4272,267 @@ __metadata:
languageName: node
linkType: hard
"@opentelemetry/api-logs@npm:0.44.0":
version: 0.44.0
resolution: "@opentelemetry/api-logs@npm:0.44.0"
dependencies:
"@opentelemetry/api": ^1.0.0
checksum: 550fa16b9f9da94062fac63154f7ccaf5ad4515da7a0ad09d52c461c8e08bf88698ab819a5d2918d00e4d90cb2eb9224e9709a6ecbe8b3da021582232254d900
languageName: node
linkType: hard
"@opentelemetry/api@npm:^1.0.0":
version: 1.6.0
resolution: "@opentelemetry/api@npm:1.6.0"
checksum: 3283b78b62a39f6568eaa050ac7045fcca747679e255874f6d2107cb8e1a3b2e10bfbf553c3e82a72500fb5fdca49dc07a5fe27fd6980debac24506cca638859
languageName: node
linkType: hard
"@opentelemetry/auto-instrumentations-web@npm:^0.33.2":
version: 0.33.2
resolution: "@opentelemetry/auto-instrumentations-web@npm:0.33.2"
dependencies:
"@opentelemetry/instrumentation": ^0.44.0
"@opentelemetry/instrumentation-document-load": ^0.33.2
"@opentelemetry/instrumentation-fetch": ^0.44.0
"@opentelemetry/instrumentation-user-interaction": ^0.33.2
"@opentelemetry/instrumentation-xml-http-request": ^0.44.0
peerDependencies:
"@opentelemetry/api": ^1.3.0
checksum: af5c97bf7afc6dca98f31be8524dcea2fb3fbbf68ad7aa830c9bd420465f2884da427bbbe12fe047958fc2ceb98bbc10635cdd44ff115a57a3ca2a042c28e682
languageName: node
linkType: hard
"@opentelemetry/context-zone-peer-dep@npm:1.17.1":
version: 1.17.1
resolution: "@opentelemetry/context-zone-peer-dep@npm:1.17.1"
peerDependencies:
"@opentelemetry/api": ">=1.0.0 <1.7.0"
zone.js: ^0.10.2 || ^0.11.0
checksum: 181cae134bf241c5a70cbee319c299741e077b6efb5f9446ca84952882fce5c21f4f3eb4a5bd9186ea28c15a8781b0cbce2104bd3ba4a35d5c53c4f2d824fc1c
languageName: node
linkType: hard
"@opentelemetry/context-zone@npm:^1.17.1":
version: 1.17.1
resolution: "@opentelemetry/context-zone@npm:1.17.1"
dependencies:
"@opentelemetry/context-zone-peer-dep": 1.17.1
zone.js: ^0.11.0
checksum: 2463bc7f594132d4f8020a28a59a8a741d8022e78df37bfd0b4c0574851ff9fd7898ae8eab05dfb66aa05718c882af958d5395bc6955d68140858d67f292a99c
languageName: node
linkType: hard
"@opentelemetry/core@npm:1.17.1, @opentelemetry/core@npm:^1.8.0":
version: 1.17.1
resolution: "@opentelemetry/core@npm:1.17.1"
dependencies:
"@opentelemetry/semantic-conventions": 1.17.1
peerDependencies:
"@opentelemetry/api": ">=1.0.0 <1.7.0"
checksum: 06157f4a51dd1b3c98487c0d29a927a5a0fbbc997a81b04ccc4923968424582f517969b91c4f4f19dc1718f27a97f43b0b07af1310a5c240a96c5ff14c4b5cec
languageName: node
linkType: hard
"@opentelemetry/exporter-trace-otlp-proto@npm:^0.44.0":
version: 0.44.0
resolution: "@opentelemetry/exporter-trace-otlp-proto@npm:0.44.0"
dependencies:
"@opentelemetry/core": 1.17.1
"@opentelemetry/otlp-exporter-base": 0.44.0
"@opentelemetry/otlp-proto-exporter-base": 0.44.0
"@opentelemetry/otlp-transformer": 0.44.0
"@opentelemetry/resources": 1.17.1
"@opentelemetry/sdk-trace-base": 1.17.1
peerDependencies:
"@opentelemetry/api": ^1.0.0
checksum: d00334dcf1ae5c15a02b3e5692c365ff55d21c82b8e3c663c8440887e9d030d14708d8cf2e6cd2f73eaa3f9bde7a843212e10ce14e03b322eeed49b83cf89429
languageName: node
linkType: hard
"@opentelemetry/instrumentation-document-load@npm:^0.33.2":
version: 0.33.2
resolution: "@opentelemetry/instrumentation-document-load@npm:0.33.2"
dependencies:
"@opentelemetry/core": ^1.8.0
"@opentelemetry/instrumentation": ^0.44.0
"@opentelemetry/sdk-trace-base": ^1.0.0
"@opentelemetry/sdk-trace-web": ^1.15.0
"@opentelemetry/semantic-conventions": ^1.0.0
peerDependencies:
"@opentelemetry/api": ^1.3.0
checksum: 1edd5abd906a3a2b3e5c9b8947bb96e538e660d72395b8a84facc5c10603df13cd7defa4e103d061a558b6226a89082259c773d7c5543e2e9f0df3d2c2ec1190
languageName: node
linkType: hard
"@opentelemetry/instrumentation-fetch@npm:^0.44.0":
version: 0.44.0
resolution: "@opentelemetry/instrumentation-fetch@npm:0.44.0"
dependencies:
"@opentelemetry/core": 1.17.1
"@opentelemetry/instrumentation": 0.44.0
"@opentelemetry/sdk-trace-web": 1.17.1
"@opentelemetry/semantic-conventions": 1.17.1
peerDependencies:
"@opentelemetry/api": ^1.0.0
checksum: 805cb83dfc15a2d4de7a5868bff5676e7506f49e7a1f5ba1c2eddc1b79a361627fd8e7016693526f6d586268323e4b69341b4cd7e157b4a4cc10c9c4bb520af9
languageName: node
linkType: hard
"@opentelemetry/instrumentation-user-interaction@npm:^0.33.2":
version: 0.33.2
resolution: "@opentelemetry/instrumentation-user-interaction@npm:0.33.2"
dependencies:
"@opentelemetry/core": ^1.8.0
"@opentelemetry/instrumentation": ^0.44.0
"@opentelemetry/sdk-trace-web": ^1.8.0
peerDependencies:
"@opentelemetry/api": ^1.3.0
zone.js: 0.11.4
checksum: 2e8700745962ab9dc8501604e910c7de0b59af188bf7d0a0fe4724d3098d30fbb021a6174f62212458364fa2012375b09927d8059717e3fb1fd84ca2095349c2
languageName: node
linkType: hard
"@opentelemetry/instrumentation-xml-http-request@npm:^0.44.0":
version: 0.44.0
resolution: "@opentelemetry/instrumentation-xml-http-request@npm:0.44.0"
dependencies:
"@opentelemetry/core": 1.17.1
"@opentelemetry/instrumentation": 0.44.0
"@opentelemetry/sdk-trace-web": 1.17.1
"@opentelemetry/semantic-conventions": 1.17.1
peerDependencies:
"@opentelemetry/api": ^1.0.0
checksum: 4eb6b5aeab1cc3eac88fb0cf670001a44c40be5d0524f5db4d98062df827a64339b72adb4d00b273b0d15bcbf5f9cc1d5b03f447a81bd7ba6f876a7ff8df9cbb
languageName: node
linkType: hard
"@opentelemetry/instrumentation@npm:0.44.0, @opentelemetry/instrumentation@npm:^0.44.0":
version: 0.44.0
resolution: "@opentelemetry/instrumentation@npm:0.44.0"
dependencies:
"@types/shimmer": ^1.0.2
import-in-the-middle: 1.4.2
require-in-the-middle: ^7.1.1
semver: ^7.5.2
shimmer: ^1.2.1
peerDependencies:
"@opentelemetry/api": ^1.3.0
checksum: d8ff3ca0c84a6acb8110f06df008c7b97da2e82d1dce17b1eab52edc4e1ae9041719bc5fa69fe9628804a684d894f66be3061b27a3377e34264ee2d24fb35c9f
languageName: node
linkType: hard
"@opentelemetry/otlp-exporter-base@npm:0.44.0":
version: 0.44.0
resolution: "@opentelemetry/otlp-exporter-base@npm:0.44.0"
dependencies:
"@opentelemetry/core": 1.17.1
peerDependencies:
"@opentelemetry/api": ^1.0.0
checksum: e9dd8b4ccc93728bf898d434303a74020d0e71ce15116a2e8d30259a0d4769a475b33a521c63f3db33de0b4338d141b49e7aa7b0414242b45ea5614d88481199
languageName: node
linkType: hard
"@opentelemetry/otlp-proto-exporter-base@npm:0.44.0":
version: 0.44.0
resolution: "@opentelemetry/otlp-proto-exporter-base@npm:0.44.0"
dependencies:
"@opentelemetry/core": 1.17.1
"@opentelemetry/otlp-exporter-base": 0.44.0
protobufjs: ^7.2.3
peerDependencies:
"@opentelemetry/api": ^1.0.0
checksum: b2f78b276d484bfaddaaade11ed65a10edb082a52daa8cf0406f92cbcd7d245e86f3dde0d3992589bb64f5c8245d3da1b84b355eac4fd642ab6f391f1d108713
languageName: node
linkType: hard
"@opentelemetry/otlp-transformer@npm:0.44.0":
version: 0.44.0
resolution: "@opentelemetry/otlp-transformer@npm:0.44.0"
dependencies:
"@opentelemetry/api-logs": 0.44.0
"@opentelemetry/core": 1.17.1
"@opentelemetry/resources": 1.17.1
"@opentelemetry/sdk-logs": 0.44.0
"@opentelemetry/sdk-metrics": 1.17.1
"@opentelemetry/sdk-trace-base": 1.17.1
peerDependencies:
"@opentelemetry/api": ">=1.3.0 <1.7.0"
checksum: 74f826f9d33eb8de72c8e698d9d5e680936e09b63e26ffa5e080f455bf070a08fd6d0768bdb9e7e43a352d0ef8fd90183193ea85e8498005734005e75d8d232a
languageName: node
linkType: hard
"@opentelemetry/resources@npm:1.17.1, @opentelemetry/resources@npm:^1.17.1":
version: 1.17.1
resolution: "@opentelemetry/resources@npm:1.17.1"
dependencies:
"@opentelemetry/core": 1.17.1
"@opentelemetry/semantic-conventions": 1.17.1
peerDependencies:
"@opentelemetry/api": ">=1.0.0 <1.7.0"
checksum: ea4ec5568f5b67626be6eb2b975614d140dab4f6eb7ca73ee30d0f1957ef9779953956d1d44c35bb124c75e311b34a05e2036b32fcf31cf50ae983154df9ee3d
languageName: node
linkType: hard
"@opentelemetry/sdk-logs@npm:0.44.0":
version: 0.44.0
resolution: "@opentelemetry/sdk-logs@npm:0.44.0"
dependencies:
"@opentelemetry/core": 1.17.1
"@opentelemetry/resources": 1.17.1
peerDependencies:
"@opentelemetry/api": ">=1.4.0 <1.7.0"
"@opentelemetry/api-logs": ">=0.39.1"
checksum: 627dec80cd1d6c8836235c8f1f1c912f2322883c5855918f16b36cbc22d58f46ca408f3fa9ff826b534a3a0baa03c780258c60703bf3373e3857a38addeba892
languageName: node
linkType: hard
"@opentelemetry/sdk-metrics@npm:1.17.1":
version: 1.17.1
resolution: "@opentelemetry/sdk-metrics@npm:1.17.1"
dependencies:
"@opentelemetry/core": 1.17.1
"@opentelemetry/resources": 1.17.1
lodash.merge: ^4.6.2
peerDependencies:
"@opentelemetry/api": ">=1.3.0 <1.7.0"
checksum: 6f6a59c5f594ebfc75da7ba203cb35a9271f4536ed4c2499c83f5953b3a2486d306d7aa17f0d7c2fde0efb8cbe9ac4346988adab0e039d082ec95d8d32703509
languageName: node
linkType: hard
"@opentelemetry/sdk-trace-base@npm:1.17.1, @opentelemetry/sdk-trace-base@npm:^1.0.0, @opentelemetry/sdk-trace-base@npm:^1.17.1":
version: 1.17.1
resolution: "@opentelemetry/sdk-trace-base@npm:1.17.1"
dependencies:
"@opentelemetry/core": 1.17.1
"@opentelemetry/resources": 1.17.1
"@opentelemetry/semantic-conventions": 1.17.1
peerDependencies:
"@opentelemetry/api": ">=1.0.0 <1.7.0"
checksum: 1400666e673f003f3daceb8d2c55d099b6a2b7c4fa419b844a0fc9df0acb8835ce8dd35df27c180a806397fc01d5182d2f9ae114979f21ddb87afb73ddcab22e
languageName: node
linkType: hard
"@opentelemetry/sdk-trace-web@npm:1.17.1, @opentelemetry/sdk-trace-web@npm:^1.15.0, @opentelemetry/sdk-trace-web@npm:^1.17.1, @opentelemetry/sdk-trace-web@npm:^1.8.0":
version: 1.17.1
resolution: "@opentelemetry/sdk-trace-web@npm:1.17.1"
dependencies:
"@opentelemetry/core": 1.17.1
"@opentelemetry/sdk-trace-base": 1.17.1
"@opentelemetry/semantic-conventions": 1.17.1
peerDependencies:
"@opentelemetry/api": ">=1.0.0 <1.7.0"
checksum: baa2419ea67c5d2f901b4d4eaba42f3ebac1d64c15123c4baadf395d57a7bd7b3d9ad2b8c3a476eead1f14c04c4a5b1e740169fe79f754e3df888c33cc74d8af
languageName: node
linkType: hard
"@opentelemetry/semantic-conventions@npm:1.17.1, @opentelemetry/semantic-conventions@npm:^1.0.0, @opentelemetry/semantic-conventions@npm:^1.17.1":
version: 1.17.1
resolution: "@opentelemetry/semantic-conventions@npm:1.17.1"
checksum: 16161f70526d2abcd37a39771229ffe01a25d569f76c86e97200dc20399e7fa87b231c557a9654629b4789e945350e4fc55f88df979a502911f1dde4643ad416
languageName: node
linkType: hard
"@peculiar/asn1-schema@npm:^2.3.6":
version: 2.3.6
resolution: "@peculiar/asn1-schema@npm:2.3.6"
@ -4379,6 +4640,79 @@ __metadata:
languageName: node
linkType: hard
"@protobufjs/aspromise@npm:^1.1.1, @protobufjs/aspromise@npm:^1.1.2":
version: 1.1.2
resolution: "@protobufjs/aspromise@npm:1.1.2"
checksum: 011fe7ef0826b0fd1a95935a033a3c0fd08483903e1aa8f8b4e0704e3233406abb9ee25350ec0c20bbecb2aad8da0dcea58b392bbd77d6690736f02c143865d2
languageName: node
linkType: hard
"@protobufjs/base64@npm:^1.1.2":
version: 1.1.2
resolution: "@protobufjs/base64@npm:1.1.2"
checksum: 67173ac34de1e242c55da52c2f5bdc65505d82453893f9b51dc74af9fe4c065cf4a657a4538e91b0d4a1a1e0a0642215e31894c31650ff6e3831471061e1ee9e
languageName: node
linkType: hard
"@protobufjs/codegen@npm:^2.0.4":
version: 2.0.4
resolution: "@protobufjs/codegen@npm:2.0.4"
checksum: 59240c850b1d3d0b56d8f8098dd04787dcaec5c5bd8de186fa548de86b86076e1c50e80144b90335e705a044edf5bc8b0998548474c2a10a98c7e004a1547e4b
languageName: node
linkType: hard
"@protobufjs/eventemitter@npm:^1.1.0":
version: 1.1.0
resolution: "@protobufjs/eventemitter@npm:1.1.0"
checksum: 0369163a3d226851682f855f81413cbf166cd98f131edb94a0f67f79e75342d86e89df9d7a1df08ac28be2bc77e0a7f0200526bb6c2a407abbfee1f0262d5fd7
languageName: node
linkType: hard
"@protobufjs/fetch@npm:^1.1.0":
version: 1.1.0
resolution: "@protobufjs/fetch@npm:1.1.0"
dependencies:
"@protobufjs/aspromise": ^1.1.1
"@protobufjs/inquire": ^1.1.0
checksum: 3fce7e09eb3f1171dd55a192066450f65324fd5f7cc01a431df01bb00d0a895e6bfb5b0c5561ce157ee1d886349c90703d10a4e11a1a256418ff591b969b3477
languageName: node
linkType: hard
"@protobufjs/float@npm:^1.0.2":
version: 1.0.2
resolution: "@protobufjs/float@npm:1.0.2"
checksum: 5781e1241270b8bd1591d324ca9e3a3128d2f768077a446187a049e36505e91bc4156ed5ac3159c3ce3d2ba3743dbc757b051b2d723eea9cd367bfd54ab29b2f
languageName: node
linkType: hard
"@protobufjs/inquire@npm:^1.1.0":
version: 1.1.0
resolution: "@protobufjs/inquire@npm:1.1.0"
checksum: ca06f02eaf65ca36fb7498fc3492b7fc087bfcc85c702bac5b86fad34b692bdce4990e0ef444c1e2aea8c034227bd1f0484be02810d5d7e931c55445555646f4
languageName: node
linkType: hard
"@protobufjs/path@npm:^1.1.2":
version: 1.1.2
resolution: "@protobufjs/path@npm:1.1.2"
checksum: 856eeb532b16a7aac071cacde5c5620df800db4c80cee6dbc56380524736205aae21e5ae47739114bf669ab5e8ba0e767a282ad894f3b5e124197cb9224445ee
languageName: node
linkType: hard
"@protobufjs/pool@npm:^1.1.0":
version: 1.1.0
resolution: "@protobufjs/pool@npm:1.1.0"
checksum: d6a34fbbd24f729e2a10ee915b74e1d77d52214de626b921b2d77288bd8f2386808da2315080f2905761527cceffe7ec34c7647bd21a5ae41a25e8212ff79451
languageName: node
linkType: hard
"@protobufjs/utf8@npm:^1.1.0":
version: 1.1.0
resolution: "@protobufjs/utf8@npm:1.1.0"
checksum: f9bf3163d13aaa3b6f5e6fbf37a116e094ea021c0e1f2a7ccd0e12a29e2ce08dafba4e8b36e13f8ed7397e1591610ce880ed1289af4d66cf4ace8a36a9557278
languageName: node
linkType: hard
"@radix-ui/number@npm:1.0.1":
version: 1.0.1
resolution: "@radix-ui/number@npm:1.0.1"
@ -8584,10 +8918,12 @@ __metadata:
languageName: node
linkType: hard
"@types/node@npm:*, @types/node@npm:>=10.0.0, @types/node@npm:^18.17.5":
version: 18.17.15
resolution: "@types/node@npm:18.17.15"
checksum: eed11d4398ccdb999a4c65658ee75de621a4ad57aece48ed2fb8803b1e2711fadf58d8aefbdb0a447d69cf3cba602ca32fe0fc92077575950a796e1dc13baa0f
"@types/node@npm:*, @types/node@npm:>=10.0.0, @types/node@npm:>=13.7.0":
version: 20.8.10
resolution: "@types/node@npm:20.8.10"
dependencies:
undici-types: ~5.26.4
checksum: 7c61190e43e8074a1b571e52ff14c880bc67a0447f2fe5ed0e1a023eb8a23d5f815658edb98890f7578afe0f090433c4a635c7c87311762544e20dd78723e515
languageName: node
linkType: hard
@ -8605,6 +8941,13 @@ __metadata:
languageName: node
linkType: hard
"@types/node@npm:^18.17.5":
version: 18.17.15
resolution: "@types/node@npm:18.17.15"
checksum: eed11d4398ccdb999a4c65658ee75de621a4ad57aece48ed2fb8803b1e2711fadf58d8aefbdb0a447d69cf3cba602ca32fe0fc92077575950a796e1dc13baa0f
languageName: node
linkType: hard
"@types/normalize-package-data@npm:^2.4.0":
version: 2.4.1
resolution: "@types/normalize-package-data@npm:2.4.1"
@ -9014,6 +9357,13 @@ __metadata:
languageName: node
linkType: hard
"@types/shimmer@npm:^1.0.2":
version: 1.0.4
resolution: "@types/shimmer@npm:1.0.4"
checksum: f1e7f8b773c34ea21b69686cb100117bd94cc0d1f043e3fc50683453b9936d1295c4f48e1872766556234a9ec48ea37fc7e6b5e56212f66ec65d5b2b5d73092b
languageName: node
linkType: hard
"@types/showdown@npm:^1.9.4":
version: 1.9.4
resolution: "@types/showdown@npm:1.9.4"
@ -10168,12 +10518,12 @@ __metadata:
languageName: node
linkType: hard
"acorn-import-assertions@npm:^1.7.6":
version: 1.8.0
resolution: "acorn-import-assertions@npm:1.8.0"
"acorn-import-assertions@npm:^1.7.6, acorn-import-assertions@npm:^1.9.0":
version: 1.9.0
resolution: "acorn-import-assertions@npm:1.9.0"
peerDependencies:
acorn: ^8
checksum: 5c4cf7c850102ba7ae0eeae0deb40fb3158c8ca5ff15c0bca43b5c47e307a1de3d8ef761788f881343680ea374631ae9e9615ba8876fee5268dbe068c98bcba6
checksum: 944fb2659d0845c467066bdcda2e20c05abe3aaf11972116df457ce2627628a81764d800dd55031ba19de513ee0d43bb771bc679cc0eda66dc8b4fade143bc0c
languageName: node
linkType: hard
@ -10596,6 +10946,14 @@ __metadata:
"@manaflair/redux-batch": ^1.0.0
"@mantine/hooks": ^5.10.1
"@octokit/rest": ^20.0.1
"@opentelemetry/auto-instrumentations-web": ^0.33.2
"@opentelemetry/context-zone": ^1.17.1
"@opentelemetry/exporter-trace-otlp-proto": ^0.44.0
"@opentelemetry/instrumentation": ^0.44.0
"@opentelemetry/resources": ^1.17.1
"@opentelemetry/sdk-trace-base": ^1.17.1
"@opentelemetry/sdk-trace-web": ^1.17.1
"@opentelemetry/semantic-conventions": ^1.17.1
"@peculiar/webcrypto": ^1.4.3
"@redux-saga/testing-utils": ^1.1.5
"@sentry/react": ^6.2.4
@ -12820,10 +13178,10 @@ __metadata:
languageName: node
linkType: hard
"cjs-module-lexer@npm:^1.0.0":
version: 1.2.2
resolution: "cjs-module-lexer@npm:1.2.2"
checksum: 977f3f042bd4f08e368c890d91eecfbc4f91da0bc009a3c557bc4dfbf32022ad1141244ac1178d44de70fc9f3dea7add7cd9a658a34b9fae98a55d8f92331ce5
"cjs-module-lexer@npm:^1.0.0, cjs-module-lexer@npm:^1.2.2":
version: 1.2.3
resolution: "cjs-module-lexer@npm:1.2.3"
checksum: 5ea3cb867a9bb609b6d476cd86590d105f3cfd6514db38ff71f63992ab40939c2feb68967faa15a6d2b1f90daa6416b79ea2de486e9e2485a6f8b66a21b4fb0a
languageName: node
linkType: hard
@ -18791,6 +19149,18 @@ __metadata:
languageName: node
linkType: hard
"import-in-the-middle@npm:1.4.2":
version: 1.4.2
resolution: "import-in-the-middle@npm:1.4.2"
dependencies:
acorn: ^8.8.2
acorn-import-assertions: ^1.9.0
cjs-module-lexer: ^1.2.2
module-details-from-path: ^1.0.3
checksum: 52971f821e9a3c94834cd5cf0ab5178321c07d4f4babd547b3cb24c4de21670d05b42ca1523890e7e90525c3bba6b7db7e54cf45421919b0b2712a34faa96ea5
languageName: node
linkType: hard
"import-lazy@npm:^2.1.0":
version: 2.1.0
resolution: "import-lazy@npm:2.1.0"
@ -21812,6 +22182,13 @@ __metadata:
languageName: node
linkType: hard
"long@npm:^5.0.0":
version: 5.2.3
resolution: "long@npm:5.2.3"
checksum: 885ede7c3de4facccbd2cacc6168bae3a02c3e836159ea4252c87b6e34d40af819824b2d4edce330bfb5c4d6e8ce3ec5864bdcf9473fa1f53a4f8225860e5897
languageName: node
linkType: hard
"loose-envify@npm:^1.0.0, loose-envify@npm:^1.1.0, loose-envify@npm:^1.2.0, loose-envify@npm:^1.3.1, loose-envify@npm:^1.4.0":
version: 1.4.0
resolution: "loose-envify@npm:1.4.0"
@ -22580,6 +22957,13 @@ __metadata:
languageName: node
linkType: hard
"module-details-from-path@npm:^1.0.3":
version: 1.0.3
resolution: "module-details-from-path@npm:1.0.3"
checksum: 378a8a26013889aa3086bfb0776b7860c5bb957336253e1ba5d779c2f239a218930b145ca76e52c1dd7c8079d52b2af64b8eec30822f81ffdb0dfa27d6fe6f33
languageName: node
linkType: hard
"moment-timezone@npm:*, moment-timezone@npm:^0.5.35":
version: 0.5.35
resolution: "moment-timezone@npm:0.5.35"
@ -25633,6 +26017,26 @@ __metadata:
languageName: node
linkType: hard
"protobufjs@npm:^7.2.3":
version: 7.2.5
resolution: "protobufjs@npm:7.2.5"
dependencies:
"@protobufjs/aspromise": ^1.1.2
"@protobufjs/base64": ^1.1.2
"@protobufjs/codegen": ^2.0.4
"@protobufjs/eventemitter": ^1.1.0
"@protobufjs/fetch": ^1.1.0
"@protobufjs/float": ^1.0.2
"@protobufjs/inquire": ^1.1.0
"@protobufjs/path": ^1.1.2
"@protobufjs/pool": ^1.1.0
"@protobufjs/utf8": ^1.1.0
"@types/node": ">=13.7.0"
long: ^5.0.0
checksum: 3770a072114061faebbb17cfd135bc4e187b66bc6f40cd8bac624368b0270871ec0cfb43a02b9fb4f029c8335808a840f1afba3c2e7ede7063b98ae6b98a703f
languageName: node
linkType: hard
"proxy-addr@npm:~2.0.7":
version: 2.0.7
resolution: "proxy-addr@npm:2.0.7"
@ -27765,6 +28169,17 @@ __metadata:
languageName: node
linkType: hard
"require-in-the-middle@npm:^7.1.1":
version: 7.2.0
resolution: "require-in-the-middle@npm:7.2.0"
dependencies:
debug: ^4.1.1
module-details-from-path: ^1.0.3
resolve: ^1.22.1
checksum: 5ed219d12aec4d0f098029827f9e929d8e0ca4f2fe01f23a9b02169e57c5157cced9e7acaef6a871d3f56646f2cb807b08f2f23d66912ee53eca16cb88eff743
languageName: node
linkType: hard
"require-main-filename@npm:^2.0.0":
version: 2.0.0
resolution: "require-main-filename@npm:2.0.0"
@ -27896,16 +28311,16 @@ __metadata:
languageName: node
linkType: hard
"resolve@npm:^1.1.4, resolve@npm:^1.1.7, resolve@npm:^1.10.0, resolve@npm:^1.12.0, resolve@npm:^1.13.1, resolve@npm:^1.14.2, resolve@npm:^1.17.0, resolve@npm:^1.19.0, resolve@npm:^1.20.0, resolve@npm:^1.22.2, resolve@npm:^1.22.4, resolve@npm:^1.4.0":
version: 1.22.6
resolution: "resolve@npm:1.22.6"
"resolve@npm:^1.1.4, resolve@npm:^1.1.7, resolve@npm:^1.10.0, resolve@npm:^1.12.0, resolve@npm:^1.13.1, resolve@npm:^1.14.2, resolve@npm:^1.17.0, resolve@npm:^1.19.0, resolve@npm:^1.20.0, resolve@npm:^1.22.1, resolve@npm:^1.22.2, resolve@npm:^1.22.4, resolve@npm:^1.4.0":
version: 1.22.8
resolution: "resolve@npm:1.22.8"
dependencies:
is-core-module: ^2.13.0
path-parse: ^1.0.7
supports-preserve-symlinks-flag: ^1.0.0
bin:
resolve: bin/resolve
checksum: d13bf66d4e2ee30d291491f16f2fa44edd4e0cefb85d53249dd6f93e70b2b8c20ec62f01b18662e3cd40e50a7528f18c4087a99490048992a3bb954cf3201a5b
checksum: f8a26958aa572c9b064562750b52131a37c29d072478ea32e129063e2da7f83e31f7f11e7087a18225a8561cfe8d2f0df9dbea7c9d331a897571c0a2527dbb4c
languageName: node
linkType: hard
@ -27922,16 +28337,16 @@ __metadata:
languageName: node
linkType: hard
"resolve@patch:resolve@^1.1.4#~builtin<compat/resolve>, resolve@patch:resolve@^1.1.7#~builtin<compat/resolve>, resolve@patch:resolve@^1.10.0#~builtin<compat/resolve>, resolve@patch:resolve@^1.12.0#~builtin<compat/resolve>, resolve@patch:resolve@^1.13.1#~builtin<compat/resolve>, resolve@patch:resolve@^1.14.2#~builtin<compat/resolve>, resolve@patch:resolve@^1.17.0#~builtin<compat/resolve>, resolve@patch:resolve@^1.19.0#~builtin<compat/resolve>, resolve@patch:resolve@^1.20.0#~builtin<compat/resolve>, resolve@patch:resolve@^1.22.2#~builtin<compat/resolve>, resolve@patch:resolve@^1.22.4#~builtin<compat/resolve>, resolve@patch:resolve@^1.4.0#~builtin<compat/resolve>":
version: 1.22.6
resolution: "resolve@patch:resolve@npm%3A1.22.6#~builtin<compat/resolve>::version=1.22.6&hash=c3c19d"
"resolve@patch:resolve@^1.1.4#~builtin<compat/resolve>, resolve@patch:resolve@^1.1.7#~builtin<compat/resolve>, resolve@patch:resolve@^1.10.0#~builtin<compat/resolve>, resolve@patch:resolve@^1.12.0#~builtin<compat/resolve>, resolve@patch:resolve@^1.13.1#~builtin<compat/resolve>, resolve@patch:resolve@^1.14.2#~builtin<compat/resolve>, resolve@patch:resolve@^1.17.0#~builtin<compat/resolve>, resolve@patch:resolve@^1.19.0#~builtin<compat/resolve>, resolve@patch:resolve@^1.20.0#~builtin<compat/resolve>, resolve@patch:resolve@^1.22.1#~builtin<compat/resolve>, resolve@patch:resolve@^1.22.2#~builtin<compat/resolve>, resolve@patch:resolve@^1.22.4#~builtin<compat/resolve>, resolve@patch:resolve@^1.4.0#~builtin<compat/resolve>":
version: 1.22.8
resolution: "resolve@patch:resolve@npm%3A1.22.8#~builtin<compat/resolve>::version=1.22.8&hash=c3c19d"
dependencies:
is-core-module: ^2.13.0
path-parse: ^1.0.7
supports-preserve-symlinks-flag: ^1.0.0
bin:
resolve: bin/resolve
checksum: 9d3b3c67aefd12cecbe5f10ca4d1f51ea190891096497c43f301b086883b426466918c3a64f1bbf1788fabb52b579d58809614006c5d0b49186702b3b8fb746a
checksum: 5479b7d431cacd5185f8db64bfcb7286ae5e31eb299f4c4f404ad8aa6098b77599563ac4257cb2c37a42f59dfc06a1bec2bcf283bb448f319e37f0feb9a09847
languageName: node
linkType: hard
@ -28398,7 +28813,7 @@ __metadata:
languageName: node
linkType: hard
"semver@npm:7.x, semver@npm:^7.3.2, semver@npm:^7.3.4, semver@npm:^7.3.5, semver@npm:^7.3.7, semver@npm:^7.3.8, semver@npm:^7.5.3, semver@npm:^7.5.4":
"semver@npm:7.x, semver@npm:^7.3.2, semver@npm:^7.3.4, semver@npm:^7.3.5, semver@npm:^7.3.7, semver@npm:^7.3.8, semver@npm:^7.5.2, semver@npm:^7.5.3, semver@npm:^7.5.4":
version: 7.5.4
resolution: "semver@npm:7.5.4"
dependencies:
@ -28647,6 +29062,13 @@ __metadata:
languageName: node
linkType: hard
"shimmer@npm:^1.2.1":
version: 1.2.1
resolution: "shimmer@npm:1.2.1"
checksum: aa0d6252ad1c682a4fdfda69e541be987f7a265ac7b00b1208e5e48cc68dc55f293955346ea4c71a169b7324b82c70f8400b3d3d2d60b2a7519f0a3522423250
languageName: node
linkType: hard
"showdown@npm:^1.9.1":
version: 1.9.1
resolution: "showdown@npm:1.9.1"
@ -30639,7 +31061,7 @@ __metadata:
languageName: node
linkType: hard
"tslib@npm:^2.0.0, tslib@npm:^2.0.1, tslib@npm:^2.0.3, tslib@npm:^2.1.0, tslib@npm:^2.3.1, tslib@npm:^2.4.0, tslib@npm:^2.5.0, tslib@npm:^2.6.0":
"tslib@npm:^2.0.0, tslib@npm:^2.0.1, tslib@npm:^2.0.3, tslib@npm:^2.1.0, tslib@npm:^2.3.0, tslib@npm:^2.3.1, tslib@npm:^2.4.0, tslib@npm:^2.5.0, tslib@npm:^2.6.0":
version: 2.6.2
resolution: "tslib@npm:2.6.2"
checksum: 329ea56123005922f39642318e3d1f0f8265d1e7fcb92c633e0809521da75eeaca28d2cf96d7248229deb40e5c19adf408259f4b9640afd20d13aecc1430f3ad
@ -30993,6 +31415,13 @@ __metadata:
languageName: node
linkType: hard
"undici-types@npm:~5.26.4":
version: 5.26.5
resolution: "undici-types@npm:5.26.5"
checksum: 3192ef6f3fd5df652f2dc1cd782b49d6ff14dc98e5dced492aa8a8c65425227da5da6aafe22523c67f035a272c599bb89cfe803c1db6311e44bed3042fc25487
languageName: node
linkType: hard
"unescape-js@npm:^1.1.4":
version: 1.1.4
resolution: "unescape-js@npm:1.1.4"
@ -32779,6 +33208,15 @@ __metadata:
languageName: node
linkType: hard
"zone.js@npm:^0.11.0":
version: 0.11.8
resolution: "zone.js@npm:0.11.8"
dependencies:
tslib: ^2.3.0
checksum: ad4a2f4aafce10f5bc3f60213384bb6ee4727de09d87fb77cb8089eecdb44dd5838fd9fa43ac4c351afec142b0e5477a22093928260a486804f70b8cace6c7d3
languageName: node
linkType: hard
"zrender@npm:5.4.3":
version: 5.4.3
resolution: "zrender@npm:5.4.3"