UNPKG

@microsoft/docusaurus-plugin-application-insights

Version:
135 lines (132 loc) 8.31 kB
"use strict"; // Copyright (c) Microsoft Corporation. // Licensed under the MIT license. Object.defineProperty(exports, "__esModule", { value: true }); exports.validateOptions = exports.normalizeConfig = exports.DEPRECATED_CONFIG_MESSAGE = void 0; const node_util_1 = require("node:util"); const utils_validation_1 = require("@docusaurus/utils-validation"); exports.DEPRECATED_CONFIG_MESSAGE = `You passed the Application Insights configuration using the legacy configuration structure. Please use the new configuration structure in the future. Example: { config: <Application Insights Configuration object>, enableClickAnalytics: <boolean> }`; function normalizeConfig(maybeLegacyOptions) { // If we have a `config` property, we're using the new configuration API if ('config' in maybeLegacyOptions) { return maybeLegacyOptions; } let options; // If we don't have a `config` property, we're using the legacy configuration API, so we normalize it const deprecateConfig = (0, node_util_1.deprecate)(() => { options = { config: maybeLegacyOptions, enableClickAnalytics: false, }; }, exports.DEPRECATED_CONFIG_MESSAGE); deprecateConfig(); return options; } exports.normalizeConfig = normalizeConfig; const pluginOptionsSchema = utils_validation_1.Joi.object({ config: utils_validation_1.Joi.object({ instrumentationKey: utils_validation_1.Joi.string().empty(''), connectionString: utils_validation_1.Joi.string().empty(''), diagnosticLogInterval: utils_validation_1.Joi.number().optional(), maxMessageLimit: utils_validation_1.Joi.number().optional(), loggingLevelConsole: utils_validation_1.Joi.number().optional(), loggingLevelTelemetry: utils_validation_1.Joi.number().optional(), enableDebug: utils_validation_1.Joi.boolean().optional(), enableDebugExceptions: utils_validation_1.Joi.boolean().optional(), endpointUrl: utils_validation_1.Joi.string().optional(), extensionConfig: utils_validation_1.Joi.object().optional(), extensions: utils_validation_1.Joi.array().items(utils_validation_1.Joi.object()).optional(), channels: utils_validation_1.Joi.array().items(utils_validation_1.Joi.array().items(utils_validation_1.Joi.object())).optional(), disableInstrumentationKeyValidation: utils_validation_1.Joi.boolean().optional(), enablePerfMgr: utils_validation_1.Joi.boolean().optional(), createPerfMgr: utils_validation_1.Joi.func().optional(), perfEvtsSendAll: utils_validation_1.Joi.boolean().optional(), idLength: utils_validation_1.Joi.number().optional(), cookieDomain: utils_validation_1.Joi.string().optional(), cookiePath: utils_validation_1.Joi.string().optional(), disableCookiesUsage: utils_validation_1.Joi.boolean().optional(), cookieCfg: utils_validation_1.Joi.object().optional(), disablePageUnloadEvents: utils_validation_1.Joi.array().items(utils_validation_1.Joi.string()).optional(), disablePageShowEvents: utils_validation_1.Joi.array().items(utils_validation_1.Joi.string()).optional(), disableDbgExt: utils_validation_1.Joi.boolean().optional(), emitLineDelimitedJson: utils_validation_1.Joi.boolean().optional(), accountId: utils_validation_1.Joi.string().optional(), sessionRenewalMs: utils_validation_1.Joi.number().optional(), sessionExpirationMs: utils_validation_1.Joi.number().optional(), maxBatchSizeInBytes: utils_validation_1.Joi.number().optional(), maxBatchInterval: utils_validation_1.Joi.number().optional(), disableExceptionTracking: utils_validation_1.Joi.boolean().optional(), disableTelemetry: utils_validation_1.Joi.boolean().optional(), samplingPercentage: utils_validation_1.Joi.number().optional(), autoTrackPageVisitTime: utils_validation_1.Joi.boolean().optional(), enableAutoRouteTracking: utils_validation_1.Joi.boolean().optional(), disableAjaxTracking: utils_validation_1.Joi.boolean().optional(), disableFetchTracking: utils_validation_1.Joi.boolean().optional(), excludeRequestFromAutoTrackingPatterns: utils_validation_1.Joi.array() .items(utils_validation_1.Joi.alternatives().try(utils_validation_1.Joi.string(), utils_validation_1.Joi.object().instance(RegExp))) .optional(), addRequestContext: utils_validation_1.Joi.func().optional(), overridePageViewDuration: utils_validation_1.Joi.boolean().optional(), maxAjaxCallsPerView: utils_validation_1.Joi.number().optional(), disableDataLossAnalysis: utils_validation_1.Joi.boolean().optional(), disableCorrelationHeaders: utils_validation_1.Joi.boolean().optional(), distributedTracingMode: utils_validation_1.Joi.string().optional(), correlationHeaderExcludedDomains: utils_validation_1.Joi.array() .items(utils_validation_1.Joi.string()) .optional(), disableFlushOnBeforeUnload: utils_validation_1.Joi.boolean().optional(), disableFlushOnUnload: utils_validation_1.Joi.boolean().optional(), enableSessionStorageBuffer: utils_validation_1.Joi.boolean().optional(), bufferOverride: utils_validation_1.Joi.object().optional(), isCookieUseDisabled: utils_validation_1.Joi.boolean().optional(), isRetryDisabled: utils_validation_1.Joi.boolean().optional(), url: utils_validation_1.Joi.string().optional(), isStorageUseDisabled: utils_validation_1.Joi.boolean().optional(), isBeaconApiDisabled: utils_validation_1.Joi.boolean().optional(), disableXhr: utils_validation_1.Joi.boolean().optional(), onunloadDisableFetch: utils_validation_1.Joi.boolean().optional(), sdkExtension: utils_validation_1.Joi.string().optional(), isBrowserLinkTrackingEnabled: utils_validation_1.Joi.boolean().optional(), appId: utils_validation_1.Joi.string().optional(), enableCorsCorrelation: utils_validation_1.Joi.boolean().optional(), namePrefix: utils_validation_1.Joi.string().optional(), sessionCookiePostfix: utils_validation_1.Joi.string().optional(), userCookiePostfix: utils_validation_1.Joi.string().optional(), enableRequestHeaderTracking: utils_validation_1.Joi.boolean().optional(), enableResponseHeaderTracking: utils_validation_1.Joi.boolean().optional(), enableAjaxErrorStatusText: utils_validation_1.Joi.boolean().optional(), enableAjaxPerfTracking: utils_validation_1.Joi.boolean().optional(), maxAjaxPerfLookupAttempts: utils_validation_1.Joi.number().optional(), ajaxPerfLookupDelay: utils_validation_1.Joi.number().optional(), onunloadDisableBeacon: utils_validation_1.Joi.boolean().optional(), autoExceptionInstrumented: utils_validation_1.Joi.boolean().optional(), correlationHeaderDomains: utils_validation_1.Joi.array().items(utils_validation_1.Joi.string()).optional(), autoUnhandledPromiseInstrumented: utils_validation_1.Joi.boolean().optional(), enableUnhandledPromiseRejectionTracking: utils_validation_1.Joi.boolean().optional(), correlationHeaderExcludePatterns: utils_validation_1.Joi.array() .items(utils_validation_1.Joi.object().instance(RegExp)) .optional(), customHeaders: utils_validation_1.Joi.array() .items(utils_validation_1.Joi.object({ header: utils_validation_1.Joi.string().required(), value: utils_validation_1.Joi.string().required(), })) .optional(), convertUndefined: utils_validation_1.Joi.any().optional(), eventsLimitInMem: utils_validation_1.Joi.number().optional(), disableIkeyDeprecationMessage: utils_validation_1.Joi.boolean().optional(), addIntEndpoints: utils_validation_1.Joi.boolean().optional(), }) .required() .xor('instrumentationKey', 'connectionString'), enableClickAnalytics: utils_validation_1.Joi.boolean().optional(), }); function validateOptions({ validate, options, }) { return validate(pluginOptionsSchema, options); } exports.validateOptions = validateOptions;